dist/index.js

var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __commonJS = (cb, mod) => function __require() {
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);

// dist/index.js
var require_dist = __commonJS({
  "dist/index.js"(exports, module2) {
    var __create2 = Object.create;
    var __defProp2 = Object.defineProperty;
    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames2 = Object.getOwnPropertyNames;
    var __getProtoOf2 = Object.getPrototypeOf;
    var __hasOwnProp2 = Object.prototype.hasOwnProperty;
    var __commonJS2 = (cb, mod) => function __require() {
      return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
    };
    var __export2 = (target, all) => {
      for (var name in all)
        __defProp2(target, name, { get: all[name], enumerable: true });
    };
    var __copyProps2 = (to, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames2(from))
          if (!__hasOwnProp2.call(to, key) && key !== except)
            __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
      }
      return to;
    };
    var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
      // If the importer is in node compatibility mode or this is not an ESM
      // file that has been converted to a CommonJS file using a Babel-
      // compatible transform (i.e. "__esModule" has not been set), then set
      // "default" to the CommonJS "module.exports" for node compatibility.
      isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
      mod
    ));
    var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
    var require_dist2 = __commonJS2({
      "dist/index.js"(exports2, module22) {
        var __create22 = Object.create;
        var __defProp22 = Object.defineProperty;
        var __getOwnPropDesc22 = Object.getOwnPropertyDescriptor;
        var __getOwnPropNames22 = Object.getOwnPropertyNames;
        var __getProtoOf22 = Object.getPrototypeOf;
        var __hasOwnProp22 = Object.prototype.hasOwnProperty;
        var __commonJS22 = (cb, mod) => function __require() {
          return mod || (0, cb[__getOwnPropNames22(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
        };
        var __export22 = (target, all) => {
          for (var name in all)
            __defProp22(target, name, { get: all[name], enumerable: true });
        };
        var __copyProps22 = (to, from, except, desc) => {
          if (from && typeof from === "object" || typeof from === "function") {
            for (let key of __getOwnPropNames22(from))
              if (!__hasOwnProp22.call(to, key) && key !== except)
                __defProp22(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22(from, key)) || desc.enumerable });
          }
          return to;
        };
        var __toESM22 = (mod, isNodeMode, target) => (target = mod != null ? __create22(__getProtoOf22(mod)) : {}, __copyProps22(
          // If the importer is in node compatibility mode or this is not an ESM
          // file that has been converted to a CommonJS file using a Babel-
          // compatible transform (i.e. "__esModule" has not been set), then set
          // "default" to the CommonJS "module.exports" for node compatibility.
          isNodeMode || !mod || !mod.__esModule ? __defProp22(target, "default", { value: mod, enumerable: true }) : target,
          mod
        ));
        var __toCommonJS22 = (mod) => __copyProps22(__defProp22({}, "__esModule", { value: true }), mod);
        var require_dist22 = __commonJS22({
          "dist/index.js"(exports22, module222) {
            var __create222 = Object.create;
            var __defProp222 = Object.defineProperty;
            var __getOwnPropDesc222 = Object.getOwnPropertyDescriptor;
            var __getOwnPropNames222 = Object.getOwnPropertyNames;
            var __getProtoOf222 = Object.getPrototypeOf;
            var __hasOwnProp222 = Object.prototype.hasOwnProperty;
            var __commonJS222 = (cb, mod) => function __require() {
              return mod || (0, cb[__getOwnPropNames222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
            };
            var __export222 = (target, all) => {
              for (var name in all)
                __defProp222(target, name, { get: all[name], enumerable: true });
            };
            var __copyProps222 = (to, from, except, desc) => {
              if (from && typeof from === "object" || typeof from === "function") {
                for (let key of __getOwnPropNames222(from))
                  if (!__hasOwnProp222.call(to, key) && key !== except)
                    __defProp222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc222(from, key)) || desc.enumerable });
              }
              return to;
            };
            var __toESM222 = (mod, isNodeMode, target) => (target = mod != null ? __create222(__getProtoOf222(mod)) : {}, __copyProps222(
              // If the importer is in node compatibility mode or this is not an ESM
              // file that has been converted to a CommonJS file using a Babel-
              // compatible transform (i.e. "__esModule" has not been set), then set
              // "default" to the CommonJS "module.exports" for node compatibility.
              isNodeMode || !mod || !mod.__esModule ? __defProp222(target, "default", { value: mod, enumerable: true }) : target,
              mod
            ));
            var __toCommonJS222 = (mod) => __copyProps222(__defProp222({}, "__esModule", { value: true }), mod);
            var require_dist222 = __commonJS222({
              "dist/index.js"(exports222, module2222) {
                var __create2222 = Object.create;
                var __defProp2222 = Object.defineProperty;
                var __getOwnPropDesc2222 = Object.getOwnPropertyDescriptor;
                var __getOwnPropNames2222 = Object.getOwnPropertyNames;
                var __getProtoOf2222 = Object.getPrototypeOf;
                var __hasOwnProp2222 = Object.prototype.hasOwnProperty;
                var __commonJS2222 = (cb, mod) => function __require() {
                  return mod || (0, cb[__getOwnPropNames2222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                };
                var __export2222 = (target, all) => {
                  for (var name in all)
                    __defProp2222(target, name, { get: all[name], enumerable: true });
                };
                var __copyProps2222 = (to, from, except, desc) => {
                  if (from && typeof from === "object" || typeof from === "function") {
                    for (let key of __getOwnPropNames2222(from))
                      if (!__hasOwnProp2222.call(to, key) && key !== except)
                        __defProp2222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2222(from, key)) || desc.enumerable });
                  }
                  return to;
                };
                var __toESM2222 = (mod, isNodeMode, target) => (target = mod != null ? __create2222(__getProtoOf2222(mod)) : {}, __copyProps2222(
                  // If the importer is in node compatibility mode or this is not an ESM
                  // file that has been converted to a CommonJS file using a Babel-
                  // compatible transform (i.e. "__esModule" has not been set), then set
                  // "default" to the CommonJS "module.exports" for node compatibility.
                  isNodeMode || !mod || !mod.__esModule ? __defProp2222(target, "default", { value: mod, enumerable: true }) : target,
                  mod
                ));
                var __toCommonJS2222 = (mod) => __copyProps2222(__defProp2222({}, "__esModule", { value: true }), mod);
                var require_dist2222 = __commonJS2222({
                  "dist/index.js"(exports2222, module22222) {
                    var __create22222 = Object.create;
                    var __defProp22222 = Object.defineProperty;
                    var __getOwnPropDesc22222 = Object.getOwnPropertyDescriptor;
                    var __getOwnPropNames22222 = Object.getOwnPropertyNames;
                    var __getProtoOf22222 = Object.getPrototypeOf;
                    var __hasOwnProp22222 = Object.prototype.hasOwnProperty;
                    var __commonJS22222 = (cb, mod) => function __require() {
                      return mod || (0, cb[__getOwnPropNames22222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                    };
                    var __export22222 = (target, all) => {
                      for (var name in all)
                        __defProp22222(target, name, { get: all[name], enumerable: true });
                    };
                    var __copyProps22222 = (to, from, except, desc) => {
                      if (from && typeof from === "object" || typeof from === "function") {
                        for (let key of __getOwnPropNames22222(from))
                          if (!__hasOwnProp22222.call(to, key) && key !== except)
                            __defProp22222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22222(from, key)) || desc.enumerable });
                      }
                      return to;
                    };
                    var __toESM22222 = (mod, isNodeMode, target) => (target = mod != null ? __create22222(__getProtoOf22222(mod)) : {}, __copyProps22222(
                      // If the importer is in node compatibility mode or this is not an ESM
                      // file that has been converted to a CommonJS file using a Babel-
                      // compatible transform (i.e. "__esModule" has not been set), then set
                      // "default" to the CommonJS "module.exports" for node compatibility.
                      isNodeMode || !mod || !mod.__esModule ? __defProp22222(target, "default", { value: mod, enumerable: true }) : target,
                      mod
                    ));
                    var __toCommonJS22222 = (mod) => __copyProps22222(__defProp22222({}, "__esModule", { value: true }), mod);
                    var require_dist22222 = __commonJS22222({
                      "dist/index.js"(exports22222, module222222) {
                        var __create222222 = Object.create;
                        var __defProp222222 = Object.defineProperty;
                        var __getOwnPropDesc222222 = Object.getOwnPropertyDescriptor;
                        var __getOwnPropNames222222 = Object.getOwnPropertyNames;
                        var __getProtoOf222222 = Object.getPrototypeOf;
                        var __hasOwnProp222222 = Object.prototype.hasOwnProperty;
                        var __commonJS222222 = (cb, mod) => function __require() {
                          return mod || (0, cb[__getOwnPropNames222222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                        };
                        var __export222222 = (target, all) => {
                          for (var name in all)
                            __defProp222222(target, name, { get: all[name], enumerable: true });
                        };
                        var __copyProps222222 = (to, from, except, desc) => {
                          if (from && typeof from === "object" || typeof from === "function") {
                            for (let key of __getOwnPropNames222222(from))
                              if (!__hasOwnProp222222.call(to, key) && key !== except)
                                __defProp222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc222222(from, key)) || desc.enumerable });
                          }
                          return to;
                        };
                        var __toESM222222 = (mod, isNodeMode, target) => (target = mod != null ? __create222222(__getProtoOf222222(mod)) : {}, __copyProps222222(
                          // If the importer is in node compatibility mode or this is not an ESM
                          // file that has been converted to a CommonJS file using a Babel-
                          // compatible transform (i.e. "__esModule" has not been set), then set
                          // "default" to the CommonJS "module.exports" for node compatibility.
                          isNodeMode || !mod || !mod.__esModule ? __defProp222222(target, "default", { value: mod, enumerable: true }) : target,
                          mod
                        ));
                        var __toCommonJS222222 = (mod) => __copyProps222222(__defProp222222({}, "__esModule", { value: true }), mod);
                        var require_dist222222 = __commonJS222222({
                          "dist/index.js"(exports222222, module2222222) {
                            var __create2222222 = Object.create;
                            var __defProp2222222 = Object.defineProperty;
                            var __getOwnPropDesc2222222 = Object.getOwnPropertyDescriptor;
                            var __getOwnPropNames2222222 = Object.getOwnPropertyNames;
                            var __getProtoOf2222222 = Object.getPrototypeOf;
                            var __hasOwnProp2222222 = Object.prototype.hasOwnProperty;
                            var __commonJS2222222 = (cb, mod) => function __require() {
                              return mod || (0, cb[__getOwnPropNames2222222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                            };
                            var __export2222222 = (target, all) => {
                              for (var name in all)
                                __defProp2222222(target, name, { get: all[name], enumerable: true });
                            };
                            var __copyProps2222222 = (to, from, except, desc) => {
                              if (from && typeof from === "object" || typeof from === "function") {
                                for (let key of __getOwnPropNames2222222(from))
                                  if (!__hasOwnProp2222222.call(to, key) && key !== except)
                                    __defProp2222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2222222(from, key)) || desc.enumerable });
                              }
                              return to;
                            };
                            var __toESM2222222 = (mod, isNodeMode, target) => (target = mod != null ? __create2222222(__getProtoOf2222222(mod)) : {}, __copyProps2222222(
                              // If the importer is in node compatibility mode or this is not an ESM
                              // file that has been converted to a CommonJS file using a Babel-
                              // compatible transform (i.e. "__esModule" has not been set), then set
                              // "default" to the CommonJS "module.exports" for node compatibility.
                              isNodeMode || !mod || !mod.__esModule ? __defProp2222222(target, "default", { value: mod, enumerable: true }) : target,
                              mod
                            ));
                            var __toCommonJS2222222 = (mod) => __copyProps2222222(__defProp2222222({}, "__esModule", { value: true }), mod);
                            var require_dist2222222 = __commonJS2222222({
                              "dist/index.js"(exports2222222, module22222222) {
                                var __create22222222 = Object.create;
                                var __defProp22222222 = Object.defineProperty;
                                var __getOwnPropDesc22222222 = Object.getOwnPropertyDescriptor;
                                var __getOwnPropNames22222222 = Object.getOwnPropertyNames;
                                var __getProtoOf22222222 = Object.getPrototypeOf;
                                var __hasOwnProp22222222 = Object.prototype.hasOwnProperty;
                                var __commonJS22222222 = (cb, mod) => function __require() {
                                  return mod || (0, cb[__getOwnPropNames22222222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                                };
                                var __export22222222 = (target, all) => {
                                  for (var name in all)
                                    __defProp22222222(target, name, { get: all[name], enumerable: true });
                                };
                                var __copyProps22222222 = (to, from, except, desc) => {
                                  if (from && typeof from === "object" || typeof from === "function") {
                                    for (let key of __getOwnPropNames22222222(from))
                                      if (!__hasOwnProp22222222.call(to, key) && key !== except)
                                        __defProp22222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22222222(from, key)) || desc.enumerable });
                                  }
                                  return to;
                                };
                                var __toESM22222222 = (mod, isNodeMode, target) => (target = mod != null ? __create22222222(__getProtoOf22222222(mod)) : {}, __copyProps22222222(
                                  // If the importer is in node compatibility mode or this is not an ESM
                                  // file that has been converted to a CommonJS file using a Babel-
                                  // compatible transform (i.e. "__esModule" has not been set), then set
                                  // "default" to the CommonJS "module.exports" for node compatibility.
                                  isNodeMode || !mod || !mod.__esModule ? __defProp22222222(target, "default", { value: mod, enumerable: true }) : target,
                                  mod
                                ));
                                var __toCommonJS22222222 = (mod) => __copyProps22222222(__defProp22222222({}, "__esModule", { value: true }), mod);
                                var require_dist22222222 = __commonJS22222222({
                                  "dist/index.js"(exports22222222, module222222222) {
                                    var __create222222222 = Object.create;
                                    var __defProp222222222 = Object.defineProperty;
                                    var __getOwnPropDesc222222222 = Object.getOwnPropertyDescriptor;
                                    var __getOwnPropNames222222222 = Object.getOwnPropertyNames;
                                    var __getProtoOf222222222 = Object.getPrototypeOf;
                                    var __hasOwnProp222222222 = Object.prototype.hasOwnProperty;
                                    var __commonJS222222222 = (cb, mod) => function __require() {
                                      return mod || (0, cb[__getOwnPropNames222222222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                                    };
                                    var __export222222222 = (target, all) => {
                                      for (var name in all)
                                        __defProp222222222(target, name, { get: all[name], enumerable: true });
                                    };
                                    var __copyProps222222222 = (to, from, except, desc) => {
                                      if (from && typeof from === "object" || typeof from === "function") {
                                        for (let key of __getOwnPropNames222222222(from))
                                          if (!__hasOwnProp222222222.call(to, key) && key !== except)
                                            __defProp222222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc222222222(from, key)) || desc.enumerable });
                                      }
                                      return to;
                                    };
                                    var __toESM222222222 = (mod, isNodeMode, target) => (target = mod != null ? __create222222222(__getProtoOf222222222(mod)) : {}, __copyProps222222222(
                                      // If the importer is in node compatibility mode or this is not an ESM
                                      // file that has been converted to a CommonJS file using a Babel-
                                      // compatible transform (i.e. "__esModule" has not been set), then set
                                      // "default" to the CommonJS "module.exports" for node compatibility.
                                      isNodeMode || !mod || !mod.__esModule ? __defProp222222222(target, "default", { value: mod, enumerable: true }) : target,
                                      mod
                                    ));
                                    var __toCommonJS222222222 = (mod) => __copyProps222222222(__defProp222222222({}, "__esModule", { value: true }), mod);
                                    var require_dist222222222 = __commonJS222222222({
                                      "dist/index.js"(exports222222222, module2222222222) {
                                        var __create2222222222 = Object.create;
                                        var __defProp2222222222 = Object.defineProperty;
                                        var __getOwnPropDesc2222222222 = Object.getOwnPropertyDescriptor;
                                        var __getOwnPropNames2222222222 = Object.getOwnPropertyNames;
                                        var __getProtoOf2222222222 = Object.getPrototypeOf;
                                        var __hasOwnProp2222222222 = Object.prototype.hasOwnProperty;
                                        var __commonJS2222222222 = (cb, mod) => function __require() {
                                          return mod || (0, cb[__getOwnPropNames2222222222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                                        };
                                        var __export2222222222 = (target, all) => {
                                          for (var name in all)
                                            __defProp2222222222(target, name, { get: all[name], enumerable: true });
                                        };
                                        var __copyProps2222222222 = (to, from, except, desc) => {
                                          if (from && typeof from === "object" || typeof from === "function") {
                                            for (let key of __getOwnPropNames2222222222(from))
                                              if (!__hasOwnProp2222222222.call(to, key) && key !== except)
                                                __defProp2222222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2222222222(from, key)) || desc.enumerable });
                                          }
                                          return to;
                                        };
                                        var __toESM2222222222 = (mod, isNodeMode, target) => (target = mod != null ? __create2222222222(__getProtoOf2222222222(mod)) : {}, __copyProps2222222222(
                                          // If the importer is in node compatibility mode or this is not an ESM
                                          // file that has been converted to a CommonJS file using a Babel-
                                          // compatible transform (i.e. "__esModule" has not been set), then set
                                          // "default" to the CommonJS "module.exports" for node compatibility.
                                          isNodeMode || !mod || !mod.__esModule ? __defProp2222222222(target, "default", { value: mod, enumerable: true }) : target,
                                          mod
                                        ));
                                        var __toCommonJS2222222222 = (mod) => __copyProps2222222222(__defProp2222222222({}, "__esModule", { value: true }), mod);
                                        var require_dist2222222222 = __commonJS2222222222({
                                          "dist/index.js"(exports2222222222, module22222222222) {
                                            var __create22222222222 = Object.create;
                                            var __defProp22222222222 = Object.defineProperty;
                                            var __getOwnPropDesc22222222222 = Object.getOwnPropertyDescriptor;
                                            var __getOwnPropNames22222222222 = Object.getOwnPropertyNames;
                                            var __getProtoOf22222222222 = Object.getPrototypeOf;
                                            var __hasOwnProp22222222222 = Object.prototype.hasOwnProperty;
                                            var __commonJS22222222222 = (cb, mod) => function __require() {
                                              return mod || (0, cb[__getOwnPropNames22222222222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                                            };
                                            var __export22222222222 = (target, all) => {
                                              for (var name in all)
                                                __defProp22222222222(target, name, { get: all[name], enumerable: true });
                                            };
                                            var __copyProps22222222222 = (to, from, except, desc) => {
                                              if (from && typeof from === "object" || typeof from === "function") {
                                                for (let key of __getOwnPropNames22222222222(from))
                                                  if (!__hasOwnProp22222222222.call(to, key) && key !== except)
                                                    __defProp22222222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22222222222(from, key)) || desc.enumerable });
                                              }
                                              return to;
                                            };
                                            var __toESM22222222222 = (mod, isNodeMode, target) => (target = mod != null ? __create22222222222(__getProtoOf22222222222(mod)) : {}, __copyProps22222222222(
                                              // If the importer is in node compatibility mode or this is not an ESM
                                              // file that has been converted to a CommonJS file using a Babel-
                                              // compatible transform (i.e. "__esModule" has not been set), then set
                                              // "default" to the CommonJS "module.exports" for node compatibility.
                                              isNodeMode || !mod || !mod.__esModule ? __defProp22222222222(target, "default", { value: mod, enumerable: true }) : target,
                                              mod
                                            ));
                                            var __toCommonJS22222222222 = (mod) => __copyProps22222222222(__defProp22222222222({}, "__esModule", { value: true }), mod);
                                            var require_dist22222222222 = __commonJS22222222222({
                                              "dist/index.js"(exports22222222222, module222222222222) {
                                                var __create222222222222 = Object.create;
                                                var __defProp222222222222 = Object.defineProperty;
                                                var __getOwnPropDesc222222222222 = Object.getOwnPropertyDescriptor;
                                                var __getOwnPropNames222222222222 = Object.getOwnPropertyNames;
                                                var __getProtoOf222222222222 = Object.getPrototypeOf;
                                                var __hasOwnProp222222222222 = Object.prototype.hasOwnProperty;
                                                var __commonJS222222222222 = (cb, mod) => function __require() {
                                                  return mod || (0, cb[__getOwnPropNames222222222222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                                                };
                                                var __export222222222222 = (target, all) => {
                                                  for (var name in all)
                                                    __defProp222222222222(target, name, { get: all[name], enumerable: true });
                                                };
                                                var __copyProps222222222222 = (to, from, except, desc) => {
                                                  if (from && typeof from === "object" || typeof from === "function") {
                                                    for (let key of __getOwnPropNames222222222222(from))
                                                      if (!__hasOwnProp222222222222.call(to, key) && key !== except)
                                                        __defProp222222222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc222222222222(from, key)) || desc.enumerable });
                                                  }
                                                  return to;
                                                };
                                                var __toESM222222222222 = (mod, isNodeMode, target) => (target = mod != null ? __create222222222222(__getProtoOf222222222222(mod)) : {}, __copyProps222222222222(
                                                  // If the importer is in node compatibility mode or this is not an ESM
                                                  // file that has been converted to a CommonJS file using a Babel-
                                                  // compatible transform (i.e. "__esModule" has not been set), then set
                                                  // "default" to the CommonJS "module.exports" for node compatibility.
                                                  isNodeMode || !mod || !mod.__esModule ? __defProp222222222222(target, "default", { value: mod, enumerable: true }) : target,
                                                  mod
                                                ));
                                                var __toCommonJS222222222222 = (mod) => __copyProps222222222222(__defProp222222222222({}, "__esModule", { value: true }), mod);
                                                var require_dist222222222222 = __commonJS222222222222({
                                                  "dist/index.js"(exports222222222222, module2222222222222) {
                                                    var __create2222222222222 = Object.create;
                                                    var __defProp2222222222222 = Object.defineProperty;
                                                    var __getOwnPropDesc2222222222222 = Object.getOwnPropertyDescriptor;
                                                    var __getOwnPropNames2222222222222 = Object.getOwnPropertyNames;
                                                    var __getProtoOf2222222222222 = Object.getPrototypeOf;
                                                    var __hasOwnProp2222222222222 = Object.prototype.hasOwnProperty;
                                                    var __commonJS2222222222222 = (cb, mod) => function __require() {
                                                      return mod || (0, cb[__getOwnPropNames2222222222222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                                                    };
                                                    var __export2222222222222 = (target, all) => {
                                                      for (var name in all)
                                                        __defProp2222222222222(target, name, { get: all[name], enumerable: true });
                                                    };
                                                    var __copyProps2222222222222 = (to, from, except, desc) => {
                                                      if (from && typeof from === "object" || typeof from === "function") {
                                                        for (let key of __getOwnPropNames2222222222222(from))
                                                          if (!__hasOwnProp2222222222222.call(to, key) && key !== except)
                                                            __defProp2222222222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2222222222222(from, key)) || desc.enumerable });
                                                      }
                                                      return to;
                                                    };
                                                    var __toESM2222222222222 = (mod, isNodeMode, target) => (target = mod != null ? __create2222222222222(__getProtoOf2222222222222(mod)) : {}, __copyProps2222222222222(
                                                      // If the importer is in node compatibility mode or this is not an ESM
                                                      // file that has been converted to a CommonJS file using a Babel-
                                                      // compatible transform (i.e. "__esModule" has not been set), then set
                                                      // "default" to the CommonJS "module.exports" for node compatibility.
                                                      isNodeMode || !mod || !mod.__esModule ? __defProp2222222222222(target, "default", { value: mod, enumerable: true }) : target,
                                                      mod
                                                    ));
                                                    var __toCommonJS2222222222222 = (mod) => __copyProps2222222222222(__defProp2222222222222({}, "__esModule", { value: true }), mod);
                                                    var require_dist2222222222222 = __commonJS2222222222222({
                                                      "dist/index.js"(exports2222222222222, module22222222222222) {
                                                        var __create22222222222222 = Object.create;
                                                        var __defProp22222222222222 = Object.defineProperty;
                                                        var __getOwnPropDesc22222222222222 = Object.getOwnPropertyDescriptor;
                                                        var __getOwnPropNames22222222222222 = Object.getOwnPropertyNames;
                                                        var __getProtoOf22222222222222 = Object.getPrototypeOf;
                                                        var __hasOwnProp22222222222222 = Object.prototype.hasOwnProperty;
                                                        var __commonJS22222222222222 = (cb, mod) => function __require() {
                                                          return mod || (0, cb[__getOwnPropNames22222222222222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                                                        };
                                                        var __export22222222222222 = (target, all) => {
                                                          for (var name in all)
                                                            __defProp22222222222222(target, name, { get: all[name], enumerable: true });
                                                        };
                                                        var __copyProps22222222222222 = (to, from, except, desc) => {
                                                          if (from && typeof from === "object" || typeof from === "function") {
                                                            for (let key of __getOwnPropNames22222222222222(from))
                                                              if (!__hasOwnProp22222222222222.call(to, key) && key !== except)
                                                                __defProp22222222222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22222222222222(from, key)) || desc.enumerable });
                                                          }
                                                          return to;
                                                        };
                                                        var __toESM22222222222222 = (mod, isNodeMode, target) => (target = mod != null ? __create22222222222222(__getProtoOf22222222222222(mod)) : {}, __copyProps22222222222222(
                                                          // If the importer is in node compatibility mode or this is not an ESM
                                                          // file that has been converted to a CommonJS file using a Babel-
                                                          // compatible transform (i.e. "__esModule" has not been set), then set
                                                          // "default" to the CommonJS "module.exports" for node compatibility.
                                                          isNodeMode || !mod || !mod.__esModule ? __defProp22222222222222(target, "default", { value: mod, enumerable: true }) : target,
                                                          mod
                                                        ));
                                                        var __toCommonJS22222222222222 = (mod) => __copyProps22222222222222(__defProp22222222222222({}, "__esModule", { value: true }), mod);
                                                        var require_dist22222222222222 = __commonJS22222222222222({
                                                          "dist/index.js"(exports22222222222222, module222222222222222) {
                                                            var __create222222222222222 = Object.create;
                                                            var __defProp222222222222222 = Object.defineProperty;
                                                            var __getOwnPropDesc222222222222222 = Object.getOwnPropertyDescriptor;
                                                            var __getOwnPropNames222222222222222 = Object.getOwnPropertyNames;
                                                            var __getProtoOf222222222222222 = Object.getPrototypeOf;
                                                            var __hasOwnProp222222222222222 = Object.prototype.hasOwnProperty;
                                                            var __commonJS222222222222222 = (cb, mod) => function __require() {
                                                              return mod || (0, cb[__getOwnPropNames222222222222222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                                                            };
                                                            var __export222222222222222 = (target, all) => {
                                                              for (var name in all)
                                                                __defProp222222222222222(target, name, { get: all[name], enumerable: true });
                                                            };
                                                            var __copyProps222222222222222 = (to, from, except, desc) => {
                                                              if (from && typeof from === "object" || typeof from === "function") {
                                                                for (let key of __getOwnPropNames222222222222222(from))
                                                                  if (!__hasOwnProp222222222222222.call(to, key) && key !== except)
                                                                    __defProp222222222222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc222222222222222(from, key)) || desc.enumerable });
                                                              }
                                                              return to;
                                                            };
                                                            var __toESM222222222222222 = (mod, isNodeMode, target) => (target = mod != null ? __create222222222222222(__getProtoOf222222222222222(mod)) : {}, __copyProps222222222222222(
                                                              // If the importer is in node compatibility mode or this is not an ESM
                                                              // file that has been converted to a CommonJS file using a Babel-
                                                              // compatible transform (i.e. "__esModule" has not been set), then set
                                                              // "default" to the CommonJS "module.exports" for node compatibility.
                                                              isNodeMode || !mod || !mod.__esModule ? __defProp222222222222222(target, "default", { value: mod, enumerable: true }) : target,
                                                              mod
                                                            ));
                                                            var __toCommonJS222222222222222 = (mod) => __copyProps222222222222222(__defProp222222222222222({}, "__esModule", { value: true }), mod);
                                                            var require_dist222222222222222 = __commonJS222222222222222({
                                                              "dist/index.js"(exports222222222222222, module2222222222222222) {
                                                                var __create2222222222222222 = Object.create;
                                                                var __defProp2222222222222222 = Object.defineProperty;
                                                                var __getOwnPropDesc2222222222222222 = Object.getOwnPropertyDescriptor;
                                                                var __getOwnPropNames2222222222222222 = Object.getOwnPropertyNames;
                                                                var __getProtoOf2222222222222222 = Object.getPrototypeOf;
                                                                var __hasOwnProp2222222222222222 = Object.prototype.hasOwnProperty;
                                                                var __commonJS2222222222222222 = (cb, mod) => function __require() {
                                                                  return mod || (0, cb[__getOwnPropNames2222222222222222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                                                                };
                                                                var __export2222222222222222 = (target, all) => {
                                                                  for (var name in all)
                                                                    __defProp2222222222222222(target, name, { get: all[name], enumerable: true });
                                                                };
                                                                var __copyProps2222222222222222 = (to, from, except, desc) => {
                                                                  if (from && typeof from === "object" || typeof from === "function") {
                                                                    for (let key of __getOwnPropNames2222222222222222(from))
                                                                      if (!__hasOwnProp2222222222222222.call(to, key) && key !== except)
                                                                        __defProp2222222222222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2222222222222222(from, key)) || desc.enumerable });
                                                                  }
                                                                  return to;
                                                                };
                                                                var __toESM2222222222222222 = (mod, isNodeMode, target) => (target = mod != null ? __create2222222222222222(__getProtoOf2222222222222222(mod)) : {}, __copyProps2222222222222222(
                                                                  // If the importer is in node compatibility mode or this is not an ESM
                                                                  // file that has been converted to a CommonJS file using a Babel-
                                                                  // compatible transform (i.e. "__esModule" has not been set), then set
                                                                  // "default" to the CommonJS "module.exports" for node compatibility.
                                                                  isNodeMode || !mod || !mod.__esModule ? __defProp2222222222222222(target, "default", { value: mod, enumerable: true }) : target,
                                                                  mod
                                                                ));
                                                                var __toCommonJS2222222222222222 = (mod) => __copyProps2222222222222222(__defProp2222222222222222({}, "__esModule", { value: true }), mod);
                                                                var require_dist2222222222222222 = __commonJS2222222222222222({
                                                                  "dist/index.js"(exports2222222222222222, module22222222222222222) {
                                                                    var __create22222222222222222 = Object.create;
                                                                    var __defProp22222222222222222 = Object.defineProperty;
                                                                    var __getOwnPropDesc22222222222222222 = Object.getOwnPropertyDescriptor;
                                                                    var __getOwnPropNames22222222222222222 = Object.getOwnPropertyNames;
                                                                    var __getProtoOf22222222222222222 = Object.getPrototypeOf;
                                                                    var __hasOwnProp22222222222222222 = Object.prototype.hasOwnProperty;
                                                                    var __commonJS22222222222222222 = (cb, mod) => function __require() {
                                                                      return mod || (0, cb[__getOwnPropNames22222222222222222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
                                                                    };
                                                                    var __export22222222222222222 = (target, all) => {
                                                                      for (var name in all)
                                                                        __defProp22222222222222222(target, name, { get: all[name], enumerable: true });
                                                                    };
                                                                    var __copyProps22222222222222222 = (to, from, except, desc) => {
                                                                      if (from && typeof from === "object" || typeof from === "function") {
                                                                        for (let key of __getOwnPropNames22222222222222222(from))
                                                                          if (!__hasOwnProp22222222222222222.call(to, key) && key !== except)
                                                                            __defProp22222222222222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22222222222222222(from, key)) || desc.enumerable });
                                                                      }
                                                                      return to;
                                                                    };
                                                                    var __toESM22222222222222222 = (mod, isNodeMode, target) => (target = mod != null ? __create22222222222222222(__getProtoOf22222222222222222(mod)) : {}, __copyProps22222222222222222(
                                                                      // If the importer is in node compatibility mode or this is not an ESM
                                                                      // file that has been converted to a CommonJS file using a Babel-
                                                                      // compatible transform (i.e. "__esModule" has not been set), then set
                                                                      // "default" to the CommonJS "module.exports" for node compatibility.
                                                                      isNodeMode || !mod || !mod.__esModule ? __defProp22222222222222222(target, "default", { value: mod, enumerable: true }) : target,
                                                                      mod
                                                                    ));
                                                                    var __toCommonJS22222222222222222 = (mod) => __copyProps22222222222222222(__defProp22222222222222222({}, "__esModule", { value: true }), mod);
                                                                    var require_dist22222222222222222 = __commonJS22222222222222222({
                                                                      "dist/index.js"(exports22222222222222222, module222222222222222222) {
                                                                        var __create222222222222222222 = Object.create;
                                                                        var __defProp222222222222222222 = Object.defineProperty;
                                                                        var __getOwnPropDesc222222222222222222 = Object.getOwnPropertyDescriptor;
                                                                        var __getOwnPropNames222222222222222222 = Object.getOwnPropertyNames;
                                                                        var __getProtoOf222222222222222222 = Object.getPrototypeOf;
                                                                        var __hasOwnProp222222222222222222 = Object.prototype.hasOwnProperty;
                                                                        var __export222222222222222222 = (target, all) => {
                                                                          for (var name in all)
                                                                            __defProp222222222222222222(target, name, { get: all[name], enumerable: true });
                                                                        };
                                                                        var __copyProps222222222222222222 = (to, from, except, desc) => {
                                                                          if (from && typeof from === "object" || typeof from === "function") {
                                                                            for (let key of __getOwnPropNames222222222222222222(from))
                                                                              if (!__hasOwnProp222222222222222222.call(to, key) && key !== except)
                                                                                __defProp222222222222222222(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc222222222222222222(from, key)) || desc.enumerable });
                                                                          }
                                                                          return to;
                                                                        };
                                                                        var __toESM222222222222222222 = (mod, isNodeMode, target) => (target = mod != null ? __create222222222222222222(__getProtoOf222222222222222222(mod)) : {}, __copyProps222222222222222222(
                                                                          // If the importer is in node compatibility mode or this is not an ESM
                                                                          // file that has been converted to a CommonJS file using a Babel-
                                                                          // compatible transform (i.e. "__esModule" has not been set), then set
                                                                          // "default" to the CommonJS "module.exports" for node compatibility.
                                                                          isNodeMode || !mod || !mod.__esModule ? __defProp222222222222222222(target, "default", { value: mod, enumerable: true }) : target,
                                                                          mod
                                                                        ));
                                                                        var __toCommonJS222222222222222222 = (mod) => __copyProps222222222222222222(__defProp222222222222222222({}, "__esModule", { value: true }), mod);
                                                                        var node_bacnet_exports222222222222222222 = {};
                                                                        __export222222222222222222(node_bacnet_exports222222222222222222, {
                                                                          _: () => import_underscore222222222222222222.default,
                                                                          bacnetErrorToString: () => bacnetErrorToString222222222222222222,
                                                                          default: () => node_bacnet_default222222222222222222,
                                                                          enums: () => enum_exports222222222222222222,
                                                                          parseValue: () => parseValue222222222222222222
                                                                        });
                                                                        module222222222222222222.exports = __toCommonJS222222222222222222(node_bacnet_exports222222222222222222);
                                                                        var enum_exports222222222222222222 = {};
                                                                        __export222222222222222222(enum_exports222222222222222222, {
                                                                          ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL222222222222222222,
                                                                          ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS222222222222222222,
                                                                          ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG222222222222222222,
                                                                          ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES222222222222222222,
                                                                          ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE222222222222222222,
                                                                          ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT222222222222222222,
                                                                          ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE222222222222222222,
                                                                          ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY222222222222222222,
                                                                          ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID222222222222222222,
                                                                          ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY222222222222222222,
                                                                          ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY222222222222222222,
                                                                          AbortReason: () => AbortReason222222222222222222,
                                                                          AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable222222222222222222,
                                                                          AccessCredentialDisable: () => AccessCredentialDisable222222222222222222,
                                                                          AccessCredentialDisableReason: () => AccessCredentialDisableReason222222222222222222,
                                                                          AccessEvent: () => AccessEvent222222222222222222,
                                                                          AccessPassbackMode: () => AccessPassbackMode222222222222222222,
                                                                          AccessUserType: () => AccessUserType222222222222222222,
                                                                          AccessZoneOccupancyState: () => AccessZoneOccupancyState222222222222222222,
                                                                          Action: () => Action222222222222222222,
                                                                          ApplicationTag: () => ApplicationTag222222222222222222,
                                                                          ApplicationTagName: () => ApplicationTagName222222222222222222,
                                                                          AuthenticationFactorType: () => AuthenticationFactorType222222222222222222,
                                                                          AuthenticationStatus: () => AuthenticationStatus222222222222222222,
                                                                          AuthorizationExemption: () => AuthorizationExemption222222222222222222,
                                                                          AuthorizationMode: () => AuthorizationMode222222222222222222,
                                                                          BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH322222222222222222,
                                                                          BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP222222222222222222,
                                                                          BackupState: () => BackupState222222222222222222,
                                                                          BinaryLightingPV: () => BinaryLightingPV222222222222222222,
                                                                          BinaryPV: () => BinaryPV222222222222222222,
                                                                          BvlcResultFormat: () => BvlcResultFormat222222222222222222,
                                                                          BvlcResultPurpose: () => BvlcResultPurpose222222222222222222,
                                                                          CharacterStringEncoding: () => CharacterStringEncoding222222222222222222,
                                                                          ConfirmedServiceChoice: () => ConfirmedServiceChoice222222222222222222,
                                                                          CovType: () => CovType222222222222222222,
                                                                          DaysOfWeek: () => DaysOfWeek222222222222222222,
                                                                          DeviceStatus: () => DeviceStatus222222222222222222,
                                                                          DoorAlarmState: () => DoorAlarmState222222222222222222,
                                                                          DoorSecuredStatus: () => DoorSecuredStatus222222222222222222,
                                                                          DoorStatus: () => DoorStatus222222222222222222,
                                                                          DoorValue: () => DoorValue222222222222222222,
                                                                          EnableDisable: () => EnableDisable222222222222222222,
                                                                          EngineeringUnits: () => EngineeringUnits222222222222222222,
                                                                          ErrorClass: () => ErrorClass222222222222222222,
                                                                          ErrorClassName: () => ErrorClassName222222222222222222,
                                                                          ErrorCode: () => ErrorCode222222222222222222,
                                                                          ErrorCodeName: () => ErrorCodeName222222222222222222,
                                                                          EscalatorFault: () => EscalatorFault222222222222222222,
                                                                          EscalatorMode: () => EscalatorMode222222222222222222,
                                                                          EscalatorOperationDirection: () => EscalatorOperationDirection222222222222222222,
                                                                          EventState: () => EventState222222222222222222,
                                                                          EventTransitionBits: () => EventTransitionBits222222222222222222,
                                                                          EventType: () => EventType222222222222222222,
                                                                          FaultType: () => FaultType222222222222222222,
                                                                          FileAccessMethod: () => FileAccessMethod222222222222222222,
                                                                          IPMode: () => IPMode222222222222222222,
                                                                          LifeSafetyMode: () => LifeSafetyMode222222222222222222,
                                                                          LifeSafetyOperation: () => LifeSafetyOperation222222222222222222,
                                                                          LifeSafetyState: () => LifeSafetyState222222222222222222,
                                                                          LiftCarDirection: () => LiftCarDirection222222222222222222,
                                                                          LiftCarDoorCommand: () => LiftCarDoorCommand222222222222222222,
                                                                          LiftCarDriveStatus: () => LiftCarDriveStatus222222222222222222,
                                                                          LiftCarMode: () => LiftCarMode222222222222222222,
                                                                          LiftFault: () => LiftFault222222222222222222,
                                                                          LiftGroupMode: () => LiftGroupMode222222222222222222,
                                                                          LightingInProgress: () => LightingInProgress222222222222222222,
                                                                          LightingOperation: () => LightingOperation222222222222222222,
                                                                          LightingTransition: () => LightingTransition222222222222222222,
                                                                          LimitEnable: () => LimitEnable222222222222222222,
                                                                          LockStatus: () => LockStatus222222222222222222,
                                                                          LogStatus: () => LogStatus222222222222222222,
                                                                          LoggingType: () => LoggingType222222222222222222,
                                                                          Maintenance: () => Maintenance222222222222222222,
                                                                          MaxApduLengthAccepted: () => MaxApduLengthAccepted222222222222222222,
                                                                          MaxSegmentsAccepted: () => MaxSegmentsAccepted222222222222222222,
                                                                          NetworkLayerMessageType: () => NetworkLayerMessageType222222222222222222,
                                                                          NetworkNumberQuality: () => NetworkNumberQuality222222222222222222,
                                                                          NetworkPortCommand: () => NetworkPortCommand222222222222222222,
                                                                          NetworkType: () => NetworkType222222222222222222,
                                                                          NodeType: () => NodeType222222222222222222,
                                                                          NotifyType: () => NotifyType222222222222222222,
                                                                          NpduControlBit: () => NpduControlBit222222222222222222,
                                                                          NpduControlPriority: () => NpduControlPriority222222222222222222,
                                                                          ObjectType: () => ObjectType222222222222222222,
                                                                          ObjectTypesSupported: () => ObjectTypesSupported222222222222222222,
                                                                          PDU_TYPE_MASK: () => PDU_TYPE_MASK222222222222222222,
                                                                          PduConReqBit: () => PduConReqBit222222222222222222,
                                                                          PduSegAckBit: () => PduSegAckBit222222222222222222,
                                                                          PduType: () => PduType222222222222222222,
                                                                          Polarity: () => Polarity222222222222222222,
                                                                          ProgramError: () => ProgramError222222222222222222,
                                                                          ProgramRequest: () => ProgramRequest222222222222222222,
                                                                          ProgramState: () => ProgramState222222222222222222,
                                                                          PropertyIdentifier: () => PropertyIdentifier222222222222222222,
                                                                          PropertyStates: () => PropertyStates222222222222222222,
                                                                          ProtocolLevel: () => ProtocolLevel222222222222222222,
                                                                          ReadRangeType: () => ReadRangeType222222222222222222,
                                                                          ReinitializedState: () => ReinitializedState222222222222222222,
                                                                          RejectReason: () => RejectReason222222222222222222,
                                                                          Relationship: () => Relationship222222222222222222,
                                                                          Reliability: () => Reliability222222222222222222,
                                                                          RestartReason: () => RestartReason222222222222222222,
                                                                          ResultFlags: () => ResultFlags222222222222222222,
                                                                          SecurityLevel: () => SecurityLevel222222222222222222,
                                                                          SecurityPolicy: () => SecurityPolicy222222222222222222,
                                                                          Segmentation: () => Segmentation222222222222222222,
                                                                          ServicesSupported: () => ServicesSupported222222222222222222,
                                                                          ShedState: () => ShedState222222222222222222,
                                                                          SilencedState: () => SilencedState222222222222222222,
                                                                          StatusFlags: () => StatusFlags222222222222222222,
                                                                          TimeStamp: () => TimeStamp222222222222222222,
                                                                          TimerState: () => TimerState222222222222222222,
                                                                          TimerTransition: () => TimerTransition222222222222222222,
                                                                          UnconfirmedServiceChoice: () => UnconfirmedServiceChoice222222222222222222,
                                                                          VTClass: () => VTClass222222222222222222,
                                                                          WriteStatus: () => WriteStatus222222222222222222,
                                                                          getEnumName: () => getEnumName222222222222222222
                                                                        });
                                                                        var import_debug422222222222222222 = __toESM222222222222222222(require("debug"));
                                                                        var debug522222222222222222 = (0, import_debug422222222222222222.default)("bacnet=enum=debug");
                                                                        var trace322222222222222222 = (0, import_debug422222222222222222.default)("bacnet=enum=trace");
                                                                        function invertEnum222222222222222222(enumToInvert) {
                                                                          const invertedEnum = {};
                                                                          Object.keys(enumToInvert).forEach((key) => {
                                                                            invertedEnum[enumToInvert[key]] = key;
                                                                          });
                                                                          return invertedEnum;
                                                                        }
                                                                        function getEnumName222222222222222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                                                                          if (!Number.isInteger(value)) {
                                                                            throw new Error(
                                                                              'getEnumName() can only be passed an integer value, was given "' + value + '"'
                                                                            );
                                                                          }
                                                                          let foundEntry;
                                                                          try {
                                                                            const invertedGroup = invertEnum222222222222222222(group);
                                                                            foundEntry = invertedGroup[value];
                                                                            if (foundEntry === void 0 && undefinedFallbackValue) {
                                                                              foundEntry = undefinedFallbackValue;
                                                                            }
                                                                            if (foundEntry === void 0) {
                                                                              foundEntry = value.toString();
                                                                            } else if (addNumberValue) {
                                                                              foundEntry += "(" + value + ")";
                                                                            }
                                                                          } catch (e) {
                                                                            trace322222222222222222(e.message);
                                                                            foundEntry = null;
                                                                          }
                                                                          return foundEntry;
                                                                        }
                                                                        var PDU_TYPE_MASK222222222222222222 = 240;
                                                                        var ASN1_MAX_OBJECT222222222222222222 = 1023;
                                                                        var ASN1_INSTANCE_BITS222222222222222222 = 22;
                                                                        var ASN1_MAX_INSTANCE222222222222222222 = 4194303;
                                                                        var ASN1_MAX_BITSTRING_BYTES222222222222222222 = 15;
                                                                        var ASN1_ARRAY_ALL222222222222222222 = 4294967295;
                                                                        var ASN1_NO_PRIORITY222222222222222222 = 0;
                                                                        var ASN1_MIN_PRIORITY222222222222222222 = 1;
                                                                        var ASN1_MAX_PRIORITY222222222222222222 = 16;
                                                                        var ASN1_MAX_APPLICATION_TAG222222222222222222 = 16;
                                                                        var ASN1_MAX_OBJECT_TYPE222222222222222222 = 1024;
                                                                        var ASN1_MAX_PROPERTY_ID222222222222222222 = 4194303;
                                                                        var BVLL_TYPE_BACNET_IP222222222222222222 = 129;
                                                                        var BVLC_HEADER_LENGTH322222222222222222 = 4;
                                                                        var ConfirmedServiceChoice222222222222222222 = /* @__PURE__ */ ((ConfirmedServiceChoice2222222222222222222) => {
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["READ_RANGE"] = 26] = "READ_RANGE";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                                          ConfirmedServiceChoice2222222222222222222[ConfirmedServiceChoice2222222222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                                          return ConfirmedServiceChoice2222222222222222222;
                                                                        })(ConfirmedServiceChoice222222222222222222 || {});
                                                                        var UnconfirmedServiceChoice222222222222222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice2222222222222222222) => {
                                                                          UnconfirmedServiceChoice2222222222222222222[UnconfirmedServiceChoice2222222222222222222["I_AM"] = 0] = "I_AM";
                                                                          UnconfirmedServiceChoice2222222222222222222[UnconfirmedServiceChoice2222222222222222222["I_HAVE"] = 1] = "I_HAVE";
                                                                          UnconfirmedServiceChoice2222222222222222222[UnconfirmedServiceChoice2222222222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                                                                          UnconfirmedServiceChoice2222222222222222222[UnconfirmedServiceChoice2222222222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                                          UnconfirmedServiceChoice2222222222222222222[UnconfirmedServiceChoice2222222222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                                          UnconfirmedServiceChoice2222222222222222222[UnconfirmedServiceChoice2222222222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                                                                          UnconfirmedServiceChoice2222222222222222222[UnconfirmedServiceChoice2222222222222222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                                                                          UnconfirmedServiceChoice2222222222222222222[UnconfirmedServiceChoice2222222222222222222["WHO_HAS"] = 7] = "WHO_HAS";
                                                                          UnconfirmedServiceChoice2222222222222222222[UnconfirmedServiceChoice2222222222222222222["WHO_IS"] = 8] = "WHO_IS";
                                                                          UnconfirmedServiceChoice2222222222222222222[UnconfirmedServiceChoice2222222222222222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                                                                          UnconfirmedServiceChoice2222222222222222222[UnconfirmedServiceChoice2222222222222222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                                                                          UnconfirmedServiceChoice2222222222222222222[UnconfirmedServiceChoice2222222222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                                          return UnconfirmedServiceChoice2222222222222222222;
                                                                        })(UnconfirmedServiceChoice222222222222222222 || {});
                                                                        var AbortReason222222222222222222 = /* @__PURE__ */ ((AbortReason2222222222222222222) => {
                                                                          AbortReason2222222222222222222[AbortReason2222222222222222222["OTHER"] = 0] = "OTHER";
                                                                          AbortReason2222222222222222222[AbortReason2222222222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                                          AbortReason2222222222222222222[AbortReason2222222222222222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                                                                          AbortReason2222222222222222222[AbortReason2222222222222222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                                          AbortReason2222222222222222222[AbortReason2222222222222222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                                                                          AbortReason2222222222222222222[AbortReason2222222222222222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                                                                          AbortReason2222222222222222222[AbortReason2222222222222222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                                                                          AbortReason2222222222222222222[AbortReason2222222222222222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                                                                          AbortReason2222222222222222222[AbortReason2222222222222222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                                                                          AbortReason2222222222222222222[AbortReason2222222222222222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                                                                          AbortReason2222222222222222222[AbortReason2222222222222222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                                                                          AbortReason2222222222222222222[AbortReason2222222222222222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                                                                          return AbortReason2222222222222222222;
                                                                        })(AbortReason222222222222222222 || {});
                                                                        var RejectReason222222222222222222 = /* @__PURE__ */ ((RejectReason2222222222222222222) => {
                                                                          RejectReason2222222222222222222[RejectReason2222222222222222222["OTHER"] = 0] = "OTHER";
                                                                          RejectReason2222222222222222222[RejectReason2222222222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                                          RejectReason2222222222222222222[RejectReason2222222222222222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                                                                          RejectReason2222222222222222222[RejectReason2222222222222222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                                                                          RejectReason2222222222222222222[RejectReason2222222222222222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                                                                          RejectReason2222222222222222222[RejectReason2222222222222222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                                                                          RejectReason2222222222222222222[RejectReason2222222222222222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                                                                          RejectReason2222222222222222222[RejectReason2222222222222222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                                                                          RejectReason2222222222222222222[RejectReason2222222222222222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                                                                          RejectReason2222222222222222222[RejectReason2222222222222222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                                                                          return RejectReason2222222222222222222;
                                                                        })(RejectReason222222222222222222 || {});
                                                                        var ErrorClass222222222222222222 = /* @__PURE__ */ ((ErrorClass2222222222222222222) => {
                                                                          ErrorClass2222222222222222222[ErrorClass2222222222222222222["DEVICE"] = 0] = "DEVICE";
                                                                          ErrorClass2222222222222222222[ErrorClass2222222222222222222["OBJECT"] = 1] = "OBJECT";
                                                                          ErrorClass2222222222222222222[ErrorClass2222222222222222222["PROPERTY"] = 2] = "PROPERTY";
                                                                          ErrorClass2222222222222222222[ErrorClass2222222222222222222["RESOURCES"] = 3] = "RESOURCES";
                                                                          ErrorClass2222222222222222222[ErrorClass2222222222222222222["SECURITY"] = 4] = "SECURITY";
                                                                          ErrorClass2222222222222222222[ErrorClass2222222222222222222["SERVICES"] = 5] = "SERVICES";
                                                                          ErrorClass2222222222222222222[ErrorClass2222222222222222222["VT"] = 6] = "VT";
                                                                          ErrorClass2222222222222222222[ErrorClass2222222222222222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                                                                          return ErrorClass2222222222222222222;
                                                                        })(ErrorClass222222222222222222 || {});
                                                                        var ErrorClassName222222222222222222 = invertEnum222222222222222222(
                                                                          ErrorClass222222222222222222
                                                                        );
                                                                        var ErrorCode222222222222222222 = /* @__PURE__ */ ((ErrorCode2222222222222222222) => {
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["BUSY"] = 82] = "BUSY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["FILE_FULL"] = 128] = "FILE_FULL";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["OTHER"] = 0] = "OTHER";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["SUCCESS"] = 84] = "SUCCESS";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["TIMEOUT"] = 30] = "TIMEOUT";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                                                                          ErrorCode2222222222222222222[ErrorCode2222222222222222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                                                                          return ErrorCode2222222222222222222;
                                                                        })(ErrorCode222222222222222222 || {});
                                                                        var ErrorCodeName222222222222222222 = invertEnum222222222222222222(
                                                                          ErrorCode222222222222222222
                                                                        );
                                                                        var AccessAuthenticationFactorDisable222222222222222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable2222222222222222222) => {
                                                                          AccessAuthenticationFactorDisable2222222222222222222[AccessAuthenticationFactorDisable2222222222222222222["NONE"] = 0] = "NONE";
                                                                          AccessAuthenticationFactorDisable2222222222222222222[AccessAuthenticationFactorDisable2222222222222222222["DISABLED"] = 1] = "DISABLED";
                                                                          AccessAuthenticationFactorDisable2222222222222222222[AccessAuthenticationFactorDisable2222222222222222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                                                                          AccessAuthenticationFactorDisable2222222222222222222[AccessAuthenticationFactorDisable2222222222222222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                                                                          AccessAuthenticationFactorDisable2222222222222222222[AccessAuthenticationFactorDisable2222222222222222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                                                                          AccessAuthenticationFactorDisable2222222222222222222[AccessAuthenticationFactorDisable2222222222222222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                                                                          return AccessAuthenticationFactorDisable2222222222222222222;
                                                                        })(AccessAuthenticationFactorDisable222222222222222222 || {});
                                                                        var AccessCredentialDisable222222222222222222 = /* @__PURE__ */ ((AccessCredentialDisable2222222222222222222) => {
                                                                          AccessCredentialDisable2222222222222222222[AccessCredentialDisable2222222222222222222["NONE"] = 0] = "NONE";
                                                                          AccessCredentialDisable2222222222222222222[AccessCredentialDisable2222222222222222222["DISABLE"] = 1] = "DISABLE";
                                                                          AccessCredentialDisable2222222222222222222[AccessCredentialDisable2222222222222222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                                                                          AccessCredentialDisable2222222222222222222[AccessCredentialDisable2222222222222222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                                                                          return AccessCredentialDisable2222222222222222222;
                                                                        })(AccessCredentialDisable222222222222222222 || {});
                                                                        var AccessCredentialDisableReason222222222222222222 = /* @__PURE__ */ ((AccessCredentialDisableReason2222222222222222222) => {
                                                                          AccessCredentialDisableReason2222222222222222222[AccessCredentialDisableReason2222222222222222222["DISABLED"] = 0] = "DISABLED";
                                                                          AccessCredentialDisableReason2222222222222222222[AccessCredentialDisableReason2222222222222222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                                                                          AccessCredentialDisableReason2222222222222222222[AccessCredentialDisableReason2222222222222222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                                                                          AccessCredentialDisableReason2222222222222222222[AccessCredentialDisableReason2222222222222222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                                                                          AccessCredentialDisableReason2222222222222222222[AccessCredentialDisableReason2222222222222222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                                                                          AccessCredentialDisableReason2222222222222222222[AccessCredentialDisableReason2222222222222222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                                                                          AccessCredentialDisableReason2222222222222222222[AccessCredentialDisableReason2222222222222222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                                                                          AccessCredentialDisableReason2222222222222222222[AccessCredentialDisableReason2222222222222222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                                                                          AccessCredentialDisableReason2222222222222222222[AccessCredentialDisableReason2222222222222222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                                                                          AccessCredentialDisableReason2222222222222222222[AccessCredentialDisableReason2222222222222222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                                                                          return AccessCredentialDisableReason2222222222222222222;
                                                                        })(AccessCredentialDisableReason222222222222222222 || {});
                                                                        var AccessEvent222222222222222222 = /* @__PURE__ */ ((AccessEvent2222222222222222222) => {
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["NONE"] = 0] = "NONE";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["GRANTED"] = 1] = "GRANTED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["MUSTER"] = 2] = "MUSTER";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DURESS"] = 4] = "DURESS";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["TRACE"] = 5] = "TRACE";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                                                                          AccessEvent2222222222222222222[AccessEvent2222222222222222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                                                                          return AccessEvent2222222222222222222;
                                                                        })(AccessEvent222222222222222222 || {});
                                                                        var AccessPassbackMode222222222222222222 = /* @__PURE__ */ ((AccessPassbackMode2222222222222222222) => {
                                                                          AccessPassbackMode2222222222222222222[AccessPassbackMode2222222222222222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                                                                          AccessPassbackMode2222222222222222222[AccessPassbackMode2222222222222222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                                                                          AccessPassbackMode2222222222222222222[AccessPassbackMode2222222222222222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                                                                          return AccessPassbackMode2222222222222222222;
                                                                        })(AccessPassbackMode222222222222222222 || {});
                                                                        var AccessUserType222222222222222222 = /* @__PURE__ */ ((AccessUserType2222222222222222222) => {
                                                                          AccessUserType2222222222222222222[AccessUserType2222222222222222222["ASSET"] = 0] = "ASSET";
                                                                          AccessUserType2222222222222222222[AccessUserType2222222222222222222["GROUP"] = 1] = "GROUP";
                                                                          AccessUserType2222222222222222222[AccessUserType2222222222222222222["PERSON"] = 2] = "PERSON";
                                                                          return AccessUserType2222222222222222222;
                                                                        })(AccessUserType222222222222222222 || {});
                                                                        var AccessZoneOccupancyState222222222222222222 = /* @__PURE__ */ ((AccessZoneOccupancyState2222222222222222222) => {
                                                                          AccessZoneOccupancyState2222222222222222222[AccessZoneOccupancyState2222222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                          AccessZoneOccupancyState2222222222222222222[AccessZoneOccupancyState2222222222222222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                                                                          AccessZoneOccupancyState2222222222222222222[AccessZoneOccupancyState2222222222222222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                                                                          AccessZoneOccupancyState2222222222222222222[AccessZoneOccupancyState2222222222222222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                                                                          AccessZoneOccupancyState2222222222222222222[AccessZoneOccupancyState2222222222222222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                                                                          AccessZoneOccupancyState2222222222222222222[AccessZoneOccupancyState2222222222222222222["DISABLED"] = 5] = "DISABLED";
                                                                          AccessZoneOccupancyState2222222222222222222[AccessZoneOccupancyState2222222222222222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                                                                          return AccessZoneOccupancyState2222222222222222222;
                                                                        })(AccessZoneOccupancyState222222222222222222 || {});
                                                                        var Action222222222222222222 = /* @__PURE__ */ ((Action2222222222222222222) => {
                                                                          Action2222222222222222222[Action2222222222222222222["DIRECT"] = 0] = "DIRECT";
                                                                          Action2222222222222222222[Action2222222222222222222["REVERSE"] = 1] = "REVERSE";
                                                                          return Action2222222222222222222;
                                                                        })(Action222222222222222222 || {});
                                                                        var AuthenticationFactorType222222222222222222 = /* @__PURE__ */ ((AuthenticationFactorType2222222222222222222) => {
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["UNDEFINED"] = 0] = "UNDEFINED";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["ERROR"] = 1] = "ERROR";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["CUSTOM"] = 2] = "CUSTOM";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["WIEGAND26"] = 8] = "WIEGAND26";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["WIEGAND37"] = 9] = "WIEGAND37";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["FASC_N"] = 13] = "FASC_N";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["GSA75"] = 17] = "GSA75";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["CHUID"] = 18] = "CHUID";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["GUID"] = 20] = "GUID";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["CBEFF_A"] = 21] = "CBEFF_A";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["CBEFF_B"] = 22] = "CBEFF_B";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["CBEFF_C"] = 23] = "CBEFF_C";
                                                                          AuthenticationFactorType2222222222222222222[AuthenticationFactorType2222222222222222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                                                                          return AuthenticationFactorType2222222222222222222;
                                                                        })(AuthenticationFactorType222222222222222222 || {});
                                                                        var AuthenticationStatus222222222222222222 = /* @__PURE__ */ ((AuthenticationStatus2222222222222222222) => {
                                                                          AuthenticationStatus2222222222222222222[AuthenticationStatus2222222222222222222["NOT_READY"] = 0] = "NOT_READY";
                                                                          AuthenticationStatus2222222222222222222[AuthenticationStatus2222222222222222222["READY"] = 1] = "READY";
                                                                          AuthenticationStatus2222222222222222222[AuthenticationStatus2222222222222222222["DISABLED"] = 2] = "DISABLED";
                                                                          AuthenticationStatus2222222222222222222[AuthenticationStatus2222222222222222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                                                                          AuthenticationStatus2222222222222222222[AuthenticationStatus2222222222222222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                                                                          AuthenticationStatus2222222222222222222[AuthenticationStatus2222222222222222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                                                                          AuthenticationStatus2222222222222222222[AuthenticationStatus2222222222222222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                                                                          return AuthenticationStatus2222222222222222222;
                                                                        })(AuthenticationStatus222222222222222222 || {});
                                                                        var AuthorizationExemption222222222222222222 = /* @__PURE__ */ ((AuthorizationExemption2222222222222222222) => {
                                                                          AuthorizationExemption2222222222222222222[AuthorizationExemption2222222222222222222["PASSBACK"] = 0] = "PASSBACK";
                                                                          AuthorizationExemption2222222222222222222[AuthorizationExemption2222222222222222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                                                                          AuthorizationExemption2222222222222222222[AuthorizationExemption2222222222222222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                                                                          AuthorizationExemption2222222222222222222[AuthorizationExemption2222222222222222222["LOCKOUT"] = 3] = "LOCKOUT";
                                                                          AuthorizationExemption2222222222222222222[AuthorizationExemption2222222222222222222["DENY"] = 4] = "DENY";
                                                                          AuthorizationExemption2222222222222222222[AuthorizationExemption2222222222222222222["VERIFICATION"] = 5] = "VERIFICATION";
                                                                          AuthorizationExemption2222222222222222222[AuthorizationExemption2222222222222222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                                                                          return AuthorizationExemption2222222222222222222;
                                                                        })(AuthorizationExemption222222222222222222 || {});
                                                                        var AuthorizationMode222222222222222222 = /* @__PURE__ */ ((AuthorizationMode2222222222222222222) => {
                                                                          AuthorizationMode2222222222222222222[AuthorizationMode2222222222222222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                                                                          AuthorizationMode2222222222222222222[AuthorizationMode2222222222222222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                                                                          AuthorizationMode2222222222222222222[AuthorizationMode2222222222222222222["DENY_ALL"] = 2] = "DENY_ALL";
                                                                          AuthorizationMode2222222222222222222[AuthorizationMode2222222222222222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                                                                          AuthorizationMode2222222222222222222[AuthorizationMode2222222222222222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                                                                          AuthorizationMode2222222222222222222[AuthorizationMode2222222222222222222["NONE"] = 5] = "NONE";
                                                                          return AuthorizationMode2222222222222222222;
                                                                        })(AuthorizationMode222222222222222222 || {});
                                                                        var BackupState222222222222222222 = /* @__PURE__ */ ((BackupState2222222222222222222) => {
                                                                          BackupState2222222222222222222[BackupState2222222222222222222["IDLE"] = 0] = "IDLE";
                                                                          BackupState2222222222222222222[BackupState2222222222222222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                                                                          BackupState2222222222222222222[BackupState2222222222222222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                                                                          BackupState2222222222222222222[BackupState2222222222222222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                                                                          BackupState2222222222222222222[BackupState2222222222222222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                                                                          BackupState2222222222222222222[BackupState2222222222222222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                                                                          BackupState2222222222222222222[BackupState2222222222222222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                                                                          return BackupState2222222222222222222;
                                                                        })(BackupState222222222222222222 || {});
                                                                        var BinaryLightingPV222222222222222222 = /* @__PURE__ */ ((BinaryLightingPV2222222222222222222) => {
                                                                          BinaryLightingPV2222222222222222222[BinaryLightingPV2222222222222222222["OFF"] = 0] = "OFF";
                                                                          BinaryLightingPV2222222222222222222[BinaryLightingPV2222222222222222222["ON"] = 1] = "ON";
                                                                          BinaryLightingPV2222222222222222222[BinaryLightingPV2222222222222222222["WARN"] = 2] = "WARN";
                                                                          BinaryLightingPV2222222222222222222[BinaryLightingPV2222222222222222222["WARN_OFF"] = 3] = "WARN_OFF";
                                                                          BinaryLightingPV2222222222222222222[BinaryLightingPV2222222222222222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                                                                          BinaryLightingPV2222222222222222222[BinaryLightingPV2222222222222222222["STOP"] = 5] = "STOP";
                                                                          return BinaryLightingPV2222222222222222222;
                                                                        })(BinaryLightingPV222222222222222222 || {});
                                                                        var BinaryPV222222222222222222 = /* @__PURE__ */ ((BinaryPV2222222222222222222) => {
                                                                          BinaryPV2222222222222222222[BinaryPV2222222222222222222["INACTIVE"] = 0] = "INACTIVE";
                                                                          BinaryPV2222222222222222222[BinaryPV2222222222222222222["ACTIVE"] = 1] = "ACTIVE";
                                                                          return BinaryPV2222222222222222222;
                                                                        })(BinaryPV222222222222222222 || {});
                                                                        var DeviceStatus222222222222222222 = /* @__PURE__ */ ((DeviceStatus2222222222222222222) => {
                                                                          DeviceStatus2222222222222222222[DeviceStatus2222222222222222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                                                                          DeviceStatus2222222222222222222[DeviceStatus2222222222222222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                                                                          DeviceStatus2222222222222222222[DeviceStatus2222222222222222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                                                                          DeviceStatus2222222222222222222[DeviceStatus2222222222222222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                                                                          DeviceStatus2222222222222222222[DeviceStatus2222222222222222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                                                                          DeviceStatus2222222222222222222[DeviceStatus2222222222222222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                                                                          return DeviceStatus2222222222222222222;
                                                                        })(DeviceStatus222222222222222222 || {});
                                                                        var DoorAlarmState222222222222222222 = /* @__PURE__ */ ((DoorAlarmState2222222222222222222) => {
                                                                          DoorAlarmState2222222222222222222[DoorAlarmState2222222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                          DoorAlarmState2222222222222222222[DoorAlarmState2222222222222222222["ALARM"] = 1] = "ALARM";
                                                                          DoorAlarmState2222222222222222222[DoorAlarmState2222222222222222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                                                                          DoorAlarmState2222222222222222222[DoorAlarmState2222222222222222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                                                                          DoorAlarmState2222222222222222222[DoorAlarmState2222222222222222222["TAMPER"] = 4] = "TAMPER";
                                                                          DoorAlarmState2222222222222222222[DoorAlarmState2222222222222222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                                                                          DoorAlarmState2222222222222222222[DoorAlarmState2222222222222222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                                                                          DoorAlarmState2222222222222222222[DoorAlarmState2222222222222222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                                                                          DoorAlarmState2222222222222222222[DoorAlarmState2222222222222222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                                                                          return DoorAlarmState2222222222222222222;
                                                                        })(DoorAlarmState222222222222222222 || {});
                                                                        var DoorSecuredStatus222222222222222222 = /* @__PURE__ */ ((DoorSecuredStatus2222222222222222222) => {
                                                                          DoorSecuredStatus2222222222222222222[DoorSecuredStatus2222222222222222222["SECURED"] = 0] = "SECURED";
                                                                          DoorSecuredStatus2222222222222222222[DoorSecuredStatus2222222222222222222["UNSECURED"] = 1] = "UNSECURED";
                                                                          DoorSecuredStatus2222222222222222222[DoorSecuredStatus2222222222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                                          return DoorSecuredStatus2222222222222222222;
                                                                        })(DoorSecuredStatus222222222222222222 || {});
                                                                        var DoorStatus222222222222222222 = /* @__PURE__ */ ((DoorStatus2222222222222222222) => {
                                                                          DoorStatus2222222222222222222[DoorStatus2222222222222222222["CLOSED"] = 0] = "CLOSED";
                                                                          DoorStatus2222222222222222222[DoorStatus2222222222222222222["OPENED"] = 1] = "OPENED";
                                                                          DoorStatus2222222222222222222[DoorStatus2222222222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                                          DoorStatus2222222222222222222[DoorStatus2222222222222222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                                                                          DoorStatus2222222222222222222[DoorStatus2222222222222222222["UNUSED"] = 4] = "UNUSED";
                                                                          DoorStatus2222222222222222222[DoorStatus2222222222222222222["NONE"] = 5] = "NONE";
                                                                          DoorStatus2222222222222222222[DoorStatus2222222222222222222["CLOSING"] = 6] = "CLOSING";
                                                                          DoorStatus2222222222222222222[DoorStatus2222222222222222222["OPENING"] = 7] = "OPENING";
                                                                          DoorStatus2222222222222222222[DoorStatus2222222222222222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                                                                          DoorStatus2222222222222222222[DoorStatus2222222222222222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                                                                          return DoorStatus2222222222222222222;
                                                                        })(DoorStatus222222222222222222 || {});
                                                                        var DoorValue222222222222222222 = /* @__PURE__ */ ((DoorValue2222222222222222222) => {
                                                                          DoorValue2222222222222222222[DoorValue2222222222222222222["LOCK"] = 0] = "LOCK";
                                                                          DoorValue2222222222222222222[DoorValue2222222222222222222["UNLOCK"] = 1] = "UNLOCK";
                                                                          DoorValue2222222222222222222[DoorValue2222222222222222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                                                                          DoorValue2222222222222222222[DoorValue2222222222222222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                                                                          return DoorValue2222222222222222222;
                                                                        })(DoorValue222222222222222222 || {});
                                                                        var EngineeringUnits222222222222222222 = /* @__PURE__ */ ((EngineeringUnits2222222222222222222) => {
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CURRENCY1"] = 105] = "CURRENCY1";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CURRENCY2"] = 106] = "CURRENCY2";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CURRENCY3"] = 107] = "CURRENCY3";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CURRENCY4"] = 108] = "CURRENCY4";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CURRENCY5"] = 109] = "CURRENCY5";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CURRENCY6"] = 110] = "CURRENCY6";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CURRENCY7"] = 111] = "CURRENCY7";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CURRENCY8"] = 112] = "CURRENCY8";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CURRENCY9"] = 113] = "CURRENCY9";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CURRENCY10"] = 114] = "CURRENCY10";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["AMPERES"] = 3] = "AMPERES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DECIBELS"] = 199] = "DECIBELS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["FARADS"] = 170] = "FARADS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["HENRYS"] = 171] = "HENRYS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["OHMS"] = 4] = "OHMS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["OHM_METERS"] = 172] = "OHM_METERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOHMS"] = 122] = "KILOHMS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGOHMS"] = 123] = "MEGOHMS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["SIEMENS"] = 173] = "SIEMENS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["TESLAS"] = 175] = "TESLAS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["VOLTS"] = 5] = "VOLTS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["WEBERS"] = 178] = "WEBERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["JOULES"] = 16] = "JOULES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOJOULES"] = 17] = "KILOJOULES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["BTUS"] = 20] = "BTUS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["THERMS"] = 21] = "THERMS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["TON_HOURS"] = 22] = "TON_HOURS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["NEWTON"] = 153] = "NEWTON";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["HERTZ"] = 27] = "HERTZ";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PER_HOUR"] = 131] = "PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MICROMETERS"] = 194] = "MICROMETERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOMETERS"] = 193] = "KILOMETERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["METERS"] = 31] = "METERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["INCHES"] = 32] = "INCHES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["FEET"] = 33] = "FEET";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CANDELAS"] = 179] = "CANDELAS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["LUMENS"] = 36] = "LUMENS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["LUXES"] = 37] = "LUXES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["GRAMS"] = 195] = "GRAMS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["TONS"] = 41] = "TONS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["WATTS"] = 47] = "WATTS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOWATTS"] = 48] = "KILOWATTS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PASCALS"] = 53] = "PASCALS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIBARS"] = 134] = "MILLIBARS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["BARS"] = 55] = "BARS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["YEARS"] = 67] = "YEARS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MONTHS"] = 68] = "MONTHS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["WEEKS"] = 69] = "WEEKS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DAYS"] = 70] = "DAYS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["HOURS"] = 71] = "HOURS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MINUTES"] = 72] = "MINUTES";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["SECONDS"] = 73] = "SECONDS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLILITERS"] = 197] = "MILLILITERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["LITERS"] = 82] = "LITERS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["US_GALLONS"] = 83] = "US_GALLONS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["NO_UNITS"] = 95] = "NO_UNITS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PERCENT"] = 98] = "PERCENT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PER_SECOND"] = 101] = "PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["RADIANS"] = 103] = "RADIANS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PER_MILLE"] = 207] = "PER_MILLE";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["BECQUERELS"] = 222] = "BECQUERELS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["GRAY"] = 225] = "GRAY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MICROGRAY"] = 227] = "MICROGRAY";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["SIEVERTS"] = 228] = "SIEVERTS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIREMS"] = 47814] = "MILLIREMS";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["PH"] = 234] = "PH";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                                                                          EngineeringUnits2222222222222222222[EngineeringUnits2222222222222222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                                                                          return EngineeringUnits2222222222222222222;
                                                                        })(EngineeringUnits222222222222222222 || {});
                                                                        var EscalatorFault222222222222222222 = /* @__PURE__ */ ((EscalatorFault2222222222222222222) => {
                                                                          EscalatorFault2222222222222222222[EscalatorFault2222222222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                                          EscalatorFault2222222222222222222[EscalatorFault2222222222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                                          EscalatorFault2222222222222222222[EscalatorFault2222222222222222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                                                                          EscalatorFault2222222222222222222[EscalatorFault2222222222222222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                                                                          EscalatorFault2222222222222222222[EscalatorFault2222222222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                                          EscalatorFault2222222222222222222[EscalatorFault2222222222222222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                                                                          EscalatorFault2222222222222222222[EscalatorFault2222222222222222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                                                                          EscalatorFault2222222222222222222[EscalatorFault2222222222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                                          EscalatorFault2222222222222222222[EscalatorFault2222222222222222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                                                                          return EscalatorFault2222222222222222222;
                                                                        })(EscalatorFault222222222222222222 || {});
                                                                        var EscalatorMode222222222222222222 = /* @__PURE__ */ ((EscalatorMode2222222222222222222) => {
                                                                          EscalatorMode2222222222222222222[EscalatorMode2222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                          EscalatorMode2222222222222222222[EscalatorMode2222222222222222222["STOP"] = 1] = "STOP";
                                                                          EscalatorMode2222222222222222222[EscalatorMode2222222222222222222["UP"] = 2] = "UP";
                                                                          EscalatorMode2222222222222222222[EscalatorMode2222222222222222222["DOWN"] = 3] = "DOWN";
                                                                          EscalatorMode2222222222222222222[EscalatorMode2222222222222222222["INSPECTION"] = 4] = "INSPECTION";
                                                                          EscalatorMode2222222222222222222[EscalatorMode2222222222222222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                                                                          return EscalatorMode2222222222222222222;
                                                                        })(EscalatorMode222222222222222222 || {});
                                                                        var EscalatorOperationDirection222222222222222222 = /* @__PURE__ */ ((EscalatorOperationDirection2222222222222222222) => {
                                                                          EscalatorOperationDirection2222222222222222222[EscalatorOperationDirection2222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                          EscalatorOperationDirection2222222222222222222[EscalatorOperationDirection2222222222222222222["STOPPED"] = 1] = "STOPPED";
                                                                          EscalatorOperationDirection2222222222222222222[EscalatorOperationDirection2222222222222222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                                                                          EscalatorOperationDirection2222222222222222222[EscalatorOperationDirection2222222222222222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                                                                          EscalatorOperationDirection2222222222222222222[EscalatorOperationDirection2222222222222222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                                                                          EscalatorOperationDirection2222222222222222222[EscalatorOperationDirection2222222222222222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                                                                          return EscalatorOperationDirection2222222222222222222;
                                                                        })(EscalatorOperationDirection222222222222222222 || {});
                                                                        var EventState222222222222222222 = /* @__PURE__ */ ((EventState2222222222222222222) => {
                                                                          EventState2222222222222222222[EventState2222222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                          EventState2222222222222222222[EventState2222222222222222222["FAULT"] = 1] = "FAULT";
                                                                          EventState2222222222222222222[EventState2222222222222222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                                                                          EventState2222222222222222222[EventState2222222222222222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                                                                          EventState2222222222222222222[EventState2222222222222222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                                                                          EventState2222222222222222222[EventState2222222222222222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                                                                          return EventState2222222222222222222;
                                                                        })(EventState222222222222222222 || {});
                                                                        var EventType222222222222222222 = /* @__PURE__ */ ((EventType2222222222222222222) => {
                                                                          EventType2222222222222222222[EventType2222222222222222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                                                                          EventType2222222222222222222[EventType2222222222222222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                                                                          EventType2222222222222222222[EventType2222222222222222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                                                                          EventType2222222222222222222[EventType2222222222222222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                                                                          EventType2222222222222222222[EventType2222222222222222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                                                                          EventType2222222222222222222[EventType2222222222222222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                                                                          EventType2222222222222222222[EventType2222222222222222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                                                                          EventType2222222222222222222[EventType2222222222222222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                                                                          EventType2222222222222222222[EventType2222222222222222222["EXTENDED"] = 9] = "EXTENDED";
                                                                          EventType2222222222222222222[EventType2222222222222222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                                                                          EventType2222222222222222222[EventType2222222222222222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                                                                          EventType2222222222222222222[EventType2222222222222222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                                                                          EventType2222222222222222222[EventType2222222222222222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                                                                          EventType2222222222222222222[EventType2222222222222222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                                                                          EventType2222222222222222222[EventType2222222222222222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                                                                          EventType2222222222222222222[EventType2222222222222222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                                                                          EventType2222222222222222222[EventType2222222222222222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                                                                          EventType2222222222222222222[EventType2222222222222222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                                                                          EventType2222222222222222222[EventType2222222222222222222["NONE"] = 20] = "NONE";
                                                                          EventType2222222222222222222[EventType2222222222222222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                                                                          EventType2222222222222222222[EventType2222222222222222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                                                                          return EventType2222222222222222222;
                                                                        })(EventType222222222222222222 || {});
                                                                        var FaultType222222222222222222 = /* @__PURE__ */ ((FaultType2222222222222222222) => {
                                                                          FaultType2222222222222222222[FaultType2222222222222222222["NONE"] = 0] = "NONE";
                                                                          FaultType2222222222222222222[FaultType2222222222222222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                                                                          FaultType2222222222222222222[FaultType2222222222222222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                                                                          FaultType2222222222222222222[FaultType2222222222222222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                                                                          FaultType2222222222222222222[FaultType2222222222222222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                                                                          FaultType2222222222222222222[FaultType2222222222222222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                                                                          FaultType2222222222222222222[FaultType2222222222222222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                                                                          FaultType2222222222222222222[FaultType2222222222222222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                                                                          return FaultType2222222222222222222;
                                                                        })(FaultType222222222222222222 || {});
                                                                        var FileAccessMethod222222222222222222 = /* @__PURE__ */ ((FileAccessMethod2222222222222222222) => {
                                                                          FileAccessMethod2222222222222222222[FileAccessMethod2222222222222222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                                                                          FileAccessMethod2222222222222222222[FileAccessMethod2222222222222222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                                                                          return FileAccessMethod2222222222222222222;
                                                                        })(FileAccessMethod222222222222222222 || {});
                                                                        var IPMode222222222222222222 = /* @__PURE__ */ ((IPMode2222222222222222222) => {
                                                                          IPMode2222222222222222222[IPMode2222222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                          IPMode2222222222222222222[IPMode2222222222222222222["FOREIGN"] = 1] = "FOREIGN";
                                                                          IPMode2222222222222222222[IPMode2222222222222222222["BBMD"] = 2] = "BBMD";
                                                                          return IPMode2222222222222222222;
                                                                        })(IPMode222222222222222222 || {});
                                                                        var LifeSafetyMode222222222222222222 = /* @__PURE__ */ ((LifeSafetyMode2222222222222222222) => {
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["OFF"] = 0] = "OFF";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["ON"] = 1] = "ON";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["TEST"] = 2] = "TEST";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["MANNED"] = 3] = "MANNED";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["UNMANNED"] = 4] = "UNMANNED";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["ARMED"] = 5] = "ARMED";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["DISARMED"] = 6] = "DISARMED";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["PREARMED"] = 7] = "PREARMED";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["SLOW"] = 8] = "SLOW";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["FAST"] = 9] = "FAST";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["ENABLED"] = 11] = "ENABLED";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["DISABLED"] = 12] = "DISABLED";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                                                                          LifeSafetyMode2222222222222222222[LifeSafetyMode2222222222222222222["DEFAULT"] = 14] = "DEFAULT";
                                                                          return LifeSafetyMode2222222222222222222;
                                                                        })(LifeSafetyMode222222222222222222 || {});
                                                                        var LifeSafetyOperation222222222222222222 = /* @__PURE__ */ ((LifeSafetyOperation2222222222222222222) => {
                                                                          LifeSafetyOperation2222222222222222222[LifeSafetyOperation2222222222222222222["NONE"] = 0] = "NONE";
                                                                          LifeSafetyOperation2222222222222222222[LifeSafetyOperation2222222222222222222["SILENCE"] = 1] = "SILENCE";
                                                                          LifeSafetyOperation2222222222222222222[LifeSafetyOperation2222222222222222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                                                                          LifeSafetyOperation2222222222222222222[LifeSafetyOperation2222222222222222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                                                                          LifeSafetyOperation2222222222222222222[LifeSafetyOperation2222222222222222222["RESET"] = 4] = "RESET";
                                                                          LifeSafetyOperation2222222222222222222[LifeSafetyOperation2222222222222222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                                                                          LifeSafetyOperation2222222222222222222[LifeSafetyOperation2222222222222222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                                                                          LifeSafetyOperation2222222222222222222[LifeSafetyOperation2222222222222222222["UNSILENCE"] = 7] = "UNSILENCE";
                                                                          LifeSafetyOperation2222222222222222222[LifeSafetyOperation2222222222222222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                                                                          LifeSafetyOperation2222222222222222222[LifeSafetyOperation2222222222222222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                                                                          return LifeSafetyOperation2222222222222222222;
                                                                        })(LifeSafetyOperation222222222222222222 || {});
                                                                        var LifeSafetyState222222222222222222 = /* @__PURE__ */ ((LifeSafetyState2222222222222222222) => {
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["QUIET"] = 0] = "QUIET";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["ALARM"] = 2] = "ALARM";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["FAULT"] = 3] = "FAULT";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["NOT_READY"] = 6] = "NOT_READY";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["ACTIVE"] = 7] = "ACTIVE";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["TAMPER"] = 8] = "TAMPER";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["HOLDUP"] = 13] = "HOLDUP";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["DURESS"] = 14] = "DURESS";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["ABNORMAL"] = 16] = "ABNORMAL";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["DELAYED"] = 18] = "DELAYED";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["BLOCKED"] = 19] = "BLOCKED";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                                                                          LifeSafetyState2222222222222222222[LifeSafetyState2222222222222222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                                                                          return LifeSafetyState2222222222222222222;
                                                                        })(LifeSafetyState222222222222222222 || {});
                                                                        var LiftCarDirection222222222222222222 = /* @__PURE__ */ ((LiftCarDirection2222222222222222222) => {
                                                                          LiftCarDirection2222222222222222222[LiftCarDirection2222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                          LiftCarDirection2222222222222222222[LiftCarDirection2222222222222222222["NONE"] = 1] = "NONE";
                                                                          LiftCarDirection2222222222222222222[LiftCarDirection2222222222222222222["STOPPED"] = 2] = "STOPPED";
                                                                          LiftCarDirection2222222222222222222[LiftCarDirection2222222222222222222["UP"] = 3] = "UP";
                                                                          LiftCarDirection2222222222222222222[LiftCarDirection2222222222222222222["DOWN"] = 4] = "DOWN";
                                                                          LiftCarDirection2222222222222222222[LiftCarDirection2222222222222222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                                                                          return LiftCarDirection2222222222222222222;
                                                                        })(LiftCarDirection222222222222222222 || {});
                                                                        var LiftCarDoorCommand222222222222222222 = /* @__PURE__ */ ((LiftCarDoorCommand2222222222222222222) => {
                                                                          LiftCarDoorCommand2222222222222222222[LiftCarDoorCommand2222222222222222222["NONE"] = 0] = "NONE";
                                                                          LiftCarDoorCommand2222222222222222222[LiftCarDoorCommand2222222222222222222["OPEN"] = 1] = "OPEN";
                                                                          LiftCarDoorCommand2222222222222222222[LiftCarDoorCommand2222222222222222222["CLOSE"] = 2] = "CLOSE";
                                                                          return LiftCarDoorCommand2222222222222222222;
                                                                        })(LiftCarDoorCommand222222222222222222 || {});
                                                                        var LiftCarDriveStatus222222222222222222 = /* @__PURE__ */ ((LiftCarDriveStatus2222222222222222222) => {
                                                                          LiftCarDriveStatus2222222222222222222[LiftCarDriveStatus2222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                          LiftCarDriveStatus2222222222222222222[LiftCarDriveStatus2222222222222222222["STATIONARY"] = 1] = "STATIONARY";
                                                                          LiftCarDriveStatus2222222222222222222[LiftCarDriveStatus2222222222222222222["BRAKING"] = 2] = "BRAKING";
                                                                          LiftCarDriveStatus2222222222222222222[LiftCarDriveStatus2222222222222222222["ACCELERATE"] = 3] = "ACCELERATE";
                                                                          LiftCarDriveStatus2222222222222222222[LiftCarDriveStatus2222222222222222222["DECELERATE"] = 4] = "DECELERATE";
                                                                          LiftCarDriveStatus2222222222222222222[LiftCarDriveStatus2222222222222222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                                                                          LiftCarDriveStatus2222222222222222222[LiftCarDriveStatus2222222222222222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                                                                          LiftCarDriveStatus2222222222222222222[LiftCarDriveStatus2222222222222222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                                                                          LiftCarDriveStatus2222222222222222222[LiftCarDriveStatus2222222222222222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                                                                          LiftCarDriveStatus2222222222222222222[LiftCarDriveStatus2222222222222222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                                                                          return LiftCarDriveStatus2222222222222222222;
                                                                        })(LiftCarDriveStatus222222222222222222 || {});
                                                                        var LiftCarMode222222222222222222 = /* @__PURE__ */ ((LiftCarMode2222222222222222222) => {
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["NORMAL"] = 1] = "NORMAL";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["VIP"] = 2] = "VIP";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["HOMING"] = 3] = "HOMING";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["PARKING"] = 4] = "PARKING";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["INSPECTION"] = 8] = "INSPECTION";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                                                                          LiftCarMode2222222222222222222[LiftCarMode2222222222222222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                                                                          return LiftCarMode2222222222222222222;
                                                                        })(LiftCarMode222222222222222222 || {});
                                                                        var LiftFault222222222222222222 = /* @__PURE__ */ ((LiftFault2222222222222222222) => {
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["START_FAILURE"] = 10] = "START_FAILURE";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                                          LiftFault2222222222222222222[LiftFault2222222222222222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                                                                          return LiftFault2222222222222222222;
                                                                        })(LiftFault222222222222222222 || {});
                                                                        var LiftGroupMode222222222222222222 = /* @__PURE__ */ ((LiftGroupMode2222222222222222222) => {
                                                                          LiftGroupMode2222222222222222222[LiftGroupMode2222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                          LiftGroupMode2222222222222222222[LiftGroupMode2222222222222222222["NORMAL"] = 1] = "NORMAL";
                                                                          LiftGroupMode2222222222222222222[LiftGroupMode2222222222222222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                                                                          LiftGroupMode2222222222222222222[LiftGroupMode2222222222222222222["TWO_WAY"] = 3] = "TWO_WAY";
                                                                          LiftGroupMode2222222222222222222[LiftGroupMode2222222222222222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                                                                          LiftGroupMode2222222222222222222[LiftGroupMode2222222222222222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                                                                          LiftGroupMode2222222222222222222[LiftGroupMode2222222222222222222["UP_PEAK"] = 6] = "UP_PEAK";
                                                                          return LiftGroupMode2222222222222222222;
                                                                        })(LiftGroupMode222222222222222222 || {});
                                                                        var LightingInProgress222222222222222222 = /* @__PURE__ */ ((LightingInProgress2222222222222222222) => {
                                                                          LightingInProgress2222222222222222222[LightingInProgress2222222222222222222["IDLE"] = 0] = "IDLE";
                                                                          LightingInProgress2222222222222222222[LightingInProgress2222222222222222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                                                                          LightingInProgress2222222222222222222[LightingInProgress2222222222222222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                                                                          LightingInProgress2222222222222222222[LightingInProgress2222222222222222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                                                                          LightingInProgress2222222222222222222[LightingInProgress2222222222222222222["OTHER"] = 4] = "OTHER";
                                                                          return LightingInProgress2222222222222222222;
                                                                        })(LightingInProgress222222222222222222 || {});
                                                                        var LightingOperation222222222222222222 = /* @__PURE__ */ ((LightingOperation2222222222222222222) => {
                                                                          LightingOperation2222222222222222222[LightingOperation2222222222222222222["NONE"] = 0] = "NONE";
                                                                          LightingOperation2222222222222222222[LightingOperation2222222222222222222["FADE_TO"] = 1] = "FADE_TO";
                                                                          LightingOperation2222222222222222222[LightingOperation2222222222222222222["RAMP_TO"] = 2] = "RAMP_TO";
                                                                          LightingOperation2222222222222222222[LightingOperation2222222222222222222["STEP_UP"] = 3] = "STEP_UP";
                                                                          LightingOperation2222222222222222222[LightingOperation2222222222222222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                                                                          LightingOperation2222222222222222222[LightingOperation2222222222222222222["STEP_ON"] = 5] = "STEP_ON";
                                                                          LightingOperation2222222222222222222[LightingOperation2222222222222222222["STEP_OFF"] = 6] = "STEP_OFF";
                                                                          LightingOperation2222222222222222222[LightingOperation2222222222222222222["WARN"] = 7] = "WARN";
                                                                          LightingOperation2222222222222222222[LightingOperation2222222222222222222["WARN_OFF"] = 8] = "WARN_OFF";
                                                                          LightingOperation2222222222222222222[LightingOperation2222222222222222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                                                                          LightingOperation2222222222222222222[LightingOperation2222222222222222222["STOP"] = 10] = "STOP";
                                                                          return LightingOperation2222222222222222222;
                                                                        })(LightingOperation222222222222222222 || {});
                                                                        var LightingTransition222222222222222222 = /* @__PURE__ */ ((LightingTransition2222222222222222222) => {
                                                                          LightingTransition2222222222222222222[LightingTransition2222222222222222222["NONE"] = 0] = "NONE";
                                                                          LightingTransition2222222222222222222[LightingTransition2222222222222222222["FADE"] = 1] = "FADE";
                                                                          LightingTransition2222222222222222222[LightingTransition2222222222222222222["RAMP"] = 2] = "RAMP";
                                                                          return LightingTransition2222222222222222222;
                                                                        })(LightingTransition222222222222222222 || {});
                                                                        var LockStatus222222222222222222 = /* @__PURE__ */ ((LockStatus2222222222222222222) => {
                                                                          LockStatus2222222222222222222[LockStatus2222222222222222222["LOCKED"] = 0] = "LOCKED";
                                                                          LockStatus2222222222222222222[LockStatus2222222222222222222["UNLOCKED"] = 1] = "UNLOCKED";
                                                                          LockStatus2222222222222222222[LockStatus2222222222222222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                                                                          LockStatus2222222222222222222[LockStatus2222222222222222222["UNUSED"] = 3] = "UNUSED";
                                                                          LockStatus2222222222222222222[LockStatus2222222222222222222["UNKNOWN"] = 4] = "UNKNOWN";
                                                                          return LockStatus2222222222222222222;
                                                                        })(LockStatus222222222222222222 || {});
                                                                        var LoggingType222222222222222222 = /* @__PURE__ */ ((LoggingType2222222222222222222) => {
                                                                          LoggingType2222222222222222222[LoggingType2222222222222222222["POLLED"] = 0] = "POLLED";
                                                                          LoggingType2222222222222222222[LoggingType2222222222222222222["COV"] = 1] = "COV";
                                                                          LoggingType2222222222222222222[LoggingType2222222222222222222["TRIGGERED"] = 2] = "TRIGGERED";
                                                                          return LoggingType2222222222222222222;
                                                                        })(LoggingType222222222222222222 || {});
                                                                        var Maintenance222222222222222222 = /* @__PURE__ */ ((Maintenance2222222222222222222) => {
                                                                          Maintenance2222222222222222222[Maintenance2222222222222222222["NONE"] = 0] = "NONE";
                                                                          Maintenance2222222222222222222[Maintenance2222222222222222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                                                                          Maintenance2222222222222222222[Maintenance2222222222222222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                                                                          Maintenance2222222222222222222[Maintenance2222222222222222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                                                                          return Maintenance2222222222222222222;
                                                                        })(Maintenance222222222222222222 || {});
                                                                        var NetworkNumberQuality222222222222222222 = /* @__PURE__ */ ((NetworkNumberQuality2222222222222222222) => {
                                                                          NetworkNumberQuality2222222222222222222[NetworkNumberQuality2222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                          NetworkNumberQuality2222222222222222222[NetworkNumberQuality2222222222222222222["LEARNED"] = 1] = "LEARNED";
                                                                          NetworkNumberQuality2222222222222222222[NetworkNumberQuality2222222222222222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                                                                          NetworkNumberQuality2222222222222222222[NetworkNumberQuality2222222222222222222["CONFIGURED"] = 3] = "CONFIGURED";
                                                                          return NetworkNumberQuality2222222222222222222;
                                                                        })(NetworkNumberQuality222222222222222222 || {});
                                                                        var NetworkPortCommand222222222222222222 = /* @__PURE__ */ ((NetworkPortCommand2222222222222222222) => {
                                                                          NetworkPortCommand2222222222222222222[NetworkPortCommand2222222222222222222["IDLE"] = 0] = "IDLE";
                                                                          NetworkPortCommand2222222222222222222[NetworkPortCommand2222222222222222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                                                                          NetworkPortCommand2222222222222222222[NetworkPortCommand2222222222222222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                                                                          NetworkPortCommand2222222222222222222[NetworkPortCommand2222222222222222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                                                                          NetworkPortCommand2222222222222222222[NetworkPortCommand2222222222222222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                                                                          NetworkPortCommand2222222222222222222[NetworkPortCommand2222222222222222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                                                                          NetworkPortCommand2222222222222222222[NetworkPortCommand2222222222222222222["DISCONNECT"] = 6] = "DISCONNECT";
                                                                          NetworkPortCommand2222222222222222222[NetworkPortCommand2222222222222222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                                                                          return NetworkPortCommand2222222222222222222;
                                                                        })(NetworkPortCommand222222222222222222 || {});
                                                                        var NetworkType222222222222222222 = /* @__PURE__ */ ((NetworkType2222222222222222222) => {
                                                                          NetworkType2222222222222222222[NetworkType2222222222222222222["ETHERNET"] = 0] = "ETHERNET";
                                                                          NetworkType2222222222222222222[NetworkType2222222222222222222["ARCNET"] = 1] = "ARCNET";
                                                                          NetworkType2222222222222222222[NetworkType2222222222222222222["MSTP"] = 2] = "MSTP";
                                                                          NetworkType2222222222222222222[NetworkType2222222222222222222["PTP"] = 3] = "PTP";
                                                                          NetworkType2222222222222222222[NetworkType2222222222222222222["LONTALK"] = 4] = "LONTALK";
                                                                          NetworkType2222222222222222222[NetworkType2222222222222222222["IPV4"] = 5] = "IPV4";
                                                                          NetworkType2222222222222222222[NetworkType2222222222222222222["ZIGBEE"] = 6] = "ZIGBEE";
                                                                          NetworkType2222222222222222222[NetworkType2222222222222222222["VIRTUAL"] = 7] = "VIRTUAL";
                                                                          NetworkType2222222222222222222[NetworkType2222222222222222222["IPV6"] = 9] = "IPV6";
                                                                          NetworkType2222222222222222222[NetworkType2222222222222222222["SERIAL"] = 10] = "SERIAL";
                                                                          return NetworkType2222222222222222222;
                                                                        })(NetworkType222222222222222222 || {});
                                                                        var NodeType222222222222222222 = /* @__PURE__ */ ((NodeType2222222222222222222) => {
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["SYSTEM"] = 1] = "SYSTEM";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["NETWORK"] = 2] = "NETWORK";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["DEVICE"] = 3] = "DEVICE";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["AREA"] = 5] = "AREA";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["POINT"] = 7] = "POINT";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["COLLECTION"] = 8] = "COLLECTION";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["PROPERTY"] = 9] = "PROPERTY";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["OTHER"] = 11] = "OTHER";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["BUILDING"] = 13] = "BUILDING";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["FLOOR"] = 14] = "FLOOR";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["SECTION"] = 15] = "SECTION";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["MODULE"] = 16] = "MODULE";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["TREE"] = 17] = "TREE";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["MEMBER"] = 18] = "MEMBER";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["PROTOCOL"] = 19] = "PROTOCOL";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["ROOM"] = 20] = "ROOM";
                                                                          NodeType2222222222222222222[NodeType2222222222222222222["ZONE"] = 21] = "ZONE";
                                                                          return NodeType2222222222222222222;
                                                                        })(NodeType222222222222222222 || {});
                                                                        var NotifyType222222222222222222 = /* @__PURE__ */ ((NotifyType2222222222222222222) => {
                                                                          NotifyType2222222222222222222[NotifyType2222222222222222222["ALARM"] = 0] = "ALARM";
                                                                          NotifyType2222222222222222222[NotifyType2222222222222222222["EVENT"] = 1] = "EVENT";
                                                                          NotifyType2222222222222222222[NotifyType2222222222222222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                                                                          return NotifyType2222222222222222222;
                                                                        })(NotifyType222222222222222222 || {});
                                                                        var ObjectType222222222222222222 = /* @__PURE__ */ ((ObjectType2222222222222222222) => {
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["COMMAND"] = 7] = "COMMAND";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["DEVICE"] = 8] = "DEVICE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["FILE"] = 10] = "FILE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["GROUP"] = 11] = "GROUP";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["LIFT"] = 59] = "LIFT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["LOOP"] = 12] = "LOOP";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["TIMER"] = 31] = "TIMER";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                                          ObjectType2222222222222222222[ObjectType2222222222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                                          return ObjectType2222222222222222222;
                                                                        })(ObjectType222222222222222222 || {});
                                                                        var Polarity222222222222222222 = /* @__PURE__ */ ((Polarity2222222222222222222) => {
                                                                          Polarity2222222222222222222[Polarity2222222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                          Polarity2222222222222222222[Polarity2222222222222222222["REVERSE"] = 1] = "REVERSE";
                                                                          return Polarity2222222222222222222;
                                                                        })(Polarity222222222222222222 || {});
                                                                        var ProgramError222222222222222222 = /* @__PURE__ */ ((ProgramError2222222222222222222) => {
                                                                          ProgramError2222222222222222222[ProgramError2222222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                          ProgramError2222222222222222222[ProgramError2222222222222222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                                                                          ProgramError2222222222222222222[ProgramError2222222222222222222["INTERNAL"] = 2] = "INTERNAL";
                                                                          ProgramError2222222222222222222[ProgramError2222222222222222222["PROGRAM"] = 3] = "PROGRAM";
                                                                          ProgramError2222222222222222222[ProgramError2222222222222222222["OTHER"] = 4] = "OTHER";
                                                                          return ProgramError2222222222222222222;
                                                                        })(ProgramError222222222222222222 || {});
                                                                        var ProgramRequest222222222222222222 = /* @__PURE__ */ ((ProgramRequest2222222222222222222) => {
                                                                          ProgramRequest2222222222222222222[ProgramRequest2222222222222222222["READY"] = 0] = "READY";
                                                                          ProgramRequest2222222222222222222[ProgramRequest2222222222222222222["LOAD"] = 1] = "LOAD";
                                                                          ProgramRequest2222222222222222222[ProgramRequest2222222222222222222["RUN"] = 2] = "RUN";
                                                                          ProgramRequest2222222222222222222[ProgramRequest2222222222222222222["HALT"] = 3] = "HALT";
                                                                          ProgramRequest2222222222222222222[ProgramRequest2222222222222222222["RESTART"] = 4] = "RESTART";
                                                                          ProgramRequest2222222222222222222[ProgramRequest2222222222222222222["UNLOAD"] = 5] = "UNLOAD";
                                                                          return ProgramRequest2222222222222222222;
                                                                        })(ProgramRequest222222222222222222 || {});
                                                                        var ProgramState222222222222222222 = /* @__PURE__ */ ((ProgramState2222222222222222222) => {
                                                                          ProgramState2222222222222222222[ProgramState2222222222222222222["IDLE"] = 0] = "IDLE";
                                                                          ProgramState2222222222222222222[ProgramState2222222222222222222["LOADING"] = 1] = "LOADING";
                                                                          ProgramState2222222222222222222[ProgramState2222222222222222222["RUNNING"] = 2] = "RUNNING";
                                                                          ProgramState2222222222222222222[ProgramState2222222222222222222["WAITING"] = 3] = "WAITING";
                                                                          ProgramState2222222222222222222[ProgramState2222222222222222222["HALTED"] = 4] = "HALTED";
                                                                          ProgramState2222222222222222222[ProgramState2222222222222222222["UNLOADING"] = 5] = "UNLOADING";
                                                                          return ProgramState2222222222222222222;
                                                                        })(ProgramState222222222222222222 || {});
                                                                        var PropertyIdentifier222222222222222222 = /* @__PURE__ */ ((PropertyIdentifier2222222222222222222) => {
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACTION"] = 2] = "ACTION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ALL"] = 8] = "ALL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ARCHIVE"] = 13] = "ARCHIVE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BIAS"] = 14] = "BIAS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BIT_MASK"] = 342] = "BIT_MASK";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CAR_MODE"] = 456] = "CAR_MODE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["COMMAND"] = 417] = "COMMAND";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["COUNT"] = 177] = "COUNT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DATE_LIST"] = 23] = "DATE_LIST";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DEADBAND"] = 25] = "DEADBAND";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ENABLE"] = 133] = "ENABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["GROUP_ID"] = 465] = "GROUP_ID";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["IS_UTC"] = 344] = "IS_UTC";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["KEY_SETS"] = 330] = "KEY_SETS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOCATION"] = 58] = "LOCATION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOCKOUT"] = 282] = "LOCKOUT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MEMBERS"] = 286] = "MEMBERS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MODE"] = 160] = "MODE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OPTIONAL"] = 80] = "OPTIONAL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["POLARITY"] = 84] = "POLARITY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["POWER"] = 384] = "POWER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["POWER_MODE"] = 479] = "POWER_MODE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PRESCALE"] = 185] = "PRESCALE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PRIORITY"] = 86] = "PRIORITY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["READ_ONLY"] = 99] = "READ_ONLY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["RELIABILITY"] = 103] = "RELIABILITY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["REPRESENTS"] = 491] = "REPRESENTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["REQUIRED"] = 105] = "REQUIRED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["RESOLUTION"] = 106] = "RESOLUTION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SCALE"] = 187] = "SCALE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SETPOINT"] = 108] = "SETPOINT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SETTING"] = 162] = "SETTING";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SILENCED"] = 163] = "SILENCED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["START_TIME"] = 142] = "START_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["STOP_TIME"] = 143] = "STOP_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TAGS"] = 486] = "TAGS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TRANSITION"] = 385] = "TRANSITION";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["TRIGGER"] = 205] = "TRIGGER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["UNITS"] = 117] = "UNITS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["USER_NAME"] = 317] = "USER_NAME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["USER_TYPE"] = 318] = "USER_TYPE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["VALUE_SET"] = 191] = "VALUE_SET";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                                                                          PropertyIdentifier2222222222222222222[PropertyIdentifier2222222222222222222["ZONE_TO"] = 321] = "ZONE_TO";
                                                                          return PropertyIdentifier2222222222222222222;
                                                                        })(PropertyIdentifier222222222222222222 || {});
                                                                        var ProtocolLevel222222222222222222 = /* @__PURE__ */ ((ProtocolLevel2222222222222222222) => {
                                                                          ProtocolLevel2222222222222222222[ProtocolLevel2222222222222222222["PHYSICAL"] = 0] = "PHYSICAL";
                                                                          ProtocolLevel2222222222222222222[ProtocolLevel2222222222222222222["PROTOCOL"] = 1] = "PROTOCOL";
                                                                          ProtocolLevel2222222222222222222[ProtocolLevel2222222222222222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                                                                          ProtocolLevel2222222222222222222[ProtocolLevel2222222222222222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                                                                          return ProtocolLevel2222222222222222222;
                                                                        })(ProtocolLevel222222222222222222 || {});
                                                                        var Relationship222222222222222222 = /* @__PURE__ */ ((Relationship2222222222222222222) => {
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["DEFAULT"] = 1] = "DEFAULT";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["CONTAINS"] = 2] = "CONTAINS";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["USES"] = 4] = "USES";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["USED_BY"] = 5] = "USED_BY";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["COMMANDS"] = 6] = "COMMANDS";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["ADJUSTS"] = 8] = "ADJUSTS";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["INGRESS"] = 10] = "INGRESS";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["EGRESS"] = 11] = "EGRESS";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                                                                          Relationship2222222222222222222[Relationship2222222222222222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                                                                          return Relationship2222222222222222222;
                                                                        })(Relationship222222222222222222 || {});
                                                                        var Reliability222222222222222222 = /* @__PURE__ */ ((Reliability2222222222222222222) => {
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["TRIPPED"] = 15] = "TRIPPED";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                                                                          Reliability2222222222222222222[Reliability2222222222222222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                                                                          return Reliability2222222222222222222;
                                                                        })(Reliability222222222222222222 || {});
                                                                        var RestartReason222222222222222222 = /* @__PURE__ */ ((RestartReason2222222222222222222) => {
                                                                          RestartReason2222222222222222222[RestartReason2222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                          RestartReason2222222222222222222[RestartReason2222222222222222222["COLDSTART"] = 1] = "COLDSTART";
                                                                          RestartReason2222222222222222222[RestartReason2222222222222222222["WARMSTART"] = 2] = "WARMSTART";
                                                                          RestartReason2222222222222222222[RestartReason2222222222222222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                                                                          RestartReason2222222222222222222[RestartReason2222222222222222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                                                                          RestartReason2222222222222222222[RestartReason2222222222222222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                                                                          RestartReason2222222222222222222[RestartReason2222222222222222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                                                                          RestartReason2222222222222222222[RestartReason2222222222222222222["SUSPENDED"] = 7] = "SUSPENDED";
                                                                          RestartReason2222222222222222222[RestartReason2222222222222222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                                                                          return RestartReason2222222222222222222;
                                                                        })(RestartReason222222222222222222 || {});
                                                                        var SecurityLevel222222222222222222 = /* @__PURE__ */ ((SecurityLevel2222222222222222222) => {
                                                                          SecurityLevel2222222222222222222[SecurityLevel2222222222222222222["INCAPABLE"] = 0] = "INCAPABLE";
                                                                          SecurityLevel2222222222222222222[SecurityLevel2222222222222222222["PLAIN"] = 1] = "PLAIN";
                                                                          SecurityLevel2222222222222222222[SecurityLevel2222222222222222222["SIGNED"] = 2] = "SIGNED";
                                                                          SecurityLevel2222222222222222222[SecurityLevel2222222222222222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                                                                          SecurityLevel2222222222222222222[SecurityLevel2222222222222222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                                                                          SecurityLevel2222222222222222222[SecurityLevel2222222222222222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                                                                          return SecurityLevel2222222222222222222;
                                                                        })(SecurityLevel222222222222222222 || {});
                                                                        var SecurityPolicy222222222222222222 = /* @__PURE__ */ ((SecurityPolicy2222222222222222222) => {
                                                                          SecurityPolicy2222222222222222222[SecurityPolicy2222222222222222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                                                                          SecurityPolicy2222222222222222222[SecurityPolicy2222222222222222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                                                                          SecurityPolicy2222222222222222222[SecurityPolicy2222222222222222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                                                                          SecurityPolicy2222222222222222222[SecurityPolicy2222222222222222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                                                                          return SecurityPolicy2222222222222222222;
                                                                        })(SecurityPolicy222222222222222222 || {});
                                                                        var Segmentation222222222222222222 = /* @__PURE__ */ ((Segmentation2222222222222222222) => {
                                                                          Segmentation2222222222222222222[Segmentation2222222222222222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                                                                          Segmentation2222222222222222222[Segmentation2222222222222222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                                                                          Segmentation2222222222222222222[Segmentation2222222222222222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                                                                          Segmentation2222222222222222222[Segmentation2222222222222222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                                                                          return Segmentation2222222222222222222;
                                                                        })(Segmentation222222222222222222 || {});
                                                                        var ShedState222222222222222222 = /* @__PURE__ */ ((ShedState2222222222222222222) => {
                                                                          ShedState2222222222222222222[ShedState2222222222222222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                                                                          ShedState2222222222222222222[ShedState2222222222222222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                                                                          ShedState2222222222222222222[ShedState2222222222222222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                                                                          ShedState2222222222222222222[ShedState2222222222222222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                                                                          return ShedState2222222222222222222;
                                                                        })(ShedState222222222222222222 || {});
                                                                        var SilencedState222222222222222222 = /* @__PURE__ */ ((SilencedState2222222222222222222) => {
                                                                          SilencedState2222222222222222222[SilencedState2222222222222222222["UNSILENCED"] = 0] = "UNSILENCED";
                                                                          SilencedState2222222222222222222[SilencedState2222222222222222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                                                                          SilencedState2222222222222222222[SilencedState2222222222222222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                                                                          SilencedState2222222222222222222[SilencedState2222222222222222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                                                                          return SilencedState2222222222222222222;
                                                                        })(SilencedState222222222222222222 || {});
                                                                        var TimerState222222222222222222 = /* @__PURE__ */ ((TimerState2222222222222222222) => {
                                                                          TimerState2222222222222222222[TimerState2222222222222222222["IDLE"] = 0] = "IDLE";
                                                                          TimerState2222222222222222222[TimerState2222222222222222222["RUNNING"] = 1] = "RUNNING";
                                                                          TimerState2222222222222222222[TimerState2222222222222222222["EXPIRED"] = 2] = "EXPIRED";
                                                                          return TimerState2222222222222222222;
                                                                        })(TimerState222222222222222222 || {});
                                                                        var TimerTransition222222222222222222 = /* @__PURE__ */ ((TimerTransition2222222222222222222) => {
                                                                          TimerTransition2222222222222222222[TimerTransition2222222222222222222["NONE"] = 0] = "NONE";
                                                                          TimerTransition2222222222222222222[TimerTransition2222222222222222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                                                                          TimerTransition2222222222222222222[TimerTransition2222222222222222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                                                                          TimerTransition2222222222222222222[TimerTransition2222222222222222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                                                                          TimerTransition2222222222222222222[TimerTransition2222222222222222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                                                                          TimerTransition2222222222222222222[TimerTransition2222222222222222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                                                                          TimerTransition2222222222222222222[TimerTransition2222222222222222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                                                                          TimerTransition2222222222222222222[TimerTransition2222222222222222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                                                                          return TimerTransition2222222222222222222;
                                                                        })(TimerTransition222222222222222222 || {});
                                                                        var VTClass222222222222222222 = /* @__PURE__ */ ((VTClass2222222222222222222) => {
                                                                          VTClass2222222222222222222[VTClass2222222222222222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                                                                          VTClass2222222222222222222[VTClass2222222222222222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                                                                          VTClass2222222222222222222[VTClass2222222222222222222["DEC_VT52"] = 2] = "DEC_VT52";
                                                                          VTClass2222222222222222222[VTClass2222222222222222222["DEC_VT100"] = 3] = "DEC_VT100";
                                                                          VTClass2222222222222222222[VTClass2222222222222222222["DEC_VT220"] = 4] = "DEC_VT220";
                                                                          VTClass2222222222222222222[VTClass2222222222222222222["HP_700_94"] = 5] = "HP_700_94";
                                                                          VTClass2222222222222222222[VTClass2222222222222222222["IBM_3130"] = 6] = "IBM_3130";
                                                                          return VTClass2222222222222222222;
                                                                        })(VTClass222222222222222222 || {});
                                                                        var WriteStatus222222222222222222 = /* @__PURE__ */ ((WriteStatus2222222222222222222) => {
                                                                          WriteStatus2222222222222222222[WriteStatus2222222222222222222["IDLE"] = 0] = "IDLE";
                                                                          WriteStatus2222222222222222222[WriteStatus2222222222222222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                                                                          WriteStatus2222222222222222222[WriteStatus2222222222222222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                                                                          WriteStatus2222222222222222222[WriteStatus2222222222222222222["FAILED"] = 3] = "FAILED";
                                                                          return WriteStatus2222222222222222222;
                                                                        })(WriteStatus222222222222222222 || {});
                                                                        var DaysOfWeek222222222222222222 = /* @__PURE__ */ ((DaysOfWeek2222222222222222222) => {
                                                                          DaysOfWeek2222222222222222222[DaysOfWeek2222222222222222222["MONDAY"] = 0] = "MONDAY";
                                                                          DaysOfWeek2222222222222222222[DaysOfWeek2222222222222222222["TUESDAY"] = 1] = "TUESDAY";
                                                                          DaysOfWeek2222222222222222222[DaysOfWeek2222222222222222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                                                                          DaysOfWeek2222222222222222222[DaysOfWeek2222222222222222222["THURSDAY"] = 3] = "THURSDAY";
                                                                          DaysOfWeek2222222222222222222[DaysOfWeek2222222222222222222["FRIDAY"] = 4] = "FRIDAY";
                                                                          DaysOfWeek2222222222222222222[DaysOfWeek2222222222222222222["SATURDAY"] = 5] = "SATURDAY";
                                                                          DaysOfWeek2222222222222222222[DaysOfWeek2222222222222222222["SUNDAY"] = 6] = "SUNDAY";
                                                                          return DaysOfWeek2222222222222222222;
                                                                        })(DaysOfWeek222222222222222222 || {});
                                                                        var EventTransitionBits222222222222222222 = /* @__PURE__ */ ((EventTransitionBits2222222222222222222) => {
                                                                          EventTransitionBits2222222222222222222[EventTransitionBits2222222222222222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                                                                          EventTransitionBits2222222222222222222[EventTransitionBits2222222222222222222["TO_FAULT"] = 1] = "TO_FAULT";
                                                                          EventTransitionBits2222222222222222222[EventTransitionBits2222222222222222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                                                                          return EventTransitionBits2222222222222222222;
                                                                        })(EventTransitionBits222222222222222222 || {});
                                                                        var LimitEnable222222222222222222 = /* @__PURE__ */ ((LimitEnable2222222222222222222) => {
                                                                          LimitEnable2222222222222222222[LimitEnable2222222222222222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                                                                          LimitEnable2222222222222222222[LimitEnable2222222222222222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                                                                          return LimitEnable2222222222222222222;
                                                                        })(LimitEnable222222222222222222 || {});
                                                                        var LogStatus222222222222222222 = /* @__PURE__ */ ((LogStatus2222222222222222222) => {
                                                                          LogStatus2222222222222222222[LogStatus2222222222222222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                                                                          LogStatus2222222222222222222[LogStatus2222222222222222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                                                                          LogStatus2222222222222222222[LogStatus2222222222222222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                                                                          return LogStatus2222222222222222222;
                                                                        })(LogStatus222222222222222222 || {});
                                                                        var ObjectTypesSupported222222222222222222 = /* @__PURE__ */ ((ObjectTypesSupported2222222222222222222) => {
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["COMMAND"] = 7] = "COMMAND";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["DEVICE"] = 8] = "DEVICE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["FILE"] = 10] = "FILE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["GROUP"] = 11] = "GROUP";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["LOOP"] = 12] = "LOOP";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["TIMER"] = 31] = "TIMER";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                                          ObjectTypesSupported2222222222222222222[ObjectTypesSupported2222222222222222222["LIFT"] = 59] = "LIFT";
                                                                          return ObjectTypesSupported2222222222222222222;
                                                                        })(ObjectTypesSupported222222222222222222 || {});
                                                                        var ResultFlags222222222222222222 = /* @__PURE__ */ ((ResultFlags2222222222222222222) => {
                                                                          ResultFlags2222222222222222222[ResultFlags2222222222222222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                                                                          ResultFlags2222222222222222222[ResultFlags2222222222222222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                                                                          ResultFlags2222222222222222222[ResultFlags2222222222222222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                                                                          return ResultFlags2222222222222222222;
                                                                        })(ResultFlags222222222222222222 || {});
                                                                        var ServicesSupported222222222222222222 = /* @__PURE__ */ ((ServicesSupported2222222222222222222) => {
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["I_AM"] = 26] = "I_AM";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["I_HAVE"] = 27] = "I_HAVE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["WHO_HAS"] = 33] = "WHO_HAS";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["WHO_IS"] = 34] = "WHO_IS";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["READ_RANGE"] = 35] = "READ_RANGE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                                          ServicesSupported2222222222222222222[ServicesSupported2222222222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                                          return ServicesSupported2222222222222222222;
                                                                        })(ServicesSupported222222222222222222 || {});
                                                                        var StatusFlags222222222222222222 = /* @__PURE__ */ ((StatusFlags2222222222222222222) => {
                                                                          StatusFlags2222222222222222222[StatusFlags2222222222222222222["IN_ALARM"] = 0] = "IN_ALARM";
                                                                          StatusFlags2222222222222222222[StatusFlags2222222222222222222["FAULT"] = 1] = "FAULT";
                                                                          StatusFlags2222222222222222222[StatusFlags2222222222222222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                                                                          StatusFlags2222222222222222222[StatusFlags2222222222222222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                                                                          return StatusFlags2222222222222222222;
                                                                        })(StatusFlags222222222222222222 || {});
                                                                        var ApplicationTag222222222222222222 = /* @__PURE__ */ ((ApplicationTag2222222222222222222) => {
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["NULL"] = 0] = "NULL";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["BOOLEAN"] = 1] = "BOOLEAN";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["REAL"] = 4] = "REAL";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["DOUBLE"] = 5] = "DOUBLE";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["BIT_STRING"] = 8] = "BIT_STRING";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["ENUMERATED"] = 9] = "ENUMERATED";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["DATE"] = 10] = "DATE";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["TIME"] = 11] = "TIME";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["DATERANGE"] = 102] = "DATERANGE";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["DATETIME"] = 103] = "DATETIME";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["ERROR"] = 105] = "ERROR";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["DESTINATION"] = 109] = "DESTINATION";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["RECIPIENT"] = 110] = "RECIPIENT";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                                                                          ApplicationTag2222222222222222222[ApplicationTag2222222222222222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                                                                          return ApplicationTag2222222222222222222;
                                                                        })(ApplicationTag222222222222222222 || {});
                                                                        var ApplicationTagName222222222222222222 = invertEnum222222222222222222(
                                                                          ApplicationTag222222222222222222
                                                                        );
                                                                        var BvlcResultFormat222222222222222222 = /* @__PURE__ */ ((BvlcResultFormat2222222222222222222) => {
                                                                          BvlcResultFormat2222222222222222222[BvlcResultFormat2222222222222222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                                                                          BvlcResultFormat2222222222222222222[BvlcResultFormat2222222222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                                          BvlcResultFormat2222222222222222222[BvlcResultFormat2222222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                                          BvlcResultFormat2222222222222222222[BvlcResultFormat2222222222222222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                                                                          BvlcResultFormat2222222222222222222[BvlcResultFormat2222222222222222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                                                                          BvlcResultFormat2222222222222222222[BvlcResultFormat2222222222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                                                                          BvlcResultFormat2222222222222222222[BvlcResultFormat2222222222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                                                                          return BvlcResultFormat2222222222222222222;
                                                                        })(BvlcResultFormat222222222222222222 || {});
                                                                        var BvlcResultPurpose222222222222222222 = /* @__PURE__ */ ((BvlcResultPurpose2222222222222222222) => {
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                                                                          BvlcResultPurpose2222222222222222222[BvlcResultPurpose2222222222222222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                                                                          return BvlcResultPurpose2222222222222222222;
                                                                        })(BvlcResultPurpose222222222222222222 || {});
                                                                        var CharacterStringEncoding222222222222222222 = /* @__PURE__ */ ((CharacterStringEncoding2222222222222222222) => {
                                                                          CharacterStringEncoding2222222222222222222[CharacterStringEncoding2222222222222222222["UTF_8"] = 0] = "UTF_8";
                                                                          CharacterStringEncoding2222222222222222222[CharacterStringEncoding2222222222222222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                                                                          CharacterStringEncoding2222222222222222222[CharacterStringEncoding2222222222222222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                                                                          CharacterStringEncoding2222222222222222222[CharacterStringEncoding2222222222222222222["UCS_4"] = 3] = "UCS_4";
                                                                          CharacterStringEncoding2222222222222222222[CharacterStringEncoding2222222222222222222["UCS_2"] = 4] = "UCS_2";
                                                                          CharacterStringEncoding2222222222222222222[CharacterStringEncoding2222222222222222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                                                                          return CharacterStringEncoding2222222222222222222;
                                                                        })(CharacterStringEncoding222222222222222222 || {});
                                                                        var CovType222222222222222222 = /* @__PURE__ */ ((CovType2222222222222222222) => {
                                                                          CovType2222222222222222222[CovType2222222222222222222["REAL"] = 0] = "REAL";
                                                                          CovType2222222222222222222[CovType2222222222222222222["BIT_STRING"] = 1] = "BIT_STRING";
                                                                          return CovType2222222222222222222;
                                                                        })(CovType222222222222222222 || {});
                                                                        var EnableDisable222222222222222222 = /* @__PURE__ */ ((EnableDisable2222222222222222222) => {
                                                                          EnableDisable2222222222222222222[EnableDisable2222222222222222222["ENABLE"] = 0] = "ENABLE";
                                                                          EnableDisable2222222222222222222[EnableDisable2222222222222222222["DISABLE"] = 1] = "DISABLE";
                                                                          EnableDisable2222222222222222222[EnableDisable2222222222222222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                                                                          return EnableDisable2222222222222222222;
                                                                        })(EnableDisable222222222222222222 || {});
                                                                        var MaxApduLengthAccepted222222222222222222 = /* @__PURE__ */ ((MaxApduLengthAccepted2222222222222222222) => {
                                                                          MaxApduLengthAccepted2222222222222222222[MaxApduLengthAccepted2222222222222222222["OCTETS_50"] = 0] = "OCTETS_50";
                                                                          MaxApduLengthAccepted2222222222222222222[MaxApduLengthAccepted2222222222222222222["OCTETS_128"] = 1] = "OCTETS_128";
                                                                          MaxApduLengthAccepted2222222222222222222[MaxApduLengthAccepted2222222222222222222["OCTETS_206"] = 2] = "OCTETS_206";
                                                                          MaxApduLengthAccepted2222222222222222222[MaxApduLengthAccepted2222222222222222222["OCTETS_480"] = 3] = "OCTETS_480";
                                                                          MaxApduLengthAccepted2222222222222222222[MaxApduLengthAccepted2222222222222222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                                                                          MaxApduLengthAccepted2222222222222222222[MaxApduLengthAccepted2222222222222222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                                                                          return MaxApduLengthAccepted2222222222222222222;
                                                                        })(MaxApduLengthAccepted222222222222222222 || {});
                                                                        var MaxSegmentsAccepted222222222222222222 = /* @__PURE__ */ ((MaxSegmentsAccepted2222222222222222222) => {
                                                                          MaxSegmentsAccepted2222222222222222222[MaxSegmentsAccepted2222222222222222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                                                                          MaxSegmentsAccepted2222222222222222222[MaxSegmentsAccepted2222222222222222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                                                                          MaxSegmentsAccepted2222222222222222222[MaxSegmentsAccepted2222222222222222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                                                                          MaxSegmentsAccepted2222222222222222222[MaxSegmentsAccepted2222222222222222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                                                                          MaxSegmentsAccepted2222222222222222222[MaxSegmentsAccepted2222222222222222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                                                                          MaxSegmentsAccepted2222222222222222222[MaxSegmentsAccepted2222222222222222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                                                                          MaxSegmentsAccepted2222222222222222222[MaxSegmentsAccepted2222222222222222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                                                                          MaxSegmentsAccepted2222222222222222222[MaxSegmentsAccepted2222222222222222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                                                                          return MaxSegmentsAccepted2222222222222222222;
                                                                        })(MaxSegmentsAccepted222222222222222222 || {});
                                                                        var NetworkLayerMessageType222222222222222222 = /* @__PURE__ */ ((NetworkLayerMessageType2222222222222222222) => {
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                                                                          NetworkLayerMessageType2222222222222222222[NetworkLayerMessageType2222222222222222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                                                                          return NetworkLayerMessageType2222222222222222222;
                                                                        })(NetworkLayerMessageType222222222222222222 || {});
                                                                        var NpduControlBit222222222222222222 = /* @__PURE__ */ ((NpduControlBit2222222222222222222) => {
                                                                          NpduControlBit2222222222222222222[NpduControlBit2222222222222222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                                                                          NpduControlBit2222222222222222222[NpduControlBit2222222222222222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                                                                          NpduControlBit2222222222222222222[NpduControlBit2222222222222222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                                                                          NpduControlBit2222222222222222222[NpduControlBit2222222222222222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                                                                          return NpduControlBit2222222222222222222;
                                                                        })(NpduControlBit222222222222222222 || {});
                                                                        var NpduControlPriority222222222222222222 = /* @__PURE__ */ ((NpduControlPriority2222222222222222222) => {
                                                                          NpduControlPriority2222222222222222222[NpduControlPriority2222222222222222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                                                                          NpduControlPriority2222222222222222222[NpduControlPriority2222222222222222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                                                                          NpduControlPriority2222222222222222222[NpduControlPriority2222222222222222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                                                                          NpduControlPriority2222222222222222222[NpduControlPriority2222222222222222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                                                                          return NpduControlPriority2222222222222222222;
                                                                        })(NpduControlPriority222222222222222222 || {});
                                                                        var PduConReqBit222222222222222222 = /* @__PURE__ */ ((PduConReqBit2222222222222222222) => {
                                                                          PduConReqBit2222222222222222222[PduConReqBit2222222222222222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                                                                          PduConReqBit2222222222222222222[PduConReqBit2222222222222222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                                                                          PduConReqBit2222222222222222222[PduConReqBit2222222222222222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                                                                          return PduConReqBit2222222222222222222;
                                                                        })(PduConReqBit222222222222222222 || {});
                                                                        var PduSegAckBit222222222222222222 = /* @__PURE__ */ ((PduSegAckBit2222222222222222222) => {
                                                                          PduSegAckBit2222222222222222222[PduSegAckBit2222222222222222222["SERVER"] = 1] = "SERVER";
                                                                          PduSegAckBit2222222222222222222[PduSegAckBit2222222222222222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                                                                          return PduSegAckBit2222222222222222222;
                                                                        })(PduSegAckBit222222222222222222 || {});
                                                                        var PduType222222222222222222 = /* @__PURE__ */ ((PduType2222222222222222222) => {
                                                                          PduType2222222222222222222[PduType2222222222222222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                                                                          PduType2222222222222222222[PduType2222222222222222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                                                                          PduType2222222222222222222[PduType2222222222222222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                                                                          PduType2222222222222222222[PduType2222222222222222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                                                                          PduType2222222222222222222[PduType2222222222222222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                                                                          PduType2222222222222222222[PduType2222222222222222222["ERROR"] = 80] = "ERROR";
                                                                          PduType2222222222222222222[PduType2222222222222222222["REJECT"] = 96] = "REJECT";
                                                                          PduType2222222222222222222[PduType2222222222222222222["ABORT"] = 112] = "ABORT";
                                                                          return PduType2222222222222222222;
                                                                        })(PduType222222222222222222 || {});
                                                                        var PropertyStates222222222222222222 = /* @__PURE__ */ ((PropertyStates2222222222222222222) => {
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["POLARITY"] = 3] = "POLARITY";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["RELIABILITY"] = 7] = "RELIABILITY";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["STATE"] = 8] = "STATE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["UNITS"] = 10] = "UNITS";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["ACTION"] = 16] = "ACTION";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["SHED_STATE"] = 27] = "SHED_STATE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                                                                          PropertyStates2222222222222222222[PropertyStates2222222222222222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                                                                          return PropertyStates2222222222222222222;
                                                                        })(PropertyStates222222222222222222 || {});
                                                                        var ReadRangeType222222222222222222 = /* @__PURE__ */ ((ReadRangeType2222222222222222222) => {
                                                                          ReadRangeType2222222222222222222[ReadRangeType2222222222222222222["BY_POSITION"] = 0] = "BY_POSITION";
                                                                          ReadRangeType2222222222222222222[ReadRangeType2222222222222222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                                                                          ReadRangeType2222222222222222222[ReadRangeType2222222222222222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                                                                          return ReadRangeType2222222222222222222;
                                                                        })(ReadRangeType222222222222222222 || {});
                                                                        var ReinitializedState222222222222222222 = /* @__PURE__ */ ((ReinitializedState2222222222222222222) => {
                                                                          ReinitializedState2222222222222222222[ReinitializedState2222222222222222222["COLDSTART"] = 0] = "COLDSTART";
                                                                          ReinitializedState2222222222222222222[ReinitializedState2222222222222222222["WARMSTART"] = 1] = "WARMSTART";
                                                                          ReinitializedState2222222222222222222[ReinitializedState2222222222222222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                                                                          ReinitializedState2222222222222222222[ReinitializedState2222222222222222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                                                                          ReinitializedState2222222222222222222[ReinitializedState2222222222222222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                                                                          ReinitializedState2222222222222222222[ReinitializedState2222222222222222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                                                                          ReinitializedState2222222222222222222[ReinitializedState2222222222222222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                                                                          ReinitializedState2222222222222222222[ReinitializedState2222222222222222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                                                                          return ReinitializedState2222222222222222222;
                                                                        })(ReinitializedState222222222222222222 || {});
                                                                        var TimeStamp222222222222222222 = /* @__PURE__ */ ((TimeStamp2222222222222222222) => {
                                                                          TimeStamp2222222222222222222[TimeStamp2222222222222222222["TIME"] = 0] = "TIME";
                                                                          TimeStamp2222222222222222222[TimeStamp2222222222222222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                                                                          TimeStamp2222222222222222222[TimeStamp2222222222222222222["DATETIME"] = 2] = "DATETIME";
                                                                          return TimeStamp2222222222222222222;
                                                                        })(TimeStamp222222222222222222 || {});
                                                                        var import_events2222222222222222222 = __toESM222222222222222222(require("events"));
                                                                        var import_debug3222222222222222222 = __toESM222222222222222222(require("debug"));
                                                                        var import_dgram222222222222222222 = require("dgram");
                                                                        var import_events322222222222222222 = __toESM222222222222222222(require("events"));
                                                                        var import_debug2222222222222222222 = __toESM222222222222222222(require("debug"));
                                                                        var EventEmitter322222222222222222 = import_events322222222222222222.default.EventEmitter;
                                                                        var debug2222222222222222222 = (0, import_debug2222222222222222222.default)("bacnet:client:debug");
                                                                        var DEFAULT_BACNET_PORT322222222222222222 = 47808;
                                                                        var Transport222222222222222222 = class extends EventEmitter322222222222222222 {
                                                                          constructor(settings) {
                                                                            super();
                                                                            this._lastSendMessages = {};
                                                                            this._settings = settings;
                                                                            this._server = (0, import_dgram222222222222222222.createSocket)({
                                                                              type: "udp4",
                                                                              reuseAddr: settings.reuseAddr
                                                                            });
                                                                            this._server.on("message", (msg, rinfo) => {
                                                                              if (this.ownAddress.port === rinfo.port) {
                                                                                for (let [messageKey, earlierSentBuffer] of Object.entries(
                                                                                  this._lastSendMessages
                                                                                )) {
                                                                                  if (msg.equals(earlierSentBuffer)) {
                                                                                    debug2222222222222222222(
                                                                                      `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                                                                    );
                                                                                    return;
                                                                                  }
                                                                                }
                                                                              }
                                                                              debug2222222222222222222(
                                                                                `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                                                                  "hex"
                                                                                )}`
                                                                              );
                                                                              this.emit(
                                                                                "message",
                                                                                msg,
                                                                                rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT322222222222222222 ? "" : ":" + rinfo.port)
                                                                              );
                                                                            });
                                                                            this._server.on("listening", () => {
                                                                              this.ownAddress = this._server.address();
                                                                              debug2222222222222222222(
                                                                                `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                                                                              );
                                                                              this.emit("listening", this.ownAddress);
                                                                            });
                                                                            this._server.on("error", (err) => {
                                                                              debug2222222222222222222("transport error", err.message);
                                                                              this.emit("error", err);
                                                                            });
                                                                            this._server.on("close", () => {
                                                                              debug2222222222222222222("transport closed");
                                                                              this.emit("close");
                                                                            });
                                                                          }
                                                                          getBroadcastAddress() {
                                                                            return this._settings.broadcastAddress;
                                                                          }
                                                                          getMaxPayload() {
                                                                            return 1482;
                                                                          }
                                                                          send(buffer, offset, receiver) {
                                                                            if (!receiver) {
                                                                              receiver = this.getBroadcastAddress();
                                                                              const dataToSend = Buffer.alloc(offset);
                                                                              const hrTime = process.hrtime();
                                                                              const messageKey = hrTime[0] * 1e9 + hrTime[1];
                                                                              buffer.copy(dataToSend, 0, 0, offset);
                                                                              this._lastSendMessages[messageKey] = dataToSend;
                                                                              setTimeout(() => {
                                                                                delete this._lastSendMessages[messageKey];
                                                                              }, 1e4);
                                                                            }
                                                                            const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                                                                            const [address, port] = receiverAddress.split(":");
                                                                            debug2222222222222222222(
                                                                              "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                                                                            );
                                                                            this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT322222222222222222, address);
                                                                          }
                                                                          open() {
                                                                            this._server.bind(this._settings.port, this._settings.interface, () => {
                                                                              this._server.setBroadcast(true);
                                                                            });
                                                                          }
                                                                          close() {
                                                                            this._server.close();
                                                                          }
                                                                        };
                                                                        var services_exports222222222222222222 = {};
                                                                        __export222222222222222222(services_exports222222222222222222, {
                                                                          addListElement: () => add_list_element_exports222222222222222222,
                                                                          alarmAcknowledge: () => alarm_acknowledge_exports222222222222222222,
                                                                          alarmSummary: () => alarm_summary_exports222222222222222222,
                                                                          atomicReadFile: () => atomic_read_file_exports222222222222222222,
                                                                          atomicWriteFile: () => atomic_write_file_exports222222222222222222,
                                                                          covNotify: () => cov_notify_exports222222222222222222,
                                                                          covNotifyUnconfirmed: () => cov_notify_exports222222222222222222,
                                                                          createObject: () => create_object_exports222222222222222222,
                                                                          deleteObject: () => delete_object_exports222222222222222222,
                                                                          deviceCommunicationControl: () => device_communication_control_exports222222222222222222,
                                                                          error: () => error_exports222222222222222222,
                                                                          eventInformation: () => event_information_exports222222222222222222,
                                                                          eventNotifyData: () => event_notify_data_exports222222222222222222,
                                                                          getEnrollmentSummary: () => get_enrollment_summary_exports222222222222222222,
                                                                          getEventInformation: () => get_event_information_exports222222222222222222,
                                                                          iAm: () => i_am_exports222222222222222222,
                                                                          iHave: () => i_have_exports222222222222222222,
                                                                          lifeSafetyOperation: () => life_safety_operation_exports222222222222222222,
                                                                          privateTransfer: () => private_transfer_exports222222222222222222,
                                                                          readProperty: () => read_property_exports222222222222222222,
                                                                          readPropertyMultiple: () => read_property_multiple_exports222222222222222222,
                                                                          readRange: () => read_range_exports222222222222222222,
                                                                          registerForeignDevice: () => register_foreign_device_exports222222222222222222,
                                                                          reinitializeDevice: () => reinitialize_device_exports222222222222222222,
                                                                          subscribeCov: () => subscribe_cov_exports222222222222222222,
                                                                          subscribeProperty: () => subscribe_property_exports222222222222222222,
                                                                          timeSync: () => time_sync_exports222222222222222222,
                                                                          timeSyncUTC: () => time_sync_exports222222222222222222,
                                                                          whoHas: () => who_has_exports222222222222222222,
                                                                          whoIs: () => who_is_exports222222222222222222,
                                                                          writeProperty: () => write_property_exports222222222222222222,
                                                                          writePropertyMultiple: () => write_property_multiple_exports222222222222222222
                                                                        });
                                                                        var add_list_element_exports222222222222222222 = {};
                                                                        __export222222222222222222(add_list_element_exports222222222222222222, {
                                                                          decode: () => decode3322222222222222222,
                                                                          encode: () => encode3322222222222222222
                                                                        });
                                                                        var import_iconv_lite222222222222222222 = __toESM222222222222222222(require("iconv-lite"));
                                                                        var enums_default222222222222222222 = enum_exports222222222222222222;
                                                                        var START_YEAR222222222222222222 = 1900;
                                                                        var MAX_YEARS222222222222222222 = 256;
                                                                        var getBuffer222222222222222222 = () => {
                                                                          return {
                                                                            buffer: Buffer.alloc(1472),
                                                                            offset: 0
                                                                          };
                                                                        };
                                                                        var getSignedLength222222222222222222 = (value) => {
                                                                          if (value >= -128 && value < 128)
                                                                            return 1;
                                                                          else if (value >= -32768 && value < 32768)
                                                                            return 2;
                                                                          else if (value > -8388608 && value < 8388608)
                                                                            return 3;
                                                                          else
                                                                            return 4;
                                                                        };
                                                                        var getUnsignedLength222222222222222222 = (value) => {
                                                                          if (value < 256)
                                                                            return 1;
                                                                          else if (value < 65536)
                                                                            return 2;
                                                                          else if (value < 16777216)
                                                                            return 3;
                                                                          else
                                                                            return 4;
                                                                        };
                                                                        var getEncodingType222222222222222222 = (encoding, decodingBuffer, decodingOffset) => {
                                                                          switch (encoding) {
                                                                            case enums_default222222222222222222.CharacterStringEncoding.UCS_2:
                                                                              if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                                                                return "ucs2";
                                                                              }
                                                                              return "UTF-16BE";
                                                                            case enums_default222222222222222222.CharacterStringEncoding.ISO_8859_1:
                                                                              return "latin1";
                                                                            case enums_default222222222222222222.CharacterStringEncoding.MICROSOFT_DBCS:
                                                                              return "cp850";
                                                                            case enums_default222222222222222222.CharacterStringEncoding.JIS_X_0208:
                                                                              return "Shift_JIS";
                                                                            default:
                                                                              return "utf8";
                                                                          }
                                                                        };
                                                                        var encodeUnsigned222222222222222222 = (buffer, value, length) => {
                                                                          buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                                                                          buffer.offset += length;
                                                                        };
                                                                        var encodeBacnetUnsigned222222222222222222 = (buffer, value) => {
                                                                          encodeUnsigned222222222222222222(buffer, value, getUnsignedLength222222222222222222(value));
                                                                        };
                                                                        var encodeSigned222222222222222222 = (buffer, value, length) => {
                                                                          buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                                                                          buffer.offset += length;
                                                                        };
                                                                        var encodeBacnetSigned222222222222222222 = (buffer, value) => {
                                                                          encodeSigned222222222222222222(buffer, value, getSignedLength222222222222222222(value));
                                                                        };
                                                                        var encodeBacnetReal222222222222222222 = (buffer, value) => {
                                                                          buffer.buffer.writeFloatBE(value, buffer.offset, true);
                                                                          buffer.offset += 4;
                                                                        };
                                                                        var encodeBacnetDouble222222222222222222 = (buffer, value) => {
                                                                          buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                                                                          buffer.offset += 8;
                                                                        };
                                                                        var decodeUnsigned222222222222222222 = (buffer, offset, length) => {
                                                                          if (length === 0) {
                                                                            return {
                                                                              len: 0,
                                                                              value: 0
                                                                            };
                                                                          }
                                                                          return {
                                                                            len: length,
                                                                            //@ts-ignore
                                                                            value: buffer.readUIntBE(offset, length)
                                                                          };
                                                                        };
                                                                        var decodeEnumerated222222222222222222 = (buffer, offset, length) => {
                                                                          return decodeUnsigned222222222222222222(buffer, offset, length);
                                                                        };
                                                                        var encodeBacnetObjectId222222222222222222 = (buffer, objectType, instance) => {
                                                                          const value = ((objectType & enums_default222222222222222222.ASN1_MAX_OBJECT) << enums_default222222222222222222.ASN1_INSTANCE_BITS | instance & enums_default222222222222222222.ASN1_MAX_INSTANCE) >>> 0;
                                                                          encodeUnsigned222222222222222222(buffer, value, 4);
                                                                        };
                                                                        var encodeTag222222222222222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                                                                          let len = 1;
                                                                          const tmp = new Array(3);
                                                                          tmp[0] = 0;
                                                                          if (contextSpecific) {
                                                                            tmp[0] |= 8;
                                                                          }
                                                                          if (tagNumber <= 14) {
                                                                            tmp[0] |= tagNumber << 4;
                                                                          } else {
                                                                            tmp[0] |= 240;
                                                                            tmp[1] = tagNumber;
                                                                            len++;
                                                                          }
                                                                          if (lenValueType <= 4) {
                                                                            tmp[0] |= lenValueType;
                                                                            Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                            buffer.offset += len;
                                                                          } else {
                                                                            tmp[0] |= 5;
                                                                            if (lenValueType <= 253) {
                                                                              tmp[len++] = lenValueType;
                                                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                              buffer.offset += len;
                                                                            } else if (lenValueType <= 65535) {
                                                                              tmp[len++] = 254;
                                                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                              buffer.offset += len;
                                                                              encodeUnsigned222222222222222222(buffer, lenValueType, 2);
                                                                            } else {
                                                                              tmp[len++] = 255;
                                                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                              buffer.offset += len;
                                                                              encodeUnsigned222222222222222222(buffer, lenValueType, 4);
                                                                            }
                                                                          }
                                                                        };
                                                                        var encodeBacnetEnumerated222222222222222222 = (buffer, value) => {
                                                                          encodeBacnetUnsigned222222222222222222(buffer, value);
                                                                        };
                                                                        var isExtendedTagNumber222222222222222222 = (x) => {
                                                                          return (x & 240) === 240;
                                                                        };
                                                                        var isExtendedValue222222222222222222 = (x) => {
                                                                          return (x & 7) === 5;
                                                                        };
                                                                        var isContextSpecific222222222222222222 = (x) => {
                                                                          return (x & 8) === 8;
                                                                        };
                                                                        var isOpeningTag222222222222222222 = (x) => {
                                                                          return (x & 7) === 6;
                                                                        };
                                                                        var isClosingTag222222222222222222 = (x) => {
                                                                          return (x & 7) === 7;
                                                                        };
                                                                        var encodeContextReal222222222222222222 = (buffer, tagNumber, value) => {
                                                                          encodeTag222222222222222222(buffer, tagNumber, true, 4);
                                                                          encodeBacnetReal222222222222222222(buffer, value);
                                                                        };
                                                                        var encodeContextUnsigned222222222222222222 = (buffer, tagNumber, value) => {
                                                                          encodeTag222222222222222222(buffer, tagNumber, true, getUnsignedLength222222222222222222(value));
                                                                          encodeBacnetUnsigned222222222222222222(buffer, value);
                                                                        };
                                                                        var encodeContextEnumerated222222222222222222 = (buffer, tagNumber, value) => {
                                                                          encodeContextUnsigned222222222222222222(buffer, tagNumber, value);
                                                                        };
                                                                        var encodeOctetString222222222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                                          if (octetString) {
                                                                            for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                                                                              buffer.buffer[buffer.offset++] = octetString[i];
                                                                            }
                                                                          }
                                                                        };
                                                                        var encodeApplicationOctetString222222222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                                          encodeTag222222222222222222(buffer, enums_default222222222222222222.ApplicationTag.OCTET_STRING, false, octetCount);
                                                                          encodeOctetString222222222222222222(buffer, octetString, octetOffset, octetCount);
                                                                        };
                                                                        var encodeApplicationNull222222222222222222 = (buffer) => {
                                                                          buffer.buffer[buffer.offset++] = enums_default222222222222222222.ApplicationTag.NULL;
                                                                        };
                                                                        var encodeApplicationBoolean222222222222222222 = (buffer, booleanValue) => {
                                                                          encodeTag222222222222222222(buffer, enums_default222222222222222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                                                                        };
                                                                        var encodeApplicationReal222222222222222222 = (buffer, value) => {
                                                                          encodeTag222222222222222222(buffer, enums_default222222222222222222.ApplicationTag.REAL, false, 4);
                                                                          encodeBacnetReal222222222222222222(buffer, value);
                                                                        };
                                                                        var encodeApplicationDouble222222222222222222 = (buffer, value) => {
                                                                          encodeTag222222222222222222(buffer, enums_default222222222222222222.ApplicationTag.DOUBLE, false, 8);
                                                                          encodeBacnetDouble222222222222222222(buffer, value);
                                                                        };
                                                                        var bitstringBytesUsed222222222222222222 = (bitString) => {
                                                                          let len = 0;
                                                                          if (bitString.bitsUsed > 0) {
                                                                            const lastBit = bitString.bitsUsed - 1;
                                                                            const usedBytes = lastBit / 8 + 1;
                                                                            len = Math.floor(usedBytes);
                                                                          }
                                                                          return len;
                                                                        };
                                                                        var encodeApplicationObjectId222222222222222222 = (buffer, objectType, instance) => {
                                                                          const tmp = getBuffer222222222222222222();
                                                                          encodeBacnetObjectId222222222222222222(tmp, objectType, instance);
                                                                          encodeTag222222222222222222(buffer, enums_default222222222222222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                                                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                          buffer.offset += tmp.offset;
                                                                        };
                                                                        var encodeApplicationUnsigned222222222222222222 = (buffer, value) => {
                                                                          const tmp = getBuffer222222222222222222();
                                                                          encodeBacnetUnsigned222222222222222222(tmp, value);
                                                                          encodeTag222222222222222222(buffer, enums_default222222222222222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                                                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                          buffer.offset += tmp.offset;
                                                                        };
                                                                        var encodeApplicationEnumerated222222222222222222 = (buffer, value) => {
                                                                          const tmp = getBuffer222222222222222222();
                                                                          encodeBacnetEnumerated222222222222222222(tmp, value);
                                                                          encodeTag222222222222222222(buffer, enums_default222222222222222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                                                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                          buffer.offset += tmp.offset;
                                                                        };
                                                                        var encodeApplicationSigned222222222222222222 = (buffer, value) => {
                                                                          const tmp = getBuffer222222222222222222();
                                                                          encodeBacnetSigned222222222222222222(tmp, value);
                                                                          encodeTag222222222222222222(buffer, enums_default222222222222222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                                                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                          buffer.offset += tmp.offset;
                                                                        };
                                                                        var byteReverseBits222222222222222222 = (inByte) => {
                                                                          let outByte = 0;
                                                                          if ((inByte & 1) > 0) {
                                                                            outByte |= 128;
                                                                          }
                                                                          if ((inByte & 2) > 0) {
                                                                            outByte |= 64;
                                                                          }
                                                                          if ((inByte & 4) > 0) {
                                                                            outByte |= 32;
                                                                          }
                                                                          if ((inByte & 8) > 0) {
                                                                            outByte |= 16;
                                                                          }
                                                                          if ((inByte & 16) > 0) {
                                                                            outByte |= 8;
                                                                          }
                                                                          if ((inByte & 32) > 0) {
                                                                            outByte |= 4;
                                                                          }
                                                                          if ((inByte & 64) > 0) {
                                                                            outByte |= 2;
                                                                          }
                                                                          if ((inByte & 128) > 0) {
                                                                            outByte |= 1;
                                                                          }
                                                                          return outByte;
                                                                        };
                                                                        var bitstringOctet222222222222222222 = (bitString, octetIndex) => {
                                                                          let octet = 0;
                                                                          if (bitString.value && octetIndex < enums_default222222222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                                            octet = bitString.value[octetIndex];
                                                                          }
                                                                          return octet;
                                                                        };
                                                                        var encodeBitstring222222222222222222 = (buffer, bitString) => {
                                                                          if (bitString.bitsUsed === 0) {
                                                                            buffer.buffer[buffer.offset++] = 0;
                                                                          } else {
                                                                            const usedBytes = bitstringBytesUsed222222222222222222(bitString);
                                                                            const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                                                                            buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                                                                            for (let i = 0; i < usedBytes; i++) {
                                                                              buffer.buffer[buffer.offset++] = byteReverseBits222222222222222222(
                                                                                bitstringOctet222222222222222222(bitString, i)
                                                                              );
                                                                            }
                                                                          }
                                                                        };
                                                                        var encodeApplicationBitstring222222222222222222 = (buffer, bitString) => {
                                                                          let bitStringEncodedLength = 1;
                                                                          bitStringEncodedLength += bitstringBytesUsed222222222222222222(bitString);
                                                                          encodeTag222222222222222222(
                                                                            buffer,
                                                                            enums_default222222222222222222.ApplicationTag.BIT_STRING,
                                                                            false,
                                                                            bitStringEncodedLength
                                                                          );
                                                                          encodeBitstring222222222222222222(buffer, bitString);
                                                                        };
                                                                        var encodeBacnetDate222222222222222222 = (buffer, value) => {
                                                                          if (value === new Date(1, 1, 1)) {
                                                                            buffer.buffer[buffer.offset++] = 255;
                                                                            buffer.buffer[buffer.offset++] = 255;
                                                                            buffer.buffer[buffer.offset++] = 255;
                                                                            buffer.buffer[buffer.offset++] = 255;
                                                                            return;
                                                                          }
                                                                          if (value.getFullYear() >= START_YEAR222222222222222222) {
                                                                            buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR222222222222222222;
                                                                          } else if (value.getFullYear() < MAX_YEARS222222222222222222) {
                                                                            buffer.buffer[buffer.offset++] = value.getFullYear();
                                                                          } else {
                                                                            throw new Error("invaide year: " + value.getFullYear());
                                                                          }
                                                                          buffer.buffer[buffer.offset++] = value.getMonth();
                                                                          buffer.buffer[buffer.offset++] = value.getDate();
                                                                          buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                                                                        };
                                                                        var encodeApplicationDate222222222222222222 = (buffer, value) => {
                                                                          encodeTag222222222222222222(buffer, enums_default222222222222222222.ApplicationTag.DATE, false, 4);
                                                                          encodeBacnetDate222222222222222222(buffer, value);
                                                                        };
                                                                        var encodeBacnetTime222222222222222222 = (buffer, value) => {
                                                                          buffer.buffer[buffer.offset++] = value.getHours();
                                                                          buffer.buffer[buffer.offset++] = value.getMinutes();
                                                                          buffer.buffer[buffer.offset++] = value.getSeconds();
                                                                          buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                                                                        };
                                                                        var encodeApplicationTime222222222222222222 = (buffer, value) => {
                                                                          encodeTag222222222222222222(buffer, enums_default222222222222222222.ApplicationTag.TIME, false, 4);
                                                                          encodeBacnetTime222222222222222222(buffer, value);
                                                                        };
                                                                        var bacappEncodeDatetime222222222222222222 = (buffer, value) => {
                                                                          if (value !== new Date(1, 1, 1)) {
                                                                            encodeApplicationDate222222222222222222(buffer, value);
                                                                            encodeApplicationTime222222222222222222(buffer, value);
                                                                          }
                                                                        };
                                                                        var encodeContextObjectId222222222222222222 = (buffer, tagNumber, objectType, instance) => {
                                                                          encodeTag222222222222222222(buffer, tagNumber, true, 4);
                                                                          encodeBacnetObjectId222222222222222222(buffer, objectType, instance);
                                                                        };
                                                                        var encodeOpeningTag222222222222222222 = (buffer, tagNumber) => {
                                                                          let len = 1;
                                                                          const tmp = new Array(2);
                                                                          tmp[0] = 8;
                                                                          if (tagNumber <= 14) {
                                                                            tmp[0] |= tagNumber << 4;
                                                                          } else {
                                                                            tmp[0] |= 240;
                                                                            tmp[1] = tagNumber;
                                                                            len++;
                                                                          }
                                                                          tmp[0] |= 6;
                                                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                          buffer.offset += len;
                                                                        };
                                                                        var encodeClosingTag222222222222222222 = (buffer, tagNumber) => {
                                                                          let len = 1;
                                                                          const tmp = new Array(2);
                                                                          tmp[0] = 8;
                                                                          if (tagNumber <= 14) {
                                                                            tmp[0] |= tagNumber << 4;
                                                                          } else {
                                                                            tmp[0] |= 240;
                                                                            tmp[1] = tagNumber;
                                                                            len++;
                                                                          }
                                                                          tmp[0] |= 7;
                                                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                          buffer.offset += len;
                                                                        };
                                                                        var encodeReadAccessSpecification222222222222222222 = (buffer, value) => {
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            0,
                                                                            value.objectId.type,
                                                                            value.objectId.instance
                                                                          );
                                                                          encodeOpeningTag222222222222222222(buffer, 1);
                                                                          value.properties.forEach((p) => {
                                                                            encodeContextEnumerated222222222222222222(buffer, 0, p.id);
                                                                            if (p.index && p.index !== enums_default222222222222222222.ASN1_ARRAY_ALL) {
                                                                              encodeContextUnsigned222222222222222222(buffer, 1, p.index);
                                                                            }
                                                                          });
                                                                          encodeClosingTag222222222222222222(buffer, 1);
                                                                        };
                                                                        var encodeContextBoolean222222222222222222 = (buffer, tagNumber, booleanValue) => {
                                                                          encodeTag222222222222222222(buffer, tagNumber, true, 1);
                                                                          buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                                                                          buffer.offset += 1;
                                                                        };
                                                                        var encodeCovSubscription222222222222222222 = (buffer, value) => {
                                                                          encodeOpeningTag222222222222222222(buffer, 0);
                                                                          encodeOpeningTag222222222222222222(buffer, 0);
                                                                          encodeOpeningTag222222222222222222(buffer, 1);
                                                                          encodeApplicationUnsigned222222222222222222(buffer, value.recipient.network);
                                                                          if (value.recipient.network === 65535) {
                                                                            encodeApplicationOctetString222222222222222222(buffer, 0, 0, 0);
                                                                          } else {
                                                                            encodeApplicationOctetString222222222222222222(
                                                                              buffer,
                                                                              value.recipient.address,
                                                                              0,
                                                                              value.recipient.address.length
                                                                            );
                                                                          }
                                                                          encodeClosingTag222222222222222222(buffer, 1);
                                                                          encodeClosingTag222222222222222222(buffer, 0);
                                                                          encodeContextUnsigned222222222222222222(buffer, 1, value.subscriptionProcessId);
                                                                          encodeClosingTag222222222222222222(buffer, 0);
                                                                          encodeOpeningTag222222222222222222(buffer, 1);
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            0,
                                                                            value.monitoredObjectId.type,
                                                                            value.monitoredObjectId.instance
                                                                          );
                                                                          encodeContextEnumerated222222222222222222(buffer, 1, value.monitoredProperty.id);
                                                                          if (value.monitoredProperty.index !== enums_default222222222222222222.ASN1_ARRAY_ALL) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 2, value.monitoredProperty.index);
                                                                          }
                                                                          encodeClosingTag222222222222222222(buffer, 1);
                                                                          encodeContextBoolean222222222222222222(buffer, 2, value.issueConfirmedNotifications);
                                                                          encodeContextUnsigned222222222222222222(buffer, 3, value.timeRemaining);
                                                                          if (value.covIncrement > 0) {
                                                                            encodeContextReal222222222222222222(buffer, 4, value.covIncrement);
                                                                          }
                                                                        };
                                                                        var bacappEncodeApplicationData222222222222222222 = (buffer, value) => {
                                                                          if (value.value === null) {
                                                                            value.type = enums_default222222222222222222.ApplicationTag.NULL;
                                                                          }
                                                                          switch (value.type) {
                                                                            case enums_default222222222222222222.ApplicationTag.NULL:
                                                                              encodeApplicationNull222222222222222222(buffer);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.BOOLEAN:
                                                                              encodeApplicationBoolean222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                                              encodeApplicationUnsigned222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.SIGNED_INTEGER:
                                                                              encodeApplicationSigned222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.REAL:
                                                                              encodeApplicationReal222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.DOUBLE:
                                                                              encodeApplicationDouble222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.OCTET_STRING:
                                                                              encodeApplicationOctetString222222222222222222(buffer, value.value, 0, value.value.length);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.CHARACTER_STRING:
                                                                              encodeApplicationCharacterString222222222222222222(buffer, value.value, value.encoding);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.BIT_STRING:
                                                                              encodeApplicationBitstring222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.ENUMERATED:
                                                                              encodeApplicationEnumerated222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.DATE:
                                                                              encodeApplicationDate222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.TIME:
                                                                              encodeApplicationTime222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.TIMESTAMP:
                                                                              bacappEncodeTimestamp222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.DATETIME:
                                                                              bacappEncodeDatetime222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                                              encodeApplicationObjectId222222222222222222(buffer, value.value.type, value.value.instance);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.COV_SUBSCRIPTION:
                                                                              encodeCovSubscription222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.READ_ACCESS_RESULT:
                                                                              encodeReadAccessResult222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                                              encodeReadAccessSpecification222222222222222222(buffer, value.value);
                                                                              break;
                                                                            case void 0:
                                                                              throw new Error(
                                                                                "Cannot encode a value if the type has not been specified"
                                                                              );
                                                                            default:
                                                                              throw "No encode for ApplicationTag type: " + enums_default222222222222222222.getEnumName(
                                                                                enums_default222222222222222222.ApplicationTag,
                                                                                value.type
                                                                              );
                                                                          }
                                                                        };
                                                                        var bacappEncodeDeviceObjPropertyRef222222222222222222 = (buffer, value) => {
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            0,
                                                                            value.objectId.type,
                                                                            value.objectId.instance
                                                                          );
                                                                          encodeContextEnumerated222222222222222222(buffer, 1, value.id);
                                                                          if (value.arrayIndex !== enums_default222222222222222222.ASN1_ARRAY_ALL) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 2, value.arrayIndex);
                                                                          }
                                                                          if (value.deviceIndentifier.type === enums_default222222222222222222.ObjectType.DEVICE) {
                                                                            encodeContextObjectId222222222222222222(
                                                                              buffer,
                                                                              3,
                                                                              value.deviceIndentifier.type,
                                                                              value.deviceIndentifier.instance
                                                                            );
                                                                          }
                                                                        };
                                                                        var bacappEncodeContextDeviceObjPropertyRef222222222222222222 = (buffer, tagNumber, value) => {
                                                                          encodeOpeningTag222222222222222222(buffer, tagNumber);
                                                                          bacappEncodeDeviceObjPropertyRef222222222222222222(buffer, value);
                                                                          encodeClosingTag222222222222222222(buffer, tagNumber);
                                                                        };
                                                                        var bacappEncodePropertyState222222222222222222 = (buffer, value) => {
                                                                          switch (value.type) {
                                                                            case enums_default222222222222222222.PropertyStates.BOOLEAN_VALUE:
                                                                              encodeContextBoolean222222222222222222(buffer, 0, value.state === 1);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.BINARY_VALUE:
                                                                              encodeContextEnumerated222222222222222222(buffer, 1, value.state);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.EVENT_TYPE:
                                                                              encodeContextEnumerated222222222222222222(buffer, 2, value.state);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.POLARITY:
                                                                              encodeContextEnumerated222222222222222222(buffer, 3, value.state);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.PROGRAM_CHANGE:
                                                                              encodeContextEnumerated222222222222222222(buffer, 4, value.state);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.PROGRAM_STATE:
                                                                              encodeContextEnumerated222222222222222222(buffer, 5, value.state);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.REASON_FOR_HALT:
                                                                              encodeContextEnumerated222222222222222222(buffer, 6, value.state);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.RELIABILITY:
                                                                              encodeContextEnumerated222222222222222222(buffer, 7, value.state);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.STATE:
                                                                              encodeContextEnumerated222222222222222222(buffer, 8, value.state);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.SYSTEM_STATUS:
                                                                              encodeContextEnumerated222222222222222222(buffer, 9, value.state);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.UNITS:
                                                                              encodeContextEnumerated222222222222222222(buffer, 10, value.state);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.UNSIGNED_VALUE:
                                                                              encodeContextUnsigned222222222222222222(buffer, 11, value.state);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.LIFE_SAFETY_MODE:
                                                                              encodeContextEnumerated222222222222222222(buffer, 12, value.state);
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyStates.LIFE_SAFETY_STATE:
                                                                              encodeContextEnumerated222222222222222222(buffer, 13, value.state);
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                        };
                                                                        var encodeContextBitstring222222222222222222 = (buffer, tagNumber, bitString) => {
                                                                          let bitStringEncodedLength = 1;
                                                                          bitStringEncodedLength += bitstringBytesUsed222222222222222222(bitString);
                                                                          encodeTag222222222222222222(buffer, tagNumber, true, bitStringEncodedLength);
                                                                          encodeBitstring222222222222222222(buffer, bitString);
                                                                        };
                                                                        var encodeContextSigned222222222222222222 = (buffer, tagNumber, value) => {
                                                                          encodeTag222222222222222222(buffer, tagNumber, true, getSignedLength222222222222222222(value));
                                                                          encodeBacnetSigned222222222222222222(buffer, value);
                                                                        };
                                                                        var encodeContextTime222222222222222222 = (buffer, tagNumber, value) => {
                                                                          encodeTag222222222222222222(buffer, tagNumber, true, 4);
                                                                          encodeBacnetTime222222222222222222(buffer, value);
                                                                        };
                                                                        var bacappEncodeContextDatetime222222222222222222 = (buffer, tagNumber, value) => {
                                                                          if (value !== new Date(1, 1, 1)) {
                                                                            encodeOpeningTag222222222222222222(buffer, tagNumber);
                                                                            bacappEncodeDatetime222222222222222222(buffer, value);
                                                                            encodeClosingTag222222222222222222(buffer, tagNumber);
                                                                          } else {
                                                                            throw new Error("wrong Datetime while bacapp encoding context");
                                                                          }
                                                                        };
                                                                        var decodeTagNumber222222222222222222 = (buffer, offset) => {
                                                                          let len = 1;
                                                                          let tagNumber;
                                                                          if (isExtendedTagNumber222222222222222222(buffer[offset])) {
                                                                            tagNumber = buffer[offset + 1];
                                                                            len++;
                                                                          } else {
                                                                            tagNumber = buffer[offset] >> 4;
                                                                          }
                                                                          return {
                                                                            len,
                                                                            tagNumber
                                                                          };
                                                                        };
                                                                        var decodeIsContextTag222222222222222222 = (buffer, offset, tagNumber) => {
                                                                          const result = decodeTagNumber222222222222222222(buffer, offset);
                                                                          return isContextSpecific222222222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                                        };
                                                                        var decodeIsOpeningTagNumber222222222222222222 = (buffer, offset, tagNumber) => {
                                                                          const result = decodeTagNumber222222222222222222(buffer, offset);
                                                                          return isOpeningTag222222222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                                        };
                                                                        var decodeIsClosingTagNumber222222222222222222 = (buffer, offset, tagNumber) => {
                                                                          const result = decodeTagNumber222222222222222222(buffer, offset);
                                                                          return isClosingTag222222222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                                        };
                                                                        var decodeIsClosingTag222222222222222222 = (buffer, offset) => {
                                                                          return (buffer[offset] & 7) === 7;
                                                                        };
                                                                        var decodeIsOpeningTag222222222222222222 = (buffer, offset) => {
                                                                          return (buffer[offset] & 7) === 6;
                                                                        };
                                                                        var decodeObjectId222222222222222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                                                                          const result = decodeUnsigned222222222222222222(buffer, offset, 4);
                                                                          const objectType = result.value >> enums_default222222222222222222.ASN1_INSTANCE_BITS & enums_default222222222222222222.ASN1_MAX_OBJECT;
                                                                          const instance = result.value & enums_default222222222222222222.ASN1_MAX_INSTANCE;
                                                                          return {
                                                                            len: result.len,
                                                                            objectType,
                                                                            instance
                                                                          };
                                                                        };
                                                                        var decodeObjectIdSafe222222222222222222 = (buffer, offset, lenValue) => {
                                                                          if (lenValue !== 4) {
                                                                            return {
                                                                              len: 0,
                                                                              objectType: 0,
                                                                              instance: 0
                                                                            };
                                                                          } else {
                                                                            return decodeObjectId222222222222222222(buffer, offset);
                                                                          }
                                                                        };
                                                                        var decodeTagNumberAndValue222222222222222222 = (buffer, offset) => {
                                                                          let value;
                                                                          let result = decodeTagNumber222222222222222222(buffer, offset);
                                                                          let len = result.len;
                                                                          if (isExtendedValue222222222222222222(buffer[offset])) {
                                                                            if (buffer[offset + len] === 255) {
                                                                              len++;
                                                                              result = decodeUnsigned222222222222222222(buffer, offset + len, 4);
                                                                              len += result.len;
                                                                              value = result.value;
                                                                            } else if (buffer[offset + len] === 254) {
                                                                              len++;
                                                                              result = decodeUnsigned222222222222222222(buffer, offset + len, 2);
                                                                              len += result.len;
                                                                              value = result.value;
                                                                            } else {
                                                                              value = buffer[offset + len];
                                                                              len++;
                                                                            }
                                                                          } else if (isOpeningTag222222222222222222(buffer[offset])) {
                                                                            value = 0;
                                                                          } else if (isClosingTag222222222222222222(buffer[offset])) {
                                                                            value = 0;
                                                                          } else {
                                                                            value = buffer[offset] & 7;
                                                                          }
                                                                          return {
                                                                            len,
                                                                            tagNumber: result.tagNumber,
                                                                            value
                                                                          };
                                                                        };
                                                                        var bacappDecodeApplicationData222222222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                                          if (!isContextSpecific222222222222222222(buffer[offset])) {
                                                                            let result = decodeTagNumberAndValue222222222222222222(buffer, offset);
                                                                            if (result) {
                                                                              let len = result.len;
                                                                              result = bacappDecodeData222222222222222222(
                                                                                buffer,
                                                                                offset + len,
                                                                                maxOffset,
                                                                                result.tagNumber,
                                                                                result.value
                                                                              );
                                                                              if (!result) {
                                                                                return void 0;
                                                                              }
                                                                              let resObj = {
                                                                                len: len + result.len,
                                                                                type: result.type,
                                                                                value: result.value
                                                                              };
                                                                              if (result.encoding !== void 0)
                                                                                resObj.encoding = result.encoding;
                                                                              return resObj;
                                                                            }
                                                                          } else {
                                                                            return bacappDecodeContextApplicationData222222222222222222(
                                                                              buffer,
                                                                              offset,
                                                                              maxOffset,
                                                                              objectType,
                                                                              propertyId
                                                                            );
                                                                          }
                                                                        };
                                                                        var encodeReadAccessResult222222222222222222 = (buffer, value) => {
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            0,
                                                                            value.objectId.type,
                                                                            value.objectId.instance
                                                                          );
                                                                          encodeOpeningTag222222222222222222(buffer, 1);
                                                                          value.values.forEach((item) => {
                                                                            encodeContextEnumerated222222222222222222(buffer, 2, item.property.id);
                                                                            if (item.property.index !== enums_default222222222222222222.ASN1_ARRAY_ALL) {
                                                                              encodeContextUnsigned222222222222222222(buffer, 3, item.property.index);
                                                                            }
                                                                            if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                                                                              encodeOpeningTag222222222222222222(buffer, 5);
                                                                              encodeApplicationEnumerated222222222222222222(buffer, item.value[0].value.errorClass);
                                                                              encodeApplicationEnumerated222222222222222222(buffer, item.value[0].value.errorCode);
                                                                              encodeClosingTag222222222222222222(buffer, 5);
                                                                            } else {
                                                                              if (!item.value)
                                                                                throw new Error("No value in item");
                                                                              encodeOpeningTag222222222222222222(buffer, 4);
                                                                              item.value.forEach((subItem) => {
                                                                                bacappEncodeApplicationData222222222222222222(buffer, subItem);
                                                                              });
                                                                              encodeClosingTag222222222222222222(buffer, 4);
                                                                            }
                                                                          });
                                                                          encodeClosingTag222222222222222222(buffer, 1);
                                                                        };
                                                                        var decodeReadAccessResult222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let value = {};
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          let result = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          value.objectId = {
                                                                            type: result.objectType,
                                                                            instance: result.instance
                                                                          };
                                                                          len += result.len;
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            return -1;
                                                                          }
                                                                          len++;
                                                                          const values = [];
                                                                          while (apduLen - len > 0) {
                                                                            let newEntry = {};
                                                                            if (decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                              len++;
                                                                              break;
                                                                            }
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 2) {
                                                                              return void 0;
                                                                            }
                                                                            result = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            newEntry.id = result.value;
                                                                            len += result.len;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            if (result.tagNumber === 3) {
                                                                              len += result.len;
                                                                              result = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                              newEntry.index = result.value;
                                                                              len += result.len;
                                                                            } else {
                                                                              newEntry.index = enums_default222222222222222222.ASN1_ARRAY_ALL;
                                                                            }
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber === 4) {
                                                                              const localValues = [];
                                                                              while (len + offset <= buffer.length && !decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 4)) {
                                                                                let localResult = bacappDecodeApplicationData222222222222222222(
                                                                                  buffer,
                                                                                  offset + len,
                                                                                  apduLen + offset - 1,
                                                                                  value.objectId.type,
                                                                                  newEntry.id
                                                                                );
                                                                                if (!localResult) {
                                                                                  return void 0;
                                                                                }
                                                                                len += localResult.len;
                                                                                let resObj = {
                                                                                  value: localResult.value,
                                                                                  type: localResult.type
                                                                                };
                                                                                if (localResult.encoding !== void 0)
                                                                                  resObj.encoding = localResult.encoding;
                                                                                localValues.push(resObj);
                                                                              }
                                                                              if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 4)) {
                                                                                return void 0;
                                                                              }
                                                                              if (localValues.count === 2 && localValues[0].type === enums_default222222222222222222.ApplicationTag.DATE && localValues[1].type === enums_default222222222222222222.ApplicationTag.TIME) {
                                                                                const date = localValues[0].value;
                                                                                const time = localValues[1].value;
                                                                                const bdatetime = new Date(
                                                                                  date.year,
                                                                                  date.month,
                                                                                  date.day,
                                                                                  time.hour,
                                                                                  time.minute,
                                                                                  time.second,
                                                                                  time.millisecond
                                                                                );
                                                                                newEntry.value = [
                                                                                  { type: enums_default222222222222222222.ApplicationTag.DATETIME, value: bdatetime }
                                                                                ];
                                                                              } else {
                                                                                newEntry.value = localValues;
                                                                              }
                                                                              len++;
                                                                            } else if (result.tagNumber === 5) {
                                                                              let err = {};
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                              result = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                              len += result.len;
                                                                              err.errorClass = result.value;
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                              result = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                              len += result.len;
                                                                              err.errorCode = result.value;
                                                                              if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 5)) {
                                                                                return void 0;
                                                                              }
                                                                              len++;
                                                                              newEntry.value = [
                                                                                {
                                                                                  type: enums_default222222222222222222.ApplicationTag.ERROR,
                                                                                  value: err
                                                                                }
                                                                              ];
                                                                            }
                                                                            values.push(newEntry);
                                                                          }
                                                                          value.values = values;
                                                                          return {
                                                                            len,
                                                                            value
                                                                          };
                                                                        };
                                                                        var decodeSigned222222222222222222 = (buffer, offset, length) => {
                                                                          return {
                                                                            len: length,
                                                                            value: buffer.readIntBE(offset, length, true)
                                                                          };
                                                                        };
                                                                        var decodeReal222222222222222222 = (buffer, offset) => {
                                                                          return {
                                                                            len: 4,
                                                                            value: buffer.readFloatBE(offset, true)
                                                                          };
                                                                        };
                                                                        var decodeRealSafe222222222222222222 = (buffer, offset, lenValue) => {
                                                                          if (lenValue !== 4) {
                                                                            return {
                                                                              len: lenValue,
                                                                              value: 0
                                                                            };
                                                                          } else {
                                                                            return decodeReal222222222222222222(buffer, offset);
                                                                          }
                                                                        };
                                                                        var decodeDouble222222222222222222 = (buffer, offset) => {
                                                                          return {
                                                                            len: 8,
                                                                            value: buffer.readDoubleBE(offset, true)
                                                                          };
                                                                        };
                                                                        var decodeDoubleSafe222222222222222222 = (buffer, offset, lenValue) => {
                                                                          if (lenValue !== 8) {
                                                                            return {
                                                                              len: lenValue,
                                                                              value: 0
                                                                            };
                                                                          } else {
                                                                            return decodeDouble222222222222222222(buffer, offset);
                                                                          }
                                                                        };
                                                                        var decodeOctetString222222222222222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                                                                          const octetString = [];
                                                                          for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                                                                            octetString.push(buffer[offset + i]);
                                                                          }
                                                                          return {
                                                                            len: octetStringLength,
                                                                            value: octetString
                                                                          };
                                                                        };
                                                                        var multiCharsetCharacterstringDecode222222222222222222 = (buffer, offset, maxLength, encoding, length) => {
                                                                          const stringBuf = Buffer.alloc(length);
                                                                          buffer.copy(stringBuf, 0, offset, offset + length);
                                                                          return {
                                                                            value: import_iconv_lite222222222222222222.default.decode(stringBuf, getEncodingType222222222222222222(encoding, buffer, offset)),
                                                                            len: length + 1,
                                                                            encoding
                                                                          };
                                                                        };
                                                                        var decodeCharacterString222222222222222222 = (buffer, offset, maxLength, lenValue) => {
                                                                          return multiCharsetCharacterstringDecode222222222222222222(
                                                                            buffer,
                                                                            offset + 1,
                                                                            maxLength,
                                                                            buffer[offset],
                                                                            lenValue - 1
                                                                          );
                                                                        };
                                                                        var bitstringSetBitsUsed222222222222222222 = (bitString, bytesUsed, unusedBits) => {
                                                                          bitString.bitsUsed = bytesUsed * 8;
                                                                          bitString.bitsUsed -= unusedBits;
                                                                        };
                                                                        var decodeBitstring222222222222222222 = (buffer, offset, lenValue) => {
                                                                          let len = 0;
                                                                          let bitString = {};
                                                                          bitString.value = [];
                                                                          if (lenValue > 0) {
                                                                            const bytesUsed = lenValue - 1;
                                                                            if (bytesUsed <= enums_default222222222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                                              len = 1;
                                                                              for (let i = 0; i < bytesUsed; i++) {
                                                                                bitString.value.push(byteReverseBits222222222222222222(buffer[offset + len++]));
                                                                              }
                                                                              const unusedBits = buffer[offset] & 7;
                                                                              bitstringSetBitsUsed222222222222222222(bitString, bytesUsed, unusedBits);
                                                                            }
                                                                          }
                                                                          return {
                                                                            len,
                                                                            value: bitString
                                                                          };
                                                                        };
                                                                        var decodeDate222222222222222222 = (buffer, offset) => {
                                                                          let date;
                                                                          const year = buffer[offset] + 1900;
                                                                          const month = buffer[offset + 1];
                                                                          const day = buffer[offset + 2];
                                                                          const wday = buffer[offset + 3];
                                                                          if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                                                                            date = new Date(1, 1, 1);
                                                                          } else {
                                                                            date = new Date(year, month, day);
                                                                          }
                                                                          return {
                                                                            len: 4,
                                                                            value: date
                                                                          };
                                                                        };
                                                                        var decodeDateSafe222222222222222222 = (buffer, offset, lenValue) => {
                                                                          if (lenValue !== 4) {
                                                                            return {
                                                                              len: lenValue,
                                                                              value: new Date(1, 1, 1)
                                                                            };
                                                                          } else {
                                                                            return decodeDate222222222222222222(buffer, offset);
                                                                          }
                                                                        };
                                                                        var decodeApplicationDate222222222222222222 = (buffer, offset) => {
                                                                          const result = decodeTagNumber222222222222222222(buffer, offset);
                                                                          if (result.tagNumber === enums_default222222222222222222.ApplicationTag.DATE) {
                                                                            const value = decodeDate222222222222222222(buffer, offset + 1);
                                                                            return {
                                                                              len: value.len + 1,
                                                                              value
                                                                            };
                                                                          }
                                                                          return void 0;
                                                                        };
                                                                        var decodeBacnetTime222222222222222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                                                                          const hour = buffer[offset + 0];
                                                                          const min = buffer[offset + 1];
                                                                          const sec = buffer[offset + 2];
                                                                          let hundredths = buffer[offset + 3];
                                                                          if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                                                                            value = new Date(1, 1, 1);
                                                                          } else {
                                                                            if (hundredths > 100)
                                                                              hundredths = 0;
                                                                            value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                                                                          }
                                                                          return {
                                                                            len: 4,
                                                                            value
                                                                          };
                                                                        };
                                                                        var decodeBacnetTimeSafe222222222222222222 = (buffer, offset, lenValue) => {
                                                                          if (lenValue !== 4) {
                                                                            return {
                                                                              len: lenValue,
                                                                              value: new Date(1, 1, 1)
                                                                            };
                                                                          } else {
                                                                            return decodeBacnetTime222222222222222222(buffer, offset);
                                                                          }
                                                                        };
                                                                        var decodeApplicationTime222222222222222222 = (buffer, offset) => {
                                                                          const result = decodeTagNumber222222222222222222(buffer, offset);
                                                                          if (result.tagNumber === enums_default222222222222222222.ApplicationTag.TIME) {
                                                                            const value = decodeBacnetTime222222222222222222(buffer, offset + 1);
                                                                            return {
                                                                              len: value.len + 1,
                                                                              value
                                                                            };
                                                                          }
                                                                          return void 0;
                                                                        };
                                                                        var decodeBacnetDatetime222222222222222222 = (buffer, offset) => {
                                                                          let len = 0;
                                                                          const date = decodeApplicationDate222222222222222222(buffer, offset + len);
                                                                          len += date.len;
                                                                          const time = decodeApplicationTime222222222222222222(buffer, offset + len);
                                                                          len += time.len;
                                                                          return {
                                                                            len,
                                                                            value: new Date(
                                                                              date.year,
                                                                              date.month,
                                                                              date.day,
                                                                              time.hour,
                                                                              time.minute,
                                                                              time.second,
                                                                              time.millisecond
                                                                            )
                                                                          };
                                                                        };
                                                                        var bacappDecodeData222222222222222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                                                                          let result;
                                                                          let value = {
                                                                            len: 0,
                                                                            type: tagDataType
                                                                          };
                                                                          switch (tagDataType) {
                                                                            case enums_default222222222222222222.ApplicationTag.NULL:
                                                                              value.value = null;
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.BOOLEAN:
                                                                              value.value = lenValueType > 0;
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                                              result = decodeUnsigned222222222222222222(buffer, offset, lenValueType);
                                                                              value.len += result.len;
                                                                              value.value = result.value;
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.SIGNED_INTEGER:
                                                                              result = decodeSigned222222222222222222(buffer, offset, lenValueType);
                                                                              value.len += result.len;
                                                                              value.value = result.value;
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.REAL:
                                                                              result = decodeRealSafe222222222222222222(buffer, offset, lenValueType);
                                                                              value.len += result.len;
                                                                              value.value = result.value;
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.DOUBLE:
                                                                              result = decodeDoubleSafe222222222222222222(buffer, offset, lenValueType);
                                                                              value.len += result.len;
                                                                              value.value = result.value;
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.OCTET_STRING:
                                                                              result = decodeOctetString222222222222222222(buffer, offset, maxLength, 0, lenValueType);
                                                                              value.len += result.len;
                                                                              value.value = result.value;
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.CHARACTER_STRING:
                                                                              result = decodeCharacterString222222222222222222(buffer, offset, maxLength, lenValueType);
                                                                              value.len += result.len;
                                                                              value.value = result.value;
                                                                              value.encoding = result.encoding;
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.BIT_STRING:
                                                                              result = decodeBitstring222222222222222222(buffer, offset, lenValueType);
                                                                              value.len += result.len;
                                                                              value.value = result.value;
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.ENUMERATED:
                                                                              result = decodeEnumerated222222222222222222(buffer, offset, lenValueType);
                                                                              value.len += result.len;
                                                                              value.value = result.value;
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.DATE:
                                                                              result = decodeDateSafe222222222222222222(buffer, offset, lenValueType);
                                                                              value.len += result.len;
                                                                              value.value = result.value;
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.TIME:
                                                                              result = decodeBacnetTimeSafe222222222222222222(buffer, offset, lenValueType);
                                                                              value.len += result.len;
                                                                              value.value = result.value;
                                                                              break;
                                                                            case enums_default222222222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                                              result = decodeObjectIdSafe222222222222222222(buffer, offset, lenValueType);
                                                                              value.len += result.len;
                                                                              value.value = { type: result.objectType, instance: result.instance };
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                          return value;
                                                                        };
                                                                        var bacappContextTagType222222222222222222 = (property, tagNumber) => {
                                                                          let tag = 0;
                                                                          switch (property) {
                                                                            case enums_default222222222222222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                                                                            case enums_default222222222222222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                                                                            case enums_default222222222222222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                                                                              switch (tagNumber) {
                                                                                case 0:
                                                                                case 1:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                                  break;
                                                                                case 2:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.REAL;
                                                                                  break;
                                                                                default:
                                                                                  break;
                                                                              }
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyIdentifier.ACTION:
                                                                              switch (tagNumber) {
                                                                                case 0:
                                                                                case 1:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                                  break;
                                                                                case 2:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.ENUMERATED;
                                                                                  break;
                                                                                case 3:
                                                                                case 5:
                                                                                case 6:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                                  break;
                                                                                case 7:
                                                                                case 8:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.BOOLEAN;
                                                                                  break;
                                                                                default:
                                                                                  break;
                                                                              }
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                                                                              switch (tagNumber) {
                                                                                case 0:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                                  break;
                                                                                default:
                                                                                  break;
                                                                              }
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                                                                              switch (tagNumber) {
                                                                                case 1:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                                  break;
                                                                                case 3:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                                  break;
                                                                                default:
                                                                                  break;
                                                                              }
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                                                                              switch (tagNumber) {
                                                                                case 0:
                                                                                case 3:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                                  break;
                                                                                case 1:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.ENUMERATED;
                                                                                  break;
                                                                                case 2:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                                  break;
                                                                                default:
                                                                                  break;
                                                                              }
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyIdentifier.SUBORDINATE_LIST:
                                                                              switch (tagNumber) {
                                                                                case 0:
                                                                                case 1:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                                  break;
                                                                                default:
                                                                                  break;
                                                                              }
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyIdentifier.RECIPIENT_LIST:
                                                                              switch (tagNumber) {
                                                                                case 0:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                                  break;
                                                                                default:
                                                                                  break;
                                                                              }
                                                                              break;
                                                                            case enums_default222222222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                                                                              switch (tagNumber) {
                                                                                case 0:
                                                                                case 1:
                                                                                  break;
                                                                                case 2:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.BOOLEAN;
                                                                                  break;
                                                                                case 3:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                                  break;
                                                                                case 4:
                                                                                  tag = enums_default222222222222222222.ApplicationTag.REAL;
                                                                                  break;
                                                                                default:
                                                                                  break;
                                                                              }
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                          return tag;
                                                                        };
                                                                        var decodeDeviceObjPropertyRef222222222222222222 = (buffer, offset, NOTUSEDARG = 0) => {
                                                                          let len = 0;
                                                                          let arrayIndex = enums_default222222222222222222.ASN1_ARRAY_ALL;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          let objectId = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += objectId.len;
                                                                          let result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 1) {
                                                                            return void 0;
                                                                          }
                                                                          let id = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += id.len;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          if (result.tagNumber === 2) {
                                                                            len += result.len;
                                                                            arrayIndex = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += arrayIndex.len;
                                                                          }
                                                                          if (decodeIsContextTag222222222222222222(buffer, offset + len, 3)) {
                                                                            if (!isClosingTag222222222222222222(buffer[offset + len])) {
                                                                              len++;
                                                                              objectId = decodeObjectId222222222222222222(buffer, offset + len);
                                                                              len += objectId.len;
                                                                            }
                                                                          }
                                                                          return {
                                                                            len,
                                                                            value: {
                                                                              objectId,
                                                                              id
                                                                            }
                                                                          };
                                                                        };
                                                                        var decodeReadAccessSpecification222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let value = {};
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          let decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          value.objectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          len += decodedValue.len;
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          const propertyIdAndArrayIndex = [];
                                                                          while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            let propertyRef = {};
                                                                            if (!isContextSpecific222222222222222222(buffer[offset + len])) {
                                                                              return void 0;
                                                                            }
                                                                            let result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 0) {
                                                                              return void 0;
                                                                            }
                                                                            if (len + result.value >= apduLen) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            propertyRef.id = decodedValue.value;
                                                                            len += decodedValue.len;
                                                                            propertyRef.index = enums_default222222222222222222.ASN1_ARRAY_ALL;
                                                                            if (isContextSpecific222222222222222222(buffer[offset + len]) && !isClosingTag222222222222222222(buffer[offset + len])) {
                                                                              const tmp = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              if (tmp.tagNumber === 1) {
                                                                                len += tmp.len;
                                                                                if (len + tmp.value >= apduLen) {
                                                                                  return void 0;
                                                                                }
                                                                                decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, tmp.value);
                                                                                propertyRef.index = decodedValue.value;
                                                                                len += decodedValue.len;
                                                                              }
                                                                            }
                                                                            propertyIdAndArrayIndex.push(propertyRef);
                                                                          }
                                                                          if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          value.properties = propertyIdAndArrayIndex;
                                                                          return {
                                                                            len,
                                                                            value
                                                                          };
                                                                        };
                                                                        var decodeCovSubscription222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let value = {};
                                                                          let result;
                                                                          let decodedValue;
                                                                          value.recipient = {};
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== enums_default222222222222222222.ApplicationTag.UNSIGNED_INTEGER) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.recipient.net = decodedValue.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== enums_default222222222222222222.ApplicationTag.OCTET_STRING) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeOctetString222222222222222222(
                                                                            buffer,
                                                                            offset + len,
                                                                            apduLen,
                                                                            0,
                                                                            result.value
                                                                          );
                                                                          len += decodedValue.len;
                                                                          value.recipient.adr = decodedValue.value;
                                                                          if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 1) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.subscriptionProcessId = decodedValue.value;
                                                                          if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 0) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          value.monitoredObjectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 1) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.monitoredProperty = {};
                                                                          value.monitoredProperty.id = decodedValue.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          if (result.tagNumber === 2) {
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.monitoredProperty.index = decodedValue.value;
                                                                          } else {
                                                                            value.monitoredProperty.index = enums_default222222222222222222.ASN1_ARRAY_ALL;
                                                                          }
                                                                          if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 2) {
                                                                            return void 0;
                                                                          }
                                                                          value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                                          len++;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 3) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.timeRemaining = decodedValue.value;
                                                                          if (len < apduLen && !isClosingTag222222222222222222(buffer[offset + len])) {
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 4) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeReal222222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            value.covIncrement = decodedValue.value;
                                                                          }
                                                                          return {
                                                                            len,
                                                                            value
                                                                          };
                                                                        };
                                                                        var decodeCalendarDate222222222222222222 = (buffer, offset) => {
                                                                          return {
                                                                            len: 4,
                                                                            year: buffer[offset],
                                                                            month: buffer[offset + 1],
                                                                            day: buffer[offset + 2],
                                                                            wday: buffer[offset + 3]
                                                                          };
                                                                        };
                                                                        var decodeCalendarDateRange222222222222222222 = (buffer, offset) => {
                                                                          let len = 1;
                                                                          const startDate = decodeDate222222222222222222(buffer, offset + len);
                                                                          len += startDate.len + 1;
                                                                          const endDate = decodeDate222222222222222222(buffer, offset + len);
                                                                          len += endDate.len + 1;
                                                                          return {
                                                                            len,
                                                                            startDate,
                                                                            endDate
                                                                          };
                                                                        };
                                                                        var decodeCalendarWeekDay222222222222222222 = (buffer, offset) => {
                                                                          return {
                                                                            len: 3,
                                                                            month: buffer[offset],
                                                                            week: buffer[offset + 1],
                                                                            wday: buffer[offset + 2]
                                                                          };
                                                                        };
                                                                        var decodeCalendar222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          const entries = [];
                                                                          let decodedValue;
                                                                          while (len < apduLen) {
                                                                            const result = decodeTagNumber222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            switch (result.tagNumber) {
                                                                              case 0:
                                                                                decodedValue = decodeCalendarDate222222222222222222(buffer, offset + len);
                                                                                len += decodedValue.len;
                                                                                entries.push(decodedValue);
                                                                                break;
                                                                              case 1:
                                                                                decodedValue = decodeCalendarDateRange222222222222222222(buffer, offset + len);
                                                                                len += decodedValue.len;
                                                                                entries.push(decodedValue);
                                                                                break;
                                                                              case 2:
                                                                                decodedValue = decodeCalendarWeekDay222222222222222222(buffer, offset + len);
                                                                                len += decodedValue.len;
                                                                                entries.push(decodedValue);
                                                                                break;
                                                                              default:
                                                                                return {
                                                                                  len: len - 1,
                                                                                  value: entries
                                                                                };
                                                                            }
                                                                          }
                                                                        };
                                                                        var bacappDecodeContextApplicationData222222222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          if (isContextSpecific222222222222222222(buffer[offset])) {
                                                                            if (propertyId === enums_default222222222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                                                                              result = decodeReadAccessSpecification222222222222222222(buffer, offset, maxOffset);
                                                                              if (!result) {
                                                                                return void 0;
                                                                              }
                                                                              return {
                                                                                type: enums_default222222222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                                                                value: result.value,
                                                                                len: result.len
                                                                              };
                                                                            } else if (propertyId === enums_default222222222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                                                                              result = decodeCovSubscription222222222222222222(buffer, offset, maxOffset);
                                                                              if (!result) {
                                                                                return void 0;
                                                                              }
                                                                              return {
                                                                                type: enums_default222222222222222222.ApplicationTag.COV_SUBSCRIPTION,
                                                                                value: result.value,
                                                                                len: result.len
                                                                              };
                                                                            } else if (objectType === enums_default222222222222222222.ObjectType.GROUP && propertyId === enums_default222222222222222222.PropertyIdentifier.PRESENT_VALUE) {
                                                                              result = decodeReadAccessResult222222222222222222(buffer, offset, maxOffset);
                                                                              if (!result) {
                                                                                return void 0;
                                                                              }
                                                                              return {
                                                                                type: enums_default222222222222222222.ApplicationTag.READ_ACCESS_RESULT,
                                                                                value: result.value,
                                                                                len: result.len
                                                                              };
                                                                            } else if (propertyId === enums_default222222222222222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default222222222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default222222222222222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                                                                              result = decodeDeviceObjPropertyRef222222222222222222(buffer, offset, maxOffset);
                                                                              if (!result) {
                                                                                return void 0;
                                                                              }
                                                                              return {
                                                                                type: enums_default222222222222222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                                                                value: result.value,
                                                                                len: result.len
                                                                              };
                                                                            } else if (propertyId === enums_default222222222222222222.PropertyIdentifier.DATE_LIST) {
                                                                              result = decodeCalendar222222222222222222(buffer, offset, maxOffset);
                                                                              if (!result) {
                                                                                return void 0;
                                                                              }
                                                                              return {
                                                                                type: enums_default222222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                                                                value: result.value,
                                                                                len: result.len
                                                                              };
                                                                            } else if (propertyId === enums_default222222222222222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                                                                              let subEvtResult;
                                                                              let evtResult = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += 1;
                                                                              if (evtResult.tagNumber === 0) {
                                                                                subEvtResult = decodeBacnetTime222222222222222222(buffer, offset + 1);
                                                                                return {
                                                                                  type: enums_default222222222222222222.ApplicationTag.TIMESTAMP,
                                                                                  value: subEvtResult.value,
                                                                                  len: subEvtResult.len + 1
                                                                                };
                                                                              } else if (evtResult.tagNumber === 1) {
                                                                                subEvtResult = decodeUnsigned222222222222222222(buffer, offset + len, evtResult.value);
                                                                                return {
                                                                                  type: enums_default222222222222222222.ApplicationTag.UNSIGNED_INTEGER,
                                                                                  value: subEvtResult.value,
                                                                                  len: subEvtResult.len + 1
                                                                                };
                                                                              } else if (evtResult.tagNumber === 2) {
                                                                                subEvtResult = decodeBacnetDatetime222222222222222222(buffer, offset + len);
                                                                                return {
                                                                                  type: enums_default222222222222222222.ApplicationTag.TIMESTAMP,
                                                                                  value: subEvtResult.value,
                                                                                  len: subEvtResult.len + 2
                                                                                };
                                                                              } else {
                                                                                return void 0;
                                                                              }
                                                                            }
                                                                            const list = [];
                                                                            let tagResult = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            let multipleValues = isOpeningTag222222222222222222(buffer[offset + len]);
                                                                            while (len + offset <= maxOffset && !isClosingTag222222222222222222(buffer[offset + len])) {
                                                                              let subResult = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              if (!subResult) {
                                                                                return void 0;
                                                                              }
                                                                              if (subResult.value === 0) {
                                                                                len += subResult.len;
                                                                                result = bacappDecodeApplicationData222222222222222222(
                                                                                  buffer,
                                                                                  offset + len,
                                                                                  maxOffset,
                                                                                  enums_default222222222222222222.ASN1_MAX_OBJECT_TYPE,
                                                                                  enums_default222222222222222222.ASN1_MAX_PROPERTY_ID
                                                                                );
                                                                                if (!result) {
                                                                                  return void 0;
                                                                                }
                                                                                list.push(result);
                                                                                len += result.len;
                                                                              } else {
                                                                                const overrideTagNumber = bacappContextTagType222222222222222222(
                                                                                  propertyId,
                                                                                  subResult.tagNumber
                                                                                );
                                                                                if (overrideTagNumber !== enums_default222222222222222222.ASN1_MAX_APPLICATION_TAG) {
                                                                                  subResult.tagNumber = overrideTagNumber;
                                                                                }
                                                                                let bacappResult = bacappDecodeData222222222222222222(
                                                                                  buffer,
                                                                                  offset + len + subResult.len,
                                                                                  maxOffset,
                                                                                  subResult.tagNumber,
                                                                                  subResult.value
                                                                                );
                                                                                if (!bacappResult) {
                                                                                  return void 0;
                                                                                }
                                                                                if (bacappResult.len === subResult.value) {
                                                                                  let resObj = {
                                                                                    value: bacappResult.value,
                                                                                    type: bacappResult.type
                                                                                  };
                                                                                  if (bacappResult.encoding !== void 0)
                                                                                    resObj.encoding = bacappResult.encoding;
                                                                                  list.push(resObj);
                                                                                  len += subResult.len + subResult.value;
                                                                                } else {
                                                                                  list.push({
                                                                                    value: buffer.slice(
                                                                                      offset + len + subResult.len,
                                                                                      offset + len + subResult.len + subResult.value
                                                                                    ),
                                                                                    type: enums_default222222222222222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                                                                  });
                                                                                  len += subResult.len + subResult.value;
                                                                                }
                                                                              }
                                                                              if (multipleValues === false) {
                                                                                return {
                                                                                  len,
                                                                                  value: list[0],
                                                                                  type: enums_default222222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                                                };
                                                                              }
                                                                            }
                                                                            if (len + offset > maxOffset) {
                                                                              return void 0;
                                                                            }
                                                                            if (decodeIsClosingTagNumber222222222222222222(buffer, offset + len, tagResult.tagNumber)) {
                                                                              len++;
                                                                            }
                                                                            return {
                                                                              len,
                                                                              value: list,
                                                                              type: enums_default222222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                                            };
                                                                          }
                                                                          return void 0;
                                                                        };
                                                                        var bacappEncodeTimestamp222222222222222222 = (buffer, value) => {
                                                                          switch (value.type) {
                                                                            case enums_default222222222222222222.TimeStamp.TIME:
                                                                              encodeContextTime222222222222222222(buffer, 0, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.TimeStamp.SEQUENCE_NUMBER:
                                                                              encodeContextUnsigned222222222222222222(buffer, 1, value.value);
                                                                              break;
                                                                            case enums_default222222222222222222.TimeStamp.DATETIME:
                                                                              bacappEncodeContextDatetime222222222222222222(buffer, 2, value.value);
                                                                              break;
                                                                            default:
                                                                              throw new Error("NOT_IMPLEMENTED");
                                                                          }
                                                                        };
                                                                        var bacappEncodeContextTimestamp222222222222222222 = (buffer, tagNumber, value) => {
                                                                          encodeOpeningTag222222222222222222(buffer, tagNumber);
                                                                          bacappEncodeTimestamp222222222222222222(buffer, value);
                                                                          encodeClosingTag222222222222222222(buffer, tagNumber);
                                                                        };
                                                                        var decodeContextCharacterString222222222222222222 = (buffer, offset, maxLength, tagNumber) => {
                                                                          let len = 0;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, tagNumber)) {
                                                                            return void 0;
                                                                          }
                                                                          const result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          const decodedValue = multiCharsetCharacterstringDecode222222222222222222(
                                                                            buffer,
                                                                            offset + 1 + len,
                                                                            maxLength,
                                                                            buffer[offset + len],
                                                                            result.value - 1
                                                                          );
                                                                          if (!decodedValue) {
                                                                            return void 0;
                                                                          }
                                                                          len += result.value;
                                                                          return {
                                                                            len,
                                                                            value: decodedValue.value,
                                                                            encoding: decodedValue.encoding
                                                                          };
                                                                        };
                                                                        var decodeIsContextTagWithLength222222222222222222 = (buffer, offset, tagNumber) => {
                                                                          const result = decodeTagNumber222222222222222222(buffer, offset);
                                                                          return {
                                                                            len: result.len,
                                                                            value: isContextSpecific222222222222222222(buffer[offset]) && result.tagNumber === tagNumber
                                                                          };
                                                                        };
                                                                        var decodeContextObjectId222222222222222222 = (buffer, offset, tagNumber) => {
                                                                          const result = decodeIsContextTagWithLength222222222222222222(buffer, offset, tagNumber);
                                                                          if (!result.value) {
                                                                            return void 0;
                                                                          }
                                                                          const decodedValue = decodeObjectId222222222222222222(buffer, offset + result.len);
                                                                          decodedValue.len = decodedValue.len + result.len;
                                                                          return decodedValue;
                                                                        };
                                                                        var encodeBacnetCharacterString222222222222222222 = (buffer, value, encoding) => {
                                                                          encoding = encoding || enums_default222222222222222222.CharacterStringEncoding.UTF_8;
                                                                          buffer.buffer[buffer.offset++] = encoding;
                                                                          const bufEncoded = import_iconv_lite222222222222222222.default.encode(value, getEncodingType222222222222222222(encoding));
                                                                          buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                                                                        };
                                                                        var encodeApplicationCharacterString222222222222222222 = (buffer, value, encoding) => {
                                                                          const tmp = getBuffer222222222222222222();
                                                                          encodeBacnetCharacterString222222222222222222(tmp, value, encoding);
                                                                          encodeTag222222222222222222(buffer, enums_default222222222222222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                                                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                          buffer.offset += tmp.offset;
                                                                        };
                                                                        var encodeContextCharacterString222222222222222222 = (buffer, tagNumber, value, encoding) => {
                                                                          const tmp = getBuffer222222222222222222();
                                                                          encodeBacnetCharacterString222222222222222222(tmp, value, encoding);
                                                                          encodeTag222222222222222222(buffer, tagNumber, true, tmp.offset);
                                                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                          buffer.offset += tmp.offset;
                                                                        };
                                                                        var encode3322222222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                                          encodeContextObjectId222222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                          encodeContextEnumerated222222222222222222(buffer, 1, propertyId);
                                                                          if (arrayIndex !== ASN1_ARRAY_ALL222222222222222222) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 2, arrayIndex);
                                                                          }
                                                                          encodeOpeningTag222222222222222222(buffer, 3);
                                                                          values.forEach((value) => {
                                                                            bacappEncodeApplicationData222222222222222222(buffer, value);
                                                                          });
                                                                          encodeClosingTag222222222222222222(buffer, 3);
                                                                        };
                                                                        var decode3322222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let value = {};
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          value.objectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.property = { id: decodedValue.value };
                                                                          if (len < apduLen && decodeIsContextTag222222222222222222(buffer, offset + len, 2)) {
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.property.index = decodedValue.value;
                                                                          } else {
                                                                            value.property.index = ASN1_ARRAY_ALL222222222222222222;
                                                                          }
                                                                          const values = [];
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 3)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          while (apduLen - len > 1) {
                                                                            result = bacappDecodeApplicationData222222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              apduLen + offset,
                                                                              value.objectId.type,
                                                                              value.property.id
                                                                            );
                                                                            if (!result) {
                                                                              return void 0;
                                                                            }
                                                                            len += result.len;
                                                                            delete result.len;
                                                                            values.push(result);
                                                                          }
                                                                          value.values = values;
                                                                          if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 3)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var alarm_acknowledge_exports222222222222222222 = {};
                                                                        __export222222222222222222(alarm_acknowledge_exports222222222222222222, {
                                                                          decode: () => decode21022222222222222222,
                                                                          encode: () => encode21022222222222222222
                                                                        });
                                                                        var encode21022222222222222222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                                                                          encodeContextUnsigned222222222222222222(buffer, 0, ackProcessId);
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            eventObjectId.type,
                                                                            eventObjectId.instance
                                                                          );
                                                                          encodeContextEnumerated222222222222222222(buffer, 2, eventStateAcknowledged);
                                                                          bacappEncodeContextTimestamp222222222222222222(buffer, 3, eventTimeStamp);
                                                                          encodeContextCharacterString222222222222222222(buffer, 4, ackSource);
                                                                          bacappEncodeContextTimestamp222222222222222222(buffer, 5, ackTimeStamp);
                                                                        };
                                                                        var decode21022222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let value = {};
                                                                          let result;
                                                                          let decodedValue;
                                                                          let date;
                                                                          let time;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.acknowledgedProcessId = decodedValue.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          value.eventObjectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.eventStateAcknowledged = decodedValue.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber === 0) {
                                                                            decodedValue = decodeBacnetTime222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.eventTimeStamp = decodedValue.value;
                                                                          } else if (result.tagNumber === 1) {
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.eventTimeStamp = decodedValue.value;
                                                                          } else if (result.tagNumber === 2) {
                                                                            date = decodeApplicationDate222222222222222222(buffer, offset + len);
                                                                            len += date.len;
                                                                            date = date.value.value;
                                                                            time = decodeApplicationTime222222222222222222(buffer, offset + len);
                                                                            len += time.len;
                                                                            time = time.value.value;
                                                                            value.eventTimeStamp = new Date(
                                                                              date.getFullYear(),
                                                                              date.getMonth(),
                                                                              date.getDate(),
                                                                              time.getHours(),
                                                                              time.getMinutes(),
                                                                              time.getSeconds(),
                                                                              time.getMilliseconds()
                                                                            );
                                                                            len++;
                                                                          }
                                                                          len++;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeCharacterString222222222222222222(
                                                                            buffer,
                                                                            offset + len,
                                                                            apduLen - (offset + len),
                                                                            result.value
                                                                          );
                                                                          value.acknowledgeSource = decodedValue.value;
                                                                          len += decodedValue.len;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber === 0) {
                                                                            decodedValue = decodeBacnetTime222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.acknowledgeTimeStamp = decodedValue.value;
                                                                          } else if (result.tagNumber === 1) {
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.acknowledgeTimeStamp = decodedValue.value;
                                                                          } else if (result.tagNumber === 2) {
                                                                            date = decodeApplicationDate222222222222222222(buffer, offset + len);
                                                                            len += date.len;
                                                                            date = date.value.value;
                                                                            time = decodeApplicationTime222222222222222222(buffer, offset + len);
                                                                            len += time.len;
                                                                            time = time.value.value;
                                                                            value.acknowledgeTimeStamp = new Date(
                                                                              date.getFullYear(),
                                                                              date.getMonth(),
                                                                              date.getDate(),
                                                                              time.getHours(),
                                                                              time.getMinutes(),
                                                                              time.getSeconds(),
                                                                              time.getMilliseconds()
                                                                            );
                                                                            len++;
                                                                          }
                                                                          len++;
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var alarm_summary_exports222222222222222222 = {};
                                                                        __export222222222222222222(alarm_summary_exports222222222222222222, {
                                                                          decode: () => decode3422222222222222222,
                                                                          encode: () => encode3422222222222222222
                                                                        });
                                                                        var encode3422222222222222222 = (buffer, alarms) => {
                                                                          alarms.forEach((alarm) => {
                                                                            encodeContextObjectId222222222222222222(
                                                                              buffer,
                                                                              12,
                                                                              alarm.objectId.type,
                                                                              alarm.objectId.instance
                                                                            );
                                                                            encodeContextEnumerated222222222222222222(buffer, 9, alarm.alarmState);
                                                                            encodeContextBitstring222222222222222222(buffer, 8, alarm.acknowledgedTransitions);
                                                                          });
                                                                        };
                                                                        var decode3422222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          const alarms = [];
                                                                          while (apduLen - 3 - len > 0) {
                                                                            let value = {};
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            value.objectId = {
                                                                              type: decodedValue.objectType,
                                                                              instance: decodedValue.instance
                                                                            };
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.alarmState = decodedValue.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeBitstring222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.acknowledgedTransitions = decodedValue.value;
                                                                            alarms.push(value);
                                                                          }
                                                                          return {
                                                                            len,
                                                                            alarms
                                                                          };
                                                                        };
                                                                        var atomic_read_file_exports222222222222222222 = {};
                                                                        __export222222222222222222(atomic_read_file_exports222222222222222222, {
                                                                          decode: () => decode4222222222222222222,
                                                                          decodeAcknowledge: () => decodeAcknowledge822222222222222222,
                                                                          encode: () => encode4222222222222222222,
                                                                          encodeAcknowledge: () => encodeAcknowledge922222222222222222
                                                                        });
                                                                        var encode4222222222222222222 = (buffer, isStream, objectId, position, count) => {
                                                                          encodeApplicationObjectId222222222222222222(buffer, objectId.type, objectId.instance);
                                                                          if (isStream) {
                                                                            encodeOpeningTag222222222222222222(buffer, 0);
                                                                            encodeApplicationSigned222222222222222222(buffer, position);
                                                                            encodeApplicationUnsigned222222222222222222(buffer, count);
                                                                            encodeClosingTag222222222222222222(buffer, 0);
                                                                          } else {
                                                                            encodeOpeningTag222222222222222222(buffer, 1);
                                                                            encodeApplicationSigned222222222222222222(buffer, position);
                                                                            encodeApplicationUnsigned222222222222222222(buffer, count);
                                                                            encodeClosingTag222222222222222222(buffer, 1);
                                                                          }
                                                                        };
                                                                        var decode4222222222222222222 = (buffer, offset) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let isStream = true;
                                                                          let objectId = {};
                                                                          let position = -1;
                                                                          let count = 0;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 12) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                                                                          if (decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 0)) {
                                                                            isStream = true;
                                                                            len++;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 3) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeSigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            position = decodedValue.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 2) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            count = decodedValue.value;
                                                                            if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 0)) {
                                                                              return void 0;
                                                                            }
                                                                            len++;
                                                                          } else if (decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            isStream = false;
                                                                            len++;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 3) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeSigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            position = decodedValue.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 2) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            count = decodedValue.value;
                                                                            if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                              return void 0;
                                                                            }
                                                                            len++;
                                                                          } else {
                                                                            return void 0;
                                                                          }
                                                                          return {
                                                                            len,
                                                                            isStream,
                                                                            objectId,
                                                                            position,
                                                                            count
                                                                          };
                                                                        };
                                                                        var encodeAcknowledge922222222222222222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                                                                          encodeApplicationBoolean222222222222222222(buffer, endOfFile);
                                                                          if (isStream) {
                                                                            encodeOpeningTag222222222222222222(buffer, 0);
                                                                            encodeApplicationSigned222222222222222222(buffer, position);
                                                                            encodeApplicationOctetString222222222222222222(buffer, blocks[0], 0, counts[0]);
                                                                            encodeClosingTag222222222222222222(buffer, 0);
                                                                          } else {
                                                                            encodeOpeningTag222222222222222222(buffer, 1);
                                                                            encodeApplicationSigned222222222222222222(buffer, position);
                                                                            encodeApplicationUnsigned222222222222222222(buffer, blockCount);
                                                                            for (let i = 0; i < blockCount; i++) {
                                                                              encodeApplicationOctetString222222222222222222(buffer, blocks[i], 0, counts[i]);
                                                                            }
                                                                            encodeClosingTag222222222222222222(buffer, 1);
                                                                          }
                                                                        };
                                                                        var decodeAcknowledge822222222222222222 = (buffer, offset, length = 0) => {
                                                                          let len = length;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let endOfFile;
                                                                          let isStream;
                                                                          let position;
                                                                          let targetBuffer;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 1) {
                                                                            return void 0;
                                                                          }
                                                                          endOfFile = result.value > 0;
                                                                          if (decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 0)) {
                                                                            isStream = true;
                                                                            len++;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 3) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeSigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            position = decodedValue.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 6) {
                                                                              return void 0;
                                                                            }
                                                                            targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                                                                            len += result.value;
                                                                            if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 0)) {
                                                                              return void 0;
                                                                            }
                                                                            len++;
                                                                          } else if (decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            isStream = false;
                                                                            throw new Error("NotImplemented");
                                                                          } else {
                                                                            return void 0;
                                                                          }
                                                                          return {
                                                                            len,
                                                                            endOfFile,
                                                                            isStream,
                                                                            position,
                                                                            buffer: targetBuffer
                                                                          };
                                                                        };
                                                                        var atomic_write_file_exports222222222222222222 = {};
                                                                        __export222222222222222222(atomic_write_file_exports222222222222222222, {
                                                                          decode: () => decode5222222222222222222,
                                                                          decodeAcknowledge: () => decodeAcknowledge2222222222222222222,
                                                                          encode: () => encode5222222222222222222,
                                                                          encodeAcknowledge: () => encodeAcknowledge2222222222222222222
                                                                        });
                                                                        var encode5222222222222222222 = (buffer, isStream, objectId, position, blocks) => {
                                                                          encodeApplicationObjectId222222222222222222(buffer, objectId.type, objectId.instance);
                                                                          if (isStream) {
                                                                            encodeOpeningTag222222222222222222(buffer, 0);
                                                                            encodeApplicationSigned222222222222222222(buffer, position);
                                                                            encodeApplicationOctetString222222222222222222(buffer, blocks[0], 0, blocks[0].length);
                                                                            encodeClosingTag222222222222222222(buffer, 0);
                                                                          } else {
                                                                            encodeOpeningTag222222222222222222(buffer, 1);
                                                                            encodeApplicationSigned222222222222222222(buffer, position);
                                                                            encodeApplicationUnsigned222222222222222222(buffer, blocks.length);
                                                                            for (let i = 0; i < blocks.length; i++) {
                                                                              encodeApplicationOctetString222222222222222222(
                                                                                buffer,
                                                                                blocks[i],
                                                                                0,
                                                                                blocks[i].length
                                                                              );
                                                                            }
                                                                            encodeClosingTag222222222222222222(buffer, 1);
                                                                          }
                                                                        };
                                                                        var decode5222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let isStream;
                                                                          let position;
                                                                          let blocks = [];
                                                                          let blockCount;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 12) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          let objectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          if (decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 0)) {
                                                                            isStream = true;
                                                                            len++;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 3) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeSigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            position = decodedValue.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 6) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeOctetString222222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              apduLen,
                                                                              0,
                                                                              result.value
                                                                            );
                                                                            len += decodedValue.len;
                                                                            blocks.push(decodedValue.value);
                                                                            if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 0)) {
                                                                              return void 0;
                                                                            }
                                                                            len++;
                                                                          } else if (decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            isStream = false;
                                                                            len++;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 3) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeSigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            position = decodedValue.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 2) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            blockCount = decodedValue.value;
                                                                            for (let i = 0; i < blockCount; i++) {
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                              if (result.tagNumber !== 6) {
                                                                                return void 0;
                                                                              }
                                                                              decodedValue = decodeOctetString222222222222222222(
                                                                                buffer,
                                                                                offset + len,
                                                                                apduLen,
                                                                                0,
                                                                                result.value
                                                                              );
                                                                              len += decodedValue.len;
                                                                              blocks.push(decodedValue.value);
                                                                            }
                                                                            if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                              return void 0;
                                                                            }
                                                                            len++;
                                                                          } else {
                                                                            return void 0;
                                                                          }
                                                                          return {
                                                                            len,
                                                                            isStream,
                                                                            objectId,
                                                                            position,
                                                                            blocks
                                                                          };
                                                                        };
                                                                        var encodeAcknowledge2222222222222222222 = (buffer, isStream, position) => {
                                                                          if (isStream) {
                                                                            encodeContextSigned222222222222222222(buffer, 0, position);
                                                                          } else {
                                                                            encodeContextSigned222222222222222222(buffer, 1, position);
                                                                          }
                                                                        };
                                                                        var decodeAcknowledge2222222222222222222 = (buffer, offset, length = 0) => {
                                                                          let len = length;
                                                                          let isStream = false;
                                                                          let position = 0;
                                                                          let decodedValue;
                                                                          const result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber === 0) {
                                                                            isStream = true;
                                                                          } else if (result.tagNumber === 1) {
                                                                            isStream = false;
                                                                          } else {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeSigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          position = decodedValue.value;
                                                                          return {
                                                                            len,
                                                                            isStream,
                                                                            position
                                                                          };
                                                                        };
                                                                        var cov_notify_exports222222222222222222 = {};
                                                                        __export222222222222222222(cov_notify_exports222222222222222222, {
                                                                          decode: () => decode6222222222222222222,
                                                                          encode: () => encode6222222222222222222
                                                                        });
                                                                        var encode6222222222222222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                                                                          encodeContextUnsigned222222222222222222(buffer, 0, subscriberProcessId);
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            8,
                                                                            initiatingDeviceId
                                                                          );
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            2,
                                                                            monitoredObjectId.type,
                                                                            monitoredObjectId.instance
                                                                          );
                                                                          encodeContextUnsigned222222222222222222(buffer, 3, timeRemaining);
                                                                          encodeOpeningTag222222222222222222(buffer, 4);
                                                                          values.forEach((value) => {
                                                                            encodeContextEnumerated222222222222222222(buffer, 0, value.property.id);
                                                                            if (value.property.index === ASN1_ARRAY_ALL222222222222222222) {
                                                                              encodeContextUnsigned222222222222222222(buffer, 1, value.property.index);
                                                                            }
                                                                            encodeOpeningTag222222222222222222(buffer, 2);
                                                                            value.value.forEach((v) => {
                                                                              bacappEncodeApplicationData222222222222222222(buffer, v);
                                                                            });
                                                                            encodeClosingTag222222222222222222(buffer, 2);
                                                                            if (value.priority === ASN1_NO_PRIORITY222222222222222222) {
                                                                              encodeContextUnsigned222222222222222222(buffer, 3, value.priority);
                                                                            }
                                                                          });
                                                                          encodeClosingTag222222222222222222(buffer, 4);
                                                                        };
                                                                        var decode6222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          const subscriberProcessId = decodedValue.value;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          const initiatingDeviceId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 2)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          const monitoredObjectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 3)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          const timeRemaining = decodedValue.value;
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 4)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          const values = [];
                                                                          while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 4)) {
                                                                            let newEntry = {};
                                                                            newEntry.property = {};
                                                                            if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                              return void 0;
                                                                            }
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            newEntry.property.id = decodedValue.value;
                                                                            if (decodeIsContextTag222222222222222222(buffer, offset + len, 1)) {
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                              decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                              len += decodedValue.len;
                                                                              newEntry.property.index = decodedValue.value;
                                                                            } else {
                                                                              newEntry.property.index = ASN1_ARRAY_ALL222222222222222222;
                                                                            }
                                                                            if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 2)) {
                                                                              return void 0;
                                                                            }
                                                                            len++;
                                                                            const properties = [];
                                                                            while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 2)) {
                                                                              decodedValue = bacappDecodeApplicationData222222222222222222(
                                                                                buffer,
                                                                                offset + len,
                                                                                apduLen + offset,
                                                                                monitoredObjectId.type,
                                                                                newEntry.property.id
                                                                              );
                                                                              if (!decodedValue) {
                                                                                return void 0;
                                                                              }
                                                                              len += decodedValue.len;
                                                                              delete decodedValue.len;
                                                                              properties.push(decodedValue);
                                                                            }
                                                                            newEntry.value = properties;
                                                                            len++;
                                                                            if (decodeIsContextTag222222222222222222(buffer, offset + len, 3)) {
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                              decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                              len += decodedValue.len;
                                                                              newEntry.priority = decodedValue.value;
                                                                            } else {
                                                                              newEntry.priority = ASN1_NO_PRIORITY222222222222222222;
                                                                            }
                                                                            values.push(newEntry);
                                                                          }
                                                                          return {
                                                                            len,
                                                                            subscriberProcessId,
                                                                            initiatingDeviceId,
                                                                            monitoredObjectId,
                                                                            timeRemaining,
                                                                            values
                                                                          };
                                                                        };
                                                                        var create_object_exports222222222222222222 = {};
                                                                        __export222222222222222222(create_object_exports222222222222222222, {
                                                                          decode: () => decode7222222222222222222,
                                                                          encode: () => encode7222222222222222222,
                                                                          encodeAcknowledge: () => encodeAcknowledge3222222222222222222
                                                                        });
                                                                        var encode7222222222222222222 = (buffer, objectId, values) => {
                                                                          encodeOpeningTag222222222222222222(buffer, 0);
                                                                          encodeContextObjectId222222222222222222(buffer, 1, objectId.type, objectId.instance);
                                                                          encodeClosingTag222222222222222222(buffer, 0);
                                                                          encodeOpeningTag222222222222222222(buffer, 1);
                                                                          values.forEach((propertyValue) => {
                                                                            encodeContextEnumerated222222222222222222(buffer, 0, propertyValue.property.id);
                                                                            if (propertyValue.property.index !== ASN1_ARRAY_ALL222222222222222222) {
                                                                              encodeContextUnsigned222222222222222222(buffer, 1, propertyValue.property.index);
                                                                            }
                                                                            encodeOpeningTag222222222222222222(buffer, 2);
                                                                            propertyValue.value.forEach((value) => {
                                                                              bacappEncodeApplicationData222222222222222222(buffer, value);
                                                                            });
                                                                            encodeClosingTag222222222222222222(buffer, 2);
                                                                            if (propertyValue.priority !== ASN1_NO_PRIORITY222222222222222222) {
                                                                              encodeContextUnsigned222222222222222222(buffer, 3, propertyValue.priority);
                                                                            }
                                                                          });
                                                                          encodeClosingTag222222222222222222(buffer, 1);
                                                                        };
                                                                        var decode7222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let objectId;
                                                                          const valueList = [];
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber === 0 && apduLen > len) {
                                                                            apduLen -= len;
                                                                            if (apduLen < 4) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeContextObjectId222222222222222222(buffer, offset + len, 1);
                                                                            len += decodedValue.len;
                                                                            objectId = {
                                                                              type: decodedValue.objectType,
                                                                              instance: decodedValue.instance
                                                                            };
                                                                          } else {
                                                                            return void 0;
                                                                          }
                                                                          if (decodeIsClosingTag222222222222222222(buffer, offset + len)) {
                                                                            len++;
                                                                          }
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          while (apduLen - len > 1) {
                                                                            let newEntry = {};
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 0) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            let propertyId = decodedValue.value;
                                                                            let arraIndex = ASN1_ARRAY_ALL222222222222222222;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber === 1) {
                                                                              decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                              len += decodedValue.len;
                                                                              arraIndex += decodedValue.value;
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                            }
                                                                            newEntry.property = { id: propertyId, index: arraIndex };
                                                                            if (result.tagNumber === 2 && decodeIsOpeningTag222222222222222222(buffer, offset + len - 1)) {
                                                                              const values = [];
                                                                              while (!decodeIsClosingTag222222222222222222(buffer, offset + len)) {
                                                                                decodedValue = bacappDecodeApplicationData222222222222222222(
                                                                                  buffer,
                                                                                  offset + len,
                                                                                  apduLen + offset,
                                                                                  objectId.type,
                                                                                  propertyId
                                                                                );
                                                                                if (!decodedValue) {
                                                                                  return void 0;
                                                                                }
                                                                                len += decodedValue.len;
                                                                                delete decodedValue.len;
                                                                                values.push(decodedValue);
                                                                              }
                                                                              len++;
                                                                              newEntry.value = values;
                                                                            } else {
                                                                              return void 0;
                                                                            }
                                                                            valueList.push(newEntry);
                                                                          }
                                                                          if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          return {
                                                                            len,
                                                                            objectId,
                                                                            values: valueList
                                                                          };
                                                                        };
                                                                        var encodeAcknowledge3222222222222222222 = (buffer, objectId) => {
                                                                          encodeApplicationObjectId222222222222222222(buffer, objectId.type, objectId.instance);
                                                                        };
                                                                        var delete_object_exports222222222222222222 = {};
                                                                        __export222222222222222222(delete_object_exports222222222222222222, {
                                                                          decode: () => decode8222222222222222222,
                                                                          encode: () => encode8222222222222222222
                                                                        });
                                                                        var decode8222222222222222222 = (buffer, offset, apduLen) => {
                                                                          const result = decodeTagNumberAndValue222222222222222222(buffer, offset);
                                                                          if (result.tagNumber !== 12) {
                                                                            return void 0;
                                                                          }
                                                                          let len = 1;
                                                                          const value = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += value.len;
                                                                          if (len !== apduLen) {
                                                                            return void 0;
                                                                          }
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var encode8222222222222222222 = (buffer, objectId) => {
                                                                          encodeApplicationObjectId222222222222222222(buffer, objectId.type, objectId.instance);
                                                                        };
                                                                        var device_communication_control_exports222222222222222222 = {};
                                                                        __export222222222222222222(device_communication_control_exports222222222222222222, {
                                                                          decode: () => decode9222222222222222222,
                                                                          encode: () => encode9222222222222222222
                                                                        });
                                                                        var encode9222222222222222222 = (buffer, timeDuration, enableDisable, password) => {
                                                                          if (timeDuration > 0) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 0, timeDuration);
                                                                          }
                                                                          encodeContextEnumerated222222222222222222(buffer, 1, enableDisable);
                                                                          if (password && password !== "") {
                                                                            encodeContextCharacterString222222222222222222(buffer, 2, password);
                                                                          }
                                                                        };
                                                                        var decode9222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let value = {};
                                                                          let decodedValue;
                                                                          let result;
                                                                          if (decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            value.timeDuration = decodedValue.value;
                                                                            len += decodedValue.len;
                                                                          }
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          value.enableDisable = decodedValue.value;
                                                                          len += decodedValue.len;
                                                                          if (len < apduLen) {
                                                                            if (!decodeIsContextTag222222222222222222(buffer, offset + len, 2)) {
                                                                              return void 0;
                                                                            }
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeCharacterString222222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              apduLen - (offset + len),
                                                                              result.value
                                                                            );
                                                                            value.password = decodedValue.value;
                                                                            len += decodedValue.len;
                                                                          }
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var error_exports222222222222222222 = {};
                                                                        __export222222222222222222(error_exports222222222222222222, {
                                                                          buildMessage: () => buildMessage222222222222222222,
                                                                          decode: () => decode10222222222222222222,
                                                                          encode: () => encode10222222222222222222
                                                                        });
                                                                        var encode10222222222222222222 = (buffer, errorClass, errorCode) => {
                                                                          encodeApplicationEnumerated222222222222222222(buffer, errorClass);
                                                                          encodeApplicationEnumerated222222222222222222(buffer, errorCode);
                                                                        };
                                                                        var decode10222222222222222222 = (buffer, offset) => {
                                                                          const orgOffset = offset;
                                                                          let result;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset);
                                                                          offset += result.len;
                                                                          const errorClass = decodeEnumerated222222222222222222(buffer, offset, result.value);
                                                                          offset += errorClass.len;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset);
                                                                          offset += result.len;
                                                                          const errorCode = decodeEnumerated222222222222222222(buffer, offset, result.value);
                                                                          offset += errorClass.len;
                                                                          return {
                                                                            len: offset - orgOffset,
                                                                            class: errorClass.value,
                                                                            code: errorCode.value
                                                                          };
                                                                        };
                                                                        var buildMessage222222222222222222 = function(result) {
                                                                          return "BacnetError Class: " + ErrorClassName222222222222222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName222222222222222222[result.code] + " (" + result.code + ")";
                                                                        };
                                                                        var event_information_exports222222222222222222 = {};
                                                                        __export222222222222222222(event_information_exports222222222222222222, {
                                                                          decode: () => decode11222222222222222222,
                                                                          encode: () => encode11222222222222222222
                                                                        });
                                                                        var encode11222222222222222222 = (buffer, events, moreEvents) => {
                                                                          encodeOpeningTag222222222222222222(buffer, 0);
                                                                          events.forEach((event) => {
                                                                            encodeContextObjectId222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              event.objectId.type,
                                                                              event.objectId.instance
                                                                            );
                                                                            encodeContextEnumerated222222222222222222(buffer, 1, event.eventState);
                                                                            encodeContextBitstring222222222222222222(buffer, 2, event.acknowledgedTransitions);
                                                                            encodeOpeningTag222222222222222222(buffer, 3);
                                                                            for (let i = 0; i < 3; i++) {
                                                                              encodeApplicationDate222222222222222222(buffer, event.eventTimeStamps[i]);
                                                                              encodeApplicationTime222222222222222222(buffer, event.eventTimeStamps[i]);
                                                                            }
                                                                            encodeClosingTag222222222222222222(buffer, 3);
                                                                            encodeContextEnumerated222222222222222222(buffer, 4, event.notifyType);
                                                                            encodeContextBitstring222222222222222222(buffer, 5, event.eventEnable);
                                                                            encodeOpeningTag222222222222222222(buffer, 6);
                                                                            for (let i = 0; i < 3; i++) {
                                                                              encodeApplicationUnsigned222222222222222222(buffer, event.eventPriorities[i]);
                                                                            }
                                                                            encodeClosingTag222222222222222222(buffer, 6);
                                                                          });
                                                                          encodeClosingTag222222222222222222(buffer, 0);
                                                                          encodeContextBoolean222222222222222222(buffer, 1, moreEvents);
                                                                        };
                                                                        var decode11222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          len++;
                                                                          const alarms = [];
                                                                          let moreEvents;
                                                                          while (apduLen - 3 - len > 0) {
                                                                            let value = {};
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            value.objectId = {
                                                                              type: decodedValue.objectType,
                                                                              instance: decodedValue.instance
                                                                            };
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.eventState = decodedValue.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeBitstring222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.acknowledgedTransitions = decodedValue.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            value.eventTimeStamps = [];
                                                                            for (let i = 0; i < 3; i++) {
                                                                              if (result.tagNumber !== 0) {
                                                                                decodedValue = decodeApplicationDate222222222222222222(buffer, offset + len);
                                                                                len += decodedValue.len;
                                                                                const date = decodedValue.value.value;
                                                                                decodedValue = decodeApplicationTime222222222222222222(buffer, offset + len);
                                                                                len += decodedValue.len;
                                                                                const time = decodedValue.value.value;
                                                                                value.eventTimeStamps[i] = new Date(
                                                                                  date.getFullYear(),
                                                                                  date.getMonth(),
                                                                                  date.getDate(),
                                                                                  time.getHours(),
                                                                                  time.getMinutes(),
                                                                                  time.getSeconds(),
                                                                                  time.getMilliseconds()
                                                                                );
                                                                              } else {
                                                                                len += result.value;
                                                                              }
                                                                            }
                                                                            len++;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.notifyType = decodedValue.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeBitstring222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.eventEnable = decodedValue.value;
                                                                            len++;
                                                                            value.eventPriorities = [];
                                                                            for (let i = 0; i < 3; i++) {
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                              decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                              len += decodedValue.len;
                                                                              value.eventPriorities[i] = decodedValue.value;
                                                                            }
                                                                            len++;
                                                                            alarms.push(value);
                                                                          }
                                                                          moreEvents = buffer[apduLen - 1] === 1;
                                                                          return {
                                                                            len,
                                                                            alarms,
                                                                            moreEvents
                                                                          };
                                                                        };
                                                                        var event_notify_data_exports222222222222222222 = {};
                                                                        __export222222222222222222(event_notify_data_exports222222222222222222, {
                                                                          decode: () => decode12222222222222222222,
                                                                          encode: () => encode12222222222222222222
                                                                        });
                                                                        var encode12222222222222222222 = (buffer, data) => {
                                                                          encodeContextUnsigned222222222222222222(buffer, 0, data.processId);
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            data.initiatingObjectId.type,
                                                                            data.initiatingObjectId.instance
                                                                          );
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            2,
                                                                            data.eventObjectId.type,
                                                                            data.eventObjectId.instance
                                                                          );
                                                                          bacappEncodeContextTimestamp222222222222222222(buffer, 3, data.timeStamp);
                                                                          encodeContextUnsigned222222222222222222(buffer, 4, data.notificationClass);
                                                                          encodeContextUnsigned222222222222222222(buffer, 5, data.priority);
                                                                          encodeContextEnumerated222222222222222222(buffer, 6, data.eventType);
                                                                          if (data.messageText && data.messageText !== "") {
                                                                            encodeContextCharacterString222222222222222222(buffer, 7, data.messageText);
                                                                          }
                                                                          encodeContextEnumerated222222222222222222(buffer, 8, data.notifyType);
                                                                          switch (data.notifyType) {
                                                                            case 0:
                                                                            case 1:
                                                                              encodeContextBoolean222222222222222222(buffer, 9, data.ackRequired);
                                                                              encodeContextEnumerated222222222222222222(buffer, 10, data.fromState);
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                          encodeContextEnumerated222222222222222222(buffer, 11, data.toState);
                                                                          switch (data.notifyType) {
                                                                            case 0:
                                                                            case 1:
                                                                              encodeOpeningTag222222222222222222(buffer, 12);
                                                                              switch (data.eventType) {
                                                                                case 0:
                                                                                  encodeOpeningTag222222222222222222(buffer, 0);
                                                                                  encodeContextBitstring222222222222222222(
                                                                                    buffer,
                                                                                    0,
                                                                                    data.changeOfBitstringReferencedBitString
                                                                                  );
                                                                                  encodeContextBitstring222222222222222222(
                                                                                    buffer,
                                                                                    1,
                                                                                    data.changeOfBitstringStatusFlags
                                                                                  );
                                                                                  encodeClosingTag222222222222222222(buffer, 0);
                                                                                  break;
                                                                                case 1:
                                                                                  encodeOpeningTag222222222222222222(buffer, 1);
                                                                                  encodeOpeningTag222222222222222222(buffer, 0);
                                                                                  bacappEncodePropertyState222222222222222222(buffer, data.changeOfStateNewState);
                                                                                  encodeClosingTag222222222222222222(buffer, 0);
                                                                                  encodeContextBitstring222222222222222222(
                                                                                    buffer,
                                                                                    1,
                                                                                    data.changeOfStateStatusFlags
                                                                                  );
                                                                                  encodeClosingTag222222222222222222(buffer, 1);
                                                                                  break;
                                                                                case 2:
                                                                                  encodeOpeningTag222222222222222222(buffer, 2);
                                                                                  encodeOpeningTag222222222222222222(buffer, 0);
                                                                                  switch (data.changeOfValueTag) {
                                                                                    case 0:
                                                                                      encodeContextReal222222222222222222(
                                                                                        buffer,
                                                                                        1,
                                                                                        data.changeOfValueChangeValue
                                                                                      );
                                                                                      break;
                                                                                    case 1:
                                                                                      encodeContextBitstring222222222222222222(
                                                                                        buffer,
                                                                                        0,
                                                                                        data.changeOfValueChangedBits
                                                                                      );
                                                                                      break;
                                                                                    default:
                                                                                      throw new Error("NotImplemented");
                                                                                  }
                                                                                  encodeClosingTag222222222222222222(buffer, 0);
                                                                                  encodeContextBitstring222222222222222222(
                                                                                    buffer,
                                                                                    1,
                                                                                    data.changeOfValueStatusFlags
                                                                                  );
                                                                                  encodeClosingTag222222222222222222(buffer, 2);
                                                                                  break;
                                                                                case 4:
                                                                                  encodeOpeningTag222222222222222222(buffer, 4);
                                                                                  encodeContextReal222222222222222222(buffer, 0, data.floatingLimitReferenceValue);
                                                                                  encodeContextBitstring222222222222222222(
                                                                                    buffer,
                                                                                    1,
                                                                                    data.floatingLimitStatusFlags
                                                                                  );
                                                                                  encodeContextReal222222222222222222(buffer, 2, data.floatingLimitSetPointValue);
                                                                                  encodeContextReal222222222222222222(buffer, 3, data.floatingLimitErrorLimit);
                                                                                  encodeClosingTag222222222222222222(buffer, 4);
                                                                                  break;
                                                                                case 5:
                                                                                  encodeOpeningTag222222222222222222(buffer, 5);
                                                                                  encodeContextReal222222222222222222(buffer, 0, data.outOfRangeExceedingValue);
                                                                                  encodeContextBitstring222222222222222222(buffer, 1, data.outOfRangeStatusFlags);
                                                                                  encodeContextReal222222222222222222(buffer, 2, data.outOfRangeDeadband);
                                                                                  encodeContextReal222222222222222222(buffer, 3, data.outOfRangeExceededLimit);
                                                                                  encodeClosingTag222222222222222222(buffer, 5);
                                                                                  break;
                                                                                case 8:
                                                                                  encodeOpeningTag222222222222222222(buffer, 8);
                                                                                  encodeContextEnumerated222222222222222222(
                                                                                    buffer,
                                                                                    0,
                                                                                    data.changeOfLifeSafetyNewState
                                                                                  );
                                                                                  encodeContextEnumerated222222222222222222(
                                                                                    buffer,
                                                                                    1,
                                                                                    data.changeOfLifeSafetyNewMode
                                                                                  );
                                                                                  encodeContextBitstring222222222222222222(
                                                                                    buffer,
                                                                                    2,
                                                                                    data.changeOfLifeSafetyStatusFlags
                                                                                  );
                                                                                  encodeContextEnumerated222222222222222222(
                                                                                    buffer,
                                                                                    3,
                                                                                    data.changeOfLifeSafetyOperationExpected
                                                                                  );
                                                                                  encodeClosingTag222222222222222222(buffer, 8);
                                                                                  break;
                                                                                case 10:
                                                                                  encodeOpeningTag222222222222222222(buffer, 10);
                                                                                  bacappEncodeContextDeviceObjPropertyRef222222222222222222(
                                                                                    buffer,
                                                                                    0,
                                                                                    data.bufferReadyBufferProperty
                                                                                  );
                                                                                  encodeContextUnsigned222222222222222222(
                                                                                    buffer,
                                                                                    1,
                                                                                    data.bufferReadyPreviousNotification
                                                                                  );
                                                                                  encodeContextUnsigned222222222222222222(
                                                                                    buffer,
                                                                                    2,
                                                                                    data.bufferReadyCurrentNotification
                                                                                  );
                                                                                  encodeClosingTag222222222222222222(buffer, 10);
                                                                                  break;
                                                                                case 11:
                                                                                  encodeOpeningTag222222222222222222(buffer, 11);
                                                                                  encodeContextUnsigned222222222222222222(
                                                                                    buffer,
                                                                                    0,
                                                                                    data.unsignedRangeExceedingValue
                                                                                  );
                                                                                  encodeContextBitstring222222222222222222(
                                                                                    buffer,
                                                                                    1,
                                                                                    data.unsignedRangeStatusFlags
                                                                                  );
                                                                                  encodeContextUnsigned222222222222222222(
                                                                                    buffer,
                                                                                    2,
                                                                                    data.unsignedRangeExceededLimit
                                                                                  );
                                                                                  encodeClosingTag222222222222222222(buffer, 11);
                                                                                  break;
                                                                                case 9:
                                                                                case 3:
                                                                                  throw new Error("NotImplemented");
                                                                                default:
                                                                                  throw new Error("NotImplemented");
                                                                              }
                                                                              encodeClosingTag222222222222222222(buffer, 12);
                                                                              break;
                                                                            case 2:
                                                                              throw new Error("NotImplemented");
                                                                            default:
                                                                              break;
                                                                          }
                                                                        };
                                                                        var decode12222222222222222222 = (buffer, offset) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let eventData = {};
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          eventData.processId = decodedValue.value;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          eventData.initiatingObjectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 2)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          eventData.eventObjectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 3)) {
                                                                            return void 0;
                                                                          }
                                                                          len += 2;
                                                                          decodedValue = decodeApplicationDate222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          const date = decodedValue.value.value;
                                                                          decodedValue = decodeApplicationTime222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          const time = decodedValue.value.value;
                                                                          eventData.timeStamp = new Date(
                                                                            date.getFullYear(),
                                                                            date.getMonth(),
                                                                            date.getDate(),
                                                                            time.getHours(),
                                                                            time.getMinutes(),
                                                                            time.getSeconds(),
                                                                            time.getMilliseconds()
                                                                          );
                                                                          len += 2;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 4)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          eventData.notificationClass = decodedValue.value;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 5)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          eventData.priority = decodedValue.value;
                                                                          if (eventData.priority > 255) {
                                                                            return void 0;
                                                                          }
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 6)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          eventData.eventType = decodedValue.value;
                                                                          if (decodeIsContextTag222222222222222222(buffer, offset + len, 7)) {
                                                                            decodedValue = decodeContextCharacterString222222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              2e4,
                                                                              7
                                                                            );
                                                                            len += decodedValue.len;
                                                                            eventData.messageText = decodedValue.value;
                                                                          }
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 8)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          eventData.notifyType = decodedValue.value;
                                                                          switch (eventData.notifyType) {
                                                                            case 0:
                                                                            case 1:
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                              decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, 1);
                                                                              len += decodedValue.len;
                                                                              eventData.ackRequired = decodedValue.value > 0;
                                                                              if (!decodeIsContextTag222222222222222222(buffer, offset + len, 10)) {
                                                                                return void 0;
                                                                              }
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                              decodedValue = decodeEnumerated222222222222222222(
                                                                                buffer,
                                                                                offset + len,
                                                                                result.value
                                                                              );
                                                                              len += decodedValue.len;
                                                                              eventData.fromState = decodedValue.value;
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 11)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          eventData.toState = decodedValue.value;
                                                                          eventData.len = len;
                                                                          return eventData;
                                                                        };
                                                                        var get_enrollment_summary_exports222222222222222222 = {};
                                                                        __export222222222222222222(get_enrollment_summary_exports222222222222222222, {
                                                                          decode: () => decode13222222222222222222,
                                                                          decodeAcknowledge: () => decodeAcknowledge3222222222222222222,
                                                                          encode: () => encode13222222222222222222,
                                                                          encodeAcknowledge: () => encodeAcknowledge4222222222222222222
                                                                        });
                                                                        var encode13222222222222222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                                                                          encodeContextEnumerated222222222222222222(buffer, 0, acknowledgmentFilter);
                                                                          if (enrollmentFilter) {
                                                                            encodeOpeningTag222222222222222222(buffer, 1);
                                                                            encodeOpeningTag222222222222222222(buffer, 0);
                                                                            encodeContextObjectId222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              enrollmentFilter.objectId.type,
                                                                              enrollmentFilter.objectId.instance
                                                                            );
                                                                            encodeClosingTag222222222222222222(buffer, 0);
                                                                            encodeContextUnsigned222222222222222222(buffer, 1, enrollmentFilter.processId);
                                                                            encodeClosingTag222222222222222222(buffer, 1);
                                                                          }
                                                                          if (eventStateFilter) {
                                                                            encodeOpeningTag222222222222222222(buffer, 2);
                                                                            encodeContextEnumerated222222222222222222(buffer, 0, eventStateFilter);
                                                                            encodeClosingTag222222222222222222(buffer, 2);
                                                                          }
                                                                          if (eventTypeFilter) {
                                                                            encodeOpeningTag222222222222222222(buffer, 3);
                                                                            encodeContextEnumerated222222222222222222(buffer, 0, eventTypeFilter);
                                                                            encodeClosingTag222222222222222222(buffer, 3);
                                                                          }
                                                                          if (priorityFilter) {
                                                                            encodeOpeningTag222222222222222222(buffer, 4);
                                                                            encodeContextUnsigned222222222222222222(buffer, 0, priorityFilter.min);
                                                                            encodeContextUnsigned222222222222222222(buffer, 1, priorityFilter.max);
                                                                            encodeClosingTag222222222222222222(buffer, 4);
                                                                          }
                                                                          if (notificationClassFilter) {
                                                                            encodeOpeningTag222222222222222222(buffer, 5);
                                                                            encodeContextUnsigned222222222222222222(buffer, 0, notificationClassFilter);
                                                                            encodeClosingTag222222222222222222(buffer, 5);
                                                                          }
                                                                        };
                                                                        var decode13222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let value = {};
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.acknowledgmentFilter = decodedValue.value;
                                                                          if (decodeIsContextTag222222222222222222(buffer, offset + len, 1)) {
                                                                            len++;
                                                                            value.enrollmentFilter = {};
                                                                            if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                              return void 0;
                                                                            }
                                                                            len++;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            value.enrollmentFilter.objectId = {
                                                                              type: decodedValue.objectType,
                                                                              instance: decodedValue.instance
                                                                            };
                                                                            len++;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.enrollmentFilter.processId = decodedValue.value;
                                                                            len++;
                                                                          }
                                                                          if (decodeIsContextTag222222222222222222(buffer, offset + len, 2)) {
                                                                            len++;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.eventStateFilter = decodedValue.value;
                                                                            len++;
                                                                          }
                                                                          if (decodeIsContextTag222222222222222222(buffer, offset + len, 3)) {
                                                                            len++;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.eventTypeFilter = decodedValue.value;
                                                                            len++;
                                                                          }
                                                                          if (decodeIsContextTag222222222222222222(buffer, offset + len, 4)) {
                                                                            len++;
                                                                            value.priorityFilter = {};
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.priorityFilter.min = decodedValue.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.priorityFilter.max = decodedValue.value;
                                                                            len++;
                                                                          }
                                                                          if (decodeIsContextTag222222222222222222(buffer, offset + len, 5)) {
                                                                            len++;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.notificationClassFilter = decodedValue.value;
                                                                            len++;
                                                                          }
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var encodeAcknowledge4222222222222222222 = (buffer, enrollmentSummaries) => {
                                                                          enrollmentSummaries.forEach((enrollmentSummary) => {
                                                                            encodeApplicationObjectId222222222222222222(
                                                                              buffer,
                                                                              enrollmentSummary.objectId.type,
                                                                              enrollmentSummary.objectId.instance
                                                                            );
                                                                            encodeApplicationEnumerated222222222222222222(buffer, enrollmentSummary.eventType);
                                                                            encodeApplicationEnumerated222222222222222222(buffer, enrollmentSummary.eventState);
                                                                            encodeApplicationUnsigned222222222222222222(buffer, enrollmentSummary.priority);
                                                                            encodeApplicationUnsigned222222222222222222(
                                                                              buffer,
                                                                              enrollmentSummary.notificationClass
                                                                            );
                                                                          });
                                                                        };
                                                                        var decodeAcknowledge3222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          const enrollmentSummaries = [];
                                                                          while (apduLen - len > 0) {
                                                                            const enrollmentSummary = {};
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 12) {
                                                                              return void 0;
                                                                            }
                                                                            result = decodeObjectId222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            enrollmentSummary.objectId = {
                                                                              type: result.objectType,
                                                                              instance: result.instance
                                                                            };
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 9) {
                                                                              return void 0;
                                                                            }
                                                                            result = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            len += result.len;
                                                                            enrollmentSummary.eventType = result.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 9) {
                                                                              return void 0;
                                                                            }
                                                                            result = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            len += result.len;
                                                                            enrollmentSummary.eventState = result.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 2) {
                                                                              return void 0;
                                                                            }
                                                                            result = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += result.len;
                                                                            enrollmentSummary.priority = result.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 2) {
                                                                              return void 0;
                                                                            }
                                                                            result = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += result.len;
                                                                            enrollmentSummary.notificationClass = result.value;
                                                                            enrollmentSummaries.push(enrollmentSummary);
                                                                          }
                                                                          return {
                                                                            enrollmentSummaries,
                                                                            len
                                                                          };
                                                                        };
                                                                        var get_event_information_exports222222222222222222 = {};
                                                                        __export222222222222222222(get_event_information_exports222222222222222222, {
                                                                          decode: () => decode14222222222222222222,
                                                                          decodeAcknowledge: () => decodeAcknowledge4222222222222222222,
                                                                          encode: () => encode14222222222222222222,
                                                                          encodeAcknowledge: () => encodeAcknowledge5222222222222222222
                                                                        });
                                                                        var encode14222222222222222222 = (buffer, lastReceivedObjectId) => {
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            0,
                                                                            lastReceivedObjectId.type,
                                                                            lastReceivedObjectId.instance
                                                                          );
                                                                        };
                                                                        var decode14222222222222222222 = (buffer, offset) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let value = {};
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          value.lastReceivedObjectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var encodeAcknowledge5222222222222222222 = (buffer, events, moreEvents) => {
                                                                          encodeOpeningTag222222222222222222(buffer, 0);
                                                                          events.forEach((eventData) => {
                                                                            encodeContextObjectId222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              eventData.objectId.type,
                                                                              eventData.objectId.instance
                                                                            );
                                                                            encodeContextEnumerated222222222222222222(buffer, 1, eventData.eventState);
                                                                            encodeContextBitstring222222222222222222(buffer, 2, eventData.acknowledgedTransitions);
                                                                            encodeOpeningTag222222222222222222(buffer, 3);
                                                                            for (let i = 0; i < 3; i++) {
                                                                              bacappEncodeTimestamp222222222222222222(buffer, eventData.eventTimeStamps[i]);
                                                                            }
                                                                            encodeClosingTag222222222222222222(buffer, 3);
                                                                            encodeContextEnumerated222222222222222222(buffer, 4, eventData.notifyType);
                                                                            encodeContextBitstring222222222222222222(buffer, 5, eventData.eventEnable);
                                                                            encodeOpeningTag222222222222222222(buffer, 6);
                                                                            for (let i = 0; i < 3; i++) {
                                                                              encodeApplicationUnsigned222222222222222222(buffer, eventData.eventPriorities[i]);
                                                                            }
                                                                            encodeClosingTag222222222222222222(buffer, 6);
                                                                          });
                                                                          encodeClosingTag222222222222222222(buffer, 0);
                                                                          encodeContextBoolean222222222222222222(buffer, 1, moreEvents);
                                                                        };
                                                                        var decodeAcknowledge4222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let value = {};
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          value.events = [];
                                                                          while (apduLen - len > 3) {
                                                                            let event = {};
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            event.objectId = {
                                                                              type: decodedValue.objectType,
                                                                              instance: decodedValue.instance
                                                                            };
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            event.eventState = decodedValue.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeBitstring222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            event.acknowledgedTransitions = decodedValue.value;
                                                                            if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 3)) {
                                                                              return void 0;
                                                                            }
                                                                            len++;
                                                                            event.eventTimeStamps = [];
                                                                            for (let i = 0; i < 3; i++) {
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                              if (result.tagNumber === 0) {
                                                                                decodedValue = decodeBacnetTime222222222222222222(
                                                                                  buffer,
                                                                                  offset + len,
                                                                                  result.value
                                                                                );
                                                                                len += decodedValue.len;
                                                                                event.eventTimeStamps[i] = {
                                                                                  value: decodedValue.value,
                                                                                  type: 0
                                                                                  /* TIME */
                                                                                };
                                                                              } else if (result.tagNumber === 1) {
                                                                                decodedValue = decodeUnsigned222222222222222222(
                                                                                  buffer,
                                                                                  offset + len,
                                                                                  result.value
                                                                                );
                                                                                len += decodedValue.len;
                                                                                event.eventTimeStamps[i] = {
                                                                                  value: decodedValue.value,
                                                                                  type: 1
                                                                                  /* SEQUENCE_NUMBER */
                                                                                };
                                                                              } else if (result.tagNumber === 2) {
                                                                                let date = decodeApplicationDate222222222222222222(
                                                                                  buffer,
                                                                                  offset + len
                                                                                );
                                                                                len += date.len;
                                                                                date = date.value.value;
                                                                                let time = decodeApplicationTime222222222222222222(
                                                                                  buffer,
                                                                                  offset + len
                                                                                );
                                                                                len += time.len;
                                                                                time = time.value.value;
                                                                                event.eventTimeStamps[i] = {
                                                                                  value: new Date(
                                                                                    date.getFullYear(),
                                                                                    date.getMonth(),
                                                                                    date.getDate(),
                                                                                    time.getHours(),
                                                                                    time.getMinutes(),
                                                                                    time.getSeconds(),
                                                                                    time.getMilliseconds()
                                                                                  ),
                                                                                  type: 2
                                                                                  /* DATETIME */
                                                                                };
                                                                                len++;
                                                                              }
                                                                            }
                                                                            if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 3)) {
                                                                              return void 0;
                                                                            }
                                                                            len++;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            event.notifyType = decodedValue.value;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeBitstring222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            event.eventEnable = decodedValue.value;
                                                                            if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 6)) {
                                                                              return void 0;
                                                                            }
                                                                            len++;
                                                                            event.eventPriorities = [];
                                                                            for (let i = 0; i < 3; i++) {
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                              decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                              len += decodedValue.len;
                                                                              event.eventPriorities[i] = decodedValue.value;
                                                                            }
                                                                            if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 6)) {
                                                                              return void 0;
                                                                            }
                                                                            len++;
                                                                            value.events.push(event);
                                                                          }
                                                                          if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          value.moreEvents = buffer[offset + len] > 0;
                                                                          len++;
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var i_am_exports222222222222222222 = {};
                                                                        __export222222222222222222(i_am_exports222222222222222222, {
                                                                          decode: () => decode15222222222222222222,
                                                                          encode: () => encode15222222222222222222
                                                                        });
                                                                        var encode15222222222222222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                                                                          encodeApplicationObjectId222222222222222222(buffer, 8, deviceId);
                                                                          encodeApplicationUnsigned222222222222222222(buffer, maxApdu);
                                                                          encodeApplicationEnumerated222222222222222222(buffer, segmentation);
                                                                          encodeApplicationUnsigned222222222222222222(buffer, vendorId);
                                                                        };
                                                                        var decode15222222222222222222 = (buffer, offset) => {
                                                                          let result;
                                                                          let apduLen = 0;
                                                                          const orgOffset = offset;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + apduLen);
                                                                          apduLen += result.len;
                                                                          if (result.tagNumber !== 12) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeObjectId222222222222222222(buffer, offset + apduLen);
                                                                          apduLen += result.len;
                                                                          if (result.objectType !== 8) {
                                                                            return void 0;
                                                                          }
                                                                          const deviceId = result.instance;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + apduLen);
                                                                          apduLen += result.len;
                                                                          if (result.tagNumber !== 2) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeUnsigned222222222222222222(buffer, offset + apduLen, result.value);
                                                                          apduLen += result.len;
                                                                          const maxApdu = result.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + apduLen);
                                                                          apduLen += result.len;
                                                                          if (result.tagNumber !== 9) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeEnumerated222222222222222222(buffer, offset + apduLen, result.value);
                                                                          apduLen += result.len;
                                                                          if (result.value > 3) {
                                                                            return void 0;
                                                                          }
                                                                          const segmentation = result.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + apduLen);
                                                                          apduLen += result.len;
                                                                          if (result.tagNumber !== 2) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeUnsigned222222222222222222(buffer, offset + apduLen, result.value);
                                                                          apduLen += result.len;
                                                                          if (result.value > 65535) {
                                                                            return void 0;
                                                                          }
                                                                          const vendorId = result.value;
                                                                          return {
                                                                            len: offset - orgOffset,
                                                                            deviceId,
                                                                            maxApdu,
                                                                            segmentation,
                                                                            vendorId
                                                                          };
                                                                        };
                                                                        var i_have_exports222222222222222222 = {};
                                                                        __export222222222222222222(i_have_exports222222222222222222, {
                                                                          decode: () => decode16222222222222222222,
                                                                          encode: () => encode16222222222222222222
                                                                        });
                                                                        var encode16222222222222222222 = (buffer, deviceId, objectId, objectName) => {
                                                                          encodeApplicationObjectId222222222222222222(buffer, deviceId.type, deviceId.instance);
                                                                          encodeApplicationObjectId222222222222222222(buffer, objectId.type, objectId.instance);
                                                                          encodeApplicationCharacterString222222222222222222(buffer, objectName);
                                                                        };
                                                                        var decode16222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let value = {};
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          value.deviceId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          value.objectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeCharacterString222222222222222222(
                                                                            buffer,
                                                                            offset + len,
                                                                            apduLen - (offset + len),
                                                                            result.value
                                                                          );
                                                                          len += decodedValue.len;
                                                                          value.objectName = decodedValue.value;
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var life_safety_operation_exports222222222222222222 = {};
                                                                        __export222222222222222222(life_safety_operation_exports222222222222222222, {
                                                                          decode: () => decode17222222222222222222,
                                                                          encode: () => encode17222222222222222222
                                                                        });
                                                                        var encode17222222222222222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                                                                          encodeContextUnsigned222222222222222222(buffer, 0, processId);
                                                                          encodeContextCharacterString222222222222222222(buffer, 1, requestingSource);
                                                                          encodeContextEnumerated222222222222222222(buffer, 2, operation);
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            3,
                                                                            targetObjectId.type,
                                                                            targetObjectId.instance
                                                                          );
                                                                        };
                                                                        var decode17222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let value = {};
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.processId = decodedValue.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeCharacterString222222222222222222(
                                                                            buffer,
                                                                            offset + len,
                                                                            apduLen - (offset + len),
                                                                            result.value
                                                                          );
                                                                          len += decodedValue.len;
                                                                          value.requestingSource = decodedValue.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.operation = decodedValue.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          value.targetObjectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var private_transfer_exports222222222222222222 = {};
                                                                        __export222222222222222222(private_transfer_exports222222222222222222, {
                                                                          decode: () => decode18222222222222222222,
                                                                          encode: () => encode18222222222222222222
                                                                        });
                                                                        var encode18222222222222222222 = (buffer, vendorId, serviceNumber, data) => {
                                                                          encodeContextUnsigned222222222222222222(buffer, 0, vendorId);
                                                                          encodeContextUnsigned222222222222222222(buffer, 1, serviceNumber);
                                                                          encodeOpeningTag222222222222222222(buffer, 2);
                                                                          for (let i = 0; i < data.length; i++) {
                                                                            buffer.buffer[buffer.offset++] = data[i];
                                                                          }
                                                                          encodeClosingTag222222222222222222(buffer, 2);
                                                                        };
                                                                        var decode18222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let value = {};
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.vendorId = decodedValue.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.serviceNumber = decodedValue.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          const size = apduLen - (offset + len + 1);
                                                                          const data = [];
                                                                          for (let i = 0; i < size; i++) {
                                                                            data.push(buffer[offset + len++]);
                                                                          }
                                                                          value.data = data;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var read_property_exports222222222222222222 = {};
                                                                        __export222222222222222222(read_property_exports222222222222222222, {
                                                                          decode: () => decode19222222222222222222,
                                                                          decodeAcknowledge: () => decodeAcknowledge5222222222222222222,
                                                                          encode: () => encode19222222222222222222,
                                                                          encodeAcknowledge: () => encodeAcknowledge6222222222222222222
                                                                        });
                                                                        var encode19222222222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                                                                          if (objectType <= ASN1_MAX_OBJECT222222222222222222) {
                                                                            encodeContextObjectId222222222222222222(buffer, 0, objectType, objectInstance);
                                                                          }
                                                                          if (propertyId <= ASN1_MAX_PROPERTY_ID222222222222222222) {
                                                                            encodeContextEnumerated222222222222222222(buffer, 1, propertyId);
                                                                          }
                                                                          if (arrayIndex !== ASN1_ARRAY_ALL222222222222222222) {
                                                                            encodeContextUnsigned222222222222222222(
                                                                              buffer,
                                                                              2,
                                                                              arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL222222222222222222
                                                                            );
                                                                          }
                                                                        };
                                                                        var decode19222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          if (apduLen < 7) {
                                                                            return void 0;
                                                                          }
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          let objectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          let property = {};
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 1) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          property.id = decodedValue.value;
                                                                          property.index = ASN1_ARRAY_ALL222222222222222222;
                                                                          if (len < apduLen) {
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber === 2 && len < apduLen) {
                                                                              decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                              len += decodedValue.len;
                                                                              property.index = decodedValue.value;
                                                                            } else {
                                                                              return void 0;
                                                                            }
                                                                          }
                                                                          if (len < apduLen) {
                                                                            return void 0;
                                                                          }
                                                                          return {
                                                                            len,
                                                                            objectId,
                                                                            property
                                                                          };
                                                                        };
                                                                        var encodeAcknowledge6222222222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                                          encodeContextObjectId222222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                          encodeContextEnumerated222222222222222222(buffer, 1, propertyId);
                                                                          if (arrayIndex !== ASN1_ARRAY_ALL222222222222222222) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 2, arrayIndex);
                                                                          }
                                                                          encodeOpeningTag222222222222222222(buffer, 3);
                                                                          values.forEach((value) => {
                                                                            bacappEncodeApplicationData222222222222222222(buffer, value);
                                                                          });
                                                                          encodeClosingTag222222222222222222(buffer, 3);
                                                                        };
                                                                        var decodeAcknowledge5222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let result;
                                                                          let decodedValue;
                                                                          let objectId = {};
                                                                          let property = {};
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          let len = 1;
                                                                          result = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          objectId.type = result.objectType;
                                                                          objectId.instance = result.instance;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 1) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += result.len;
                                                                          property.id = result.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          if (result.tagNumber === 2) {
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            property.index = decodedValue.value;
                                                                          } else {
                                                                            property.index = ASN1_ARRAY_ALL222222222222222222;
                                                                          }
                                                                          const values = [];
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 3)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          while (apduLen - len > 1) {
                                                                            result = bacappDecodeApplicationData222222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              apduLen + offset,
                                                                              objectId.type,
                                                                              property.id
                                                                            );
                                                                            if (!result) {
                                                                              return void 0;
                                                                            }
                                                                            len += result.len;
                                                                            delete result.len;
                                                                            values.push(result);
                                                                          }
                                                                          if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 3)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          return {
                                                                            len,
                                                                            objectId,
                                                                            property,
                                                                            values
                                                                          };
                                                                        };
                                                                        var read_property_multiple_exports222222222222222222 = {};
                                                                        __export222222222222222222(read_property_multiple_exports222222222222222222, {
                                                                          decode: () => decode20222222222222222222,
                                                                          decodeAcknowledge: () => decodeAcknowledge6222222222222222222,
                                                                          encode: () => encode20222222222222222222,
                                                                          encodeAcknowledge: () => encodeAcknowledge7222222222222222222
                                                                        });
                                                                        var encode20222222222222222222 = (buffer, properties) => {
                                                                          properties.forEach((value) => {
                                                                            encodeReadAccessSpecification222222222222222222(buffer, value);
                                                                          });
                                                                        };
                                                                        var decode20222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          const values = [];
                                                                          while (apduLen - len > 0) {
                                                                            const decodedValue = decodeReadAccessSpecification222222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              apduLen - len
                                                                            );
                                                                            if (!decodedValue) {
                                                                              return void 0;
                                                                            }
                                                                            len += decodedValue.len;
                                                                            values.push(decodedValue.value);
                                                                          }
                                                                          return {
                                                                            len,
                                                                            properties: values
                                                                          };
                                                                        };
                                                                        var encodeAcknowledge7222222222222222222 = (buffer, values) => {
                                                                          values.forEach((value) => {
                                                                            encodeReadAccessResult222222222222222222(buffer, value);
                                                                          });
                                                                        };
                                                                        var decodeAcknowledge6222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          const values = [];
                                                                          while (apduLen - len > 0) {
                                                                            const result = decodeReadAccessResult222222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              apduLen - len
                                                                            );
                                                                            if (!result || result === -1) {
                                                                              return void 0;
                                                                            }
                                                                            len += result.len;
                                                                            values.push(result.value);
                                                                          }
                                                                          return {
                                                                            len,
                                                                            values
                                                                          };
                                                                        };
                                                                        var read_range_exports222222222222222222 = {};
                                                                        __export222222222222222222(read_range_exports222222222222222222, {
                                                                          decode: () => decode21222222222222222222,
                                                                          decodeAcknowledge: () => decodeAcknowledge7222222222222222222,
                                                                          encode: () => encode21222222222222222222,
                                                                          encodeAcknowledge: () => encodeAcknowledge8222222222222222222
                                                                        });
                                                                        var encode21222222222222222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                                                                          encodeContextObjectId222222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                          encodeContextEnumerated222222222222222222(buffer, 1, propertyId);
                                                                          if (arrayIndex !== ASN1_ARRAY_ALL222222222222222222) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 2, arrayIndex);
                                                                          }
                                                                          switch (requestType) {
                                                                            case 0:
                                                                              encodeOpeningTag222222222222222222(buffer, 3);
                                                                              encodeApplicationUnsigned222222222222222222(buffer, position);
                                                                              encodeApplicationSigned222222222222222222(buffer, count);
                                                                              encodeClosingTag222222222222222222(buffer, 3);
                                                                              break;
                                                                            case 1:
                                                                              encodeOpeningTag222222222222222222(buffer, 6);
                                                                              encodeApplicationUnsigned222222222222222222(buffer, position);
                                                                              encodeApplicationSigned222222222222222222(buffer, count);
                                                                              encodeClosingTag222222222222222222(buffer, 6);
                                                                              break;
                                                                            case 2:
                                                                              encodeOpeningTag222222222222222222(buffer, 7);
                                                                              encodeApplicationDate222222222222222222(buffer, time);
                                                                              encodeApplicationTime222222222222222222(buffer, time);
                                                                              encodeApplicationSigned222222222222222222(buffer, count);
                                                                              encodeClosingTag222222222222222222(buffer, 7);
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                        };
                                                                        var decode21222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let requestType;
                                                                          let position;
                                                                          let time;
                                                                          let count;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len, 0);
                                                                          len += decodedValue.len;
                                                                          let objectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          let property = {};
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 1) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          property.id = decodedValue.value;
                                                                          if (len < apduLen && decodeIsContextTag222222222222222222(buffer, offset + len, 2)) {
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            property.index = decodedValue.value;
                                                                          } else {
                                                                            property.index = ASN1_ARRAY_ALL222222222222222222;
                                                                          }
                                                                          if (len < apduLen) {
                                                                            result = decodeTagNumber222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            switch (result.tagNumber) {
                                                                              case 3:
                                                                                requestType = 0;
                                                                                result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                                len += result.len;
                                                                                decodedValue = decodeUnsigned222222222222222222(
                                                                                  buffer,
                                                                                  offset + len,
                                                                                  result.value
                                                                                );
                                                                                len += decodedValue.len;
                                                                                position = decodedValue.value;
                                                                                result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                                len += result.len;
                                                                                decodedValue = decodeSigned222222222222222222(buffer, offset + len, result.value);
                                                                                len += decodedValue.len;
                                                                                count = decodedValue.value;
                                                                                break;
                                                                              case 6:
                                                                                requestType = 1;
                                                                                result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                                len += result.len;
                                                                                decodedValue = decodeUnsigned222222222222222222(
                                                                                  buffer,
                                                                                  offset + len,
                                                                                  result.value
                                                                                );
                                                                                len += decodedValue.len;
                                                                                position = decodedValue.value;
                                                                                result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                                len += result.len;
                                                                                decodedValue = decodeSigned222222222222222222(buffer, offset + len, result.value);
                                                                                len += decodedValue.len;
                                                                                count = decodedValue.value;
                                                                                break;
                                                                              case 7:
                                                                                requestType = 2;
                                                                                decodedValue = decodeApplicationDate222222222222222222(buffer, offset + len);
                                                                                len += decodedValue.len;
                                                                                const tmpDate = decodedValue.value.value;
                                                                                decodedValue = decodeApplicationTime222222222222222222(buffer, offset + len);
                                                                                len += decodedValue.len;
                                                                                const tmpTime = decodedValue.value.value;
                                                                                time = new Date(
                                                                                  tmpDate.getYear(),
                                                                                  tmpDate.getMonth(),
                                                                                  tmpDate.getDate(),
                                                                                  tmpTime.getHours(),
                                                                                  tmpTime.getMinutes(),
                                                                                  tmpTime.getSeconds(),
                                                                                  tmpTime.getMilliseconds()
                                                                                );
                                                                                result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                                len += result.len;
                                                                                decodedValue = decodeSigned222222222222222222(buffer, offset + len, result.value);
                                                                                len += decodedValue.len;
                                                                                count = decodedValue.value;
                                                                                break;
                                                                              default:
                                                                                return void 0;
                                                                            }
                                                                            result = decodeTagNumber222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                          }
                                                                          return {
                                                                            len,
                                                                            objectId,
                                                                            property,
                                                                            requestType,
                                                                            position,
                                                                            time,
                                                                            count
                                                                          };
                                                                        };
                                                                        var encodeAcknowledge8222222222222222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                                                                          encodeContextObjectId222222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                          encodeContextEnumerated222222222222222222(buffer, 1, propertyId);
                                                                          if (arrayIndex !== ASN1_ARRAY_ALL222222222222222222) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 2, arrayIndex);
                                                                          }
                                                                          encodeContextBitstring222222222222222222(buffer, 3, resultFlags);
                                                                          encodeContextUnsigned222222222222222222(buffer, 4, itemCount);
                                                                          encodeOpeningTag222222222222222222(buffer, 5);
                                                                          if (itemCount !== 0) {
                                                                            applicationData.copy(
                                                                              buffer.buffer,
                                                                              buffer.offset,
                                                                              0,
                                                                              applicationData.length
                                                                            );
                                                                            buffer.offset += applicationData.length;
                                                                          }
                                                                          encodeClosingTag222222222222222222(buffer, 5);
                                                                          if (itemCount !== 0 && requestType && requestType !== 0) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 6, firstSequence);
                                                                          }
                                                                        };
                                                                        var decodeAcknowledge7222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          const objectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          const property = { index: ASN1_ARRAY_ALL222222222222222222 };
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 1) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          property.id = decodedValue.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          if (result.tagNumber === 2 && len < apduLen) {
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            property.index = decodedValue.value;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeBitstring222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          const resultFlag = decodedValue.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          const itemCount = decodedValue.value;
                                                                          if (!decodeIsOpeningTag222222222222222222(buffer, offset + len)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                                                                          return {
                                                                            objectId,
                                                                            property,
                                                                            resultFlag,
                                                                            itemCount,
                                                                            rangeBuffer,
                                                                            len
                                                                          };
                                                                        };
                                                                        var register_foreign_device_exports222222222222222222 = {};
                                                                        __export222222222222222222(register_foreign_device_exports222222222222222222, {
                                                                          decode: () => decode22222222222222222222,
                                                                          encode: () => encode22222222222222222222
                                                                        });
                                                                        var encode22222222222222222222 = (buffer, ttl, length = 2) => {
                                                                          encodeUnsigned222222222222222222(buffer, ttl, length);
                                                                        };
                                                                        var decode22222222222222222222 = (buffer, offset, length = 2) => {
                                                                          let len = 0;
                                                                          let result = decodeUnsigned222222222222222222(buffer, offset + len, length);
                                                                          len += result.len;
                                                                          return {
                                                                            len,
                                                                            ttl: result.value
                                                                          };
                                                                        };
                                                                        var reinitialize_device_exports222222222222222222 = {};
                                                                        __export222222222222222222(reinitialize_device_exports222222222222222222, {
                                                                          decode: () => decode23222222222222222222,
                                                                          encode: () => encode23222222222222222222
                                                                        });
                                                                        var encode23222222222222222222 = (buffer, state, password) => {
                                                                          encodeContextEnumerated222222222222222222(buffer, 0, state);
                                                                          if (password && password !== "") {
                                                                            encodeContextCharacterString222222222222222222(buffer, 1, password);
                                                                          }
                                                                        };
                                                                        var decode23222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let value = {};
                                                                          let result;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          let decodedValue = decodeEnumerated222222222222222222(
                                                                            buffer,
                                                                            offset + len,
                                                                            result.value
                                                                          );
                                                                          value.state = decodedValue.value;
                                                                          len += decodedValue.len;
                                                                          if (len < apduLen) {
                                                                            if (!decodeIsContextTag222222222222222222(buffer, offset + len, 1)) {
                                                                              return void 0;
                                                                            }
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeCharacterString222222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              apduLen - (offset + len),
                                                                              result.value
                                                                            );
                                                                            value.password = decodedValue.value;
                                                                            len += decodedValue.len;
                                                                          }
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var subscribe_cov_exports222222222222222222 = {};
                                                                        __export222222222222222222(subscribe_cov_exports222222222222222222, {
                                                                          decode: () => decode24222222222222222222,
                                                                          encode: () => encode24222222222222222222
                                                                        });
                                                                        var encode24222222222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                                                                          encodeContextUnsigned222222222222222222(buffer, 0, subscriberProcessId);
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            monitoredObjectId.type,
                                                                            monitoredObjectId.instance
                                                                          );
                                                                          if (!cancellationRequest) {
                                                                            encodeContextBoolean222222222222222222(buffer, 2, issueConfirmedNotifications);
                                                                            encodeContextUnsigned222222222222222222(buffer, 3, lifetime);
                                                                          }
                                                                        };
                                                                        var decode24222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let value = {};
                                                                          let result;
                                                                          let decodedValue;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.subscriberProcessId = decodedValue.value;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          value.monitoredObjectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          value.cancellationRequest = true;
                                                                          if (len < apduLen) {
                                                                            value.issueConfirmedNotifications = false;
                                                                            if (decodeIsContextTag222222222222222222(buffer, offset + len, 2)) {
                                                                              value.cancellationRequest = false;
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                              value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                                              len++;
                                                                            }
                                                                            value.lifetime = 0;
                                                                            if (decodeIsContextTag222222222222222222(buffer, offset + len, 3)) {
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                              decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                              len += decodedValue.len;
                                                                              value.lifetime = decodedValue.value;
                                                                            }
                                                                          }
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var subscribe_property_exports222222222222222222 = {};
                                                                        __export222222222222222222(subscribe_property_exports222222222222222222, {
                                                                          decode: () => decode25222222222222222222,
                                                                          encode: () => encode25222222222222222222
                                                                        });
                                                                        var encode25222222222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                                                                          encodeContextUnsigned222222222222222222(buffer, 0, subscriberProcessId);
                                                                          encodeContextObjectId222222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            monitoredObjectId.type,
                                                                            monitoredObjectId.instance
                                                                          );
                                                                          if (!cancellationRequest) {
                                                                            encodeContextBoolean222222222222222222(buffer, 2, issueConfirmedNotifications);
                                                                            encodeContextUnsigned222222222222222222(buffer, 3, lifetime);
                                                                          }
                                                                          encodeOpeningTag222222222222222222(buffer, 4);
                                                                          encodeContextEnumerated222222222222222222(buffer, 0, monitoredProperty.id);
                                                                          if (monitoredProperty.index !== ASN1_ARRAY_ALL222222222222222222) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 1, monitoredProperty.index);
                                                                          }
                                                                          encodeClosingTag222222222222222222(buffer, 4);
                                                                          if (covIncrementPresent) {
                                                                            encodeContextReal222222222222222222(buffer, 5, covIncrement);
                                                                          }
                                                                        };
                                                                        var decode25222222222222222222 = (buffer, offset) => {
                                                                          let len = 0;
                                                                          let value = {};
                                                                          let result;
                                                                          let decodedValue;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.subscriberProcessId = decodedValue.value;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          value.monitoredObjectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          value.cancellationRequest = true;
                                                                          value.issueConfirmedNotifications = false;
                                                                          if (decodeIsContextTag222222222222222222(buffer, offset + len, 2)) {
                                                                            value.cancellationRequest = false;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                                            len++;
                                                                          }
                                                                          value.lifetime = 0;
                                                                          if (decodeIsContextTag222222222222222222(buffer, offset + len, 3)) {
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.lifetime = decodedValue.value;
                                                                          }
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 4)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          value.monitoredProperty = {};
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.monitoredProperty.id = decodedValue.value;
                                                                          value.monitoredProperty.index = ASN1_ARRAY_ALL222222222222222222;
                                                                          if (decodeIsContextTag222222222222222222(buffer, offset + len, 1)) {
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.monitoredProperty.index = decodedValue.value;
                                                                          }
                                                                          if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 4)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          value.covIncrement = 0;
                                                                          if (decodeIsContextTag222222222222222222(buffer, offset + len, 5)) {
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeReal222222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            value.covIncrement = decodedValue.value;
                                                                          }
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var time_sync_exports222222222222222222 = {};
                                                                        __export222222222222222222(time_sync_exports222222222222222222, {
                                                                          decode: () => decode26222222222222222222,
                                                                          encode: () => encode26222222222222222222
                                                                        });
                                                                        var encode26222222222222222222 = (buffer, time) => {
                                                                          encodeApplicationDate222222222222222222(buffer, time);
                                                                          encodeApplicationTime222222222222222222(buffer, time);
                                                                        };
                                                                        var decode26222222222222222222 = (buffer, offset, length) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 10) {
                                                                            return void 0;
                                                                          }
                                                                          const date = decodeDate222222222222222222(buffer, offset + len);
                                                                          len += date.len;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 11) {
                                                                            return void 0;
                                                                          }
                                                                          const time = decodeBacnetTime222222222222222222(buffer, offset + len);
                                                                          len += time.len;
                                                                          return {
                                                                            len,
                                                                            value: new Date(
                                                                              date.value.getFullYear(),
                                                                              date.value.getMonth(),
                                                                              date.value.getDate(),
                                                                              time.value.getHours(),
                                                                              time.value.getMinutes(),
                                                                              time.value.getSeconds(),
                                                                              time.value.getMilliseconds()
                                                                            )
                                                                          };
                                                                        };
                                                                        var who_has_exports222222222222222222 = {};
                                                                        __export222222222222222222(who_has_exports222222222222222222, {
                                                                          decode: () => decode27222222222222222222,
                                                                          encode: () => encode27222222222222222222
                                                                        });
                                                                        var encode27222222222222222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                                                                          if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE222222222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE222222222222222222) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 0, lowLimit);
                                                                            encodeContextUnsigned222222222222222222(buffer, 1, highLimit);
                                                                          }
                                                                          if (objectName && objectName !== "") {
                                                                            encodeContextCharacterString222222222222222222(buffer, 3, objectName);
                                                                          } else {
                                                                            encodeContextObjectId222222222222222222(buffer, 2, objectId.type, objectId.instance);
                                                                          }
                                                                        };
                                                                        var decode27222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let value = {};
                                                                          let decodedValue;
                                                                          let result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber === 0) {
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            if (decodedValue.value <= ASN1_MAX_INSTANCE222222222222222222) {
                                                                              value.lowLimit = decodedValue.value;
                                                                            }
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                          }
                                                                          if (result.tagNumber === 1) {
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            if (decodedValue.value <= ASN1_MAX_INSTANCE222222222222222222) {
                                                                              value.highLimit = decodedValue.value;
                                                                            }
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                          }
                                                                          if (result.tagNumber === 2) {
                                                                            decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            value.objectId = {
                                                                              type: decodedValue.objectType,
                                                                              instance: decodedValue.instance
                                                                            };
                                                                          }
                                                                          if (result.tagNumber === 3) {
                                                                            decodedValue = decodeCharacterString222222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              apduLen - (offset + len),
                                                                              result.value
                                                                            );
                                                                            len += decodedValue.len;
                                                                            value.objectName = decodedValue.value;
                                                                          }
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var who_is_exports222222222222222222 = {};
                                                                        __export222222222222222222(who_is_exports222222222222222222, {
                                                                          decode: () => decode28222222222222222222,
                                                                          encode: () => encode28222222222222222222
                                                                        });
                                                                        var encode28222222222222222222 = (buffer, lowLimit, highLimit) => {
                                                                          if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE222222222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE222222222222222222) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 0, lowLimit);
                                                                            encodeContextUnsigned222222222222222222(buffer, 1, highLimit);
                                                                          }
                                                                        };
                                                                        var decode28222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let value = {};
                                                                          if (apduLen <= 0) {
                                                                            return {};
                                                                          }
                                                                          let result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 0) {
                                                                            return void 0;
                                                                          }
                                                                          if (apduLen <= len) {
                                                                            return void 0;
                                                                          }
                                                                          let decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          if (decodedValue.value <= ASN1_MAX_INSTANCE222222222222222222) {
                                                                            value.lowLimit = decodedValue.value;
                                                                          }
                                                                          if (apduLen <= len) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 1) {
                                                                            return void 0;
                                                                          }
                                                                          if (apduLen <= len) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          if (decodedValue.value <= ASN1_MAX_INSTANCE222222222222222222) {
                                                                            value.highLimit = decodedValue.value;
                                                                          }
                                                                          value.len = len;
                                                                          return value;
                                                                        };
                                                                        var write_property_exports222222222222222222 = {};
                                                                        __export222222222222222222(write_property_exports222222222222222222, {
                                                                          decode: () => decode29222222222222222222,
                                                                          encode: () => encode29222222222222222222
                                                                        });
                                                                        var encode29222222222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                                                                          encodeContextObjectId222222222222222222(buffer, 0, objectType, objectInstance);
                                                                          encodeContextEnumerated222222222222222222(buffer, 1, propertyId);
                                                                          if (arrayIndex !== ASN1_ARRAY_ALL222222222222222222) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 2, arrayIndex);
                                                                          }
                                                                          encodeOpeningTag222222222222222222(buffer, 3);
                                                                          values.forEach((value) => {
                                                                            bacappEncodeApplicationData222222222222222222(buffer, value);
                                                                          });
                                                                          encodeClosingTag222222222222222222(buffer, 3);
                                                                          if (priority !== ASN1_NO_PRIORITY222222222222222222) {
                                                                            encodeContextUnsigned222222222222222222(buffer, 4, priority);
                                                                          }
                                                                        };
                                                                        var decode29222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let value = {
                                                                            property: {}
                                                                          };
                                                                          let decodedValue;
                                                                          let result;
                                                                          if (!decodeIsContextTag222222222222222222(buffer, offset + len, 0)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          let objectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          len += decodedValue.len;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 1) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.property.id = decodedValue.value;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          if (result.tagNumber === 2) {
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            value.property.index = decodedValue.value;
                                                                          } else {
                                                                            value.property.index = ASN1_ARRAY_ALL222222222222222222;
                                                                          }
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 3)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          const values = [];
                                                                          while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 3)) {
                                                                            decodedValue = bacappDecodeApplicationData222222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              apduLen + offset,
                                                                              objectId.type,
                                                                              value.property.id
                                                                            );
                                                                            if (!decodedValue) {
                                                                              return void 0;
                                                                            }
                                                                            len += decodedValue.len;
                                                                            delete decodedValue.len;
                                                                            values.push(decodedValue);
                                                                          }
                                                                          value.value = values;
                                                                          if (!decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 3)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          value.priority = ASN1_MAX_PRIORITY222222222222222222;
                                                                          if (len < apduLen) {
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            if (result.tagNumber === 4) {
                                                                              len += result.len;
                                                                              decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                              len += decodedValue;
                                                                              if (decodedValue.value >= ASN1_MIN_PRIORITY222222222222222222 && decodedValue.value <= ASN1_MAX_PRIORITY222222222222222222) {
                                                                                value.priority = decodedValue.value;
                                                                              } else {
                                                                                return void 0;
                                                                              }
                                                                            }
                                                                          }
                                                                          return {
                                                                            len,
                                                                            objectId,
                                                                            value
                                                                          };
                                                                        };
                                                                        var write_property_multiple_exports222222222222222222 = {};
                                                                        __export222222222222222222(write_property_multiple_exports222222222222222222, {
                                                                          decode: () => decode30222222222222222222,
                                                                          encode: () => encode30222222222222222222,
                                                                          encodeObject: () => encodeObject222222222222222222
                                                                        });
                                                                        var encode30222222222222222222 = (buffer, objectId, values) => {
                                                                          encodeContextObjectId222222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                          encodeOpeningTag222222222222222222(buffer, 1);
                                                                          values.forEach((pValue) => {
                                                                            encodeContextEnumerated222222222222222222(buffer, 0, pValue.property.id);
                                                                            if (pValue.property.index !== ASN1_ARRAY_ALL222222222222222222) {
                                                                              encodeContextUnsigned222222222222222222(buffer, 1, pValue.property.index);
                                                                            }
                                                                            encodeOpeningTag222222222222222222(buffer, 2);
                                                                            pValue.value.forEach((value) => {
                                                                              bacappEncodeApplicationData222222222222222222(buffer, value);
                                                                            });
                                                                            encodeClosingTag222222222222222222(buffer, 2);
                                                                            if (pValue.priority !== ASN1_NO_PRIORITY222222222222222222) {
                                                                              encodeContextUnsigned222222222222222222(buffer, 3, pValue.priority);
                                                                            }
                                                                          });
                                                                          encodeClosingTag222222222222222222(buffer, 1);
                                                                        };
                                                                        var decode30222222222222222222 = (buffer, offset, apduLen) => {
                                                                          let len = 0;
                                                                          let result;
                                                                          let decodedValue;
                                                                          let objectId;
                                                                          result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 0 || apduLen <= len) {
                                                                            return void 0;
                                                                          }
                                                                          apduLen -= len;
                                                                          if (apduLen < 4) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeObjectId222222222222222222(buffer, offset + len);
                                                                          len += decodedValue.len;
                                                                          objectId = {
                                                                            type: decodedValue.objectType,
                                                                            instance: decodedValue.instance
                                                                          };
                                                                          if (!decodeIsOpeningTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          const _values = [];
                                                                          while (apduLen - len > 1) {
                                                                            let newEntry = {};
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber !== 0) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeEnumerated222222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            let propertyId = decodedValue.value;
                                                                            let arrayIndex = ASN1_ARRAY_ALL222222222222222222;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber === 1) {
                                                                              decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                              len += decodedValue.len;
                                                                              arrayIndex = decodedValue.value;
                                                                              result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                              len += result.len;
                                                                            }
                                                                            newEntry.property = { id: propertyId, index: arrayIndex };
                                                                            if (result.tagNumber !== 2 || !decodeIsOpeningTag222222222222222222(buffer, offset + len - 1)) {
                                                                              return void 0;
                                                                            }
                                                                            const values = [];
                                                                            while (len + offset <= buffer.length && !decodeIsClosingTag222222222222222222(buffer, offset + len)) {
                                                                              let value = bacappDecodeApplicationData222222222222222222(
                                                                                buffer,
                                                                                offset + len,
                                                                                apduLen + offset,
                                                                                objectId.type,
                                                                                propertyId
                                                                              );
                                                                              if (!value) {
                                                                                return void 0;
                                                                              }
                                                                              len += value.len;
                                                                              delete value.len;
                                                                              values.push(value);
                                                                            }
                                                                            len++;
                                                                            newEntry.value = values;
                                                                            let priority = ASN1_NO_PRIORITY222222222222222222;
                                                                            result = decodeTagNumberAndValue222222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            if (result.tagNumber === 3) {
                                                                              decodedValue = decodeUnsigned222222222222222222(buffer, offset + len, result.value);
                                                                              len += decodedValue.len;
                                                                              priority = decodedValue.value;
                                                                            } else {
                                                                              len--;
                                                                            }
                                                                            newEntry.priority = priority;
                                                                            _values.push(newEntry);
                                                                            if (decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                              len++;
                                                                            }
                                                                          }
                                                                          if (decodeIsClosingTagNumber222222222222222222(buffer, offset + len, 1)) {
                                                                            len++;
                                                                          }
                                                                          return {
                                                                            len,
                                                                            objectId,
                                                                            values: _values
                                                                          };
                                                                        };
                                                                        var encodeObject222222222222222222 = (buffer, values) => {
                                                                          values.forEach((object) => {
                                                                            encode30222222222222222222(buffer, object.objectId, object.values);
                                                                          });
                                                                        };
                                                                        var getDecodedType222222222222222222 = (buffer, offset) => {
                                                                          return buffer[offset];
                                                                        };
                                                                        var encodeConfirmedServiceRequest222222222222222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                                                                          buffer.buffer[buffer.offset++] = type;
                                                                          buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                                                                          buffer.buffer[buffer.offset++] = invokeId;
                                                                          if ((type & 8) > 0) {
                                                                            buffer.buffer[buffer.offset++] = sequencenumber;
                                                                            buffer.buffer[buffer.offset++] = proposedWindowSize;
                                                                          }
                                                                          buffer.buffer[buffer.offset++] = service;
                                                                        };
                                                                        var decodeConfirmedServiceRequest222222222222222222 = (buffer, offset) => {
                                                                          const orgOffset = offset;
                                                                          const type = buffer[offset++];
                                                                          const maxSegments = buffer[offset] & 240;
                                                                          const maxApdu = buffer[offset++] & 15;
                                                                          const invokeId = buffer[offset++];
                                                                          let sequencenumber = 0;
                                                                          let proposedWindowNumber = 0;
                                                                          if ((type & 8) > 0) {
                                                                            sequencenumber = buffer[offset++];
                                                                            proposedWindowNumber = buffer[offset++];
                                                                          }
                                                                          const service = buffer[offset++];
                                                                          return {
                                                                            len: offset - orgOffset,
                                                                            type,
                                                                            service,
                                                                            maxSegments,
                                                                            maxApdu,
                                                                            invokeId,
                                                                            sequencenumber,
                                                                            proposedWindowNumber
                                                                          };
                                                                        };
                                                                        var encodeUnconfirmedServiceRequest222222222222222222 = (buffer, type, service) => {
                                                                          buffer.buffer[buffer.offset++] = type;
                                                                          buffer.buffer[buffer.offset++] = service;
                                                                        };
                                                                        var decodeUnconfirmedServiceRequest222222222222222222 = (buffer, offset) => {
                                                                          const orgOffset = offset;
                                                                          const type = buffer[offset++];
                                                                          const service = buffer[offset++];
                                                                          return {
                                                                            len: offset - orgOffset,
                                                                            type,
                                                                            service
                                                                          };
                                                                        };
                                                                        var encodeSimpleAck222222222222222222 = (buffer, type, service, invokeId) => {
                                                                          buffer.buffer[buffer.offset++] = type;
                                                                          buffer.buffer[buffer.offset++] = invokeId;
                                                                          buffer.buffer[buffer.offset++] = service;
                                                                        };
                                                                        var decodeSimpleAck222222222222222222 = (buffer, offset) => {
                                                                          const orgOffset = offset;
                                                                          const type = buffer[offset++];
                                                                          const invokeId = buffer[offset++];
                                                                          const service = buffer[offset++];
                                                                          return {
                                                                            len: offset - orgOffset,
                                                                            type,
                                                                            service,
                                                                            invokeId
                                                                          };
                                                                        };
                                                                        var encodeComplexAck222222222222222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                                                                          let len = 3;
                                                                          buffer.buffer[buffer.offset++] = type;
                                                                          buffer.buffer[buffer.offset++] = invokeId;
                                                                          if ((type & 8) > 0) {
                                                                            buffer.buffer[buffer.offset++] = sequencenumber;
                                                                            buffer.buffer[buffer.offset++] = proposedWindowNumber;
                                                                            len += 2;
                                                                          }
                                                                          buffer.buffer[buffer.offset++] = service;
                                                                          return len;
                                                                        };
                                                                        var decodeComplexAck222222222222222222 = (buffer, offset) => {
                                                                          const orgOffset = offset;
                                                                          const type = buffer[offset++];
                                                                          const invokeId = buffer[offset++];
                                                                          let sequencenumber = 0;
                                                                          let proposedWindowNumber = 0;
                                                                          if ((type & 8) > 0) {
                                                                            sequencenumber = buffer[offset++];
                                                                            proposedWindowNumber = buffer[offset++];
                                                                          }
                                                                          const service = buffer[offset++];
                                                                          return {
                                                                            len: offset - orgOffset,
                                                                            type,
                                                                            service,
                                                                            invokeId,
                                                                            sequencenumber,
                                                                            proposedWindowNumber
                                                                          };
                                                                        };
                                                                        var encodeSegmentAck222222222222222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                                                                          buffer.buffer[buffer.offset++] = type;
                                                                          buffer.buffer[buffer.offset++] = originalInvokeId;
                                                                          buffer.buffer[buffer.offset++] = sequencenumber;
                                                                          buffer.buffer[buffer.offset++] = actualWindowSize;
                                                                        };
                                                                        var decodeSegmentAck222222222222222222 = (buffer, offset) => {
                                                                          const orgOffset = offset;
                                                                          const type = buffer[offset++];
                                                                          const originalInvokeId = buffer[offset++];
                                                                          const sequencenumber = buffer[offset++];
                                                                          const actualWindowSize = buffer[offset++];
                                                                          return {
                                                                            len: offset - orgOffset,
                                                                            type,
                                                                            originalInvokeId,
                                                                            sequencenumber,
                                                                            actualWindowSize
                                                                          };
                                                                        };
                                                                        var encodeResult222222222222222222 = (buffer, resultCode) => {
                                                                          encodeUnsigned222222222222222222(buffer, resultCode, 2);
                                                                        };
                                                                        var encodeError222222222222222222 = (buffer, type, service, invokeId) => {
                                                                          buffer.buffer[buffer.offset++] = type;
                                                                          buffer.buffer[buffer.offset++] = invokeId;
                                                                          buffer.buffer[buffer.offset++] = service;
                                                                        };
                                                                        var decodeError222222222222222222 = (buffer, offset) => {
                                                                          const orgOffset = offset;
                                                                          const type = buffer[offset++];
                                                                          const invokeId = buffer[offset++];
                                                                          const service = buffer[offset++];
                                                                          return {
                                                                            len: offset - orgOffset,
                                                                            type,
                                                                            service,
                                                                            invokeId
                                                                          };
                                                                        };
                                                                        var decodeAbort222222222222222222 = (buffer, offset) => {
                                                                          const orgOffset = offset;
                                                                          const type = buffer[offset++];
                                                                          const invokeId = buffer[offset++];
                                                                          const reason = buffer[offset++];
                                                                          return {
                                                                            len: offset - orgOffset,
                                                                            type,
                                                                            invokeId,
                                                                            reason
                                                                          };
                                                                        };
                                                                        var DEFAULT_HOP_COUNT322222222222222222 = 255;
                                                                        var BACNET_PROTOCOL_VERSION222222222222222222 = 1;
                                                                        var BACNET_ADDRESS_TYPES222222222222222222 = {
                                                                          NONE: 0,
                                                                          IP: 1
                                                                        };
                                                                        var decodeTarget222222222222222222 = (buffer, offset) => {
                                                                          let len = 0;
                                                                          const target = {
                                                                            type: BACNET_ADDRESS_TYPES222222222222222222.NONE,
                                                                            net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                                                                          };
                                                                          const adrLen = buffer[offset + len++];
                                                                          if (adrLen > 0) {
                                                                            target.adr = [];
                                                                            for (let i = 0; i < adrLen; i++) {
                                                                              target.adr.push(buffer[offset + len++]);
                                                                            }
                                                                          }
                                                                          return {
                                                                            target,
                                                                            len
                                                                          };
                                                                        };
                                                                        var encodeTarget222222222222222222 = (buffer, target) => {
                                                                          buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                                                                          buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                                                                          if (target.net === 65535 || !target.adr) {
                                                                            buffer.buffer[buffer.offset++] = 0;
                                                                          } else {
                                                                            buffer.buffer[buffer.offset++] = target.adr.length;
                                                                            if (target.adr.length > 0) {
                                                                              for (let i = 0; i < target.adr.length; i++) {
                                                                                buffer.buffer[buffer.offset++] = target.adr[i];
                                                                              }
                                                                            }
                                                                          }
                                                                        };
                                                                        var decode31222222222222222222 = (buffer, offset) => {
                                                                          let adrLen;
                                                                          const orgOffset = offset;
                                                                          offset++;
                                                                          const funct = buffer[offset++];
                                                                          let destination;
                                                                          if (funct & 32) {
                                                                            const tmpDestination = decodeTarget222222222222222222(buffer, offset);
                                                                            offset += tmpDestination.len;
                                                                            destination = tmpDestination.target;
                                                                          }
                                                                          let source;
                                                                          if (funct & 8) {
                                                                            const tmpSource = decodeTarget222222222222222222(buffer, offset);
                                                                            offset += tmpSource.len;
                                                                            source = tmpSource.target;
                                                                          }
                                                                          let hopCount = 0;
                                                                          if (funct & 32) {
                                                                            hopCount = buffer[offset++];
                                                                          }
                                                                          let networkMsgType = 0;
                                                                          let vendorId = 0;
                                                                          if (funct & 128) {
                                                                            networkMsgType = buffer[offset++];
                                                                            if (networkMsgType >= 128) {
                                                                              vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                                                                            } else if (networkMsgType === 0) {
                                                                              offset += 2;
                                                                            }
                                                                          }
                                                                          if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION222222222222222222) {
                                                                            return void 0;
                                                                          }
                                                                          return {
                                                                            len: offset - orgOffset,
                                                                            funct,
                                                                            destination,
                                                                            source,
                                                                            hopCount,
                                                                            networkMsgType,
                                                                            vendorId
                                                                          };
                                                                        };
                                                                        var encode31222222222222222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                                                                          const hasDestination = destination && destination.net > 0;
                                                                          const hasSource = source && source.net > 0 && source.net !== 65535;
                                                                          buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION222222222222222222;
                                                                          buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                                                                          if (hasDestination) {
                                                                            encodeTarget222222222222222222(buffer, destination);
                                                                          }
                                                                          if (hasSource) {
                                                                            encodeTarget222222222222222222(buffer, source);
                                                                          }
                                                                          if (hasDestination) {
                                                                            buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT322222222222222222;
                                                                          }
                                                                          if ((funct & 128) > 0) {
                                                                            buffer.buffer[buffer.offset++] = networkMsgType;
                                                                            if (networkMsgType >= 128) {
                                                                              buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                                                                              buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                                                                            }
                                                                          }
                                                                        };
                                                                        var DEFAULT_BACNET_PORT2222222222222222222 = 47808;
                                                                        var encode32222222222222222222 = (buffer, func, msgLength, originatingIP) => {
                                                                          buffer[0] = BVLL_TYPE_BACNET_IP222222222222222222;
                                                                          buffer[1] = func;
                                                                          buffer[2] = (msgLength & 65280) >> 8;
                                                                          buffer[3] = (msgLength & 255) >> 0;
                                                                          if (originatingIP) {
                                                                            if (func !== 4) {
                                                                              throw new Error(
                                                                                "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                                                                              );
                                                                            }
                                                                            const [ipstr, portstr] = originatingIP.split(":");
                                                                            const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT2222222222222222222;
                                                                            const ip = ipstr.split(".");
                                                                            buffer[4] = parseInt(ip[0], 10);
                                                                            buffer[5] = parseInt(ip[1], 10);
                                                                            buffer[6] = parseInt(ip[2], 10);
                                                                            buffer[7] = parseInt(ip[3], 10);
                                                                            buffer[8] = (port & 65280) >> 8;
                                                                            buffer[9] = (port & 255) >> 0;
                                                                            return 6 + BVLC_HEADER_LENGTH322222222222222222;
                                                                          } else {
                                                                            if (func === 4) {
                                                                              throw new Error(
                                                                                "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                                                                              );
                                                                            }
                                                                          }
                                                                          return BVLC_HEADER_LENGTH322222222222222222;
                                                                        };
                                                                        var decode32222222222222222222 = (buffer, _offset) => {
                                                                          let len;
                                                                          const func = buffer[1];
                                                                          const msgLength = buffer[2] << 8 | buffer[3] << 0;
                                                                          if (buffer[0] !== BVLL_TYPE_BACNET_IP222222222222222222 || buffer.length !== msgLength) {
                                                                            return void 0;
                                                                          }
                                                                          let originatingIP = null;
                                                                          switch (func) {
                                                                            case 0:
                                                                            case 10:
                                                                            case 11:
                                                                            case 9:
                                                                            case 5:
                                                                            case 6:
                                                                            case 8:
                                                                            case 2:
                                                                            case 1:
                                                                            case 3:
                                                                            case 7:
                                                                              len = 4;
                                                                              break;
                                                                            case 4:
                                                                              const port = buffer[8] << 8 | buffer[9];
                                                                              originatingIP = buffer.slice(4, 8).join(".");
                                                                              if (port !== DEFAULT_BACNET_PORT2222222222222222222) {
                                                                                originatingIP += ":" + port;
                                                                              }
                                                                              len = 10;
                                                                              break;
                                                                            case 12:
                                                                              return void 0;
                                                                            default:
                                                                              return void 0;
                                                                          }
                                                                          return {
                                                                            len,
                                                                            func,
                                                                            msgLength,
                                                                            // Originating IP is set to the IP address of the node that originally
                                                                            // sent the packet, when it has been forwarded to us by a BBMD (since the
                                                                            // BBMD's IP address will be in the sender field.
                                                                            originatingIP
                                                                          };
                                                                        };
                                                                        var EventEmitter2222222222222222222 = import_events2222222222222222222.default.EventEmitter;
                                                                        var debug3222222222222222222 = (0, import_debug3222222222222222222.default)("bacnet:client:debug");
                                                                        var trace2222222222222222222 = (0, import_debug3222222222222222222.default)("bacnet:client:trace");
                                                                        var ALL_INTERFACES222222222222222222 = "0.0.0.0";
                                                                        var LOCALHOST_INTERFACES_IPV4222222222222222222 = "127.0.0.1";
                                                                        var BROADCAST_ADDRESS222222222222222222 = "255.255.255.255";
                                                                        var DEFAULT_HOP_COUNT2222222222222222222 = 255;
                                                                        var BVLC_HEADER_LENGTH2222222222222222222 = 4;
                                                                        var BVLC_FWD_HEADER_LENGTH222222222222222222 = 10;
                                                                        var beU222222222222222222 = UnconfirmedServiceChoice222222222222222222;
                                                                        var unconfirmedServiceMap222222222222222222 = {
                                                                          [beU222222222222222222.I_AM]: "iAm",
                                                                          [beU222222222222222222.WHO_IS]: "whoIs",
                                                                          [beU222222222222222222.WHO_HAS]: "whoHas",
                                                                          [beU222222222222222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                                                                          [beU222222222222222222.TIME_SYNCHRONIZATION]: "timeSync",
                                                                          [beU222222222222222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                                                                          [beU222222222222222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                                          [beU222222222222222222.I_HAVE]: "iHave",
                                                                          [beU222222222222222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                                        };
                                                                        var beC222222222222222222 = ConfirmedServiceChoice222222222222222222;
                                                                        var confirmedServiceMap222222222222222222 = {
                                                                          [beC222222222222222222.READ_PROPERTY]: "readProperty",
                                                                          [beC222222222222222222.WRITE_PROPERTY]: "writeProperty",
                                                                          [beC222222222222222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                                                                          [beC222222222222222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                                                                          [beC222222222222222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                                                                          [beC222222222222222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                                                                          [beC222222222222222222.ATOMIC_READ_FILE]: "atomicReadFile",
                                                                          [beC222222222222222222.SUBSCRIBE_COV]: "subscribeCov",
                                                                          [beC222222222222222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                                                                          [beC222222222222222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                                                                          [beC222222222222222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                                                                          [beC222222222222222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                                          [beC222222222222222222.READ_RANGE]: "readRange",
                                                                          [beC222222222222222222.CREATE_OBJECT]: "createObject",
                                                                          [beC222222222222222222.DELETE_OBJECT]: "deleteObject",
                                                                          [beC222222222222222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                                                                          [beC222222222222222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                                                                          [beC222222222222222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                                                                          [beC222222222222222222.GET_EVENT_INFORMATION]: "getEventInformation",
                                                                          [beC222222222222222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                                                                          [beC222222222222222222.ADD_LIST_ELEMENT]: "addListElement",
                                                                          [beC222222222222222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                                                                          [beC222222222222222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                                        };
                                                                        var errorReasonEnums222222222222222222 = {
                                                                          BacnetAbort: RejectReason222222222222222222
                                                                        };
                                                                        var BacnetError222222222222222222 = class extends Error {
                                                                          constructor(message, bacnetErrorClass, bacnetErrorCode) {
                                                                            super(message);
                                                                            this.bacnetErrorClass = bacnetErrorClass;
                                                                            this.bacnetErrorCode = bacnetErrorCode;
                                                                          }
                                                                        };
                                                                        function bacnetErrorToString222222222222222222(err) {
                                                                          var _a;
                                                                          const isError = err instanceof Error || err instanceof BacnetError222222222222222222;
                                                                          if (!isError)
                                                                            return;
                                                                          const message = err.message;
                                                                          const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                                                                          const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                                                                          if (!errorReasonEnums222222222222222222[reasonClass])
                                                                            return;
                                                                          const reasonString = errorReasonEnums222222222222222222[reasonClass][reason];
                                                                          return reasonClass + ": " + reasonString;
                                                                        }
                                                                        var Client222222222222222222 = class extends EventEmitter2222222222222222222 {
                                                                          /**
                                                                           *
                                                                           * @param options
                                                                           */
                                                                          constructor(options) {
                                                                            super();
                                                                            options = options || {};
                                                                            this._invokeCounter = 1;
                                                                            this._invokeStore = {};
                                                                            this._lastSequenceNumber = 0;
                                                                            this._segmentStore = [];
                                                                            this._settings = {
                                                                              port: options.port || 47808,
                                                                              interface: options.interface || ALL_INTERFACES222222222222222222,
                                                                              transport: options.transport,
                                                                              broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS222222222222222222,
                                                                              apduTimeout: options.apduTimeout || 3e3
                                                                            };
                                                                            options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                                                                            this._transport = this._settings.transport || new Transport222222222222222222({
                                                                              port: this._settings.port,
                                                                              interface: this._settings.interface,
                                                                              broadcastAddress: this._settings.broadcastAddress,
                                                                              reuseAddr: options.reuseAddr
                                                                            });
                                                                            this._transport.on("message", this._receiveData.bind(this));
                                                                            this._transport.on("error", this._receiveError.bind(this));
                                                                            this._transport.on("listening", () => this.emit("listening"));
                                                                            this._transport.open();
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @returns {number}
                                                                           * @private
                                                                           */
                                                                          _getInvokeId() {
                                                                            const id = this._invokeCounter++;
                                                                            if (id >= 256)
                                                                              this._invokeCounter = 1;
                                                                            return id - 1;
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param id
                                                                           * @param err
                                                                           * @param result
                                                                           * @returns {*}
                                                                           * @private
                                                                           */
                                                                          _invokeCallback(id, err, result) {
                                                                            const callback = this._invokeStore[id];
                                                                            if (callback) {
                                                                              return void callback(err, result);
                                                                            }
                                                                            debug3222222222222222222("InvokeId", id, "not found -> drop package");
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param id
                                                                           * @param callback
                                                                           * @private
                                                                           */
                                                                          _addCallback(id, callback) {
                                                                            const timeout = setTimeout(() => {
                                                                              delete this._invokeStore[id];
                                                                              callback(new Error("ERR_TIMEOUT"));
                                                                            }, this._settings.apduTimeout);
                                                                            this._invokeStore[id] = (err, data) => {
                                                                              clearTimeout(timeout);
                                                                              delete this._invokeStore[id];
                                                                              callback(err, data);
                                                                            };
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param isForwarded
                                                                           * @returns {{offset: (number), buffer: *}}
                                                                           * @private
                                                                           */
                                                                          _getBuffer(isForwarded) {
                                                                            return Object.assign(
                                                                              {},
                                                                              {
                                                                                buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                                                                offset: isForwarded ? BVLC_FWD_HEADER_LENGTH222222222222222222 : BVLC_HEADER_LENGTH2222222222222222222
                                                                              }
                                                                            );
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param invokeId
                                                                           * @param buffer
                                                                           * @param offset
                                                                           * @param length
                                                                           * @returns {*}
                                                                           * @private
                                                                           */
                                                                          _processError(invokeId, buffer, offset, length) {
                                                                            const result = error_exports222222222222222222.decode(buffer, offset);
                                                                            trace2222222222222222222("Received error:", result);
                                                                            if (!result) {
                                                                              return debug3222222222222222222("Couldn`t decode Error");
                                                                            }
                                                                            const err = new BacnetError222222222222222222(error_exports222222222222222222.buildMessage(result));
                                                                            err.bacnetErrorClass = result.class;
                                                                            err.bacnetErrorCode = result.code;
                                                                            this._invokeCallback(invokeId, err);
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param invokeId
                                                                           * @param reason
                                                                           * @private
                                                                           */
                                                                          _processAbort(invokeId, reason) {
                                                                            const err = new BacnetError222222222222222222("BacnetAbort - Reason:" + reason);
                                                                            err.bacnetAbortReason = reason;
                                                                            err.bacnetErrorClass = AbortReason222222222222222222;
                                                                            this._invokeCallback(invokeId, err);
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param negative
                                                                           * @param server
                                                                           * @param originalInvokeId
                                                                           * @param sequencenumber
                                                                           * @param actualWindowSize
                                                                           * @private
                                                                           */
                                                                          _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                                                                            const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              receiver,
                                                                              null,
                                                                              DEFAULT_HOP_COUNT2222222222222222222,
                                                                              0,
                                                                              0
                                                                            );
                                                                            encodeSegmentAck222222222222222222(
                                                                              buffer,
                                                                              64 | (negative ? 2 : 0) | (server ? 1 : 0),
                                                                              originalInvokeId,
                                                                              sequencenumber,
                                                                              actualWindowSize
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param msg
                                                                           * @param first
                                                                           * @param moreFollows
                                                                           * @param buffer
                                                                           * @param offset
                                                                           * @param length
                                                                           * @private
                                                                           */
                                                                          _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                                                                            if (first) {
                                                                              this._segmentStore = [];
                                                                              msg.type &= ~8;
                                                                              let apduHeaderLen = 3;
                                                                              if ((msg.type & PDU_TYPE_MASK222222222222222222) === 0) {
                                                                                apduHeaderLen = 4;
                                                                              }
                                                                              const apdubuffer = this._getBuffer();
                                                                              apdubuffer.offset = 0;
                                                                              buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                                                                              if ((msg.type & PDU_TYPE_MASK222222222222222222) === 0) {
                                                                                encodeConfirmedServiceRequest222222222222222222(
                                                                                  apdubuffer,
                                                                                  msg.type,
                                                                                  msg.service,
                                                                                  msg.maxSegments,
                                                                                  msg.maxApdu,
                                                                                  msg.invokeId,
                                                                                  0,
                                                                                  0
                                                                                );
                                                                              } else {
                                                                                encodeComplexAck222222222222222222(
                                                                                  apdubuffer,
                                                                                  msg.type,
                                                                                  msg.service,
                                                                                  msg.invokeId,
                                                                                  0,
                                                                                  0
                                                                                );
                                                                              }
                                                                              this._segmentStore.push(
                                                                                //@ts-ignore
                                                                                apdubuffer.buffer.slice(0, length + apduHeaderLen)
                                                                              );
                                                                            } else {
                                                                              this._segmentStore.push(buffer.slice(offset, offset + length));
                                                                            }
                                                                            if (!moreFollows) {
                                                                              const apduBuffer = Buffer.concat(this._segmentStore);
                                                                              this._segmentStore = [];
                                                                              msg.type &= ~8;
                                                                              this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                                                                            }
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param msg
                                                                           * @param server
                                                                           * @param buffer
                                                                           * @param offset
                                                                           * @param length
                                                                           * @private
                                                                           */
                                                                          _processSegment(msg, server, buffer, offset, length) {
                                                                            let first = false;
                                                                            if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                                                                              first = true;
                                                                            } else {
                                                                              if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                                                                return this._segmentAckResponse(
                                                                                  msg.header.address,
                                                                                  true,
                                                                                  server,
                                                                                  msg.invokeId,
                                                                                  this._lastSequenceNumber,
                                                                                  msg.proposedWindowNumber
                                                                                );
                                                                              }
                                                                            }
                                                                            this._lastSequenceNumber = msg.sequencenumber;
                                                                            const moreFollows = msg.type & 4;
                                                                            if (!moreFollows) {
                                                                              this._lastSequenceNumber = 0;
                                                                            }
                                                                            if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                                                                              this._segmentAckResponse(
                                                                                msg.header.address,
                                                                                false,
                                                                                server,
                                                                                msg.invokeId,
                                                                                msg.sequencenumber,
                                                                                msg.proposedWindowNumber
                                                                              );
                                                                            }
                                                                            this._performDefaultSegmentHandling(
                                                                              msg,
                                                                              first,
                                                                              moreFollows,
                                                                              buffer,
                                                                              offset,
                                                                              length
                                                                            );
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param serviceMap
                                                                           * @param content
                                                                           * @param buffer
                                                                           * @param offset
                                                                           * @param length
                                                                           * @returns {*}
                                                                           * @private
                                                                           */
                                                                          _processServiceRequest(serviceMap, content, buffer, offset, length) {
                                                                            let result;
                                                                            const sender = content.header.sender;
                                                                            if (sender.address === LOCALHOST_INTERFACES_IPV4222222222222222222) {
                                                                              debug3222222222222222222("Received and skipped localhost service request:", content.service);
                                                                              return;
                                                                            }
                                                                            const name = serviceMap[content.service];
                                                                            if (!name) {
                                                                              debug3222222222222222222("Received unsupported service request:", content.service);
                                                                              return;
                                                                            }
                                                                            const id = content.invokeId ? "@" + content.invokeId : "";
                                                                            trace2222222222222222222(`Received service request${id}:`, name);
                                                                            const serviceHandler = services_exports222222222222222222[name];
                                                                            if (serviceHandler) {
                                                                              try {
                                                                                content.payload = serviceHandler.decode(buffer, offset, length);
                                                                                trace2222222222222222222(`Handled service request${id}:`, name, JSON.stringify(content));
                                                                              } catch (e) {
                                                                                debug3222222222222222222("Exception thrown when processing message:", e);
                                                                                debug3222222222222222222("Original message was", name + ":", content);
                                                                                return;
                                                                              }
                                                                              if (!content.payload) {
                                                                                return debug3222222222222222222("Received invalid", name, "message");
                                                                              }
                                                                            } else {
                                                                              debug3222222222222222222("No serviceHandler defined for:", name);
                                                                            }
                                                                            if (this.listenerCount(name)) {
                                                                              trace2222222222222222222("listener count by name emits " + name + " with content");
                                                                              this.emit(name, content);
                                                                            } else {
                                                                              if (this.listenerCount("unhandledEvent")) {
                                                                                trace2222222222222222222("unhandled event emiting with content");
                                                                                this.emit("unhandledEvent", content);
                                                                              } else {
                                                                                trace2222222222222222222(
                                                                                  "no unhandled event handler with header: " + JSON.stringify(content.header)
                                                                                );
                                                                                if (content.header.expectingReply) {
                                                                                  debug3222222222222222222("Replying with error for unhandled service:", name);
                                                                                  content.header.sender.forwardedFrom = null;
                                                                                  this.errorResponse(
                                                                                    content.header.sender,
                                                                                    content.service,
                                                                                    content.invokeId,
                                                                                    5,
                                                                                    67
                                                                                    /* REJECT_UNRECOGNIZED_SERVICE */
                                                                                  );
                                                                                }
                                                                              }
                                                                            }
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param buffer
                                                                           * @param offset
                                                                           * @param length
                                                                           * @param header
                                                                           * @private
                                                                           */
                                                                          _handlePdu(buffer, offset, length, header) {
                                                                            let msg;
                                                                            trace2222222222222222222("handlePdu Header: ", header);
                                                                            switch (header.apduType & PDU_TYPE_MASK222222222222222222) {
                                                                              case 16:
                                                                                msg = decodeUnconfirmedServiceRequest222222222222222222(buffer, offset);
                                                                                msg.header = header;
                                                                                msg.header.confirmedService = false;
                                                                                this._processServiceRequest(
                                                                                  unconfirmedServiceMap222222222222222222,
                                                                                  msg,
                                                                                  buffer,
                                                                                  offset + msg.len,
                                                                                  length - msg.len
                                                                                );
                                                                                break;
                                                                              case 32:
                                                                                msg = decodeSimpleAck222222222222222222(buffer, offset);
                                                                                offset += msg.len;
                                                                                length -= msg.len;
                                                                                this._invokeCallback(msg.invokeId, null, {
                                                                                  msg,
                                                                                  buffer,
                                                                                  offset: offset + msg.len,
                                                                                  length: length - msg.len
                                                                                });
                                                                                break;
                                                                              case 48:
                                                                                msg = decodeComplexAck222222222222222222(buffer, offset);
                                                                                msg.header = header;
                                                                                if ((header.apduType & 8) === 0) {
                                                                                  this._invokeCallback(msg.invokeId, null, {
                                                                                    msg,
                                                                                    buffer,
                                                                                    offset: offset + msg.len,
                                                                                    length: length - msg.len
                                                                                  });
                                                                                } else {
                                                                                  this._processSegment(
                                                                                    msg,
                                                                                    true,
                                                                                    buffer,
                                                                                    offset + msg.len,
                                                                                    length - msg.len
                                                                                  );
                                                                                }
                                                                                break;
                                                                              case 64:
                                                                                msg = decodeSegmentAck222222222222222222(buffer, offset);
                                                                                msg.header = header;
                                                                                this._processSegment(
                                                                                  msg,
                                                                                  true,
                                                                                  buffer,
                                                                                  offset + msg.len,
                                                                                  length - msg.len
                                                                                );
                                                                                break;
                                                                              case 80:
                                                                                msg = decodeError222222222222222222(buffer, offset);
                                                                                this._processError(
                                                                                  msg.invokeId,
                                                                                  buffer,
                                                                                  offset + msg.len,
                                                                                  length - msg.len
                                                                                );
                                                                                break;
                                                                              case 96:
                                                                              case 112:
                                                                                msg = decodeAbort222222222222222222(buffer, offset);
                                                                                this._processAbort(msg.invokeId, msg.reason);
                                                                                break;
                                                                              case 0:
                                                                                msg = decodeConfirmedServiceRequest222222222222222222(buffer, offset);
                                                                                msg.header = header;
                                                                                msg.header.confirmedService = true;
                                                                                if ((header.apduType & 8) === 0) {
                                                                                  this._processServiceRequest(
                                                                                    confirmedServiceMap222222222222222222,
                                                                                    msg,
                                                                                    buffer,
                                                                                    offset + msg.len,
                                                                                    length - msg.len
                                                                                  );
                                                                                } else {
                                                                                  this._processSegment(
                                                                                    msg,
                                                                                    true,
                                                                                    buffer,
                                                                                    offset + msg.len,
                                                                                    length - msg.len
                                                                                  );
                                                                                }
                                                                                break;
                                                                              default:
                                                                                debug3222222222222222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                                                                break;
                                                                            }
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param buffer
                                                                           * @param offset
                                                                           * @param msgLength
                                                                           * @param header
                                                                           * @returns {*}
                                                                           * @private
                                                                           */
                                                                          _handleNpdu(buffer, offset, msgLength, header) {
                                                                            if (msgLength <= 0) {
                                                                              return trace2222222222222222222("No NPDU data -> Drop package");
                                                                            }
                                                                            const result = decode31222222222222222222(buffer, offset);
                                                                            if (!result) {
                                                                              return trace2222222222222222222("Received invalid NPDU header -> Drop package");
                                                                            }
                                                                            if (result.funct & 128) {
                                                                              return trace2222222222222222222("Received network layer message -> Drop package");
                                                                            }
                                                                            offset += result.len;
                                                                            msgLength -= result.len;
                                                                            if (msgLength <= 0) {
                                                                              return trace2222222222222222222("No APDU data -> Drop package");
                                                                            }
                                                                            header.apduType = getDecodedType222222222222222222(buffer, offset);
                                                                            header.expectingReply = !!(result.funct & 4);
                                                                            this._handlePdu(buffer, offset, msgLength, header);
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param buffer
                                                                           * @param remoteAddress
                                                                           * @returns {*}
                                                                           * @private
                                                                           */
                                                                          _receiveData(buffer, remoteAddress) {
                                                                            if (buffer.length < BVLC_HEADER_LENGTH322222222222222222) {
                                                                              return trace2222222222222222222("Received invalid data -> Drop package");
                                                                            }
                                                                            const result = decode32222222222222222222(buffer, 0);
                                                                            if (!result) {
                                                                              return trace2222222222222222222("Received invalid BVLC header -> Drop package");
                                                                            }
                                                                            let header = {
                                                                              // Which function the packet came in on, so later code can distinguish
                                                                              // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                                                                              func: result.func,
                                                                              sender: {
                                                                                // Address of the host we are directly connected to. String, IP:port.
                                                                                address: remoteAddress,
                                                                                // If the host is a BBMD passing messages along to another node, this
                                                                                // is the address of the distant BACnet node.  String, IP:port.
                                                                                // Typically we won't have network connectivity to this address, but
                                                                                // we have to include it in replies so the host we are connect to knows
                                                                                // where to forward the messages.
                                                                                forwardedFrom: null
                                                                              }
                                                                            };
                                                                            switch (result.func) {
                                                                              case 10:
                                                                              case 11:
                                                                                this._handleNpdu(
                                                                                  buffer,
                                                                                  result.len,
                                                                                  buffer.length - result.len,
                                                                                  header
                                                                                );
                                                                                break;
                                                                              case 4:
                                                                                header.sender.forwardedFrom = result.originatingIP;
                                                                                this._handleNpdu(
                                                                                  buffer,
                                                                                  result.len,
                                                                                  buffer.length - result.len,
                                                                                  header
                                                                                );
                                                                                break;
                                                                              case 5:
                                                                                let decodeResult = register_foreign_device_exports222222222222222222.decode(
                                                                                  buffer,
                                                                                  result.len,
                                                                                  buffer.length - result.len
                                                                                );
                                                                                if (!decodeResult) {
                                                                                  return trace2222222222222222222("Received invalid registerForeignDevice message");
                                                                                }
                                                                                this.emit("registerForeignDevice", {
                                                                                  header,
                                                                                  payload: decodeResult
                                                                                });
                                                                                break;
                                                                              case 9:
                                                                                this._handleNpdu(
                                                                                  buffer,
                                                                                  result.len,
                                                                                  buffer.length - result.len,
                                                                                  header
                                                                                );
                                                                                break;
                                                                              default:
                                                                                debug3222222222222222222(
                                                                                  "Received unknown BVLC function " + result.func + " -> Drop package"
                                                                                );
                                                                                break;
                                                                            }
                                                                          }
                                                                          /**
                                                                           * @event bacnet.error
                                                                           * @param {error} err - The error object thrown by the underlying transport layer.
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * client.on('error', (err) => {
                                                                           *   console.log('Error occurred: ', err);
                                                                           *   client.close();
                                                                           * });
                                                                           */
                                                                          _receiveError(err) {
                                                                            this.emit("error", err);
                                                                          }
                                                                          /**
                                                                           * The whoIs command discovers all BACNET devices in a network.
                                                                           * @function bacnet.whoIs
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {object=} options
                                                                           * @param {number=} options.lowLimit - Minimal device instance number to search for.
                                                                           * @param {number=} options.highLimit - Maximal device instance number to search for.
                                                                           * @fires bacnet.iAm
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * client.whoIs();
                                                                           */
                                                                          whoIs(receiver, options) {
                                                                            if (!options) {
                                                                              if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                                                                options = receiver;
                                                                                receiver = void 0;
                                                                              }
                                                                            }
                                                                            options = options || {};
                                                                            const settings = {
                                                                              lowLimit: options.lowLimit,
                                                                              highLimit: options.highLimit
                                                                            };
                                                                            const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              //@ts-ignore
                                                                              receiver,
                                                                              null,
                                                                              DEFAULT_HOP_COUNT2222222222222222222,
                                                                              0,
                                                                              0
                                                                            );
                                                                            encodeUnconfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              16,
                                                                              8
                                                                              /* WHO_IS */
                                                                            );
                                                                            who_is_exports222222222222222222.encode(buffer, settings.lowLimit, settings.highLimit);
                                                                            this.sendBvlc(receiver, buffer);
                                                                          }
                                                                          /**
                                                                           * The timeSync command sets the time of a target device.
                                                                           * @function bacnet.timeSync
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {date} dateTime - The date and time to set on the target device.
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * client.timeSync('192.168.1.43', new Date());
                                                                           */
                                                                          timeSync(receiver, dateTime) {
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(buffer, 0, receiver);
                                                                            encodeUnconfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              16,
                                                                              6
                                                                              /* TIME_SYNCHRONIZATION */
                                                                            );
                                                                            time_sync_exports222222222222222222.encode(buffer, dateTime);
                                                                            this.sendBvlc(receiver, buffer);
                                                                          }
                                                                          /**
                                                                           * The timeSyncUTC command sets the UTC time of a target device.
                                                                           * @function bacnet.timeSyncUTC
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {date} dateTime - The date and time to set on the target device.
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * client.timeSyncUTC('192.168.1.43', new Date());
                                                                           */
                                                                          timeSyncUTC(receiver, dateTime) {
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(buffer, 0, receiver);
                                                                            encodeUnconfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              16,
                                                                              9
                                                                              /* UTC_TIME_SYNCHRONIZATION */
                                                                            );
                                                                            time_sync_exports222222222222222222.encode(buffer, dateTime);
                                                                            this.sendBvlc(receiver, buffer);
                                                                          }
                                                                          /**
                                                                           * The readProperty command reads a single property of an object from a device.
                                                                           * @function bacnet.readProperty
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {object} objectId - The BACNET object ID to read.
                                                                           * @param {number} objectId.type - The BACNET object type to read.
                                                                           * @param {number} objectId.instance - The BACNET object instance to read.
                                                                           * @param {number} propertyId - The BACNET property id in the specified object to read.
                                                                           * @param {object=} options
                                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                           * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                                                                           *   console.log('value: ', value);
                                                                           * });
                                                                           */
                                                                          readProperty(receiver, objectId, propertyId, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId(),
                                                                              arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL222222222222222222
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              //@ts-ignore
                                                                              receiver,
                                                                              null,
                                                                              DEFAULT_HOP_COUNT2222222222222222222,
                                                                              0,
                                                                              0
                                                                            );
                                                                            const type = 0 | //@ts-ignore
                                                                            (settings.maxSegments !== 0 ? 2 : 0);
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              type,
                                                                              12,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            read_property_exports222222222222222222.encode(
                                                                              buffer,
                                                                              objectId.type,
                                                                              objectId.instance,
                                                                              propertyId,
                                                                              settings.arrayIndex
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              const result = read_property_exports222222222222222222.decodeAcknowledge(
                                                                                data.buffer,
                                                                                data.offset,
                                                                                data.length
                                                                              );
                                                                              if (!result) {
                                                                                return void next(new Error("INVALID_DECODING"));
                                                                              }
                                                                              next(null, result);
                                                                            });
                                                                          }
                                                                          /**
                                                                           * The writeProperty command writes a single property of an object to a device.
                                                                           * @function bacnet.writeProperty
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {object} objectId - The BACNET object ID to write.
                                                                           * @param {number} objectId.type - The BACNET object type to write.
                                                                           * @param {number} objectId.instance - The BACNET object instance to write.
                                                                           * @param {number} propertyId - The BACNET property id in the specified object to write.
                                                                           * @param {object[]} values - A list of values to be written to the specified property.
                                                                           * @param {ApplicationTag} values.type - The data-type of the value to be written.
                                                                           * @param {number} values.value - The actual value to be written.
                                                                           * @param {object=} options
                                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                           * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                                           * @param {number=} options.priority - The priority of the value to be written.
                                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                                                                           *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                                                                           * ], (err, value) => {
                                                                           *   console.log('value: ', value);
                                                                           * });
                                                                           */
                                                                          writeProperty(receiver, objectId, propertyId, values, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId(),
                                                                              arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL222222222222222222,
                                                                              priority: options.priority || ASN1_NO_PRIORITY222222222222222222
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              //@ts-ignore Todo somehow types do not match at all
                                                                              receiver,
                                                                              null,
                                                                              DEFAULT_HOP_COUNT2222222222222222222,
                                                                              0,
                                                                              0
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              15,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            write_property_exports222222222222222222.encode(
                                                                              buffer,
                                                                              objectId.type,
                                                                              objectId.instance,
                                                                              propertyId,
                                                                              settings.arrayIndex,
                                                                              settings.priority,
                                                                              values
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              next(err);
                                                                            });
                                                                          }
                                                                          /**
                                                                           * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                                                                           * @function bacnet.readPropertyMultiple
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {object[]} propertiesArray - List of object and property specifications to be read.
                                                                           * @param {object} propertiesArray.objectId - Specifies which object to read.
                                                                           * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                                                                           * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                                                                           * @param {object[]} propertiesArray.properties - List of properties to be read.
                                                                           * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                                                                           * @param {object=} options
                                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * const requestArray = [
                                                                           *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                                                                           * ];
                                                                           * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                                                                           *   console.log('value: ', value);
                                                                           * });
                                                                           */
                                                                          readPropertyMultiple(receiver, propertiesArray, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                                                                            const buffer = this._getBuffer(!!isForwarded);
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              //@ts-ignore Todo somehow types do not match at all
                                                                              receiver,
                                                                              null,
                                                                              DEFAULT_HOP_COUNT2222222222222222222,
                                                                              0,
                                                                              0
                                                                            );
                                                                            const type = 0 | //@ts-ignore
                                                                            (settings.maxSegments !== 0 ? 2 : 0);
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              type,
                                                                              14,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            read_property_multiple_exports222222222222222222.encode(buffer, propertiesArray);
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return next(err);
                                                                              }
                                                                              const result = read_property_multiple_exports222222222222222222.decodeAcknowledge(
                                                                                data.buffer,
                                                                                data.offset,
                                                                                data.length
                                                                              );
                                                                              if (!result) {
                                                                                return next(new Error("INVALID_DECODING"));
                                                                              }
                                                                              next(null, result);
                                                                            });
                                                                          }
                                                                          /**
                                                                           * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                                                                           * @function bacnet.writePropertyMultiple
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {object[]} values - List of object and property specifications to be written.
                                                                           * @param {object} values.objectId - Specifies which object to read.
                                                                           * @param {number} values.objectId.type - The BACNET object type to read.
                                                                           * @param {number} values.objectId.instance - The BACNET object instance to read.
                                                                           * @param {object[]} values.values - List of properties to be written.
                                                                           * @param {object} values.values.property - Property specifications to be written.
                                                                           * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                                                                           * @param {number} values.values.property.index - The array index of the property to be written.
                                                                           * @param {object[]} values.values.value - A list of values to be written to the specified property.
                                                                           * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                                                                           * @param {object} values.values.value.value - The actual value to be written.
                                                                           * @param {number} values.values.priority - The priority to be used for writing to the property.
                                                                           * @param {object=} options
                                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * const values = [
                                                                           *   {objectId: {type: 8, instance: 44301}, values: [
                                                                           *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                                                                           *   ]}
                                                                           * ];
                                                                           * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                                                                           *   console.log('value: ', value);
                                                                           * });
                                                                           */
                                                                          writePropertyMultiple(receiver, values, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              //@ts-ignore
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              16,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId
                                                                            );
                                                                            write_property_multiple_exports222222222222222222.encodeObject(buffer, values);
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              next(err);
                                                                            });
                                                                          }
                                                                          /**
                                                                           * The confirmedCOVNotification command is used to push notifications to other
                                                                           * systems that have registered with us via a subscribeCOV message.
                                                                           * @function bacnet.confirmedCOVNotification
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                                                                           * @param {number} monitoredObject.type - Object type.
                                                                           * @param {number} monitoredObject.instance - Object instance.
                                                                           * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                                                                           * @param {number} initiatingDeviceId - Our BACnet device ID.
                                                                           * @param {number} lifetime - Number of seconds left until the subscription expires.
                                                                           * @param {array} values - values for the monitored object.  See example.
                                                                           * @param {object=} options
                                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * const settings = {deviceId: 123}; // our BACnet device
                                                                           *
                                                                           * // Items saved from subscribeCOV message
                                                                           * const monitoredObject = {type: 1, instance: 1};
                                                                           * const subscriberProcessId = 123;
                                                                           *
                                                                           * client.confirmedCOVNotification(
                                                                           *   '192.168.1.43',
                                                                           *   monitoredObject,
                                                                           *   subscriberProcessId,
                                                                           *   settings.deviceId,
                                                                           *   30, // should be lifetime of subscription really
                                                                           *   [
                                                                           *     {
                                                                           *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                                                                           *       value: [
                                                                           *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                                                                           *       ],
                                                                           *     },
                                                                           *   ],
                                                                           *   (err) => {
                                                                           *     console.log('error: ', err);
                                                                           *   }
                                                                           * );
                                                                           */
                                                                          confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer();
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              1,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            cov_notify_exports222222222222222222.encode(
                                                                              buffer,
                                                                              subscribeId,
                                                                              initiatingDeviceId,
                                                                              monitoredObject,
                                                                              lifetime,
                                                                              values
                                                                            );
                                                                            encode32222222222222222222(
                                                                              buffer.buffer,
                                                                              10,
                                                                              buffer.offset
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              next();
                                                                            });
                                                                          }
                                                                          /**
                                                                           * The deviceCommunicationControl command enables or disables network communication of the target device.
                                                                           * @function bacnet.deviceCommunicationControl
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                                                                           * @param {EnableDisable} enableDisable - The network communication state to set.
                                                                           * @param {object=} options
                                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                           * @param {string=} options.password - The optional password used to set the network communication state.
                                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                                                                           *   console.log('error: ', err);
                                                                           * });
                                                                           */
                                                                          deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId(),
                                                                              password: options.password
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              17,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            device_communication_control_exports222222222222222222.encode(
                                                                              buffer,
                                                                              timeDuration,
                                                                              enableDisable,
                                                                              settings.password
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              next(err);
                                                                            });
                                                                          }
                                                                          /**
                                                                           * The reinitializeDevice command initiates a restart of the target device.
                                                                           * @function bacnet.reinitializeDevice
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {ReinitializedState} state - The type of restart to be initiated.
                                                                           * @param {object=} options
                                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                           * @param {string=} options.password - The optional password used to restart the device.
                                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                                                                           *   console.log('value: ', value);
                                                                           * });
                                                                           */
                                                                          reinitializeDevice(receiver, state, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId(),
                                                                              password: options.password
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              20,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            reinitialize_device_exports222222222222222222.encode(buffer, state, settings.password);
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              next(err);
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param objectId
                                                                           * @param position
                                                                           * @param fileBuffer
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          writeFile(receiver, objectId, position, fileBuffer, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              7,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            atomic_write_file_exports222222222222222222.encode(
                                                                              buffer,
                                                                              false,
                                                                              objectId,
                                                                              position,
                                                                              fileBuffer
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              const result = atomic_write_file_exports222222222222222222.decodeAcknowledge(
                                                                                data.buffer,
                                                                                data.offset,
                                                                                data.length
                                                                              );
                                                                              if (!result) {
                                                                                return void next(new Error("INVALID_DECODING"));
                                                                              }
                                                                              next(null, result);
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param objectId
                                                                           * @param position
                                                                           * @param count
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          readFile(receiver, objectId, position, count, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              6,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            atomic_read_file_exports222222222222222222.encode(buffer, true, objectId, position, count);
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              const result = atomic_read_file_exports222222222222222222.decodeAcknowledge(
                                                                                data.buffer,
                                                                                data.offset,
                                                                                data.length
                                                                              );
                                                                              if (!result) {
                                                                                return void next(new Error("INVALID_DECODING"));
                                                                              }
                                                                              next(null, result);
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param objectId
                                                                           * @param idxBegin
                                                                           * @param quantity
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          readRange(receiver, objectId, idxBegin, quantity, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              26,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            read_range_exports222222222222222222.encode(
                                                                              buffer,
                                                                              objectId,
                                                                              131,
                                                                              ASN1_ARRAY_ALL222222222222222222,
                                                                              0,
                                                                              idxBegin,
                                                                              /* @__PURE__ */ new Date(),
                                                                              quantity
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              const result = read_range_exports222222222222222222.decodeAcknowledge(
                                                                                data.buffer,
                                                                                data.offset,
                                                                                data.length
                                                                              );
                                                                              if (!result) {
                                                                                return void next(new Error("INVALID_DECODING"));
                                                                              }
                                                                              next(null, result);
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param objectId
                                                                           * @param subscribeId
                                                                           * @param cancel
                                                                           * @param issueConfirmedNotifications
                                                                           * @param lifetime
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                                                                            const next = nextFunc || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              // @ts-ignore TODO types not matching with documentation and code
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              5,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            subscribe_cov_exports222222222222222222.encode(
                                                                              buffer,
                                                                              subscribeId,
                                                                              objectId,
                                                                              cancel,
                                                                              issueConfirmedNotifications,
                                                                              lifetime
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              next();
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param objectId
                                                                           * @param monitoredProperty
                                                                           * @param subscribeId
                                                                           * @param cancel
                                                                           * @param issueConfirmedNotifications
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              28,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            subscribe_property_exports222222222222222222.encode(
                                                                              buffer,
                                                                              subscribeId,
                                                                              objectId,
                                                                              cancel,
                                                                              issueConfirmedNotifications,
                                                                              0,
                                                                              monitoredProperty,
                                                                              false,
                                                                              15
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              next();
                                                                            });
                                                                          }
                                                                          /**
                                                                           * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                                                                           * @function bacnet.unconfirmedCOVNotification
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                                                                           * @param {number} initiatingDeviceId - The id of this device.
                                                                           * @param {object} monitoredObjectId - Specifies about which object the notification is.
                                                                           * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                                                                           * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                                                                           * @param {number} timeRemaining - How long the subscription is still active in seconds.
                                                                           * @param {object[]} values - List of properties with updated values.
                                                                           * @param {object} values.property - Property specifications.
                                                                           * @param {number} values.property.id - The updated BACNET property id.
                                                                           * @param {number} values.property.index - The array index of the updated property.
                                                                           * @param {object[]} values.value - A list of updated values.
                                                                           * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                                                                           * @param {object} values.value.value - The actual updated value.
                                                                           * @param {number} values.priority - The priority of the updated property.
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * client.unconfirmedCOVNotification(
                                                                           *            '127.0.0.1',
                                                                           *            3,
                                                                           *            433,
                                                                           *            {type: 2, instance: 122},
                                                                           *            120,
                                                                           *            [
                                                                           *              {
                                                                           *                property: {id: 85},
                                                                           *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                                                                           *              },
                                                                           *              {
                                                                           *                property: {id: 111},
                                                                           *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                                                                           *              }
                                                                           *            ]);
                                                                           */
                                                                          unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                                                                            const buffer = this._getBuffer();
                                                                            encode31222222222222222222(buffer, 0, receiver);
                                                                            encodeUnconfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              16,
                                                                              2
                                                                              /* UNCONFIRMED_COV_NOTIFICATION */
                                                                            );
                                                                            cov_notify_exports222222222222222222.encode(
                                                                              buffer,
                                                                              subscriberProcessId,
                                                                              initiatingDeviceId,
                                                                              monitoredObjectId,
                                                                              timeRemaining,
                                                                              values
                                                                            );
                                                                            encode32222222222222222222(
                                                                              buffer.buffer,
                                                                              10,
                                                                              buffer.offset
                                                                            );
                                                                            this._transport.send(buffer.buffer, buffer.offset, receiver);
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param objectId
                                                                           * @param values
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          createObject(receiver, objectId, values, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              10,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            create_object_exports222222222222222222.encode(buffer, objectId, values);
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              next();
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param objectId
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          deleteObject(receiver, objectId, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              11,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            delete_object_exports222222222222222222.encode(buffer, objectId);
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              next();
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param objectId
                                                                           * @param reference
                                                                           * @param values
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          removeListElement(receiver, objectId, reference, values, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              9,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            add_list_element_exports222222222222222222.encode(
                                                                              buffer,
                                                                              objectId,
                                                                              reference.id,
                                                                              reference.index,
                                                                              values
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              next();
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param objectId
                                                                           * @param reference
                                                                           * @param values
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          addListElement(receiver, objectId, reference, values, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              8,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            add_list_element_exports222222222222222222.encode(
                                                                              buffer,
                                                                              objectId,
                                                                              reference.id,
                                                                              reference.index,
                                                                              values
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              next();
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          getAlarmSummary(receiver, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              3,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              const result = alarm_summary_exports222222222222222222.decode(
                                                                                data.buffer,
                                                                                data.offset,
                                                                                data.length
                                                                              );
                                                                              if (!result) {
                                                                                return void next(new Error("INVALID_DECODING"));
                                                                              }
                                                                              next(null, result);
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param objectId
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          getEventInformation(receiver, objectId, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              29,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            encodeContextObjectId222222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              const result = event_information_exports222222222222222222.decode(
                                                                                data.buffer,
                                                                                data.offset,
                                                                                data.length
                                                                              );
                                                                              if (!result) {
                                                                                return void next(new Error("INVALID_DECODING"));
                                                                              }
                                                                              next(null, result);
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param objectId
                                                                           * @param eventState
                                                                           * @param ackText
                                                                           * @param evTimeStamp
                                                                           * @param ackTimeStamp
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              0,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            alarm_acknowledge_exports222222222222222222.encode(
                                                                              buffer,
                                                                              57,
                                                                              objectId,
                                                                              eventState,
                                                                              ackText,
                                                                              evTimeStamp,
                                                                              ackTimeStamp
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              next();
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param vendorId
                                                                           * @param serviceNumber
                                                                           * @param data
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              18,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            private_transfer_exports222222222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data2) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              next();
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param vendorId
                                                                           * @param serviceNumber
                                                                           * @param data
                                                                           */
                                                                          unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(buffer, 0, receiver);
                                                                            encodeUnconfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              16,
                                                                              4
                                                                              /* UNCONFIRMED_PRIVATE_TRANSFER */
                                                                            );
                                                                            private_transfer_exports222222222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                                            this.sendBvlc(receiver, buffer);
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param acknowledgmentFilter
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              4,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            get_enrollment_summary_exports222222222222222222.encode(
                                                                              buffer,
                                                                              acknowledgmentFilter,
                                                                              options.enrollmentFilter,
                                                                              options.eventStateFilter,
                                                                              options.eventTypeFilter,
                                                                              options.priorityFilter,
                                                                              options.notificationClassFilter
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              const result = get_enrollment_summary_exports222222222222222222.decodeAcknowledge(
                                                                                data.buffer,
                                                                                data.offset,
                                                                                data.length
                                                                              );
                                                                              if (!result) {
                                                                                return void next(new Error("INVALID_DECODING"));
                                                                              }
                                                                              next(null, result);
                                                                            });
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param eventNotification
                                                                           */
                                                                          unconfirmedEventNotification(receiver, eventNotification) {
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(buffer, 0, receiver);
                                                                            encodeUnconfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              16,
                                                                              3
                                                                              /* UNCONFIRMED_EVENT_NOTIFICATION */
                                                                            );
                                                                            event_notify_data_exports222222222222222222.encode(buffer, eventNotification);
                                                                            this.sendBvlc(receiver, buffer);
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param eventNotification
                                                                           * @param options
                                                                           * @param next
                                                                           */
                                                                          confirmedEventNotification(receiver, eventNotification, options, next) {
                                                                            next = next || options;
                                                                            const settings = {
                                                                              maxSegments: options.maxSegments || 112,
                                                                              maxApdu: options.maxApdu || 5,
                                                                              invokeId: options.invokeId || this._getInvokeId()
                                                                            };
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(
                                                                              buffer,
                                                                              0 | 4,
                                                                              receiver
                                                                            );
                                                                            encodeConfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              0,
                                                                              2,
                                                                              settings.maxSegments,
                                                                              settings.maxApdu,
                                                                              settings.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                            event_notify_data_exports222222222222222222.encode(buffer, eventNotification);
                                                                            this.sendBvlc(receiver, buffer);
                                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                                              if (err) {
                                                                                return void next(err);
                                                                              }
                                                                              next();
                                                                            });
                                                                          }
                                                                          /**
                                                                           * The readPropertyResponse call sends a response with information about one of our properties.
                                                                           * @function bacnet.readPropertyResponse
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {number} invokeId - ID of the original readProperty request.
                                                                           * @param {object} objectId - objectId from the original request,
                                                                           * @param {object} property - property being read, taken from the original request.
                                                                           * @param {object=} options varying behaviour for special circumstances
                                                                           * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                                                                           */
                                                                          readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(buffer, 0, receiver);
                                                                            encodeComplexAck222222222222222222(
                                                                              buffer,
                                                                              48,
                                                                              12,
                                                                              invokeId
                                                                            );
                                                                            read_property_exports222222222222222222.encodeAcknowledge(
                                                                              buffer,
                                                                              objectId,
                                                                              property.id,
                                                                              property.index,
                                                                              value
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                          }
                                                                          readPropertyMultipleResponse(receiver, invokeId, values) {
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(buffer, 0, receiver);
                                                                            encodeComplexAck222222222222222222(
                                                                              buffer,
                                                                              48,
                                                                              14,
                                                                              invokeId
                                                                            );
                                                                            read_property_multiple_exports222222222222222222.encodeAcknowledge(buffer, values);
                                                                            this.sendBvlc(receiver, buffer);
                                                                          }
                                                                          /**
                                                                           * The iAmResponse command is sent as a reply to a whoIs request.
                                                                           * @function bacnet.iAmResponse
                                                                           * @param {object} receiver - address to send packet to, null for local broadcast.
                                                                           * @param {number} deviceId - Our device ID.
                                                                           * @param {number} segmentation - an enum.Segmentation value.
                                                                           * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                                                                           */
                                                                          iAmResponse(receiver, deviceId, segmentation, vendorId) {
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(buffer, 0, receiver);
                                                                            encodeUnconfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              16,
                                                                              0
                                                                              /* I_AM */
                                                                            );
                                                                            i_am_exports222222222222222222.encode(
                                                                              buffer,
                                                                              deviceId,
                                                                              this._transport.getMaxPayload(),
                                                                              segmentation,
                                                                              vendorId
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param deviceId
                                                                           * @param objectId
                                                                           * @param objectName
                                                                           */
                                                                          iHaveResponse(receiver, deviceId, objectId, objectName) {
                                                                            const buffer = this._getBuffer(
                                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                            );
                                                                            encode31222222222222222222(buffer, 0, receiver);
                                                                            encodeUnconfirmedServiceRequest222222222222222222(
                                                                              buffer,
                                                                              16,
                                                                              1
                                                                              /* I_HAVE */
                                                                            );
                                                                            i_have_exports222222222222222222.encode(buffer, deviceId, objectId, objectName);
                                                                            this.sendBvlc(receiver, buffer);
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param service
                                                                           * @param invokeId
                                                                           */
                                                                          simpleAckResponse(receiver, service, invokeId) {
                                                                            if (typeof receiver === "string")
                                                                              return;
                                                                            const buffer = this._getBuffer(!!receiver.forwardedFrom);
                                                                            encode31222222222222222222(buffer, 0, receiver);
                                                                            encodeSimpleAck222222222222222222(
                                                                              buffer,
                                                                              32,
                                                                              service,
                                                                              invokeId
                                                                            );
                                                                            this.sendBvlc(receiver, buffer);
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param service
                                                                           * @param invokeId
                                                                           * @param errorClass
                                                                           * @param errorCode
                                                                           */
                                                                          errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                                                                            trace2222222222222222222(
                                                                              `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                                                                service
                                                                              )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                                                                            );
                                                                            trace2222222222222222222(
                                                                              `error message ${error_exports222222222222222222.buildMessage({
                                                                                class: errorClass,
                                                                                code: errorCode
                                                                              })}`
                                                                            );
                                                                            const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                                                                            if (typeof receiver === "string")
                                                                              throw new Error("receiver must be object");
                                                                            const buffer = this._getBuffer(hasSource);
                                                                            encode31222222222222222222(buffer, 0, receiver);
                                                                            encodeError222222222222222222(buffer, 80, service, invokeId);
                                                                            error_exports222222222222222222.encode(buffer, errorClass, errorCode);
                                                                            this.sendBvlc(receiver, buffer);
                                                                          }
                                                                          /**
                                                                           *
                                                                           * @param receiver
                                                                           * @param buffer
                                                                           */
                                                                          sendBvlc(receiver, buffer) {
                                                                            if (typeof receiver === "string") {
                                                                              receiver = {
                                                                                address: receiver
                                                                              };
                                                                            }
                                                                            if (receiver && receiver.forwardedFrom) {
                                                                              encode32222222222222222222(
                                                                                buffer.buffer,
                                                                                4,
                                                                                buffer.offset,
                                                                                receiver.forwardedFrom
                                                                              );
                                                                            } else if (receiver && receiver.address) {
                                                                              encode32222222222222222222(
                                                                                buffer.buffer,
                                                                                10,
                                                                                buffer.offset
                                                                              );
                                                                            } else {
                                                                              encode32222222222222222222(
                                                                                buffer.buffer,
                                                                                11,
                                                                                buffer.offset
                                                                              );
                                                                            }
                                                                            this._transport.send(
                                                                              buffer.buffer,
                                                                              buffer.offset,
                                                                              receiver && receiver.address || null
                                                                            );
                                                                          }
                                                                          /**
                                                                           * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                                                                           * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                                                                           * @function bacnet.resultResponse
                                                                           * @param {string} receiver - IP address of the target device.
                                                                           * @param {number} resultCode - Single value from BvlcResultFormat enum.
                                                                           */
                                                                          resultResponse(receiver, resultCode) {
                                                                            const buffer = this._getBuffer();
                                                                            encodeResult222222222222222222(buffer, resultCode);
                                                                            encode32222222222222222222(
                                                                              buffer.buffer,
                                                                              0,
                                                                              buffer.offset
                                                                            );
                                                                            this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                                                                          }
                                                                          /**
                                                                           * Unloads the current bacnet instance and closes the underlying UDP socket.
                                                                           * @function bacnet.close
                                                                           * @example
                                                                           * const bacnet = require('node-bacnet');
                                                                           * const client = new bacnet();
                                                                           *
                                                                           * client.close();
                                                                           */
                                                                          close() {
                                                                            this._transport.close();
                                                                          }
                                                                          /**
                                                                           * Helper function to take an array of enums and produce a bitstring suitable
                                                                           * for inclusion as a property.
                                                                           *
                                                                           * @example
                                                                           * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                                                                           *   {value: bacnet.createBitstring([
                                                                           *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                                                                           *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                                                                           *   ]),
                                                                           *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                                                                           * ],
                                                                           */
                                                                          static createBitstring(items) {
                                                                            let offset = 0;
                                                                            let bytes = [];
                                                                            let bitsUsed = 0;
                                                                            while (items.length) {
                                                                              let value = 0;
                                                                              items = items.filter((i) => {
                                                                                if (i >= offset + 8) {
                                                                                  return true;
                                                                                }
                                                                                value |= 1 << i - offset;
                                                                                bitsUsed = Math.max(bitsUsed, i);
                                                                                return false;
                                                                              });
                                                                              bytes.push(value);
                                                                              offset += 8;
                                                                            }
                                                                            bitsUsed++;
                                                                            return {
                                                                              value: bytes,
                                                                              bitsUsed
                                                                            };
                                                                          }
                                                                        };
                                                                        var import_underscore222222222222222222 = __toESM222222222222222222(require("underscore"));
                                                                        var import_process222222222222222222 = __toESM222222222222222222(require("process"));
                                                                        var PropertyIdentifierToEnumMap222222222222222222 = {};
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.OBJECT_TYPE] = enum_exports222222222222222222.ObjectType;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.SEGMENTATION_SUPPORTED] = enum_exports222222222222222222.Segmentation;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.EVENT_STATE] = enum_exports222222222222222222.EventState;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.UNITS] = enum_exports222222222222222222.EngineeringUnits;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.RELIABILITY] = enum_exports222222222222222222.Reliability;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.NOTIFY_TYPE] = enum_exports222222222222222222.NotifyType;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.POLARITY] = enum_exports222222222222222222.Polarity;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = enum_exports222222222222222222.ServicesSupported;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = enum_exports222222222222222222.ObjectTypesSupported;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.STATUS_FLAGS] = enum_exports222222222222222222.StatusFlags;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.LIMIT_ENABLE] = enum_exports222222222222222222.LimitEnable;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.EVENT_ENABLE] = enum_exports222222222222222222.EventTransitionBits;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.ACKED_TRANSITIONS] = enum_exports222222222222222222.EventTransitionBits;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.SYSTEM_STATUS] = enum_exports222222222222222222.DeviceStatus;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.SYSTEM_STATUS] = enum_exports222222222222222222.DeviceStatus;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.ACK_REQUIRED] = enum_exports222222222222222222.EventTransitionBits;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.LOGGING_TYPE] = enum_exports222222222222222222.LoggingType;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.FILE_ACCESS_METHOD] = enum_exports222222222222222222.FileAccessMethod;
                                                                        PropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.PropertyIdentifier.NODE_TYPE] = enum_exports222222222222222222.NodeType;
                                                                        var ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222 = {};
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BINARY_INPUT] = {};
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BINARY_INPUT][enum_exports222222222222222222.PropertyIdentifier.PRESENT_VALUE] = enum_exports222222222222222222.BinaryPV;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BINARY_INPUT][enum_exports222222222222222222.PropertyIdentifier.MODE] = enum_exports222222222222222222.BinaryPV;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.ANALOG_INPUT] = {};
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.ANALOG_INPUT][enum_exports222222222222222222.PropertyIdentifier.PRESENT_VALUE] = enum_exports222222222222222222.BinaryPV;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.ANALOG_OUTPUT] = {};
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.ANALOG_OUTPUT][enum_exports222222222222222222.PropertyIdentifier.PRESENT_VALUE] = enum_exports222222222222222222.BinaryPV;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BINARY_OUTPUT] = {};
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BINARY_OUTPUT][enum_exports222222222222222222.PropertyIdentifier.PRESENT_VALUE] = enum_exports222222222222222222.BinaryPV;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BINARY_OUTPUT][enum_exports222222222222222222.PropertyIdentifier.RELINQUISH_DEFAULT] = enum_exports222222222222222222.BinaryPV;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BINARY_VALUE] = {};
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BINARY_VALUE][enum_exports222222222222222222.PropertyIdentifier.PRESENT_VALUE] = enum_exports222222222222222222.BinaryPV;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BINARY_VALUE][enum_exports222222222222222222.PropertyIdentifier.RELINQUISH_DEFAULT] = enum_exports222222222222222222.BinaryPV;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BINARY_LIGHTING_OUTPUT][enum_exports222222222222222222.PropertyIdentifier.PRESENT_VALUE] = enum_exports222222222222222222.BinaryLightingPV;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BITSTRING_VALUE] = {};
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.BINARY_VALUE][enum_exports222222222222222222.PropertyIdentifier.PRESENT_VALUE] = enum_exports222222222222222222.BinaryPV;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.LIFE_SAFETY_POINT] = {};
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.LIFE_SAFETY_POINT][enum_exports222222222222222222.PropertyIdentifier.PRESENT_VALUE] = enum_exports222222222222222222.LifeSafetyState;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.LIFE_SAFETY_POINT][enum_exports222222222222222222.PropertyIdentifier.TRACKING_VALUE] = enum_exports222222222222222222.LifeSafetyState;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.LIFE_SAFETY_POINT][enum_exports222222222222222222.PropertyIdentifier.MODE] = enum_exports222222222222222222.LifeSafetyMode;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.LIFE_SAFETY_POINT][enum_exports222222222222222222.PropertyIdentifier.ACCEPTED_MODES] = enum_exports222222222222222222.LifeSafetyMode;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.LIFE_SAFETY_POINT][enum_exports222222222222222222.PropertyIdentifier.SILENCED] = enum_exports222222222222222222.LifeSafetyState;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.LIFE_SAFETY_POINT][enum_exports222222222222222222.PropertyIdentifier.OPERATION_EXPECTED] = enum_exports222222222222222222.LifeSafetyOperation;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.LIFE_SAFETY_ZONE] = {};
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.LIFE_SAFETY_ZONE][enum_exports222222222222222222.PropertyIdentifier.PRESENT_VALUE] = enum_exports222222222222222222.LifeSafetyState;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.LIFE_SAFETY_ZONE][enum_exports222222222222222222.PropertyIdentifier.MODE] = enum_exports222222222222222222.LifeSafetyMode;
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.LOAD_CONTROL] = {};
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[enum_exports222222222222222222.ObjectType.LOAD_CONTROL][enum_exports222222222222222222.PropertyIdentifier.PRESENT_VALUE] = enum_exports222222222222222222.ShedState;
                                                                        var propSubSet222222222222222222 = import_process222222222222222222.default.argv.includes("--all") ? Object.values(enum_exports222222222222222222.PropertyIdentifier) : [
                                                                          /* normally supported from all devices */
                                                                          enum_exports222222222222222222.PropertyIdentifier.OBJECT_IDENTIFIER,
                                                                          enum_exports222222222222222222.PropertyIdentifier.OBJECT_NAME,
                                                                          enum_exports222222222222222222.PropertyIdentifier.OBJECT_TYPE,
                                                                          enum_exports222222222222222222.PropertyIdentifier.PRESENT_VALUE,
                                                                          enum_exports222222222222222222.PropertyIdentifier.STATUS_FLAGS,
                                                                          enum_exports222222222222222222.PropertyIdentifier.EVENT_STATE,
                                                                          enum_exports222222222222222222.PropertyIdentifier.RELIABILITY,
                                                                          enum_exports222222222222222222.PropertyIdentifier.OUT_OF_SERVICE,
                                                                          enum_exports222222222222222222.PropertyIdentifier.UNITS,
                                                                          /* other properties */
                                                                          enum_exports222222222222222222.PropertyIdentifier.DESCRIPTION,
                                                                          enum_exports222222222222222222.PropertyIdentifier.SYSTEM_STATUS,
                                                                          enum_exports222222222222222222.PropertyIdentifier.VENDOR_NAME,
                                                                          enum_exports222222222222222222.PropertyIdentifier.VENDOR_IDENTIFIER,
                                                                          enum_exports222222222222222222.PropertyIdentifier.MODEL_NAME,
                                                                          enum_exports222222222222222222.PropertyIdentifier.FIRMWARE_REVISION,
                                                                          enum_exports222222222222222222.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                                                                          enum_exports222222222222222222.PropertyIdentifier.LOCATION,
                                                                          enum_exports222222222222222222.PropertyIdentifier.LOCAL_DATE,
                                                                          enum_exports222222222222222222.PropertyIdentifier.LOCAL_TIME,
                                                                          enum_exports222222222222222222.PropertyIdentifier.UTC_OFFSET,
                                                                          enum_exports222222222222222222.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                                                                          enum_exports222222222222222222.PropertyIdentifier.PROTOCOL_VERSION,
                                                                          enum_exports222222222222222222.PropertyIdentifier.PROTOCOL_REVISION,
                                                                          enum_exports222222222222222222.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                                                                          enum_exports222222222222222222.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                                                                          enum_exports222222222222222222.PropertyIdentifier.OBJECT_LIST,
                                                                          enum_exports222222222222222222.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                                                                          enum_exports222222222222222222.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                                                                          enum_exports222222222222222222.PropertyIdentifier.APDU_TIMEOUT,
                                                                          enum_exports222222222222222222.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                                                                          enum_exports222222222222222222.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                                                                          enum_exports222222222222222222.PropertyIdentifier.DATABASE_REVISION,
                                                                          enum_exports222222222222222222.PropertyIdentifier.MAX_INFO_FRAMES,
                                                                          enum_exports222222222222222222.PropertyIdentifier.MAX_MASTER,
                                                                          enum_exports222222222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                                                                          enum_exports222222222222222222.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                                                                        ];
                                                                        var debug4222222222222222222 = import_process222222222222222222.default.argv.includes("--debug");
                                                                        function getAllPropertiesManually222222222222222222(address, objectId, callback, propList, result) {
                                                                          if (!propList) {
                                                                            propList = propSubSet222222222222222222.map((x) => x);
                                                                          }
                                                                          if (!result) {
                                                                            result = [];
                                                                          }
                                                                          if (!propList.length) {
                                                                            return callback({
                                                                              values: [
                                                                                {
                                                                                  objectId,
                                                                                  values: result
                                                                                }
                                                                              ]
                                                                            });
                                                                          }
                                                                          const prop = propList.shift();
                                                                          bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                                                                            if (!err) {
                                                                              if (debug4222222222222222222) {
                                                                                console.log("Handle value " + prop + ": ", JSON.stringify(value));
                                                                              }
                                                                              const objRes = value.property;
                                                                              objRes.value = value.values;
                                                                              result.push(objRes);
                                                                            } else {
                                                                            }
                                                                            getAllPropertiesManually222222222222222222(address, objectId, callback, propList, result);
                                                                          });
                                                                        }
                                                                        function readBit222222222222222222(buffer, i, bit) {
                                                                          return (buffer[i] >> bit) % 2;
                                                                        }
                                                                        function handleBitString222222222222222222(buffer, bitsUsed, usedEnum) {
                                                                          const res = [];
                                                                          for (let i = 0; i < bitsUsed; i++) {
                                                                            const bufferIndex = Math.floor(i / 8);
                                                                            if (readBit222222222222222222(buffer, bufferIndex, i % 8)) {
                                                                              res.push(enum_exports222222222222222222.getEnumName(usedEnum, i));
                                                                            }
                                                                          }
                                                                          return res;
                                                                        }
                                                                        function parseValue222222222222222222(address, objId2, parentType, value, supportsMultiple, callback) {
                                                                          let resValue = null;
                                                                          if (value && value.type && value.value !== null && value.value !== void 0) {
                                                                            switch (value.type) {
                                                                              case enum_exports222222222222222222.ApplicationTag.NULL:
                                                                                resValue = null;
                                                                                break;
                                                                              case enum_exports222222222222222222.ApplicationTag.BOOLEAN:
                                                                                resValue = !!value.value;
                                                                                break;
                                                                              case enum_exports222222222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                                              case enum_exports222222222222222222.ApplicationTag.SIGNED_INTEGER:
                                                                              case enum_exports222222222222222222.ApplicationTag.REAL:
                                                                              case enum_exports222222222222222222.ApplicationTag.DOUBLE:
                                                                              case enum_exports222222222222222222.ApplicationTag.CHARACTER_STRING:
                                                                                resValue = value.value;
                                                                                break;
                                                                              case enum_exports222222222222222222.ApplicationTag.DATE:
                                                                              case enum_exports222222222222222222.ApplicationTag.TIME:
                                                                              case enum_exports222222222222222222.ApplicationTag.TIMESTAMP:
                                                                                resValue = value.value;
                                                                                break;
                                                                              case enum_exports222222222222222222.ApplicationTag.BIT_STRING:
                                                                                if (ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[parentType][objId2]) {
                                                                                  resValue = handleBitString222222222222222222(
                                                                                    value.value.value,
                                                                                    value.value.bitsUsed,
                                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[parentType][objId2]
                                                                                  );
                                                                                } else if (PropertyIdentifierToEnumMap222222222222222222[objId2]) {
                                                                                  resValue = handleBitString222222222222222222(
                                                                                    value.value.value,
                                                                                    value.value.bitsUsed,
                                                                                    PropertyIdentifierToEnumMap222222222222222222[objId2]
                                                                                  );
                                                                                } else {
                                                                                  if (parentType !== enum_exports222222222222222222.ObjectType.BITSTRING_VALUE) {
                                                                                    console.log(
                                                                                      "Unknown value for BIT_STRING type for objId " + enum_exports222222222222222222.getEnumName(enum_exports222222222222222222.PropertyIdentifier, objId2) + " and parent type " + enum_exports222222222222222222.getEnumName(enum_exports222222222222222222.ObjectType, parentType)
                                                                                    );
                                                                                  }
                                                                                  resValue = value.value;
                                                                                }
                                                                                break;
                                                                              case enum_exports222222222222222222.ApplicationTag.ENUMERATED:
                                                                                if (ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[parentType][objId2]) {
                                                                                  resValue = enum_exports222222222222222222.getEnumName(
                                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222222[parentType][objId2],
                                                                                    value.value
                                                                                  );
                                                                                } else if (PropertyIdentifierToEnumMap222222222222222222[objId2]) {
                                                                                  resValue = enum_exports222222222222222222.getEnumName(
                                                                                    PropertyIdentifierToEnumMap222222222222222222[objId2],
                                                                                    value.value
                                                                                  );
                                                                                } else {
                                                                                  console.log(
                                                                                    "Unknown value for ENUMERATED type for objId " + enum_exports222222222222222222.getEnumName(enum_exports222222222222222222.PropertyIdentifier, objId2) + " and parent type " + enum_exports222222222222222222.getEnumName(enum_exports222222222222222222.ObjectType, parentType)
                                                                                  );
                                                                                  resValue = value.value;
                                                                                }
                                                                                break;
                                                                              case enum_exports222222222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                                                if (objId2 === enum_exports222222222222222222.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === enum_exports222222222222222222.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === enum_exports222222222222222222.PropertyIdentifier.SUBORDINATE_LIST) {
                                                                                  resValue = value.value;
                                                                                } else if (supportsMultiple) {
                                                                                  const requestArray = [
                                                                                    {
                                                                                      objectId: value.value,
                                                                                      properties: [{ id: 8 }]
                                                                                    }
                                                                                  ];
                                                                                  bacnetClient.readPropertyMultiple(
                                                                                    address,
                                                                                    requestArray,
                                                                                    (err, resValue2) => {
                                                                                      parseDeviceObject222222222222222222(address, resValue2, value.value, true, callback);
                                                                                    }
                                                                                  );
                                                                                  return;
                                                                                } else {
                                                                                  getAllPropertiesManually222222222222222222(address, value.value, (result) => {
                                                                                    parseDeviceObject222222222222222222(address, result, value.value, false, callback);
                                                                                  });
                                                                                  return;
                                                                                }
                                                                                break;
                                                                              case enum_exports222222222222222222.ApplicationTag.OCTET_STRING:
                                                                                resValue = value.value;
                                                                                break;
                                                                              case enum_exports222222222222222222.ApplicationTag.ERROR:
                                                                                resValue = {
                                                                                  errorClass: enum_exports222222222222222222.getEnumName(
                                                                                    enum_exports222222222222222222.ErrorClass,
                                                                                    value.value.errorClass
                                                                                  ),
                                                                                  errorCode: enum_exports222222222222222222.getEnumName(enum_exports222222222222222222.ErrorCode, value.value.errorCode)
                                                                                };
                                                                                break;
                                                                              case enum_exports222222222222222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                                                                              case enum_exports222222222222222222.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                                                                              case enum_exports222222222222222222.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                                                                              case enum_exports222222222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                                                resValue = value.value;
                                                                                break;
                                                                              case enum_exports222222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                                                                parseValue222222222222222222(
                                                                                  address,
                                                                                  objId2,
                                                                                  parentType,
                                                                                  value.value,
                                                                                  supportsMultiple,
                                                                                  callback
                                                                                );
                                                                                return;
                                                                              case enum_exports222222222222222222.ApplicationTag.READ_ACCESS_RESULT:
                                                                                resValue = value.value;
                                                                                break;
                                                                              default:
                                                                                console.log(
                                                                                  "unknown type " + value.type + ": " + JSON.stringify(value)
                                                                                );
                                                                                resValue = value;
                                                                            }
                                                                          }
                                                                          setImmediate(() => callback(resValue));
                                                                        }
                                                                        function parseDeviceObject222222222222222222(address, obj, parent, supportsMultiple, callback) {
                                                                          if (debug4222222222222222222) {
                                                                            console.log(
                                                                              "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                                                                            );
                                                                          }
                                                                          if (!obj) {
                                                                            console.log("object not valid on parse device object");
                                                                            return;
                                                                          }
                                                                          if (!obj.values || !Array.isArray(obj.values)) {
                                                                            console.log("No device or invalid response");
                                                                            callback({ ERROR: "No device or invalid response" });
                                                                            return;
                                                                          }
                                                                          let cbCount = 0;
                                                                          let objDef = {};
                                                                          const finalize = () => {
                                                                            Object.keys(objDef).forEach((devId) => {
                                                                              Object.keys(objDef[devId]).forEach((objId2) => {
                                                                                if (objDef[devId][objId2].length === 1) {
                                                                                  objDef[devId][objId2] = objDef[devId][objId2][0];
                                                                                }
                                                                              });
                                                                            });
                                                                            if (obj.values.length === 1) {
                                                                              objDef = objDef[obj.values[0].objectId.instance];
                                                                            }
                                                                            if (debug4222222222222222222) {
                                                                              console.log(
                                                                                "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                                                                              );
                                                                            }
                                                                            callback(objDef);
                                                                          };
                                                                          obj.values.forEach((devBaseObj) => {
                                                                            if (!devBaseObj.objectId) {
                                                                              console.log("No device Id found in object data");
                                                                              return;
                                                                            }
                                                                            if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                                                                              console.log("No device type or instance found in object data");
                                                                              return;
                                                                            }
                                                                            if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                                                                              console.log("No device values response");
                                                                              return;
                                                                            }
                                                                            const deviceId = devBaseObj.objectId.instance;
                                                                            objDef[deviceId] = {};
                                                                            devBaseObj.values.forEach((devObj) => {
                                                                              let objId2 = enum_exports222222222222222222.getEnumName(enum_exports222222222222222222.PropertyIdentifier, devObj.id);
                                                                              if (devObj.index !== 4294967295) {
                                                                                objId2 += "-" + devObj.index;
                                                                              }
                                                                              if (debug4222222222222222222) {
                                                                                console.log("Handle Object property:", deviceId, objId2, devObj.value);
                                                                              }
                                                                              devObj.value.forEach((val) => {
                                                                                if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                                                                  objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                                                  objDef[deviceId][objId2].push(val.value);
                                                                                  return;
                                                                                }
                                                                                cbCount++;
                                                                                parseValue222222222222222222(
                                                                                  address,
                                                                                  devObj.id,
                                                                                  parent.type,
                                                                                  val,
                                                                                  supportsMultiple,
                                                                                  (parsedValue) => {
                                                                                    if (debug4222222222222222222) {
                                                                                      console.log(
                                                                                        "RETURN parsedValue",
                                                                                        deviceId,
                                                                                        objId2,
                                                                                        devObj.value,
                                                                                        parsedValue
                                                                                      );
                                                                                    }
                                                                                    objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                                                    objDef[deviceId][objId2].push(parsedValue);
                                                                                    if (!--cbCount) {
                                                                                      finalize();
                                                                                    }
                                                                                  }
                                                                                );
                                                                              });
                                                                            });
                                                                          });
                                                                          if (cbCount === 0) {
                                                                            finalize();
                                                                          }
                                                                        }
                                                                        var limitToDevice222222222222222222 = null;
                                                                        if (import_process222222222222222222.default.argv.length === 3) {
                                                                          limitToDevice222222222222222222 = parseInt(import_process222222222222222222.default.argv[2]);
                                                                          if (isNaN(limitToDevice222222222222222222)) {
                                                                            limitToDevice222222222222222222 = null;
                                                                          }
                                                                        }
                                                                        var node_bacnet_default222222222222222222 = Client222222222222222222;
                                                                      }
                                                                    });
                                                                    var node_bacnet_exports22222222222222222 = {};
                                                                    __export22222222222222222(node_bacnet_exports22222222222222222, {
                                                                      _: () => import_underscore22222222222222222.default,
                                                                      bacnetErrorToString: () => bacnetErrorToString22222222222222222,
                                                                      default: () => node_bacnet_default22222222222222222,
                                                                      enums: () => enum_exports22222222222222222,
                                                                      parseValue: () => parseValue22222222222222222
                                                                    });
                                                                    module22222222222222222.exports = __toCommonJS22222222222222222(node_bacnet_exports22222222222222222);
                                                                    var enum_exports22222222222222222 = {};
                                                                    __export22222222222222222(enum_exports22222222222222222, {
                                                                      ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL22222222222222222,
                                                                      ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS22222222222222222,
                                                                      ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG22222222222222222,
                                                                      ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES22222222222222222,
                                                                      ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE22222222222222222,
                                                                      ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT22222222222222222,
                                                                      ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE22222222222222222,
                                                                      ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY22222222222222222,
                                                                      ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID22222222222222222,
                                                                      ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY22222222222222222,
                                                                      ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY22222222222222222,
                                                                      AbortReason: () => AbortReason22222222222222222,
                                                                      AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable22222222222222222,
                                                                      AccessCredentialDisable: () => AccessCredentialDisable22222222222222222,
                                                                      AccessCredentialDisableReason: () => AccessCredentialDisableReason22222222222222222,
                                                                      AccessEvent: () => AccessEvent22222222222222222,
                                                                      AccessPassbackMode: () => AccessPassbackMode22222222222222222,
                                                                      AccessUserType: () => AccessUserType22222222222222222,
                                                                      AccessZoneOccupancyState: () => AccessZoneOccupancyState22222222222222222,
                                                                      Action: () => Action22222222222222222,
                                                                      ApplicationTag: () => ApplicationTag22222222222222222,
                                                                      ApplicationTagName: () => ApplicationTagName22222222222222222,
                                                                      AuthenticationFactorType: () => AuthenticationFactorType22222222222222222,
                                                                      AuthenticationStatus: () => AuthenticationStatus22222222222222222,
                                                                      AuthorizationExemption: () => AuthorizationExemption22222222222222222,
                                                                      AuthorizationMode: () => AuthorizationMode22222222222222222,
                                                                      BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH32222222222222222,
                                                                      BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP22222222222222222,
                                                                      BackupState: () => BackupState22222222222222222,
                                                                      BinaryLightingPV: () => BinaryLightingPV22222222222222222,
                                                                      BinaryPV: () => BinaryPV22222222222222222,
                                                                      BvlcResultFormat: () => BvlcResultFormat22222222222222222,
                                                                      BvlcResultPurpose: () => BvlcResultPurpose22222222222222222,
                                                                      CharacterStringEncoding: () => CharacterStringEncoding22222222222222222,
                                                                      ConfirmedServiceChoice: () => ConfirmedServiceChoice22222222222222222,
                                                                      CovType: () => CovType22222222222222222,
                                                                      DaysOfWeek: () => DaysOfWeek22222222222222222,
                                                                      DeviceStatus: () => DeviceStatus22222222222222222,
                                                                      DoorAlarmState: () => DoorAlarmState22222222222222222,
                                                                      DoorSecuredStatus: () => DoorSecuredStatus22222222222222222,
                                                                      DoorStatus: () => DoorStatus22222222222222222,
                                                                      DoorValue: () => DoorValue22222222222222222,
                                                                      EnableDisable: () => EnableDisable22222222222222222,
                                                                      EngineeringUnits: () => EngineeringUnits22222222222222222,
                                                                      ErrorClass: () => ErrorClass22222222222222222,
                                                                      ErrorClassName: () => ErrorClassName22222222222222222,
                                                                      ErrorCode: () => ErrorCode22222222222222222,
                                                                      ErrorCodeName: () => ErrorCodeName22222222222222222,
                                                                      EscalatorFault: () => EscalatorFault22222222222222222,
                                                                      EscalatorMode: () => EscalatorMode22222222222222222,
                                                                      EscalatorOperationDirection: () => EscalatorOperationDirection22222222222222222,
                                                                      EventState: () => EventState22222222222222222,
                                                                      EventTransitionBits: () => EventTransitionBits22222222222222222,
                                                                      EventType: () => EventType22222222222222222,
                                                                      FaultType: () => FaultType22222222222222222,
                                                                      FileAccessMethod: () => FileAccessMethod22222222222222222,
                                                                      IPMode: () => IPMode22222222222222222,
                                                                      LifeSafetyMode: () => LifeSafetyMode22222222222222222,
                                                                      LifeSafetyOperation: () => LifeSafetyOperation22222222222222222,
                                                                      LifeSafetyState: () => LifeSafetyState22222222222222222,
                                                                      LiftCarDirection: () => LiftCarDirection22222222222222222,
                                                                      LiftCarDoorCommand: () => LiftCarDoorCommand22222222222222222,
                                                                      LiftCarDriveStatus: () => LiftCarDriveStatus22222222222222222,
                                                                      LiftCarMode: () => LiftCarMode22222222222222222,
                                                                      LiftFault: () => LiftFault22222222222222222,
                                                                      LiftGroupMode: () => LiftGroupMode22222222222222222,
                                                                      LightingInProgress: () => LightingInProgress22222222222222222,
                                                                      LightingOperation: () => LightingOperation22222222222222222,
                                                                      LightingTransition: () => LightingTransition22222222222222222,
                                                                      LimitEnable: () => LimitEnable22222222222222222,
                                                                      LockStatus: () => LockStatus22222222222222222,
                                                                      LogStatus: () => LogStatus22222222222222222,
                                                                      LoggingType: () => LoggingType22222222222222222,
                                                                      Maintenance: () => Maintenance22222222222222222,
                                                                      MaxApduLengthAccepted: () => MaxApduLengthAccepted22222222222222222,
                                                                      MaxSegmentsAccepted: () => MaxSegmentsAccepted22222222222222222,
                                                                      NetworkLayerMessageType: () => NetworkLayerMessageType22222222222222222,
                                                                      NetworkNumberQuality: () => NetworkNumberQuality22222222222222222,
                                                                      NetworkPortCommand: () => NetworkPortCommand22222222222222222,
                                                                      NetworkType: () => NetworkType22222222222222222,
                                                                      NodeType: () => NodeType22222222222222222,
                                                                      NotifyType: () => NotifyType22222222222222222,
                                                                      NpduControlBit: () => NpduControlBit22222222222222222,
                                                                      NpduControlPriority: () => NpduControlPriority22222222222222222,
                                                                      ObjectType: () => ObjectType22222222222222222,
                                                                      ObjectTypesSupported: () => ObjectTypesSupported22222222222222222,
                                                                      PDU_TYPE_MASK: () => PDU_TYPE_MASK22222222222222222,
                                                                      PduConReqBit: () => PduConReqBit22222222222222222,
                                                                      PduSegAckBit: () => PduSegAckBit22222222222222222,
                                                                      PduType: () => PduType22222222222222222,
                                                                      Polarity: () => Polarity22222222222222222,
                                                                      ProgramError: () => ProgramError22222222222222222,
                                                                      ProgramRequest: () => ProgramRequest22222222222222222,
                                                                      ProgramState: () => ProgramState22222222222222222,
                                                                      PropertyIdentifier: () => PropertyIdentifier22222222222222222,
                                                                      PropertyStates: () => PropertyStates22222222222222222,
                                                                      ProtocolLevel: () => ProtocolLevel22222222222222222,
                                                                      ReadRangeType: () => ReadRangeType22222222222222222,
                                                                      ReinitializedState: () => ReinitializedState22222222222222222,
                                                                      RejectReason: () => RejectReason22222222222222222,
                                                                      Relationship: () => Relationship22222222222222222,
                                                                      Reliability: () => Reliability22222222222222222,
                                                                      RestartReason: () => RestartReason22222222222222222,
                                                                      ResultFlags: () => ResultFlags22222222222222222,
                                                                      SecurityLevel: () => SecurityLevel22222222222222222,
                                                                      SecurityPolicy: () => SecurityPolicy22222222222222222,
                                                                      Segmentation: () => Segmentation22222222222222222,
                                                                      ServicesSupported: () => ServicesSupported22222222222222222,
                                                                      ShedState: () => ShedState22222222222222222,
                                                                      SilencedState: () => SilencedState22222222222222222,
                                                                      StatusFlags: () => StatusFlags22222222222222222,
                                                                      TimeStamp: () => TimeStamp22222222222222222,
                                                                      TimerState: () => TimerState22222222222222222,
                                                                      TimerTransition: () => TimerTransition22222222222222222,
                                                                      UnconfirmedServiceChoice: () => UnconfirmedServiceChoice22222222222222222,
                                                                      VTClass: () => VTClass22222222222222222,
                                                                      WriteStatus: () => WriteStatus22222222222222222,
                                                                      getEnumName: () => getEnumName22222222222222222
                                                                    });
                                                                    var import_debug42222222222222222 = __toESM22222222222222222(require("debug"));
                                                                    var debug52222222222222222 = (0, import_debug42222222222222222.default)("bacnet=enum=debug");
                                                                    var trace32222222222222222 = (0, import_debug42222222222222222.default)("bacnet=enum=trace");
                                                                    function invertEnum22222222222222222(enumToInvert) {
                                                                      const invertedEnum = {};
                                                                      Object.keys(enumToInvert).forEach((key) => {
                                                                        invertedEnum[enumToInvert[key]] = key;
                                                                      });
                                                                      return invertedEnum;
                                                                    }
                                                                    function getEnumName22222222222222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                                                                      if (!Number.isInteger(value)) {
                                                                        throw new Error(
                                                                          'getEnumName() can only be passed an integer value, was given "' + value + '"'
                                                                        );
                                                                      }
                                                                      let foundEntry;
                                                                      try {
                                                                        const invertedGroup = invertEnum22222222222222222(group);
                                                                        foundEntry = invertedGroup[value];
                                                                        if (foundEntry === void 0 && undefinedFallbackValue) {
                                                                          foundEntry = undefinedFallbackValue;
                                                                        }
                                                                        if (foundEntry === void 0) {
                                                                          foundEntry = value.toString();
                                                                        } else if (addNumberValue) {
                                                                          foundEntry += "(" + value + ")";
                                                                        }
                                                                      } catch (e) {
                                                                        trace32222222222222222(e.message);
                                                                        foundEntry = null;
                                                                      }
                                                                      return foundEntry;
                                                                    }
                                                                    var PDU_TYPE_MASK22222222222222222 = 240;
                                                                    var ASN1_MAX_OBJECT22222222222222222 = 1023;
                                                                    var ASN1_INSTANCE_BITS22222222222222222 = 22;
                                                                    var ASN1_MAX_INSTANCE22222222222222222 = 4194303;
                                                                    var ASN1_MAX_BITSTRING_BYTES22222222222222222 = 15;
                                                                    var ASN1_ARRAY_ALL22222222222222222 = 4294967295;
                                                                    var ASN1_NO_PRIORITY22222222222222222 = 0;
                                                                    var ASN1_MIN_PRIORITY22222222222222222 = 1;
                                                                    var ASN1_MAX_PRIORITY22222222222222222 = 16;
                                                                    var ASN1_MAX_APPLICATION_TAG22222222222222222 = 16;
                                                                    var ASN1_MAX_OBJECT_TYPE22222222222222222 = 1024;
                                                                    var ASN1_MAX_PROPERTY_ID22222222222222222 = 4194303;
                                                                    var BVLL_TYPE_BACNET_IP22222222222222222 = 129;
                                                                    var BVLC_HEADER_LENGTH32222222222222222 = 4;
                                                                    var ConfirmedServiceChoice22222222222222222 = /* @__PURE__ */ ((ConfirmedServiceChoice222222222222222222) => {
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["READ_RANGE"] = 26] = "READ_RANGE";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                                      ConfirmedServiceChoice222222222222222222[ConfirmedServiceChoice222222222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                                      return ConfirmedServiceChoice222222222222222222;
                                                                    })(ConfirmedServiceChoice22222222222222222 || {});
                                                                    var UnconfirmedServiceChoice22222222222222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice222222222222222222) => {
                                                                      UnconfirmedServiceChoice222222222222222222[UnconfirmedServiceChoice222222222222222222["I_AM"] = 0] = "I_AM";
                                                                      UnconfirmedServiceChoice222222222222222222[UnconfirmedServiceChoice222222222222222222["I_HAVE"] = 1] = "I_HAVE";
                                                                      UnconfirmedServiceChoice222222222222222222[UnconfirmedServiceChoice222222222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                                                                      UnconfirmedServiceChoice222222222222222222[UnconfirmedServiceChoice222222222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                                      UnconfirmedServiceChoice222222222222222222[UnconfirmedServiceChoice222222222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                                      UnconfirmedServiceChoice222222222222222222[UnconfirmedServiceChoice222222222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                                                                      UnconfirmedServiceChoice222222222222222222[UnconfirmedServiceChoice222222222222222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                                                                      UnconfirmedServiceChoice222222222222222222[UnconfirmedServiceChoice222222222222222222["WHO_HAS"] = 7] = "WHO_HAS";
                                                                      UnconfirmedServiceChoice222222222222222222[UnconfirmedServiceChoice222222222222222222["WHO_IS"] = 8] = "WHO_IS";
                                                                      UnconfirmedServiceChoice222222222222222222[UnconfirmedServiceChoice222222222222222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                                                                      UnconfirmedServiceChoice222222222222222222[UnconfirmedServiceChoice222222222222222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                                                                      UnconfirmedServiceChoice222222222222222222[UnconfirmedServiceChoice222222222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                                      return UnconfirmedServiceChoice222222222222222222;
                                                                    })(UnconfirmedServiceChoice22222222222222222 || {});
                                                                    var AbortReason22222222222222222 = /* @__PURE__ */ ((AbortReason222222222222222222) => {
                                                                      AbortReason222222222222222222[AbortReason222222222222222222["OTHER"] = 0] = "OTHER";
                                                                      AbortReason222222222222222222[AbortReason222222222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                                      AbortReason222222222222222222[AbortReason222222222222222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                                                                      AbortReason222222222222222222[AbortReason222222222222222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                                      AbortReason222222222222222222[AbortReason222222222222222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                                                                      AbortReason222222222222222222[AbortReason222222222222222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                                                                      AbortReason222222222222222222[AbortReason222222222222222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                                                                      AbortReason222222222222222222[AbortReason222222222222222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                                                                      AbortReason222222222222222222[AbortReason222222222222222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                                                                      AbortReason222222222222222222[AbortReason222222222222222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                                                                      AbortReason222222222222222222[AbortReason222222222222222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                                                                      AbortReason222222222222222222[AbortReason222222222222222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                                                                      return AbortReason222222222222222222;
                                                                    })(AbortReason22222222222222222 || {});
                                                                    var RejectReason22222222222222222 = /* @__PURE__ */ ((RejectReason222222222222222222) => {
                                                                      RejectReason222222222222222222[RejectReason222222222222222222["OTHER"] = 0] = "OTHER";
                                                                      RejectReason222222222222222222[RejectReason222222222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                                      RejectReason222222222222222222[RejectReason222222222222222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                                                                      RejectReason222222222222222222[RejectReason222222222222222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                                                                      RejectReason222222222222222222[RejectReason222222222222222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                                                                      RejectReason222222222222222222[RejectReason222222222222222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                                                                      RejectReason222222222222222222[RejectReason222222222222222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                                                                      RejectReason222222222222222222[RejectReason222222222222222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                                                                      RejectReason222222222222222222[RejectReason222222222222222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                                                                      RejectReason222222222222222222[RejectReason222222222222222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                                                                      return RejectReason222222222222222222;
                                                                    })(RejectReason22222222222222222 || {});
                                                                    var ErrorClass22222222222222222 = /* @__PURE__ */ ((ErrorClass222222222222222222) => {
                                                                      ErrorClass222222222222222222[ErrorClass222222222222222222["DEVICE"] = 0] = "DEVICE";
                                                                      ErrorClass222222222222222222[ErrorClass222222222222222222["OBJECT"] = 1] = "OBJECT";
                                                                      ErrorClass222222222222222222[ErrorClass222222222222222222["PROPERTY"] = 2] = "PROPERTY";
                                                                      ErrorClass222222222222222222[ErrorClass222222222222222222["RESOURCES"] = 3] = "RESOURCES";
                                                                      ErrorClass222222222222222222[ErrorClass222222222222222222["SECURITY"] = 4] = "SECURITY";
                                                                      ErrorClass222222222222222222[ErrorClass222222222222222222["SERVICES"] = 5] = "SERVICES";
                                                                      ErrorClass222222222222222222[ErrorClass222222222222222222["VT"] = 6] = "VT";
                                                                      ErrorClass222222222222222222[ErrorClass222222222222222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                                                                      return ErrorClass222222222222222222;
                                                                    })(ErrorClass22222222222222222 || {});
                                                                    var ErrorClassName22222222222222222 = invertEnum22222222222222222(
                                                                      ErrorClass22222222222222222
                                                                    );
                                                                    var ErrorCode22222222222222222 = /* @__PURE__ */ ((ErrorCode222222222222222222) => {
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["BUSY"] = 82] = "BUSY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["FILE_FULL"] = 128] = "FILE_FULL";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["OTHER"] = 0] = "OTHER";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["SUCCESS"] = 84] = "SUCCESS";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["TIMEOUT"] = 30] = "TIMEOUT";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                                                                      ErrorCode222222222222222222[ErrorCode222222222222222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                                                                      return ErrorCode222222222222222222;
                                                                    })(ErrorCode22222222222222222 || {});
                                                                    var ErrorCodeName22222222222222222 = invertEnum22222222222222222(
                                                                      ErrorCode22222222222222222
                                                                    );
                                                                    var AccessAuthenticationFactorDisable22222222222222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable222222222222222222) => {
                                                                      AccessAuthenticationFactorDisable222222222222222222[AccessAuthenticationFactorDisable222222222222222222["NONE"] = 0] = "NONE";
                                                                      AccessAuthenticationFactorDisable222222222222222222[AccessAuthenticationFactorDisable222222222222222222["DISABLED"] = 1] = "DISABLED";
                                                                      AccessAuthenticationFactorDisable222222222222222222[AccessAuthenticationFactorDisable222222222222222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                                                                      AccessAuthenticationFactorDisable222222222222222222[AccessAuthenticationFactorDisable222222222222222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                                                                      AccessAuthenticationFactorDisable222222222222222222[AccessAuthenticationFactorDisable222222222222222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                                                                      AccessAuthenticationFactorDisable222222222222222222[AccessAuthenticationFactorDisable222222222222222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                                                                      return AccessAuthenticationFactorDisable222222222222222222;
                                                                    })(AccessAuthenticationFactorDisable22222222222222222 || {});
                                                                    var AccessCredentialDisable22222222222222222 = /* @__PURE__ */ ((AccessCredentialDisable222222222222222222) => {
                                                                      AccessCredentialDisable222222222222222222[AccessCredentialDisable222222222222222222["NONE"] = 0] = "NONE";
                                                                      AccessCredentialDisable222222222222222222[AccessCredentialDisable222222222222222222["DISABLE"] = 1] = "DISABLE";
                                                                      AccessCredentialDisable222222222222222222[AccessCredentialDisable222222222222222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                                                                      AccessCredentialDisable222222222222222222[AccessCredentialDisable222222222222222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                                                                      return AccessCredentialDisable222222222222222222;
                                                                    })(AccessCredentialDisable22222222222222222 || {});
                                                                    var AccessCredentialDisableReason22222222222222222 = /* @__PURE__ */ ((AccessCredentialDisableReason222222222222222222) => {
                                                                      AccessCredentialDisableReason222222222222222222[AccessCredentialDisableReason222222222222222222["DISABLED"] = 0] = "DISABLED";
                                                                      AccessCredentialDisableReason222222222222222222[AccessCredentialDisableReason222222222222222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                                                                      AccessCredentialDisableReason222222222222222222[AccessCredentialDisableReason222222222222222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                                                                      AccessCredentialDisableReason222222222222222222[AccessCredentialDisableReason222222222222222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                                                                      AccessCredentialDisableReason222222222222222222[AccessCredentialDisableReason222222222222222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                                                                      AccessCredentialDisableReason222222222222222222[AccessCredentialDisableReason222222222222222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                                                                      AccessCredentialDisableReason222222222222222222[AccessCredentialDisableReason222222222222222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                                                                      AccessCredentialDisableReason222222222222222222[AccessCredentialDisableReason222222222222222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                                                                      AccessCredentialDisableReason222222222222222222[AccessCredentialDisableReason222222222222222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                                                                      AccessCredentialDisableReason222222222222222222[AccessCredentialDisableReason222222222222222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                                                                      return AccessCredentialDisableReason222222222222222222;
                                                                    })(AccessCredentialDisableReason22222222222222222 || {});
                                                                    var AccessEvent22222222222222222 = /* @__PURE__ */ ((AccessEvent222222222222222222) => {
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["NONE"] = 0] = "NONE";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["GRANTED"] = 1] = "GRANTED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["MUSTER"] = 2] = "MUSTER";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DURESS"] = 4] = "DURESS";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["TRACE"] = 5] = "TRACE";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                                                                      AccessEvent222222222222222222[AccessEvent222222222222222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                                                                      return AccessEvent222222222222222222;
                                                                    })(AccessEvent22222222222222222 || {});
                                                                    var AccessPassbackMode22222222222222222 = /* @__PURE__ */ ((AccessPassbackMode222222222222222222) => {
                                                                      AccessPassbackMode222222222222222222[AccessPassbackMode222222222222222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                                                                      AccessPassbackMode222222222222222222[AccessPassbackMode222222222222222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                                                                      AccessPassbackMode222222222222222222[AccessPassbackMode222222222222222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                                                                      return AccessPassbackMode222222222222222222;
                                                                    })(AccessPassbackMode22222222222222222 || {});
                                                                    var AccessUserType22222222222222222 = /* @__PURE__ */ ((AccessUserType222222222222222222) => {
                                                                      AccessUserType222222222222222222[AccessUserType222222222222222222["ASSET"] = 0] = "ASSET";
                                                                      AccessUserType222222222222222222[AccessUserType222222222222222222["GROUP"] = 1] = "GROUP";
                                                                      AccessUserType222222222222222222[AccessUserType222222222222222222["PERSON"] = 2] = "PERSON";
                                                                      return AccessUserType222222222222222222;
                                                                    })(AccessUserType22222222222222222 || {});
                                                                    var AccessZoneOccupancyState22222222222222222 = /* @__PURE__ */ ((AccessZoneOccupancyState222222222222222222) => {
                                                                      AccessZoneOccupancyState222222222222222222[AccessZoneOccupancyState222222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                      AccessZoneOccupancyState222222222222222222[AccessZoneOccupancyState222222222222222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                                                                      AccessZoneOccupancyState222222222222222222[AccessZoneOccupancyState222222222222222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                                                                      AccessZoneOccupancyState222222222222222222[AccessZoneOccupancyState222222222222222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                                                                      AccessZoneOccupancyState222222222222222222[AccessZoneOccupancyState222222222222222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                                                                      AccessZoneOccupancyState222222222222222222[AccessZoneOccupancyState222222222222222222["DISABLED"] = 5] = "DISABLED";
                                                                      AccessZoneOccupancyState222222222222222222[AccessZoneOccupancyState222222222222222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                                                                      return AccessZoneOccupancyState222222222222222222;
                                                                    })(AccessZoneOccupancyState22222222222222222 || {});
                                                                    var Action22222222222222222 = /* @__PURE__ */ ((Action222222222222222222) => {
                                                                      Action222222222222222222[Action222222222222222222["DIRECT"] = 0] = "DIRECT";
                                                                      Action222222222222222222[Action222222222222222222["REVERSE"] = 1] = "REVERSE";
                                                                      return Action222222222222222222;
                                                                    })(Action22222222222222222 || {});
                                                                    var AuthenticationFactorType22222222222222222 = /* @__PURE__ */ ((AuthenticationFactorType222222222222222222) => {
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["UNDEFINED"] = 0] = "UNDEFINED";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["ERROR"] = 1] = "ERROR";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["CUSTOM"] = 2] = "CUSTOM";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["WIEGAND26"] = 8] = "WIEGAND26";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["WIEGAND37"] = 9] = "WIEGAND37";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["FASC_N"] = 13] = "FASC_N";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["GSA75"] = 17] = "GSA75";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["CHUID"] = 18] = "CHUID";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["GUID"] = 20] = "GUID";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["CBEFF_A"] = 21] = "CBEFF_A";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["CBEFF_B"] = 22] = "CBEFF_B";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["CBEFF_C"] = 23] = "CBEFF_C";
                                                                      AuthenticationFactorType222222222222222222[AuthenticationFactorType222222222222222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                                                                      return AuthenticationFactorType222222222222222222;
                                                                    })(AuthenticationFactorType22222222222222222 || {});
                                                                    var AuthenticationStatus22222222222222222 = /* @__PURE__ */ ((AuthenticationStatus222222222222222222) => {
                                                                      AuthenticationStatus222222222222222222[AuthenticationStatus222222222222222222["NOT_READY"] = 0] = "NOT_READY";
                                                                      AuthenticationStatus222222222222222222[AuthenticationStatus222222222222222222["READY"] = 1] = "READY";
                                                                      AuthenticationStatus222222222222222222[AuthenticationStatus222222222222222222["DISABLED"] = 2] = "DISABLED";
                                                                      AuthenticationStatus222222222222222222[AuthenticationStatus222222222222222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                                                                      AuthenticationStatus222222222222222222[AuthenticationStatus222222222222222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                                                                      AuthenticationStatus222222222222222222[AuthenticationStatus222222222222222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                                                                      AuthenticationStatus222222222222222222[AuthenticationStatus222222222222222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                                                                      return AuthenticationStatus222222222222222222;
                                                                    })(AuthenticationStatus22222222222222222 || {});
                                                                    var AuthorizationExemption22222222222222222 = /* @__PURE__ */ ((AuthorizationExemption222222222222222222) => {
                                                                      AuthorizationExemption222222222222222222[AuthorizationExemption222222222222222222["PASSBACK"] = 0] = "PASSBACK";
                                                                      AuthorizationExemption222222222222222222[AuthorizationExemption222222222222222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                                                                      AuthorizationExemption222222222222222222[AuthorizationExemption222222222222222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                                                                      AuthorizationExemption222222222222222222[AuthorizationExemption222222222222222222["LOCKOUT"] = 3] = "LOCKOUT";
                                                                      AuthorizationExemption222222222222222222[AuthorizationExemption222222222222222222["DENY"] = 4] = "DENY";
                                                                      AuthorizationExemption222222222222222222[AuthorizationExemption222222222222222222["VERIFICATION"] = 5] = "VERIFICATION";
                                                                      AuthorizationExemption222222222222222222[AuthorizationExemption222222222222222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                                                                      return AuthorizationExemption222222222222222222;
                                                                    })(AuthorizationExemption22222222222222222 || {});
                                                                    var AuthorizationMode22222222222222222 = /* @__PURE__ */ ((AuthorizationMode222222222222222222) => {
                                                                      AuthorizationMode222222222222222222[AuthorizationMode222222222222222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                                                                      AuthorizationMode222222222222222222[AuthorizationMode222222222222222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                                                                      AuthorizationMode222222222222222222[AuthorizationMode222222222222222222["DENY_ALL"] = 2] = "DENY_ALL";
                                                                      AuthorizationMode222222222222222222[AuthorizationMode222222222222222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                                                                      AuthorizationMode222222222222222222[AuthorizationMode222222222222222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                                                                      AuthorizationMode222222222222222222[AuthorizationMode222222222222222222["NONE"] = 5] = "NONE";
                                                                      return AuthorizationMode222222222222222222;
                                                                    })(AuthorizationMode22222222222222222 || {});
                                                                    var BackupState22222222222222222 = /* @__PURE__ */ ((BackupState222222222222222222) => {
                                                                      BackupState222222222222222222[BackupState222222222222222222["IDLE"] = 0] = "IDLE";
                                                                      BackupState222222222222222222[BackupState222222222222222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                                                                      BackupState222222222222222222[BackupState222222222222222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                                                                      BackupState222222222222222222[BackupState222222222222222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                                                                      BackupState222222222222222222[BackupState222222222222222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                                                                      BackupState222222222222222222[BackupState222222222222222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                                                                      BackupState222222222222222222[BackupState222222222222222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                                                                      return BackupState222222222222222222;
                                                                    })(BackupState22222222222222222 || {});
                                                                    var BinaryLightingPV22222222222222222 = /* @__PURE__ */ ((BinaryLightingPV222222222222222222) => {
                                                                      BinaryLightingPV222222222222222222[BinaryLightingPV222222222222222222["OFF"] = 0] = "OFF";
                                                                      BinaryLightingPV222222222222222222[BinaryLightingPV222222222222222222["ON"] = 1] = "ON";
                                                                      BinaryLightingPV222222222222222222[BinaryLightingPV222222222222222222["WARN"] = 2] = "WARN";
                                                                      BinaryLightingPV222222222222222222[BinaryLightingPV222222222222222222["WARN_OFF"] = 3] = "WARN_OFF";
                                                                      BinaryLightingPV222222222222222222[BinaryLightingPV222222222222222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                                                                      BinaryLightingPV222222222222222222[BinaryLightingPV222222222222222222["STOP"] = 5] = "STOP";
                                                                      return BinaryLightingPV222222222222222222;
                                                                    })(BinaryLightingPV22222222222222222 || {});
                                                                    var BinaryPV22222222222222222 = /* @__PURE__ */ ((BinaryPV222222222222222222) => {
                                                                      BinaryPV222222222222222222[BinaryPV222222222222222222["INACTIVE"] = 0] = "INACTIVE";
                                                                      BinaryPV222222222222222222[BinaryPV222222222222222222["ACTIVE"] = 1] = "ACTIVE";
                                                                      return BinaryPV222222222222222222;
                                                                    })(BinaryPV22222222222222222 || {});
                                                                    var DeviceStatus22222222222222222 = /* @__PURE__ */ ((DeviceStatus222222222222222222) => {
                                                                      DeviceStatus222222222222222222[DeviceStatus222222222222222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                                                                      DeviceStatus222222222222222222[DeviceStatus222222222222222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                                                                      DeviceStatus222222222222222222[DeviceStatus222222222222222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                                                                      DeviceStatus222222222222222222[DeviceStatus222222222222222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                                                                      DeviceStatus222222222222222222[DeviceStatus222222222222222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                                                                      DeviceStatus222222222222222222[DeviceStatus222222222222222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                                                                      return DeviceStatus222222222222222222;
                                                                    })(DeviceStatus22222222222222222 || {});
                                                                    var DoorAlarmState22222222222222222 = /* @__PURE__ */ ((DoorAlarmState222222222222222222) => {
                                                                      DoorAlarmState222222222222222222[DoorAlarmState222222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                      DoorAlarmState222222222222222222[DoorAlarmState222222222222222222["ALARM"] = 1] = "ALARM";
                                                                      DoorAlarmState222222222222222222[DoorAlarmState222222222222222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                                                                      DoorAlarmState222222222222222222[DoorAlarmState222222222222222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                                                                      DoorAlarmState222222222222222222[DoorAlarmState222222222222222222["TAMPER"] = 4] = "TAMPER";
                                                                      DoorAlarmState222222222222222222[DoorAlarmState222222222222222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                                                                      DoorAlarmState222222222222222222[DoorAlarmState222222222222222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                                                                      DoorAlarmState222222222222222222[DoorAlarmState222222222222222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                                                                      DoorAlarmState222222222222222222[DoorAlarmState222222222222222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                                                                      return DoorAlarmState222222222222222222;
                                                                    })(DoorAlarmState22222222222222222 || {});
                                                                    var DoorSecuredStatus22222222222222222 = /* @__PURE__ */ ((DoorSecuredStatus222222222222222222) => {
                                                                      DoorSecuredStatus222222222222222222[DoorSecuredStatus222222222222222222["SECURED"] = 0] = "SECURED";
                                                                      DoorSecuredStatus222222222222222222[DoorSecuredStatus222222222222222222["UNSECURED"] = 1] = "UNSECURED";
                                                                      DoorSecuredStatus222222222222222222[DoorSecuredStatus222222222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                                      return DoorSecuredStatus222222222222222222;
                                                                    })(DoorSecuredStatus22222222222222222 || {});
                                                                    var DoorStatus22222222222222222 = /* @__PURE__ */ ((DoorStatus222222222222222222) => {
                                                                      DoorStatus222222222222222222[DoorStatus222222222222222222["CLOSED"] = 0] = "CLOSED";
                                                                      DoorStatus222222222222222222[DoorStatus222222222222222222["OPENED"] = 1] = "OPENED";
                                                                      DoorStatus222222222222222222[DoorStatus222222222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                                      DoorStatus222222222222222222[DoorStatus222222222222222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                                                                      DoorStatus222222222222222222[DoorStatus222222222222222222["UNUSED"] = 4] = "UNUSED";
                                                                      DoorStatus222222222222222222[DoorStatus222222222222222222["NONE"] = 5] = "NONE";
                                                                      DoorStatus222222222222222222[DoorStatus222222222222222222["CLOSING"] = 6] = "CLOSING";
                                                                      DoorStatus222222222222222222[DoorStatus222222222222222222["OPENING"] = 7] = "OPENING";
                                                                      DoorStatus222222222222222222[DoorStatus222222222222222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                                                                      DoorStatus222222222222222222[DoorStatus222222222222222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                                                                      return DoorStatus222222222222222222;
                                                                    })(DoorStatus22222222222222222 || {});
                                                                    var DoorValue22222222222222222 = /* @__PURE__ */ ((DoorValue222222222222222222) => {
                                                                      DoorValue222222222222222222[DoorValue222222222222222222["LOCK"] = 0] = "LOCK";
                                                                      DoorValue222222222222222222[DoorValue222222222222222222["UNLOCK"] = 1] = "UNLOCK";
                                                                      DoorValue222222222222222222[DoorValue222222222222222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                                                                      DoorValue222222222222222222[DoorValue222222222222222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                                                                      return DoorValue222222222222222222;
                                                                    })(DoorValue22222222222222222 || {});
                                                                    var EngineeringUnits22222222222222222 = /* @__PURE__ */ ((EngineeringUnits222222222222222222) => {
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CURRENCY1"] = 105] = "CURRENCY1";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CURRENCY2"] = 106] = "CURRENCY2";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CURRENCY3"] = 107] = "CURRENCY3";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CURRENCY4"] = 108] = "CURRENCY4";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CURRENCY5"] = 109] = "CURRENCY5";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CURRENCY6"] = 110] = "CURRENCY6";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CURRENCY7"] = 111] = "CURRENCY7";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CURRENCY8"] = 112] = "CURRENCY8";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CURRENCY9"] = 113] = "CURRENCY9";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CURRENCY10"] = 114] = "CURRENCY10";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["AMPERES"] = 3] = "AMPERES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DECIBELS"] = 199] = "DECIBELS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["FARADS"] = 170] = "FARADS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["HENRYS"] = 171] = "HENRYS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["OHMS"] = 4] = "OHMS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["OHM_METERS"] = 172] = "OHM_METERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOHMS"] = 122] = "KILOHMS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGOHMS"] = 123] = "MEGOHMS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["SIEMENS"] = 173] = "SIEMENS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["TESLAS"] = 175] = "TESLAS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["VOLTS"] = 5] = "VOLTS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["WEBERS"] = 178] = "WEBERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["JOULES"] = 16] = "JOULES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOJOULES"] = 17] = "KILOJOULES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["BTUS"] = 20] = "BTUS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["THERMS"] = 21] = "THERMS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["TON_HOURS"] = 22] = "TON_HOURS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["NEWTON"] = 153] = "NEWTON";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["HERTZ"] = 27] = "HERTZ";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PER_HOUR"] = 131] = "PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MICROMETERS"] = 194] = "MICROMETERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOMETERS"] = 193] = "KILOMETERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["METERS"] = 31] = "METERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["INCHES"] = 32] = "INCHES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["FEET"] = 33] = "FEET";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CANDELAS"] = 179] = "CANDELAS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["LUMENS"] = 36] = "LUMENS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["LUXES"] = 37] = "LUXES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["GRAMS"] = 195] = "GRAMS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["TONS"] = 41] = "TONS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["WATTS"] = 47] = "WATTS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOWATTS"] = 48] = "KILOWATTS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PASCALS"] = 53] = "PASCALS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIBARS"] = 134] = "MILLIBARS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["BARS"] = 55] = "BARS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["YEARS"] = 67] = "YEARS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MONTHS"] = 68] = "MONTHS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["WEEKS"] = 69] = "WEEKS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DAYS"] = 70] = "DAYS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["HOURS"] = 71] = "HOURS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MINUTES"] = 72] = "MINUTES";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["SECONDS"] = 73] = "SECONDS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLILITERS"] = 197] = "MILLILITERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["LITERS"] = 82] = "LITERS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["US_GALLONS"] = 83] = "US_GALLONS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["NO_UNITS"] = 95] = "NO_UNITS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PERCENT"] = 98] = "PERCENT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PER_SECOND"] = 101] = "PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["RADIANS"] = 103] = "RADIANS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PER_MILLE"] = 207] = "PER_MILLE";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["BECQUERELS"] = 222] = "BECQUERELS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["GRAY"] = 225] = "GRAY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MICROGRAY"] = 227] = "MICROGRAY";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["SIEVERTS"] = 228] = "SIEVERTS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIREMS"] = 47814] = "MILLIREMS";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["PH"] = 234] = "PH";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                                                                      EngineeringUnits222222222222222222[EngineeringUnits222222222222222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                                                                      return EngineeringUnits222222222222222222;
                                                                    })(EngineeringUnits22222222222222222 || {});
                                                                    var EscalatorFault22222222222222222 = /* @__PURE__ */ ((EscalatorFault222222222222222222) => {
                                                                      EscalatorFault222222222222222222[EscalatorFault222222222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                                      EscalatorFault222222222222222222[EscalatorFault222222222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                                      EscalatorFault222222222222222222[EscalatorFault222222222222222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                                                                      EscalatorFault222222222222222222[EscalatorFault222222222222222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                                                                      EscalatorFault222222222222222222[EscalatorFault222222222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                                      EscalatorFault222222222222222222[EscalatorFault222222222222222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                                                                      EscalatorFault222222222222222222[EscalatorFault222222222222222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                                                                      EscalatorFault222222222222222222[EscalatorFault222222222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                                      EscalatorFault222222222222222222[EscalatorFault222222222222222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                                                                      return EscalatorFault222222222222222222;
                                                                    })(EscalatorFault22222222222222222 || {});
                                                                    var EscalatorMode22222222222222222 = /* @__PURE__ */ ((EscalatorMode222222222222222222) => {
                                                                      EscalatorMode222222222222222222[EscalatorMode222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                      EscalatorMode222222222222222222[EscalatorMode222222222222222222["STOP"] = 1] = "STOP";
                                                                      EscalatorMode222222222222222222[EscalatorMode222222222222222222["UP"] = 2] = "UP";
                                                                      EscalatorMode222222222222222222[EscalatorMode222222222222222222["DOWN"] = 3] = "DOWN";
                                                                      EscalatorMode222222222222222222[EscalatorMode222222222222222222["INSPECTION"] = 4] = "INSPECTION";
                                                                      EscalatorMode222222222222222222[EscalatorMode222222222222222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                                                                      return EscalatorMode222222222222222222;
                                                                    })(EscalatorMode22222222222222222 || {});
                                                                    var EscalatorOperationDirection22222222222222222 = /* @__PURE__ */ ((EscalatorOperationDirection222222222222222222) => {
                                                                      EscalatorOperationDirection222222222222222222[EscalatorOperationDirection222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                      EscalatorOperationDirection222222222222222222[EscalatorOperationDirection222222222222222222["STOPPED"] = 1] = "STOPPED";
                                                                      EscalatorOperationDirection222222222222222222[EscalatorOperationDirection222222222222222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                                                                      EscalatorOperationDirection222222222222222222[EscalatorOperationDirection222222222222222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                                                                      EscalatorOperationDirection222222222222222222[EscalatorOperationDirection222222222222222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                                                                      EscalatorOperationDirection222222222222222222[EscalatorOperationDirection222222222222222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                                                                      return EscalatorOperationDirection222222222222222222;
                                                                    })(EscalatorOperationDirection22222222222222222 || {});
                                                                    var EventState22222222222222222 = /* @__PURE__ */ ((EventState222222222222222222) => {
                                                                      EventState222222222222222222[EventState222222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                      EventState222222222222222222[EventState222222222222222222["FAULT"] = 1] = "FAULT";
                                                                      EventState222222222222222222[EventState222222222222222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                                                                      EventState222222222222222222[EventState222222222222222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                                                                      EventState222222222222222222[EventState222222222222222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                                                                      EventState222222222222222222[EventState222222222222222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                                                                      return EventState222222222222222222;
                                                                    })(EventState22222222222222222 || {});
                                                                    var EventType22222222222222222 = /* @__PURE__ */ ((EventType222222222222222222) => {
                                                                      EventType222222222222222222[EventType222222222222222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                                                                      EventType222222222222222222[EventType222222222222222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                                                                      EventType222222222222222222[EventType222222222222222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                                                                      EventType222222222222222222[EventType222222222222222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                                                                      EventType222222222222222222[EventType222222222222222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                                                                      EventType222222222222222222[EventType222222222222222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                                                                      EventType222222222222222222[EventType222222222222222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                                                                      EventType222222222222222222[EventType222222222222222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                                                                      EventType222222222222222222[EventType222222222222222222["EXTENDED"] = 9] = "EXTENDED";
                                                                      EventType222222222222222222[EventType222222222222222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                                                                      EventType222222222222222222[EventType222222222222222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                                                                      EventType222222222222222222[EventType222222222222222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                                                                      EventType222222222222222222[EventType222222222222222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                                                                      EventType222222222222222222[EventType222222222222222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                                                                      EventType222222222222222222[EventType222222222222222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                                                                      EventType222222222222222222[EventType222222222222222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                                                                      EventType222222222222222222[EventType222222222222222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                                                                      EventType222222222222222222[EventType222222222222222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                                                                      EventType222222222222222222[EventType222222222222222222["NONE"] = 20] = "NONE";
                                                                      EventType222222222222222222[EventType222222222222222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                                                                      EventType222222222222222222[EventType222222222222222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                                                                      return EventType222222222222222222;
                                                                    })(EventType22222222222222222 || {});
                                                                    var FaultType22222222222222222 = /* @__PURE__ */ ((FaultType222222222222222222) => {
                                                                      FaultType222222222222222222[FaultType222222222222222222["NONE"] = 0] = "NONE";
                                                                      FaultType222222222222222222[FaultType222222222222222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                                                                      FaultType222222222222222222[FaultType222222222222222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                                                                      FaultType222222222222222222[FaultType222222222222222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                                                                      FaultType222222222222222222[FaultType222222222222222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                                                                      FaultType222222222222222222[FaultType222222222222222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                                                                      FaultType222222222222222222[FaultType222222222222222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                                                                      FaultType222222222222222222[FaultType222222222222222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                                                                      return FaultType222222222222222222;
                                                                    })(FaultType22222222222222222 || {});
                                                                    var FileAccessMethod22222222222222222 = /* @__PURE__ */ ((FileAccessMethod222222222222222222) => {
                                                                      FileAccessMethod222222222222222222[FileAccessMethod222222222222222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                                                                      FileAccessMethod222222222222222222[FileAccessMethod222222222222222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                                                                      return FileAccessMethod222222222222222222;
                                                                    })(FileAccessMethod22222222222222222 || {});
                                                                    var IPMode22222222222222222 = /* @__PURE__ */ ((IPMode222222222222222222) => {
                                                                      IPMode222222222222222222[IPMode222222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                      IPMode222222222222222222[IPMode222222222222222222["FOREIGN"] = 1] = "FOREIGN";
                                                                      IPMode222222222222222222[IPMode222222222222222222["BBMD"] = 2] = "BBMD";
                                                                      return IPMode222222222222222222;
                                                                    })(IPMode22222222222222222 || {});
                                                                    var LifeSafetyMode22222222222222222 = /* @__PURE__ */ ((LifeSafetyMode222222222222222222) => {
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["OFF"] = 0] = "OFF";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["ON"] = 1] = "ON";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["TEST"] = 2] = "TEST";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["MANNED"] = 3] = "MANNED";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["UNMANNED"] = 4] = "UNMANNED";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["ARMED"] = 5] = "ARMED";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["DISARMED"] = 6] = "DISARMED";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["PREARMED"] = 7] = "PREARMED";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["SLOW"] = 8] = "SLOW";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["FAST"] = 9] = "FAST";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["ENABLED"] = 11] = "ENABLED";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["DISABLED"] = 12] = "DISABLED";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                                                                      LifeSafetyMode222222222222222222[LifeSafetyMode222222222222222222["DEFAULT"] = 14] = "DEFAULT";
                                                                      return LifeSafetyMode222222222222222222;
                                                                    })(LifeSafetyMode22222222222222222 || {});
                                                                    var LifeSafetyOperation22222222222222222 = /* @__PURE__ */ ((LifeSafetyOperation222222222222222222) => {
                                                                      LifeSafetyOperation222222222222222222[LifeSafetyOperation222222222222222222["NONE"] = 0] = "NONE";
                                                                      LifeSafetyOperation222222222222222222[LifeSafetyOperation222222222222222222["SILENCE"] = 1] = "SILENCE";
                                                                      LifeSafetyOperation222222222222222222[LifeSafetyOperation222222222222222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                                                                      LifeSafetyOperation222222222222222222[LifeSafetyOperation222222222222222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                                                                      LifeSafetyOperation222222222222222222[LifeSafetyOperation222222222222222222["RESET"] = 4] = "RESET";
                                                                      LifeSafetyOperation222222222222222222[LifeSafetyOperation222222222222222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                                                                      LifeSafetyOperation222222222222222222[LifeSafetyOperation222222222222222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                                                                      LifeSafetyOperation222222222222222222[LifeSafetyOperation222222222222222222["UNSILENCE"] = 7] = "UNSILENCE";
                                                                      LifeSafetyOperation222222222222222222[LifeSafetyOperation222222222222222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                                                                      LifeSafetyOperation222222222222222222[LifeSafetyOperation222222222222222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                                                                      return LifeSafetyOperation222222222222222222;
                                                                    })(LifeSafetyOperation22222222222222222 || {});
                                                                    var LifeSafetyState22222222222222222 = /* @__PURE__ */ ((LifeSafetyState222222222222222222) => {
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["QUIET"] = 0] = "QUIET";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["ALARM"] = 2] = "ALARM";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["FAULT"] = 3] = "FAULT";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["NOT_READY"] = 6] = "NOT_READY";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["ACTIVE"] = 7] = "ACTIVE";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["TAMPER"] = 8] = "TAMPER";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["HOLDUP"] = 13] = "HOLDUP";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["DURESS"] = 14] = "DURESS";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["ABNORMAL"] = 16] = "ABNORMAL";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["DELAYED"] = 18] = "DELAYED";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["BLOCKED"] = 19] = "BLOCKED";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                                                                      LifeSafetyState222222222222222222[LifeSafetyState222222222222222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                                                                      return LifeSafetyState222222222222222222;
                                                                    })(LifeSafetyState22222222222222222 || {});
                                                                    var LiftCarDirection22222222222222222 = /* @__PURE__ */ ((LiftCarDirection222222222222222222) => {
                                                                      LiftCarDirection222222222222222222[LiftCarDirection222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                      LiftCarDirection222222222222222222[LiftCarDirection222222222222222222["NONE"] = 1] = "NONE";
                                                                      LiftCarDirection222222222222222222[LiftCarDirection222222222222222222["STOPPED"] = 2] = "STOPPED";
                                                                      LiftCarDirection222222222222222222[LiftCarDirection222222222222222222["UP"] = 3] = "UP";
                                                                      LiftCarDirection222222222222222222[LiftCarDirection222222222222222222["DOWN"] = 4] = "DOWN";
                                                                      LiftCarDirection222222222222222222[LiftCarDirection222222222222222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                                                                      return LiftCarDirection222222222222222222;
                                                                    })(LiftCarDirection22222222222222222 || {});
                                                                    var LiftCarDoorCommand22222222222222222 = /* @__PURE__ */ ((LiftCarDoorCommand222222222222222222) => {
                                                                      LiftCarDoorCommand222222222222222222[LiftCarDoorCommand222222222222222222["NONE"] = 0] = "NONE";
                                                                      LiftCarDoorCommand222222222222222222[LiftCarDoorCommand222222222222222222["OPEN"] = 1] = "OPEN";
                                                                      LiftCarDoorCommand222222222222222222[LiftCarDoorCommand222222222222222222["CLOSE"] = 2] = "CLOSE";
                                                                      return LiftCarDoorCommand222222222222222222;
                                                                    })(LiftCarDoorCommand22222222222222222 || {});
                                                                    var LiftCarDriveStatus22222222222222222 = /* @__PURE__ */ ((LiftCarDriveStatus222222222222222222) => {
                                                                      LiftCarDriveStatus222222222222222222[LiftCarDriveStatus222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                      LiftCarDriveStatus222222222222222222[LiftCarDriveStatus222222222222222222["STATIONARY"] = 1] = "STATIONARY";
                                                                      LiftCarDriveStatus222222222222222222[LiftCarDriveStatus222222222222222222["BRAKING"] = 2] = "BRAKING";
                                                                      LiftCarDriveStatus222222222222222222[LiftCarDriveStatus222222222222222222["ACCELERATE"] = 3] = "ACCELERATE";
                                                                      LiftCarDriveStatus222222222222222222[LiftCarDriveStatus222222222222222222["DECELERATE"] = 4] = "DECELERATE";
                                                                      LiftCarDriveStatus222222222222222222[LiftCarDriveStatus222222222222222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                                                                      LiftCarDriveStatus222222222222222222[LiftCarDriveStatus222222222222222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                                                                      LiftCarDriveStatus222222222222222222[LiftCarDriveStatus222222222222222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                                                                      LiftCarDriveStatus222222222222222222[LiftCarDriveStatus222222222222222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                                                                      LiftCarDriveStatus222222222222222222[LiftCarDriveStatus222222222222222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                                                                      return LiftCarDriveStatus222222222222222222;
                                                                    })(LiftCarDriveStatus22222222222222222 || {});
                                                                    var LiftCarMode22222222222222222 = /* @__PURE__ */ ((LiftCarMode222222222222222222) => {
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["NORMAL"] = 1] = "NORMAL";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["VIP"] = 2] = "VIP";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["HOMING"] = 3] = "HOMING";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["PARKING"] = 4] = "PARKING";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["INSPECTION"] = 8] = "INSPECTION";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                                                                      LiftCarMode222222222222222222[LiftCarMode222222222222222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                                                                      return LiftCarMode222222222222222222;
                                                                    })(LiftCarMode22222222222222222 || {});
                                                                    var LiftFault22222222222222222 = /* @__PURE__ */ ((LiftFault222222222222222222) => {
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["START_FAILURE"] = 10] = "START_FAILURE";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                                      LiftFault222222222222222222[LiftFault222222222222222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                                                                      return LiftFault222222222222222222;
                                                                    })(LiftFault22222222222222222 || {});
                                                                    var LiftGroupMode22222222222222222 = /* @__PURE__ */ ((LiftGroupMode222222222222222222) => {
                                                                      LiftGroupMode222222222222222222[LiftGroupMode222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                      LiftGroupMode222222222222222222[LiftGroupMode222222222222222222["NORMAL"] = 1] = "NORMAL";
                                                                      LiftGroupMode222222222222222222[LiftGroupMode222222222222222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                                                                      LiftGroupMode222222222222222222[LiftGroupMode222222222222222222["TWO_WAY"] = 3] = "TWO_WAY";
                                                                      LiftGroupMode222222222222222222[LiftGroupMode222222222222222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                                                                      LiftGroupMode222222222222222222[LiftGroupMode222222222222222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                                                                      LiftGroupMode222222222222222222[LiftGroupMode222222222222222222["UP_PEAK"] = 6] = "UP_PEAK";
                                                                      return LiftGroupMode222222222222222222;
                                                                    })(LiftGroupMode22222222222222222 || {});
                                                                    var LightingInProgress22222222222222222 = /* @__PURE__ */ ((LightingInProgress222222222222222222) => {
                                                                      LightingInProgress222222222222222222[LightingInProgress222222222222222222["IDLE"] = 0] = "IDLE";
                                                                      LightingInProgress222222222222222222[LightingInProgress222222222222222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                                                                      LightingInProgress222222222222222222[LightingInProgress222222222222222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                                                                      LightingInProgress222222222222222222[LightingInProgress222222222222222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                                                                      LightingInProgress222222222222222222[LightingInProgress222222222222222222["OTHER"] = 4] = "OTHER";
                                                                      return LightingInProgress222222222222222222;
                                                                    })(LightingInProgress22222222222222222 || {});
                                                                    var LightingOperation22222222222222222 = /* @__PURE__ */ ((LightingOperation222222222222222222) => {
                                                                      LightingOperation222222222222222222[LightingOperation222222222222222222["NONE"] = 0] = "NONE";
                                                                      LightingOperation222222222222222222[LightingOperation222222222222222222["FADE_TO"] = 1] = "FADE_TO";
                                                                      LightingOperation222222222222222222[LightingOperation222222222222222222["RAMP_TO"] = 2] = "RAMP_TO";
                                                                      LightingOperation222222222222222222[LightingOperation222222222222222222["STEP_UP"] = 3] = "STEP_UP";
                                                                      LightingOperation222222222222222222[LightingOperation222222222222222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                                                                      LightingOperation222222222222222222[LightingOperation222222222222222222["STEP_ON"] = 5] = "STEP_ON";
                                                                      LightingOperation222222222222222222[LightingOperation222222222222222222["STEP_OFF"] = 6] = "STEP_OFF";
                                                                      LightingOperation222222222222222222[LightingOperation222222222222222222["WARN"] = 7] = "WARN";
                                                                      LightingOperation222222222222222222[LightingOperation222222222222222222["WARN_OFF"] = 8] = "WARN_OFF";
                                                                      LightingOperation222222222222222222[LightingOperation222222222222222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                                                                      LightingOperation222222222222222222[LightingOperation222222222222222222["STOP"] = 10] = "STOP";
                                                                      return LightingOperation222222222222222222;
                                                                    })(LightingOperation22222222222222222 || {});
                                                                    var LightingTransition22222222222222222 = /* @__PURE__ */ ((LightingTransition222222222222222222) => {
                                                                      LightingTransition222222222222222222[LightingTransition222222222222222222["NONE"] = 0] = "NONE";
                                                                      LightingTransition222222222222222222[LightingTransition222222222222222222["FADE"] = 1] = "FADE";
                                                                      LightingTransition222222222222222222[LightingTransition222222222222222222["RAMP"] = 2] = "RAMP";
                                                                      return LightingTransition222222222222222222;
                                                                    })(LightingTransition22222222222222222 || {});
                                                                    var LockStatus22222222222222222 = /* @__PURE__ */ ((LockStatus222222222222222222) => {
                                                                      LockStatus222222222222222222[LockStatus222222222222222222["LOCKED"] = 0] = "LOCKED";
                                                                      LockStatus222222222222222222[LockStatus222222222222222222["UNLOCKED"] = 1] = "UNLOCKED";
                                                                      LockStatus222222222222222222[LockStatus222222222222222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                                                                      LockStatus222222222222222222[LockStatus222222222222222222["UNUSED"] = 3] = "UNUSED";
                                                                      LockStatus222222222222222222[LockStatus222222222222222222["UNKNOWN"] = 4] = "UNKNOWN";
                                                                      return LockStatus222222222222222222;
                                                                    })(LockStatus22222222222222222 || {});
                                                                    var LoggingType22222222222222222 = /* @__PURE__ */ ((LoggingType222222222222222222) => {
                                                                      LoggingType222222222222222222[LoggingType222222222222222222["POLLED"] = 0] = "POLLED";
                                                                      LoggingType222222222222222222[LoggingType222222222222222222["COV"] = 1] = "COV";
                                                                      LoggingType222222222222222222[LoggingType222222222222222222["TRIGGERED"] = 2] = "TRIGGERED";
                                                                      return LoggingType222222222222222222;
                                                                    })(LoggingType22222222222222222 || {});
                                                                    var Maintenance22222222222222222 = /* @__PURE__ */ ((Maintenance222222222222222222) => {
                                                                      Maintenance222222222222222222[Maintenance222222222222222222["NONE"] = 0] = "NONE";
                                                                      Maintenance222222222222222222[Maintenance222222222222222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                                                                      Maintenance222222222222222222[Maintenance222222222222222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                                                                      Maintenance222222222222222222[Maintenance222222222222222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                                                                      return Maintenance222222222222222222;
                                                                    })(Maintenance22222222222222222 || {});
                                                                    var NetworkNumberQuality22222222222222222 = /* @__PURE__ */ ((NetworkNumberQuality222222222222222222) => {
                                                                      NetworkNumberQuality222222222222222222[NetworkNumberQuality222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                      NetworkNumberQuality222222222222222222[NetworkNumberQuality222222222222222222["LEARNED"] = 1] = "LEARNED";
                                                                      NetworkNumberQuality222222222222222222[NetworkNumberQuality222222222222222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                                                                      NetworkNumberQuality222222222222222222[NetworkNumberQuality222222222222222222["CONFIGURED"] = 3] = "CONFIGURED";
                                                                      return NetworkNumberQuality222222222222222222;
                                                                    })(NetworkNumberQuality22222222222222222 || {});
                                                                    var NetworkPortCommand22222222222222222 = /* @__PURE__ */ ((NetworkPortCommand222222222222222222) => {
                                                                      NetworkPortCommand222222222222222222[NetworkPortCommand222222222222222222["IDLE"] = 0] = "IDLE";
                                                                      NetworkPortCommand222222222222222222[NetworkPortCommand222222222222222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                                                                      NetworkPortCommand222222222222222222[NetworkPortCommand222222222222222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                                                                      NetworkPortCommand222222222222222222[NetworkPortCommand222222222222222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                                                                      NetworkPortCommand222222222222222222[NetworkPortCommand222222222222222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                                                                      NetworkPortCommand222222222222222222[NetworkPortCommand222222222222222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                                                                      NetworkPortCommand222222222222222222[NetworkPortCommand222222222222222222["DISCONNECT"] = 6] = "DISCONNECT";
                                                                      NetworkPortCommand222222222222222222[NetworkPortCommand222222222222222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                                                                      return NetworkPortCommand222222222222222222;
                                                                    })(NetworkPortCommand22222222222222222 || {});
                                                                    var NetworkType22222222222222222 = /* @__PURE__ */ ((NetworkType222222222222222222) => {
                                                                      NetworkType222222222222222222[NetworkType222222222222222222["ETHERNET"] = 0] = "ETHERNET";
                                                                      NetworkType222222222222222222[NetworkType222222222222222222["ARCNET"] = 1] = "ARCNET";
                                                                      NetworkType222222222222222222[NetworkType222222222222222222["MSTP"] = 2] = "MSTP";
                                                                      NetworkType222222222222222222[NetworkType222222222222222222["PTP"] = 3] = "PTP";
                                                                      NetworkType222222222222222222[NetworkType222222222222222222["LONTALK"] = 4] = "LONTALK";
                                                                      NetworkType222222222222222222[NetworkType222222222222222222["IPV4"] = 5] = "IPV4";
                                                                      NetworkType222222222222222222[NetworkType222222222222222222["ZIGBEE"] = 6] = "ZIGBEE";
                                                                      NetworkType222222222222222222[NetworkType222222222222222222["VIRTUAL"] = 7] = "VIRTUAL";
                                                                      NetworkType222222222222222222[NetworkType222222222222222222["IPV6"] = 9] = "IPV6";
                                                                      NetworkType222222222222222222[NetworkType222222222222222222["SERIAL"] = 10] = "SERIAL";
                                                                      return NetworkType222222222222222222;
                                                                    })(NetworkType22222222222222222 || {});
                                                                    var NodeType22222222222222222 = /* @__PURE__ */ ((NodeType222222222222222222) => {
                                                                      NodeType222222222222222222[NodeType222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                      NodeType222222222222222222[NodeType222222222222222222["SYSTEM"] = 1] = "SYSTEM";
                                                                      NodeType222222222222222222[NodeType222222222222222222["NETWORK"] = 2] = "NETWORK";
                                                                      NodeType222222222222222222[NodeType222222222222222222["DEVICE"] = 3] = "DEVICE";
                                                                      NodeType222222222222222222[NodeType222222222222222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                                                                      NodeType222222222222222222[NodeType222222222222222222["AREA"] = 5] = "AREA";
                                                                      NodeType222222222222222222[NodeType222222222222222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                                                                      NodeType222222222222222222[NodeType222222222222222222["POINT"] = 7] = "POINT";
                                                                      NodeType222222222222222222[NodeType222222222222222222["COLLECTION"] = 8] = "COLLECTION";
                                                                      NodeType222222222222222222[NodeType222222222222222222["PROPERTY"] = 9] = "PROPERTY";
                                                                      NodeType222222222222222222[NodeType222222222222222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                                                                      NodeType222222222222222222[NodeType222222222222222222["OTHER"] = 11] = "OTHER";
                                                                      NodeType222222222222222222[NodeType222222222222222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                                                                      NodeType222222222222222222[NodeType222222222222222222["BUILDING"] = 13] = "BUILDING";
                                                                      NodeType222222222222222222[NodeType222222222222222222["FLOOR"] = 14] = "FLOOR";
                                                                      NodeType222222222222222222[NodeType222222222222222222["SECTION"] = 15] = "SECTION";
                                                                      NodeType222222222222222222[NodeType222222222222222222["MODULE"] = 16] = "MODULE";
                                                                      NodeType222222222222222222[NodeType222222222222222222["TREE"] = 17] = "TREE";
                                                                      NodeType222222222222222222[NodeType222222222222222222["MEMBER"] = 18] = "MEMBER";
                                                                      NodeType222222222222222222[NodeType222222222222222222["PROTOCOL"] = 19] = "PROTOCOL";
                                                                      NodeType222222222222222222[NodeType222222222222222222["ROOM"] = 20] = "ROOM";
                                                                      NodeType222222222222222222[NodeType222222222222222222["ZONE"] = 21] = "ZONE";
                                                                      return NodeType222222222222222222;
                                                                    })(NodeType22222222222222222 || {});
                                                                    var NotifyType22222222222222222 = /* @__PURE__ */ ((NotifyType222222222222222222) => {
                                                                      NotifyType222222222222222222[NotifyType222222222222222222["ALARM"] = 0] = "ALARM";
                                                                      NotifyType222222222222222222[NotifyType222222222222222222["EVENT"] = 1] = "EVENT";
                                                                      NotifyType222222222222222222[NotifyType222222222222222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                                                                      return NotifyType222222222222222222;
                                                                    })(NotifyType22222222222222222 || {});
                                                                    var ObjectType22222222222222222 = /* @__PURE__ */ ((ObjectType222222222222222222) => {
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["COMMAND"] = 7] = "COMMAND";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["DEVICE"] = 8] = "DEVICE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["FILE"] = 10] = "FILE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["GROUP"] = 11] = "GROUP";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["LIFT"] = 59] = "LIFT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["LOOP"] = 12] = "LOOP";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["TIMER"] = 31] = "TIMER";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                                      ObjectType222222222222222222[ObjectType222222222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                                      return ObjectType222222222222222222;
                                                                    })(ObjectType22222222222222222 || {});
                                                                    var Polarity22222222222222222 = /* @__PURE__ */ ((Polarity222222222222222222) => {
                                                                      Polarity222222222222222222[Polarity222222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                      Polarity222222222222222222[Polarity222222222222222222["REVERSE"] = 1] = "REVERSE";
                                                                      return Polarity222222222222222222;
                                                                    })(Polarity22222222222222222 || {});
                                                                    var ProgramError22222222222222222 = /* @__PURE__ */ ((ProgramError222222222222222222) => {
                                                                      ProgramError222222222222222222[ProgramError222222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                      ProgramError222222222222222222[ProgramError222222222222222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                                                                      ProgramError222222222222222222[ProgramError222222222222222222["INTERNAL"] = 2] = "INTERNAL";
                                                                      ProgramError222222222222222222[ProgramError222222222222222222["PROGRAM"] = 3] = "PROGRAM";
                                                                      ProgramError222222222222222222[ProgramError222222222222222222["OTHER"] = 4] = "OTHER";
                                                                      return ProgramError222222222222222222;
                                                                    })(ProgramError22222222222222222 || {});
                                                                    var ProgramRequest22222222222222222 = /* @__PURE__ */ ((ProgramRequest222222222222222222) => {
                                                                      ProgramRequest222222222222222222[ProgramRequest222222222222222222["READY"] = 0] = "READY";
                                                                      ProgramRequest222222222222222222[ProgramRequest222222222222222222["LOAD"] = 1] = "LOAD";
                                                                      ProgramRequest222222222222222222[ProgramRequest222222222222222222["RUN"] = 2] = "RUN";
                                                                      ProgramRequest222222222222222222[ProgramRequest222222222222222222["HALT"] = 3] = "HALT";
                                                                      ProgramRequest222222222222222222[ProgramRequest222222222222222222["RESTART"] = 4] = "RESTART";
                                                                      ProgramRequest222222222222222222[ProgramRequest222222222222222222["UNLOAD"] = 5] = "UNLOAD";
                                                                      return ProgramRequest222222222222222222;
                                                                    })(ProgramRequest22222222222222222 || {});
                                                                    var ProgramState22222222222222222 = /* @__PURE__ */ ((ProgramState222222222222222222) => {
                                                                      ProgramState222222222222222222[ProgramState222222222222222222["IDLE"] = 0] = "IDLE";
                                                                      ProgramState222222222222222222[ProgramState222222222222222222["LOADING"] = 1] = "LOADING";
                                                                      ProgramState222222222222222222[ProgramState222222222222222222["RUNNING"] = 2] = "RUNNING";
                                                                      ProgramState222222222222222222[ProgramState222222222222222222["WAITING"] = 3] = "WAITING";
                                                                      ProgramState222222222222222222[ProgramState222222222222222222["HALTED"] = 4] = "HALTED";
                                                                      ProgramState222222222222222222[ProgramState222222222222222222["UNLOADING"] = 5] = "UNLOADING";
                                                                      return ProgramState222222222222222222;
                                                                    })(ProgramState22222222222222222 || {});
                                                                    var PropertyIdentifier22222222222222222 = /* @__PURE__ */ ((PropertyIdentifier222222222222222222) => {
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACTION"] = 2] = "ACTION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ALL"] = 8] = "ALL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ARCHIVE"] = 13] = "ARCHIVE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BIAS"] = 14] = "BIAS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BIT_MASK"] = 342] = "BIT_MASK";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CAR_MODE"] = 456] = "CAR_MODE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["COMMAND"] = 417] = "COMMAND";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["COUNT"] = 177] = "COUNT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DATE_LIST"] = 23] = "DATE_LIST";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DEADBAND"] = 25] = "DEADBAND";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ENABLE"] = 133] = "ENABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["GROUP_ID"] = 465] = "GROUP_ID";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["IS_UTC"] = 344] = "IS_UTC";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["KEY_SETS"] = 330] = "KEY_SETS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOCATION"] = 58] = "LOCATION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOCKOUT"] = 282] = "LOCKOUT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MEMBERS"] = 286] = "MEMBERS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MODE"] = 160] = "MODE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OPTIONAL"] = 80] = "OPTIONAL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["POLARITY"] = 84] = "POLARITY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["POWER"] = 384] = "POWER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["POWER_MODE"] = 479] = "POWER_MODE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PRESCALE"] = 185] = "PRESCALE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PRIORITY"] = 86] = "PRIORITY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["READ_ONLY"] = 99] = "READ_ONLY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["RELIABILITY"] = 103] = "RELIABILITY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["REPRESENTS"] = 491] = "REPRESENTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["REQUIRED"] = 105] = "REQUIRED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["RESOLUTION"] = 106] = "RESOLUTION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SCALE"] = 187] = "SCALE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SETPOINT"] = 108] = "SETPOINT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SETTING"] = 162] = "SETTING";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SILENCED"] = 163] = "SILENCED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["START_TIME"] = 142] = "START_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["STOP_TIME"] = 143] = "STOP_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TAGS"] = 486] = "TAGS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TRANSITION"] = 385] = "TRANSITION";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["TRIGGER"] = 205] = "TRIGGER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["UNITS"] = 117] = "UNITS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["USER_NAME"] = 317] = "USER_NAME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["USER_TYPE"] = 318] = "USER_TYPE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["VALUE_SET"] = 191] = "VALUE_SET";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                                                                      PropertyIdentifier222222222222222222[PropertyIdentifier222222222222222222["ZONE_TO"] = 321] = "ZONE_TO";
                                                                      return PropertyIdentifier222222222222222222;
                                                                    })(PropertyIdentifier22222222222222222 || {});
                                                                    var ProtocolLevel22222222222222222 = /* @__PURE__ */ ((ProtocolLevel222222222222222222) => {
                                                                      ProtocolLevel222222222222222222[ProtocolLevel222222222222222222["PHYSICAL"] = 0] = "PHYSICAL";
                                                                      ProtocolLevel222222222222222222[ProtocolLevel222222222222222222["PROTOCOL"] = 1] = "PROTOCOL";
                                                                      ProtocolLevel222222222222222222[ProtocolLevel222222222222222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                                                                      ProtocolLevel222222222222222222[ProtocolLevel222222222222222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                                                                      return ProtocolLevel222222222222222222;
                                                                    })(ProtocolLevel22222222222222222 || {});
                                                                    var Relationship22222222222222222 = /* @__PURE__ */ ((Relationship222222222222222222) => {
                                                                      Relationship222222222222222222[Relationship222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                      Relationship222222222222222222[Relationship222222222222222222["DEFAULT"] = 1] = "DEFAULT";
                                                                      Relationship222222222222222222[Relationship222222222222222222["CONTAINS"] = 2] = "CONTAINS";
                                                                      Relationship222222222222222222[Relationship222222222222222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                                                                      Relationship222222222222222222[Relationship222222222222222222["USES"] = 4] = "USES";
                                                                      Relationship222222222222222222[Relationship222222222222222222["USED_BY"] = 5] = "USED_BY";
                                                                      Relationship222222222222222222[Relationship222222222222222222["COMMANDS"] = 6] = "COMMANDS";
                                                                      Relationship222222222222222222[Relationship222222222222222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                                                                      Relationship222222222222222222[Relationship222222222222222222["ADJUSTS"] = 8] = "ADJUSTS";
                                                                      Relationship222222222222222222[Relationship222222222222222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                                                                      Relationship222222222222222222[Relationship222222222222222222["INGRESS"] = 10] = "INGRESS";
                                                                      Relationship222222222222222222[Relationship222222222222222222["EGRESS"] = 11] = "EGRESS";
                                                                      Relationship222222222222222222[Relationship222222222222222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                                                                      Relationship222222222222222222[Relationship222222222222222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                                                                      Relationship222222222222222222[Relationship222222222222222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                                                                      Relationship222222222222222222[Relationship222222222222222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                                                                      Relationship222222222222222222[Relationship222222222222222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                                                                      Relationship222222222222222222[Relationship222222222222222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                                                                      Relationship222222222222222222[Relationship222222222222222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                                                                      Relationship222222222222222222[Relationship222222222222222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                                                                      Relationship222222222222222222[Relationship222222222222222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                                                                      Relationship222222222222222222[Relationship222222222222222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                                                                      Relationship222222222222222222[Relationship222222222222222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                                                                      Relationship222222222222222222[Relationship222222222222222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                                                                      Relationship222222222222222222[Relationship222222222222222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                                                                      Relationship222222222222222222[Relationship222222222222222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                                                                      Relationship222222222222222222[Relationship222222222222222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                                                                      Relationship222222222222222222[Relationship222222222222222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                                                                      Relationship222222222222222222[Relationship222222222222222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                                                                      Relationship222222222222222222[Relationship222222222222222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                                                                      return Relationship222222222222222222;
                                                                    })(Relationship22222222222222222 || {});
                                                                    var Reliability22222222222222222 = /* @__PURE__ */ ((Reliability222222222222222222) => {
                                                                      Reliability222222222222222222[Reliability222222222222222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                                                                      Reliability222222222222222222[Reliability222222222222222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                                                                      Reliability222222222222222222[Reliability222222222222222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                                                                      Reliability222222222222222222[Reliability222222222222222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                                                                      Reliability222222222222222222[Reliability222222222222222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                                                                      Reliability222222222222222222[Reliability222222222222222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                                                                      Reliability222222222222222222[Reliability222222222222222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                                                                      Reliability222222222222222222[Reliability222222222222222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                                                                      Reliability222222222222222222[Reliability222222222222222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                                                                      Reliability222222222222222222[Reliability222222222222222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                                                                      Reliability222222222222222222[Reliability222222222222222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                                                                      Reliability222222222222222222[Reliability222222222222222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                                                                      Reliability222222222222222222[Reliability222222222222222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                                                                      Reliability222222222222222222[Reliability222222222222222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                                                                      Reliability222222222222222222[Reliability222222222222222222["TRIPPED"] = 15] = "TRIPPED";
                                                                      Reliability222222222222222222[Reliability222222222222222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                                                                      Reliability222222222222222222[Reliability222222222222222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                                                                      Reliability222222222222222222[Reliability222222222222222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                                                                      Reliability222222222222222222[Reliability222222222222222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                                                                      Reliability222222222222222222[Reliability222222222222222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                                                                      Reliability222222222222222222[Reliability222222222222222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                                                                      Reliability222222222222222222[Reliability222222222222222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                                                                      Reliability222222222222222222[Reliability222222222222222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                                                                      Reliability222222222222222222[Reliability222222222222222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                                                                      return Reliability222222222222222222;
                                                                    })(Reliability22222222222222222 || {});
                                                                    var RestartReason22222222222222222 = /* @__PURE__ */ ((RestartReason222222222222222222) => {
                                                                      RestartReason222222222222222222[RestartReason222222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                      RestartReason222222222222222222[RestartReason222222222222222222["COLDSTART"] = 1] = "COLDSTART";
                                                                      RestartReason222222222222222222[RestartReason222222222222222222["WARMSTART"] = 2] = "WARMSTART";
                                                                      RestartReason222222222222222222[RestartReason222222222222222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                                                                      RestartReason222222222222222222[RestartReason222222222222222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                                                                      RestartReason222222222222222222[RestartReason222222222222222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                                                                      RestartReason222222222222222222[RestartReason222222222222222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                                                                      RestartReason222222222222222222[RestartReason222222222222222222["SUSPENDED"] = 7] = "SUSPENDED";
                                                                      RestartReason222222222222222222[RestartReason222222222222222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                                                                      return RestartReason222222222222222222;
                                                                    })(RestartReason22222222222222222 || {});
                                                                    var SecurityLevel22222222222222222 = /* @__PURE__ */ ((SecurityLevel222222222222222222) => {
                                                                      SecurityLevel222222222222222222[SecurityLevel222222222222222222["INCAPABLE"] = 0] = "INCAPABLE";
                                                                      SecurityLevel222222222222222222[SecurityLevel222222222222222222["PLAIN"] = 1] = "PLAIN";
                                                                      SecurityLevel222222222222222222[SecurityLevel222222222222222222["SIGNED"] = 2] = "SIGNED";
                                                                      SecurityLevel222222222222222222[SecurityLevel222222222222222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                                                                      SecurityLevel222222222222222222[SecurityLevel222222222222222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                                                                      SecurityLevel222222222222222222[SecurityLevel222222222222222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                                                                      return SecurityLevel222222222222222222;
                                                                    })(SecurityLevel22222222222222222 || {});
                                                                    var SecurityPolicy22222222222222222 = /* @__PURE__ */ ((SecurityPolicy222222222222222222) => {
                                                                      SecurityPolicy222222222222222222[SecurityPolicy222222222222222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                                                                      SecurityPolicy222222222222222222[SecurityPolicy222222222222222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                                                                      SecurityPolicy222222222222222222[SecurityPolicy222222222222222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                                                                      SecurityPolicy222222222222222222[SecurityPolicy222222222222222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                                                                      return SecurityPolicy222222222222222222;
                                                                    })(SecurityPolicy22222222222222222 || {});
                                                                    var Segmentation22222222222222222 = /* @__PURE__ */ ((Segmentation222222222222222222) => {
                                                                      Segmentation222222222222222222[Segmentation222222222222222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                                                                      Segmentation222222222222222222[Segmentation222222222222222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                                                                      Segmentation222222222222222222[Segmentation222222222222222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                                                                      Segmentation222222222222222222[Segmentation222222222222222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                                                                      return Segmentation222222222222222222;
                                                                    })(Segmentation22222222222222222 || {});
                                                                    var ShedState22222222222222222 = /* @__PURE__ */ ((ShedState222222222222222222) => {
                                                                      ShedState222222222222222222[ShedState222222222222222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                                                                      ShedState222222222222222222[ShedState222222222222222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                                                                      ShedState222222222222222222[ShedState222222222222222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                                                                      ShedState222222222222222222[ShedState222222222222222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                                                                      return ShedState222222222222222222;
                                                                    })(ShedState22222222222222222 || {});
                                                                    var SilencedState22222222222222222 = /* @__PURE__ */ ((SilencedState222222222222222222) => {
                                                                      SilencedState222222222222222222[SilencedState222222222222222222["UNSILENCED"] = 0] = "UNSILENCED";
                                                                      SilencedState222222222222222222[SilencedState222222222222222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                                                                      SilencedState222222222222222222[SilencedState222222222222222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                                                                      SilencedState222222222222222222[SilencedState222222222222222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                                                                      return SilencedState222222222222222222;
                                                                    })(SilencedState22222222222222222 || {});
                                                                    var TimerState22222222222222222 = /* @__PURE__ */ ((TimerState222222222222222222) => {
                                                                      TimerState222222222222222222[TimerState222222222222222222["IDLE"] = 0] = "IDLE";
                                                                      TimerState222222222222222222[TimerState222222222222222222["RUNNING"] = 1] = "RUNNING";
                                                                      TimerState222222222222222222[TimerState222222222222222222["EXPIRED"] = 2] = "EXPIRED";
                                                                      return TimerState222222222222222222;
                                                                    })(TimerState22222222222222222 || {});
                                                                    var TimerTransition22222222222222222 = /* @__PURE__ */ ((TimerTransition222222222222222222) => {
                                                                      TimerTransition222222222222222222[TimerTransition222222222222222222["NONE"] = 0] = "NONE";
                                                                      TimerTransition222222222222222222[TimerTransition222222222222222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                                                                      TimerTransition222222222222222222[TimerTransition222222222222222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                                                                      TimerTransition222222222222222222[TimerTransition222222222222222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                                                                      TimerTransition222222222222222222[TimerTransition222222222222222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                                                                      TimerTransition222222222222222222[TimerTransition222222222222222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                                                                      TimerTransition222222222222222222[TimerTransition222222222222222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                                                                      TimerTransition222222222222222222[TimerTransition222222222222222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                                                                      return TimerTransition222222222222222222;
                                                                    })(TimerTransition22222222222222222 || {});
                                                                    var VTClass22222222222222222 = /* @__PURE__ */ ((VTClass222222222222222222) => {
                                                                      VTClass222222222222222222[VTClass222222222222222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                                                                      VTClass222222222222222222[VTClass222222222222222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                                                                      VTClass222222222222222222[VTClass222222222222222222["DEC_VT52"] = 2] = "DEC_VT52";
                                                                      VTClass222222222222222222[VTClass222222222222222222["DEC_VT100"] = 3] = "DEC_VT100";
                                                                      VTClass222222222222222222[VTClass222222222222222222["DEC_VT220"] = 4] = "DEC_VT220";
                                                                      VTClass222222222222222222[VTClass222222222222222222["HP_700_94"] = 5] = "HP_700_94";
                                                                      VTClass222222222222222222[VTClass222222222222222222["IBM_3130"] = 6] = "IBM_3130";
                                                                      return VTClass222222222222222222;
                                                                    })(VTClass22222222222222222 || {});
                                                                    var WriteStatus22222222222222222 = /* @__PURE__ */ ((WriteStatus222222222222222222) => {
                                                                      WriteStatus222222222222222222[WriteStatus222222222222222222["IDLE"] = 0] = "IDLE";
                                                                      WriteStatus222222222222222222[WriteStatus222222222222222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                                                                      WriteStatus222222222222222222[WriteStatus222222222222222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                                                                      WriteStatus222222222222222222[WriteStatus222222222222222222["FAILED"] = 3] = "FAILED";
                                                                      return WriteStatus222222222222222222;
                                                                    })(WriteStatus22222222222222222 || {});
                                                                    var DaysOfWeek22222222222222222 = /* @__PURE__ */ ((DaysOfWeek222222222222222222) => {
                                                                      DaysOfWeek222222222222222222[DaysOfWeek222222222222222222["MONDAY"] = 0] = "MONDAY";
                                                                      DaysOfWeek222222222222222222[DaysOfWeek222222222222222222["TUESDAY"] = 1] = "TUESDAY";
                                                                      DaysOfWeek222222222222222222[DaysOfWeek222222222222222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                                                                      DaysOfWeek222222222222222222[DaysOfWeek222222222222222222["THURSDAY"] = 3] = "THURSDAY";
                                                                      DaysOfWeek222222222222222222[DaysOfWeek222222222222222222["FRIDAY"] = 4] = "FRIDAY";
                                                                      DaysOfWeek222222222222222222[DaysOfWeek222222222222222222["SATURDAY"] = 5] = "SATURDAY";
                                                                      DaysOfWeek222222222222222222[DaysOfWeek222222222222222222["SUNDAY"] = 6] = "SUNDAY";
                                                                      return DaysOfWeek222222222222222222;
                                                                    })(DaysOfWeek22222222222222222 || {});
                                                                    var EventTransitionBits22222222222222222 = /* @__PURE__ */ ((EventTransitionBits222222222222222222) => {
                                                                      EventTransitionBits222222222222222222[EventTransitionBits222222222222222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                                                                      EventTransitionBits222222222222222222[EventTransitionBits222222222222222222["TO_FAULT"] = 1] = "TO_FAULT";
                                                                      EventTransitionBits222222222222222222[EventTransitionBits222222222222222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                                                                      return EventTransitionBits222222222222222222;
                                                                    })(EventTransitionBits22222222222222222 || {});
                                                                    var LimitEnable22222222222222222 = /* @__PURE__ */ ((LimitEnable222222222222222222) => {
                                                                      LimitEnable222222222222222222[LimitEnable222222222222222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                                                                      LimitEnable222222222222222222[LimitEnable222222222222222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                                                                      return LimitEnable222222222222222222;
                                                                    })(LimitEnable22222222222222222 || {});
                                                                    var LogStatus22222222222222222 = /* @__PURE__ */ ((LogStatus222222222222222222) => {
                                                                      LogStatus222222222222222222[LogStatus222222222222222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                                                                      LogStatus222222222222222222[LogStatus222222222222222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                                                                      LogStatus222222222222222222[LogStatus222222222222222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                                                                      return LogStatus222222222222222222;
                                                                    })(LogStatus22222222222222222 || {});
                                                                    var ObjectTypesSupported22222222222222222 = /* @__PURE__ */ ((ObjectTypesSupported222222222222222222) => {
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["COMMAND"] = 7] = "COMMAND";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["DEVICE"] = 8] = "DEVICE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["FILE"] = 10] = "FILE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["GROUP"] = 11] = "GROUP";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["LOOP"] = 12] = "LOOP";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["TIMER"] = 31] = "TIMER";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                                      ObjectTypesSupported222222222222222222[ObjectTypesSupported222222222222222222["LIFT"] = 59] = "LIFT";
                                                                      return ObjectTypesSupported222222222222222222;
                                                                    })(ObjectTypesSupported22222222222222222 || {});
                                                                    var ResultFlags22222222222222222 = /* @__PURE__ */ ((ResultFlags222222222222222222) => {
                                                                      ResultFlags222222222222222222[ResultFlags222222222222222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                                                                      ResultFlags222222222222222222[ResultFlags222222222222222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                                                                      ResultFlags222222222222222222[ResultFlags222222222222222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                                                                      return ResultFlags222222222222222222;
                                                                    })(ResultFlags22222222222222222 || {});
                                                                    var ServicesSupported22222222222222222 = /* @__PURE__ */ ((ServicesSupported222222222222222222) => {
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["I_AM"] = 26] = "I_AM";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["I_HAVE"] = 27] = "I_HAVE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["WHO_HAS"] = 33] = "WHO_HAS";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["WHO_IS"] = 34] = "WHO_IS";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["READ_RANGE"] = 35] = "READ_RANGE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                                      ServicesSupported222222222222222222[ServicesSupported222222222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                                      return ServicesSupported222222222222222222;
                                                                    })(ServicesSupported22222222222222222 || {});
                                                                    var StatusFlags22222222222222222 = /* @__PURE__ */ ((StatusFlags222222222222222222) => {
                                                                      StatusFlags222222222222222222[StatusFlags222222222222222222["IN_ALARM"] = 0] = "IN_ALARM";
                                                                      StatusFlags222222222222222222[StatusFlags222222222222222222["FAULT"] = 1] = "FAULT";
                                                                      StatusFlags222222222222222222[StatusFlags222222222222222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                                                                      StatusFlags222222222222222222[StatusFlags222222222222222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                                                                      return StatusFlags222222222222222222;
                                                                    })(StatusFlags22222222222222222 || {});
                                                                    var ApplicationTag22222222222222222 = /* @__PURE__ */ ((ApplicationTag222222222222222222) => {
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["NULL"] = 0] = "NULL";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["BOOLEAN"] = 1] = "BOOLEAN";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["REAL"] = 4] = "REAL";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["DOUBLE"] = 5] = "DOUBLE";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["BIT_STRING"] = 8] = "BIT_STRING";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["ENUMERATED"] = 9] = "ENUMERATED";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["DATE"] = 10] = "DATE";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["TIME"] = 11] = "TIME";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["DATERANGE"] = 102] = "DATERANGE";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["DATETIME"] = 103] = "DATETIME";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["ERROR"] = 105] = "ERROR";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["DESTINATION"] = 109] = "DESTINATION";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["RECIPIENT"] = 110] = "RECIPIENT";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                                                                      ApplicationTag222222222222222222[ApplicationTag222222222222222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                                                                      return ApplicationTag222222222222222222;
                                                                    })(ApplicationTag22222222222222222 || {});
                                                                    var ApplicationTagName22222222222222222 = invertEnum22222222222222222(
                                                                      ApplicationTag22222222222222222
                                                                    );
                                                                    var BvlcResultFormat22222222222222222 = /* @__PURE__ */ ((BvlcResultFormat222222222222222222) => {
                                                                      BvlcResultFormat222222222222222222[BvlcResultFormat222222222222222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                                                                      BvlcResultFormat222222222222222222[BvlcResultFormat222222222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                                      BvlcResultFormat222222222222222222[BvlcResultFormat222222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                                      BvlcResultFormat222222222222222222[BvlcResultFormat222222222222222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                                                                      BvlcResultFormat222222222222222222[BvlcResultFormat222222222222222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                                                                      BvlcResultFormat222222222222222222[BvlcResultFormat222222222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                                                                      BvlcResultFormat222222222222222222[BvlcResultFormat222222222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                                                                      return BvlcResultFormat222222222222222222;
                                                                    })(BvlcResultFormat22222222222222222 || {});
                                                                    var BvlcResultPurpose22222222222222222 = /* @__PURE__ */ ((BvlcResultPurpose222222222222222222) => {
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                                                                      BvlcResultPurpose222222222222222222[BvlcResultPurpose222222222222222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                                                                      return BvlcResultPurpose222222222222222222;
                                                                    })(BvlcResultPurpose22222222222222222 || {});
                                                                    var CharacterStringEncoding22222222222222222 = /* @__PURE__ */ ((CharacterStringEncoding222222222222222222) => {
                                                                      CharacterStringEncoding222222222222222222[CharacterStringEncoding222222222222222222["UTF_8"] = 0] = "UTF_8";
                                                                      CharacterStringEncoding222222222222222222[CharacterStringEncoding222222222222222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                                                                      CharacterStringEncoding222222222222222222[CharacterStringEncoding222222222222222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                                                                      CharacterStringEncoding222222222222222222[CharacterStringEncoding222222222222222222["UCS_4"] = 3] = "UCS_4";
                                                                      CharacterStringEncoding222222222222222222[CharacterStringEncoding222222222222222222["UCS_2"] = 4] = "UCS_2";
                                                                      CharacterStringEncoding222222222222222222[CharacterStringEncoding222222222222222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                                                                      return CharacterStringEncoding222222222222222222;
                                                                    })(CharacterStringEncoding22222222222222222 || {});
                                                                    var CovType22222222222222222 = /* @__PURE__ */ ((CovType222222222222222222) => {
                                                                      CovType222222222222222222[CovType222222222222222222["REAL"] = 0] = "REAL";
                                                                      CovType222222222222222222[CovType222222222222222222["BIT_STRING"] = 1] = "BIT_STRING";
                                                                      return CovType222222222222222222;
                                                                    })(CovType22222222222222222 || {});
                                                                    var EnableDisable22222222222222222 = /* @__PURE__ */ ((EnableDisable222222222222222222) => {
                                                                      EnableDisable222222222222222222[EnableDisable222222222222222222["ENABLE"] = 0] = "ENABLE";
                                                                      EnableDisable222222222222222222[EnableDisable222222222222222222["DISABLE"] = 1] = "DISABLE";
                                                                      EnableDisable222222222222222222[EnableDisable222222222222222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                                                                      return EnableDisable222222222222222222;
                                                                    })(EnableDisable22222222222222222 || {});
                                                                    var MaxApduLengthAccepted22222222222222222 = /* @__PURE__ */ ((MaxApduLengthAccepted222222222222222222) => {
                                                                      MaxApduLengthAccepted222222222222222222[MaxApduLengthAccepted222222222222222222["OCTETS_50"] = 0] = "OCTETS_50";
                                                                      MaxApduLengthAccepted222222222222222222[MaxApduLengthAccepted222222222222222222["OCTETS_128"] = 1] = "OCTETS_128";
                                                                      MaxApduLengthAccepted222222222222222222[MaxApduLengthAccepted222222222222222222["OCTETS_206"] = 2] = "OCTETS_206";
                                                                      MaxApduLengthAccepted222222222222222222[MaxApduLengthAccepted222222222222222222["OCTETS_480"] = 3] = "OCTETS_480";
                                                                      MaxApduLengthAccepted222222222222222222[MaxApduLengthAccepted222222222222222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                                                                      MaxApduLengthAccepted222222222222222222[MaxApduLengthAccepted222222222222222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                                                                      return MaxApduLengthAccepted222222222222222222;
                                                                    })(MaxApduLengthAccepted22222222222222222 || {});
                                                                    var MaxSegmentsAccepted22222222222222222 = /* @__PURE__ */ ((MaxSegmentsAccepted222222222222222222) => {
                                                                      MaxSegmentsAccepted222222222222222222[MaxSegmentsAccepted222222222222222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                                                                      MaxSegmentsAccepted222222222222222222[MaxSegmentsAccepted222222222222222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                                                                      MaxSegmentsAccepted222222222222222222[MaxSegmentsAccepted222222222222222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                                                                      MaxSegmentsAccepted222222222222222222[MaxSegmentsAccepted222222222222222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                                                                      MaxSegmentsAccepted222222222222222222[MaxSegmentsAccepted222222222222222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                                                                      MaxSegmentsAccepted222222222222222222[MaxSegmentsAccepted222222222222222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                                                                      MaxSegmentsAccepted222222222222222222[MaxSegmentsAccepted222222222222222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                                                                      MaxSegmentsAccepted222222222222222222[MaxSegmentsAccepted222222222222222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                                                                      return MaxSegmentsAccepted222222222222222222;
                                                                    })(MaxSegmentsAccepted22222222222222222 || {});
                                                                    var NetworkLayerMessageType22222222222222222 = /* @__PURE__ */ ((NetworkLayerMessageType222222222222222222) => {
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                                                                      NetworkLayerMessageType222222222222222222[NetworkLayerMessageType222222222222222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                                                                      return NetworkLayerMessageType222222222222222222;
                                                                    })(NetworkLayerMessageType22222222222222222 || {});
                                                                    var NpduControlBit22222222222222222 = /* @__PURE__ */ ((NpduControlBit222222222222222222) => {
                                                                      NpduControlBit222222222222222222[NpduControlBit222222222222222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                                                                      NpduControlBit222222222222222222[NpduControlBit222222222222222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                                                                      NpduControlBit222222222222222222[NpduControlBit222222222222222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                                                                      NpduControlBit222222222222222222[NpduControlBit222222222222222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                                                                      return NpduControlBit222222222222222222;
                                                                    })(NpduControlBit22222222222222222 || {});
                                                                    var NpduControlPriority22222222222222222 = /* @__PURE__ */ ((NpduControlPriority222222222222222222) => {
                                                                      NpduControlPriority222222222222222222[NpduControlPriority222222222222222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                                                                      NpduControlPriority222222222222222222[NpduControlPriority222222222222222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                                                                      NpduControlPriority222222222222222222[NpduControlPriority222222222222222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                                                                      NpduControlPriority222222222222222222[NpduControlPriority222222222222222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                                                                      return NpduControlPriority222222222222222222;
                                                                    })(NpduControlPriority22222222222222222 || {});
                                                                    var PduConReqBit22222222222222222 = /* @__PURE__ */ ((PduConReqBit222222222222222222) => {
                                                                      PduConReqBit222222222222222222[PduConReqBit222222222222222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                                                                      PduConReqBit222222222222222222[PduConReqBit222222222222222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                                                                      PduConReqBit222222222222222222[PduConReqBit222222222222222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                                                                      return PduConReqBit222222222222222222;
                                                                    })(PduConReqBit22222222222222222 || {});
                                                                    var PduSegAckBit22222222222222222 = /* @__PURE__ */ ((PduSegAckBit222222222222222222) => {
                                                                      PduSegAckBit222222222222222222[PduSegAckBit222222222222222222["SERVER"] = 1] = "SERVER";
                                                                      PduSegAckBit222222222222222222[PduSegAckBit222222222222222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                                                                      return PduSegAckBit222222222222222222;
                                                                    })(PduSegAckBit22222222222222222 || {});
                                                                    var PduType22222222222222222 = /* @__PURE__ */ ((PduType222222222222222222) => {
                                                                      PduType222222222222222222[PduType222222222222222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                                                                      PduType222222222222222222[PduType222222222222222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                                                                      PduType222222222222222222[PduType222222222222222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                                                                      PduType222222222222222222[PduType222222222222222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                                                                      PduType222222222222222222[PduType222222222222222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                                                                      PduType222222222222222222[PduType222222222222222222["ERROR"] = 80] = "ERROR";
                                                                      PduType222222222222222222[PduType222222222222222222["REJECT"] = 96] = "REJECT";
                                                                      PduType222222222222222222[PduType222222222222222222["ABORT"] = 112] = "ABORT";
                                                                      return PduType222222222222222222;
                                                                    })(PduType22222222222222222 || {});
                                                                    var PropertyStates22222222222222222 = /* @__PURE__ */ ((PropertyStates222222222222222222) => {
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["POLARITY"] = 3] = "POLARITY";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["RELIABILITY"] = 7] = "RELIABILITY";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["STATE"] = 8] = "STATE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["UNITS"] = 10] = "UNITS";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["ACTION"] = 16] = "ACTION";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["SHED_STATE"] = 27] = "SHED_STATE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                                                                      PropertyStates222222222222222222[PropertyStates222222222222222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                                                                      return PropertyStates222222222222222222;
                                                                    })(PropertyStates22222222222222222 || {});
                                                                    var ReadRangeType22222222222222222 = /* @__PURE__ */ ((ReadRangeType222222222222222222) => {
                                                                      ReadRangeType222222222222222222[ReadRangeType222222222222222222["BY_POSITION"] = 0] = "BY_POSITION";
                                                                      ReadRangeType222222222222222222[ReadRangeType222222222222222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                                                                      ReadRangeType222222222222222222[ReadRangeType222222222222222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                                                                      return ReadRangeType222222222222222222;
                                                                    })(ReadRangeType22222222222222222 || {});
                                                                    var ReinitializedState22222222222222222 = /* @__PURE__ */ ((ReinitializedState222222222222222222) => {
                                                                      ReinitializedState222222222222222222[ReinitializedState222222222222222222["COLDSTART"] = 0] = "COLDSTART";
                                                                      ReinitializedState222222222222222222[ReinitializedState222222222222222222["WARMSTART"] = 1] = "WARMSTART";
                                                                      ReinitializedState222222222222222222[ReinitializedState222222222222222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                                                                      ReinitializedState222222222222222222[ReinitializedState222222222222222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                                                                      ReinitializedState222222222222222222[ReinitializedState222222222222222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                                                                      ReinitializedState222222222222222222[ReinitializedState222222222222222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                                                                      ReinitializedState222222222222222222[ReinitializedState222222222222222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                                                                      ReinitializedState222222222222222222[ReinitializedState222222222222222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                                                                      return ReinitializedState222222222222222222;
                                                                    })(ReinitializedState22222222222222222 || {});
                                                                    var TimeStamp22222222222222222 = /* @__PURE__ */ ((TimeStamp222222222222222222) => {
                                                                      TimeStamp222222222222222222[TimeStamp222222222222222222["TIME"] = 0] = "TIME";
                                                                      TimeStamp222222222222222222[TimeStamp222222222222222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                                                                      TimeStamp222222222222222222[TimeStamp222222222222222222["DATETIME"] = 2] = "DATETIME";
                                                                      return TimeStamp222222222222222222;
                                                                    })(TimeStamp22222222222222222 || {});
                                                                    var import_events222222222222222222 = __toESM22222222222222222(require("events"));
                                                                    var import_debug322222222222222222 = __toESM22222222222222222(require("debug"));
                                                                    var import_dgram22222222222222222 = require("dgram");
                                                                    var import_events32222222222222222 = __toESM22222222222222222(require("events"));
                                                                    var import_debug222222222222222222 = __toESM22222222222222222(require("debug"));
                                                                    var EventEmitter32222222222222222 = import_events32222222222222222.default.EventEmitter;
                                                                    var debug222222222222222222 = (0, import_debug222222222222222222.default)("bacnet:client:debug");
                                                                    var DEFAULT_BACNET_PORT32222222222222222 = 47808;
                                                                    var Transport22222222222222222 = class extends EventEmitter32222222222222222 {
                                                                      constructor(settings) {
                                                                        super();
                                                                        this._lastSendMessages = {};
                                                                        this._settings = settings;
                                                                        this._server = (0, import_dgram22222222222222222.createSocket)({
                                                                          type: "udp4",
                                                                          reuseAddr: settings.reuseAddr
                                                                        });
                                                                        this._server.on("message", (msg, rinfo) => {
                                                                          if (this.ownAddress.port === rinfo.port) {
                                                                            for (let [messageKey, earlierSentBuffer] of Object.entries(
                                                                              this._lastSendMessages
                                                                            )) {
                                                                              if (msg.equals(earlierSentBuffer)) {
                                                                                debug222222222222222222(
                                                                                  `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                                                                );
                                                                                return;
                                                                              }
                                                                            }
                                                                          }
                                                                          debug222222222222222222(
                                                                            `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                                                              "hex"
                                                                            )}`
                                                                          );
                                                                          this.emit(
                                                                            "message",
                                                                            msg,
                                                                            rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT32222222222222222 ? "" : ":" + rinfo.port)
                                                                          );
                                                                        });
                                                                        this._server.on("listening", () => {
                                                                          this.ownAddress = this._server.address();
                                                                          debug222222222222222222(
                                                                            `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                                                                          );
                                                                          this.emit("listening", this.ownAddress);
                                                                        });
                                                                        this._server.on("error", (err) => {
                                                                          debug222222222222222222("transport error", err.message);
                                                                          this.emit("error", err);
                                                                        });
                                                                        this._server.on("close", () => {
                                                                          debug222222222222222222("transport closed");
                                                                          this.emit("close");
                                                                        });
                                                                      }
                                                                      getBroadcastAddress() {
                                                                        return this._settings.broadcastAddress;
                                                                      }
                                                                      getMaxPayload() {
                                                                        return 1482;
                                                                      }
                                                                      send(buffer, offset, receiver) {
                                                                        if (!receiver) {
                                                                          receiver = this.getBroadcastAddress();
                                                                          const dataToSend = Buffer.alloc(offset);
                                                                          const hrTime = process.hrtime();
                                                                          const messageKey = hrTime[0] * 1e9 + hrTime[1];
                                                                          buffer.copy(dataToSend, 0, 0, offset);
                                                                          this._lastSendMessages[messageKey] = dataToSend;
                                                                          setTimeout(() => {
                                                                            delete this._lastSendMessages[messageKey];
                                                                          }, 1e4);
                                                                        }
                                                                        const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                                                                        const [address, port] = receiverAddress.split(":");
                                                                        debug222222222222222222(
                                                                          "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                                                                        );
                                                                        this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT32222222222222222, address);
                                                                      }
                                                                      open() {
                                                                        this._server.bind(this._settings.port, this._settings.interface, () => {
                                                                          this._server.setBroadcast(true);
                                                                        });
                                                                      }
                                                                      close() {
                                                                        this._server.close();
                                                                      }
                                                                    };
                                                                    var services_exports22222222222222222 = {};
                                                                    __export22222222222222222(services_exports22222222222222222, {
                                                                      addListElement: () => add_list_element_exports22222222222222222,
                                                                      alarmAcknowledge: () => alarm_acknowledge_exports22222222222222222,
                                                                      alarmSummary: () => alarm_summary_exports22222222222222222,
                                                                      atomicReadFile: () => atomic_read_file_exports22222222222222222,
                                                                      atomicWriteFile: () => atomic_write_file_exports22222222222222222,
                                                                      covNotify: () => cov_notify_exports22222222222222222,
                                                                      covNotifyUnconfirmed: () => cov_notify_exports22222222222222222,
                                                                      createObject: () => create_object_exports22222222222222222,
                                                                      deleteObject: () => delete_object_exports22222222222222222,
                                                                      deviceCommunicationControl: () => device_communication_control_exports22222222222222222,
                                                                      error: () => error_exports22222222222222222,
                                                                      eventInformation: () => event_information_exports22222222222222222,
                                                                      eventNotifyData: () => event_notify_data_exports22222222222222222,
                                                                      getEnrollmentSummary: () => get_enrollment_summary_exports22222222222222222,
                                                                      getEventInformation: () => get_event_information_exports22222222222222222,
                                                                      iAm: () => i_am_exports22222222222222222,
                                                                      iHave: () => i_have_exports22222222222222222,
                                                                      lifeSafetyOperation: () => life_safety_operation_exports22222222222222222,
                                                                      privateTransfer: () => private_transfer_exports22222222222222222,
                                                                      readProperty: () => read_property_exports22222222222222222,
                                                                      readPropertyMultiple: () => read_property_multiple_exports22222222222222222,
                                                                      readRange: () => read_range_exports22222222222222222,
                                                                      registerForeignDevice: () => register_foreign_device_exports22222222222222222,
                                                                      reinitializeDevice: () => reinitialize_device_exports22222222222222222,
                                                                      subscribeCov: () => subscribe_cov_exports22222222222222222,
                                                                      subscribeProperty: () => subscribe_property_exports22222222222222222,
                                                                      timeSync: () => time_sync_exports22222222222222222,
                                                                      timeSyncUTC: () => time_sync_exports22222222222222222,
                                                                      whoHas: () => who_has_exports22222222222222222,
                                                                      whoIs: () => who_is_exports22222222222222222,
                                                                      writeProperty: () => write_property_exports22222222222222222,
                                                                      writePropertyMultiple: () => write_property_multiple_exports22222222222222222
                                                                    });
                                                                    var add_list_element_exports22222222222222222 = {};
                                                                    __export22222222222222222(add_list_element_exports22222222222222222, {
                                                                      decode: () => decode332222222222222222,
                                                                      encode: () => encode332222222222222222
                                                                    });
                                                                    var import_iconv_lite22222222222222222 = __toESM22222222222222222(require("iconv-lite"));
                                                                    var enums_default22222222222222222 = enum_exports22222222222222222;
                                                                    var START_YEAR22222222222222222 = 1900;
                                                                    var MAX_YEARS22222222222222222 = 256;
                                                                    var getBuffer22222222222222222 = () => {
                                                                      return {
                                                                        buffer: Buffer.alloc(1472),
                                                                        offset: 0
                                                                      };
                                                                    };
                                                                    var getSignedLength22222222222222222 = (value) => {
                                                                      if (value >= -128 && value < 128)
                                                                        return 1;
                                                                      else if (value >= -32768 && value < 32768)
                                                                        return 2;
                                                                      else if (value > -8388608 && value < 8388608)
                                                                        return 3;
                                                                      else
                                                                        return 4;
                                                                    };
                                                                    var getUnsignedLength22222222222222222 = (value) => {
                                                                      if (value < 256)
                                                                        return 1;
                                                                      else if (value < 65536)
                                                                        return 2;
                                                                      else if (value < 16777216)
                                                                        return 3;
                                                                      else
                                                                        return 4;
                                                                    };
                                                                    var getEncodingType22222222222222222 = (encoding, decodingBuffer, decodingOffset) => {
                                                                      switch (encoding) {
                                                                        case enums_default22222222222222222.CharacterStringEncoding.UCS_2:
                                                                          if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                                                            return "ucs2";
                                                                          }
                                                                          return "UTF-16BE";
                                                                        case enums_default22222222222222222.CharacterStringEncoding.ISO_8859_1:
                                                                          return "latin1";
                                                                        case enums_default22222222222222222.CharacterStringEncoding.MICROSOFT_DBCS:
                                                                          return "cp850";
                                                                        case enums_default22222222222222222.CharacterStringEncoding.JIS_X_0208:
                                                                          return "Shift_JIS";
                                                                        default:
                                                                          return "utf8";
                                                                      }
                                                                    };
                                                                    var encodeUnsigned22222222222222222 = (buffer, value, length) => {
                                                                      buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                                                                      buffer.offset += length;
                                                                    };
                                                                    var encodeBacnetUnsigned22222222222222222 = (buffer, value) => {
                                                                      encodeUnsigned22222222222222222(buffer, value, getUnsignedLength22222222222222222(value));
                                                                    };
                                                                    var encodeSigned22222222222222222 = (buffer, value, length) => {
                                                                      buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                                                                      buffer.offset += length;
                                                                    };
                                                                    var encodeBacnetSigned22222222222222222 = (buffer, value) => {
                                                                      encodeSigned22222222222222222(buffer, value, getSignedLength22222222222222222(value));
                                                                    };
                                                                    var encodeBacnetReal22222222222222222 = (buffer, value) => {
                                                                      buffer.buffer.writeFloatBE(value, buffer.offset, true);
                                                                      buffer.offset += 4;
                                                                    };
                                                                    var encodeBacnetDouble22222222222222222 = (buffer, value) => {
                                                                      buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                                                                      buffer.offset += 8;
                                                                    };
                                                                    var decodeUnsigned22222222222222222 = (buffer, offset, length) => {
                                                                      if (length === 0) {
                                                                        return {
                                                                          len: 0,
                                                                          value: 0
                                                                        };
                                                                      }
                                                                      return {
                                                                        len: length,
                                                                        //@ts-ignore
                                                                        value: buffer.readUIntBE(offset, length)
                                                                      };
                                                                    };
                                                                    var decodeEnumerated22222222222222222 = (buffer, offset, length) => {
                                                                      return decodeUnsigned22222222222222222(buffer, offset, length);
                                                                    };
                                                                    var encodeBacnetObjectId22222222222222222 = (buffer, objectType, instance) => {
                                                                      const value = ((objectType & enums_default22222222222222222.ASN1_MAX_OBJECT) << enums_default22222222222222222.ASN1_INSTANCE_BITS | instance & enums_default22222222222222222.ASN1_MAX_INSTANCE) >>> 0;
                                                                      encodeUnsigned22222222222222222(buffer, value, 4);
                                                                    };
                                                                    var encodeTag22222222222222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                                                                      let len = 1;
                                                                      const tmp = new Array(3);
                                                                      tmp[0] = 0;
                                                                      if (contextSpecific) {
                                                                        tmp[0] |= 8;
                                                                      }
                                                                      if (tagNumber <= 14) {
                                                                        tmp[0] |= tagNumber << 4;
                                                                      } else {
                                                                        tmp[0] |= 240;
                                                                        tmp[1] = tagNumber;
                                                                        len++;
                                                                      }
                                                                      if (lenValueType <= 4) {
                                                                        tmp[0] |= lenValueType;
                                                                        Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                        buffer.offset += len;
                                                                      } else {
                                                                        tmp[0] |= 5;
                                                                        if (lenValueType <= 253) {
                                                                          tmp[len++] = lenValueType;
                                                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                          buffer.offset += len;
                                                                        } else if (lenValueType <= 65535) {
                                                                          tmp[len++] = 254;
                                                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                          buffer.offset += len;
                                                                          encodeUnsigned22222222222222222(buffer, lenValueType, 2);
                                                                        } else {
                                                                          tmp[len++] = 255;
                                                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                          buffer.offset += len;
                                                                          encodeUnsigned22222222222222222(buffer, lenValueType, 4);
                                                                        }
                                                                      }
                                                                    };
                                                                    var encodeBacnetEnumerated22222222222222222 = (buffer, value) => {
                                                                      encodeBacnetUnsigned22222222222222222(buffer, value);
                                                                    };
                                                                    var isExtendedTagNumber22222222222222222 = (x) => {
                                                                      return (x & 240) === 240;
                                                                    };
                                                                    var isExtendedValue22222222222222222 = (x) => {
                                                                      return (x & 7) === 5;
                                                                    };
                                                                    var isContextSpecific22222222222222222 = (x) => {
                                                                      return (x & 8) === 8;
                                                                    };
                                                                    var isOpeningTag22222222222222222 = (x) => {
                                                                      return (x & 7) === 6;
                                                                    };
                                                                    var isClosingTag22222222222222222 = (x) => {
                                                                      return (x & 7) === 7;
                                                                    };
                                                                    var encodeContextReal22222222222222222 = (buffer, tagNumber, value) => {
                                                                      encodeTag22222222222222222(buffer, tagNumber, true, 4);
                                                                      encodeBacnetReal22222222222222222(buffer, value);
                                                                    };
                                                                    var encodeContextUnsigned22222222222222222 = (buffer, tagNumber, value) => {
                                                                      encodeTag22222222222222222(buffer, tagNumber, true, getUnsignedLength22222222222222222(value));
                                                                      encodeBacnetUnsigned22222222222222222(buffer, value);
                                                                    };
                                                                    var encodeContextEnumerated22222222222222222 = (buffer, tagNumber, value) => {
                                                                      encodeContextUnsigned22222222222222222(buffer, tagNumber, value);
                                                                    };
                                                                    var encodeOctetString22222222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                                      if (octetString) {
                                                                        for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                                                                          buffer.buffer[buffer.offset++] = octetString[i];
                                                                        }
                                                                      }
                                                                    };
                                                                    var encodeApplicationOctetString22222222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                                      encodeTag22222222222222222(buffer, enums_default22222222222222222.ApplicationTag.OCTET_STRING, false, octetCount);
                                                                      encodeOctetString22222222222222222(buffer, octetString, octetOffset, octetCount);
                                                                    };
                                                                    var encodeApplicationNull22222222222222222 = (buffer) => {
                                                                      buffer.buffer[buffer.offset++] = enums_default22222222222222222.ApplicationTag.NULL;
                                                                    };
                                                                    var encodeApplicationBoolean22222222222222222 = (buffer, booleanValue) => {
                                                                      encodeTag22222222222222222(buffer, enums_default22222222222222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                                                                    };
                                                                    var encodeApplicationReal22222222222222222 = (buffer, value) => {
                                                                      encodeTag22222222222222222(buffer, enums_default22222222222222222.ApplicationTag.REAL, false, 4);
                                                                      encodeBacnetReal22222222222222222(buffer, value);
                                                                    };
                                                                    var encodeApplicationDouble22222222222222222 = (buffer, value) => {
                                                                      encodeTag22222222222222222(buffer, enums_default22222222222222222.ApplicationTag.DOUBLE, false, 8);
                                                                      encodeBacnetDouble22222222222222222(buffer, value);
                                                                    };
                                                                    var bitstringBytesUsed22222222222222222 = (bitString) => {
                                                                      let len = 0;
                                                                      if (bitString.bitsUsed > 0) {
                                                                        const lastBit = bitString.bitsUsed - 1;
                                                                        const usedBytes = lastBit / 8 + 1;
                                                                        len = Math.floor(usedBytes);
                                                                      }
                                                                      return len;
                                                                    };
                                                                    var encodeApplicationObjectId22222222222222222 = (buffer, objectType, instance) => {
                                                                      const tmp = getBuffer22222222222222222();
                                                                      encodeBacnetObjectId22222222222222222(tmp, objectType, instance);
                                                                      encodeTag22222222222222222(buffer, enums_default22222222222222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                                                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                      buffer.offset += tmp.offset;
                                                                    };
                                                                    var encodeApplicationUnsigned22222222222222222 = (buffer, value) => {
                                                                      const tmp = getBuffer22222222222222222();
                                                                      encodeBacnetUnsigned22222222222222222(tmp, value);
                                                                      encodeTag22222222222222222(buffer, enums_default22222222222222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                                                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                      buffer.offset += tmp.offset;
                                                                    };
                                                                    var encodeApplicationEnumerated22222222222222222 = (buffer, value) => {
                                                                      const tmp = getBuffer22222222222222222();
                                                                      encodeBacnetEnumerated22222222222222222(tmp, value);
                                                                      encodeTag22222222222222222(buffer, enums_default22222222222222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                                                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                      buffer.offset += tmp.offset;
                                                                    };
                                                                    var encodeApplicationSigned22222222222222222 = (buffer, value) => {
                                                                      const tmp = getBuffer22222222222222222();
                                                                      encodeBacnetSigned22222222222222222(tmp, value);
                                                                      encodeTag22222222222222222(buffer, enums_default22222222222222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                                                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                      buffer.offset += tmp.offset;
                                                                    };
                                                                    var byteReverseBits22222222222222222 = (inByte) => {
                                                                      let outByte = 0;
                                                                      if ((inByte & 1) > 0) {
                                                                        outByte |= 128;
                                                                      }
                                                                      if ((inByte & 2) > 0) {
                                                                        outByte |= 64;
                                                                      }
                                                                      if ((inByte & 4) > 0) {
                                                                        outByte |= 32;
                                                                      }
                                                                      if ((inByte & 8) > 0) {
                                                                        outByte |= 16;
                                                                      }
                                                                      if ((inByte & 16) > 0) {
                                                                        outByte |= 8;
                                                                      }
                                                                      if ((inByte & 32) > 0) {
                                                                        outByte |= 4;
                                                                      }
                                                                      if ((inByte & 64) > 0) {
                                                                        outByte |= 2;
                                                                      }
                                                                      if ((inByte & 128) > 0) {
                                                                        outByte |= 1;
                                                                      }
                                                                      return outByte;
                                                                    };
                                                                    var bitstringOctet22222222222222222 = (bitString, octetIndex) => {
                                                                      let octet = 0;
                                                                      if (bitString.value && octetIndex < enums_default22222222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                                        octet = bitString.value[octetIndex];
                                                                      }
                                                                      return octet;
                                                                    };
                                                                    var encodeBitstring22222222222222222 = (buffer, bitString) => {
                                                                      if (bitString.bitsUsed === 0) {
                                                                        buffer.buffer[buffer.offset++] = 0;
                                                                      } else {
                                                                        const usedBytes = bitstringBytesUsed22222222222222222(bitString);
                                                                        const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                                                                        buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                                                                        for (let i = 0; i < usedBytes; i++) {
                                                                          buffer.buffer[buffer.offset++] = byteReverseBits22222222222222222(
                                                                            bitstringOctet22222222222222222(bitString, i)
                                                                          );
                                                                        }
                                                                      }
                                                                    };
                                                                    var encodeApplicationBitstring22222222222222222 = (buffer, bitString) => {
                                                                      let bitStringEncodedLength = 1;
                                                                      bitStringEncodedLength += bitstringBytesUsed22222222222222222(bitString);
                                                                      encodeTag22222222222222222(
                                                                        buffer,
                                                                        enums_default22222222222222222.ApplicationTag.BIT_STRING,
                                                                        false,
                                                                        bitStringEncodedLength
                                                                      );
                                                                      encodeBitstring22222222222222222(buffer, bitString);
                                                                    };
                                                                    var encodeBacnetDate22222222222222222 = (buffer, value) => {
                                                                      if (value === new Date(1, 1, 1)) {
                                                                        buffer.buffer[buffer.offset++] = 255;
                                                                        buffer.buffer[buffer.offset++] = 255;
                                                                        buffer.buffer[buffer.offset++] = 255;
                                                                        buffer.buffer[buffer.offset++] = 255;
                                                                        return;
                                                                      }
                                                                      if (value.getFullYear() >= START_YEAR22222222222222222) {
                                                                        buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR22222222222222222;
                                                                      } else if (value.getFullYear() < MAX_YEARS22222222222222222) {
                                                                        buffer.buffer[buffer.offset++] = value.getFullYear();
                                                                      } else {
                                                                        throw new Error("invaide year: " + value.getFullYear());
                                                                      }
                                                                      buffer.buffer[buffer.offset++] = value.getMonth();
                                                                      buffer.buffer[buffer.offset++] = value.getDate();
                                                                      buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                                                                    };
                                                                    var encodeApplicationDate22222222222222222 = (buffer, value) => {
                                                                      encodeTag22222222222222222(buffer, enums_default22222222222222222.ApplicationTag.DATE, false, 4);
                                                                      encodeBacnetDate22222222222222222(buffer, value);
                                                                    };
                                                                    var encodeBacnetTime22222222222222222 = (buffer, value) => {
                                                                      buffer.buffer[buffer.offset++] = value.getHours();
                                                                      buffer.buffer[buffer.offset++] = value.getMinutes();
                                                                      buffer.buffer[buffer.offset++] = value.getSeconds();
                                                                      buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                                                                    };
                                                                    var encodeApplicationTime22222222222222222 = (buffer, value) => {
                                                                      encodeTag22222222222222222(buffer, enums_default22222222222222222.ApplicationTag.TIME, false, 4);
                                                                      encodeBacnetTime22222222222222222(buffer, value);
                                                                    };
                                                                    var bacappEncodeDatetime22222222222222222 = (buffer, value) => {
                                                                      if (value !== new Date(1, 1, 1)) {
                                                                        encodeApplicationDate22222222222222222(buffer, value);
                                                                        encodeApplicationTime22222222222222222(buffer, value);
                                                                      }
                                                                    };
                                                                    var encodeContextObjectId22222222222222222 = (buffer, tagNumber, objectType, instance) => {
                                                                      encodeTag22222222222222222(buffer, tagNumber, true, 4);
                                                                      encodeBacnetObjectId22222222222222222(buffer, objectType, instance);
                                                                    };
                                                                    var encodeOpeningTag22222222222222222 = (buffer, tagNumber) => {
                                                                      let len = 1;
                                                                      const tmp = new Array(2);
                                                                      tmp[0] = 8;
                                                                      if (tagNumber <= 14) {
                                                                        tmp[0] |= tagNumber << 4;
                                                                      } else {
                                                                        tmp[0] |= 240;
                                                                        tmp[1] = tagNumber;
                                                                        len++;
                                                                      }
                                                                      tmp[0] |= 6;
                                                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                      buffer.offset += len;
                                                                    };
                                                                    var encodeClosingTag22222222222222222 = (buffer, tagNumber) => {
                                                                      let len = 1;
                                                                      const tmp = new Array(2);
                                                                      tmp[0] = 8;
                                                                      if (tagNumber <= 14) {
                                                                        tmp[0] |= tagNumber << 4;
                                                                      } else {
                                                                        tmp[0] |= 240;
                                                                        tmp[1] = tagNumber;
                                                                        len++;
                                                                      }
                                                                      tmp[0] |= 7;
                                                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                      buffer.offset += len;
                                                                    };
                                                                    var encodeReadAccessSpecification22222222222222222 = (buffer, value) => {
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        0,
                                                                        value.objectId.type,
                                                                        value.objectId.instance
                                                                      );
                                                                      encodeOpeningTag22222222222222222(buffer, 1);
                                                                      value.properties.forEach((p) => {
                                                                        encodeContextEnumerated22222222222222222(buffer, 0, p.id);
                                                                        if (p.index && p.index !== enums_default22222222222222222.ASN1_ARRAY_ALL) {
                                                                          encodeContextUnsigned22222222222222222(buffer, 1, p.index);
                                                                        }
                                                                      });
                                                                      encodeClosingTag22222222222222222(buffer, 1);
                                                                    };
                                                                    var encodeContextBoolean22222222222222222 = (buffer, tagNumber, booleanValue) => {
                                                                      encodeTag22222222222222222(buffer, tagNumber, true, 1);
                                                                      buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                                                                      buffer.offset += 1;
                                                                    };
                                                                    var encodeCovSubscription22222222222222222 = (buffer, value) => {
                                                                      encodeOpeningTag22222222222222222(buffer, 0);
                                                                      encodeOpeningTag22222222222222222(buffer, 0);
                                                                      encodeOpeningTag22222222222222222(buffer, 1);
                                                                      encodeApplicationUnsigned22222222222222222(buffer, value.recipient.network);
                                                                      if (value.recipient.network === 65535) {
                                                                        encodeApplicationOctetString22222222222222222(buffer, 0, 0, 0);
                                                                      } else {
                                                                        encodeApplicationOctetString22222222222222222(
                                                                          buffer,
                                                                          value.recipient.address,
                                                                          0,
                                                                          value.recipient.address.length
                                                                        );
                                                                      }
                                                                      encodeClosingTag22222222222222222(buffer, 1);
                                                                      encodeClosingTag22222222222222222(buffer, 0);
                                                                      encodeContextUnsigned22222222222222222(buffer, 1, value.subscriptionProcessId);
                                                                      encodeClosingTag22222222222222222(buffer, 0);
                                                                      encodeOpeningTag22222222222222222(buffer, 1);
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        0,
                                                                        value.monitoredObjectId.type,
                                                                        value.monitoredObjectId.instance
                                                                      );
                                                                      encodeContextEnumerated22222222222222222(buffer, 1, value.monitoredProperty.id);
                                                                      if (value.monitoredProperty.index !== enums_default22222222222222222.ASN1_ARRAY_ALL) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 2, value.monitoredProperty.index);
                                                                      }
                                                                      encodeClosingTag22222222222222222(buffer, 1);
                                                                      encodeContextBoolean22222222222222222(buffer, 2, value.issueConfirmedNotifications);
                                                                      encodeContextUnsigned22222222222222222(buffer, 3, value.timeRemaining);
                                                                      if (value.covIncrement > 0) {
                                                                        encodeContextReal22222222222222222(buffer, 4, value.covIncrement);
                                                                      }
                                                                    };
                                                                    var bacappEncodeApplicationData22222222222222222 = (buffer, value) => {
                                                                      if (value.value === null) {
                                                                        value.type = enums_default22222222222222222.ApplicationTag.NULL;
                                                                      }
                                                                      switch (value.type) {
                                                                        case enums_default22222222222222222.ApplicationTag.NULL:
                                                                          encodeApplicationNull22222222222222222(buffer);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.BOOLEAN:
                                                                          encodeApplicationBoolean22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                                          encodeApplicationUnsigned22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.SIGNED_INTEGER:
                                                                          encodeApplicationSigned22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.REAL:
                                                                          encodeApplicationReal22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.DOUBLE:
                                                                          encodeApplicationDouble22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.OCTET_STRING:
                                                                          encodeApplicationOctetString22222222222222222(buffer, value.value, 0, value.value.length);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.CHARACTER_STRING:
                                                                          encodeApplicationCharacterString22222222222222222(buffer, value.value, value.encoding);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.BIT_STRING:
                                                                          encodeApplicationBitstring22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.ENUMERATED:
                                                                          encodeApplicationEnumerated22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.DATE:
                                                                          encodeApplicationDate22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.TIME:
                                                                          encodeApplicationTime22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.TIMESTAMP:
                                                                          bacappEncodeTimestamp22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.DATETIME:
                                                                          bacappEncodeDatetime22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                                          encodeApplicationObjectId22222222222222222(buffer, value.value.type, value.value.instance);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.COV_SUBSCRIPTION:
                                                                          encodeCovSubscription22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.READ_ACCESS_RESULT:
                                                                          encodeReadAccessResult22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                                          encodeReadAccessSpecification22222222222222222(buffer, value.value);
                                                                          break;
                                                                        case void 0:
                                                                          throw new Error(
                                                                            "Cannot encode a value if the type has not been specified"
                                                                          );
                                                                        default:
                                                                          throw "No encode for ApplicationTag type: " + enums_default22222222222222222.getEnumName(
                                                                            enums_default22222222222222222.ApplicationTag,
                                                                            value.type
                                                                          );
                                                                      }
                                                                    };
                                                                    var bacappEncodeDeviceObjPropertyRef22222222222222222 = (buffer, value) => {
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        0,
                                                                        value.objectId.type,
                                                                        value.objectId.instance
                                                                      );
                                                                      encodeContextEnumerated22222222222222222(buffer, 1, value.id);
                                                                      if (value.arrayIndex !== enums_default22222222222222222.ASN1_ARRAY_ALL) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 2, value.arrayIndex);
                                                                      }
                                                                      if (value.deviceIndentifier.type === enums_default22222222222222222.ObjectType.DEVICE) {
                                                                        encodeContextObjectId22222222222222222(
                                                                          buffer,
                                                                          3,
                                                                          value.deviceIndentifier.type,
                                                                          value.deviceIndentifier.instance
                                                                        );
                                                                      }
                                                                    };
                                                                    var bacappEncodeContextDeviceObjPropertyRef22222222222222222 = (buffer, tagNumber, value) => {
                                                                      encodeOpeningTag22222222222222222(buffer, tagNumber);
                                                                      bacappEncodeDeviceObjPropertyRef22222222222222222(buffer, value);
                                                                      encodeClosingTag22222222222222222(buffer, tagNumber);
                                                                    };
                                                                    var bacappEncodePropertyState22222222222222222 = (buffer, value) => {
                                                                      switch (value.type) {
                                                                        case enums_default22222222222222222.PropertyStates.BOOLEAN_VALUE:
                                                                          encodeContextBoolean22222222222222222(buffer, 0, value.state === 1);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.BINARY_VALUE:
                                                                          encodeContextEnumerated22222222222222222(buffer, 1, value.state);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.EVENT_TYPE:
                                                                          encodeContextEnumerated22222222222222222(buffer, 2, value.state);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.POLARITY:
                                                                          encodeContextEnumerated22222222222222222(buffer, 3, value.state);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.PROGRAM_CHANGE:
                                                                          encodeContextEnumerated22222222222222222(buffer, 4, value.state);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.PROGRAM_STATE:
                                                                          encodeContextEnumerated22222222222222222(buffer, 5, value.state);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.REASON_FOR_HALT:
                                                                          encodeContextEnumerated22222222222222222(buffer, 6, value.state);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.RELIABILITY:
                                                                          encodeContextEnumerated22222222222222222(buffer, 7, value.state);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.STATE:
                                                                          encodeContextEnumerated22222222222222222(buffer, 8, value.state);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.SYSTEM_STATUS:
                                                                          encodeContextEnumerated22222222222222222(buffer, 9, value.state);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.UNITS:
                                                                          encodeContextEnumerated22222222222222222(buffer, 10, value.state);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.UNSIGNED_VALUE:
                                                                          encodeContextUnsigned22222222222222222(buffer, 11, value.state);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.LIFE_SAFETY_MODE:
                                                                          encodeContextEnumerated22222222222222222(buffer, 12, value.state);
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyStates.LIFE_SAFETY_STATE:
                                                                          encodeContextEnumerated22222222222222222(buffer, 13, value.state);
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                    };
                                                                    var encodeContextBitstring22222222222222222 = (buffer, tagNumber, bitString) => {
                                                                      let bitStringEncodedLength = 1;
                                                                      bitStringEncodedLength += bitstringBytesUsed22222222222222222(bitString);
                                                                      encodeTag22222222222222222(buffer, tagNumber, true, bitStringEncodedLength);
                                                                      encodeBitstring22222222222222222(buffer, bitString);
                                                                    };
                                                                    var encodeContextSigned22222222222222222 = (buffer, tagNumber, value) => {
                                                                      encodeTag22222222222222222(buffer, tagNumber, true, getSignedLength22222222222222222(value));
                                                                      encodeBacnetSigned22222222222222222(buffer, value);
                                                                    };
                                                                    var encodeContextTime22222222222222222 = (buffer, tagNumber, value) => {
                                                                      encodeTag22222222222222222(buffer, tagNumber, true, 4);
                                                                      encodeBacnetTime22222222222222222(buffer, value);
                                                                    };
                                                                    var bacappEncodeContextDatetime22222222222222222 = (buffer, tagNumber, value) => {
                                                                      if (value !== new Date(1, 1, 1)) {
                                                                        encodeOpeningTag22222222222222222(buffer, tagNumber);
                                                                        bacappEncodeDatetime22222222222222222(buffer, value);
                                                                        encodeClosingTag22222222222222222(buffer, tagNumber);
                                                                      } else {
                                                                        throw new Error("wrong Datetime while bacapp encoding context");
                                                                      }
                                                                    };
                                                                    var decodeTagNumber22222222222222222 = (buffer, offset) => {
                                                                      let len = 1;
                                                                      let tagNumber;
                                                                      if (isExtendedTagNumber22222222222222222(buffer[offset])) {
                                                                        tagNumber = buffer[offset + 1];
                                                                        len++;
                                                                      } else {
                                                                        tagNumber = buffer[offset] >> 4;
                                                                      }
                                                                      return {
                                                                        len,
                                                                        tagNumber
                                                                      };
                                                                    };
                                                                    var decodeIsContextTag22222222222222222 = (buffer, offset, tagNumber) => {
                                                                      const result = decodeTagNumber22222222222222222(buffer, offset);
                                                                      return isContextSpecific22222222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                                    };
                                                                    var decodeIsOpeningTagNumber22222222222222222 = (buffer, offset, tagNumber) => {
                                                                      const result = decodeTagNumber22222222222222222(buffer, offset);
                                                                      return isOpeningTag22222222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                                    };
                                                                    var decodeIsClosingTagNumber22222222222222222 = (buffer, offset, tagNumber) => {
                                                                      const result = decodeTagNumber22222222222222222(buffer, offset);
                                                                      return isClosingTag22222222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                                    };
                                                                    var decodeIsClosingTag22222222222222222 = (buffer, offset) => {
                                                                      return (buffer[offset] & 7) === 7;
                                                                    };
                                                                    var decodeIsOpeningTag22222222222222222 = (buffer, offset) => {
                                                                      return (buffer[offset] & 7) === 6;
                                                                    };
                                                                    var decodeObjectId22222222222222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                                                                      const result = decodeUnsigned22222222222222222(buffer, offset, 4);
                                                                      const objectType = result.value >> enums_default22222222222222222.ASN1_INSTANCE_BITS & enums_default22222222222222222.ASN1_MAX_OBJECT;
                                                                      const instance = result.value & enums_default22222222222222222.ASN1_MAX_INSTANCE;
                                                                      return {
                                                                        len: result.len,
                                                                        objectType,
                                                                        instance
                                                                      };
                                                                    };
                                                                    var decodeObjectIdSafe22222222222222222 = (buffer, offset, lenValue) => {
                                                                      if (lenValue !== 4) {
                                                                        return {
                                                                          len: 0,
                                                                          objectType: 0,
                                                                          instance: 0
                                                                        };
                                                                      } else {
                                                                        return decodeObjectId22222222222222222(buffer, offset);
                                                                      }
                                                                    };
                                                                    var decodeTagNumberAndValue22222222222222222 = (buffer, offset) => {
                                                                      let value;
                                                                      let result = decodeTagNumber22222222222222222(buffer, offset);
                                                                      let len = result.len;
                                                                      if (isExtendedValue22222222222222222(buffer[offset])) {
                                                                        if (buffer[offset + len] === 255) {
                                                                          len++;
                                                                          result = decodeUnsigned22222222222222222(buffer, offset + len, 4);
                                                                          len += result.len;
                                                                          value = result.value;
                                                                        } else if (buffer[offset + len] === 254) {
                                                                          len++;
                                                                          result = decodeUnsigned22222222222222222(buffer, offset + len, 2);
                                                                          len += result.len;
                                                                          value = result.value;
                                                                        } else {
                                                                          value = buffer[offset + len];
                                                                          len++;
                                                                        }
                                                                      } else if (isOpeningTag22222222222222222(buffer[offset])) {
                                                                        value = 0;
                                                                      } else if (isClosingTag22222222222222222(buffer[offset])) {
                                                                        value = 0;
                                                                      } else {
                                                                        value = buffer[offset] & 7;
                                                                      }
                                                                      return {
                                                                        len,
                                                                        tagNumber: result.tagNumber,
                                                                        value
                                                                      };
                                                                    };
                                                                    var bacappDecodeApplicationData22222222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                                      if (!isContextSpecific22222222222222222(buffer[offset])) {
                                                                        let result = decodeTagNumberAndValue22222222222222222(buffer, offset);
                                                                        if (result) {
                                                                          let len = result.len;
                                                                          result = bacappDecodeData22222222222222222(
                                                                            buffer,
                                                                            offset + len,
                                                                            maxOffset,
                                                                            result.tagNumber,
                                                                            result.value
                                                                          );
                                                                          if (!result) {
                                                                            return void 0;
                                                                          }
                                                                          let resObj = {
                                                                            len: len + result.len,
                                                                            type: result.type,
                                                                            value: result.value
                                                                          };
                                                                          if (result.encoding !== void 0)
                                                                            resObj.encoding = result.encoding;
                                                                          return resObj;
                                                                        }
                                                                      } else {
                                                                        return bacappDecodeContextApplicationData22222222222222222(
                                                                          buffer,
                                                                          offset,
                                                                          maxOffset,
                                                                          objectType,
                                                                          propertyId
                                                                        );
                                                                      }
                                                                    };
                                                                    var encodeReadAccessResult22222222222222222 = (buffer, value) => {
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        0,
                                                                        value.objectId.type,
                                                                        value.objectId.instance
                                                                      );
                                                                      encodeOpeningTag22222222222222222(buffer, 1);
                                                                      value.values.forEach((item) => {
                                                                        encodeContextEnumerated22222222222222222(buffer, 2, item.property.id);
                                                                        if (item.property.index !== enums_default22222222222222222.ASN1_ARRAY_ALL) {
                                                                          encodeContextUnsigned22222222222222222(buffer, 3, item.property.index);
                                                                        }
                                                                        if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                                                                          encodeOpeningTag22222222222222222(buffer, 5);
                                                                          encodeApplicationEnumerated22222222222222222(buffer, item.value[0].value.errorClass);
                                                                          encodeApplicationEnumerated22222222222222222(buffer, item.value[0].value.errorCode);
                                                                          encodeClosingTag22222222222222222(buffer, 5);
                                                                        } else {
                                                                          if (!item.value)
                                                                            throw new Error("No value in item");
                                                                          encodeOpeningTag22222222222222222(buffer, 4);
                                                                          item.value.forEach((subItem) => {
                                                                            bacappEncodeApplicationData22222222222222222(buffer, subItem);
                                                                          });
                                                                          encodeClosingTag22222222222222222(buffer, 4);
                                                                        }
                                                                      });
                                                                      encodeClosingTag22222222222222222(buffer, 1);
                                                                    };
                                                                    var decodeReadAccessResult22222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let value = {};
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      let result = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      value.objectId = {
                                                                        type: result.objectType,
                                                                        instance: result.instance
                                                                      };
                                                                      len += result.len;
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        return -1;
                                                                      }
                                                                      len++;
                                                                      const values = [];
                                                                      while (apduLen - len > 0) {
                                                                        let newEntry = {};
                                                                        if (decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                          len++;
                                                                          break;
                                                                        }
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 2) {
                                                                          return void 0;
                                                                        }
                                                                        result = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        newEntry.id = result.value;
                                                                        len += result.len;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        if (result.tagNumber === 3) {
                                                                          len += result.len;
                                                                          result = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                          newEntry.index = result.value;
                                                                          len += result.len;
                                                                        } else {
                                                                          newEntry.index = enums_default22222222222222222.ASN1_ARRAY_ALL;
                                                                        }
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber === 4) {
                                                                          const localValues = [];
                                                                          while (len + offset <= buffer.length && !decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 4)) {
                                                                            let localResult = bacappDecodeApplicationData22222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              apduLen + offset - 1,
                                                                              value.objectId.type,
                                                                              newEntry.id
                                                                            );
                                                                            if (!localResult) {
                                                                              return void 0;
                                                                            }
                                                                            len += localResult.len;
                                                                            let resObj = {
                                                                              value: localResult.value,
                                                                              type: localResult.type
                                                                            };
                                                                            if (localResult.encoding !== void 0)
                                                                              resObj.encoding = localResult.encoding;
                                                                            localValues.push(resObj);
                                                                          }
                                                                          if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 4)) {
                                                                            return void 0;
                                                                          }
                                                                          if (localValues.count === 2 && localValues[0].type === enums_default22222222222222222.ApplicationTag.DATE && localValues[1].type === enums_default22222222222222222.ApplicationTag.TIME) {
                                                                            const date = localValues[0].value;
                                                                            const time = localValues[1].value;
                                                                            const bdatetime = new Date(
                                                                              date.year,
                                                                              date.month,
                                                                              date.day,
                                                                              time.hour,
                                                                              time.minute,
                                                                              time.second,
                                                                              time.millisecond
                                                                            );
                                                                            newEntry.value = [
                                                                              { type: enums_default22222222222222222.ApplicationTag.DATETIME, value: bdatetime }
                                                                            ];
                                                                          } else {
                                                                            newEntry.value = localValues;
                                                                          }
                                                                          len++;
                                                                        } else if (result.tagNumber === 5) {
                                                                          let err = {};
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          result = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                          len += result.len;
                                                                          err.errorClass = result.value;
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          result = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                          len += result.len;
                                                                          err.errorCode = result.value;
                                                                          if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 5)) {
                                                                            return void 0;
                                                                          }
                                                                          len++;
                                                                          newEntry.value = [
                                                                            {
                                                                              type: enums_default22222222222222222.ApplicationTag.ERROR,
                                                                              value: err
                                                                            }
                                                                          ];
                                                                        }
                                                                        values.push(newEntry);
                                                                      }
                                                                      value.values = values;
                                                                      return {
                                                                        len,
                                                                        value
                                                                      };
                                                                    };
                                                                    var decodeSigned22222222222222222 = (buffer, offset, length) => {
                                                                      return {
                                                                        len: length,
                                                                        value: buffer.readIntBE(offset, length, true)
                                                                      };
                                                                    };
                                                                    var decodeReal22222222222222222 = (buffer, offset) => {
                                                                      return {
                                                                        len: 4,
                                                                        value: buffer.readFloatBE(offset, true)
                                                                      };
                                                                    };
                                                                    var decodeRealSafe22222222222222222 = (buffer, offset, lenValue) => {
                                                                      if (lenValue !== 4) {
                                                                        return {
                                                                          len: lenValue,
                                                                          value: 0
                                                                        };
                                                                      } else {
                                                                        return decodeReal22222222222222222(buffer, offset);
                                                                      }
                                                                    };
                                                                    var decodeDouble22222222222222222 = (buffer, offset) => {
                                                                      return {
                                                                        len: 8,
                                                                        value: buffer.readDoubleBE(offset, true)
                                                                      };
                                                                    };
                                                                    var decodeDoubleSafe22222222222222222 = (buffer, offset, lenValue) => {
                                                                      if (lenValue !== 8) {
                                                                        return {
                                                                          len: lenValue,
                                                                          value: 0
                                                                        };
                                                                      } else {
                                                                        return decodeDouble22222222222222222(buffer, offset);
                                                                      }
                                                                    };
                                                                    var decodeOctetString22222222222222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                                                                      const octetString = [];
                                                                      for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                                                                        octetString.push(buffer[offset + i]);
                                                                      }
                                                                      return {
                                                                        len: octetStringLength,
                                                                        value: octetString
                                                                      };
                                                                    };
                                                                    var multiCharsetCharacterstringDecode22222222222222222 = (buffer, offset, maxLength, encoding, length) => {
                                                                      const stringBuf = Buffer.alloc(length);
                                                                      buffer.copy(stringBuf, 0, offset, offset + length);
                                                                      return {
                                                                        value: import_iconv_lite22222222222222222.default.decode(stringBuf, getEncodingType22222222222222222(encoding, buffer, offset)),
                                                                        len: length + 1,
                                                                        encoding
                                                                      };
                                                                    };
                                                                    var decodeCharacterString22222222222222222 = (buffer, offset, maxLength, lenValue) => {
                                                                      return multiCharsetCharacterstringDecode22222222222222222(
                                                                        buffer,
                                                                        offset + 1,
                                                                        maxLength,
                                                                        buffer[offset],
                                                                        lenValue - 1
                                                                      );
                                                                    };
                                                                    var bitstringSetBitsUsed22222222222222222 = (bitString, bytesUsed, unusedBits) => {
                                                                      bitString.bitsUsed = bytesUsed * 8;
                                                                      bitString.bitsUsed -= unusedBits;
                                                                    };
                                                                    var decodeBitstring22222222222222222 = (buffer, offset, lenValue) => {
                                                                      let len = 0;
                                                                      let bitString = {};
                                                                      bitString.value = [];
                                                                      if (lenValue > 0) {
                                                                        const bytesUsed = lenValue - 1;
                                                                        if (bytesUsed <= enums_default22222222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                                          len = 1;
                                                                          for (let i = 0; i < bytesUsed; i++) {
                                                                            bitString.value.push(byteReverseBits22222222222222222(buffer[offset + len++]));
                                                                          }
                                                                          const unusedBits = buffer[offset] & 7;
                                                                          bitstringSetBitsUsed22222222222222222(bitString, bytesUsed, unusedBits);
                                                                        }
                                                                      }
                                                                      return {
                                                                        len,
                                                                        value: bitString
                                                                      };
                                                                    };
                                                                    var decodeDate22222222222222222 = (buffer, offset) => {
                                                                      let date;
                                                                      const year = buffer[offset] + 1900;
                                                                      const month = buffer[offset + 1];
                                                                      const day = buffer[offset + 2];
                                                                      const wday = buffer[offset + 3];
                                                                      if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                                                                        date = new Date(1, 1, 1);
                                                                      } else {
                                                                        date = new Date(year, month, day);
                                                                      }
                                                                      return {
                                                                        len: 4,
                                                                        value: date
                                                                      };
                                                                    };
                                                                    var decodeDateSafe22222222222222222 = (buffer, offset, lenValue) => {
                                                                      if (lenValue !== 4) {
                                                                        return {
                                                                          len: lenValue,
                                                                          value: new Date(1, 1, 1)
                                                                        };
                                                                      } else {
                                                                        return decodeDate22222222222222222(buffer, offset);
                                                                      }
                                                                    };
                                                                    var decodeApplicationDate22222222222222222 = (buffer, offset) => {
                                                                      const result = decodeTagNumber22222222222222222(buffer, offset);
                                                                      if (result.tagNumber === enums_default22222222222222222.ApplicationTag.DATE) {
                                                                        const value = decodeDate22222222222222222(buffer, offset + 1);
                                                                        return {
                                                                          len: value.len + 1,
                                                                          value
                                                                        };
                                                                      }
                                                                      return void 0;
                                                                    };
                                                                    var decodeBacnetTime22222222222222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                                                                      const hour = buffer[offset + 0];
                                                                      const min = buffer[offset + 1];
                                                                      const sec = buffer[offset + 2];
                                                                      let hundredths = buffer[offset + 3];
                                                                      if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                                                                        value = new Date(1, 1, 1);
                                                                      } else {
                                                                        if (hundredths > 100)
                                                                          hundredths = 0;
                                                                        value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                                                                      }
                                                                      return {
                                                                        len: 4,
                                                                        value
                                                                      };
                                                                    };
                                                                    var decodeBacnetTimeSafe22222222222222222 = (buffer, offset, lenValue) => {
                                                                      if (lenValue !== 4) {
                                                                        return {
                                                                          len: lenValue,
                                                                          value: new Date(1, 1, 1)
                                                                        };
                                                                      } else {
                                                                        return decodeBacnetTime22222222222222222(buffer, offset);
                                                                      }
                                                                    };
                                                                    var decodeApplicationTime22222222222222222 = (buffer, offset) => {
                                                                      const result = decodeTagNumber22222222222222222(buffer, offset);
                                                                      if (result.tagNumber === enums_default22222222222222222.ApplicationTag.TIME) {
                                                                        const value = decodeBacnetTime22222222222222222(buffer, offset + 1);
                                                                        return {
                                                                          len: value.len + 1,
                                                                          value
                                                                        };
                                                                      }
                                                                      return void 0;
                                                                    };
                                                                    var decodeBacnetDatetime22222222222222222 = (buffer, offset) => {
                                                                      let len = 0;
                                                                      const date = decodeApplicationDate22222222222222222(buffer, offset + len);
                                                                      len += date.len;
                                                                      const time = decodeApplicationTime22222222222222222(buffer, offset + len);
                                                                      len += time.len;
                                                                      return {
                                                                        len,
                                                                        value: new Date(
                                                                          date.year,
                                                                          date.month,
                                                                          date.day,
                                                                          time.hour,
                                                                          time.minute,
                                                                          time.second,
                                                                          time.millisecond
                                                                        )
                                                                      };
                                                                    };
                                                                    var bacappDecodeData22222222222222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                                                                      let result;
                                                                      let value = {
                                                                        len: 0,
                                                                        type: tagDataType
                                                                      };
                                                                      switch (tagDataType) {
                                                                        case enums_default22222222222222222.ApplicationTag.NULL:
                                                                          value.value = null;
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.BOOLEAN:
                                                                          value.value = lenValueType > 0;
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                                          result = decodeUnsigned22222222222222222(buffer, offset, lenValueType);
                                                                          value.len += result.len;
                                                                          value.value = result.value;
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.SIGNED_INTEGER:
                                                                          result = decodeSigned22222222222222222(buffer, offset, lenValueType);
                                                                          value.len += result.len;
                                                                          value.value = result.value;
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.REAL:
                                                                          result = decodeRealSafe22222222222222222(buffer, offset, lenValueType);
                                                                          value.len += result.len;
                                                                          value.value = result.value;
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.DOUBLE:
                                                                          result = decodeDoubleSafe22222222222222222(buffer, offset, lenValueType);
                                                                          value.len += result.len;
                                                                          value.value = result.value;
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.OCTET_STRING:
                                                                          result = decodeOctetString22222222222222222(buffer, offset, maxLength, 0, lenValueType);
                                                                          value.len += result.len;
                                                                          value.value = result.value;
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.CHARACTER_STRING:
                                                                          result = decodeCharacterString22222222222222222(buffer, offset, maxLength, lenValueType);
                                                                          value.len += result.len;
                                                                          value.value = result.value;
                                                                          value.encoding = result.encoding;
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.BIT_STRING:
                                                                          result = decodeBitstring22222222222222222(buffer, offset, lenValueType);
                                                                          value.len += result.len;
                                                                          value.value = result.value;
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.ENUMERATED:
                                                                          result = decodeEnumerated22222222222222222(buffer, offset, lenValueType);
                                                                          value.len += result.len;
                                                                          value.value = result.value;
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.DATE:
                                                                          result = decodeDateSafe22222222222222222(buffer, offset, lenValueType);
                                                                          value.len += result.len;
                                                                          value.value = result.value;
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.TIME:
                                                                          result = decodeBacnetTimeSafe22222222222222222(buffer, offset, lenValueType);
                                                                          value.len += result.len;
                                                                          value.value = result.value;
                                                                          break;
                                                                        case enums_default22222222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                                          result = decodeObjectIdSafe22222222222222222(buffer, offset, lenValueType);
                                                                          value.len += result.len;
                                                                          value.value = { type: result.objectType, instance: result.instance };
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                      return value;
                                                                    };
                                                                    var bacappContextTagType22222222222222222 = (property, tagNumber) => {
                                                                      let tag = 0;
                                                                      switch (property) {
                                                                        case enums_default22222222222222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                                                                        case enums_default22222222222222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                                                                        case enums_default22222222222222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                                                                          switch (tagNumber) {
                                                                            case 0:
                                                                            case 1:
                                                                              tag = enums_default22222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                              break;
                                                                            case 2:
                                                                              tag = enums_default22222222222222222.ApplicationTag.REAL;
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyIdentifier.ACTION:
                                                                          switch (tagNumber) {
                                                                            case 0:
                                                                            case 1:
                                                                              tag = enums_default22222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                              break;
                                                                            case 2:
                                                                              tag = enums_default22222222222222222.ApplicationTag.ENUMERATED;
                                                                              break;
                                                                            case 3:
                                                                            case 5:
                                                                            case 6:
                                                                              tag = enums_default22222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                              break;
                                                                            case 7:
                                                                            case 8:
                                                                              tag = enums_default22222222222222222.ApplicationTag.BOOLEAN;
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                                                                          switch (tagNumber) {
                                                                            case 0:
                                                                              tag = enums_default22222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                                                                          switch (tagNumber) {
                                                                            case 1:
                                                                              tag = enums_default22222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                              break;
                                                                            case 3:
                                                                              tag = enums_default22222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                                                                          switch (tagNumber) {
                                                                            case 0:
                                                                            case 3:
                                                                              tag = enums_default22222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                              break;
                                                                            case 1:
                                                                              tag = enums_default22222222222222222.ApplicationTag.ENUMERATED;
                                                                              break;
                                                                            case 2:
                                                                              tag = enums_default22222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyIdentifier.SUBORDINATE_LIST:
                                                                          switch (tagNumber) {
                                                                            case 0:
                                                                            case 1:
                                                                              tag = enums_default22222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyIdentifier.RECIPIENT_LIST:
                                                                          switch (tagNumber) {
                                                                            case 0:
                                                                              tag = enums_default22222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                          break;
                                                                        case enums_default22222222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                                                                          switch (tagNumber) {
                                                                            case 0:
                                                                            case 1:
                                                                              break;
                                                                            case 2:
                                                                              tag = enums_default22222222222222222.ApplicationTag.BOOLEAN;
                                                                              break;
                                                                            case 3:
                                                                              tag = enums_default22222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                              break;
                                                                            case 4:
                                                                              tag = enums_default22222222222222222.ApplicationTag.REAL;
                                                                              break;
                                                                            default:
                                                                              break;
                                                                          }
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                      return tag;
                                                                    };
                                                                    var decodeDeviceObjPropertyRef22222222222222222 = (buffer, offset, NOTUSEDARG = 0) => {
                                                                      let len = 0;
                                                                      let arrayIndex = enums_default22222222222222222.ASN1_ARRAY_ALL;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      let objectId = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += objectId.len;
                                                                      let result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 1) {
                                                                        return void 0;
                                                                      }
                                                                      let id = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += id.len;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      if (result.tagNumber === 2) {
                                                                        len += result.len;
                                                                        arrayIndex = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += arrayIndex.len;
                                                                      }
                                                                      if (decodeIsContextTag22222222222222222(buffer, offset + len, 3)) {
                                                                        if (!isClosingTag22222222222222222(buffer[offset + len])) {
                                                                          len++;
                                                                          objectId = decodeObjectId22222222222222222(buffer, offset + len);
                                                                          len += objectId.len;
                                                                        }
                                                                      }
                                                                      return {
                                                                        len,
                                                                        value: {
                                                                          objectId,
                                                                          id
                                                                        }
                                                                      };
                                                                    };
                                                                    var decodeReadAccessSpecification22222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let value = {};
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      let decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      value.objectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      len += decodedValue.len;
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      const propertyIdAndArrayIndex = [];
                                                                      while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        let propertyRef = {};
                                                                        if (!isContextSpecific22222222222222222(buffer[offset + len])) {
                                                                          return void 0;
                                                                        }
                                                                        let result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 0) {
                                                                          return void 0;
                                                                        }
                                                                        if (len + result.value >= apduLen) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        propertyRef.id = decodedValue.value;
                                                                        len += decodedValue.len;
                                                                        propertyRef.index = enums_default22222222222222222.ASN1_ARRAY_ALL;
                                                                        if (isContextSpecific22222222222222222(buffer[offset + len]) && !isClosingTag22222222222222222(buffer[offset + len])) {
                                                                          const tmp = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          if (tmp.tagNumber === 1) {
                                                                            len += tmp.len;
                                                                            if (len + tmp.value >= apduLen) {
                                                                              return void 0;
                                                                            }
                                                                            decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, tmp.value);
                                                                            propertyRef.index = decodedValue.value;
                                                                            len += decodedValue.len;
                                                                          }
                                                                        }
                                                                        propertyIdAndArrayIndex.push(propertyRef);
                                                                      }
                                                                      if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      value.properties = propertyIdAndArrayIndex;
                                                                      return {
                                                                        len,
                                                                        value
                                                                      };
                                                                    };
                                                                    var decodeCovSubscription22222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let value = {};
                                                                      let result;
                                                                      let decodedValue;
                                                                      value.recipient = {};
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== enums_default22222222222222222.ApplicationTag.UNSIGNED_INTEGER) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.recipient.net = decodedValue.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== enums_default22222222222222222.ApplicationTag.OCTET_STRING) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeOctetString22222222222222222(
                                                                        buffer,
                                                                        offset + len,
                                                                        apduLen,
                                                                        0,
                                                                        result.value
                                                                      );
                                                                      len += decodedValue.len;
                                                                      value.recipient.adr = decodedValue.value;
                                                                      if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 1) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.subscriptionProcessId = decodedValue.value;
                                                                      if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 0) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      value.monitoredObjectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 1) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.monitoredProperty = {};
                                                                      value.monitoredProperty.id = decodedValue.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      if (result.tagNumber === 2) {
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.monitoredProperty.index = decodedValue.value;
                                                                      } else {
                                                                        value.monitoredProperty.index = enums_default22222222222222222.ASN1_ARRAY_ALL;
                                                                      }
                                                                      if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 2) {
                                                                        return void 0;
                                                                      }
                                                                      value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                                      len++;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 3) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.timeRemaining = decodedValue.value;
                                                                      if (len < apduLen && !isClosingTag22222222222222222(buffer[offset + len])) {
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 4) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeReal22222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        value.covIncrement = decodedValue.value;
                                                                      }
                                                                      return {
                                                                        len,
                                                                        value
                                                                      };
                                                                    };
                                                                    var decodeCalendarDate22222222222222222 = (buffer, offset) => {
                                                                      return {
                                                                        len: 4,
                                                                        year: buffer[offset],
                                                                        month: buffer[offset + 1],
                                                                        day: buffer[offset + 2],
                                                                        wday: buffer[offset + 3]
                                                                      };
                                                                    };
                                                                    var decodeCalendarDateRange22222222222222222 = (buffer, offset) => {
                                                                      let len = 1;
                                                                      const startDate = decodeDate22222222222222222(buffer, offset + len);
                                                                      len += startDate.len + 1;
                                                                      const endDate = decodeDate22222222222222222(buffer, offset + len);
                                                                      len += endDate.len + 1;
                                                                      return {
                                                                        len,
                                                                        startDate,
                                                                        endDate
                                                                      };
                                                                    };
                                                                    var decodeCalendarWeekDay22222222222222222 = (buffer, offset) => {
                                                                      return {
                                                                        len: 3,
                                                                        month: buffer[offset],
                                                                        week: buffer[offset + 1],
                                                                        wday: buffer[offset + 2]
                                                                      };
                                                                    };
                                                                    var decodeCalendar22222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      const entries = [];
                                                                      let decodedValue;
                                                                      while (len < apduLen) {
                                                                        const result = decodeTagNumber22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        switch (result.tagNumber) {
                                                                          case 0:
                                                                            decodedValue = decodeCalendarDate22222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            entries.push(decodedValue);
                                                                            break;
                                                                          case 1:
                                                                            decodedValue = decodeCalendarDateRange22222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            entries.push(decodedValue);
                                                                            break;
                                                                          case 2:
                                                                            decodedValue = decodeCalendarWeekDay22222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            entries.push(decodedValue);
                                                                            break;
                                                                          default:
                                                                            return {
                                                                              len: len - 1,
                                                                              value: entries
                                                                            };
                                                                        }
                                                                      }
                                                                    };
                                                                    var bacappDecodeContextApplicationData22222222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      if (isContextSpecific22222222222222222(buffer[offset])) {
                                                                        if (propertyId === enums_default22222222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                                                                          result = decodeReadAccessSpecification22222222222222222(buffer, offset, maxOffset);
                                                                          if (!result) {
                                                                            return void 0;
                                                                          }
                                                                          return {
                                                                            type: enums_default22222222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                                                            value: result.value,
                                                                            len: result.len
                                                                          };
                                                                        } else if (propertyId === enums_default22222222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                                                                          result = decodeCovSubscription22222222222222222(buffer, offset, maxOffset);
                                                                          if (!result) {
                                                                            return void 0;
                                                                          }
                                                                          return {
                                                                            type: enums_default22222222222222222.ApplicationTag.COV_SUBSCRIPTION,
                                                                            value: result.value,
                                                                            len: result.len
                                                                          };
                                                                        } else if (objectType === enums_default22222222222222222.ObjectType.GROUP && propertyId === enums_default22222222222222222.PropertyIdentifier.PRESENT_VALUE) {
                                                                          result = decodeReadAccessResult22222222222222222(buffer, offset, maxOffset);
                                                                          if (!result) {
                                                                            return void 0;
                                                                          }
                                                                          return {
                                                                            type: enums_default22222222222222222.ApplicationTag.READ_ACCESS_RESULT,
                                                                            value: result.value,
                                                                            len: result.len
                                                                          };
                                                                        } else if (propertyId === enums_default22222222222222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default22222222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default22222222222222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                                                                          result = decodeDeviceObjPropertyRef22222222222222222(buffer, offset, maxOffset);
                                                                          if (!result) {
                                                                            return void 0;
                                                                          }
                                                                          return {
                                                                            type: enums_default22222222222222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                                                            value: result.value,
                                                                            len: result.len
                                                                          };
                                                                        } else if (propertyId === enums_default22222222222222222.PropertyIdentifier.DATE_LIST) {
                                                                          result = decodeCalendar22222222222222222(buffer, offset, maxOffset);
                                                                          if (!result) {
                                                                            return void 0;
                                                                          }
                                                                          return {
                                                                            type: enums_default22222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                                                            value: result.value,
                                                                            len: result.len
                                                                          };
                                                                        } else if (propertyId === enums_default22222222222222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                                                                          let subEvtResult;
                                                                          let evtResult = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += 1;
                                                                          if (evtResult.tagNumber === 0) {
                                                                            subEvtResult = decodeBacnetTime22222222222222222(buffer, offset + 1);
                                                                            return {
                                                                              type: enums_default22222222222222222.ApplicationTag.TIMESTAMP,
                                                                              value: subEvtResult.value,
                                                                              len: subEvtResult.len + 1
                                                                            };
                                                                          } else if (evtResult.tagNumber === 1) {
                                                                            subEvtResult = decodeUnsigned22222222222222222(buffer, offset + len, evtResult.value);
                                                                            return {
                                                                              type: enums_default22222222222222222.ApplicationTag.UNSIGNED_INTEGER,
                                                                              value: subEvtResult.value,
                                                                              len: subEvtResult.len + 1
                                                                            };
                                                                          } else if (evtResult.tagNumber === 2) {
                                                                            subEvtResult = decodeBacnetDatetime22222222222222222(buffer, offset + len);
                                                                            return {
                                                                              type: enums_default22222222222222222.ApplicationTag.TIMESTAMP,
                                                                              value: subEvtResult.value,
                                                                              len: subEvtResult.len + 2
                                                                            };
                                                                          } else {
                                                                            return void 0;
                                                                          }
                                                                        }
                                                                        const list = [];
                                                                        let tagResult = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        let multipleValues = isOpeningTag22222222222222222(buffer[offset + len]);
                                                                        while (len + offset <= maxOffset && !isClosingTag22222222222222222(buffer[offset + len])) {
                                                                          let subResult = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          if (!subResult) {
                                                                            return void 0;
                                                                          }
                                                                          if (subResult.value === 0) {
                                                                            len += subResult.len;
                                                                            result = bacappDecodeApplicationData22222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              maxOffset,
                                                                              enums_default22222222222222222.ASN1_MAX_OBJECT_TYPE,
                                                                              enums_default22222222222222222.ASN1_MAX_PROPERTY_ID
                                                                            );
                                                                            if (!result) {
                                                                              return void 0;
                                                                            }
                                                                            list.push(result);
                                                                            len += result.len;
                                                                          } else {
                                                                            const overrideTagNumber = bacappContextTagType22222222222222222(
                                                                              propertyId,
                                                                              subResult.tagNumber
                                                                            );
                                                                            if (overrideTagNumber !== enums_default22222222222222222.ASN1_MAX_APPLICATION_TAG) {
                                                                              subResult.tagNumber = overrideTagNumber;
                                                                            }
                                                                            let bacappResult = bacappDecodeData22222222222222222(
                                                                              buffer,
                                                                              offset + len + subResult.len,
                                                                              maxOffset,
                                                                              subResult.tagNumber,
                                                                              subResult.value
                                                                            );
                                                                            if (!bacappResult) {
                                                                              return void 0;
                                                                            }
                                                                            if (bacappResult.len === subResult.value) {
                                                                              let resObj = {
                                                                                value: bacappResult.value,
                                                                                type: bacappResult.type
                                                                              };
                                                                              if (bacappResult.encoding !== void 0)
                                                                                resObj.encoding = bacappResult.encoding;
                                                                              list.push(resObj);
                                                                              len += subResult.len + subResult.value;
                                                                            } else {
                                                                              list.push({
                                                                                value: buffer.slice(
                                                                                  offset + len + subResult.len,
                                                                                  offset + len + subResult.len + subResult.value
                                                                                ),
                                                                                type: enums_default22222222222222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                                                              });
                                                                              len += subResult.len + subResult.value;
                                                                            }
                                                                          }
                                                                          if (multipleValues === false) {
                                                                            return {
                                                                              len,
                                                                              value: list[0],
                                                                              type: enums_default22222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                                            };
                                                                          }
                                                                        }
                                                                        if (len + offset > maxOffset) {
                                                                          return void 0;
                                                                        }
                                                                        if (decodeIsClosingTagNumber22222222222222222(buffer, offset + len, tagResult.tagNumber)) {
                                                                          len++;
                                                                        }
                                                                        return {
                                                                          len,
                                                                          value: list,
                                                                          type: enums_default22222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                                        };
                                                                      }
                                                                      return void 0;
                                                                    };
                                                                    var bacappEncodeTimestamp22222222222222222 = (buffer, value) => {
                                                                      switch (value.type) {
                                                                        case enums_default22222222222222222.TimeStamp.TIME:
                                                                          encodeContextTime22222222222222222(buffer, 0, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.TimeStamp.SEQUENCE_NUMBER:
                                                                          encodeContextUnsigned22222222222222222(buffer, 1, value.value);
                                                                          break;
                                                                        case enums_default22222222222222222.TimeStamp.DATETIME:
                                                                          bacappEncodeContextDatetime22222222222222222(buffer, 2, value.value);
                                                                          break;
                                                                        default:
                                                                          throw new Error("NOT_IMPLEMENTED");
                                                                      }
                                                                    };
                                                                    var bacappEncodeContextTimestamp22222222222222222 = (buffer, tagNumber, value) => {
                                                                      encodeOpeningTag22222222222222222(buffer, tagNumber);
                                                                      bacappEncodeTimestamp22222222222222222(buffer, value);
                                                                      encodeClosingTag22222222222222222(buffer, tagNumber);
                                                                    };
                                                                    var decodeContextCharacterString22222222222222222 = (buffer, offset, maxLength, tagNumber) => {
                                                                      let len = 0;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, tagNumber)) {
                                                                        return void 0;
                                                                      }
                                                                      const result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      const decodedValue = multiCharsetCharacterstringDecode22222222222222222(
                                                                        buffer,
                                                                        offset + 1 + len,
                                                                        maxLength,
                                                                        buffer[offset + len],
                                                                        result.value - 1
                                                                      );
                                                                      if (!decodedValue) {
                                                                        return void 0;
                                                                      }
                                                                      len += result.value;
                                                                      return {
                                                                        len,
                                                                        value: decodedValue.value,
                                                                        encoding: decodedValue.encoding
                                                                      };
                                                                    };
                                                                    var decodeIsContextTagWithLength22222222222222222 = (buffer, offset, tagNumber) => {
                                                                      const result = decodeTagNumber22222222222222222(buffer, offset);
                                                                      return {
                                                                        len: result.len,
                                                                        value: isContextSpecific22222222222222222(buffer[offset]) && result.tagNumber === tagNumber
                                                                      };
                                                                    };
                                                                    var decodeContextObjectId22222222222222222 = (buffer, offset, tagNumber) => {
                                                                      const result = decodeIsContextTagWithLength22222222222222222(buffer, offset, tagNumber);
                                                                      if (!result.value) {
                                                                        return void 0;
                                                                      }
                                                                      const decodedValue = decodeObjectId22222222222222222(buffer, offset + result.len);
                                                                      decodedValue.len = decodedValue.len + result.len;
                                                                      return decodedValue;
                                                                    };
                                                                    var encodeBacnetCharacterString22222222222222222 = (buffer, value, encoding) => {
                                                                      encoding = encoding || enums_default22222222222222222.CharacterStringEncoding.UTF_8;
                                                                      buffer.buffer[buffer.offset++] = encoding;
                                                                      const bufEncoded = import_iconv_lite22222222222222222.default.encode(value, getEncodingType22222222222222222(encoding));
                                                                      buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                                                                    };
                                                                    var encodeApplicationCharacterString22222222222222222 = (buffer, value, encoding) => {
                                                                      const tmp = getBuffer22222222222222222();
                                                                      encodeBacnetCharacterString22222222222222222(tmp, value, encoding);
                                                                      encodeTag22222222222222222(buffer, enums_default22222222222222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                                                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                      buffer.offset += tmp.offset;
                                                                    };
                                                                    var encodeContextCharacterString22222222222222222 = (buffer, tagNumber, value, encoding) => {
                                                                      const tmp = getBuffer22222222222222222();
                                                                      encodeBacnetCharacterString22222222222222222(tmp, value, encoding);
                                                                      encodeTag22222222222222222(buffer, tagNumber, true, tmp.offset);
                                                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                      buffer.offset += tmp.offset;
                                                                    };
                                                                    var encode332222222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                                      encodeContextObjectId22222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                      encodeContextEnumerated22222222222222222(buffer, 1, propertyId);
                                                                      if (arrayIndex !== ASN1_ARRAY_ALL22222222222222222) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 2, arrayIndex);
                                                                      }
                                                                      encodeOpeningTag22222222222222222(buffer, 3);
                                                                      values.forEach((value) => {
                                                                        bacappEncodeApplicationData22222222222222222(buffer, value);
                                                                      });
                                                                      encodeClosingTag22222222222222222(buffer, 3);
                                                                    };
                                                                    var decode332222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let value = {};
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      value.objectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.property = { id: decodedValue.value };
                                                                      if (len < apduLen && decodeIsContextTag22222222222222222(buffer, offset + len, 2)) {
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.property.index = decodedValue.value;
                                                                      } else {
                                                                        value.property.index = ASN1_ARRAY_ALL22222222222222222;
                                                                      }
                                                                      const values = [];
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 3)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      while (apduLen - len > 1) {
                                                                        result = bacappDecodeApplicationData22222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          apduLen + offset,
                                                                          value.objectId.type,
                                                                          value.property.id
                                                                        );
                                                                        if (!result) {
                                                                          return void 0;
                                                                        }
                                                                        len += result.len;
                                                                        delete result.len;
                                                                        values.push(result);
                                                                      }
                                                                      value.values = values;
                                                                      if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 3)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var alarm_acknowledge_exports22222222222222222 = {};
                                                                    __export22222222222222222(alarm_acknowledge_exports22222222222222222, {
                                                                      decode: () => decode2102222222222222222,
                                                                      encode: () => encode2102222222222222222
                                                                    });
                                                                    var encode2102222222222222222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                                                                      encodeContextUnsigned22222222222222222(buffer, 0, ackProcessId);
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        1,
                                                                        eventObjectId.type,
                                                                        eventObjectId.instance
                                                                      );
                                                                      encodeContextEnumerated22222222222222222(buffer, 2, eventStateAcknowledged);
                                                                      bacappEncodeContextTimestamp22222222222222222(buffer, 3, eventTimeStamp);
                                                                      encodeContextCharacterString22222222222222222(buffer, 4, ackSource);
                                                                      bacappEncodeContextTimestamp22222222222222222(buffer, 5, ackTimeStamp);
                                                                    };
                                                                    var decode2102222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let value = {};
                                                                      let result;
                                                                      let decodedValue;
                                                                      let date;
                                                                      let time;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.acknowledgedProcessId = decodedValue.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      value.eventObjectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.eventStateAcknowledged = decodedValue.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber === 0) {
                                                                        decodedValue = decodeBacnetTime22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.eventTimeStamp = decodedValue.value;
                                                                      } else if (result.tagNumber === 1) {
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.eventTimeStamp = decodedValue.value;
                                                                      } else if (result.tagNumber === 2) {
                                                                        date = decodeApplicationDate22222222222222222(buffer, offset + len);
                                                                        len += date.len;
                                                                        date = date.value.value;
                                                                        time = decodeApplicationTime22222222222222222(buffer, offset + len);
                                                                        len += time.len;
                                                                        time = time.value.value;
                                                                        value.eventTimeStamp = new Date(
                                                                          date.getFullYear(),
                                                                          date.getMonth(),
                                                                          date.getDate(),
                                                                          time.getHours(),
                                                                          time.getMinutes(),
                                                                          time.getSeconds(),
                                                                          time.getMilliseconds()
                                                                        );
                                                                        len++;
                                                                      }
                                                                      len++;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeCharacterString22222222222222222(
                                                                        buffer,
                                                                        offset + len,
                                                                        apduLen - (offset + len),
                                                                        result.value
                                                                      );
                                                                      value.acknowledgeSource = decodedValue.value;
                                                                      len += decodedValue.len;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber === 0) {
                                                                        decodedValue = decodeBacnetTime22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.acknowledgeTimeStamp = decodedValue.value;
                                                                      } else if (result.tagNumber === 1) {
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.acknowledgeTimeStamp = decodedValue.value;
                                                                      } else if (result.tagNumber === 2) {
                                                                        date = decodeApplicationDate22222222222222222(buffer, offset + len);
                                                                        len += date.len;
                                                                        date = date.value.value;
                                                                        time = decodeApplicationTime22222222222222222(buffer, offset + len);
                                                                        len += time.len;
                                                                        time = time.value.value;
                                                                        value.acknowledgeTimeStamp = new Date(
                                                                          date.getFullYear(),
                                                                          date.getMonth(),
                                                                          date.getDate(),
                                                                          time.getHours(),
                                                                          time.getMinutes(),
                                                                          time.getSeconds(),
                                                                          time.getMilliseconds()
                                                                        );
                                                                        len++;
                                                                      }
                                                                      len++;
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var alarm_summary_exports22222222222222222 = {};
                                                                    __export22222222222222222(alarm_summary_exports22222222222222222, {
                                                                      decode: () => decode342222222222222222,
                                                                      encode: () => encode342222222222222222
                                                                    });
                                                                    var encode342222222222222222 = (buffer, alarms) => {
                                                                      alarms.forEach((alarm) => {
                                                                        encodeContextObjectId22222222222222222(
                                                                          buffer,
                                                                          12,
                                                                          alarm.objectId.type,
                                                                          alarm.objectId.instance
                                                                        );
                                                                        encodeContextEnumerated22222222222222222(buffer, 9, alarm.alarmState);
                                                                        encodeContextBitstring22222222222222222(buffer, 8, alarm.acknowledgedTransitions);
                                                                      });
                                                                    };
                                                                    var decode342222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      const alarms = [];
                                                                      while (apduLen - 3 - len > 0) {
                                                                        let value = {};
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        value.objectId = {
                                                                          type: decodedValue.objectType,
                                                                          instance: decodedValue.instance
                                                                        };
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.alarmState = decodedValue.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeBitstring22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.acknowledgedTransitions = decodedValue.value;
                                                                        alarms.push(value);
                                                                      }
                                                                      return {
                                                                        len,
                                                                        alarms
                                                                      };
                                                                    };
                                                                    var atomic_read_file_exports22222222222222222 = {};
                                                                    __export22222222222222222(atomic_read_file_exports22222222222222222, {
                                                                      decode: () => decode422222222222222222,
                                                                      decodeAcknowledge: () => decodeAcknowledge82222222222222222,
                                                                      encode: () => encode422222222222222222,
                                                                      encodeAcknowledge: () => encodeAcknowledge92222222222222222
                                                                    });
                                                                    var encode422222222222222222 = (buffer, isStream, objectId, position, count) => {
                                                                      encodeApplicationObjectId22222222222222222(buffer, objectId.type, objectId.instance);
                                                                      if (isStream) {
                                                                        encodeOpeningTag22222222222222222(buffer, 0);
                                                                        encodeApplicationSigned22222222222222222(buffer, position);
                                                                        encodeApplicationUnsigned22222222222222222(buffer, count);
                                                                        encodeClosingTag22222222222222222(buffer, 0);
                                                                      } else {
                                                                        encodeOpeningTag22222222222222222(buffer, 1);
                                                                        encodeApplicationSigned22222222222222222(buffer, position);
                                                                        encodeApplicationUnsigned22222222222222222(buffer, count);
                                                                        encodeClosingTag22222222222222222(buffer, 1);
                                                                      }
                                                                    };
                                                                    var decode422222222222222222 = (buffer, offset) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let isStream = true;
                                                                      let objectId = {};
                                                                      let position = -1;
                                                                      let count = 0;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 12) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                                                                      if (decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 0)) {
                                                                        isStream = true;
                                                                        len++;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 3) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeSigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        position = decodedValue.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 2) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        count = decodedValue.value;
                                                                        if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 0)) {
                                                                          return void 0;
                                                                        }
                                                                        len++;
                                                                      } else if (decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        isStream = false;
                                                                        len++;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 3) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeSigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        position = decodedValue.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 2) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        count = decodedValue.value;
                                                                        if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                          return void 0;
                                                                        }
                                                                        len++;
                                                                      } else {
                                                                        return void 0;
                                                                      }
                                                                      return {
                                                                        len,
                                                                        isStream,
                                                                        objectId,
                                                                        position,
                                                                        count
                                                                      };
                                                                    };
                                                                    var encodeAcknowledge92222222222222222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                                                                      encodeApplicationBoolean22222222222222222(buffer, endOfFile);
                                                                      if (isStream) {
                                                                        encodeOpeningTag22222222222222222(buffer, 0);
                                                                        encodeApplicationSigned22222222222222222(buffer, position);
                                                                        encodeApplicationOctetString22222222222222222(buffer, blocks[0], 0, counts[0]);
                                                                        encodeClosingTag22222222222222222(buffer, 0);
                                                                      } else {
                                                                        encodeOpeningTag22222222222222222(buffer, 1);
                                                                        encodeApplicationSigned22222222222222222(buffer, position);
                                                                        encodeApplicationUnsigned22222222222222222(buffer, blockCount);
                                                                        for (let i = 0; i < blockCount; i++) {
                                                                          encodeApplicationOctetString22222222222222222(buffer, blocks[i], 0, counts[i]);
                                                                        }
                                                                        encodeClosingTag22222222222222222(buffer, 1);
                                                                      }
                                                                    };
                                                                    var decodeAcknowledge82222222222222222 = (buffer, offset, length = 0) => {
                                                                      let len = length;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let endOfFile;
                                                                      let isStream;
                                                                      let position;
                                                                      let targetBuffer;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 1) {
                                                                        return void 0;
                                                                      }
                                                                      endOfFile = result.value > 0;
                                                                      if (decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 0)) {
                                                                        isStream = true;
                                                                        len++;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 3) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeSigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        position = decodedValue.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 6) {
                                                                          return void 0;
                                                                        }
                                                                        targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                                                                        len += result.value;
                                                                        if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 0)) {
                                                                          return void 0;
                                                                        }
                                                                        len++;
                                                                      } else if (decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        isStream = false;
                                                                        throw new Error("NotImplemented");
                                                                      } else {
                                                                        return void 0;
                                                                      }
                                                                      return {
                                                                        len,
                                                                        endOfFile,
                                                                        isStream,
                                                                        position,
                                                                        buffer: targetBuffer
                                                                      };
                                                                    };
                                                                    var atomic_write_file_exports22222222222222222 = {};
                                                                    __export22222222222222222(atomic_write_file_exports22222222222222222, {
                                                                      decode: () => decode522222222222222222,
                                                                      decodeAcknowledge: () => decodeAcknowledge222222222222222222,
                                                                      encode: () => encode522222222222222222,
                                                                      encodeAcknowledge: () => encodeAcknowledge222222222222222222
                                                                    });
                                                                    var encode522222222222222222 = (buffer, isStream, objectId, position, blocks) => {
                                                                      encodeApplicationObjectId22222222222222222(buffer, objectId.type, objectId.instance);
                                                                      if (isStream) {
                                                                        encodeOpeningTag22222222222222222(buffer, 0);
                                                                        encodeApplicationSigned22222222222222222(buffer, position);
                                                                        encodeApplicationOctetString22222222222222222(buffer, blocks[0], 0, blocks[0].length);
                                                                        encodeClosingTag22222222222222222(buffer, 0);
                                                                      } else {
                                                                        encodeOpeningTag22222222222222222(buffer, 1);
                                                                        encodeApplicationSigned22222222222222222(buffer, position);
                                                                        encodeApplicationUnsigned22222222222222222(buffer, blocks.length);
                                                                        for (let i = 0; i < blocks.length; i++) {
                                                                          encodeApplicationOctetString22222222222222222(
                                                                            buffer,
                                                                            blocks[i],
                                                                            0,
                                                                            blocks[i].length
                                                                          );
                                                                        }
                                                                        encodeClosingTag22222222222222222(buffer, 1);
                                                                      }
                                                                    };
                                                                    var decode522222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let isStream;
                                                                      let position;
                                                                      let blocks = [];
                                                                      let blockCount;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 12) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      let objectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      if (decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 0)) {
                                                                        isStream = true;
                                                                        len++;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 3) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeSigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        position = decodedValue.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 6) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeOctetString22222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          apduLen,
                                                                          0,
                                                                          result.value
                                                                        );
                                                                        len += decodedValue.len;
                                                                        blocks.push(decodedValue.value);
                                                                        if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 0)) {
                                                                          return void 0;
                                                                        }
                                                                        len++;
                                                                      } else if (decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        isStream = false;
                                                                        len++;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 3) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeSigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        position = decodedValue.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 2) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        blockCount = decodedValue.value;
                                                                        for (let i = 0; i < blockCount; i++) {
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber !== 6) {
                                                                            return void 0;
                                                                          }
                                                                          decodedValue = decodeOctetString22222222222222222(
                                                                            buffer,
                                                                            offset + len,
                                                                            apduLen,
                                                                            0,
                                                                            result.value
                                                                          );
                                                                          len += decodedValue.len;
                                                                          blocks.push(decodedValue.value);
                                                                        }
                                                                        if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                          return void 0;
                                                                        }
                                                                        len++;
                                                                      } else {
                                                                        return void 0;
                                                                      }
                                                                      return {
                                                                        len,
                                                                        isStream,
                                                                        objectId,
                                                                        position,
                                                                        blocks
                                                                      };
                                                                    };
                                                                    var encodeAcknowledge222222222222222222 = (buffer, isStream, position) => {
                                                                      if (isStream) {
                                                                        encodeContextSigned22222222222222222(buffer, 0, position);
                                                                      } else {
                                                                        encodeContextSigned22222222222222222(buffer, 1, position);
                                                                      }
                                                                    };
                                                                    var decodeAcknowledge222222222222222222 = (buffer, offset, length = 0) => {
                                                                      let len = length;
                                                                      let isStream = false;
                                                                      let position = 0;
                                                                      let decodedValue;
                                                                      const result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber === 0) {
                                                                        isStream = true;
                                                                      } else if (result.tagNumber === 1) {
                                                                        isStream = false;
                                                                      } else {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeSigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      position = decodedValue.value;
                                                                      return {
                                                                        len,
                                                                        isStream,
                                                                        position
                                                                      };
                                                                    };
                                                                    var cov_notify_exports22222222222222222 = {};
                                                                    __export22222222222222222(cov_notify_exports22222222222222222, {
                                                                      decode: () => decode622222222222222222,
                                                                      encode: () => encode622222222222222222
                                                                    });
                                                                    var encode622222222222222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                                                                      encodeContextUnsigned22222222222222222(buffer, 0, subscriberProcessId);
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        1,
                                                                        8,
                                                                        initiatingDeviceId
                                                                      );
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        2,
                                                                        monitoredObjectId.type,
                                                                        monitoredObjectId.instance
                                                                      );
                                                                      encodeContextUnsigned22222222222222222(buffer, 3, timeRemaining);
                                                                      encodeOpeningTag22222222222222222(buffer, 4);
                                                                      values.forEach((value) => {
                                                                        encodeContextEnumerated22222222222222222(buffer, 0, value.property.id);
                                                                        if (value.property.index === ASN1_ARRAY_ALL22222222222222222) {
                                                                          encodeContextUnsigned22222222222222222(buffer, 1, value.property.index);
                                                                        }
                                                                        encodeOpeningTag22222222222222222(buffer, 2);
                                                                        value.value.forEach((v) => {
                                                                          bacappEncodeApplicationData22222222222222222(buffer, v);
                                                                        });
                                                                        encodeClosingTag22222222222222222(buffer, 2);
                                                                        if (value.priority === ASN1_NO_PRIORITY22222222222222222) {
                                                                          encodeContextUnsigned22222222222222222(buffer, 3, value.priority);
                                                                        }
                                                                      });
                                                                      encodeClosingTag22222222222222222(buffer, 4);
                                                                    };
                                                                    var decode622222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      const subscriberProcessId = decodedValue.value;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      const initiatingDeviceId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 2)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      const monitoredObjectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 3)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      const timeRemaining = decodedValue.value;
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 4)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      const values = [];
                                                                      while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 4)) {
                                                                        let newEntry = {};
                                                                        newEntry.property = {};
                                                                        if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                          return void 0;
                                                                        }
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        newEntry.property.id = decodedValue.value;
                                                                        if (decodeIsContextTag22222222222222222(buffer, offset + len, 1)) {
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          newEntry.property.index = decodedValue.value;
                                                                        } else {
                                                                          newEntry.property.index = ASN1_ARRAY_ALL22222222222222222;
                                                                        }
                                                                        if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 2)) {
                                                                          return void 0;
                                                                        }
                                                                        len++;
                                                                        const properties = [];
                                                                        while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 2)) {
                                                                          decodedValue = bacappDecodeApplicationData22222222222222222(
                                                                            buffer,
                                                                            offset + len,
                                                                            apduLen + offset,
                                                                            monitoredObjectId.type,
                                                                            newEntry.property.id
                                                                          );
                                                                          if (!decodedValue) {
                                                                            return void 0;
                                                                          }
                                                                          len += decodedValue.len;
                                                                          delete decodedValue.len;
                                                                          properties.push(decodedValue);
                                                                        }
                                                                        newEntry.value = properties;
                                                                        len++;
                                                                        if (decodeIsContextTag22222222222222222(buffer, offset + len, 3)) {
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          newEntry.priority = decodedValue.value;
                                                                        } else {
                                                                          newEntry.priority = ASN1_NO_PRIORITY22222222222222222;
                                                                        }
                                                                        values.push(newEntry);
                                                                      }
                                                                      return {
                                                                        len,
                                                                        subscriberProcessId,
                                                                        initiatingDeviceId,
                                                                        monitoredObjectId,
                                                                        timeRemaining,
                                                                        values
                                                                      };
                                                                    };
                                                                    var create_object_exports22222222222222222 = {};
                                                                    __export22222222222222222(create_object_exports22222222222222222, {
                                                                      decode: () => decode722222222222222222,
                                                                      encode: () => encode722222222222222222,
                                                                      encodeAcknowledge: () => encodeAcknowledge322222222222222222
                                                                    });
                                                                    var encode722222222222222222 = (buffer, objectId, values) => {
                                                                      encodeOpeningTag22222222222222222(buffer, 0);
                                                                      encodeContextObjectId22222222222222222(buffer, 1, objectId.type, objectId.instance);
                                                                      encodeClosingTag22222222222222222(buffer, 0);
                                                                      encodeOpeningTag22222222222222222(buffer, 1);
                                                                      values.forEach((propertyValue) => {
                                                                        encodeContextEnumerated22222222222222222(buffer, 0, propertyValue.property.id);
                                                                        if (propertyValue.property.index !== ASN1_ARRAY_ALL22222222222222222) {
                                                                          encodeContextUnsigned22222222222222222(buffer, 1, propertyValue.property.index);
                                                                        }
                                                                        encodeOpeningTag22222222222222222(buffer, 2);
                                                                        propertyValue.value.forEach((value) => {
                                                                          bacappEncodeApplicationData22222222222222222(buffer, value);
                                                                        });
                                                                        encodeClosingTag22222222222222222(buffer, 2);
                                                                        if (propertyValue.priority !== ASN1_NO_PRIORITY22222222222222222) {
                                                                          encodeContextUnsigned22222222222222222(buffer, 3, propertyValue.priority);
                                                                        }
                                                                      });
                                                                      encodeClosingTag22222222222222222(buffer, 1);
                                                                    };
                                                                    var decode722222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let objectId;
                                                                      const valueList = [];
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber === 0 && apduLen > len) {
                                                                        apduLen -= len;
                                                                        if (apduLen < 4) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeContextObjectId22222222222222222(buffer, offset + len, 1);
                                                                        len += decodedValue.len;
                                                                        objectId = {
                                                                          type: decodedValue.objectType,
                                                                          instance: decodedValue.instance
                                                                        };
                                                                      } else {
                                                                        return void 0;
                                                                      }
                                                                      if (decodeIsClosingTag22222222222222222(buffer, offset + len)) {
                                                                        len++;
                                                                      }
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      while (apduLen - len > 1) {
                                                                        let newEntry = {};
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 0) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        let propertyId = decodedValue.value;
                                                                        let arraIndex = ASN1_ARRAY_ALL22222222222222222;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber === 1) {
                                                                          decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          arraIndex += decodedValue.value;
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                        }
                                                                        newEntry.property = { id: propertyId, index: arraIndex };
                                                                        if (result.tagNumber === 2 && decodeIsOpeningTag22222222222222222(buffer, offset + len - 1)) {
                                                                          const values = [];
                                                                          while (!decodeIsClosingTag22222222222222222(buffer, offset + len)) {
                                                                            decodedValue = bacappDecodeApplicationData22222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              apduLen + offset,
                                                                              objectId.type,
                                                                              propertyId
                                                                            );
                                                                            if (!decodedValue) {
                                                                              return void 0;
                                                                            }
                                                                            len += decodedValue.len;
                                                                            delete decodedValue.len;
                                                                            values.push(decodedValue);
                                                                          }
                                                                          len++;
                                                                          newEntry.value = values;
                                                                        } else {
                                                                          return void 0;
                                                                        }
                                                                        valueList.push(newEntry);
                                                                      }
                                                                      if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      return {
                                                                        len,
                                                                        objectId,
                                                                        values: valueList
                                                                      };
                                                                    };
                                                                    var encodeAcknowledge322222222222222222 = (buffer, objectId) => {
                                                                      encodeApplicationObjectId22222222222222222(buffer, objectId.type, objectId.instance);
                                                                    };
                                                                    var delete_object_exports22222222222222222 = {};
                                                                    __export22222222222222222(delete_object_exports22222222222222222, {
                                                                      decode: () => decode822222222222222222,
                                                                      encode: () => encode822222222222222222
                                                                    });
                                                                    var decode822222222222222222 = (buffer, offset, apduLen) => {
                                                                      const result = decodeTagNumberAndValue22222222222222222(buffer, offset);
                                                                      if (result.tagNumber !== 12) {
                                                                        return void 0;
                                                                      }
                                                                      let len = 1;
                                                                      const value = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += value.len;
                                                                      if (len !== apduLen) {
                                                                        return void 0;
                                                                      }
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var encode822222222222222222 = (buffer, objectId) => {
                                                                      encodeApplicationObjectId22222222222222222(buffer, objectId.type, objectId.instance);
                                                                    };
                                                                    var device_communication_control_exports22222222222222222 = {};
                                                                    __export22222222222222222(device_communication_control_exports22222222222222222, {
                                                                      decode: () => decode922222222222222222,
                                                                      encode: () => encode922222222222222222
                                                                    });
                                                                    var encode922222222222222222 = (buffer, timeDuration, enableDisable, password) => {
                                                                      if (timeDuration > 0) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 0, timeDuration);
                                                                      }
                                                                      encodeContextEnumerated22222222222222222(buffer, 1, enableDisable);
                                                                      if (password && password !== "") {
                                                                        encodeContextCharacterString22222222222222222(buffer, 2, password);
                                                                      }
                                                                    };
                                                                    var decode922222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let value = {};
                                                                      let decodedValue;
                                                                      let result;
                                                                      if (decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        value.timeDuration = decodedValue.value;
                                                                        len += decodedValue.len;
                                                                      }
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      value.enableDisable = decodedValue.value;
                                                                      len += decodedValue.len;
                                                                      if (len < apduLen) {
                                                                        if (!decodeIsContextTag22222222222222222(buffer, offset + len, 2)) {
                                                                          return void 0;
                                                                        }
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeCharacterString22222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          apduLen - (offset + len),
                                                                          result.value
                                                                        );
                                                                        value.password = decodedValue.value;
                                                                        len += decodedValue.len;
                                                                      }
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var error_exports22222222222222222 = {};
                                                                    __export22222222222222222(error_exports22222222222222222, {
                                                                      buildMessage: () => buildMessage22222222222222222,
                                                                      decode: () => decode1022222222222222222,
                                                                      encode: () => encode1022222222222222222
                                                                    });
                                                                    var encode1022222222222222222 = (buffer, errorClass, errorCode) => {
                                                                      encodeApplicationEnumerated22222222222222222(buffer, errorClass);
                                                                      encodeApplicationEnumerated22222222222222222(buffer, errorCode);
                                                                    };
                                                                    var decode1022222222222222222 = (buffer, offset) => {
                                                                      const orgOffset = offset;
                                                                      let result;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset);
                                                                      offset += result.len;
                                                                      const errorClass = decodeEnumerated22222222222222222(buffer, offset, result.value);
                                                                      offset += errorClass.len;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset);
                                                                      offset += result.len;
                                                                      const errorCode = decodeEnumerated22222222222222222(buffer, offset, result.value);
                                                                      offset += errorClass.len;
                                                                      return {
                                                                        len: offset - orgOffset,
                                                                        class: errorClass.value,
                                                                        code: errorCode.value
                                                                      };
                                                                    };
                                                                    var buildMessage22222222222222222 = function(result) {
                                                                      return "BacnetError Class: " + ErrorClassName22222222222222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName22222222222222222[result.code] + " (" + result.code + ")";
                                                                    };
                                                                    var event_information_exports22222222222222222 = {};
                                                                    __export22222222222222222(event_information_exports22222222222222222, {
                                                                      decode: () => decode1122222222222222222,
                                                                      encode: () => encode1122222222222222222
                                                                    });
                                                                    var encode1122222222222222222 = (buffer, events, moreEvents) => {
                                                                      encodeOpeningTag22222222222222222(buffer, 0);
                                                                      events.forEach((event) => {
                                                                        encodeContextObjectId22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          event.objectId.type,
                                                                          event.objectId.instance
                                                                        );
                                                                        encodeContextEnumerated22222222222222222(buffer, 1, event.eventState);
                                                                        encodeContextBitstring22222222222222222(buffer, 2, event.acknowledgedTransitions);
                                                                        encodeOpeningTag22222222222222222(buffer, 3);
                                                                        for (let i = 0; i < 3; i++) {
                                                                          encodeApplicationDate22222222222222222(buffer, event.eventTimeStamps[i]);
                                                                          encodeApplicationTime22222222222222222(buffer, event.eventTimeStamps[i]);
                                                                        }
                                                                        encodeClosingTag22222222222222222(buffer, 3);
                                                                        encodeContextEnumerated22222222222222222(buffer, 4, event.notifyType);
                                                                        encodeContextBitstring22222222222222222(buffer, 5, event.eventEnable);
                                                                        encodeOpeningTag22222222222222222(buffer, 6);
                                                                        for (let i = 0; i < 3; i++) {
                                                                          encodeApplicationUnsigned22222222222222222(buffer, event.eventPriorities[i]);
                                                                        }
                                                                        encodeClosingTag22222222222222222(buffer, 6);
                                                                      });
                                                                      encodeClosingTag22222222222222222(buffer, 0);
                                                                      encodeContextBoolean22222222222222222(buffer, 1, moreEvents);
                                                                    };
                                                                    var decode1122222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      len++;
                                                                      const alarms = [];
                                                                      let moreEvents;
                                                                      while (apduLen - 3 - len > 0) {
                                                                        let value = {};
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        value.objectId = {
                                                                          type: decodedValue.objectType,
                                                                          instance: decodedValue.instance
                                                                        };
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.eventState = decodedValue.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeBitstring22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.acknowledgedTransitions = decodedValue.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        value.eventTimeStamps = [];
                                                                        for (let i = 0; i < 3; i++) {
                                                                          if (result.tagNumber !== 0) {
                                                                            decodedValue = decodeApplicationDate22222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            const date = decodedValue.value.value;
                                                                            decodedValue = decodeApplicationTime22222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            const time = decodedValue.value.value;
                                                                            value.eventTimeStamps[i] = new Date(
                                                                              date.getFullYear(),
                                                                              date.getMonth(),
                                                                              date.getDate(),
                                                                              time.getHours(),
                                                                              time.getMinutes(),
                                                                              time.getSeconds(),
                                                                              time.getMilliseconds()
                                                                            );
                                                                          } else {
                                                                            len += result.value;
                                                                          }
                                                                        }
                                                                        len++;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.notifyType = decodedValue.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeBitstring22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.eventEnable = decodedValue.value;
                                                                        len++;
                                                                        value.eventPriorities = [];
                                                                        for (let i = 0; i < 3; i++) {
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.eventPriorities[i] = decodedValue.value;
                                                                        }
                                                                        len++;
                                                                        alarms.push(value);
                                                                      }
                                                                      moreEvents = buffer[apduLen - 1] === 1;
                                                                      return {
                                                                        len,
                                                                        alarms,
                                                                        moreEvents
                                                                      };
                                                                    };
                                                                    var event_notify_data_exports22222222222222222 = {};
                                                                    __export22222222222222222(event_notify_data_exports22222222222222222, {
                                                                      decode: () => decode1222222222222222222,
                                                                      encode: () => encode1222222222222222222
                                                                    });
                                                                    var encode1222222222222222222 = (buffer, data) => {
                                                                      encodeContextUnsigned22222222222222222(buffer, 0, data.processId);
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        1,
                                                                        data.initiatingObjectId.type,
                                                                        data.initiatingObjectId.instance
                                                                      );
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        2,
                                                                        data.eventObjectId.type,
                                                                        data.eventObjectId.instance
                                                                      );
                                                                      bacappEncodeContextTimestamp22222222222222222(buffer, 3, data.timeStamp);
                                                                      encodeContextUnsigned22222222222222222(buffer, 4, data.notificationClass);
                                                                      encodeContextUnsigned22222222222222222(buffer, 5, data.priority);
                                                                      encodeContextEnumerated22222222222222222(buffer, 6, data.eventType);
                                                                      if (data.messageText && data.messageText !== "") {
                                                                        encodeContextCharacterString22222222222222222(buffer, 7, data.messageText);
                                                                      }
                                                                      encodeContextEnumerated22222222222222222(buffer, 8, data.notifyType);
                                                                      switch (data.notifyType) {
                                                                        case 0:
                                                                        case 1:
                                                                          encodeContextBoolean22222222222222222(buffer, 9, data.ackRequired);
                                                                          encodeContextEnumerated22222222222222222(buffer, 10, data.fromState);
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                      encodeContextEnumerated22222222222222222(buffer, 11, data.toState);
                                                                      switch (data.notifyType) {
                                                                        case 0:
                                                                        case 1:
                                                                          encodeOpeningTag22222222222222222(buffer, 12);
                                                                          switch (data.eventType) {
                                                                            case 0:
                                                                              encodeOpeningTag22222222222222222(buffer, 0);
                                                                              encodeContextBitstring22222222222222222(
                                                                                buffer,
                                                                                0,
                                                                                data.changeOfBitstringReferencedBitString
                                                                              );
                                                                              encodeContextBitstring22222222222222222(
                                                                                buffer,
                                                                                1,
                                                                                data.changeOfBitstringStatusFlags
                                                                              );
                                                                              encodeClosingTag22222222222222222(buffer, 0);
                                                                              break;
                                                                            case 1:
                                                                              encodeOpeningTag22222222222222222(buffer, 1);
                                                                              encodeOpeningTag22222222222222222(buffer, 0);
                                                                              bacappEncodePropertyState22222222222222222(buffer, data.changeOfStateNewState);
                                                                              encodeClosingTag22222222222222222(buffer, 0);
                                                                              encodeContextBitstring22222222222222222(
                                                                                buffer,
                                                                                1,
                                                                                data.changeOfStateStatusFlags
                                                                              );
                                                                              encodeClosingTag22222222222222222(buffer, 1);
                                                                              break;
                                                                            case 2:
                                                                              encodeOpeningTag22222222222222222(buffer, 2);
                                                                              encodeOpeningTag22222222222222222(buffer, 0);
                                                                              switch (data.changeOfValueTag) {
                                                                                case 0:
                                                                                  encodeContextReal22222222222222222(
                                                                                    buffer,
                                                                                    1,
                                                                                    data.changeOfValueChangeValue
                                                                                  );
                                                                                  break;
                                                                                case 1:
                                                                                  encodeContextBitstring22222222222222222(
                                                                                    buffer,
                                                                                    0,
                                                                                    data.changeOfValueChangedBits
                                                                                  );
                                                                                  break;
                                                                                default:
                                                                                  throw new Error("NotImplemented");
                                                                              }
                                                                              encodeClosingTag22222222222222222(buffer, 0);
                                                                              encodeContextBitstring22222222222222222(
                                                                                buffer,
                                                                                1,
                                                                                data.changeOfValueStatusFlags
                                                                              );
                                                                              encodeClosingTag22222222222222222(buffer, 2);
                                                                              break;
                                                                            case 4:
                                                                              encodeOpeningTag22222222222222222(buffer, 4);
                                                                              encodeContextReal22222222222222222(buffer, 0, data.floatingLimitReferenceValue);
                                                                              encodeContextBitstring22222222222222222(
                                                                                buffer,
                                                                                1,
                                                                                data.floatingLimitStatusFlags
                                                                              );
                                                                              encodeContextReal22222222222222222(buffer, 2, data.floatingLimitSetPointValue);
                                                                              encodeContextReal22222222222222222(buffer, 3, data.floatingLimitErrorLimit);
                                                                              encodeClosingTag22222222222222222(buffer, 4);
                                                                              break;
                                                                            case 5:
                                                                              encodeOpeningTag22222222222222222(buffer, 5);
                                                                              encodeContextReal22222222222222222(buffer, 0, data.outOfRangeExceedingValue);
                                                                              encodeContextBitstring22222222222222222(buffer, 1, data.outOfRangeStatusFlags);
                                                                              encodeContextReal22222222222222222(buffer, 2, data.outOfRangeDeadband);
                                                                              encodeContextReal22222222222222222(buffer, 3, data.outOfRangeExceededLimit);
                                                                              encodeClosingTag22222222222222222(buffer, 5);
                                                                              break;
                                                                            case 8:
                                                                              encodeOpeningTag22222222222222222(buffer, 8);
                                                                              encodeContextEnumerated22222222222222222(
                                                                                buffer,
                                                                                0,
                                                                                data.changeOfLifeSafetyNewState
                                                                              );
                                                                              encodeContextEnumerated22222222222222222(
                                                                                buffer,
                                                                                1,
                                                                                data.changeOfLifeSafetyNewMode
                                                                              );
                                                                              encodeContextBitstring22222222222222222(
                                                                                buffer,
                                                                                2,
                                                                                data.changeOfLifeSafetyStatusFlags
                                                                              );
                                                                              encodeContextEnumerated22222222222222222(
                                                                                buffer,
                                                                                3,
                                                                                data.changeOfLifeSafetyOperationExpected
                                                                              );
                                                                              encodeClosingTag22222222222222222(buffer, 8);
                                                                              break;
                                                                            case 10:
                                                                              encodeOpeningTag22222222222222222(buffer, 10);
                                                                              bacappEncodeContextDeviceObjPropertyRef22222222222222222(
                                                                                buffer,
                                                                                0,
                                                                                data.bufferReadyBufferProperty
                                                                              );
                                                                              encodeContextUnsigned22222222222222222(
                                                                                buffer,
                                                                                1,
                                                                                data.bufferReadyPreviousNotification
                                                                              );
                                                                              encodeContextUnsigned22222222222222222(
                                                                                buffer,
                                                                                2,
                                                                                data.bufferReadyCurrentNotification
                                                                              );
                                                                              encodeClosingTag22222222222222222(buffer, 10);
                                                                              break;
                                                                            case 11:
                                                                              encodeOpeningTag22222222222222222(buffer, 11);
                                                                              encodeContextUnsigned22222222222222222(
                                                                                buffer,
                                                                                0,
                                                                                data.unsignedRangeExceedingValue
                                                                              );
                                                                              encodeContextBitstring22222222222222222(
                                                                                buffer,
                                                                                1,
                                                                                data.unsignedRangeStatusFlags
                                                                              );
                                                                              encodeContextUnsigned22222222222222222(
                                                                                buffer,
                                                                                2,
                                                                                data.unsignedRangeExceededLimit
                                                                              );
                                                                              encodeClosingTag22222222222222222(buffer, 11);
                                                                              break;
                                                                            case 9:
                                                                            case 3:
                                                                              throw new Error("NotImplemented");
                                                                            default:
                                                                              throw new Error("NotImplemented");
                                                                          }
                                                                          encodeClosingTag22222222222222222(buffer, 12);
                                                                          break;
                                                                        case 2:
                                                                          throw new Error("NotImplemented");
                                                                        default:
                                                                          break;
                                                                      }
                                                                    };
                                                                    var decode1222222222222222222 = (buffer, offset) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let eventData = {};
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      eventData.processId = decodedValue.value;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      eventData.initiatingObjectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 2)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      eventData.eventObjectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 3)) {
                                                                        return void 0;
                                                                      }
                                                                      len += 2;
                                                                      decodedValue = decodeApplicationDate22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      const date = decodedValue.value.value;
                                                                      decodedValue = decodeApplicationTime22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      const time = decodedValue.value.value;
                                                                      eventData.timeStamp = new Date(
                                                                        date.getFullYear(),
                                                                        date.getMonth(),
                                                                        date.getDate(),
                                                                        time.getHours(),
                                                                        time.getMinutes(),
                                                                        time.getSeconds(),
                                                                        time.getMilliseconds()
                                                                      );
                                                                      len += 2;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 4)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      eventData.notificationClass = decodedValue.value;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 5)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      eventData.priority = decodedValue.value;
                                                                      if (eventData.priority > 255) {
                                                                        return void 0;
                                                                      }
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 6)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      eventData.eventType = decodedValue.value;
                                                                      if (decodeIsContextTag22222222222222222(buffer, offset + len, 7)) {
                                                                        decodedValue = decodeContextCharacterString22222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          2e4,
                                                                          7
                                                                        );
                                                                        len += decodedValue.len;
                                                                        eventData.messageText = decodedValue.value;
                                                                      }
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 8)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      eventData.notifyType = decodedValue.value;
                                                                      switch (eventData.notifyType) {
                                                                        case 0:
                                                                        case 1:
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, 1);
                                                                          len += decodedValue.len;
                                                                          eventData.ackRequired = decodedValue.value > 0;
                                                                          if (!decodeIsContextTag22222222222222222(buffer, offset + len, 10)) {
                                                                            return void 0;
                                                                          }
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeEnumerated22222222222222222(
                                                                            buffer,
                                                                            offset + len,
                                                                            result.value
                                                                          );
                                                                          len += decodedValue.len;
                                                                          eventData.fromState = decodedValue.value;
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 11)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      eventData.toState = decodedValue.value;
                                                                      eventData.len = len;
                                                                      return eventData;
                                                                    };
                                                                    var get_enrollment_summary_exports22222222222222222 = {};
                                                                    __export22222222222222222(get_enrollment_summary_exports22222222222222222, {
                                                                      decode: () => decode1322222222222222222,
                                                                      decodeAcknowledge: () => decodeAcknowledge322222222222222222,
                                                                      encode: () => encode1322222222222222222,
                                                                      encodeAcknowledge: () => encodeAcknowledge422222222222222222
                                                                    });
                                                                    var encode1322222222222222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                                                                      encodeContextEnumerated22222222222222222(buffer, 0, acknowledgmentFilter);
                                                                      if (enrollmentFilter) {
                                                                        encodeOpeningTag22222222222222222(buffer, 1);
                                                                        encodeOpeningTag22222222222222222(buffer, 0);
                                                                        encodeContextObjectId22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          enrollmentFilter.objectId.type,
                                                                          enrollmentFilter.objectId.instance
                                                                        );
                                                                        encodeClosingTag22222222222222222(buffer, 0);
                                                                        encodeContextUnsigned22222222222222222(buffer, 1, enrollmentFilter.processId);
                                                                        encodeClosingTag22222222222222222(buffer, 1);
                                                                      }
                                                                      if (eventStateFilter) {
                                                                        encodeOpeningTag22222222222222222(buffer, 2);
                                                                        encodeContextEnumerated22222222222222222(buffer, 0, eventStateFilter);
                                                                        encodeClosingTag22222222222222222(buffer, 2);
                                                                      }
                                                                      if (eventTypeFilter) {
                                                                        encodeOpeningTag22222222222222222(buffer, 3);
                                                                        encodeContextEnumerated22222222222222222(buffer, 0, eventTypeFilter);
                                                                        encodeClosingTag22222222222222222(buffer, 3);
                                                                      }
                                                                      if (priorityFilter) {
                                                                        encodeOpeningTag22222222222222222(buffer, 4);
                                                                        encodeContextUnsigned22222222222222222(buffer, 0, priorityFilter.min);
                                                                        encodeContextUnsigned22222222222222222(buffer, 1, priorityFilter.max);
                                                                        encodeClosingTag22222222222222222(buffer, 4);
                                                                      }
                                                                      if (notificationClassFilter) {
                                                                        encodeOpeningTag22222222222222222(buffer, 5);
                                                                        encodeContextUnsigned22222222222222222(buffer, 0, notificationClassFilter);
                                                                        encodeClosingTag22222222222222222(buffer, 5);
                                                                      }
                                                                    };
                                                                    var decode1322222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let value = {};
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.acknowledgmentFilter = decodedValue.value;
                                                                      if (decodeIsContextTag22222222222222222(buffer, offset + len, 1)) {
                                                                        len++;
                                                                        value.enrollmentFilter = {};
                                                                        if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                          return void 0;
                                                                        }
                                                                        len++;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        value.enrollmentFilter.objectId = {
                                                                          type: decodedValue.objectType,
                                                                          instance: decodedValue.instance
                                                                        };
                                                                        len++;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.enrollmentFilter.processId = decodedValue.value;
                                                                        len++;
                                                                      }
                                                                      if (decodeIsContextTag22222222222222222(buffer, offset + len, 2)) {
                                                                        len++;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.eventStateFilter = decodedValue.value;
                                                                        len++;
                                                                      }
                                                                      if (decodeIsContextTag22222222222222222(buffer, offset + len, 3)) {
                                                                        len++;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.eventTypeFilter = decodedValue.value;
                                                                        len++;
                                                                      }
                                                                      if (decodeIsContextTag22222222222222222(buffer, offset + len, 4)) {
                                                                        len++;
                                                                        value.priorityFilter = {};
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.priorityFilter.min = decodedValue.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.priorityFilter.max = decodedValue.value;
                                                                        len++;
                                                                      }
                                                                      if (decodeIsContextTag22222222222222222(buffer, offset + len, 5)) {
                                                                        len++;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.notificationClassFilter = decodedValue.value;
                                                                        len++;
                                                                      }
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var encodeAcknowledge422222222222222222 = (buffer, enrollmentSummaries) => {
                                                                      enrollmentSummaries.forEach((enrollmentSummary) => {
                                                                        encodeApplicationObjectId22222222222222222(
                                                                          buffer,
                                                                          enrollmentSummary.objectId.type,
                                                                          enrollmentSummary.objectId.instance
                                                                        );
                                                                        encodeApplicationEnumerated22222222222222222(buffer, enrollmentSummary.eventType);
                                                                        encodeApplicationEnumerated22222222222222222(buffer, enrollmentSummary.eventState);
                                                                        encodeApplicationUnsigned22222222222222222(buffer, enrollmentSummary.priority);
                                                                        encodeApplicationUnsigned22222222222222222(
                                                                          buffer,
                                                                          enrollmentSummary.notificationClass
                                                                        );
                                                                      });
                                                                    };
                                                                    var decodeAcknowledge322222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      const enrollmentSummaries = [];
                                                                      while (apduLen - len > 0) {
                                                                        const enrollmentSummary = {};
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 12) {
                                                                          return void 0;
                                                                        }
                                                                        result = decodeObjectId22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        enrollmentSummary.objectId = {
                                                                          type: result.objectType,
                                                                          instance: result.instance
                                                                        };
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 9) {
                                                                          return void 0;
                                                                        }
                                                                        result = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        len += result.len;
                                                                        enrollmentSummary.eventType = result.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 9) {
                                                                          return void 0;
                                                                        }
                                                                        result = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        len += result.len;
                                                                        enrollmentSummary.eventState = result.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 2) {
                                                                          return void 0;
                                                                        }
                                                                        result = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += result.len;
                                                                        enrollmentSummary.priority = result.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 2) {
                                                                          return void 0;
                                                                        }
                                                                        result = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += result.len;
                                                                        enrollmentSummary.notificationClass = result.value;
                                                                        enrollmentSummaries.push(enrollmentSummary);
                                                                      }
                                                                      return {
                                                                        enrollmentSummaries,
                                                                        len
                                                                      };
                                                                    };
                                                                    var get_event_information_exports22222222222222222 = {};
                                                                    __export22222222222222222(get_event_information_exports22222222222222222, {
                                                                      decode: () => decode1422222222222222222,
                                                                      decodeAcknowledge: () => decodeAcknowledge422222222222222222,
                                                                      encode: () => encode1422222222222222222,
                                                                      encodeAcknowledge: () => encodeAcknowledge522222222222222222
                                                                    });
                                                                    var encode1422222222222222222 = (buffer, lastReceivedObjectId) => {
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        0,
                                                                        lastReceivedObjectId.type,
                                                                        lastReceivedObjectId.instance
                                                                      );
                                                                    };
                                                                    var decode1422222222222222222 = (buffer, offset) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let value = {};
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      value.lastReceivedObjectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var encodeAcknowledge522222222222222222 = (buffer, events, moreEvents) => {
                                                                      encodeOpeningTag22222222222222222(buffer, 0);
                                                                      events.forEach((eventData) => {
                                                                        encodeContextObjectId22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          eventData.objectId.type,
                                                                          eventData.objectId.instance
                                                                        );
                                                                        encodeContextEnumerated22222222222222222(buffer, 1, eventData.eventState);
                                                                        encodeContextBitstring22222222222222222(buffer, 2, eventData.acknowledgedTransitions);
                                                                        encodeOpeningTag22222222222222222(buffer, 3);
                                                                        for (let i = 0; i < 3; i++) {
                                                                          bacappEncodeTimestamp22222222222222222(buffer, eventData.eventTimeStamps[i]);
                                                                        }
                                                                        encodeClosingTag22222222222222222(buffer, 3);
                                                                        encodeContextEnumerated22222222222222222(buffer, 4, eventData.notifyType);
                                                                        encodeContextBitstring22222222222222222(buffer, 5, eventData.eventEnable);
                                                                        encodeOpeningTag22222222222222222(buffer, 6);
                                                                        for (let i = 0; i < 3; i++) {
                                                                          encodeApplicationUnsigned22222222222222222(buffer, eventData.eventPriorities[i]);
                                                                        }
                                                                        encodeClosingTag22222222222222222(buffer, 6);
                                                                      });
                                                                      encodeClosingTag22222222222222222(buffer, 0);
                                                                      encodeContextBoolean22222222222222222(buffer, 1, moreEvents);
                                                                    };
                                                                    var decodeAcknowledge422222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let value = {};
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      value.events = [];
                                                                      while (apduLen - len > 3) {
                                                                        let event = {};
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        event.objectId = {
                                                                          type: decodedValue.objectType,
                                                                          instance: decodedValue.instance
                                                                        };
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        event.eventState = decodedValue.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeBitstring22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        event.acknowledgedTransitions = decodedValue.value;
                                                                        if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 3)) {
                                                                          return void 0;
                                                                        }
                                                                        len++;
                                                                        event.eventTimeStamps = [];
                                                                        for (let i = 0; i < 3; i++) {
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          if (result.tagNumber === 0) {
                                                                            decodedValue = decodeBacnetTime22222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              result.value
                                                                            );
                                                                            len += decodedValue.len;
                                                                            event.eventTimeStamps[i] = {
                                                                              value: decodedValue.value,
                                                                              type: 0
                                                                              /* TIME */
                                                                            };
                                                                          } else if (result.tagNumber === 1) {
                                                                            decodedValue = decodeUnsigned22222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              result.value
                                                                            );
                                                                            len += decodedValue.len;
                                                                            event.eventTimeStamps[i] = {
                                                                              value: decodedValue.value,
                                                                              type: 1
                                                                              /* SEQUENCE_NUMBER */
                                                                            };
                                                                          } else if (result.tagNumber === 2) {
                                                                            let date = decodeApplicationDate22222222222222222(
                                                                              buffer,
                                                                              offset + len
                                                                            );
                                                                            len += date.len;
                                                                            date = date.value.value;
                                                                            let time = decodeApplicationTime22222222222222222(
                                                                              buffer,
                                                                              offset + len
                                                                            );
                                                                            len += time.len;
                                                                            time = time.value.value;
                                                                            event.eventTimeStamps[i] = {
                                                                              value: new Date(
                                                                                date.getFullYear(),
                                                                                date.getMonth(),
                                                                                date.getDate(),
                                                                                time.getHours(),
                                                                                time.getMinutes(),
                                                                                time.getSeconds(),
                                                                                time.getMilliseconds()
                                                                              ),
                                                                              type: 2
                                                                              /* DATETIME */
                                                                            };
                                                                            len++;
                                                                          }
                                                                        }
                                                                        if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 3)) {
                                                                          return void 0;
                                                                        }
                                                                        len++;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        event.notifyType = decodedValue.value;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeBitstring22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        event.eventEnable = decodedValue.value;
                                                                        if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 6)) {
                                                                          return void 0;
                                                                        }
                                                                        len++;
                                                                        event.eventPriorities = [];
                                                                        for (let i = 0; i < 3; i++) {
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          event.eventPriorities[i] = decodedValue.value;
                                                                        }
                                                                        if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 6)) {
                                                                          return void 0;
                                                                        }
                                                                        len++;
                                                                        value.events.push(event);
                                                                      }
                                                                      if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      value.moreEvents = buffer[offset + len] > 0;
                                                                      len++;
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var i_am_exports22222222222222222 = {};
                                                                    __export22222222222222222(i_am_exports22222222222222222, {
                                                                      decode: () => decode1522222222222222222,
                                                                      encode: () => encode1522222222222222222
                                                                    });
                                                                    var encode1522222222222222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                                                                      encodeApplicationObjectId22222222222222222(buffer, 8, deviceId);
                                                                      encodeApplicationUnsigned22222222222222222(buffer, maxApdu);
                                                                      encodeApplicationEnumerated22222222222222222(buffer, segmentation);
                                                                      encodeApplicationUnsigned22222222222222222(buffer, vendorId);
                                                                    };
                                                                    var decode1522222222222222222 = (buffer, offset) => {
                                                                      let result;
                                                                      let apduLen = 0;
                                                                      const orgOffset = offset;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + apduLen);
                                                                      apduLen += result.len;
                                                                      if (result.tagNumber !== 12) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeObjectId22222222222222222(buffer, offset + apduLen);
                                                                      apduLen += result.len;
                                                                      if (result.objectType !== 8) {
                                                                        return void 0;
                                                                      }
                                                                      const deviceId = result.instance;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + apduLen);
                                                                      apduLen += result.len;
                                                                      if (result.tagNumber !== 2) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeUnsigned22222222222222222(buffer, offset + apduLen, result.value);
                                                                      apduLen += result.len;
                                                                      const maxApdu = result.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + apduLen);
                                                                      apduLen += result.len;
                                                                      if (result.tagNumber !== 9) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeEnumerated22222222222222222(buffer, offset + apduLen, result.value);
                                                                      apduLen += result.len;
                                                                      if (result.value > 3) {
                                                                        return void 0;
                                                                      }
                                                                      const segmentation = result.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + apduLen);
                                                                      apduLen += result.len;
                                                                      if (result.tagNumber !== 2) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeUnsigned22222222222222222(buffer, offset + apduLen, result.value);
                                                                      apduLen += result.len;
                                                                      if (result.value > 65535) {
                                                                        return void 0;
                                                                      }
                                                                      const vendorId = result.value;
                                                                      return {
                                                                        len: offset - orgOffset,
                                                                        deviceId,
                                                                        maxApdu,
                                                                        segmentation,
                                                                        vendorId
                                                                      };
                                                                    };
                                                                    var i_have_exports22222222222222222 = {};
                                                                    __export22222222222222222(i_have_exports22222222222222222, {
                                                                      decode: () => decode1622222222222222222,
                                                                      encode: () => encode1622222222222222222
                                                                    });
                                                                    var encode1622222222222222222 = (buffer, deviceId, objectId, objectName) => {
                                                                      encodeApplicationObjectId22222222222222222(buffer, deviceId.type, deviceId.instance);
                                                                      encodeApplicationObjectId22222222222222222(buffer, objectId.type, objectId.instance);
                                                                      encodeApplicationCharacterString22222222222222222(buffer, objectName);
                                                                    };
                                                                    var decode1622222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let value = {};
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      value.deviceId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      value.objectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeCharacterString22222222222222222(
                                                                        buffer,
                                                                        offset + len,
                                                                        apduLen - (offset + len),
                                                                        result.value
                                                                      );
                                                                      len += decodedValue.len;
                                                                      value.objectName = decodedValue.value;
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var life_safety_operation_exports22222222222222222 = {};
                                                                    __export22222222222222222(life_safety_operation_exports22222222222222222, {
                                                                      decode: () => decode1722222222222222222,
                                                                      encode: () => encode1722222222222222222
                                                                    });
                                                                    var encode1722222222222222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                                                                      encodeContextUnsigned22222222222222222(buffer, 0, processId);
                                                                      encodeContextCharacterString22222222222222222(buffer, 1, requestingSource);
                                                                      encodeContextEnumerated22222222222222222(buffer, 2, operation);
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        3,
                                                                        targetObjectId.type,
                                                                        targetObjectId.instance
                                                                      );
                                                                    };
                                                                    var decode1722222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let value = {};
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.processId = decodedValue.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeCharacterString22222222222222222(
                                                                        buffer,
                                                                        offset + len,
                                                                        apduLen - (offset + len),
                                                                        result.value
                                                                      );
                                                                      len += decodedValue.len;
                                                                      value.requestingSource = decodedValue.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.operation = decodedValue.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      value.targetObjectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var private_transfer_exports22222222222222222 = {};
                                                                    __export22222222222222222(private_transfer_exports22222222222222222, {
                                                                      decode: () => decode1822222222222222222,
                                                                      encode: () => encode1822222222222222222
                                                                    });
                                                                    var encode1822222222222222222 = (buffer, vendorId, serviceNumber, data) => {
                                                                      encodeContextUnsigned22222222222222222(buffer, 0, vendorId);
                                                                      encodeContextUnsigned22222222222222222(buffer, 1, serviceNumber);
                                                                      encodeOpeningTag22222222222222222(buffer, 2);
                                                                      for (let i = 0; i < data.length; i++) {
                                                                        buffer.buffer[buffer.offset++] = data[i];
                                                                      }
                                                                      encodeClosingTag22222222222222222(buffer, 2);
                                                                    };
                                                                    var decode1822222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let value = {};
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.vendorId = decodedValue.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.serviceNumber = decodedValue.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      const size = apduLen - (offset + len + 1);
                                                                      const data = [];
                                                                      for (let i = 0; i < size; i++) {
                                                                        data.push(buffer[offset + len++]);
                                                                      }
                                                                      value.data = data;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var read_property_exports22222222222222222 = {};
                                                                    __export22222222222222222(read_property_exports22222222222222222, {
                                                                      decode: () => decode1922222222222222222,
                                                                      decodeAcknowledge: () => decodeAcknowledge522222222222222222,
                                                                      encode: () => encode1922222222222222222,
                                                                      encodeAcknowledge: () => encodeAcknowledge622222222222222222
                                                                    });
                                                                    var encode1922222222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                                                                      if (objectType <= ASN1_MAX_OBJECT22222222222222222) {
                                                                        encodeContextObjectId22222222222222222(buffer, 0, objectType, objectInstance);
                                                                      }
                                                                      if (propertyId <= ASN1_MAX_PROPERTY_ID22222222222222222) {
                                                                        encodeContextEnumerated22222222222222222(buffer, 1, propertyId);
                                                                      }
                                                                      if (arrayIndex !== ASN1_ARRAY_ALL22222222222222222) {
                                                                        encodeContextUnsigned22222222222222222(
                                                                          buffer,
                                                                          2,
                                                                          arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL22222222222222222
                                                                        );
                                                                      }
                                                                    };
                                                                    var decode1922222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      if (apduLen < 7) {
                                                                        return void 0;
                                                                      }
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      let objectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      let property = {};
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 1) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      property.id = decodedValue.value;
                                                                      property.index = ASN1_ARRAY_ALL22222222222222222;
                                                                      if (len < apduLen) {
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber === 2 && len < apduLen) {
                                                                          decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          property.index = decodedValue.value;
                                                                        } else {
                                                                          return void 0;
                                                                        }
                                                                      }
                                                                      if (len < apduLen) {
                                                                        return void 0;
                                                                      }
                                                                      return {
                                                                        len,
                                                                        objectId,
                                                                        property
                                                                      };
                                                                    };
                                                                    var encodeAcknowledge622222222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                                      encodeContextObjectId22222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                      encodeContextEnumerated22222222222222222(buffer, 1, propertyId);
                                                                      if (arrayIndex !== ASN1_ARRAY_ALL22222222222222222) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 2, arrayIndex);
                                                                      }
                                                                      encodeOpeningTag22222222222222222(buffer, 3);
                                                                      values.forEach((value) => {
                                                                        bacappEncodeApplicationData22222222222222222(buffer, value);
                                                                      });
                                                                      encodeClosingTag22222222222222222(buffer, 3);
                                                                    };
                                                                    var decodeAcknowledge522222222222222222 = (buffer, offset, apduLen) => {
                                                                      let result;
                                                                      let decodedValue;
                                                                      let objectId = {};
                                                                      let property = {};
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      let len = 1;
                                                                      result = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      objectId.type = result.objectType;
                                                                      objectId.instance = result.instance;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 1) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += result.len;
                                                                      property.id = result.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      if (result.tagNumber === 2) {
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        property.index = decodedValue.value;
                                                                      } else {
                                                                        property.index = ASN1_ARRAY_ALL22222222222222222;
                                                                      }
                                                                      const values = [];
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 3)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      while (apduLen - len > 1) {
                                                                        result = bacappDecodeApplicationData22222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          apduLen + offset,
                                                                          objectId.type,
                                                                          property.id
                                                                        );
                                                                        if (!result) {
                                                                          return void 0;
                                                                        }
                                                                        len += result.len;
                                                                        delete result.len;
                                                                        values.push(result);
                                                                      }
                                                                      if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 3)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      return {
                                                                        len,
                                                                        objectId,
                                                                        property,
                                                                        values
                                                                      };
                                                                    };
                                                                    var read_property_multiple_exports22222222222222222 = {};
                                                                    __export22222222222222222(read_property_multiple_exports22222222222222222, {
                                                                      decode: () => decode2022222222222222222,
                                                                      decodeAcknowledge: () => decodeAcknowledge622222222222222222,
                                                                      encode: () => encode2022222222222222222,
                                                                      encodeAcknowledge: () => encodeAcknowledge722222222222222222
                                                                    });
                                                                    var encode2022222222222222222 = (buffer, properties) => {
                                                                      properties.forEach((value) => {
                                                                        encodeReadAccessSpecification22222222222222222(buffer, value);
                                                                      });
                                                                    };
                                                                    var decode2022222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      const values = [];
                                                                      while (apduLen - len > 0) {
                                                                        const decodedValue = decodeReadAccessSpecification22222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          apduLen - len
                                                                        );
                                                                        if (!decodedValue) {
                                                                          return void 0;
                                                                        }
                                                                        len += decodedValue.len;
                                                                        values.push(decodedValue.value);
                                                                      }
                                                                      return {
                                                                        len,
                                                                        properties: values
                                                                      };
                                                                    };
                                                                    var encodeAcknowledge722222222222222222 = (buffer, values) => {
                                                                      values.forEach((value) => {
                                                                        encodeReadAccessResult22222222222222222(buffer, value);
                                                                      });
                                                                    };
                                                                    var decodeAcknowledge622222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      const values = [];
                                                                      while (apduLen - len > 0) {
                                                                        const result = decodeReadAccessResult22222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          apduLen - len
                                                                        );
                                                                        if (!result || result === -1) {
                                                                          return void 0;
                                                                        }
                                                                        len += result.len;
                                                                        values.push(result.value);
                                                                      }
                                                                      return {
                                                                        len,
                                                                        values
                                                                      };
                                                                    };
                                                                    var read_range_exports22222222222222222 = {};
                                                                    __export22222222222222222(read_range_exports22222222222222222, {
                                                                      decode: () => decode2122222222222222222,
                                                                      decodeAcknowledge: () => decodeAcknowledge722222222222222222,
                                                                      encode: () => encode2122222222222222222,
                                                                      encodeAcknowledge: () => encodeAcknowledge822222222222222222
                                                                    });
                                                                    var encode2122222222222222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                                                                      encodeContextObjectId22222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                      encodeContextEnumerated22222222222222222(buffer, 1, propertyId);
                                                                      if (arrayIndex !== ASN1_ARRAY_ALL22222222222222222) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 2, arrayIndex);
                                                                      }
                                                                      switch (requestType) {
                                                                        case 0:
                                                                          encodeOpeningTag22222222222222222(buffer, 3);
                                                                          encodeApplicationUnsigned22222222222222222(buffer, position);
                                                                          encodeApplicationSigned22222222222222222(buffer, count);
                                                                          encodeClosingTag22222222222222222(buffer, 3);
                                                                          break;
                                                                        case 1:
                                                                          encodeOpeningTag22222222222222222(buffer, 6);
                                                                          encodeApplicationUnsigned22222222222222222(buffer, position);
                                                                          encodeApplicationSigned22222222222222222(buffer, count);
                                                                          encodeClosingTag22222222222222222(buffer, 6);
                                                                          break;
                                                                        case 2:
                                                                          encodeOpeningTag22222222222222222(buffer, 7);
                                                                          encodeApplicationDate22222222222222222(buffer, time);
                                                                          encodeApplicationTime22222222222222222(buffer, time);
                                                                          encodeApplicationSigned22222222222222222(buffer, count);
                                                                          encodeClosingTag22222222222222222(buffer, 7);
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                    };
                                                                    var decode2122222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let requestType;
                                                                      let position;
                                                                      let time;
                                                                      let count;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len, 0);
                                                                      len += decodedValue.len;
                                                                      let objectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      let property = {};
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 1) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      property.id = decodedValue.value;
                                                                      if (len < apduLen && decodeIsContextTag22222222222222222(buffer, offset + len, 2)) {
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        property.index = decodedValue.value;
                                                                      } else {
                                                                        property.index = ASN1_ARRAY_ALL22222222222222222;
                                                                      }
                                                                      if (len < apduLen) {
                                                                        result = decodeTagNumber22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        switch (result.tagNumber) {
                                                                          case 3:
                                                                            requestType = 0;
                                                                            result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned22222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              result.value
                                                                            );
                                                                            len += decodedValue.len;
                                                                            position = decodedValue.value;
                                                                            result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeSigned22222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            count = decodedValue.value;
                                                                            break;
                                                                          case 6:
                                                                            requestType = 1;
                                                                            result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeUnsigned22222222222222222(
                                                                              buffer,
                                                                              offset + len,
                                                                              result.value
                                                                            );
                                                                            len += decodedValue.len;
                                                                            position = decodedValue.value;
                                                                            result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeSigned22222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            count = decodedValue.value;
                                                                            break;
                                                                          case 7:
                                                                            requestType = 2;
                                                                            decodedValue = decodeApplicationDate22222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            const tmpDate = decodedValue.value.value;
                                                                            decodedValue = decodeApplicationTime22222222222222222(buffer, offset + len);
                                                                            len += decodedValue.len;
                                                                            const tmpTime = decodedValue.value.value;
                                                                            time = new Date(
                                                                              tmpDate.getYear(),
                                                                              tmpDate.getMonth(),
                                                                              tmpDate.getDate(),
                                                                              tmpTime.getHours(),
                                                                              tmpTime.getMinutes(),
                                                                              tmpTime.getSeconds(),
                                                                              tmpTime.getMilliseconds()
                                                                            );
                                                                            result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                            len += result.len;
                                                                            decodedValue = decodeSigned22222222222222222(buffer, offset + len, result.value);
                                                                            len += decodedValue.len;
                                                                            count = decodedValue.value;
                                                                            break;
                                                                          default:
                                                                            return void 0;
                                                                        }
                                                                        result = decodeTagNumber22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                      }
                                                                      return {
                                                                        len,
                                                                        objectId,
                                                                        property,
                                                                        requestType,
                                                                        position,
                                                                        time,
                                                                        count
                                                                      };
                                                                    };
                                                                    var encodeAcknowledge822222222222222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                                                                      encodeContextObjectId22222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                      encodeContextEnumerated22222222222222222(buffer, 1, propertyId);
                                                                      if (arrayIndex !== ASN1_ARRAY_ALL22222222222222222) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 2, arrayIndex);
                                                                      }
                                                                      encodeContextBitstring22222222222222222(buffer, 3, resultFlags);
                                                                      encodeContextUnsigned22222222222222222(buffer, 4, itemCount);
                                                                      encodeOpeningTag22222222222222222(buffer, 5);
                                                                      if (itemCount !== 0) {
                                                                        applicationData.copy(
                                                                          buffer.buffer,
                                                                          buffer.offset,
                                                                          0,
                                                                          applicationData.length
                                                                        );
                                                                        buffer.offset += applicationData.length;
                                                                      }
                                                                      encodeClosingTag22222222222222222(buffer, 5);
                                                                      if (itemCount !== 0 && requestType && requestType !== 0) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 6, firstSequence);
                                                                      }
                                                                    };
                                                                    var decodeAcknowledge722222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      const objectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      const property = { index: ASN1_ARRAY_ALL22222222222222222 };
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 1) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      property.id = decodedValue.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      if (result.tagNumber === 2 && len < apduLen) {
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        property.index = decodedValue.value;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeBitstring22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      const resultFlag = decodedValue.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      const itemCount = decodedValue.value;
                                                                      if (!decodeIsOpeningTag22222222222222222(buffer, offset + len)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                                                                      return {
                                                                        objectId,
                                                                        property,
                                                                        resultFlag,
                                                                        itemCount,
                                                                        rangeBuffer,
                                                                        len
                                                                      };
                                                                    };
                                                                    var register_foreign_device_exports22222222222222222 = {};
                                                                    __export22222222222222222(register_foreign_device_exports22222222222222222, {
                                                                      decode: () => decode2222222222222222222,
                                                                      encode: () => encode2222222222222222222
                                                                    });
                                                                    var encode2222222222222222222 = (buffer, ttl, length = 2) => {
                                                                      encodeUnsigned22222222222222222(buffer, ttl, length);
                                                                    };
                                                                    var decode2222222222222222222 = (buffer, offset, length = 2) => {
                                                                      let len = 0;
                                                                      let result = decodeUnsigned22222222222222222(buffer, offset + len, length);
                                                                      len += result.len;
                                                                      return {
                                                                        len,
                                                                        ttl: result.value
                                                                      };
                                                                    };
                                                                    var reinitialize_device_exports22222222222222222 = {};
                                                                    __export22222222222222222(reinitialize_device_exports22222222222222222, {
                                                                      decode: () => decode2322222222222222222,
                                                                      encode: () => encode2322222222222222222
                                                                    });
                                                                    var encode2322222222222222222 = (buffer, state, password) => {
                                                                      encodeContextEnumerated22222222222222222(buffer, 0, state);
                                                                      if (password && password !== "") {
                                                                        encodeContextCharacterString22222222222222222(buffer, 1, password);
                                                                      }
                                                                    };
                                                                    var decode2322222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let value = {};
                                                                      let result;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      let decodedValue = decodeEnumerated22222222222222222(
                                                                        buffer,
                                                                        offset + len,
                                                                        result.value
                                                                      );
                                                                      value.state = decodedValue.value;
                                                                      len += decodedValue.len;
                                                                      if (len < apduLen) {
                                                                        if (!decodeIsContextTag22222222222222222(buffer, offset + len, 1)) {
                                                                          return void 0;
                                                                        }
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeCharacterString22222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          apduLen - (offset + len),
                                                                          result.value
                                                                        );
                                                                        value.password = decodedValue.value;
                                                                        len += decodedValue.len;
                                                                      }
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var subscribe_cov_exports22222222222222222 = {};
                                                                    __export22222222222222222(subscribe_cov_exports22222222222222222, {
                                                                      decode: () => decode2422222222222222222,
                                                                      encode: () => encode2422222222222222222
                                                                    });
                                                                    var encode2422222222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                                                                      encodeContextUnsigned22222222222222222(buffer, 0, subscriberProcessId);
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        1,
                                                                        monitoredObjectId.type,
                                                                        monitoredObjectId.instance
                                                                      );
                                                                      if (!cancellationRequest) {
                                                                        encodeContextBoolean22222222222222222(buffer, 2, issueConfirmedNotifications);
                                                                        encodeContextUnsigned22222222222222222(buffer, 3, lifetime);
                                                                      }
                                                                    };
                                                                    var decode2422222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let value = {};
                                                                      let result;
                                                                      let decodedValue;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.subscriberProcessId = decodedValue.value;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      value.monitoredObjectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      value.cancellationRequest = true;
                                                                      if (len < apduLen) {
                                                                        value.issueConfirmedNotifications = false;
                                                                        if (decodeIsContextTag22222222222222222(buffer, offset + len, 2)) {
                                                                          value.cancellationRequest = false;
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                                          len++;
                                                                        }
                                                                        value.lifetime = 0;
                                                                        if (decodeIsContextTag22222222222222222(buffer, offset + len, 3)) {
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          value.lifetime = decodedValue.value;
                                                                        }
                                                                      }
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var subscribe_property_exports22222222222222222 = {};
                                                                    __export22222222222222222(subscribe_property_exports22222222222222222, {
                                                                      decode: () => decode2522222222222222222,
                                                                      encode: () => encode2522222222222222222
                                                                    });
                                                                    var encode2522222222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                                                                      encodeContextUnsigned22222222222222222(buffer, 0, subscriberProcessId);
                                                                      encodeContextObjectId22222222222222222(
                                                                        buffer,
                                                                        1,
                                                                        monitoredObjectId.type,
                                                                        monitoredObjectId.instance
                                                                      );
                                                                      if (!cancellationRequest) {
                                                                        encodeContextBoolean22222222222222222(buffer, 2, issueConfirmedNotifications);
                                                                        encodeContextUnsigned22222222222222222(buffer, 3, lifetime);
                                                                      }
                                                                      encodeOpeningTag22222222222222222(buffer, 4);
                                                                      encodeContextEnumerated22222222222222222(buffer, 0, monitoredProperty.id);
                                                                      if (monitoredProperty.index !== ASN1_ARRAY_ALL22222222222222222) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 1, monitoredProperty.index);
                                                                      }
                                                                      encodeClosingTag22222222222222222(buffer, 4);
                                                                      if (covIncrementPresent) {
                                                                        encodeContextReal22222222222222222(buffer, 5, covIncrement);
                                                                      }
                                                                    };
                                                                    var decode2522222222222222222 = (buffer, offset) => {
                                                                      let len = 0;
                                                                      let value = {};
                                                                      let result;
                                                                      let decodedValue;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.subscriberProcessId = decodedValue.value;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      value.monitoredObjectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      value.cancellationRequest = true;
                                                                      value.issueConfirmedNotifications = false;
                                                                      if (decodeIsContextTag22222222222222222(buffer, offset + len, 2)) {
                                                                        value.cancellationRequest = false;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                                        len++;
                                                                      }
                                                                      value.lifetime = 0;
                                                                      if (decodeIsContextTag22222222222222222(buffer, offset + len, 3)) {
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.lifetime = decodedValue.value;
                                                                      }
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 4)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      value.monitoredProperty = {};
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.monitoredProperty.id = decodedValue.value;
                                                                      value.monitoredProperty.index = ASN1_ARRAY_ALL22222222222222222;
                                                                      if (decodeIsContextTag22222222222222222(buffer, offset + len, 1)) {
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.monitoredProperty.index = decodedValue.value;
                                                                      }
                                                                      if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 4)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      value.covIncrement = 0;
                                                                      if (decodeIsContextTag22222222222222222(buffer, offset + len, 5)) {
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeReal22222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        value.covIncrement = decodedValue.value;
                                                                      }
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var time_sync_exports22222222222222222 = {};
                                                                    __export22222222222222222(time_sync_exports22222222222222222, {
                                                                      decode: () => decode2622222222222222222,
                                                                      encode: () => encode2622222222222222222
                                                                    });
                                                                    var encode2622222222222222222 = (buffer, time) => {
                                                                      encodeApplicationDate22222222222222222(buffer, time);
                                                                      encodeApplicationTime22222222222222222(buffer, time);
                                                                    };
                                                                    var decode2622222222222222222 = (buffer, offset, length) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 10) {
                                                                        return void 0;
                                                                      }
                                                                      const date = decodeDate22222222222222222(buffer, offset + len);
                                                                      len += date.len;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 11) {
                                                                        return void 0;
                                                                      }
                                                                      const time = decodeBacnetTime22222222222222222(buffer, offset + len);
                                                                      len += time.len;
                                                                      return {
                                                                        len,
                                                                        value: new Date(
                                                                          date.value.getFullYear(),
                                                                          date.value.getMonth(),
                                                                          date.value.getDate(),
                                                                          time.value.getHours(),
                                                                          time.value.getMinutes(),
                                                                          time.value.getSeconds(),
                                                                          time.value.getMilliseconds()
                                                                        )
                                                                      };
                                                                    };
                                                                    var who_has_exports22222222222222222 = {};
                                                                    __export22222222222222222(who_has_exports22222222222222222, {
                                                                      decode: () => decode2722222222222222222,
                                                                      encode: () => encode2722222222222222222
                                                                    });
                                                                    var encode2722222222222222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                                                                      if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE22222222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE22222222222222222) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 0, lowLimit);
                                                                        encodeContextUnsigned22222222222222222(buffer, 1, highLimit);
                                                                      }
                                                                      if (objectName && objectName !== "") {
                                                                        encodeContextCharacterString22222222222222222(buffer, 3, objectName);
                                                                      } else {
                                                                        encodeContextObjectId22222222222222222(buffer, 2, objectId.type, objectId.instance);
                                                                      }
                                                                    };
                                                                    var decode2722222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let value = {};
                                                                      let decodedValue;
                                                                      let result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber === 0) {
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        if (decodedValue.value <= ASN1_MAX_INSTANCE22222222222222222) {
                                                                          value.lowLimit = decodedValue.value;
                                                                        }
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                      }
                                                                      if (result.tagNumber === 1) {
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        if (decodedValue.value <= ASN1_MAX_INSTANCE22222222222222222) {
                                                                          value.highLimit = decodedValue.value;
                                                                        }
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                      }
                                                                      if (result.tagNumber === 2) {
                                                                        decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        value.objectId = {
                                                                          type: decodedValue.objectType,
                                                                          instance: decodedValue.instance
                                                                        };
                                                                      }
                                                                      if (result.tagNumber === 3) {
                                                                        decodedValue = decodeCharacterString22222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          apduLen - (offset + len),
                                                                          result.value
                                                                        );
                                                                        len += decodedValue.len;
                                                                        value.objectName = decodedValue.value;
                                                                      }
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var who_is_exports22222222222222222 = {};
                                                                    __export22222222222222222(who_is_exports22222222222222222, {
                                                                      decode: () => decode2822222222222222222,
                                                                      encode: () => encode2822222222222222222
                                                                    });
                                                                    var encode2822222222222222222 = (buffer, lowLimit, highLimit) => {
                                                                      if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE22222222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE22222222222222222) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 0, lowLimit);
                                                                        encodeContextUnsigned22222222222222222(buffer, 1, highLimit);
                                                                      }
                                                                    };
                                                                    var decode2822222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let value = {};
                                                                      if (apduLen <= 0) {
                                                                        return {};
                                                                      }
                                                                      let result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 0) {
                                                                        return void 0;
                                                                      }
                                                                      if (apduLen <= len) {
                                                                        return void 0;
                                                                      }
                                                                      let decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      if (decodedValue.value <= ASN1_MAX_INSTANCE22222222222222222) {
                                                                        value.lowLimit = decodedValue.value;
                                                                      }
                                                                      if (apduLen <= len) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 1) {
                                                                        return void 0;
                                                                      }
                                                                      if (apduLen <= len) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      if (decodedValue.value <= ASN1_MAX_INSTANCE22222222222222222) {
                                                                        value.highLimit = decodedValue.value;
                                                                      }
                                                                      value.len = len;
                                                                      return value;
                                                                    };
                                                                    var write_property_exports22222222222222222 = {};
                                                                    __export22222222222222222(write_property_exports22222222222222222, {
                                                                      decode: () => decode2922222222222222222,
                                                                      encode: () => encode2922222222222222222
                                                                    });
                                                                    var encode2922222222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                                                                      encodeContextObjectId22222222222222222(buffer, 0, objectType, objectInstance);
                                                                      encodeContextEnumerated22222222222222222(buffer, 1, propertyId);
                                                                      if (arrayIndex !== ASN1_ARRAY_ALL22222222222222222) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 2, arrayIndex);
                                                                      }
                                                                      encodeOpeningTag22222222222222222(buffer, 3);
                                                                      values.forEach((value) => {
                                                                        bacappEncodeApplicationData22222222222222222(buffer, value);
                                                                      });
                                                                      encodeClosingTag22222222222222222(buffer, 3);
                                                                      if (priority !== ASN1_NO_PRIORITY22222222222222222) {
                                                                        encodeContextUnsigned22222222222222222(buffer, 4, priority);
                                                                      }
                                                                    };
                                                                    var decode2922222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let value = {
                                                                        property: {}
                                                                      };
                                                                      let decodedValue;
                                                                      let result;
                                                                      if (!decodeIsContextTag22222222222222222(buffer, offset + len, 0)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      let objectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      len += decodedValue.len;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 1) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.property.id = decodedValue.value;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      if (result.tagNumber === 2) {
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        value.property.index = decodedValue.value;
                                                                      } else {
                                                                        value.property.index = ASN1_ARRAY_ALL22222222222222222;
                                                                      }
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 3)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      const values = [];
                                                                      while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 3)) {
                                                                        decodedValue = bacappDecodeApplicationData22222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          apduLen + offset,
                                                                          objectId.type,
                                                                          value.property.id
                                                                        );
                                                                        if (!decodedValue) {
                                                                          return void 0;
                                                                        }
                                                                        len += decodedValue.len;
                                                                        delete decodedValue.len;
                                                                        values.push(decodedValue);
                                                                      }
                                                                      value.value = values;
                                                                      if (!decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 3)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      value.priority = ASN1_MAX_PRIORITY22222222222222222;
                                                                      if (len < apduLen) {
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        if (result.tagNumber === 4) {
                                                                          len += result.len;
                                                                          decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue;
                                                                          if (decodedValue.value >= ASN1_MIN_PRIORITY22222222222222222 && decodedValue.value <= ASN1_MAX_PRIORITY22222222222222222) {
                                                                            value.priority = decodedValue.value;
                                                                          } else {
                                                                            return void 0;
                                                                          }
                                                                        }
                                                                      }
                                                                      return {
                                                                        len,
                                                                        objectId,
                                                                        value
                                                                      };
                                                                    };
                                                                    var write_property_multiple_exports22222222222222222 = {};
                                                                    __export22222222222222222(write_property_multiple_exports22222222222222222, {
                                                                      decode: () => decode3022222222222222222,
                                                                      encode: () => encode3022222222222222222,
                                                                      encodeObject: () => encodeObject22222222222222222
                                                                    });
                                                                    var encode3022222222222222222 = (buffer, objectId, values) => {
                                                                      encodeContextObjectId22222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                      encodeOpeningTag22222222222222222(buffer, 1);
                                                                      values.forEach((pValue) => {
                                                                        encodeContextEnumerated22222222222222222(buffer, 0, pValue.property.id);
                                                                        if (pValue.property.index !== ASN1_ARRAY_ALL22222222222222222) {
                                                                          encodeContextUnsigned22222222222222222(buffer, 1, pValue.property.index);
                                                                        }
                                                                        encodeOpeningTag22222222222222222(buffer, 2);
                                                                        pValue.value.forEach((value) => {
                                                                          bacappEncodeApplicationData22222222222222222(buffer, value);
                                                                        });
                                                                        encodeClosingTag22222222222222222(buffer, 2);
                                                                        if (pValue.priority !== ASN1_NO_PRIORITY22222222222222222) {
                                                                          encodeContextUnsigned22222222222222222(buffer, 3, pValue.priority);
                                                                        }
                                                                      });
                                                                      encodeClosingTag22222222222222222(buffer, 1);
                                                                    };
                                                                    var decode3022222222222222222 = (buffer, offset, apduLen) => {
                                                                      let len = 0;
                                                                      let result;
                                                                      let decodedValue;
                                                                      let objectId;
                                                                      result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 0 || apduLen <= len) {
                                                                        return void 0;
                                                                      }
                                                                      apduLen -= len;
                                                                      if (apduLen < 4) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeObjectId22222222222222222(buffer, offset + len);
                                                                      len += decodedValue.len;
                                                                      objectId = {
                                                                        type: decodedValue.objectType,
                                                                        instance: decodedValue.instance
                                                                      };
                                                                      if (!decodeIsOpeningTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      const _values = [];
                                                                      while (apduLen - len > 1) {
                                                                        let newEntry = {};
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber !== 0) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeEnumerated22222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        let propertyId = decodedValue.value;
                                                                        let arrayIndex = ASN1_ARRAY_ALL22222222222222222;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber === 1) {
                                                                          decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          arrayIndex = decodedValue.value;
                                                                          result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                          len += result.len;
                                                                        }
                                                                        newEntry.property = { id: propertyId, index: arrayIndex };
                                                                        if (result.tagNumber !== 2 || !decodeIsOpeningTag22222222222222222(buffer, offset + len - 1)) {
                                                                          return void 0;
                                                                        }
                                                                        const values = [];
                                                                        while (len + offset <= buffer.length && !decodeIsClosingTag22222222222222222(buffer, offset + len)) {
                                                                          let value = bacappDecodeApplicationData22222222222222222(
                                                                            buffer,
                                                                            offset + len,
                                                                            apduLen + offset,
                                                                            objectId.type,
                                                                            propertyId
                                                                          );
                                                                          if (!value) {
                                                                            return void 0;
                                                                          }
                                                                          len += value.len;
                                                                          delete value.len;
                                                                          values.push(value);
                                                                        }
                                                                        len++;
                                                                        newEntry.value = values;
                                                                        let priority = ASN1_NO_PRIORITY22222222222222222;
                                                                        result = decodeTagNumberAndValue22222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        if (result.tagNumber === 3) {
                                                                          decodedValue = decodeUnsigned22222222222222222(buffer, offset + len, result.value);
                                                                          len += decodedValue.len;
                                                                          priority = decodedValue.value;
                                                                        } else {
                                                                          len--;
                                                                        }
                                                                        newEntry.priority = priority;
                                                                        _values.push(newEntry);
                                                                        if (decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                          len++;
                                                                        }
                                                                      }
                                                                      if (decodeIsClosingTagNumber22222222222222222(buffer, offset + len, 1)) {
                                                                        len++;
                                                                      }
                                                                      return {
                                                                        len,
                                                                        objectId,
                                                                        values: _values
                                                                      };
                                                                    };
                                                                    var encodeObject22222222222222222 = (buffer, values) => {
                                                                      values.forEach((object) => {
                                                                        encode3022222222222222222(buffer, object.objectId, object.values);
                                                                      });
                                                                    };
                                                                    var getDecodedType22222222222222222 = (buffer, offset) => {
                                                                      return buffer[offset];
                                                                    };
                                                                    var encodeConfirmedServiceRequest22222222222222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                                                                      buffer.buffer[buffer.offset++] = type;
                                                                      buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                                                                      buffer.buffer[buffer.offset++] = invokeId;
                                                                      if ((type & 8) > 0) {
                                                                        buffer.buffer[buffer.offset++] = sequencenumber;
                                                                        buffer.buffer[buffer.offset++] = proposedWindowSize;
                                                                      }
                                                                      buffer.buffer[buffer.offset++] = service;
                                                                    };
                                                                    var decodeConfirmedServiceRequest22222222222222222 = (buffer, offset) => {
                                                                      const orgOffset = offset;
                                                                      const type = buffer[offset++];
                                                                      const maxSegments = buffer[offset] & 240;
                                                                      const maxApdu = buffer[offset++] & 15;
                                                                      const invokeId = buffer[offset++];
                                                                      let sequencenumber = 0;
                                                                      let proposedWindowNumber = 0;
                                                                      if ((type & 8) > 0) {
                                                                        sequencenumber = buffer[offset++];
                                                                        proposedWindowNumber = buffer[offset++];
                                                                      }
                                                                      const service = buffer[offset++];
                                                                      return {
                                                                        len: offset - orgOffset,
                                                                        type,
                                                                        service,
                                                                        maxSegments,
                                                                        maxApdu,
                                                                        invokeId,
                                                                        sequencenumber,
                                                                        proposedWindowNumber
                                                                      };
                                                                    };
                                                                    var encodeUnconfirmedServiceRequest22222222222222222 = (buffer, type, service) => {
                                                                      buffer.buffer[buffer.offset++] = type;
                                                                      buffer.buffer[buffer.offset++] = service;
                                                                    };
                                                                    var decodeUnconfirmedServiceRequest22222222222222222 = (buffer, offset) => {
                                                                      const orgOffset = offset;
                                                                      const type = buffer[offset++];
                                                                      const service = buffer[offset++];
                                                                      return {
                                                                        len: offset - orgOffset,
                                                                        type,
                                                                        service
                                                                      };
                                                                    };
                                                                    var encodeSimpleAck22222222222222222 = (buffer, type, service, invokeId) => {
                                                                      buffer.buffer[buffer.offset++] = type;
                                                                      buffer.buffer[buffer.offset++] = invokeId;
                                                                      buffer.buffer[buffer.offset++] = service;
                                                                    };
                                                                    var decodeSimpleAck22222222222222222 = (buffer, offset) => {
                                                                      const orgOffset = offset;
                                                                      const type = buffer[offset++];
                                                                      const invokeId = buffer[offset++];
                                                                      const service = buffer[offset++];
                                                                      return {
                                                                        len: offset - orgOffset,
                                                                        type,
                                                                        service,
                                                                        invokeId
                                                                      };
                                                                    };
                                                                    var encodeComplexAck22222222222222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                                                                      let len = 3;
                                                                      buffer.buffer[buffer.offset++] = type;
                                                                      buffer.buffer[buffer.offset++] = invokeId;
                                                                      if ((type & 8) > 0) {
                                                                        buffer.buffer[buffer.offset++] = sequencenumber;
                                                                        buffer.buffer[buffer.offset++] = proposedWindowNumber;
                                                                        len += 2;
                                                                      }
                                                                      buffer.buffer[buffer.offset++] = service;
                                                                      return len;
                                                                    };
                                                                    var decodeComplexAck22222222222222222 = (buffer, offset) => {
                                                                      const orgOffset = offset;
                                                                      const type = buffer[offset++];
                                                                      const invokeId = buffer[offset++];
                                                                      let sequencenumber = 0;
                                                                      let proposedWindowNumber = 0;
                                                                      if ((type & 8) > 0) {
                                                                        sequencenumber = buffer[offset++];
                                                                        proposedWindowNumber = buffer[offset++];
                                                                      }
                                                                      const service = buffer[offset++];
                                                                      return {
                                                                        len: offset - orgOffset,
                                                                        type,
                                                                        service,
                                                                        invokeId,
                                                                        sequencenumber,
                                                                        proposedWindowNumber
                                                                      };
                                                                    };
                                                                    var encodeSegmentAck22222222222222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                                                                      buffer.buffer[buffer.offset++] = type;
                                                                      buffer.buffer[buffer.offset++] = originalInvokeId;
                                                                      buffer.buffer[buffer.offset++] = sequencenumber;
                                                                      buffer.buffer[buffer.offset++] = actualWindowSize;
                                                                    };
                                                                    var decodeSegmentAck22222222222222222 = (buffer, offset) => {
                                                                      const orgOffset = offset;
                                                                      const type = buffer[offset++];
                                                                      const originalInvokeId = buffer[offset++];
                                                                      const sequencenumber = buffer[offset++];
                                                                      const actualWindowSize = buffer[offset++];
                                                                      return {
                                                                        len: offset - orgOffset,
                                                                        type,
                                                                        originalInvokeId,
                                                                        sequencenumber,
                                                                        actualWindowSize
                                                                      };
                                                                    };
                                                                    var encodeResult22222222222222222 = (buffer, resultCode) => {
                                                                      encodeUnsigned22222222222222222(buffer, resultCode, 2);
                                                                    };
                                                                    var encodeError22222222222222222 = (buffer, type, service, invokeId) => {
                                                                      buffer.buffer[buffer.offset++] = type;
                                                                      buffer.buffer[buffer.offset++] = invokeId;
                                                                      buffer.buffer[buffer.offset++] = service;
                                                                    };
                                                                    var decodeError22222222222222222 = (buffer, offset) => {
                                                                      const orgOffset = offset;
                                                                      const type = buffer[offset++];
                                                                      const invokeId = buffer[offset++];
                                                                      const service = buffer[offset++];
                                                                      return {
                                                                        len: offset - orgOffset,
                                                                        type,
                                                                        service,
                                                                        invokeId
                                                                      };
                                                                    };
                                                                    var decodeAbort22222222222222222 = (buffer, offset) => {
                                                                      const orgOffset = offset;
                                                                      const type = buffer[offset++];
                                                                      const invokeId = buffer[offset++];
                                                                      const reason = buffer[offset++];
                                                                      return {
                                                                        len: offset - orgOffset,
                                                                        type,
                                                                        invokeId,
                                                                        reason
                                                                      };
                                                                    };
                                                                    var DEFAULT_HOP_COUNT32222222222222222 = 255;
                                                                    var BACNET_PROTOCOL_VERSION22222222222222222 = 1;
                                                                    var BACNET_ADDRESS_TYPES22222222222222222 = {
                                                                      NONE: 0,
                                                                      IP: 1
                                                                    };
                                                                    var decodeTarget22222222222222222 = (buffer, offset) => {
                                                                      let len = 0;
                                                                      const target = {
                                                                        type: BACNET_ADDRESS_TYPES22222222222222222.NONE,
                                                                        net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                                                                      };
                                                                      const adrLen = buffer[offset + len++];
                                                                      if (adrLen > 0) {
                                                                        target.adr = [];
                                                                        for (let i = 0; i < adrLen; i++) {
                                                                          target.adr.push(buffer[offset + len++]);
                                                                        }
                                                                      }
                                                                      return {
                                                                        target,
                                                                        len
                                                                      };
                                                                    };
                                                                    var encodeTarget22222222222222222 = (buffer, target) => {
                                                                      buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                                                                      buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                                                                      if (target.net === 65535 || !target.adr) {
                                                                        buffer.buffer[buffer.offset++] = 0;
                                                                      } else {
                                                                        buffer.buffer[buffer.offset++] = target.adr.length;
                                                                        if (target.adr.length > 0) {
                                                                          for (let i = 0; i < target.adr.length; i++) {
                                                                            buffer.buffer[buffer.offset++] = target.adr[i];
                                                                          }
                                                                        }
                                                                      }
                                                                    };
                                                                    var decode3122222222222222222 = (buffer, offset) => {
                                                                      let adrLen;
                                                                      const orgOffset = offset;
                                                                      offset++;
                                                                      const funct = buffer[offset++];
                                                                      let destination;
                                                                      if (funct & 32) {
                                                                        const tmpDestination = decodeTarget22222222222222222(buffer, offset);
                                                                        offset += tmpDestination.len;
                                                                        destination = tmpDestination.target;
                                                                      }
                                                                      let source;
                                                                      if (funct & 8) {
                                                                        const tmpSource = decodeTarget22222222222222222(buffer, offset);
                                                                        offset += tmpSource.len;
                                                                        source = tmpSource.target;
                                                                      }
                                                                      let hopCount = 0;
                                                                      if (funct & 32) {
                                                                        hopCount = buffer[offset++];
                                                                      }
                                                                      let networkMsgType = 0;
                                                                      let vendorId = 0;
                                                                      if (funct & 128) {
                                                                        networkMsgType = buffer[offset++];
                                                                        if (networkMsgType >= 128) {
                                                                          vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                                                                        } else if (networkMsgType === 0) {
                                                                          offset += 2;
                                                                        }
                                                                      }
                                                                      if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION22222222222222222) {
                                                                        return void 0;
                                                                      }
                                                                      return {
                                                                        len: offset - orgOffset,
                                                                        funct,
                                                                        destination,
                                                                        source,
                                                                        hopCount,
                                                                        networkMsgType,
                                                                        vendorId
                                                                      };
                                                                    };
                                                                    var encode3122222222222222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                                                                      const hasDestination = destination && destination.net > 0;
                                                                      const hasSource = source && source.net > 0 && source.net !== 65535;
                                                                      buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION22222222222222222;
                                                                      buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                                                                      if (hasDestination) {
                                                                        encodeTarget22222222222222222(buffer, destination);
                                                                      }
                                                                      if (hasSource) {
                                                                        encodeTarget22222222222222222(buffer, source);
                                                                      }
                                                                      if (hasDestination) {
                                                                        buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT32222222222222222;
                                                                      }
                                                                      if ((funct & 128) > 0) {
                                                                        buffer.buffer[buffer.offset++] = networkMsgType;
                                                                        if (networkMsgType >= 128) {
                                                                          buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                                                                          buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                                                                        }
                                                                      }
                                                                    };
                                                                    var DEFAULT_BACNET_PORT222222222222222222 = 47808;
                                                                    var encode3222222222222222222 = (buffer, func, msgLength, originatingIP) => {
                                                                      buffer[0] = BVLL_TYPE_BACNET_IP22222222222222222;
                                                                      buffer[1] = func;
                                                                      buffer[2] = (msgLength & 65280) >> 8;
                                                                      buffer[3] = (msgLength & 255) >> 0;
                                                                      if (originatingIP) {
                                                                        if (func !== 4) {
                                                                          throw new Error(
                                                                            "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                                                                          );
                                                                        }
                                                                        const [ipstr, portstr] = originatingIP.split(":");
                                                                        const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT222222222222222222;
                                                                        const ip = ipstr.split(".");
                                                                        buffer[4] = parseInt(ip[0], 10);
                                                                        buffer[5] = parseInt(ip[1], 10);
                                                                        buffer[6] = parseInt(ip[2], 10);
                                                                        buffer[7] = parseInt(ip[3], 10);
                                                                        buffer[8] = (port & 65280) >> 8;
                                                                        buffer[9] = (port & 255) >> 0;
                                                                        return 6 + BVLC_HEADER_LENGTH32222222222222222;
                                                                      } else {
                                                                        if (func === 4) {
                                                                          throw new Error(
                                                                            "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                                                                          );
                                                                        }
                                                                      }
                                                                      return BVLC_HEADER_LENGTH32222222222222222;
                                                                    };
                                                                    var decode3222222222222222222 = (buffer, _offset) => {
                                                                      let len;
                                                                      const func = buffer[1];
                                                                      const msgLength = buffer[2] << 8 | buffer[3] << 0;
                                                                      if (buffer[0] !== BVLL_TYPE_BACNET_IP22222222222222222 || buffer.length !== msgLength) {
                                                                        return void 0;
                                                                      }
                                                                      let originatingIP = null;
                                                                      switch (func) {
                                                                        case 0:
                                                                        case 10:
                                                                        case 11:
                                                                        case 9:
                                                                        case 5:
                                                                        case 6:
                                                                        case 8:
                                                                        case 2:
                                                                        case 1:
                                                                        case 3:
                                                                        case 7:
                                                                          len = 4;
                                                                          break;
                                                                        case 4:
                                                                          const port = buffer[8] << 8 | buffer[9];
                                                                          originatingIP = buffer.slice(4, 8).join(".");
                                                                          if (port !== DEFAULT_BACNET_PORT222222222222222222) {
                                                                            originatingIP += ":" + port;
                                                                          }
                                                                          len = 10;
                                                                          break;
                                                                        case 12:
                                                                          return void 0;
                                                                        default:
                                                                          return void 0;
                                                                      }
                                                                      return {
                                                                        len,
                                                                        func,
                                                                        msgLength,
                                                                        // Originating IP is set to the IP address of the node that originally
                                                                        // sent the packet, when it has been forwarded to us by a BBMD (since the
                                                                        // BBMD's IP address will be in the sender field.
                                                                        originatingIP
                                                                      };
                                                                    };
                                                                    var EventEmitter222222222222222222 = import_events222222222222222222.default.EventEmitter;
                                                                    var debug322222222222222222 = (0, import_debug322222222222222222.default)("bacnet:client:debug");
                                                                    var trace222222222222222222 = (0, import_debug322222222222222222.default)("bacnet:client:trace");
                                                                    var ALL_INTERFACES22222222222222222 = "0.0.0.0";
                                                                    var LOCALHOST_INTERFACES_IPV422222222222222222 = "127.0.0.1";
                                                                    var BROADCAST_ADDRESS22222222222222222 = "255.255.255.255";
                                                                    var DEFAULT_HOP_COUNT222222222222222222 = 255;
                                                                    var BVLC_HEADER_LENGTH222222222222222222 = 4;
                                                                    var BVLC_FWD_HEADER_LENGTH22222222222222222 = 10;
                                                                    var beU22222222222222222 = UnconfirmedServiceChoice22222222222222222;
                                                                    var unconfirmedServiceMap22222222222222222 = {
                                                                      [beU22222222222222222.I_AM]: "iAm",
                                                                      [beU22222222222222222.WHO_IS]: "whoIs",
                                                                      [beU22222222222222222.WHO_HAS]: "whoHas",
                                                                      [beU22222222222222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                                                                      [beU22222222222222222.TIME_SYNCHRONIZATION]: "timeSync",
                                                                      [beU22222222222222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                                                                      [beU22222222222222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                                      [beU22222222222222222.I_HAVE]: "iHave",
                                                                      [beU22222222222222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                                    };
                                                                    var beC22222222222222222 = ConfirmedServiceChoice22222222222222222;
                                                                    var confirmedServiceMap22222222222222222 = {
                                                                      [beC22222222222222222.READ_PROPERTY]: "readProperty",
                                                                      [beC22222222222222222.WRITE_PROPERTY]: "writeProperty",
                                                                      [beC22222222222222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                                                                      [beC22222222222222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                                                                      [beC22222222222222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                                                                      [beC22222222222222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                                                                      [beC22222222222222222.ATOMIC_READ_FILE]: "atomicReadFile",
                                                                      [beC22222222222222222.SUBSCRIBE_COV]: "subscribeCov",
                                                                      [beC22222222222222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                                                                      [beC22222222222222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                                                                      [beC22222222222222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                                                                      [beC22222222222222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                                      [beC22222222222222222.READ_RANGE]: "readRange",
                                                                      [beC22222222222222222.CREATE_OBJECT]: "createObject",
                                                                      [beC22222222222222222.DELETE_OBJECT]: "deleteObject",
                                                                      [beC22222222222222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                                                                      [beC22222222222222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                                                                      [beC22222222222222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                                                                      [beC22222222222222222.GET_EVENT_INFORMATION]: "getEventInformation",
                                                                      [beC22222222222222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                                                                      [beC22222222222222222.ADD_LIST_ELEMENT]: "addListElement",
                                                                      [beC22222222222222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                                                                      [beC22222222222222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                                    };
                                                                    var errorReasonEnums22222222222222222 = {
                                                                      BacnetAbort: RejectReason22222222222222222
                                                                    };
                                                                    var BacnetError22222222222222222 = class extends Error {
                                                                      constructor(message, bacnetErrorClass, bacnetErrorCode) {
                                                                        super(message);
                                                                        this.bacnetErrorClass = bacnetErrorClass;
                                                                        this.bacnetErrorCode = bacnetErrorCode;
                                                                      }
                                                                    };
                                                                    function bacnetErrorToString22222222222222222(err) {
                                                                      var _a;
                                                                      const isError = err instanceof Error || err instanceof BacnetError22222222222222222;
                                                                      if (!isError)
                                                                        return;
                                                                      const message = err.message;
                                                                      const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                                                                      const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                                                                      if (!errorReasonEnums22222222222222222[reasonClass])
                                                                        return;
                                                                      const reasonString = errorReasonEnums22222222222222222[reasonClass][reason];
                                                                      return reasonClass + ": " + reasonString;
                                                                    }
                                                                    var Client22222222222222222 = class extends EventEmitter222222222222222222 {
                                                                      /**
                                                                       *
                                                                       * @param options
                                                                       */
                                                                      constructor(options) {
                                                                        super();
                                                                        options = options || {};
                                                                        this._invokeCounter = 1;
                                                                        this._invokeStore = {};
                                                                        this._lastSequenceNumber = 0;
                                                                        this._segmentStore = [];
                                                                        this._settings = {
                                                                          port: options.port || 47808,
                                                                          interface: options.interface || ALL_INTERFACES22222222222222222,
                                                                          transport: options.transport,
                                                                          broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS22222222222222222,
                                                                          apduTimeout: options.apduTimeout || 3e3
                                                                        };
                                                                        options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                                                                        this._transport = this._settings.transport || new Transport22222222222222222({
                                                                          port: this._settings.port,
                                                                          interface: this._settings.interface,
                                                                          broadcastAddress: this._settings.broadcastAddress,
                                                                          reuseAddr: options.reuseAddr
                                                                        });
                                                                        this._transport.on("message", this._receiveData.bind(this));
                                                                        this._transport.on("error", this._receiveError.bind(this));
                                                                        this._transport.on("listening", () => this.emit("listening"));
                                                                        this._transport.open();
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @returns {number}
                                                                       * @private
                                                                       */
                                                                      _getInvokeId() {
                                                                        const id = this._invokeCounter++;
                                                                        if (id >= 256)
                                                                          this._invokeCounter = 1;
                                                                        return id - 1;
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param id
                                                                       * @param err
                                                                       * @param result
                                                                       * @returns {*}
                                                                       * @private
                                                                       */
                                                                      _invokeCallback(id, err, result) {
                                                                        const callback = this._invokeStore[id];
                                                                        if (callback) {
                                                                          return void callback(err, result);
                                                                        }
                                                                        debug322222222222222222("InvokeId", id, "not found -> drop package");
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param id
                                                                       * @param callback
                                                                       * @private
                                                                       */
                                                                      _addCallback(id, callback) {
                                                                        const timeout = setTimeout(() => {
                                                                          delete this._invokeStore[id];
                                                                          callback(new Error("ERR_TIMEOUT"));
                                                                        }, this._settings.apduTimeout);
                                                                        this._invokeStore[id] = (err, data) => {
                                                                          clearTimeout(timeout);
                                                                          delete this._invokeStore[id];
                                                                          callback(err, data);
                                                                        };
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param isForwarded
                                                                       * @returns {{offset: (number), buffer: *}}
                                                                       * @private
                                                                       */
                                                                      _getBuffer(isForwarded) {
                                                                        return Object.assign(
                                                                          {},
                                                                          {
                                                                            buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                                                            offset: isForwarded ? BVLC_FWD_HEADER_LENGTH22222222222222222 : BVLC_HEADER_LENGTH222222222222222222
                                                                          }
                                                                        );
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param invokeId
                                                                       * @param buffer
                                                                       * @param offset
                                                                       * @param length
                                                                       * @returns {*}
                                                                       * @private
                                                                       */
                                                                      _processError(invokeId, buffer, offset, length) {
                                                                        const result = error_exports22222222222222222.decode(buffer, offset);
                                                                        trace222222222222222222("Received error:", result);
                                                                        if (!result) {
                                                                          return debug322222222222222222("Couldn`t decode Error");
                                                                        }
                                                                        const err = new BacnetError22222222222222222(error_exports22222222222222222.buildMessage(result));
                                                                        err.bacnetErrorClass = result.class;
                                                                        err.bacnetErrorCode = result.code;
                                                                        this._invokeCallback(invokeId, err);
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param invokeId
                                                                       * @param reason
                                                                       * @private
                                                                       */
                                                                      _processAbort(invokeId, reason) {
                                                                        const err = new BacnetError22222222222222222("BacnetAbort - Reason:" + reason);
                                                                        err.bacnetAbortReason = reason;
                                                                        err.bacnetErrorClass = AbortReason22222222222222222;
                                                                        this._invokeCallback(invokeId, err);
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param negative
                                                                       * @param server
                                                                       * @param originalInvokeId
                                                                       * @param sequencenumber
                                                                       * @param actualWindowSize
                                                                       * @private
                                                                       */
                                                                      _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                                                                        const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          receiver,
                                                                          null,
                                                                          DEFAULT_HOP_COUNT222222222222222222,
                                                                          0,
                                                                          0
                                                                        );
                                                                        encodeSegmentAck22222222222222222(
                                                                          buffer,
                                                                          64 | (negative ? 2 : 0) | (server ? 1 : 0),
                                                                          originalInvokeId,
                                                                          sequencenumber,
                                                                          actualWindowSize
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param msg
                                                                       * @param first
                                                                       * @param moreFollows
                                                                       * @param buffer
                                                                       * @param offset
                                                                       * @param length
                                                                       * @private
                                                                       */
                                                                      _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                                                                        if (first) {
                                                                          this._segmentStore = [];
                                                                          msg.type &= ~8;
                                                                          let apduHeaderLen = 3;
                                                                          if ((msg.type & PDU_TYPE_MASK22222222222222222) === 0) {
                                                                            apduHeaderLen = 4;
                                                                          }
                                                                          const apdubuffer = this._getBuffer();
                                                                          apdubuffer.offset = 0;
                                                                          buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                                                                          if ((msg.type & PDU_TYPE_MASK22222222222222222) === 0) {
                                                                            encodeConfirmedServiceRequest22222222222222222(
                                                                              apdubuffer,
                                                                              msg.type,
                                                                              msg.service,
                                                                              msg.maxSegments,
                                                                              msg.maxApdu,
                                                                              msg.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                          } else {
                                                                            encodeComplexAck22222222222222222(
                                                                              apdubuffer,
                                                                              msg.type,
                                                                              msg.service,
                                                                              msg.invokeId,
                                                                              0,
                                                                              0
                                                                            );
                                                                          }
                                                                          this._segmentStore.push(
                                                                            //@ts-ignore
                                                                            apdubuffer.buffer.slice(0, length + apduHeaderLen)
                                                                          );
                                                                        } else {
                                                                          this._segmentStore.push(buffer.slice(offset, offset + length));
                                                                        }
                                                                        if (!moreFollows) {
                                                                          const apduBuffer = Buffer.concat(this._segmentStore);
                                                                          this._segmentStore = [];
                                                                          msg.type &= ~8;
                                                                          this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                                                                        }
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param msg
                                                                       * @param server
                                                                       * @param buffer
                                                                       * @param offset
                                                                       * @param length
                                                                       * @private
                                                                       */
                                                                      _processSegment(msg, server, buffer, offset, length) {
                                                                        let first = false;
                                                                        if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                                                                          first = true;
                                                                        } else {
                                                                          if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                                                            return this._segmentAckResponse(
                                                                              msg.header.address,
                                                                              true,
                                                                              server,
                                                                              msg.invokeId,
                                                                              this._lastSequenceNumber,
                                                                              msg.proposedWindowNumber
                                                                            );
                                                                          }
                                                                        }
                                                                        this._lastSequenceNumber = msg.sequencenumber;
                                                                        const moreFollows = msg.type & 4;
                                                                        if (!moreFollows) {
                                                                          this._lastSequenceNumber = 0;
                                                                        }
                                                                        if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                                                                          this._segmentAckResponse(
                                                                            msg.header.address,
                                                                            false,
                                                                            server,
                                                                            msg.invokeId,
                                                                            msg.sequencenumber,
                                                                            msg.proposedWindowNumber
                                                                          );
                                                                        }
                                                                        this._performDefaultSegmentHandling(
                                                                          msg,
                                                                          first,
                                                                          moreFollows,
                                                                          buffer,
                                                                          offset,
                                                                          length
                                                                        );
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param serviceMap
                                                                       * @param content
                                                                       * @param buffer
                                                                       * @param offset
                                                                       * @param length
                                                                       * @returns {*}
                                                                       * @private
                                                                       */
                                                                      _processServiceRequest(serviceMap, content, buffer, offset, length) {
                                                                        let result;
                                                                        const sender = content.header.sender;
                                                                        if (sender.address === LOCALHOST_INTERFACES_IPV422222222222222222) {
                                                                          debug322222222222222222("Received and skipped localhost service request:", content.service);
                                                                          return;
                                                                        }
                                                                        const name = serviceMap[content.service];
                                                                        if (!name) {
                                                                          debug322222222222222222("Received unsupported service request:", content.service);
                                                                          return;
                                                                        }
                                                                        const id = content.invokeId ? "@" + content.invokeId : "";
                                                                        trace222222222222222222(`Received service request${id}:`, name);
                                                                        const serviceHandler = services_exports22222222222222222[name];
                                                                        if (serviceHandler) {
                                                                          try {
                                                                            content.payload = serviceHandler.decode(buffer, offset, length);
                                                                            trace222222222222222222(`Handled service request${id}:`, name, JSON.stringify(content));
                                                                          } catch (e) {
                                                                            debug322222222222222222("Exception thrown when processing message:", e);
                                                                            debug322222222222222222("Original message was", name + ":", content);
                                                                            return;
                                                                          }
                                                                          if (!content.payload) {
                                                                            return debug322222222222222222("Received invalid", name, "message");
                                                                          }
                                                                        } else {
                                                                          debug322222222222222222("No serviceHandler defined for:", name);
                                                                        }
                                                                        if (this.listenerCount(name)) {
                                                                          trace222222222222222222("listener count by name emits " + name + " with content");
                                                                          this.emit(name, content);
                                                                        } else {
                                                                          if (this.listenerCount("unhandledEvent")) {
                                                                            trace222222222222222222("unhandled event emiting with content");
                                                                            this.emit("unhandledEvent", content);
                                                                          } else {
                                                                            trace222222222222222222(
                                                                              "no unhandled event handler with header: " + JSON.stringify(content.header)
                                                                            );
                                                                            if (content.header.expectingReply) {
                                                                              debug322222222222222222("Replying with error for unhandled service:", name);
                                                                              content.header.sender.forwardedFrom = null;
                                                                              this.errorResponse(
                                                                                content.header.sender,
                                                                                content.service,
                                                                                content.invokeId,
                                                                                5,
                                                                                67
                                                                                /* REJECT_UNRECOGNIZED_SERVICE */
                                                                              );
                                                                            }
                                                                          }
                                                                        }
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param buffer
                                                                       * @param offset
                                                                       * @param length
                                                                       * @param header
                                                                       * @private
                                                                       */
                                                                      _handlePdu(buffer, offset, length, header) {
                                                                        let msg;
                                                                        trace222222222222222222("handlePdu Header: ", header);
                                                                        switch (header.apduType & PDU_TYPE_MASK22222222222222222) {
                                                                          case 16:
                                                                            msg = decodeUnconfirmedServiceRequest22222222222222222(buffer, offset);
                                                                            msg.header = header;
                                                                            msg.header.confirmedService = false;
                                                                            this._processServiceRequest(
                                                                              unconfirmedServiceMap22222222222222222,
                                                                              msg,
                                                                              buffer,
                                                                              offset + msg.len,
                                                                              length - msg.len
                                                                            );
                                                                            break;
                                                                          case 32:
                                                                            msg = decodeSimpleAck22222222222222222(buffer, offset);
                                                                            offset += msg.len;
                                                                            length -= msg.len;
                                                                            this._invokeCallback(msg.invokeId, null, {
                                                                              msg,
                                                                              buffer,
                                                                              offset: offset + msg.len,
                                                                              length: length - msg.len
                                                                            });
                                                                            break;
                                                                          case 48:
                                                                            msg = decodeComplexAck22222222222222222(buffer, offset);
                                                                            msg.header = header;
                                                                            if ((header.apduType & 8) === 0) {
                                                                              this._invokeCallback(msg.invokeId, null, {
                                                                                msg,
                                                                                buffer,
                                                                                offset: offset + msg.len,
                                                                                length: length - msg.len
                                                                              });
                                                                            } else {
                                                                              this._processSegment(
                                                                                msg,
                                                                                true,
                                                                                buffer,
                                                                                offset + msg.len,
                                                                                length - msg.len
                                                                              );
                                                                            }
                                                                            break;
                                                                          case 64:
                                                                            msg = decodeSegmentAck22222222222222222(buffer, offset);
                                                                            msg.header = header;
                                                                            this._processSegment(
                                                                              msg,
                                                                              true,
                                                                              buffer,
                                                                              offset + msg.len,
                                                                              length - msg.len
                                                                            );
                                                                            break;
                                                                          case 80:
                                                                            msg = decodeError22222222222222222(buffer, offset);
                                                                            this._processError(
                                                                              msg.invokeId,
                                                                              buffer,
                                                                              offset + msg.len,
                                                                              length - msg.len
                                                                            );
                                                                            break;
                                                                          case 96:
                                                                          case 112:
                                                                            msg = decodeAbort22222222222222222(buffer, offset);
                                                                            this._processAbort(msg.invokeId, msg.reason);
                                                                            break;
                                                                          case 0:
                                                                            msg = decodeConfirmedServiceRequest22222222222222222(buffer, offset);
                                                                            msg.header = header;
                                                                            msg.header.confirmedService = true;
                                                                            if ((header.apduType & 8) === 0) {
                                                                              this._processServiceRequest(
                                                                                confirmedServiceMap22222222222222222,
                                                                                msg,
                                                                                buffer,
                                                                                offset + msg.len,
                                                                                length - msg.len
                                                                              );
                                                                            } else {
                                                                              this._processSegment(
                                                                                msg,
                                                                                true,
                                                                                buffer,
                                                                                offset + msg.len,
                                                                                length - msg.len
                                                                              );
                                                                            }
                                                                            break;
                                                                          default:
                                                                            debug322222222222222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                                                            break;
                                                                        }
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param buffer
                                                                       * @param offset
                                                                       * @param msgLength
                                                                       * @param header
                                                                       * @returns {*}
                                                                       * @private
                                                                       */
                                                                      _handleNpdu(buffer, offset, msgLength, header) {
                                                                        if (msgLength <= 0) {
                                                                          return trace222222222222222222("No NPDU data -> Drop package");
                                                                        }
                                                                        const result = decode3122222222222222222(buffer, offset);
                                                                        if (!result) {
                                                                          return trace222222222222222222("Received invalid NPDU header -> Drop package");
                                                                        }
                                                                        if (result.funct & 128) {
                                                                          return trace222222222222222222("Received network layer message -> Drop package");
                                                                        }
                                                                        offset += result.len;
                                                                        msgLength -= result.len;
                                                                        if (msgLength <= 0) {
                                                                          return trace222222222222222222("No APDU data -> Drop package");
                                                                        }
                                                                        header.apduType = getDecodedType22222222222222222(buffer, offset);
                                                                        header.expectingReply = !!(result.funct & 4);
                                                                        this._handlePdu(buffer, offset, msgLength, header);
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param buffer
                                                                       * @param remoteAddress
                                                                       * @returns {*}
                                                                       * @private
                                                                       */
                                                                      _receiveData(buffer, remoteAddress) {
                                                                        if (buffer.length < BVLC_HEADER_LENGTH32222222222222222) {
                                                                          return trace222222222222222222("Received invalid data -> Drop package");
                                                                        }
                                                                        const result = decode3222222222222222222(buffer, 0);
                                                                        if (!result) {
                                                                          return trace222222222222222222("Received invalid BVLC header -> Drop package");
                                                                        }
                                                                        let header = {
                                                                          // Which function the packet came in on, so later code can distinguish
                                                                          // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                                                                          func: result.func,
                                                                          sender: {
                                                                            // Address of the host we are directly connected to. String, IP:port.
                                                                            address: remoteAddress,
                                                                            // If the host is a BBMD passing messages along to another node, this
                                                                            // is the address of the distant BACnet node.  String, IP:port.
                                                                            // Typically we won't have network connectivity to this address, but
                                                                            // we have to include it in replies so the host we are connect to knows
                                                                            // where to forward the messages.
                                                                            forwardedFrom: null
                                                                          }
                                                                        };
                                                                        switch (result.func) {
                                                                          case 10:
                                                                          case 11:
                                                                            this._handleNpdu(
                                                                              buffer,
                                                                              result.len,
                                                                              buffer.length - result.len,
                                                                              header
                                                                            );
                                                                            break;
                                                                          case 4:
                                                                            header.sender.forwardedFrom = result.originatingIP;
                                                                            this._handleNpdu(
                                                                              buffer,
                                                                              result.len,
                                                                              buffer.length - result.len,
                                                                              header
                                                                            );
                                                                            break;
                                                                          case 5:
                                                                            let decodeResult = register_foreign_device_exports22222222222222222.decode(
                                                                              buffer,
                                                                              result.len,
                                                                              buffer.length - result.len
                                                                            );
                                                                            if (!decodeResult) {
                                                                              return trace222222222222222222("Received invalid registerForeignDevice message");
                                                                            }
                                                                            this.emit("registerForeignDevice", {
                                                                              header,
                                                                              payload: decodeResult
                                                                            });
                                                                            break;
                                                                          case 9:
                                                                            this._handleNpdu(
                                                                              buffer,
                                                                              result.len,
                                                                              buffer.length - result.len,
                                                                              header
                                                                            );
                                                                            break;
                                                                          default:
                                                                            debug322222222222222222(
                                                                              "Received unknown BVLC function " + result.func + " -> Drop package"
                                                                            );
                                                                            break;
                                                                        }
                                                                      }
                                                                      /**
                                                                       * @event bacnet.error
                                                                       * @param {error} err - The error object thrown by the underlying transport layer.
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * client.on('error', (err) => {
                                                                       *   console.log('Error occurred: ', err);
                                                                       *   client.close();
                                                                       * });
                                                                       */
                                                                      _receiveError(err) {
                                                                        this.emit("error", err);
                                                                      }
                                                                      /**
                                                                       * The whoIs command discovers all BACNET devices in a network.
                                                                       * @function bacnet.whoIs
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {object=} options
                                                                       * @param {number=} options.lowLimit - Minimal device instance number to search for.
                                                                       * @param {number=} options.highLimit - Maximal device instance number to search for.
                                                                       * @fires bacnet.iAm
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * client.whoIs();
                                                                       */
                                                                      whoIs(receiver, options) {
                                                                        if (!options) {
                                                                          if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                                                            options = receiver;
                                                                            receiver = void 0;
                                                                          }
                                                                        }
                                                                        options = options || {};
                                                                        const settings = {
                                                                          lowLimit: options.lowLimit,
                                                                          highLimit: options.highLimit
                                                                        };
                                                                        const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          //@ts-ignore
                                                                          receiver,
                                                                          null,
                                                                          DEFAULT_HOP_COUNT222222222222222222,
                                                                          0,
                                                                          0
                                                                        );
                                                                        encodeUnconfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          16,
                                                                          8
                                                                          /* WHO_IS */
                                                                        );
                                                                        who_is_exports22222222222222222.encode(buffer, settings.lowLimit, settings.highLimit);
                                                                        this.sendBvlc(receiver, buffer);
                                                                      }
                                                                      /**
                                                                       * The timeSync command sets the time of a target device.
                                                                       * @function bacnet.timeSync
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {date} dateTime - The date and time to set on the target device.
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * client.timeSync('192.168.1.43', new Date());
                                                                       */
                                                                      timeSync(receiver, dateTime) {
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(buffer, 0, receiver);
                                                                        encodeUnconfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          16,
                                                                          6
                                                                          /* TIME_SYNCHRONIZATION */
                                                                        );
                                                                        time_sync_exports22222222222222222.encode(buffer, dateTime);
                                                                        this.sendBvlc(receiver, buffer);
                                                                      }
                                                                      /**
                                                                       * The timeSyncUTC command sets the UTC time of a target device.
                                                                       * @function bacnet.timeSyncUTC
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {date} dateTime - The date and time to set on the target device.
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * client.timeSyncUTC('192.168.1.43', new Date());
                                                                       */
                                                                      timeSyncUTC(receiver, dateTime) {
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(buffer, 0, receiver);
                                                                        encodeUnconfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          16,
                                                                          9
                                                                          /* UTC_TIME_SYNCHRONIZATION */
                                                                        );
                                                                        time_sync_exports22222222222222222.encode(buffer, dateTime);
                                                                        this.sendBvlc(receiver, buffer);
                                                                      }
                                                                      /**
                                                                       * The readProperty command reads a single property of an object from a device.
                                                                       * @function bacnet.readProperty
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {object} objectId - The BACNET object ID to read.
                                                                       * @param {number} objectId.type - The BACNET object type to read.
                                                                       * @param {number} objectId.instance - The BACNET object instance to read.
                                                                       * @param {number} propertyId - The BACNET property id in the specified object to read.
                                                                       * @param {object=} options
                                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                       * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                                                                       *   console.log('value: ', value);
                                                                       * });
                                                                       */
                                                                      readProperty(receiver, objectId, propertyId, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId(),
                                                                          arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL22222222222222222
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          //@ts-ignore
                                                                          receiver,
                                                                          null,
                                                                          DEFAULT_HOP_COUNT222222222222222222,
                                                                          0,
                                                                          0
                                                                        );
                                                                        const type = 0 | //@ts-ignore
                                                                        (settings.maxSegments !== 0 ? 2 : 0);
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          type,
                                                                          12,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        read_property_exports22222222222222222.encode(
                                                                          buffer,
                                                                          objectId.type,
                                                                          objectId.instance,
                                                                          propertyId,
                                                                          settings.arrayIndex
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          const result = read_property_exports22222222222222222.decodeAcknowledge(
                                                                            data.buffer,
                                                                            data.offset,
                                                                            data.length
                                                                          );
                                                                          if (!result) {
                                                                            return void next(new Error("INVALID_DECODING"));
                                                                          }
                                                                          next(null, result);
                                                                        });
                                                                      }
                                                                      /**
                                                                       * The writeProperty command writes a single property of an object to a device.
                                                                       * @function bacnet.writeProperty
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {object} objectId - The BACNET object ID to write.
                                                                       * @param {number} objectId.type - The BACNET object type to write.
                                                                       * @param {number} objectId.instance - The BACNET object instance to write.
                                                                       * @param {number} propertyId - The BACNET property id in the specified object to write.
                                                                       * @param {object[]} values - A list of values to be written to the specified property.
                                                                       * @param {ApplicationTag} values.type - The data-type of the value to be written.
                                                                       * @param {number} values.value - The actual value to be written.
                                                                       * @param {object=} options
                                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                       * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                                       * @param {number=} options.priority - The priority of the value to be written.
                                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                                                                       *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                                                                       * ], (err, value) => {
                                                                       *   console.log('value: ', value);
                                                                       * });
                                                                       */
                                                                      writeProperty(receiver, objectId, propertyId, values, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId(),
                                                                          arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL22222222222222222,
                                                                          priority: options.priority || ASN1_NO_PRIORITY22222222222222222
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          //@ts-ignore Todo somehow types do not match at all
                                                                          receiver,
                                                                          null,
                                                                          DEFAULT_HOP_COUNT222222222222222222,
                                                                          0,
                                                                          0
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          15,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        write_property_exports22222222222222222.encode(
                                                                          buffer,
                                                                          objectId.type,
                                                                          objectId.instance,
                                                                          propertyId,
                                                                          settings.arrayIndex,
                                                                          settings.priority,
                                                                          values
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          next(err);
                                                                        });
                                                                      }
                                                                      /**
                                                                       * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                                                                       * @function bacnet.readPropertyMultiple
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {object[]} propertiesArray - List of object and property specifications to be read.
                                                                       * @param {object} propertiesArray.objectId - Specifies which object to read.
                                                                       * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                                                                       * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                                                                       * @param {object[]} propertiesArray.properties - List of properties to be read.
                                                                       * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                                                                       * @param {object=} options
                                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * const requestArray = [
                                                                       *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                                                                       * ];
                                                                       * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                                                                       *   console.log('value: ', value);
                                                                       * });
                                                                       */
                                                                      readPropertyMultiple(receiver, propertiesArray, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                                                                        const buffer = this._getBuffer(!!isForwarded);
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          //@ts-ignore Todo somehow types do not match at all
                                                                          receiver,
                                                                          null,
                                                                          DEFAULT_HOP_COUNT222222222222222222,
                                                                          0,
                                                                          0
                                                                        );
                                                                        const type = 0 | //@ts-ignore
                                                                        (settings.maxSegments !== 0 ? 2 : 0);
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          type,
                                                                          14,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        read_property_multiple_exports22222222222222222.encode(buffer, propertiesArray);
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return next(err);
                                                                          }
                                                                          const result = read_property_multiple_exports22222222222222222.decodeAcknowledge(
                                                                            data.buffer,
                                                                            data.offset,
                                                                            data.length
                                                                          );
                                                                          if (!result) {
                                                                            return next(new Error("INVALID_DECODING"));
                                                                          }
                                                                          next(null, result);
                                                                        });
                                                                      }
                                                                      /**
                                                                       * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                                                                       * @function bacnet.writePropertyMultiple
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {object[]} values - List of object and property specifications to be written.
                                                                       * @param {object} values.objectId - Specifies which object to read.
                                                                       * @param {number} values.objectId.type - The BACNET object type to read.
                                                                       * @param {number} values.objectId.instance - The BACNET object instance to read.
                                                                       * @param {object[]} values.values - List of properties to be written.
                                                                       * @param {object} values.values.property - Property specifications to be written.
                                                                       * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                                                                       * @param {number} values.values.property.index - The array index of the property to be written.
                                                                       * @param {object[]} values.values.value - A list of values to be written to the specified property.
                                                                       * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                                                                       * @param {object} values.values.value.value - The actual value to be written.
                                                                       * @param {number} values.values.priority - The priority to be used for writing to the property.
                                                                       * @param {object=} options
                                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * const values = [
                                                                       *   {objectId: {type: 8, instance: 44301}, values: [
                                                                       *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                                                                       *   ]}
                                                                       * ];
                                                                       * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                                                                       *   console.log('value: ', value);
                                                                       * });
                                                                       */
                                                                      writePropertyMultiple(receiver, values, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          //@ts-ignore
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          16,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId
                                                                        );
                                                                        write_property_multiple_exports22222222222222222.encodeObject(buffer, values);
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          next(err);
                                                                        });
                                                                      }
                                                                      /**
                                                                       * The confirmedCOVNotification command is used to push notifications to other
                                                                       * systems that have registered with us via a subscribeCOV message.
                                                                       * @function bacnet.confirmedCOVNotification
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                                                                       * @param {number} monitoredObject.type - Object type.
                                                                       * @param {number} monitoredObject.instance - Object instance.
                                                                       * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                                                                       * @param {number} initiatingDeviceId - Our BACnet device ID.
                                                                       * @param {number} lifetime - Number of seconds left until the subscription expires.
                                                                       * @param {array} values - values for the monitored object.  See example.
                                                                       * @param {object=} options
                                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * const settings = {deviceId: 123}; // our BACnet device
                                                                       *
                                                                       * // Items saved from subscribeCOV message
                                                                       * const monitoredObject = {type: 1, instance: 1};
                                                                       * const subscriberProcessId = 123;
                                                                       *
                                                                       * client.confirmedCOVNotification(
                                                                       *   '192.168.1.43',
                                                                       *   monitoredObject,
                                                                       *   subscriberProcessId,
                                                                       *   settings.deviceId,
                                                                       *   30, // should be lifetime of subscription really
                                                                       *   [
                                                                       *     {
                                                                       *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                                                                       *       value: [
                                                                       *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                                                                       *       ],
                                                                       *     },
                                                                       *   ],
                                                                       *   (err) => {
                                                                       *     console.log('error: ', err);
                                                                       *   }
                                                                       * );
                                                                       */
                                                                      confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer();
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          1,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        cov_notify_exports22222222222222222.encode(
                                                                          buffer,
                                                                          subscribeId,
                                                                          initiatingDeviceId,
                                                                          monitoredObject,
                                                                          lifetime,
                                                                          values
                                                                        );
                                                                        encode3222222222222222222(
                                                                          buffer.buffer,
                                                                          10,
                                                                          buffer.offset
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          next();
                                                                        });
                                                                      }
                                                                      /**
                                                                       * The deviceCommunicationControl command enables or disables network communication of the target device.
                                                                       * @function bacnet.deviceCommunicationControl
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                                                                       * @param {EnableDisable} enableDisable - The network communication state to set.
                                                                       * @param {object=} options
                                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                       * @param {string=} options.password - The optional password used to set the network communication state.
                                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                                                                       *   console.log('error: ', err);
                                                                       * });
                                                                       */
                                                                      deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId(),
                                                                          password: options.password
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          17,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        device_communication_control_exports22222222222222222.encode(
                                                                          buffer,
                                                                          timeDuration,
                                                                          enableDisable,
                                                                          settings.password
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          next(err);
                                                                        });
                                                                      }
                                                                      /**
                                                                       * The reinitializeDevice command initiates a restart of the target device.
                                                                       * @function bacnet.reinitializeDevice
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {ReinitializedState} state - The type of restart to be initiated.
                                                                       * @param {object=} options
                                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                       * @param {string=} options.password - The optional password used to restart the device.
                                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                                                                       *   console.log('value: ', value);
                                                                       * });
                                                                       */
                                                                      reinitializeDevice(receiver, state, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId(),
                                                                          password: options.password
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          20,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        reinitialize_device_exports22222222222222222.encode(buffer, state, settings.password);
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          next(err);
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param objectId
                                                                       * @param position
                                                                       * @param fileBuffer
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      writeFile(receiver, objectId, position, fileBuffer, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          7,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        atomic_write_file_exports22222222222222222.encode(
                                                                          buffer,
                                                                          false,
                                                                          objectId,
                                                                          position,
                                                                          fileBuffer
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          const result = atomic_write_file_exports22222222222222222.decodeAcknowledge(
                                                                            data.buffer,
                                                                            data.offset,
                                                                            data.length
                                                                          );
                                                                          if (!result) {
                                                                            return void next(new Error("INVALID_DECODING"));
                                                                          }
                                                                          next(null, result);
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param objectId
                                                                       * @param position
                                                                       * @param count
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      readFile(receiver, objectId, position, count, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          6,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        atomic_read_file_exports22222222222222222.encode(buffer, true, objectId, position, count);
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          const result = atomic_read_file_exports22222222222222222.decodeAcknowledge(
                                                                            data.buffer,
                                                                            data.offset,
                                                                            data.length
                                                                          );
                                                                          if (!result) {
                                                                            return void next(new Error("INVALID_DECODING"));
                                                                          }
                                                                          next(null, result);
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param objectId
                                                                       * @param idxBegin
                                                                       * @param quantity
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      readRange(receiver, objectId, idxBegin, quantity, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          26,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        read_range_exports22222222222222222.encode(
                                                                          buffer,
                                                                          objectId,
                                                                          131,
                                                                          ASN1_ARRAY_ALL22222222222222222,
                                                                          0,
                                                                          idxBegin,
                                                                          /* @__PURE__ */ new Date(),
                                                                          quantity
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          const result = read_range_exports22222222222222222.decodeAcknowledge(
                                                                            data.buffer,
                                                                            data.offset,
                                                                            data.length
                                                                          );
                                                                          if (!result) {
                                                                            return void next(new Error("INVALID_DECODING"));
                                                                          }
                                                                          next(null, result);
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param objectId
                                                                       * @param subscribeId
                                                                       * @param cancel
                                                                       * @param issueConfirmedNotifications
                                                                       * @param lifetime
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                                                                        const next = nextFunc || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          // @ts-ignore TODO types not matching with documentation and code
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          5,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        subscribe_cov_exports22222222222222222.encode(
                                                                          buffer,
                                                                          subscribeId,
                                                                          objectId,
                                                                          cancel,
                                                                          issueConfirmedNotifications,
                                                                          lifetime
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          next();
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param objectId
                                                                       * @param monitoredProperty
                                                                       * @param subscribeId
                                                                       * @param cancel
                                                                       * @param issueConfirmedNotifications
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          28,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        subscribe_property_exports22222222222222222.encode(
                                                                          buffer,
                                                                          subscribeId,
                                                                          objectId,
                                                                          cancel,
                                                                          issueConfirmedNotifications,
                                                                          0,
                                                                          monitoredProperty,
                                                                          false,
                                                                          15
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          next();
                                                                        });
                                                                      }
                                                                      /**
                                                                       * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                                                                       * @function bacnet.unconfirmedCOVNotification
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                                                                       * @param {number} initiatingDeviceId - The id of this device.
                                                                       * @param {object} monitoredObjectId - Specifies about which object the notification is.
                                                                       * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                                                                       * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                                                                       * @param {number} timeRemaining - How long the subscription is still active in seconds.
                                                                       * @param {object[]} values - List of properties with updated values.
                                                                       * @param {object} values.property - Property specifications.
                                                                       * @param {number} values.property.id - The updated BACNET property id.
                                                                       * @param {number} values.property.index - The array index of the updated property.
                                                                       * @param {object[]} values.value - A list of updated values.
                                                                       * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                                                                       * @param {object} values.value.value - The actual updated value.
                                                                       * @param {number} values.priority - The priority of the updated property.
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * client.unconfirmedCOVNotification(
                                                                       *            '127.0.0.1',
                                                                       *            3,
                                                                       *            433,
                                                                       *            {type: 2, instance: 122},
                                                                       *            120,
                                                                       *            [
                                                                       *              {
                                                                       *                property: {id: 85},
                                                                       *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                                                                       *              },
                                                                       *              {
                                                                       *                property: {id: 111},
                                                                       *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                                                                       *              }
                                                                       *            ]);
                                                                       */
                                                                      unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                                                                        const buffer = this._getBuffer();
                                                                        encode3122222222222222222(buffer, 0, receiver);
                                                                        encodeUnconfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          16,
                                                                          2
                                                                          /* UNCONFIRMED_COV_NOTIFICATION */
                                                                        );
                                                                        cov_notify_exports22222222222222222.encode(
                                                                          buffer,
                                                                          subscriberProcessId,
                                                                          initiatingDeviceId,
                                                                          monitoredObjectId,
                                                                          timeRemaining,
                                                                          values
                                                                        );
                                                                        encode3222222222222222222(
                                                                          buffer.buffer,
                                                                          10,
                                                                          buffer.offset
                                                                        );
                                                                        this._transport.send(buffer.buffer, buffer.offset, receiver);
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param objectId
                                                                       * @param values
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      createObject(receiver, objectId, values, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          10,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        create_object_exports22222222222222222.encode(buffer, objectId, values);
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          next();
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param objectId
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      deleteObject(receiver, objectId, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          11,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        delete_object_exports22222222222222222.encode(buffer, objectId);
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          next();
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param objectId
                                                                       * @param reference
                                                                       * @param values
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      removeListElement(receiver, objectId, reference, values, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          9,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        add_list_element_exports22222222222222222.encode(
                                                                          buffer,
                                                                          objectId,
                                                                          reference.id,
                                                                          reference.index,
                                                                          values
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          next();
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param objectId
                                                                       * @param reference
                                                                       * @param values
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      addListElement(receiver, objectId, reference, values, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          8,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        add_list_element_exports22222222222222222.encode(
                                                                          buffer,
                                                                          objectId,
                                                                          reference.id,
                                                                          reference.index,
                                                                          values
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          next();
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      getAlarmSummary(receiver, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          3,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          const result = alarm_summary_exports22222222222222222.decode(
                                                                            data.buffer,
                                                                            data.offset,
                                                                            data.length
                                                                          );
                                                                          if (!result) {
                                                                            return void next(new Error("INVALID_DECODING"));
                                                                          }
                                                                          next(null, result);
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param objectId
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      getEventInformation(receiver, objectId, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          29,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        encodeContextObjectId22222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          const result = event_information_exports22222222222222222.decode(
                                                                            data.buffer,
                                                                            data.offset,
                                                                            data.length
                                                                          );
                                                                          if (!result) {
                                                                            return void next(new Error("INVALID_DECODING"));
                                                                          }
                                                                          next(null, result);
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param objectId
                                                                       * @param eventState
                                                                       * @param ackText
                                                                       * @param evTimeStamp
                                                                       * @param ackTimeStamp
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          0,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        alarm_acknowledge_exports22222222222222222.encode(
                                                                          buffer,
                                                                          57,
                                                                          objectId,
                                                                          eventState,
                                                                          ackText,
                                                                          evTimeStamp,
                                                                          ackTimeStamp
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          next();
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param vendorId
                                                                       * @param serviceNumber
                                                                       * @param data
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          18,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        private_transfer_exports22222222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data2) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          next();
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param vendorId
                                                                       * @param serviceNumber
                                                                       * @param data
                                                                       */
                                                                      unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(buffer, 0, receiver);
                                                                        encodeUnconfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          16,
                                                                          4
                                                                          /* UNCONFIRMED_PRIVATE_TRANSFER */
                                                                        );
                                                                        private_transfer_exports22222222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                                        this.sendBvlc(receiver, buffer);
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param acknowledgmentFilter
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          4,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        get_enrollment_summary_exports22222222222222222.encode(
                                                                          buffer,
                                                                          acknowledgmentFilter,
                                                                          options.enrollmentFilter,
                                                                          options.eventStateFilter,
                                                                          options.eventTypeFilter,
                                                                          options.priorityFilter,
                                                                          options.notificationClassFilter
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          const result = get_enrollment_summary_exports22222222222222222.decodeAcknowledge(
                                                                            data.buffer,
                                                                            data.offset,
                                                                            data.length
                                                                          );
                                                                          if (!result) {
                                                                            return void next(new Error("INVALID_DECODING"));
                                                                          }
                                                                          next(null, result);
                                                                        });
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param eventNotification
                                                                       */
                                                                      unconfirmedEventNotification(receiver, eventNotification) {
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(buffer, 0, receiver);
                                                                        encodeUnconfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          16,
                                                                          3
                                                                          /* UNCONFIRMED_EVENT_NOTIFICATION */
                                                                        );
                                                                        event_notify_data_exports22222222222222222.encode(buffer, eventNotification);
                                                                        this.sendBvlc(receiver, buffer);
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param eventNotification
                                                                       * @param options
                                                                       * @param next
                                                                       */
                                                                      confirmedEventNotification(receiver, eventNotification, options, next) {
                                                                        next = next || options;
                                                                        const settings = {
                                                                          maxSegments: options.maxSegments || 112,
                                                                          maxApdu: options.maxApdu || 5,
                                                                          invokeId: options.invokeId || this._getInvokeId()
                                                                        };
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(
                                                                          buffer,
                                                                          0 | 4,
                                                                          receiver
                                                                        );
                                                                        encodeConfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          0,
                                                                          2,
                                                                          settings.maxSegments,
                                                                          settings.maxApdu,
                                                                          settings.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                        event_notify_data_exports22222222222222222.encode(buffer, eventNotification);
                                                                        this.sendBvlc(receiver, buffer);
                                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                                          if (err) {
                                                                            return void next(err);
                                                                          }
                                                                          next();
                                                                        });
                                                                      }
                                                                      /**
                                                                       * The readPropertyResponse call sends a response with information about one of our properties.
                                                                       * @function bacnet.readPropertyResponse
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {number} invokeId - ID of the original readProperty request.
                                                                       * @param {object} objectId - objectId from the original request,
                                                                       * @param {object} property - property being read, taken from the original request.
                                                                       * @param {object=} options varying behaviour for special circumstances
                                                                       * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                                                                       */
                                                                      readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(buffer, 0, receiver);
                                                                        encodeComplexAck22222222222222222(
                                                                          buffer,
                                                                          48,
                                                                          12,
                                                                          invokeId
                                                                        );
                                                                        read_property_exports22222222222222222.encodeAcknowledge(
                                                                          buffer,
                                                                          objectId,
                                                                          property.id,
                                                                          property.index,
                                                                          value
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                      }
                                                                      readPropertyMultipleResponse(receiver, invokeId, values) {
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(buffer, 0, receiver);
                                                                        encodeComplexAck22222222222222222(
                                                                          buffer,
                                                                          48,
                                                                          14,
                                                                          invokeId
                                                                        );
                                                                        read_property_multiple_exports22222222222222222.encodeAcknowledge(buffer, values);
                                                                        this.sendBvlc(receiver, buffer);
                                                                      }
                                                                      /**
                                                                       * The iAmResponse command is sent as a reply to a whoIs request.
                                                                       * @function bacnet.iAmResponse
                                                                       * @param {object} receiver - address to send packet to, null for local broadcast.
                                                                       * @param {number} deviceId - Our device ID.
                                                                       * @param {number} segmentation - an enum.Segmentation value.
                                                                       * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                                                                       */
                                                                      iAmResponse(receiver, deviceId, segmentation, vendorId) {
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(buffer, 0, receiver);
                                                                        encodeUnconfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          16,
                                                                          0
                                                                          /* I_AM */
                                                                        );
                                                                        i_am_exports22222222222222222.encode(
                                                                          buffer,
                                                                          deviceId,
                                                                          this._transport.getMaxPayload(),
                                                                          segmentation,
                                                                          vendorId
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param deviceId
                                                                       * @param objectId
                                                                       * @param objectName
                                                                       */
                                                                      iHaveResponse(receiver, deviceId, objectId, objectName) {
                                                                        const buffer = this._getBuffer(
                                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                        );
                                                                        encode3122222222222222222(buffer, 0, receiver);
                                                                        encodeUnconfirmedServiceRequest22222222222222222(
                                                                          buffer,
                                                                          16,
                                                                          1
                                                                          /* I_HAVE */
                                                                        );
                                                                        i_have_exports22222222222222222.encode(buffer, deviceId, objectId, objectName);
                                                                        this.sendBvlc(receiver, buffer);
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param service
                                                                       * @param invokeId
                                                                       */
                                                                      simpleAckResponse(receiver, service, invokeId) {
                                                                        if (typeof receiver === "string")
                                                                          return;
                                                                        const buffer = this._getBuffer(!!receiver.forwardedFrom);
                                                                        encode3122222222222222222(buffer, 0, receiver);
                                                                        encodeSimpleAck22222222222222222(
                                                                          buffer,
                                                                          32,
                                                                          service,
                                                                          invokeId
                                                                        );
                                                                        this.sendBvlc(receiver, buffer);
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param service
                                                                       * @param invokeId
                                                                       * @param errorClass
                                                                       * @param errorCode
                                                                       */
                                                                      errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                                                                        trace222222222222222222(
                                                                          `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                                                            service
                                                                          )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                                                                        );
                                                                        trace222222222222222222(
                                                                          `error message ${error_exports22222222222222222.buildMessage({
                                                                            class: errorClass,
                                                                            code: errorCode
                                                                          })}`
                                                                        );
                                                                        const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                                                                        if (typeof receiver === "string")
                                                                          throw new Error("receiver must be object");
                                                                        const buffer = this._getBuffer(hasSource);
                                                                        encode3122222222222222222(buffer, 0, receiver);
                                                                        encodeError22222222222222222(buffer, 80, service, invokeId);
                                                                        error_exports22222222222222222.encode(buffer, errorClass, errorCode);
                                                                        this.sendBvlc(receiver, buffer);
                                                                      }
                                                                      /**
                                                                       *
                                                                       * @param receiver
                                                                       * @param buffer
                                                                       */
                                                                      sendBvlc(receiver, buffer) {
                                                                        if (typeof receiver === "string") {
                                                                          receiver = {
                                                                            address: receiver
                                                                          };
                                                                        }
                                                                        if (receiver && receiver.forwardedFrom) {
                                                                          encode3222222222222222222(
                                                                            buffer.buffer,
                                                                            4,
                                                                            buffer.offset,
                                                                            receiver.forwardedFrom
                                                                          );
                                                                        } else if (receiver && receiver.address) {
                                                                          encode3222222222222222222(
                                                                            buffer.buffer,
                                                                            10,
                                                                            buffer.offset
                                                                          );
                                                                        } else {
                                                                          encode3222222222222222222(
                                                                            buffer.buffer,
                                                                            11,
                                                                            buffer.offset
                                                                          );
                                                                        }
                                                                        this._transport.send(
                                                                          buffer.buffer,
                                                                          buffer.offset,
                                                                          receiver && receiver.address || null
                                                                        );
                                                                      }
                                                                      /**
                                                                       * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                                                                       * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                                                                       * @function bacnet.resultResponse
                                                                       * @param {string} receiver - IP address of the target device.
                                                                       * @param {number} resultCode - Single value from BvlcResultFormat enum.
                                                                       */
                                                                      resultResponse(receiver, resultCode) {
                                                                        const buffer = this._getBuffer();
                                                                        encodeResult22222222222222222(buffer, resultCode);
                                                                        encode3222222222222222222(
                                                                          buffer.buffer,
                                                                          0,
                                                                          buffer.offset
                                                                        );
                                                                        this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                                                                      }
                                                                      /**
                                                                       * Unloads the current bacnet instance and closes the underlying UDP socket.
                                                                       * @function bacnet.close
                                                                       * @example
                                                                       * const bacnet = require('node-bacnet');
                                                                       * const client = new bacnet();
                                                                       *
                                                                       * client.close();
                                                                       */
                                                                      close() {
                                                                        this._transport.close();
                                                                      }
                                                                      /**
                                                                       * Helper function to take an array of enums and produce a bitstring suitable
                                                                       * for inclusion as a property.
                                                                       *
                                                                       * @example
                                                                       * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                                                                       *   {value: bacnet.createBitstring([
                                                                       *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                                                                       *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                                                                       *   ]),
                                                                       *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                                                                       * ],
                                                                       */
                                                                      static createBitstring(items) {
                                                                        let offset = 0;
                                                                        let bytes = [];
                                                                        let bitsUsed = 0;
                                                                        while (items.length) {
                                                                          let value = 0;
                                                                          items = items.filter((i) => {
                                                                            if (i >= offset + 8) {
                                                                              return true;
                                                                            }
                                                                            value |= 1 << i - offset;
                                                                            bitsUsed = Math.max(bitsUsed, i);
                                                                            return false;
                                                                          });
                                                                          bytes.push(value);
                                                                          offset += 8;
                                                                        }
                                                                        bitsUsed++;
                                                                        return {
                                                                          value: bytes,
                                                                          bitsUsed
                                                                        };
                                                                      }
                                                                    };
                                                                    var import_underscore22222222222222222 = __toESM22222222222222222(require("underscore"));
                                                                    var import_process22222222222222222 = __toESM22222222222222222(require("process"));
                                                                    var import__22222222222222222 = __toESM22222222222222222(require_dist22222222222222222());
                                                                    var PropertyIdentifierToEnumMap22222222222222222 = {};
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.OBJECT_TYPE] = import__22222222222222222.enums.ObjectType;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__22222222222222222.enums.Segmentation;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.EVENT_STATE] = import__22222222222222222.enums.EventState;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.UNITS] = import__22222222222222222.enums.EngineeringUnits;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.RELIABILITY] = import__22222222222222222.enums.Reliability;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__22222222222222222.enums.NotifyType;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.POLARITY] = import__22222222222222222.enums.Polarity;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__22222222222222222.enums.ServicesSupported;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__22222222222222222.enums.ObjectTypesSupported;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.STATUS_FLAGS] = import__22222222222222222.enums.StatusFlags;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__22222222222222222.enums.LimitEnable;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.EVENT_ENABLE] = import__22222222222222222.enums.EventTransitionBits;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__22222222222222222.enums.EventTransitionBits;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__22222222222222222.enums.DeviceStatus;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__22222222222222222.enums.DeviceStatus;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.ACK_REQUIRED] = import__22222222222222222.enums.EventTransitionBits;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.LOGGING_TYPE] = import__22222222222222222.enums.LoggingType;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__22222222222222222.enums.FileAccessMethod;
                                                                    PropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.PropertyIdentifier.NODE_TYPE] = import__22222222222222222.enums.NodeType;
                                                                    var ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222 = {};
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BINARY_INPUT] = {};
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BINARY_INPUT][import__22222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222222.enums.BinaryPV;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BINARY_INPUT][import__22222222222222222.enums.PropertyIdentifier.MODE] = import__22222222222222222.enums.BinaryPV;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.ANALOG_INPUT] = {};
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.ANALOG_INPUT][import__22222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222222.enums.BinaryPV;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.ANALOG_OUTPUT] = {};
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.ANALOG_OUTPUT][import__22222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222222.enums.BinaryPV;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BINARY_OUTPUT] = {};
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BINARY_OUTPUT][import__22222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222222.enums.BinaryPV;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BINARY_OUTPUT][import__22222222222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__22222222222222222.enums.BinaryPV;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BINARY_VALUE] = {};
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BINARY_VALUE][import__22222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222222.enums.BinaryPV;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BINARY_VALUE][import__22222222222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__22222222222222222.enums.BinaryPV;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__22222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222222.enums.BinaryLightingPV;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BITSTRING_VALUE] = {};
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.BINARY_VALUE][import__22222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222222.enums.BinaryPV;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222222.enums.LifeSafetyState;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222222222.enums.PropertyIdentifier.TRACKING_VALUE] = import__22222222222222222.enums.LifeSafetyState;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222222222.enums.PropertyIdentifier.MODE] = import__22222222222222222.enums.LifeSafetyMode;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222222222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__22222222222222222.enums.LifeSafetyMode;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222222222.enums.PropertyIdentifier.SILENCED] = import__22222222222222222.enums.LifeSafetyState;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222222222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__22222222222222222.enums.LifeSafetyOperation;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__22222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222222.enums.LifeSafetyState;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__22222222222222222.enums.PropertyIdentifier.MODE] = import__22222222222222222.enums.LifeSafetyMode;
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.LOAD_CONTROL] = {};
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[import__22222222222222222.enums.ObjectType.LOAD_CONTROL][import__22222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222222.enums.ShedState;
                                                                    var propSubSet22222222222222222 = import_process22222222222222222.default.argv.includes("--all") ? Object.values(import__22222222222222222.enums.PropertyIdentifier) : [
                                                                      /* normally supported from all devices */
                                                                      import__22222222222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                                                                      import__22222222222222222.enums.PropertyIdentifier.OBJECT_NAME,
                                                                      import__22222222222222222.enums.PropertyIdentifier.OBJECT_TYPE,
                                                                      import__22222222222222222.enums.PropertyIdentifier.PRESENT_VALUE,
                                                                      import__22222222222222222.enums.PropertyIdentifier.STATUS_FLAGS,
                                                                      import__22222222222222222.enums.PropertyIdentifier.EVENT_STATE,
                                                                      import__22222222222222222.enums.PropertyIdentifier.RELIABILITY,
                                                                      import__22222222222222222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                                                                      import__22222222222222222.enums.PropertyIdentifier.UNITS,
                                                                      /* other properties */
                                                                      import__22222222222222222.enums.PropertyIdentifier.DESCRIPTION,
                                                                      import__22222222222222222.enums.PropertyIdentifier.SYSTEM_STATUS,
                                                                      import__22222222222222222.enums.PropertyIdentifier.VENDOR_NAME,
                                                                      import__22222222222222222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                                                                      import__22222222222222222.enums.PropertyIdentifier.MODEL_NAME,
                                                                      import__22222222222222222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                                                                      import__22222222222222222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                                                                      import__22222222222222222.enums.PropertyIdentifier.LOCATION,
                                                                      import__22222222222222222.enums.PropertyIdentifier.LOCAL_DATE,
                                                                      import__22222222222222222.enums.PropertyIdentifier.LOCAL_TIME,
                                                                      import__22222222222222222.enums.PropertyIdentifier.UTC_OFFSET,
                                                                      import__22222222222222222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                                                                      import__22222222222222222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                                                                      import__22222222222222222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                                                                      import__22222222222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                                                                      import__22222222222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                                                                      import__22222222222222222.enums.PropertyIdentifier.OBJECT_LIST,
                                                                      import__22222222222222222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                                                                      import__22222222222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                                                                      import__22222222222222222.enums.PropertyIdentifier.APDU_TIMEOUT,
                                                                      import__22222222222222222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                                                                      import__22222222222222222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                                                                      import__22222222222222222.enums.PropertyIdentifier.DATABASE_REVISION,
                                                                      import__22222222222222222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                                                                      import__22222222222222222.enums.PropertyIdentifier.MAX_MASTER,
                                                                      import__22222222222222222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                                                                      import__22222222222222222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                                                                    ];
                                                                    var debug422222222222222222 = import_process22222222222222222.default.argv.includes("--debug");
                                                                    function getAllPropertiesManually22222222222222222(address, objectId, callback, propList, result) {
                                                                      if (!propList) {
                                                                        propList = propSubSet22222222222222222.map((x) => x);
                                                                      }
                                                                      if (!result) {
                                                                        result = [];
                                                                      }
                                                                      if (!propList.length) {
                                                                        return callback({
                                                                          values: [
                                                                            {
                                                                              objectId,
                                                                              values: result
                                                                            }
                                                                          ]
                                                                        });
                                                                      }
                                                                      const prop = propList.shift();
                                                                      bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                                                                        if (!err) {
                                                                          if (debug422222222222222222) {
                                                                            console.log("Handle value " + prop + ": ", JSON.stringify(value));
                                                                          }
                                                                          const objRes = value.property;
                                                                          objRes.value = value.values;
                                                                          result.push(objRes);
                                                                        } else {
                                                                        }
                                                                        getAllPropertiesManually22222222222222222(address, objectId, callback, propList, result);
                                                                      });
                                                                    }
                                                                    function readBit22222222222222222(buffer, i, bit) {
                                                                      return (buffer[i] >> bit) % 2;
                                                                    }
                                                                    function handleBitString22222222222222222(buffer, bitsUsed, usedEnum) {
                                                                      const res = [];
                                                                      for (let i = 0; i < bitsUsed; i++) {
                                                                        const bufferIndex = Math.floor(i / 8);
                                                                        if (readBit22222222222222222(buffer, bufferIndex, i % 8)) {
                                                                          res.push(import__22222222222222222.enums.getEnumName(usedEnum, i));
                                                                        }
                                                                      }
                                                                      return res;
                                                                    }
                                                                    function parseValue22222222222222222(address, objId2, parentType, value, supportsMultiple, callback) {
                                                                      let resValue = null;
                                                                      if (value && value.type && value.value !== null && value.value !== void 0) {
                                                                        switch (value.type) {
                                                                          case import__22222222222222222.enums.ApplicationTag.NULL:
                                                                            resValue = null;
                                                                            break;
                                                                          case import__22222222222222222.enums.ApplicationTag.BOOLEAN:
                                                                            resValue = !!value.value;
                                                                            break;
                                                                          case import__22222222222222222.enums.ApplicationTag.UNSIGNED_INTEGER:
                                                                          case import__22222222222222222.enums.ApplicationTag.SIGNED_INTEGER:
                                                                          case import__22222222222222222.enums.ApplicationTag.REAL:
                                                                          case import__22222222222222222.enums.ApplicationTag.DOUBLE:
                                                                          case import__22222222222222222.enums.ApplicationTag.CHARACTER_STRING:
                                                                            resValue = value.value;
                                                                            break;
                                                                          case import__22222222222222222.enums.ApplicationTag.DATE:
                                                                          case import__22222222222222222.enums.ApplicationTag.TIME:
                                                                          case import__22222222222222222.enums.ApplicationTag.TIMESTAMP:
                                                                            resValue = value.value;
                                                                            break;
                                                                          case import__22222222222222222.enums.ApplicationTag.BIT_STRING:
                                                                            if (ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[parentType][objId2]) {
                                                                              resValue = handleBitString22222222222222222(
                                                                                value.value.value,
                                                                                value.value.bitsUsed,
                                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[parentType][objId2]
                                                                              );
                                                                            } else if (PropertyIdentifierToEnumMap22222222222222222[objId2]) {
                                                                              resValue = handleBitString22222222222222222(
                                                                                value.value.value,
                                                                                value.value.bitsUsed,
                                                                                PropertyIdentifierToEnumMap22222222222222222[objId2]
                                                                              );
                                                                            } else {
                                                                              if (parentType !== import__22222222222222222.enums.ObjectType.BITSTRING_VALUE) {
                                                                                console.log(
                                                                                  "Unknown value for BIT_STRING type for objId " + import__22222222222222222.enums.getEnumName(import__22222222222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__22222222222222222.enums.getEnumName(import__22222222222222222.enums.ObjectType, parentType)
                                                                                );
                                                                              }
                                                                              resValue = value.value;
                                                                            }
                                                                            break;
                                                                          case import__22222222222222222.enums.ApplicationTag.ENUMERATED:
                                                                            if (ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[parentType][objId2]) {
                                                                              resValue = import__22222222222222222.enums.getEnumName(
                                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222222[parentType][objId2],
                                                                                value.value
                                                                              );
                                                                            } else if (PropertyIdentifierToEnumMap22222222222222222[objId2]) {
                                                                              resValue = import__22222222222222222.enums.getEnumName(
                                                                                PropertyIdentifierToEnumMap22222222222222222[objId2],
                                                                                value.value
                                                                              );
                                                                            } else {
                                                                              console.log(
                                                                                "Unknown value for ENUMERATED type for objId " + import__22222222222222222.enums.getEnumName(import__22222222222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__22222222222222222.enums.getEnumName(import__22222222222222222.enums.ObjectType, parentType)
                                                                              );
                                                                              resValue = value.value;
                                                                            }
                                                                            break;
                                                                          case import__22222222222222222.enums.ApplicationTag.OBJECTIDENTIFIER:
                                                                            if (objId2 === import__22222222222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__22222222222222222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__22222222222222222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                                                                              resValue = value.value;
                                                                            } else if (supportsMultiple) {
                                                                              const requestArray = [
                                                                                {
                                                                                  objectId: value.value,
                                                                                  properties: [{ id: 8 }]
                                                                                }
                                                                              ];
                                                                              bacnetClient.readPropertyMultiple(
                                                                                address,
                                                                                requestArray,
                                                                                (err, resValue2) => {
                                                                                  parseDeviceObject22222222222222222(address, resValue2, value.value, true, callback);
                                                                                }
                                                                              );
                                                                              return;
                                                                            } else {
                                                                              getAllPropertiesManually22222222222222222(address, value.value, (result) => {
                                                                                parseDeviceObject22222222222222222(address, result, value.value, false, callback);
                                                                              });
                                                                              return;
                                                                            }
                                                                            break;
                                                                          case import__22222222222222222.enums.ApplicationTag.OCTET_STRING:
                                                                            resValue = value.value;
                                                                            break;
                                                                          case import__22222222222222222.enums.ApplicationTag.ERROR:
                                                                            resValue = {
                                                                              errorClass: import__22222222222222222.enums.getEnumName(
                                                                                import__22222222222222222.enums.ErrorClass,
                                                                                value.value.errorClass
                                                                              ),
                                                                              errorCode: import__22222222222222222.enums.getEnumName(import__22222222222222222.enums.ErrorCode, value.value.errorCode)
                                                                            };
                                                                            break;
                                                                          case import__22222222222222222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                                                                          case import__22222222222222222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                                                                          case import__22222222222222222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                                                                          case import__22222222222222222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                                            resValue = value.value;
                                                                            break;
                                                                          case import__22222222222222222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                                                            parseValue22222222222222222(
                                                                              address,
                                                                              objId2,
                                                                              parentType,
                                                                              value.value,
                                                                              supportsMultiple,
                                                                              callback
                                                                            );
                                                                            return;
                                                                          case import__22222222222222222.enums.ApplicationTag.READ_ACCESS_RESULT:
                                                                            resValue = value.value;
                                                                            break;
                                                                          default:
                                                                            console.log(
                                                                              "unknown type " + value.type + ": " + JSON.stringify(value)
                                                                            );
                                                                            resValue = value;
                                                                        }
                                                                      }
                                                                      setImmediate(() => callback(resValue));
                                                                    }
                                                                    function parseDeviceObject22222222222222222(address, obj, parent, supportsMultiple, callback) {
                                                                      if (debug422222222222222222) {
                                                                        console.log(
                                                                          "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                                                                        );
                                                                      }
                                                                      if (!obj) {
                                                                        console.log("object not valid on parse device object");
                                                                        return;
                                                                      }
                                                                      if (!obj.values || !Array.isArray(obj.values)) {
                                                                        console.log("No device or invalid response");
                                                                        callback({ ERROR: "No device or invalid response" });
                                                                        return;
                                                                      }
                                                                      let cbCount = 0;
                                                                      let objDef = {};
                                                                      const finalize = () => {
                                                                        Object.keys(objDef).forEach((devId) => {
                                                                          Object.keys(objDef[devId]).forEach((objId2) => {
                                                                            if (objDef[devId][objId2].length === 1) {
                                                                              objDef[devId][objId2] = objDef[devId][objId2][0];
                                                                            }
                                                                          });
                                                                        });
                                                                        if (obj.values.length === 1) {
                                                                          objDef = objDef[obj.values[0].objectId.instance];
                                                                        }
                                                                        if (debug422222222222222222) {
                                                                          console.log(
                                                                            "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                                                                          );
                                                                        }
                                                                        callback(objDef);
                                                                      };
                                                                      obj.values.forEach((devBaseObj) => {
                                                                        if (!devBaseObj.objectId) {
                                                                          console.log("No device Id found in object data");
                                                                          return;
                                                                        }
                                                                        if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                                                                          console.log("No device type or instance found in object data");
                                                                          return;
                                                                        }
                                                                        if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                                                                          console.log("No device values response");
                                                                          return;
                                                                        }
                                                                        const deviceId = devBaseObj.objectId.instance;
                                                                        objDef[deviceId] = {};
                                                                        devBaseObj.values.forEach((devObj) => {
                                                                          let objId2 = import__22222222222222222.enums.getEnumName(import__22222222222222222.enums.PropertyIdentifier, devObj.id);
                                                                          if (devObj.index !== 4294967295) {
                                                                            objId2 += "-" + devObj.index;
                                                                          }
                                                                          if (debug422222222222222222) {
                                                                            console.log("Handle Object property:", deviceId, objId2, devObj.value);
                                                                          }
                                                                          devObj.value.forEach((val) => {
                                                                            if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                                                              objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                                              objDef[deviceId][objId2].push(val.value);
                                                                              return;
                                                                            }
                                                                            cbCount++;
                                                                            parseValue22222222222222222(
                                                                              address,
                                                                              devObj.id,
                                                                              parent.type,
                                                                              val,
                                                                              supportsMultiple,
                                                                              (parsedValue) => {
                                                                                if (debug422222222222222222) {
                                                                                  console.log(
                                                                                    "RETURN parsedValue",
                                                                                    deviceId,
                                                                                    objId2,
                                                                                    devObj.value,
                                                                                    parsedValue
                                                                                  );
                                                                                }
                                                                                objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                                                objDef[deviceId][objId2].push(parsedValue);
                                                                                if (!--cbCount) {
                                                                                  finalize();
                                                                                }
                                                                              }
                                                                            );
                                                                          });
                                                                        });
                                                                      });
                                                                      if (cbCount === 0) {
                                                                        finalize();
                                                                      }
                                                                    }
                                                                    var limitToDevice22222222222222222 = null;
                                                                    if (import_process22222222222222222.default.argv.length === 3) {
                                                                      limitToDevice22222222222222222 = parseInt(import_process22222222222222222.default.argv[2]);
                                                                      if (isNaN(limitToDevice22222222222222222)) {
                                                                        limitToDevice22222222222222222 = null;
                                                                      }
                                                                    }
                                                                    var node_bacnet_default22222222222222222 = Client22222222222222222;
                                                                  }
                                                                });
                                                                var node_bacnet_exports2222222222222222 = {};
                                                                __export2222222222222222(node_bacnet_exports2222222222222222, {
                                                                  _: () => import_underscore2222222222222222.default,
                                                                  bacnetErrorToString: () => bacnetErrorToString2222222222222222,
                                                                  default: () => node_bacnet_default2222222222222222,
                                                                  enums: () => enum_exports2222222222222222,
                                                                  parseValue: () => parseValue2222222222222222
                                                                });
                                                                module2222222222222222.exports = __toCommonJS2222222222222222(node_bacnet_exports2222222222222222);
                                                                var enum_exports2222222222222222 = {};
                                                                __export2222222222222222(enum_exports2222222222222222, {
                                                                  ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL2222222222222222,
                                                                  ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS2222222222222222,
                                                                  ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG2222222222222222,
                                                                  ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES2222222222222222,
                                                                  ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE2222222222222222,
                                                                  ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT2222222222222222,
                                                                  ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE2222222222222222,
                                                                  ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY2222222222222222,
                                                                  ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID2222222222222222,
                                                                  ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY2222222222222222,
                                                                  ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY2222222222222222,
                                                                  AbortReason: () => AbortReason2222222222222222,
                                                                  AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable2222222222222222,
                                                                  AccessCredentialDisable: () => AccessCredentialDisable2222222222222222,
                                                                  AccessCredentialDisableReason: () => AccessCredentialDisableReason2222222222222222,
                                                                  AccessEvent: () => AccessEvent2222222222222222,
                                                                  AccessPassbackMode: () => AccessPassbackMode2222222222222222,
                                                                  AccessUserType: () => AccessUserType2222222222222222,
                                                                  AccessZoneOccupancyState: () => AccessZoneOccupancyState2222222222222222,
                                                                  Action: () => Action2222222222222222,
                                                                  ApplicationTag: () => ApplicationTag2222222222222222,
                                                                  ApplicationTagName: () => ApplicationTagName2222222222222222,
                                                                  AuthenticationFactorType: () => AuthenticationFactorType2222222222222222,
                                                                  AuthenticationStatus: () => AuthenticationStatus2222222222222222,
                                                                  AuthorizationExemption: () => AuthorizationExemption2222222222222222,
                                                                  AuthorizationMode: () => AuthorizationMode2222222222222222,
                                                                  BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH3222222222222222,
                                                                  BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP2222222222222222,
                                                                  BackupState: () => BackupState2222222222222222,
                                                                  BinaryLightingPV: () => BinaryLightingPV2222222222222222,
                                                                  BinaryPV: () => BinaryPV2222222222222222,
                                                                  BvlcResultFormat: () => BvlcResultFormat2222222222222222,
                                                                  BvlcResultPurpose: () => BvlcResultPurpose2222222222222222,
                                                                  CharacterStringEncoding: () => CharacterStringEncoding2222222222222222,
                                                                  ConfirmedServiceChoice: () => ConfirmedServiceChoice2222222222222222,
                                                                  CovType: () => CovType2222222222222222,
                                                                  DaysOfWeek: () => DaysOfWeek2222222222222222,
                                                                  DeviceStatus: () => DeviceStatus2222222222222222,
                                                                  DoorAlarmState: () => DoorAlarmState2222222222222222,
                                                                  DoorSecuredStatus: () => DoorSecuredStatus2222222222222222,
                                                                  DoorStatus: () => DoorStatus2222222222222222,
                                                                  DoorValue: () => DoorValue2222222222222222,
                                                                  EnableDisable: () => EnableDisable2222222222222222,
                                                                  EngineeringUnits: () => EngineeringUnits2222222222222222,
                                                                  ErrorClass: () => ErrorClass2222222222222222,
                                                                  ErrorClassName: () => ErrorClassName2222222222222222,
                                                                  ErrorCode: () => ErrorCode2222222222222222,
                                                                  ErrorCodeName: () => ErrorCodeName2222222222222222,
                                                                  EscalatorFault: () => EscalatorFault2222222222222222,
                                                                  EscalatorMode: () => EscalatorMode2222222222222222,
                                                                  EscalatorOperationDirection: () => EscalatorOperationDirection2222222222222222,
                                                                  EventState: () => EventState2222222222222222,
                                                                  EventTransitionBits: () => EventTransitionBits2222222222222222,
                                                                  EventType: () => EventType2222222222222222,
                                                                  FaultType: () => FaultType2222222222222222,
                                                                  FileAccessMethod: () => FileAccessMethod2222222222222222,
                                                                  IPMode: () => IPMode2222222222222222,
                                                                  LifeSafetyMode: () => LifeSafetyMode2222222222222222,
                                                                  LifeSafetyOperation: () => LifeSafetyOperation2222222222222222,
                                                                  LifeSafetyState: () => LifeSafetyState2222222222222222,
                                                                  LiftCarDirection: () => LiftCarDirection2222222222222222,
                                                                  LiftCarDoorCommand: () => LiftCarDoorCommand2222222222222222,
                                                                  LiftCarDriveStatus: () => LiftCarDriveStatus2222222222222222,
                                                                  LiftCarMode: () => LiftCarMode2222222222222222,
                                                                  LiftFault: () => LiftFault2222222222222222,
                                                                  LiftGroupMode: () => LiftGroupMode2222222222222222,
                                                                  LightingInProgress: () => LightingInProgress2222222222222222,
                                                                  LightingOperation: () => LightingOperation2222222222222222,
                                                                  LightingTransition: () => LightingTransition2222222222222222,
                                                                  LimitEnable: () => LimitEnable2222222222222222,
                                                                  LockStatus: () => LockStatus2222222222222222,
                                                                  LogStatus: () => LogStatus2222222222222222,
                                                                  LoggingType: () => LoggingType2222222222222222,
                                                                  Maintenance: () => Maintenance2222222222222222,
                                                                  MaxApduLengthAccepted: () => MaxApduLengthAccepted2222222222222222,
                                                                  MaxSegmentsAccepted: () => MaxSegmentsAccepted2222222222222222,
                                                                  NetworkLayerMessageType: () => NetworkLayerMessageType2222222222222222,
                                                                  NetworkNumberQuality: () => NetworkNumberQuality2222222222222222,
                                                                  NetworkPortCommand: () => NetworkPortCommand2222222222222222,
                                                                  NetworkType: () => NetworkType2222222222222222,
                                                                  NodeType: () => NodeType2222222222222222,
                                                                  NotifyType: () => NotifyType2222222222222222,
                                                                  NpduControlBit: () => NpduControlBit2222222222222222,
                                                                  NpduControlPriority: () => NpduControlPriority2222222222222222,
                                                                  ObjectType: () => ObjectType2222222222222222,
                                                                  ObjectTypesSupported: () => ObjectTypesSupported2222222222222222,
                                                                  PDU_TYPE_MASK: () => PDU_TYPE_MASK2222222222222222,
                                                                  PduConReqBit: () => PduConReqBit2222222222222222,
                                                                  PduSegAckBit: () => PduSegAckBit2222222222222222,
                                                                  PduType: () => PduType2222222222222222,
                                                                  Polarity: () => Polarity2222222222222222,
                                                                  ProgramError: () => ProgramError2222222222222222,
                                                                  ProgramRequest: () => ProgramRequest2222222222222222,
                                                                  ProgramState: () => ProgramState2222222222222222,
                                                                  PropertyIdentifier: () => PropertyIdentifier2222222222222222,
                                                                  PropertyStates: () => PropertyStates2222222222222222,
                                                                  ProtocolLevel: () => ProtocolLevel2222222222222222,
                                                                  ReadRangeType: () => ReadRangeType2222222222222222,
                                                                  ReinitializedState: () => ReinitializedState2222222222222222,
                                                                  RejectReason: () => RejectReason2222222222222222,
                                                                  Relationship: () => Relationship2222222222222222,
                                                                  Reliability: () => Reliability2222222222222222,
                                                                  RestartReason: () => RestartReason2222222222222222,
                                                                  ResultFlags: () => ResultFlags2222222222222222,
                                                                  SecurityLevel: () => SecurityLevel2222222222222222,
                                                                  SecurityPolicy: () => SecurityPolicy2222222222222222,
                                                                  Segmentation: () => Segmentation2222222222222222,
                                                                  ServicesSupported: () => ServicesSupported2222222222222222,
                                                                  ShedState: () => ShedState2222222222222222,
                                                                  SilencedState: () => SilencedState2222222222222222,
                                                                  StatusFlags: () => StatusFlags2222222222222222,
                                                                  TimeStamp: () => TimeStamp2222222222222222,
                                                                  TimerState: () => TimerState2222222222222222,
                                                                  TimerTransition: () => TimerTransition2222222222222222,
                                                                  UnconfirmedServiceChoice: () => UnconfirmedServiceChoice2222222222222222,
                                                                  VTClass: () => VTClass2222222222222222,
                                                                  WriteStatus: () => WriteStatus2222222222222222,
                                                                  getEnumName: () => getEnumName2222222222222222
                                                                });
                                                                var import_debug4222222222222222 = __toESM2222222222222222(require("debug"));
                                                                var debug5222222222222222 = (0, import_debug4222222222222222.default)("bacnet=enum=debug");
                                                                var trace3222222222222222 = (0, import_debug4222222222222222.default)("bacnet=enum=trace");
                                                                function invertEnum2222222222222222(enumToInvert) {
                                                                  const invertedEnum = {};
                                                                  Object.keys(enumToInvert).forEach((key) => {
                                                                    invertedEnum[enumToInvert[key]] = key;
                                                                  });
                                                                  return invertedEnum;
                                                                }
                                                                function getEnumName2222222222222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                                                                  if (!Number.isInteger(value)) {
                                                                    throw new Error(
                                                                      'getEnumName() can only be passed an integer value, was given "' + value + '"'
                                                                    );
                                                                  }
                                                                  let foundEntry;
                                                                  try {
                                                                    const invertedGroup = invertEnum2222222222222222(group);
                                                                    foundEntry = invertedGroup[value];
                                                                    if (foundEntry === void 0 && undefinedFallbackValue) {
                                                                      foundEntry = undefinedFallbackValue;
                                                                    }
                                                                    if (foundEntry === void 0) {
                                                                      foundEntry = value.toString();
                                                                    } else if (addNumberValue) {
                                                                      foundEntry += "(" + value + ")";
                                                                    }
                                                                  } catch (e) {
                                                                    trace3222222222222222(e.message);
                                                                    foundEntry = null;
                                                                  }
                                                                  return foundEntry;
                                                                }
                                                                var PDU_TYPE_MASK2222222222222222 = 240;
                                                                var ASN1_MAX_OBJECT2222222222222222 = 1023;
                                                                var ASN1_INSTANCE_BITS2222222222222222 = 22;
                                                                var ASN1_MAX_INSTANCE2222222222222222 = 4194303;
                                                                var ASN1_MAX_BITSTRING_BYTES2222222222222222 = 15;
                                                                var ASN1_ARRAY_ALL2222222222222222 = 4294967295;
                                                                var ASN1_NO_PRIORITY2222222222222222 = 0;
                                                                var ASN1_MIN_PRIORITY2222222222222222 = 1;
                                                                var ASN1_MAX_PRIORITY2222222222222222 = 16;
                                                                var ASN1_MAX_APPLICATION_TAG2222222222222222 = 16;
                                                                var ASN1_MAX_OBJECT_TYPE2222222222222222 = 1024;
                                                                var ASN1_MAX_PROPERTY_ID2222222222222222 = 4194303;
                                                                var BVLL_TYPE_BACNET_IP2222222222222222 = 129;
                                                                var BVLC_HEADER_LENGTH3222222222222222 = 4;
                                                                var ConfirmedServiceChoice2222222222222222 = /* @__PURE__ */ ((ConfirmedServiceChoice22222222222222222) => {
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["READ_RANGE"] = 26] = "READ_RANGE";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                                  ConfirmedServiceChoice22222222222222222[ConfirmedServiceChoice22222222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                                  return ConfirmedServiceChoice22222222222222222;
                                                                })(ConfirmedServiceChoice2222222222222222 || {});
                                                                var UnconfirmedServiceChoice2222222222222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice22222222222222222) => {
                                                                  UnconfirmedServiceChoice22222222222222222[UnconfirmedServiceChoice22222222222222222["I_AM"] = 0] = "I_AM";
                                                                  UnconfirmedServiceChoice22222222222222222[UnconfirmedServiceChoice22222222222222222["I_HAVE"] = 1] = "I_HAVE";
                                                                  UnconfirmedServiceChoice22222222222222222[UnconfirmedServiceChoice22222222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                                                                  UnconfirmedServiceChoice22222222222222222[UnconfirmedServiceChoice22222222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                                  UnconfirmedServiceChoice22222222222222222[UnconfirmedServiceChoice22222222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                                  UnconfirmedServiceChoice22222222222222222[UnconfirmedServiceChoice22222222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                                                                  UnconfirmedServiceChoice22222222222222222[UnconfirmedServiceChoice22222222222222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                                                                  UnconfirmedServiceChoice22222222222222222[UnconfirmedServiceChoice22222222222222222["WHO_HAS"] = 7] = "WHO_HAS";
                                                                  UnconfirmedServiceChoice22222222222222222[UnconfirmedServiceChoice22222222222222222["WHO_IS"] = 8] = "WHO_IS";
                                                                  UnconfirmedServiceChoice22222222222222222[UnconfirmedServiceChoice22222222222222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                                                                  UnconfirmedServiceChoice22222222222222222[UnconfirmedServiceChoice22222222222222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                                                                  UnconfirmedServiceChoice22222222222222222[UnconfirmedServiceChoice22222222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                                  return UnconfirmedServiceChoice22222222222222222;
                                                                })(UnconfirmedServiceChoice2222222222222222 || {});
                                                                var AbortReason2222222222222222 = /* @__PURE__ */ ((AbortReason22222222222222222) => {
                                                                  AbortReason22222222222222222[AbortReason22222222222222222["OTHER"] = 0] = "OTHER";
                                                                  AbortReason22222222222222222[AbortReason22222222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                                  AbortReason22222222222222222[AbortReason22222222222222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                                                                  AbortReason22222222222222222[AbortReason22222222222222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                                  AbortReason22222222222222222[AbortReason22222222222222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                                                                  AbortReason22222222222222222[AbortReason22222222222222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                                                                  AbortReason22222222222222222[AbortReason22222222222222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                                                                  AbortReason22222222222222222[AbortReason22222222222222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                                                                  AbortReason22222222222222222[AbortReason22222222222222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                                                                  AbortReason22222222222222222[AbortReason22222222222222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                                                                  AbortReason22222222222222222[AbortReason22222222222222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                                                                  AbortReason22222222222222222[AbortReason22222222222222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                                                                  return AbortReason22222222222222222;
                                                                })(AbortReason2222222222222222 || {});
                                                                var RejectReason2222222222222222 = /* @__PURE__ */ ((RejectReason22222222222222222) => {
                                                                  RejectReason22222222222222222[RejectReason22222222222222222["OTHER"] = 0] = "OTHER";
                                                                  RejectReason22222222222222222[RejectReason22222222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                                  RejectReason22222222222222222[RejectReason22222222222222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                                                                  RejectReason22222222222222222[RejectReason22222222222222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                                                                  RejectReason22222222222222222[RejectReason22222222222222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                                                                  RejectReason22222222222222222[RejectReason22222222222222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                                                                  RejectReason22222222222222222[RejectReason22222222222222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                                                                  RejectReason22222222222222222[RejectReason22222222222222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                                                                  RejectReason22222222222222222[RejectReason22222222222222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                                                                  RejectReason22222222222222222[RejectReason22222222222222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                                                                  return RejectReason22222222222222222;
                                                                })(RejectReason2222222222222222 || {});
                                                                var ErrorClass2222222222222222 = /* @__PURE__ */ ((ErrorClass22222222222222222) => {
                                                                  ErrorClass22222222222222222[ErrorClass22222222222222222["DEVICE"] = 0] = "DEVICE";
                                                                  ErrorClass22222222222222222[ErrorClass22222222222222222["OBJECT"] = 1] = "OBJECT";
                                                                  ErrorClass22222222222222222[ErrorClass22222222222222222["PROPERTY"] = 2] = "PROPERTY";
                                                                  ErrorClass22222222222222222[ErrorClass22222222222222222["RESOURCES"] = 3] = "RESOURCES";
                                                                  ErrorClass22222222222222222[ErrorClass22222222222222222["SECURITY"] = 4] = "SECURITY";
                                                                  ErrorClass22222222222222222[ErrorClass22222222222222222["SERVICES"] = 5] = "SERVICES";
                                                                  ErrorClass22222222222222222[ErrorClass22222222222222222["VT"] = 6] = "VT";
                                                                  ErrorClass22222222222222222[ErrorClass22222222222222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                                                                  return ErrorClass22222222222222222;
                                                                })(ErrorClass2222222222222222 || {});
                                                                var ErrorClassName2222222222222222 = invertEnum2222222222222222(
                                                                  ErrorClass2222222222222222
                                                                );
                                                                var ErrorCode2222222222222222 = /* @__PURE__ */ ((ErrorCode22222222222222222) => {
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["BUSY"] = 82] = "BUSY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["FILE_FULL"] = 128] = "FILE_FULL";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["OTHER"] = 0] = "OTHER";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["SUCCESS"] = 84] = "SUCCESS";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["TIMEOUT"] = 30] = "TIMEOUT";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                                                                  ErrorCode22222222222222222[ErrorCode22222222222222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                                                                  return ErrorCode22222222222222222;
                                                                })(ErrorCode2222222222222222 || {});
                                                                var ErrorCodeName2222222222222222 = invertEnum2222222222222222(
                                                                  ErrorCode2222222222222222
                                                                );
                                                                var AccessAuthenticationFactorDisable2222222222222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable22222222222222222) => {
                                                                  AccessAuthenticationFactorDisable22222222222222222[AccessAuthenticationFactorDisable22222222222222222["NONE"] = 0] = "NONE";
                                                                  AccessAuthenticationFactorDisable22222222222222222[AccessAuthenticationFactorDisable22222222222222222["DISABLED"] = 1] = "DISABLED";
                                                                  AccessAuthenticationFactorDisable22222222222222222[AccessAuthenticationFactorDisable22222222222222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                                                                  AccessAuthenticationFactorDisable22222222222222222[AccessAuthenticationFactorDisable22222222222222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                                                                  AccessAuthenticationFactorDisable22222222222222222[AccessAuthenticationFactorDisable22222222222222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                                                                  AccessAuthenticationFactorDisable22222222222222222[AccessAuthenticationFactorDisable22222222222222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                                                                  return AccessAuthenticationFactorDisable22222222222222222;
                                                                })(AccessAuthenticationFactorDisable2222222222222222 || {});
                                                                var AccessCredentialDisable2222222222222222 = /* @__PURE__ */ ((AccessCredentialDisable22222222222222222) => {
                                                                  AccessCredentialDisable22222222222222222[AccessCredentialDisable22222222222222222["NONE"] = 0] = "NONE";
                                                                  AccessCredentialDisable22222222222222222[AccessCredentialDisable22222222222222222["DISABLE"] = 1] = "DISABLE";
                                                                  AccessCredentialDisable22222222222222222[AccessCredentialDisable22222222222222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                                                                  AccessCredentialDisable22222222222222222[AccessCredentialDisable22222222222222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                                                                  return AccessCredentialDisable22222222222222222;
                                                                })(AccessCredentialDisable2222222222222222 || {});
                                                                var AccessCredentialDisableReason2222222222222222 = /* @__PURE__ */ ((AccessCredentialDisableReason22222222222222222) => {
                                                                  AccessCredentialDisableReason22222222222222222[AccessCredentialDisableReason22222222222222222["DISABLED"] = 0] = "DISABLED";
                                                                  AccessCredentialDisableReason22222222222222222[AccessCredentialDisableReason22222222222222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                                                                  AccessCredentialDisableReason22222222222222222[AccessCredentialDisableReason22222222222222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                                                                  AccessCredentialDisableReason22222222222222222[AccessCredentialDisableReason22222222222222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                                                                  AccessCredentialDisableReason22222222222222222[AccessCredentialDisableReason22222222222222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                                                                  AccessCredentialDisableReason22222222222222222[AccessCredentialDisableReason22222222222222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                                                                  AccessCredentialDisableReason22222222222222222[AccessCredentialDisableReason22222222222222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                                                                  AccessCredentialDisableReason22222222222222222[AccessCredentialDisableReason22222222222222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                                                                  AccessCredentialDisableReason22222222222222222[AccessCredentialDisableReason22222222222222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                                                                  AccessCredentialDisableReason22222222222222222[AccessCredentialDisableReason22222222222222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                                                                  return AccessCredentialDisableReason22222222222222222;
                                                                })(AccessCredentialDisableReason2222222222222222 || {});
                                                                var AccessEvent2222222222222222 = /* @__PURE__ */ ((AccessEvent22222222222222222) => {
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["NONE"] = 0] = "NONE";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["GRANTED"] = 1] = "GRANTED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["MUSTER"] = 2] = "MUSTER";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DURESS"] = 4] = "DURESS";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["TRACE"] = 5] = "TRACE";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                                                                  AccessEvent22222222222222222[AccessEvent22222222222222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                                                                  return AccessEvent22222222222222222;
                                                                })(AccessEvent2222222222222222 || {});
                                                                var AccessPassbackMode2222222222222222 = /* @__PURE__ */ ((AccessPassbackMode22222222222222222) => {
                                                                  AccessPassbackMode22222222222222222[AccessPassbackMode22222222222222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                                                                  AccessPassbackMode22222222222222222[AccessPassbackMode22222222222222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                                                                  AccessPassbackMode22222222222222222[AccessPassbackMode22222222222222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                                                                  return AccessPassbackMode22222222222222222;
                                                                })(AccessPassbackMode2222222222222222 || {});
                                                                var AccessUserType2222222222222222 = /* @__PURE__ */ ((AccessUserType22222222222222222) => {
                                                                  AccessUserType22222222222222222[AccessUserType22222222222222222["ASSET"] = 0] = "ASSET";
                                                                  AccessUserType22222222222222222[AccessUserType22222222222222222["GROUP"] = 1] = "GROUP";
                                                                  AccessUserType22222222222222222[AccessUserType22222222222222222["PERSON"] = 2] = "PERSON";
                                                                  return AccessUserType22222222222222222;
                                                                })(AccessUserType2222222222222222 || {});
                                                                var AccessZoneOccupancyState2222222222222222 = /* @__PURE__ */ ((AccessZoneOccupancyState22222222222222222) => {
                                                                  AccessZoneOccupancyState22222222222222222[AccessZoneOccupancyState22222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                  AccessZoneOccupancyState22222222222222222[AccessZoneOccupancyState22222222222222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                                                                  AccessZoneOccupancyState22222222222222222[AccessZoneOccupancyState22222222222222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                                                                  AccessZoneOccupancyState22222222222222222[AccessZoneOccupancyState22222222222222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                                                                  AccessZoneOccupancyState22222222222222222[AccessZoneOccupancyState22222222222222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                                                                  AccessZoneOccupancyState22222222222222222[AccessZoneOccupancyState22222222222222222["DISABLED"] = 5] = "DISABLED";
                                                                  AccessZoneOccupancyState22222222222222222[AccessZoneOccupancyState22222222222222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                                                                  return AccessZoneOccupancyState22222222222222222;
                                                                })(AccessZoneOccupancyState2222222222222222 || {});
                                                                var Action2222222222222222 = /* @__PURE__ */ ((Action22222222222222222) => {
                                                                  Action22222222222222222[Action22222222222222222["DIRECT"] = 0] = "DIRECT";
                                                                  Action22222222222222222[Action22222222222222222["REVERSE"] = 1] = "REVERSE";
                                                                  return Action22222222222222222;
                                                                })(Action2222222222222222 || {});
                                                                var AuthenticationFactorType2222222222222222 = /* @__PURE__ */ ((AuthenticationFactorType22222222222222222) => {
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["UNDEFINED"] = 0] = "UNDEFINED";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["ERROR"] = 1] = "ERROR";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["CUSTOM"] = 2] = "CUSTOM";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["WIEGAND26"] = 8] = "WIEGAND26";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["WIEGAND37"] = 9] = "WIEGAND37";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["FASC_N"] = 13] = "FASC_N";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["GSA75"] = 17] = "GSA75";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["CHUID"] = 18] = "CHUID";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["GUID"] = 20] = "GUID";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["CBEFF_A"] = 21] = "CBEFF_A";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["CBEFF_B"] = 22] = "CBEFF_B";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["CBEFF_C"] = 23] = "CBEFF_C";
                                                                  AuthenticationFactorType22222222222222222[AuthenticationFactorType22222222222222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                                                                  return AuthenticationFactorType22222222222222222;
                                                                })(AuthenticationFactorType2222222222222222 || {});
                                                                var AuthenticationStatus2222222222222222 = /* @__PURE__ */ ((AuthenticationStatus22222222222222222) => {
                                                                  AuthenticationStatus22222222222222222[AuthenticationStatus22222222222222222["NOT_READY"] = 0] = "NOT_READY";
                                                                  AuthenticationStatus22222222222222222[AuthenticationStatus22222222222222222["READY"] = 1] = "READY";
                                                                  AuthenticationStatus22222222222222222[AuthenticationStatus22222222222222222["DISABLED"] = 2] = "DISABLED";
                                                                  AuthenticationStatus22222222222222222[AuthenticationStatus22222222222222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                                                                  AuthenticationStatus22222222222222222[AuthenticationStatus22222222222222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                                                                  AuthenticationStatus22222222222222222[AuthenticationStatus22222222222222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                                                                  AuthenticationStatus22222222222222222[AuthenticationStatus22222222222222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                                                                  return AuthenticationStatus22222222222222222;
                                                                })(AuthenticationStatus2222222222222222 || {});
                                                                var AuthorizationExemption2222222222222222 = /* @__PURE__ */ ((AuthorizationExemption22222222222222222) => {
                                                                  AuthorizationExemption22222222222222222[AuthorizationExemption22222222222222222["PASSBACK"] = 0] = "PASSBACK";
                                                                  AuthorizationExemption22222222222222222[AuthorizationExemption22222222222222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                                                                  AuthorizationExemption22222222222222222[AuthorizationExemption22222222222222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                                                                  AuthorizationExemption22222222222222222[AuthorizationExemption22222222222222222["LOCKOUT"] = 3] = "LOCKOUT";
                                                                  AuthorizationExemption22222222222222222[AuthorizationExemption22222222222222222["DENY"] = 4] = "DENY";
                                                                  AuthorizationExemption22222222222222222[AuthorizationExemption22222222222222222["VERIFICATION"] = 5] = "VERIFICATION";
                                                                  AuthorizationExemption22222222222222222[AuthorizationExemption22222222222222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                                                                  return AuthorizationExemption22222222222222222;
                                                                })(AuthorizationExemption2222222222222222 || {});
                                                                var AuthorizationMode2222222222222222 = /* @__PURE__ */ ((AuthorizationMode22222222222222222) => {
                                                                  AuthorizationMode22222222222222222[AuthorizationMode22222222222222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                                                                  AuthorizationMode22222222222222222[AuthorizationMode22222222222222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                                                                  AuthorizationMode22222222222222222[AuthorizationMode22222222222222222["DENY_ALL"] = 2] = "DENY_ALL";
                                                                  AuthorizationMode22222222222222222[AuthorizationMode22222222222222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                                                                  AuthorizationMode22222222222222222[AuthorizationMode22222222222222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                                                                  AuthorizationMode22222222222222222[AuthorizationMode22222222222222222["NONE"] = 5] = "NONE";
                                                                  return AuthorizationMode22222222222222222;
                                                                })(AuthorizationMode2222222222222222 || {});
                                                                var BackupState2222222222222222 = /* @__PURE__ */ ((BackupState22222222222222222) => {
                                                                  BackupState22222222222222222[BackupState22222222222222222["IDLE"] = 0] = "IDLE";
                                                                  BackupState22222222222222222[BackupState22222222222222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                                                                  BackupState22222222222222222[BackupState22222222222222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                                                                  BackupState22222222222222222[BackupState22222222222222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                                                                  BackupState22222222222222222[BackupState22222222222222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                                                                  BackupState22222222222222222[BackupState22222222222222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                                                                  BackupState22222222222222222[BackupState22222222222222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                                                                  return BackupState22222222222222222;
                                                                })(BackupState2222222222222222 || {});
                                                                var BinaryLightingPV2222222222222222 = /* @__PURE__ */ ((BinaryLightingPV22222222222222222) => {
                                                                  BinaryLightingPV22222222222222222[BinaryLightingPV22222222222222222["OFF"] = 0] = "OFF";
                                                                  BinaryLightingPV22222222222222222[BinaryLightingPV22222222222222222["ON"] = 1] = "ON";
                                                                  BinaryLightingPV22222222222222222[BinaryLightingPV22222222222222222["WARN"] = 2] = "WARN";
                                                                  BinaryLightingPV22222222222222222[BinaryLightingPV22222222222222222["WARN_OFF"] = 3] = "WARN_OFF";
                                                                  BinaryLightingPV22222222222222222[BinaryLightingPV22222222222222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                                                                  BinaryLightingPV22222222222222222[BinaryLightingPV22222222222222222["STOP"] = 5] = "STOP";
                                                                  return BinaryLightingPV22222222222222222;
                                                                })(BinaryLightingPV2222222222222222 || {});
                                                                var BinaryPV2222222222222222 = /* @__PURE__ */ ((BinaryPV22222222222222222) => {
                                                                  BinaryPV22222222222222222[BinaryPV22222222222222222["INACTIVE"] = 0] = "INACTIVE";
                                                                  BinaryPV22222222222222222[BinaryPV22222222222222222["ACTIVE"] = 1] = "ACTIVE";
                                                                  return BinaryPV22222222222222222;
                                                                })(BinaryPV2222222222222222 || {});
                                                                var DeviceStatus2222222222222222 = /* @__PURE__ */ ((DeviceStatus22222222222222222) => {
                                                                  DeviceStatus22222222222222222[DeviceStatus22222222222222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                                                                  DeviceStatus22222222222222222[DeviceStatus22222222222222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                                                                  DeviceStatus22222222222222222[DeviceStatus22222222222222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                                                                  DeviceStatus22222222222222222[DeviceStatus22222222222222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                                                                  DeviceStatus22222222222222222[DeviceStatus22222222222222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                                                                  DeviceStatus22222222222222222[DeviceStatus22222222222222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                                                                  return DeviceStatus22222222222222222;
                                                                })(DeviceStatus2222222222222222 || {});
                                                                var DoorAlarmState2222222222222222 = /* @__PURE__ */ ((DoorAlarmState22222222222222222) => {
                                                                  DoorAlarmState22222222222222222[DoorAlarmState22222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                  DoorAlarmState22222222222222222[DoorAlarmState22222222222222222["ALARM"] = 1] = "ALARM";
                                                                  DoorAlarmState22222222222222222[DoorAlarmState22222222222222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                                                                  DoorAlarmState22222222222222222[DoorAlarmState22222222222222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                                                                  DoorAlarmState22222222222222222[DoorAlarmState22222222222222222["TAMPER"] = 4] = "TAMPER";
                                                                  DoorAlarmState22222222222222222[DoorAlarmState22222222222222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                                                                  DoorAlarmState22222222222222222[DoorAlarmState22222222222222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                                                                  DoorAlarmState22222222222222222[DoorAlarmState22222222222222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                                                                  DoorAlarmState22222222222222222[DoorAlarmState22222222222222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                                                                  return DoorAlarmState22222222222222222;
                                                                })(DoorAlarmState2222222222222222 || {});
                                                                var DoorSecuredStatus2222222222222222 = /* @__PURE__ */ ((DoorSecuredStatus22222222222222222) => {
                                                                  DoorSecuredStatus22222222222222222[DoorSecuredStatus22222222222222222["SECURED"] = 0] = "SECURED";
                                                                  DoorSecuredStatus22222222222222222[DoorSecuredStatus22222222222222222["UNSECURED"] = 1] = "UNSECURED";
                                                                  DoorSecuredStatus22222222222222222[DoorSecuredStatus22222222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                                  return DoorSecuredStatus22222222222222222;
                                                                })(DoorSecuredStatus2222222222222222 || {});
                                                                var DoorStatus2222222222222222 = /* @__PURE__ */ ((DoorStatus22222222222222222) => {
                                                                  DoorStatus22222222222222222[DoorStatus22222222222222222["CLOSED"] = 0] = "CLOSED";
                                                                  DoorStatus22222222222222222[DoorStatus22222222222222222["OPENED"] = 1] = "OPENED";
                                                                  DoorStatus22222222222222222[DoorStatus22222222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                                  DoorStatus22222222222222222[DoorStatus22222222222222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                                                                  DoorStatus22222222222222222[DoorStatus22222222222222222["UNUSED"] = 4] = "UNUSED";
                                                                  DoorStatus22222222222222222[DoorStatus22222222222222222["NONE"] = 5] = "NONE";
                                                                  DoorStatus22222222222222222[DoorStatus22222222222222222["CLOSING"] = 6] = "CLOSING";
                                                                  DoorStatus22222222222222222[DoorStatus22222222222222222["OPENING"] = 7] = "OPENING";
                                                                  DoorStatus22222222222222222[DoorStatus22222222222222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                                                                  DoorStatus22222222222222222[DoorStatus22222222222222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                                                                  return DoorStatus22222222222222222;
                                                                })(DoorStatus2222222222222222 || {});
                                                                var DoorValue2222222222222222 = /* @__PURE__ */ ((DoorValue22222222222222222) => {
                                                                  DoorValue22222222222222222[DoorValue22222222222222222["LOCK"] = 0] = "LOCK";
                                                                  DoorValue22222222222222222[DoorValue22222222222222222["UNLOCK"] = 1] = "UNLOCK";
                                                                  DoorValue22222222222222222[DoorValue22222222222222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                                                                  DoorValue22222222222222222[DoorValue22222222222222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                                                                  return DoorValue22222222222222222;
                                                                })(DoorValue2222222222222222 || {});
                                                                var EngineeringUnits2222222222222222 = /* @__PURE__ */ ((EngineeringUnits22222222222222222) => {
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CURRENCY1"] = 105] = "CURRENCY1";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CURRENCY2"] = 106] = "CURRENCY2";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CURRENCY3"] = 107] = "CURRENCY3";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CURRENCY4"] = 108] = "CURRENCY4";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CURRENCY5"] = 109] = "CURRENCY5";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CURRENCY6"] = 110] = "CURRENCY6";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CURRENCY7"] = 111] = "CURRENCY7";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CURRENCY8"] = 112] = "CURRENCY8";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CURRENCY9"] = 113] = "CURRENCY9";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CURRENCY10"] = 114] = "CURRENCY10";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["AMPERES"] = 3] = "AMPERES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DECIBELS"] = 199] = "DECIBELS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["FARADS"] = 170] = "FARADS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["HENRYS"] = 171] = "HENRYS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["OHMS"] = 4] = "OHMS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["OHM_METERS"] = 172] = "OHM_METERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOHMS"] = 122] = "KILOHMS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGOHMS"] = 123] = "MEGOHMS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["SIEMENS"] = 173] = "SIEMENS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["TESLAS"] = 175] = "TESLAS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["VOLTS"] = 5] = "VOLTS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["WEBERS"] = 178] = "WEBERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["JOULES"] = 16] = "JOULES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOJOULES"] = 17] = "KILOJOULES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["BTUS"] = 20] = "BTUS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["THERMS"] = 21] = "THERMS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["TON_HOURS"] = 22] = "TON_HOURS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["NEWTON"] = 153] = "NEWTON";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["HERTZ"] = 27] = "HERTZ";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PER_HOUR"] = 131] = "PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MICROMETERS"] = 194] = "MICROMETERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOMETERS"] = 193] = "KILOMETERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["METERS"] = 31] = "METERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["INCHES"] = 32] = "INCHES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["FEET"] = 33] = "FEET";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CANDELAS"] = 179] = "CANDELAS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["LUMENS"] = 36] = "LUMENS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["LUXES"] = 37] = "LUXES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["GRAMS"] = 195] = "GRAMS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["TONS"] = 41] = "TONS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["WATTS"] = 47] = "WATTS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOWATTS"] = 48] = "KILOWATTS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PASCALS"] = 53] = "PASCALS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIBARS"] = 134] = "MILLIBARS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["BARS"] = 55] = "BARS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["YEARS"] = 67] = "YEARS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MONTHS"] = 68] = "MONTHS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["WEEKS"] = 69] = "WEEKS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DAYS"] = 70] = "DAYS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["HOURS"] = 71] = "HOURS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MINUTES"] = 72] = "MINUTES";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["SECONDS"] = 73] = "SECONDS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLILITERS"] = 197] = "MILLILITERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["LITERS"] = 82] = "LITERS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["US_GALLONS"] = 83] = "US_GALLONS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["NO_UNITS"] = 95] = "NO_UNITS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PERCENT"] = 98] = "PERCENT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PER_SECOND"] = 101] = "PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["RADIANS"] = 103] = "RADIANS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PER_MILLE"] = 207] = "PER_MILLE";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["BECQUERELS"] = 222] = "BECQUERELS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["GRAY"] = 225] = "GRAY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MICROGRAY"] = 227] = "MICROGRAY";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["SIEVERTS"] = 228] = "SIEVERTS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIREMS"] = 47814] = "MILLIREMS";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["PH"] = 234] = "PH";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                                                                  EngineeringUnits22222222222222222[EngineeringUnits22222222222222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                                                                  return EngineeringUnits22222222222222222;
                                                                })(EngineeringUnits2222222222222222 || {});
                                                                var EscalatorFault2222222222222222 = /* @__PURE__ */ ((EscalatorFault22222222222222222) => {
                                                                  EscalatorFault22222222222222222[EscalatorFault22222222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                                  EscalatorFault22222222222222222[EscalatorFault22222222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                                  EscalatorFault22222222222222222[EscalatorFault22222222222222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                                                                  EscalatorFault22222222222222222[EscalatorFault22222222222222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                                                                  EscalatorFault22222222222222222[EscalatorFault22222222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                                  EscalatorFault22222222222222222[EscalatorFault22222222222222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                                                                  EscalatorFault22222222222222222[EscalatorFault22222222222222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                                                                  EscalatorFault22222222222222222[EscalatorFault22222222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                                  EscalatorFault22222222222222222[EscalatorFault22222222222222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                                                                  return EscalatorFault22222222222222222;
                                                                })(EscalatorFault2222222222222222 || {});
                                                                var EscalatorMode2222222222222222 = /* @__PURE__ */ ((EscalatorMode22222222222222222) => {
                                                                  EscalatorMode22222222222222222[EscalatorMode22222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                  EscalatorMode22222222222222222[EscalatorMode22222222222222222["STOP"] = 1] = "STOP";
                                                                  EscalatorMode22222222222222222[EscalatorMode22222222222222222["UP"] = 2] = "UP";
                                                                  EscalatorMode22222222222222222[EscalatorMode22222222222222222["DOWN"] = 3] = "DOWN";
                                                                  EscalatorMode22222222222222222[EscalatorMode22222222222222222["INSPECTION"] = 4] = "INSPECTION";
                                                                  EscalatorMode22222222222222222[EscalatorMode22222222222222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                                                                  return EscalatorMode22222222222222222;
                                                                })(EscalatorMode2222222222222222 || {});
                                                                var EscalatorOperationDirection2222222222222222 = /* @__PURE__ */ ((EscalatorOperationDirection22222222222222222) => {
                                                                  EscalatorOperationDirection22222222222222222[EscalatorOperationDirection22222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                  EscalatorOperationDirection22222222222222222[EscalatorOperationDirection22222222222222222["STOPPED"] = 1] = "STOPPED";
                                                                  EscalatorOperationDirection22222222222222222[EscalatorOperationDirection22222222222222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                                                                  EscalatorOperationDirection22222222222222222[EscalatorOperationDirection22222222222222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                                                                  EscalatorOperationDirection22222222222222222[EscalatorOperationDirection22222222222222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                                                                  EscalatorOperationDirection22222222222222222[EscalatorOperationDirection22222222222222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                                                                  return EscalatorOperationDirection22222222222222222;
                                                                })(EscalatorOperationDirection2222222222222222 || {});
                                                                var EventState2222222222222222 = /* @__PURE__ */ ((EventState22222222222222222) => {
                                                                  EventState22222222222222222[EventState22222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                  EventState22222222222222222[EventState22222222222222222["FAULT"] = 1] = "FAULT";
                                                                  EventState22222222222222222[EventState22222222222222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                                                                  EventState22222222222222222[EventState22222222222222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                                                                  EventState22222222222222222[EventState22222222222222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                                                                  EventState22222222222222222[EventState22222222222222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                                                                  return EventState22222222222222222;
                                                                })(EventState2222222222222222 || {});
                                                                var EventType2222222222222222 = /* @__PURE__ */ ((EventType22222222222222222) => {
                                                                  EventType22222222222222222[EventType22222222222222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                                                                  EventType22222222222222222[EventType22222222222222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                                                                  EventType22222222222222222[EventType22222222222222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                                                                  EventType22222222222222222[EventType22222222222222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                                                                  EventType22222222222222222[EventType22222222222222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                                                                  EventType22222222222222222[EventType22222222222222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                                                                  EventType22222222222222222[EventType22222222222222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                                                                  EventType22222222222222222[EventType22222222222222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                                                                  EventType22222222222222222[EventType22222222222222222["EXTENDED"] = 9] = "EXTENDED";
                                                                  EventType22222222222222222[EventType22222222222222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                                                                  EventType22222222222222222[EventType22222222222222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                                                                  EventType22222222222222222[EventType22222222222222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                                                                  EventType22222222222222222[EventType22222222222222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                                                                  EventType22222222222222222[EventType22222222222222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                                                                  EventType22222222222222222[EventType22222222222222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                                                                  EventType22222222222222222[EventType22222222222222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                                                                  EventType22222222222222222[EventType22222222222222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                                                                  EventType22222222222222222[EventType22222222222222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                                                                  EventType22222222222222222[EventType22222222222222222["NONE"] = 20] = "NONE";
                                                                  EventType22222222222222222[EventType22222222222222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                                                                  EventType22222222222222222[EventType22222222222222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                                                                  return EventType22222222222222222;
                                                                })(EventType2222222222222222 || {});
                                                                var FaultType2222222222222222 = /* @__PURE__ */ ((FaultType22222222222222222) => {
                                                                  FaultType22222222222222222[FaultType22222222222222222["NONE"] = 0] = "NONE";
                                                                  FaultType22222222222222222[FaultType22222222222222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                                                                  FaultType22222222222222222[FaultType22222222222222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                                                                  FaultType22222222222222222[FaultType22222222222222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                                                                  FaultType22222222222222222[FaultType22222222222222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                                                                  FaultType22222222222222222[FaultType22222222222222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                                                                  FaultType22222222222222222[FaultType22222222222222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                                                                  FaultType22222222222222222[FaultType22222222222222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                                                                  return FaultType22222222222222222;
                                                                })(FaultType2222222222222222 || {});
                                                                var FileAccessMethod2222222222222222 = /* @__PURE__ */ ((FileAccessMethod22222222222222222) => {
                                                                  FileAccessMethod22222222222222222[FileAccessMethod22222222222222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                                                                  FileAccessMethod22222222222222222[FileAccessMethod22222222222222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                                                                  return FileAccessMethod22222222222222222;
                                                                })(FileAccessMethod2222222222222222 || {});
                                                                var IPMode2222222222222222 = /* @__PURE__ */ ((IPMode22222222222222222) => {
                                                                  IPMode22222222222222222[IPMode22222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                  IPMode22222222222222222[IPMode22222222222222222["FOREIGN"] = 1] = "FOREIGN";
                                                                  IPMode22222222222222222[IPMode22222222222222222["BBMD"] = 2] = "BBMD";
                                                                  return IPMode22222222222222222;
                                                                })(IPMode2222222222222222 || {});
                                                                var LifeSafetyMode2222222222222222 = /* @__PURE__ */ ((LifeSafetyMode22222222222222222) => {
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["OFF"] = 0] = "OFF";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["ON"] = 1] = "ON";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["TEST"] = 2] = "TEST";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["MANNED"] = 3] = "MANNED";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["UNMANNED"] = 4] = "UNMANNED";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["ARMED"] = 5] = "ARMED";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["DISARMED"] = 6] = "DISARMED";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["PREARMED"] = 7] = "PREARMED";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["SLOW"] = 8] = "SLOW";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["FAST"] = 9] = "FAST";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["ENABLED"] = 11] = "ENABLED";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["DISABLED"] = 12] = "DISABLED";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                                                                  LifeSafetyMode22222222222222222[LifeSafetyMode22222222222222222["DEFAULT"] = 14] = "DEFAULT";
                                                                  return LifeSafetyMode22222222222222222;
                                                                })(LifeSafetyMode2222222222222222 || {});
                                                                var LifeSafetyOperation2222222222222222 = /* @__PURE__ */ ((LifeSafetyOperation22222222222222222) => {
                                                                  LifeSafetyOperation22222222222222222[LifeSafetyOperation22222222222222222["NONE"] = 0] = "NONE";
                                                                  LifeSafetyOperation22222222222222222[LifeSafetyOperation22222222222222222["SILENCE"] = 1] = "SILENCE";
                                                                  LifeSafetyOperation22222222222222222[LifeSafetyOperation22222222222222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                                                                  LifeSafetyOperation22222222222222222[LifeSafetyOperation22222222222222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                                                                  LifeSafetyOperation22222222222222222[LifeSafetyOperation22222222222222222["RESET"] = 4] = "RESET";
                                                                  LifeSafetyOperation22222222222222222[LifeSafetyOperation22222222222222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                                                                  LifeSafetyOperation22222222222222222[LifeSafetyOperation22222222222222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                                                                  LifeSafetyOperation22222222222222222[LifeSafetyOperation22222222222222222["UNSILENCE"] = 7] = "UNSILENCE";
                                                                  LifeSafetyOperation22222222222222222[LifeSafetyOperation22222222222222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                                                                  LifeSafetyOperation22222222222222222[LifeSafetyOperation22222222222222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                                                                  return LifeSafetyOperation22222222222222222;
                                                                })(LifeSafetyOperation2222222222222222 || {});
                                                                var LifeSafetyState2222222222222222 = /* @__PURE__ */ ((LifeSafetyState22222222222222222) => {
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["QUIET"] = 0] = "QUIET";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["ALARM"] = 2] = "ALARM";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["FAULT"] = 3] = "FAULT";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["NOT_READY"] = 6] = "NOT_READY";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["ACTIVE"] = 7] = "ACTIVE";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["TAMPER"] = 8] = "TAMPER";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["HOLDUP"] = 13] = "HOLDUP";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["DURESS"] = 14] = "DURESS";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["ABNORMAL"] = 16] = "ABNORMAL";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["DELAYED"] = 18] = "DELAYED";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["BLOCKED"] = 19] = "BLOCKED";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                                                                  LifeSafetyState22222222222222222[LifeSafetyState22222222222222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                                                                  return LifeSafetyState22222222222222222;
                                                                })(LifeSafetyState2222222222222222 || {});
                                                                var LiftCarDirection2222222222222222 = /* @__PURE__ */ ((LiftCarDirection22222222222222222) => {
                                                                  LiftCarDirection22222222222222222[LiftCarDirection22222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                  LiftCarDirection22222222222222222[LiftCarDirection22222222222222222["NONE"] = 1] = "NONE";
                                                                  LiftCarDirection22222222222222222[LiftCarDirection22222222222222222["STOPPED"] = 2] = "STOPPED";
                                                                  LiftCarDirection22222222222222222[LiftCarDirection22222222222222222["UP"] = 3] = "UP";
                                                                  LiftCarDirection22222222222222222[LiftCarDirection22222222222222222["DOWN"] = 4] = "DOWN";
                                                                  LiftCarDirection22222222222222222[LiftCarDirection22222222222222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                                                                  return LiftCarDirection22222222222222222;
                                                                })(LiftCarDirection2222222222222222 || {});
                                                                var LiftCarDoorCommand2222222222222222 = /* @__PURE__ */ ((LiftCarDoorCommand22222222222222222) => {
                                                                  LiftCarDoorCommand22222222222222222[LiftCarDoorCommand22222222222222222["NONE"] = 0] = "NONE";
                                                                  LiftCarDoorCommand22222222222222222[LiftCarDoorCommand22222222222222222["OPEN"] = 1] = "OPEN";
                                                                  LiftCarDoorCommand22222222222222222[LiftCarDoorCommand22222222222222222["CLOSE"] = 2] = "CLOSE";
                                                                  return LiftCarDoorCommand22222222222222222;
                                                                })(LiftCarDoorCommand2222222222222222 || {});
                                                                var LiftCarDriveStatus2222222222222222 = /* @__PURE__ */ ((LiftCarDriveStatus22222222222222222) => {
                                                                  LiftCarDriveStatus22222222222222222[LiftCarDriveStatus22222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                  LiftCarDriveStatus22222222222222222[LiftCarDriveStatus22222222222222222["STATIONARY"] = 1] = "STATIONARY";
                                                                  LiftCarDriveStatus22222222222222222[LiftCarDriveStatus22222222222222222["BRAKING"] = 2] = "BRAKING";
                                                                  LiftCarDriveStatus22222222222222222[LiftCarDriveStatus22222222222222222["ACCELERATE"] = 3] = "ACCELERATE";
                                                                  LiftCarDriveStatus22222222222222222[LiftCarDriveStatus22222222222222222["DECELERATE"] = 4] = "DECELERATE";
                                                                  LiftCarDriveStatus22222222222222222[LiftCarDriveStatus22222222222222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                                                                  LiftCarDriveStatus22222222222222222[LiftCarDriveStatus22222222222222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                                                                  LiftCarDriveStatus22222222222222222[LiftCarDriveStatus22222222222222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                                                                  LiftCarDriveStatus22222222222222222[LiftCarDriveStatus22222222222222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                                                                  LiftCarDriveStatus22222222222222222[LiftCarDriveStatus22222222222222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                                                                  return LiftCarDriveStatus22222222222222222;
                                                                })(LiftCarDriveStatus2222222222222222 || {});
                                                                var LiftCarMode2222222222222222 = /* @__PURE__ */ ((LiftCarMode22222222222222222) => {
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["NORMAL"] = 1] = "NORMAL";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["VIP"] = 2] = "VIP";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["HOMING"] = 3] = "HOMING";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["PARKING"] = 4] = "PARKING";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["INSPECTION"] = 8] = "INSPECTION";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                                                                  LiftCarMode22222222222222222[LiftCarMode22222222222222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                                                                  return LiftCarMode22222222222222222;
                                                                })(LiftCarMode2222222222222222 || {});
                                                                var LiftFault2222222222222222 = /* @__PURE__ */ ((LiftFault22222222222222222) => {
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["START_FAILURE"] = 10] = "START_FAILURE";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                                  LiftFault22222222222222222[LiftFault22222222222222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                                                                  return LiftFault22222222222222222;
                                                                })(LiftFault2222222222222222 || {});
                                                                var LiftGroupMode2222222222222222 = /* @__PURE__ */ ((LiftGroupMode22222222222222222) => {
                                                                  LiftGroupMode22222222222222222[LiftGroupMode22222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                  LiftGroupMode22222222222222222[LiftGroupMode22222222222222222["NORMAL"] = 1] = "NORMAL";
                                                                  LiftGroupMode22222222222222222[LiftGroupMode22222222222222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                                                                  LiftGroupMode22222222222222222[LiftGroupMode22222222222222222["TWO_WAY"] = 3] = "TWO_WAY";
                                                                  LiftGroupMode22222222222222222[LiftGroupMode22222222222222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                                                                  LiftGroupMode22222222222222222[LiftGroupMode22222222222222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                                                                  LiftGroupMode22222222222222222[LiftGroupMode22222222222222222["UP_PEAK"] = 6] = "UP_PEAK";
                                                                  return LiftGroupMode22222222222222222;
                                                                })(LiftGroupMode2222222222222222 || {});
                                                                var LightingInProgress2222222222222222 = /* @__PURE__ */ ((LightingInProgress22222222222222222) => {
                                                                  LightingInProgress22222222222222222[LightingInProgress22222222222222222["IDLE"] = 0] = "IDLE";
                                                                  LightingInProgress22222222222222222[LightingInProgress22222222222222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                                                                  LightingInProgress22222222222222222[LightingInProgress22222222222222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                                                                  LightingInProgress22222222222222222[LightingInProgress22222222222222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                                                                  LightingInProgress22222222222222222[LightingInProgress22222222222222222["OTHER"] = 4] = "OTHER";
                                                                  return LightingInProgress22222222222222222;
                                                                })(LightingInProgress2222222222222222 || {});
                                                                var LightingOperation2222222222222222 = /* @__PURE__ */ ((LightingOperation22222222222222222) => {
                                                                  LightingOperation22222222222222222[LightingOperation22222222222222222["NONE"] = 0] = "NONE";
                                                                  LightingOperation22222222222222222[LightingOperation22222222222222222["FADE_TO"] = 1] = "FADE_TO";
                                                                  LightingOperation22222222222222222[LightingOperation22222222222222222["RAMP_TO"] = 2] = "RAMP_TO";
                                                                  LightingOperation22222222222222222[LightingOperation22222222222222222["STEP_UP"] = 3] = "STEP_UP";
                                                                  LightingOperation22222222222222222[LightingOperation22222222222222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                                                                  LightingOperation22222222222222222[LightingOperation22222222222222222["STEP_ON"] = 5] = "STEP_ON";
                                                                  LightingOperation22222222222222222[LightingOperation22222222222222222["STEP_OFF"] = 6] = "STEP_OFF";
                                                                  LightingOperation22222222222222222[LightingOperation22222222222222222["WARN"] = 7] = "WARN";
                                                                  LightingOperation22222222222222222[LightingOperation22222222222222222["WARN_OFF"] = 8] = "WARN_OFF";
                                                                  LightingOperation22222222222222222[LightingOperation22222222222222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                                                                  LightingOperation22222222222222222[LightingOperation22222222222222222["STOP"] = 10] = "STOP";
                                                                  return LightingOperation22222222222222222;
                                                                })(LightingOperation2222222222222222 || {});
                                                                var LightingTransition2222222222222222 = /* @__PURE__ */ ((LightingTransition22222222222222222) => {
                                                                  LightingTransition22222222222222222[LightingTransition22222222222222222["NONE"] = 0] = "NONE";
                                                                  LightingTransition22222222222222222[LightingTransition22222222222222222["FADE"] = 1] = "FADE";
                                                                  LightingTransition22222222222222222[LightingTransition22222222222222222["RAMP"] = 2] = "RAMP";
                                                                  return LightingTransition22222222222222222;
                                                                })(LightingTransition2222222222222222 || {});
                                                                var LockStatus2222222222222222 = /* @__PURE__ */ ((LockStatus22222222222222222) => {
                                                                  LockStatus22222222222222222[LockStatus22222222222222222["LOCKED"] = 0] = "LOCKED";
                                                                  LockStatus22222222222222222[LockStatus22222222222222222["UNLOCKED"] = 1] = "UNLOCKED";
                                                                  LockStatus22222222222222222[LockStatus22222222222222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                                                                  LockStatus22222222222222222[LockStatus22222222222222222["UNUSED"] = 3] = "UNUSED";
                                                                  LockStatus22222222222222222[LockStatus22222222222222222["UNKNOWN"] = 4] = "UNKNOWN";
                                                                  return LockStatus22222222222222222;
                                                                })(LockStatus2222222222222222 || {});
                                                                var LoggingType2222222222222222 = /* @__PURE__ */ ((LoggingType22222222222222222) => {
                                                                  LoggingType22222222222222222[LoggingType22222222222222222["POLLED"] = 0] = "POLLED";
                                                                  LoggingType22222222222222222[LoggingType22222222222222222["COV"] = 1] = "COV";
                                                                  LoggingType22222222222222222[LoggingType22222222222222222["TRIGGERED"] = 2] = "TRIGGERED";
                                                                  return LoggingType22222222222222222;
                                                                })(LoggingType2222222222222222 || {});
                                                                var Maintenance2222222222222222 = /* @__PURE__ */ ((Maintenance22222222222222222) => {
                                                                  Maintenance22222222222222222[Maintenance22222222222222222["NONE"] = 0] = "NONE";
                                                                  Maintenance22222222222222222[Maintenance22222222222222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                                                                  Maintenance22222222222222222[Maintenance22222222222222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                                                                  Maintenance22222222222222222[Maintenance22222222222222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                                                                  return Maintenance22222222222222222;
                                                                })(Maintenance2222222222222222 || {});
                                                                var NetworkNumberQuality2222222222222222 = /* @__PURE__ */ ((NetworkNumberQuality22222222222222222) => {
                                                                  NetworkNumberQuality22222222222222222[NetworkNumberQuality22222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                  NetworkNumberQuality22222222222222222[NetworkNumberQuality22222222222222222["LEARNED"] = 1] = "LEARNED";
                                                                  NetworkNumberQuality22222222222222222[NetworkNumberQuality22222222222222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                                                                  NetworkNumberQuality22222222222222222[NetworkNumberQuality22222222222222222["CONFIGURED"] = 3] = "CONFIGURED";
                                                                  return NetworkNumberQuality22222222222222222;
                                                                })(NetworkNumberQuality2222222222222222 || {});
                                                                var NetworkPortCommand2222222222222222 = /* @__PURE__ */ ((NetworkPortCommand22222222222222222) => {
                                                                  NetworkPortCommand22222222222222222[NetworkPortCommand22222222222222222["IDLE"] = 0] = "IDLE";
                                                                  NetworkPortCommand22222222222222222[NetworkPortCommand22222222222222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                                                                  NetworkPortCommand22222222222222222[NetworkPortCommand22222222222222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                                                                  NetworkPortCommand22222222222222222[NetworkPortCommand22222222222222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                                                                  NetworkPortCommand22222222222222222[NetworkPortCommand22222222222222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                                                                  NetworkPortCommand22222222222222222[NetworkPortCommand22222222222222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                                                                  NetworkPortCommand22222222222222222[NetworkPortCommand22222222222222222["DISCONNECT"] = 6] = "DISCONNECT";
                                                                  NetworkPortCommand22222222222222222[NetworkPortCommand22222222222222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                                                                  return NetworkPortCommand22222222222222222;
                                                                })(NetworkPortCommand2222222222222222 || {});
                                                                var NetworkType2222222222222222 = /* @__PURE__ */ ((NetworkType22222222222222222) => {
                                                                  NetworkType22222222222222222[NetworkType22222222222222222["ETHERNET"] = 0] = "ETHERNET";
                                                                  NetworkType22222222222222222[NetworkType22222222222222222["ARCNET"] = 1] = "ARCNET";
                                                                  NetworkType22222222222222222[NetworkType22222222222222222["MSTP"] = 2] = "MSTP";
                                                                  NetworkType22222222222222222[NetworkType22222222222222222["PTP"] = 3] = "PTP";
                                                                  NetworkType22222222222222222[NetworkType22222222222222222["LONTALK"] = 4] = "LONTALK";
                                                                  NetworkType22222222222222222[NetworkType22222222222222222["IPV4"] = 5] = "IPV4";
                                                                  NetworkType22222222222222222[NetworkType22222222222222222["ZIGBEE"] = 6] = "ZIGBEE";
                                                                  NetworkType22222222222222222[NetworkType22222222222222222["VIRTUAL"] = 7] = "VIRTUAL";
                                                                  NetworkType22222222222222222[NetworkType22222222222222222["IPV6"] = 9] = "IPV6";
                                                                  NetworkType22222222222222222[NetworkType22222222222222222["SERIAL"] = 10] = "SERIAL";
                                                                  return NetworkType22222222222222222;
                                                                })(NetworkType2222222222222222 || {});
                                                                var NodeType2222222222222222 = /* @__PURE__ */ ((NodeType22222222222222222) => {
                                                                  NodeType22222222222222222[NodeType22222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                  NodeType22222222222222222[NodeType22222222222222222["SYSTEM"] = 1] = "SYSTEM";
                                                                  NodeType22222222222222222[NodeType22222222222222222["NETWORK"] = 2] = "NETWORK";
                                                                  NodeType22222222222222222[NodeType22222222222222222["DEVICE"] = 3] = "DEVICE";
                                                                  NodeType22222222222222222[NodeType22222222222222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                                                                  NodeType22222222222222222[NodeType22222222222222222["AREA"] = 5] = "AREA";
                                                                  NodeType22222222222222222[NodeType22222222222222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                                                                  NodeType22222222222222222[NodeType22222222222222222["POINT"] = 7] = "POINT";
                                                                  NodeType22222222222222222[NodeType22222222222222222["COLLECTION"] = 8] = "COLLECTION";
                                                                  NodeType22222222222222222[NodeType22222222222222222["PROPERTY"] = 9] = "PROPERTY";
                                                                  NodeType22222222222222222[NodeType22222222222222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                                                                  NodeType22222222222222222[NodeType22222222222222222["OTHER"] = 11] = "OTHER";
                                                                  NodeType22222222222222222[NodeType22222222222222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                                                                  NodeType22222222222222222[NodeType22222222222222222["BUILDING"] = 13] = "BUILDING";
                                                                  NodeType22222222222222222[NodeType22222222222222222["FLOOR"] = 14] = "FLOOR";
                                                                  NodeType22222222222222222[NodeType22222222222222222["SECTION"] = 15] = "SECTION";
                                                                  NodeType22222222222222222[NodeType22222222222222222["MODULE"] = 16] = "MODULE";
                                                                  NodeType22222222222222222[NodeType22222222222222222["TREE"] = 17] = "TREE";
                                                                  NodeType22222222222222222[NodeType22222222222222222["MEMBER"] = 18] = "MEMBER";
                                                                  NodeType22222222222222222[NodeType22222222222222222["PROTOCOL"] = 19] = "PROTOCOL";
                                                                  NodeType22222222222222222[NodeType22222222222222222["ROOM"] = 20] = "ROOM";
                                                                  NodeType22222222222222222[NodeType22222222222222222["ZONE"] = 21] = "ZONE";
                                                                  return NodeType22222222222222222;
                                                                })(NodeType2222222222222222 || {});
                                                                var NotifyType2222222222222222 = /* @__PURE__ */ ((NotifyType22222222222222222) => {
                                                                  NotifyType22222222222222222[NotifyType22222222222222222["ALARM"] = 0] = "ALARM";
                                                                  NotifyType22222222222222222[NotifyType22222222222222222["EVENT"] = 1] = "EVENT";
                                                                  NotifyType22222222222222222[NotifyType22222222222222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                                                                  return NotifyType22222222222222222;
                                                                })(NotifyType2222222222222222 || {});
                                                                var ObjectType2222222222222222 = /* @__PURE__ */ ((ObjectType22222222222222222) => {
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["COMMAND"] = 7] = "COMMAND";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["DEVICE"] = 8] = "DEVICE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["FILE"] = 10] = "FILE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["GROUP"] = 11] = "GROUP";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["LIFT"] = 59] = "LIFT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["LOOP"] = 12] = "LOOP";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["TIMER"] = 31] = "TIMER";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                                  ObjectType22222222222222222[ObjectType22222222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                                  return ObjectType22222222222222222;
                                                                })(ObjectType2222222222222222 || {});
                                                                var Polarity2222222222222222 = /* @__PURE__ */ ((Polarity22222222222222222) => {
                                                                  Polarity22222222222222222[Polarity22222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                  Polarity22222222222222222[Polarity22222222222222222["REVERSE"] = 1] = "REVERSE";
                                                                  return Polarity22222222222222222;
                                                                })(Polarity2222222222222222 || {});
                                                                var ProgramError2222222222222222 = /* @__PURE__ */ ((ProgramError22222222222222222) => {
                                                                  ProgramError22222222222222222[ProgramError22222222222222222["NORMAL"] = 0] = "NORMAL";
                                                                  ProgramError22222222222222222[ProgramError22222222222222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                                                                  ProgramError22222222222222222[ProgramError22222222222222222["INTERNAL"] = 2] = "INTERNAL";
                                                                  ProgramError22222222222222222[ProgramError22222222222222222["PROGRAM"] = 3] = "PROGRAM";
                                                                  ProgramError22222222222222222[ProgramError22222222222222222["OTHER"] = 4] = "OTHER";
                                                                  return ProgramError22222222222222222;
                                                                })(ProgramError2222222222222222 || {});
                                                                var ProgramRequest2222222222222222 = /* @__PURE__ */ ((ProgramRequest22222222222222222) => {
                                                                  ProgramRequest22222222222222222[ProgramRequest22222222222222222["READY"] = 0] = "READY";
                                                                  ProgramRequest22222222222222222[ProgramRequest22222222222222222["LOAD"] = 1] = "LOAD";
                                                                  ProgramRequest22222222222222222[ProgramRequest22222222222222222["RUN"] = 2] = "RUN";
                                                                  ProgramRequest22222222222222222[ProgramRequest22222222222222222["HALT"] = 3] = "HALT";
                                                                  ProgramRequest22222222222222222[ProgramRequest22222222222222222["RESTART"] = 4] = "RESTART";
                                                                  ProgramRequest22222222222222222[ProgramRequest22222222222222222["UNLOAD"] = 5] = "UNLOAD";
                                                                  return ProgramRequest22222222222222222;
                                                                })(ProgramRequest2222222222222222 || {});
                                                                var ProgramState2222222222222222 = /* @__PURE__ */ ((ProgramState22222222222222222) => {
                                                                  ProgramState22222222222222222[ProgramState22222222222222222["IDLE"] = 0] = "IDLE";
                                                                  ProgramState22222222222222222[ProgramState22222222222222222["LOADING"] = 1] = "LOADING";
                                                                  ProgramState22222222222222222[ProgramState22222222222222222["RUNNING"] = 2] = "RUNNING";
                                                                  ProgramState22222222222222222[ProgramState22222222222222222["WAITING"] = 3] = "WAITING";
                                                                  ProgramState22222222222222222[ProgramState22222222222222222["HALTED"] = 4] = "HALTED";
                                                                  ProgramState22222222222222222[ProgramState22222222222222222["UNLOADING"] = 5] = "UNLOADING";
                                                                  return ProgramState22222222222222222;
                                                                })(ProgramState2222222222222222 || {});
                                                                var PropertyIdentifier2222222222222222 = /* @__PURE__ */ ((PropertyIdentifier22222222222222222) => {
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACTION"] = 2] = "ACTION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ALL"] = 8] = "ALL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ARCHIVE"] = 13] = "ARCHIVE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BIAS"] = 14] = "BIAS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BIT_MASK"] = 342] = "BIT_MASK";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CAR_MODE"] = 456] = "CAR_MODE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["COMMAND"] = 417] = "COMMAND";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["COUNT"] = 177] = "COUNT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DATE_LIST"] = 23] = "DATE_LIST";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DEADBAND"] = 25] = "DEADBAND";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ENABLE"] = 133] = "ENABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["GROUP_ID"] = 465] = "GROUP_ID";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["IS_UTC"] = 344] = "IS_UTC";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["KEY_SETS"] = 330] = "KEY_SETS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOCATION"] = 58] = "LOCATION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOCKOUT"] = 282] = "LOCKOUT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MEMBERS"] = 286] = "MEMBERS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MODE"] = 160] = "MODE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OPTIONAL"] = 80] = "OPTIONAL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["POLARITY"] = 84] = "POLARITY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["POWER"] = 384] = "POWER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["POWER_MODE"] = 479] = "POWER_MODE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PRESCALE"] = 185] = "PRESCALE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PRIORITY"] = 86] = "PRIORITY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["READ_ONLY"] = 99] = "READ_ONLY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["RELIABILITY"] = 103] = "RELIABILITY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["REPRESENTS"] = 491] = "REPRESENTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["REQUIRED"] = 105] = "REQUIRED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["RESOLUTION"] = 106] = "RESOLUTION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SCALE"] = 187] = "SCALE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SETPOINT"] = 108] = "SETPOINT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SETTING"] = 162] = "SETTING";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SILENCED"] = 163] = "SILENCED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["START_TIME"] = 142] = "START_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["STOP_TIME"] = 143] = "STOP_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TAGS"] = 486] = "TAGS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TRANSITION"] = 385] = "TRANSITION";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["TRIGGER"] = 205] = "TRIGGER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["UNITS"] = 117] = "UNITS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["USER_NAME"] = 317] = "USER_NAME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["USER_TYPE"] = 318] = "USER_TYPE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["VALUE_SET"] = 191] = "VALUE_SET";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                                                                  PropertyIdentifier22222222222222222[PropertyIdentifier22222222222222222["ZONE_TO"] = 321] = "ZONE_TO";
                                                                  return PropertyIdentifier22222222222222222;
                                                                })(PropertyIdentifier2222222222222222 || {});
                                                                var ProtocolLevel2222222222222222 = /* @__PURE__ */ ((ProtocolLevel22222222222222222) => {
                                                                  ProtocolLevel22222222222222222[ProtocolLevel22222222222222222["PHYSICAL"] = 0] = "PHYSICAL";
                                                                  ProtocolLevel22222222222222222[ProtocolLevel22222222222222222["PROTOCOL"] = 1] = "PROTOCOL";
                                                                  ProtocolLevel22222222222222222[ProtocolLevel22222222222222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                                                                  ProtocolLevel22222222222222222[ProtocolLevel22222222222222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                                                                  return ProtocolLevel22222222222222222;
                                                                })(ProtocolLevel2222222222222222 || {});
                                                                var Relationship2222222222222222 = /* @__PURE__ */ ((Relationship22222222222222222) => {
                                                                  Relationship22222222222222222[Relationship22222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                  Relationship22222222222222222[Relationship22222222222222222["DEFAULT"] = 1] = "DEFAULT";
                                                                  Relationship22222222222222222[Relationship22222222222222222["CONTAINS"] = 2] = "CONTAINS";
                                                                  Relationship22222222222222222[Relationship22222222222222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                                                                  Relationship22222222222222222[Relationship22222222222222222["USES"] = 4] = "USES";
                                                                  Relationship22222222222222222[Relationship22222222222222222["USED_BY"] = 5] = "USED_BY";
                                                                  Relationship22222222222222222[Relationship22222222222222222["COMMANDS"] = 6] = "COMMANDS";
                                                                  Relationship22222222222222222[Relationship22222222222222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                                                                  Relationship22222222222222222[Relationship22222222222222222["ADJUSTS"] = 8] = "ADJUSTS";
                                                                  Relationship22222222222222222[Relationship22222222222222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                                                                  Relationship22222222222222222[Relationship22222222222222222["INGRESS"] = 10] = "INGRESS";
                                                                  Relationship22222222222222222[Relationship22222222222222222["EGRESS"] = 11] = "EGRESS";
                                                                  Relationship22222222222222222[Relationship22222222222222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                                                                  Relationship22222222222222222[Relationship22222222222222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                                                                  Relationship22222222222222222[Relationship22222222222222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                                                                  Relationship22222222222222222[Relationship22222222222222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                                                                  Relationship22222222222222222[Relationship22222222222222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                                                                  Relationship22222222222222222[Relationship22222222222222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                                                                  Relationship22222222222222222[Relationship22222222222222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                                                                  Relationship22222222222222222[Relationship22222222222222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                                                                  Relationship22222222222222222[Relationship22222222222222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                                                                  Relationship22222222222222222[Relationship22222222222222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                                                                  Relationship22222222222222222[Relationship22222222222222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                                                                  Relationship22222222222222222[Relationship22222222222222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                                                                  Relationship22222222222222222[Relationship22222222222222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                                                                  Relationship22222222222222222[Relationship22222222222222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                                                                  Relationship22222222222222222[Relationship22222222222222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                                                                  Relationship22222222222222222[Relationship22222222222222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                                                                  Relationship22222222222222222[Relationship22222222222222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                                                                  Relationship22222222222222222[Relationship22222222222222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                                                                  return Relationship22222222222222222;
                                                                })(Relationship2222222222222222 || {});
                                                                var Reliability2222222222222222 = /* @__PURE__ */ ((Reliability22222222222222222) => {
                                                                  Reliability22222222222222222[Reliability22222222222222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                                                                  Reliability22222222222222222[Reliability22222222222222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                                                                  Reliability22222222222222222[Reliability22222222222222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                                                                  Reliability22222222222222222[Reliability22222222222222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                                                                  Reliability22222222222222222[Reliability22222222222222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                                                                  Reliability22222222222222222[Reliability22222222222222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                                                                  Reliability22222222222222222[Reliability22222222222222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                                                                  Reliability22222222222222222[Reliability22222222222222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                                                                  Reliability22222222222222222[Reliability22222222222222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                                                                  Reliability22222222222222222[Reliability22222222222222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                                                                  Reliability22222222222222222[Reliability22222222222222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                                                                  Reliability22222222222222222[Reliability22222222222222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                                                                  Reliability22222222222222222[Reliability22222222222222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                                                                  Reliability22222222222222222[Reliability22222222222222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                                                                  Reliability22222222222222222[Reliability22222222222222222["TRIPPED"] = 15] = "TRIPPED";
                                                                  Reliability22222222222222222[Reliability22222222222222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                                                                  Reliability22222222222222222[Reliability22222222222222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                                                                  Reliability22222222222222222[Reliability22222222222222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                                                                  Reliability22222222222222222[Reliability22222222222222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                                                                  Reliability22222222222222222[Reliability22222222222222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                                                                  Reliability22222222222222222[Reliability22222222222222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                                                                  Reliability22222222222222222[Reliability22222222222222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                                                                  Reliability22222222222222222[Reliability22222222222222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                                                                  Reliability22222222222222222[Reliability22222222222222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                                                                  return Reliability22222222222222222;
                                                                })(Reliability2222222222222222 || {});
                                                                var RestartReason2222222222222222 = /* @__PURE__ */ ((RestartReason22222222222222222) => {
                                                                  RestartReason22222222222222222[RestartReason22222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                                  RestartReason22222222222222222[RestartReason22222222222222222["COLDSTART"] = 1] = "COLDSTART";
                                                                  RestartReason22222222222222222[RestartReason22222222222222222["WARMSTART"] = 2] = "WARMSTART";
                                                                  RestartReason22222222222222222[RestartReason22222222222222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                                                                  RestartReason22222222222222222[RestartReason22222222222222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                                                                  RestartReason22222222222222222[RestartReason22222222222222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                                                                  RestartReason22222222222222222[RestartReason22222222222222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                                                                  RestartReason22222222222222222[RestartReason22222222222222222["SUSPENDED"] = 7] = "SUSPENDED";
                                                                  RestartReason22222222222222222[RestartReason22222222222222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                                                                  return RestartReason22222222222222222;
                                                                })(RestartReason2222222222222222 || {});
                                                                var SecurityLevel2222222222222222 = /* @__PURE__ */ ((SecurityLevel22222222222222222) => {
                                                                  SecurityLevel22222222222222222[SecurityLevel22222222222222222["INCAPABLE"] = 0] = "INCAPABLE";
                                                                  SecurityLevel22222222222222222[SecurityLevel22222222222222222["PLAIN"] = 1] = "PLAIN";
                                                                  SecurityLevel22222222222222222[SecurityLevel22222222222222222["SIGNED"] = 2] = "SIGNED";
                                                                  SecurityLevel22222222222222222[SecurityLevel22222222222222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                                                                  SecurityLevel22222222222222222[SecurityLevel22222222222222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                                                                  SecurityLevel22222222222222222[SecurityLevel22222222222222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                                                                  return SecurityLevel22222222222222222;
                                                                })(SecurityLevel2222222222222222 || {});
                                                                var SecurityPolicy2222222222222222 = /* @__PURE__ */ ((SecurityPolicy22222222222222222) => {
                                                                  SecurityPolicy22222222222222222[SecurityPolicy22222222222222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                                                                  SecurityPolicy22222222222222222[SecurityPolicy22222222222222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                                                                  SecurityPolicy22222222222222222[SecurityPolicy22222222222222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                                                                  SecurityPolicy22222222222222222[SecurityPolicy22222222222222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                                                                  return SecurityPolicy22222222222222222;
                                                                })(SecurityPolicy2222222222222222 || {});
                                                                var Segmentation2222222222222222 = /* @__PURE__ */ ((Segmentation22222222222222222) => {
                                                                  Segmentation22222222222222222[Segmentation22222222222222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                                                                  Segmentation22222222222222222[Segmentation22222222222222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                                                                  Segmentation22222222222222222[Segmentation22222222222222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                                                                  Segmentation22222222222222222[Segmentation22222222222222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                                                                  return Segmentation22222222222222222;
                                                                })(Segmentation2222222222222222 || {});
                                                                var ShedState2222222222222222 = /* @__PURE__ */ ((ShedState22222222222222222) => {
                                                                  ShedState22222222222222222[ShedState22222222222222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                                                                  ShedState22222222222222222[ShedState22222222222222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                                                                  ShedState22222222222222222[ShedState22222222222222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                                                                  ShedState22222222222222222[ShedState22222222222222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                                                                  return ShedState22222222222222222;
                                                                })(ShedState2222222222222222 || {});
                                                                var SilencedState2222222222222222 = /* @__PURE__ */ ((SilencedState22222222222222222) => {
                                                                  SilencedState22222222222222222[SilencedState22222222222222222["UNSILENCED"] = 0] = "UNSILENCED";
                                                                  SilencedState22222222222222222[SilencedState22222222222222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                                                                  SilencedState22222222222222222[SilencedState22222222222222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                                                                  SilencedState22222222222222222[SilencedState22222222222222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                                                                  return SilencedState22222222222222222;
                                                                })(SilencedState2222222222222222 || {});
                                                                var TimerState2222222222222222 = /* @__PURE__ */ ((TimerState22222222222222222) => {
                                                                  TimerState22222222222222222[TimerState22222222222222222["IDLE"] = 0] = "IDLE";
                                                                  TimerState22222222222222222[TimerState22222222222222222["RUNNING"] = 1] = "RUNNING";
                                                                  TimerState22222222222222222[TimerState22222222222222222["EXPIRED"] = 2] = "EXPIRED";
                                                                  return TimerState22222222222222222;
                                                                })(TimerState2222222222222222 || {});
                                                                var TimerTransition2222222222222222 = /* @__PURE__ */ ((TimerTransition22222222222222222) => {
                                                                  TimerTransition22222222222222222[TimerTransition22222222222222222["NONE"] = 0] = "NONE";
                                                                  TimerTransition22222222222222222[TimerTransition22222222222222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                                                                  TimerTransition22222222222222222[TimerTransition22222222222222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                                                                  TimerTransition22222222222222222[TimerTransition22222222222222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                                                                  TimerTransition22222222222222222[TimerTransition22222222222222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                                                                  TimerTransition22222222222222222[TimerTransition22222222222222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                                                                  TimerTransition22222222222222222[TimerTransition22222222222222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                                                                  TimerTransition22222222222222222[TimerTransition22222222222222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                                                                  return TimerTransition22222222222222222;
                                                                })(TimerTransition2222222222222222 || {});
                                                                var VTClass2222222222222222 = /* @__PURE__ */ ((VTClass22222222222222222) => {
                                                                  VTClass22222222222222222[VTClass22222222222222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                                                                  VTClass22222222222222222[VTClass22222222222222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                                                                  VTClass22222222222222222[VTClass22222222222222222["DEC_VT52"] = 2] = "DEC_VT52";
                                                                  VTClass22222222222222222[VTClass22222222222222222["DEC_VT100"] = 3] = "DEC_VT100";
                                                                  VTClass22222222222222222[VTClass22222222222222222["DEC_VT220"] = 4] = "DEC_VT220";
                                                                  VTClass22222222222222222[VTClass22222222222222222["HP_700_94"] = 5] = "HP_700_94";
                                                                  VTClass22222222222222222[VTClass22222222222222222["IBM_3130"] = 6] = "IBM_3130";
                                                                  return VTClass22222222222222222;
                                                                })(VTClass2222222222222222 || {});
                                                                var WriteStatus2222222222222222 = /* @__PURE__ */ ((WriteStatus22222222222222222) => {
                                                                  WriteStatus22222222222222222[WriteStatus22222222222222222["IDLE"] = 0] = "IDLE";
                                                                  WriteStatus22222222222222222[WriteStatus22222222222222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                                                                  WriteStatus22222222222222222[WriteStatus22222222222222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                                                                  WriteStatus22222222222222222[WriteStatus22222222222222222["FAILED"] = 3] = "FAILED";
                                                                  return WriteStatus22222222222222222;
                                                                })(WriteStatus2222222222222222 || {});
                                                                var DaysOfWeek2222222222222222 = /* @__PURE__ */ ((DaysOfWeek22222222222222222) => {
                                                                  DaysOfWeek22222222222222222[DaysOfWeek22222222222222222["MONDAY"] = 0] = "MONDAY";
                                                                  DaysOfWeek22222222222222222[DaysOfWeek22222222222222222["TUESDAY"] = 1] = "TUESDAY";
                                                                  DaysOfWeek22222222222222222[DaysOfWeek22222222222222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                                                                  DaysOfWeek22222222222222222[DaysOfWeek22222222222222222["THURSDAY"] = 3] = "THURSDAY";
                                                                  DaysOfWeek22222222222222222[DaysOfWeek22222222222222222["FRIDAY"] = 4] = "FRIDAY";
                                                                  DaysOfWeek22222222222222222[DaysOfWeek22222222222222222["SATURDAY"] = 5] = "SATURDAY";
                                                                  DaysOfWeek22222222222222222[DaysOfWeek22222222222222222["SUNDAY"] = 6] = "SUNDAY";
                                                                  return DaysOfWeek22222222222222222;
                                                                })(DaysOfWeek2222222222222222 || {});
                                                                var EventTransitionBits2222222222222222 = /* @__PURE__ */ ((EventTransitionBits22222222222222222) => {
                                                                  EventTransitionBits22222222222222222[EventTransitionBits22222222222222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                                                                  EventTransitionBits22222222222222222[EventTransitionBits22222222222222222["TO_FAULT"] = 1] = "TO_FAULT";
                                                                  EventTransitionBits22222222222222222[EventTransitionBits22222222222222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                                                                  return EventTransitionBits22222222222222222;
                                                                })(EventTransitionBits2222222222222222 || {});
                                                                var LimitEnable2222222222222222 = /* @__PURE__ */ ((LimitEnable22222222222222222) => {
                                                                  LimitEnable22222222222222222[LimitEnable22222222222222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                                                                  LimitEnable22222222222222222[LimitEnable22222222222222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                                                                  return LimitEnable22222222222222222;
                                                                })(LimitEnable2222222222222222 || {});
                                                                var LogStatus2222222222222222 = /* @__PURE__ */ ((LogStatus22222222222222222) => {
                                                                  LogStatus22222222222222222[LogStatus22222222222222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                                                                  LogStatus22222222222222222[LogStatus22222222222222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                                                                  LogStatus22222222222222222[LogStatus22222222222222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                                                                  return LogStatus22222222222222222;
                                                                })(LogStatus2222222222222222 || {});
                                                                var ObjectTypesSupported2222222222222222 = /* @__PURE__ */ ((ObjectTypesSupported22222222222222222) => {
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["COMMAND"] = 7] = "COMMAND";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["DEVICE"] = 8] = "DEVICE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["FILE"] = 10] = "FILE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["GROUP"] = 11] = "GROUP";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["LOOP"] = 12] = "LOOP";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["TIMER"] = 31] = "TIMER";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                                  ObjectTypesSupported22222222222222222[ObjectTypesSupported22222222222222222["LIFT"] = 59] = "LIFT";
                                                                  return ObjectTypesSupported22222222222222222;
                                                                })(ObjectTypesSupported2222222222222222 || {});
                                                                var ResultFlags2222222222222222 = /* @__PURE__ */ ((ResultFlags22222222222222222) => {
                                                                  ResultFlags22222222222222222[ResultFlags22222222222222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                                                                  ResultFlags22222222222222222[ResultFlags22222222222222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                                                                  ResultFlags22222222222222222[ResultFlags22222222222222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                                                                  return ResultFlags22222222222222222;
                                                                })(ResultFlags2222222222222222 || {});
                                                                var ServicesSupported2222222222222222 = /* @__PURE__ */ ((ServicesSupported22222222222222222) => {
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["I_AM"] = 26] = "I_AM";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["I_HAVE"] = 27] = "I_HAVE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["WHO_HAS"] = 33] = "WHO_HAS";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["WHO_IS"] = 34] = "WHO_IS";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["READ_RANGE"] = 35] = "READ_RANGE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                                  ServicesSupported22222222222222222[ServicesSupported22222222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                                  return ServicesSupported22222222222222222;
                                                                })(ServicesSupported2222222222222222 || {});
                                                                var StatusFlags2222222222222222 = /* @__PURE__ */ ((StatusFlags22222222222222222) => {
                                                                  StatusFlags22222222222222222[StatusFlags22222222222222222["IN_ALARM"] = 0] = "IN_ALARM";
                                                                  StatusFlags22222222222222222[StatusFlags22222222222222222["FAULT"] = 1] = "FAULT";
                                                                  StatusFlags22222222222222222[StatusFlags22222222222222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                                                                  StatusFlags22222222222222222[StatusFlags22222222222222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                                                                  return StatusFlags22222222222222222;
                                                                })(StatusFlags2222222222222222 || {});
                                                                var ApplicationTag2222222222222222 = /* @__PURE__ */ ((ApplicationTag22222222222222222) => {
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["NULL"] = 0] = "NULL";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["BOOLEAN"] = 1] = "BOOLEAN";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["REAL"] = 4] = "REAL";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["DOUBLE"] = 5] = "DOUBLE";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["BIT_STRING"] = 8] = "BIT_STRING";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["ENUMERATED"] = 9] = "ENUMERATED";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["DATE"] = 10] = "DATE";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["TIME"] = 11] = "TIME";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["DATERANGE"] = 102] = "DATERANGE";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["DATETIME"] = 103] = "DATETIME";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["ERROR"] = 105] = "ERROR";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["DESTINATION"] = 109] = "DESTINATION";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["RECIPIENT"] = 110] = "RECIPIENT";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                                                                  ApplicationTag22222222222222222[ApplicationTag22222222222222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                                                                  return ApplicationTag22222222222222222;
                                                                })(ApplicationTag2222222222222222 || {});
                                                                var ApplicationTagName2222222222222222 = invertEnum2222222222222222(
                                                                  ApplicationTag2222222222222222
                                                                );
                                                                var BvlcResultFormat2222222222222222 = /* @__PURE__ */ ((BvlcResultFormat22222222222222222) => {
                                                                  BvlcResultFormat22222222222222222[BvlcResultFormat22222222222222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                                                                  BvlcResultFormat22222222222222222[BvlcResultFormat22222222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                                  BvlcResultFormat22222222222222222[BvlcResultFormat22222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                                  BvlcResultFormat22222222222222222[BvlcResultFormat22222222222222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                                                                  BvlcResultFormat22222222222222222[BvlcResultFormat22222222222222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                                                                  BvlcResultFormat22222222222222222[BvlcResultFormat22222222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                                                                  BvlcResultFormat22222222222222222[BvlcResultFormat22222222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                                                                  return BvlcResultFormat22222222222222222;
                                                                })(BvlcResultFormat2222222222222222 || {});
                                                                var BvlcResultPurpose2222222222222222 = /* @__PURE__ */ ((BvlcResultPurpose22222222222222222) => {
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                                                                  BvlcResultPurpose22222222222222222[BvlcResultPurpose22222222222222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                                                                  return BvlcResultPurpose22222222222222222;
                                                                })(BvlcResultPurpose2222222222222222 || {});
                                                                var CharacterStringEncoding2222222222222222 = /* @__PURE__ */ ((CharacterStringEncoding22222222222222222) => {
                                                                  CharacterStringEncoding22222222222222222[CharacterStringEncoding22222222222222222["UTF_8"] = 0] = "UTF_8";
                                                                  CharacterStringEncoding22222222222222222[CharacterStringEncoding22222222222222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                                                                  CharacterStringEncoding22222222222222222[CharacterStringEncoding22222222222222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                                                                  CharacterStringEncoding22222222222222222[CharacterStringEncoding22222222222222222["UCS_4"] = 3] = "UCS_4";
                                                                  CharacterStringEncoding22222222222222222[CharacterStringEncoding22222222222222222["UCS_2"] = 4] = "UCS_2";
                                                                  CharacterStringEncoding22222222222222222[CharacterStringEncoding22222222222222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                                                                  return CharacterStringEncoding22222222222222222;
                                                                })(CharacterStringEncoding2222222222222222 || {});
                                                                var CovType2222222222222222 = /* @__PURE__ */ ((CovType22222222222222222) => {
                                                                  CovType22222222222222222[CovType22222222222222222["REAL"] = 0] = "REAL";
                                                                  CovType22222222222222222[CovType22222222222222222["BIT_STRING"] = 1] = "BIT_STRING";
                                                                  return CovType22222222222222222;
                                                                })(CovType2222222222222222 || {});
                                                                var EnableDisable2222222222222222 = /* @__PURE__ */ ((EnableDisable22222222222222222) => {
                                                                  EnableDisable22222222222222222[EnableDisable22222222222222222["ENABLE"] = 0] = "ENABLE";
                                                                  EnableDisable22222222222222222[EnableDisable22222222222222222["DISABLE"] = 1] = "DISABLE";
                                                                  EnableDisable22222222222222222[EnableDisable22222222222222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                                                                  return EnableDisable22222222222222222;
                                                                })(EnableDisable2222222222222222 || {});
                                                                var MaxApduLengthAccepted2222222222222222 = /* @__PURE__ */ ((MaxApduLengthAccepted22222222222222222) => {
                                                                  MaxApduLengthAccepted22222222222222222[MaxApduLengthAccepted22222222222222222["OCTETS_50"] = 0] = "OCTETS_50";
                                                                  MaxApduLengthAccepted22222222222222222[MaxApduLengthAccepted22222222222222222["OCTETS_128"] = 1] = "OCTETS_128";
                                                                  MaxApduLengthAccepted22222222222222222[MaxApduLengthAccepted22222222222222222["OCTETS_206"] = 2] = "OCTETS_206";
                                                                  MaxApduLengthAccepted22222222222222222[MaxApduLengthAccepted22222222222222222["OCTETS_480"] = 3] = "OCTETS_480";
                                                                  MaxApduLengthAccepted22222222222222222[MaxApduLengthAccepted22222222222222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                                                                  MaxApduLengthAccepted22222222222222222[MaxApduLengthAccepted22222222222222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                                                                  return MaxApduLengthAccepted22222222222222222;
                                                                })(MaxApduLengthAccepted2222222222222222 || {});
                                                                var MaxSegmentsAccepted2222222222222222 = /* @__PURE__ */ ((MaxSegmentsAccepted22222222222222222) => {
                                                                  MaxSegmentsAccepted22222222222222222[MaxSegmentsAccepted22222222222222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                                                                  MaxSegmentsAccepted22222222222222222[MaxSegmentsAccepted22222222222222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                                                                  MaxSegmentsAccepted22222222222222222[MaxSegmentsAccepted22222222222222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                                                                  MaxSegmentsAccepted22222222222222222[MaxSegmentsAccepted22222222222222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                                                                  MaxSegmentsAccepted22222222222222222[MaxSegmentsAccepted22222222222222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                                                                  MaxSegmentsAccepted22222222222222222[MaxSegmentsAccepted22222222222222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                                                                  MaxSegmentsAccepted22222222222222222[MaxSegmentsAccepted22222222222222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                                                                  MaxSegmentsAccepted22222222222222222[MaxSegmentsAccepted22222222222222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                                                                  return MaxSegmentsAccepted22222222222222222;
                                                                })(MaxSegmentsAccepted2222222222222222 || {});
                                                                var NetworkLayerMessageType2222222222222222 = /* @__PURE__ */ ((NetworkLayerMessageType22222222222222222) => {
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                                                                  NetworkLayerMessageType22222222222222222[NetworkLayerMessageType22222222222222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                                                                  return NetworkLayerMessageType22222222222222222;
                                                                })(NetworkLayerMessageType2222222222222222 || {});
                                                                var NpduControlBit2222222222222222 = /* @__PURE__ */ ((NpduControlBit22222222222222222) => {
                                                                  NpduControlBit22222222222222222[NpduControlBit22222222222222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                                                                  NpduControlBit22222222222222222[NpduControlBit22222222222222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                                                                  NpduControlBit22222222222222222[NpduControlBit22222222222222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                                                                  NpduControlBit22222222222222222[NpduControlBit22222222222222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                                                                  return NpduControlBit22222222222222222;
                                                                })(NpduControlBit2222222222222222 || {});
                                                                var NpduControlPriority2222222222222222 = /* @__PURE__ */ ((NpduControlPriority22222222222222222) => {
                                                                  NpduControlPriority22222222222222222[NpduControlPriority22222222222222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                                                                  NpduControlPriority22222222222222222[NpduControlPriority22222222222222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                                                                  NpduControlPriority22222222222222222[NpduControlPriority22222222222222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                                                                  NpduControlPriority22222222222222222[NpduControlPriority22222222222222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                                                                  return NpduControlPriority22222222222222222;
                                                                })(NpduControlPriority2222222222222222 || {});
                                                                var PduConReqBit2222222222222222 = /* @__PURE__ */ ((PduConReqBit22222222222222222) => {
                                                                  PduConReqBit22222222222222222[PduConReqBit22222222222222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                                                                  PduConReqBit22222222222222222[PduConReqBit22222222222222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                                                                  PduConReqBit22222222222222222[PduConReqBit22222222222222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                                                                  return PduConReqBit22222222222222222;
                                                                })(PduConReqBit2222222222222222 || {});
                                                                var PduSegAckBit2222222222222222 = /* @__PURE__ */ ((PduSegAckBit22222222222222222) => {
                                                                  PduSegAckBit22222222222222222[PduSegAckBit22222222222222222["SERVER"] = 1] = "SERVER";
                                                                  PduSegAckBit22222222222222222[PduSegAckBit22222222222222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                                                                  return PduSegAckBit22222222222222222;
                                                                })(PduSegAckBit2222222222222222 || {});
                                                                var PduType2222222222222222 = /* @__PURE__ */ ((PduType22222222222222222) => {
                                                                  PduType22222222222222222[PduType22222222222222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                                                                  PduType22222222222222222[PduType22222222222222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                                                                  PduType22222222222222222[PduType22222222222222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                                                                  PduType22222222222222222[PduType22222222222222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                                                                  PduType22222222222222222[PduType22222222222222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                                                                  PduType22222222222222222[PduType22222222222222222["ERROR"] = 80] = "ERROR";
                                                                  PduType22222222222222222[PduType22222222222222222["REJECT"] = 96] = "REJECT";
                                                                  PduType22222222222222222[PduType22222222222222222["ABORT"] = 112] = "ABORT";
                                                                  return PduType22222222222222222;
                                                                })(PduType2222222222222222 || {});
                                                                var PropertyStates2222222222222222 = /* @__PURE__ */ ((PropertyStates22222222222222222) => {
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["POLARITY"] = 3] = "POLARITY";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["RELIABILITY"] = 7] = "RELIABILITY";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["STATE"] = 8] = "STATE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["UNITS"] = 10] = "UNITS";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["ACTION"] = 16] = "ACTION";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["SHED_STATE"] = 27] = "SHED_STATE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                                                                  PropertyStates22222222222222222[PropertyStates22222222222222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                                                                  return PropertyStates22222222222222222;
                                                                })(PropertyStates2222222222222222 || {});
                                                                var ReadRangeType2222222222222222 = /* @__PURE__ */ ((ReadRangeType22222222222222222) => {
                                                                  ReadRangeType22222222222222222[ReadRangeType22222222222222222["BY_POSITION"] = 0] = "BY_POSITION";
                                                                  ReadRangeType22222222222222222[ReadRangeType22222222222222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                                                                  ReadRangeType22222222222222222[ReadRangeType22222222222222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                                                                  return ReadRangeType22222222222222222;
                                                                })(ReadRangeType2222222222222222 || {});
                                                                var ReinitializedState2222222222222222 = /* @__PURE__ */ ((ReinitializedState22222222222222222) => {
                                                                  ReinitializedState22222222222222222[ReinitializedState22222222222222222["COLDSTART"] = 0] = "COLDSTART";
                                                                  ReinitializedState22222222222222222[ReinitializedState22222222222222222["WARMSTART"] = 1] = "WARMSTART";
                                                                  ReinitializedState22222222222222222[ReinitializedState22222222222222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                                                                  ReinitializedState22222222222222222[ReinitializedState22222222222222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                                                                  ReinitializedState22222222222222222[ReinitializedState22222222222222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                                                                  ReinitializedState22222222222222222[ReinitializedState22222222222222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                                                                  ReinitializedState22222222222222222[ReinitializedState22222222222222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                                                                  ReinitializedState22222222222222222[ReinitializedState22222222222222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                                                                  return ReinitializedState22222222222222222;
                                                                })(ReinitializedState2222222222222222 || {});
                                                                var TimeStamp2222222222222222 = /* @__PURE__ */ ((TimeStamp22222222222222222) => {
                                                                  TimeStamp22222222222222222[TimeStamp22222222222222222["TIME"] = 0] = "TIME";
                                                                  TimeStamp22222222222222222[TimeStamp22222222222222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                                                                  TimeStamp22222222222222222[TimeStamp22222222222222222["DATETIME"] = 2] = "DATETIME";
                                                                  return TimeStamp22222222222222222;
                                                                })(TimeStamp2222222222222222 || {});
                                                                var import_events22222222222222222 = __toESM2222222222222222(require("events"));
                                                                var import_debug32222222222222222 = __toESM2222222222222222(require("debug"));
                                                                var import_dgram2222222222222222 = require("dgram");
                                                                var import_events3222222222222222 = __toESM2222222222222222(require("events"));
                                                                var import_debug22222222222222222 = __toESM2222222222222222(require("debug"));
                                                                var EventEmitter3222222222222222 = import_events3222222222222222.default.EventEmitter;
                                                                var debug22222222222222222 = (0, import_debug22222222222222222.default)("bacnet:client:debug");
                                                                var DEFAULT_BACNET_PORT3222222222222222 = 47808;
                                                                var Transport2222222222222222 = class extends EventEmitter3222222222222222 {
                                                                  constructor(settings) {
                                                                    super();
                                                                    this._lastSendMessages = {};
                                                                    this._settings = settings;
                                                                    this._server = (0, import_dgram2222222222222222.createSocket)({
                                                                      type: "udp4",
                                                                      reuseAddr: settings.reuseAddr
                                                                    });
                                                                    this._server.on("message", (msg, rinfo) => {
                                                                      if (this.ownAddress.port === rinfo.port) {
                                                                        for (let [messageKey, earlierSentBuffer] of Object.entries(
                                                                          this._lastSendMessages
                                                                        )) {
                                                                          if (msg.equals(earlierSentBuffer)) {
                                                                            debug22222222222222222(
                                                                              `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                                                            );
                                                                            return;
                                                                          }
                                                                        }
                                                                      }
                                                                      debug22222222222222222(
                                                                        `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                                                          "hex"
                                                                        )}`
                                                                      );
                                                                      this.emit(
                                                                        "message",
                                                                        msg,
                                                                        rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT3222222222222222 ? "" : ":" + rinfo.port)
                                                                      );
                                                                    });
                                                                    this._server.on("listening", () => {
                                                                      this.ownAddress = this._server.address();
                                                                      debug22222222222222222(
                                                                        `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                                                                      );
                                                                      this.emit("listening", this.ownAddress);
                                                                    });
                                                                    this._server.on("error", (err) => {
                                                                      debug22222222222222222("transport error", err.message);
                                                                      this.emit("error", err);
                                                                    });
                                                                    this._server.on("close", () => {
                                                                      debug22222222222222222("transport closed");
                                                                      this.emit("close");
                                                                    });
                                                                  }
                                                                  getBroadcastAddress() {
                                                                    return this._settings.broadcastAddress;
                                                                  }
                                                                  getMaxPayload() {
                                                                    return 1482;
                                                                  }
                                                                  send(buffer, offset, receiver) {
                                                                    if (!receiver) {
                                                                      receiver = this.getBroadcastAddress();
                                                                      const dataToSend = Buffer.alloc(offset);
                                                                      const hrTime = process.hrtime();
                                                                      const messageKey = hrTime[0] * 1e9 + hrTime[1];
                                                                      buffer.copy(dataToSend, 0, 0, offset);
                                                                      this._lastSendMessages[messageKey] = dataToSend;
                                                                      setTimeout(() => {
                                                                        delete this._lastSendMessages[messageKey];
                                                                      }, 1e4);
                                                                    }
                                                                    const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                                                                    const [address, port] = receiverAddress.split(":");
                                                                    debug22222222222222222(
                                                                      "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                                                                    );
                                                                    this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT3222222222222222, address);
                                                                  }
                                                                  open() {
                                                                    this._server.bind(this._settings.port, this._settings.interface, () => {
                                                                      this._server.setBroadcast(true);
                                                                    });
                                                                  }
                                                                  close() {
                                                                    this._server.close();
                                                                  }
                                                                };
                                                                var services_exports2222222222222222 = {};
                                                                __export2222222222222222(services_exports2222222222222222, {
                                                                  addListElement: () => add_list_element_exports2222222222222222,
                                                                  alarmAcknowledge: () => alarm_acknowledge_exports2222222222222222,
                                                                  alarmSummary: () => alarm_summary_exports2222222222222222,
                                                                  atomicReadFile: () => atomic_read_file_exports2222222222222222,
                                                                  atomicWriteFile: () => atomic_write_file_exports2222222222222222,
                                                                  covNotify: () => cov_notify_exports2222222222222222,
                                                                  covNotifyUnconfirmed: () => cov_notify_exports2222222222222222,
                                                                  createObject: () => create_object_exports2222222222222222,
                                                                  deleteObject: () => delete_object_exports2222222222222222,
                                                                  deviceCommunicationControl: () => device_communication_control_exports2222222222222222,
                                                                  error: () => error_exports2222222222222222,
                                                                  eventInformation: () => event_information_exports2222222222222222,
                                                                  eventNotifyData: () => event_notify_data_exports2222222222222222,
                                                                  getEnrollmentSummary: () => get_enrollment_summary_exports2222222222222222,
                                                                  getEventInformation: () => get_event_information_exports2222222222222222,
                                                                  iAm: () => i_am_exports2222222222222222,
                                                                  iHave: () => i_have_exports2222222222222222,
                                                                  lifeSafetyOperation: () => life_safety_operation_exports2222222222222222,
                                                                  privateTransfer: () => private_transfer_exports2222222222222222,
                                                                  readProperty: () => read_property_exports2222222222222222,
                                                                  readPropertyMultiple: () => read_property_multiple_exports2222222222222222,
                                                                  readRange: () => read_range_exports2222222222222222,
                                                                  registerForeignDevice: () => register_foreign_device_exports2222222222222222,
                                                                  reinitializeDevice: () => reinitialize_device_exports2222222222222222,
                                                                  subscribeCov: () => subscribe_cov_exports2222222222222222,
                                                                  subscribeProperty: () => subscribe_property_exports2222222222222222,
                                                                  timeSync: () => time_sync_exports2222222222222222,
                                                                  timeSyncUTC: () => time_sync_exports2222222222222222,
                                                                  whoHas: () => who_has_exports2222222222222222,
                                                                  whoIs: () => who_is_exports2222222222222222,
                                                                  writeProperty: () => write_property_exports2222222222222222,
                                                                  writePropertyMultiple: () => write_property_multiple_exports2222222222222222
                                                                });
                                                                var add_list_element_exports2222222222222222 = {};
                                                                __export2222222222222222(add_list_element_exports2222222222222222, {
                                                                  decode: () => decode33222222222222222,
                                                                  encode: () => encode33222222222222222
                                                                });
                                                                var import_iconv_lite2222222222222222 = __toESM2222222222222222(require("iconv-lite"));
                                                                var enums_default2222222222222222 = enum_exports2222222222222222;
                                                                var START_YEAR2222222222222222 = 1900;
                                                                var MAX_YEARS2222222222222222 = 256;
                                                                var getBuffer2222222222222222 = () => {
                                                                  return {
                                                                    buffer: Buffer.alloc(1472),
                                                                    offset: 0
                                                                  };
                                                                };
                                                                var getSignedLength2222222222222222 = (value) => {
                                                                  if (value >= -128 && value < 128)
                                                                    return 1;
                                                                  else if (value >= -32768 && value < 32768)
                                                                    return 2;
                                                                  else if (value > -8388608 && value < 8388608)
                                                                    return 3;
                                                                  else
                                                                    return 4;
                                                                };
                                                                var getUnsignedLength2222222222222222 = (value) => {
                                                                  if (value < 256)
                                                                    return 1;
                                                                  else if (value < 65536)
                                                                    return 2;
                                                                  else if (value < 16777216)
                                                                    return 3;
                                                                  else
                                                                    return 4;
                                                                };
                                                                var getEncodingType2222222222222222 = (encoding, decodingBuffer, decodingOffset) => {
                                                                  switch (encoding) {
                                                                    case enums_default2222222222222222.CharacterStringEncoding.UCS_2:
                                                                      if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                                                        return "ucs2";
                                                                      }
                                                                      return "UTF-16BE";
                                                                    case enums_default2222222222222222.CharacterStringEncoding.ISO_8859_1:
                                                                      return "latin1";
                                                                    case enums_default2222222222222222.CharacterStringEncoding.MICROSOFT_DBCS:
                                                                      return "cp850";
                                                                    case enums_default2222222222222222.CharacterStringEncoding.JIS_X_0208:
                                                                      return "Shift_JIS";
                                                                    default:
                                                                      return "utf8";
                                                                  }
                                                                };
                                                                var encodeUnsigned2222222222222222 = (buffer, value, length) => {
                                                                  buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                                                                  buffer.offset += length;
                                                                };
                                                                var encodeBacnetUnsigned2222222222222222 = (buffer, value) => {
                                                                  encodeUnsigned2222222222222222(buffer, value, getUnsignedLength2222222222222222(value));
                                                                };
                                                                var encodeSigned2222222222222222 = (buffer, value, length) => {
                                                                  buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                                                                  buffer.offset += length;
                                                                };
                                                                var encodeBacnetSigned2222222222222222 = (buffer, value) => {
                                                                  encodeSigned2222222222222222(buffer, value, getSignedLength2222222222222222(value));
                                                                };
                                                                var encodeBacnetReal2222222222222222 = (buffer, value) => {
                                                                  buffer.buffer.writeFloatBE(value, buffer.offset, true);
                                                                  buffer.offset += 4;
                                                                };
                                                                var encodeBacnetDouble2222222222222222 = (buffer, value) => {
                                                                  buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                                                                  buffer.offset += 8;
                                                                };
                                                                var decodeUnsigned2222222222222222 = (buffer, offset, length) => {
                                                                  if (length === 0) {
                                                                    return {
                                                                      len: 0,
                                                                      value: 0
                                                                    };
                                                                  }
                                                                  return {
                                                                    len: length,
                                                                    //@ts-ignore
                                                                    value: buffer.readUIntBE(offset, length)
                                                                  };
                                                                };
                                                                var decodeEnumerated2222222222222222 = (buffer, offset, length) => {
                                                                  return decodeUnsigned2222222222222222(buffer, offset, length);
                                                                };
                                                                var encodeBacnetObjectId2222222222222222 = (buffer, objectType, instance) => {
                                                                  const value = ((objectType & enums_default2222222222222222.ASN1_MAX_OBJECT) << enums_default2222222222222222.ASN1_INSTANCE_BITS | instance & enums_default2222222222222222.ASN1_MAX_INSTANCE) >>> 0;
                                                                  encodeUnsigned2222222222222222(buffer, value, 4);
                                                                };
                                                                var encodeTag2222222222222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                                                                  let len = 1;
                                                                  const tmp = new Array(3);
                                                                  tmp[0] = 0;
                                                                  if (contextSpecific) {
                                                                    tmp[0] |= 8;
                                                                  }
                                                                  if (tagNumber <= 14) {
                                                                    tmp[0] |= tagNumber << 4;
                                                                  } else {
                                                                    tmp[0] |= 240;
                                                                    tmp[1] = tagNumber;
                                                                    len++;
                                                                  }
                                                                  if (lenValueType <= 4) {
                                                                    tmp[0] |= lenValueType;
                                                                    Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                    buffer.offset += len;
                                                                  } else {
                                                                    tmp[0] |= 5;
                                                                    if (lenValueType <= 253) {
                                                                      tmp[len++] = lenValueType;
                                                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                      buffer.offset += len;
                                                                    } else if (lenValueType <= 65535) {
                                                                      tmp[len++] = 254;
                                                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                      buffer.offset += len;
                                                                      encodeUnsigned2222222222222222(buffer, lenValueType, 2);
                                                                    } else {
                                                                      tmp[len++] = 255;
                                                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                      buffer.offset += len;
                                                                      encodeUnsigned2222222222222222(buffer, lenValueType, 4);
                                                                    }
                                                                  }
                                                                };
                                                                var encodeBacnetEnumerated2222222222222222 = (buffer, value) => {
                                                                  encodeBacnetUnsigned2222222222222222(buffer, value);
                                                                };
                                                                var isExtendedTagNumber2222222222222222 = (x) => {
                                                                  return (x & 240) === 240;
                                                                };
                                                                var isExtendedValue2222222222222222 = (x) => {
                                                                  return (x & 7) === 5;
                                                                };
                                                                var isContextSpecific2222222222222222 = (x) => {
                                                                  return (x & 8) === 8;
                                                                };
                                                                var isOpeningTag2222222222222222 = (x) => {
                                                                  return (x & 7) === 6;
                                                                };
                                                                var isClosingTag2222222222222222 = (x) => {
                                                                  return (x & 7) === 7;
                                                                };
                                                                var encodeContextReal2222222222222222 = (buffer, tagNumber, value) => {
                                                                  encodeTag2222222222222222(buffer, tagNumber, true, 4);
                                                                  encodeBacnetReal2222222222222222(buffer, value);
                                                                };
                                                                var encodeContextUnsigned2222222222222222 = (buffer, tagNumber, value) => {
                                                                  encodeTag2222222222222222(buffer, tagNumber, true, getUnsignedLength2222222222222222(value));
                                                                  encodeBacnetUnsigned2222222222222222(buffer, value);
                                                                };
                                                                var encodeContextEnumerated2222222222222222 = (buffer, tagNumber, value) => {
                                                                  encodeContextUnsigned2222222222222222(buffer, tagNumber, value);
                                                                };
                                                                var encodeOctetString2222222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                                  if (octetString) {
                                                                    for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                                                                      buffer.buffer[buffer.offset++] = octetString[i];
                                                                    }
                                                                  }
                                                                };
                                                                var encodeApplicationOctetString2222222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                                  encodeTag2222222222222222(buffer, enums_default2222222222222222.ApplicationTag.OCTET_STRING, false, octetCount);
                                                                  encodeOctetString2222222222222222(buffer, octetString, octetOffset, octetCount);
                                                                };
                                                                var encodeApplicationNull2222222222222222 = (buffer) => {
                                                                  buffer.buffer[buffer.offset++] = enums_default2222222222222222.ApplicationTag.NULL;
                                                                };
                                                                var encodeApplicationBoolean2222222222222222 = (buffer, booleanValue) => {
                                                                  encodeTag2222222222222222(buffer, enums_default2222222222222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                                                                };
                                                                var encodeApplicationReal2222222222222222 = (buffer, value) => {
                                                                  encodeTag2222222222222222(buffer, enums_default2222222222222222.ApplicationTag.REAL, false, 4);
                                                                  encodeBacnetReal2222222222222222(buffer, value);
                                                                };
                                                                var encodeApplicationDouble2222222222222222 = (buffer, value) => {
                                                                  encodeTag2222222222222222(buffer, enums_default2222222222222222.ApplicationTag.DOUBLE, false, 8);
                                                                  encodeBacnetDouble2222222222222222(buffer, value);
                                                                };
                                                                var bitstringBytesUsed2222222222222222 = (bitString) => {
                                                                  let len = 0;
                                                                  if (bitString.bitsUsed > 0) {
                                                                    const lastBit = bitString.bitsUsed - 1;
                                                                    const usedBytes = lastBit / 8 + 1;
                                                                    len = Math.floor(usedBytes);
                                                                  }
                                                                  return len;
                                                                };
                                                                var encodeApplicationObjectId2222222222222222 = (buffer, objectType, instance) => {
                                                                  const tmp = getBuffer2222222222222222();
                                                                  encodeBacnetObjectId2222222222222222(tmp, objectType, instance);
                                                                  encodeTag2222222222222222(buffer, enums_default2222222222222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                                                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                  buffer.offset += tmp.offset;
                                                                };
                                                                var encodeApplicationUnsigned2222222222222222 = (buffer, value) => {
                                                                  const tmp = getBuffer2222222222222222();
                                                                  encodeBacnetUnsigned2222222222222222(tmp, value);
                                                                  encodeTag2222222222222222(buffer, enums_default2222222222222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                                                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                  buffer.offset += tmp.offset;
                                                                };
                                                                var encodeApplicationEnumerated2222222222222222 = (buffer, value) => {
                                                                  const tmp = getBuffer2222222222222222();
                                                                  encodeBacnetEnumerated2222222222222222(tmp, value);
                                                                  encodeTag2222222222222222(buffer, enums_default2222222222222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                                                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                  buffer.offset += tmp.offset;
                                                                };
                                                                var encodeApplicationSigned2222222222222222 = (buffer, value) => {
                                                                  const tmp = getBuffer2222222222222222();
                                                                  encodeBacnetSigned2222222222222222(tmp, value);
                                                                  encodeTag2222222222222222(buffer, enums_default2222222222222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                                                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                  buffer.offset += tmp.offset;
                                                                };
                                                                var byteReverseBits2222222222222222 = (inByte) => {
                                                                  let outByte = 0;
                                                                  if ((inByte & 1) > 0) {
                                                                    outByte |= 128;
                                                                  }
                                                                  if ((inByte & 2) > 0) {
                                                                    outByte |= 64;
                                                                  }
                                                                  if ((inByte & 4) > 0) {
                                                                    outByte |= 32;
                                                                  }
                                                                  if ((inByte & 8) > 0) {
                                                                    outByte |= 16;
                                                                  }
                                                                  if ((inByte & 16) > 0) {
                                                                    outByte |= 8;
                                                                  }
                                                                  if ((inByte & 32) > 0) {
                                                                    outByte |= 4;
                                                                  }
                                                                  if ((inByte & 64) > 0) {
                                                                    outByte |= 2;
                                                                  }
                                                                  if ((inByte & 128) > 0) {
                                                                    outByte |= 1;
                                                                  }
                                                                  return outByte;
                                                                };
                                                                var bitstringOctet2222222222222222 = (bitString, octetIndex) => {
                                                                  let octet = 0;
                                                                  if (bitString.value && octetIndex < enums_default2222222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                                    octet = bitString.value[octetIndex];
                                                                  }
                                                                  return octet;
                                                                };
                                                                var encodeBitstring2222222222222222 = (buffer, bitString) => {
                                                                  if (bitString.bitsUsed === 0) {
                                                                    buffer.buffer[buffer.offset++] = 0;
                                                                  } else {
                                                                    const usedBytes = bitstringBytesUsed2222222222222222(bitString);
                                                                    const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                                                                    buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                                                                    for (let i = 0; i < usedBytes; i++) {
                                                                      buffer.buffer[buffer.offset++] = byteReverseBits2222222222222222(
                                                                        bitstringOctet2222222222222222(bitString, i)
                                                                      );
                                                                    }
                                                                  }
                                                                };
                                                                var encodeApplicationBitstring2222222222222222 = (buffer, bitString) => {
                                                                  let bitStringEncodedLength = 1;
                                                                  bitStringEncodedLength += bitstringBytesUsed2222222222222222(bitString);
                                                                  encodeTag2222222222222222(
                                                                    buffer,
                                                                    enums_default2222222222222222.ApplicationTag.BIT_STRING,
                                                                    false,
                                                                    bitStringEncodedLength
                                                                  );
                                                                  encodeBitstring2222222222222222(buffer, bitString);
                                                                };
                                                                var encodeBacnetDate2222222222222222 = (buffer, value) => {
                                                                  if (value === new Date(1, 1, 1)) {
                                                                    buffer.buffer[buffer.offset++] = 255;
                                                                    buffer.buffer[buffer.offset++] = 255;
                                                                    buffer.buffer[buffer.offset++] = 255;
                                                                    buffer.buffer[buffer.offset++] = 255;
                                                                    return;
                                                                  }
                                                                  if (value.getFullYear() >= START_YEAR2222222222222222) {
                                                                    buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR2222222222222222;
                                                                  } else if (value.getFullYear() < MAX_YEARS2222222222222222) {
                                                                    buffer.buffer[buffer.offset++] = value.getFullYear();
                                                                  } else {
                                                                    throw new Error("invaide year: " + value.getFullYear());
                                                                  }
                                                                  buffer.buffer[buffer.offset++] = value.getMonth();
                                                                  buffer.buffer[buffer.offset++] = value.getDate();
                                                                  buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                                                                };
                                                                var encodeApplicationDate2222222222222222 = (buffer, value) => {
                                                                  encodeTag2222222222222222(buffer, enums_default2222222222222222.ApplicationTag.DATE, false, 4);
                                                                  encodeBacnetDate2222222222222222(buffer, value);
                                                                };
                                                                var encodeBacnetTime2222222222222222 = (buffer, value) => {
                                                                  buffer.buffer[buffer.offset++] = value.getHours();
                                                                  buffer.buffer[buffer.offset++] = value.getMinutes();
                                                                  buffer.buffer[buffer.offset++] = value.getSeconds();
                                                                  buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                                                                };
                                                                var encodeApplicationTime2222222222222222 = (buffer, value) => {
                                                                  encodeTag2222222222222222(buffer, enums_default2222222222222222.ApplicationTag.TIME, false, 4);
                                                                  encodeBacnetTime2222222222222222(buffer, value);
                                                                };
                                                                var bacappEncodeDatetime2222222222222222 = (buffer, value) => {
                                                                  if (value !== new Date(1, 1, 1)) {
                                                                    encodeApplicationDate2222222222222222(buffer, value);
                                                                    encodeApplicationTime2222222222222222(buffer, value);
                                                                  }
                                                                };
                                                                var encodeContextObjectId2222222222222222 = (buffer, tagNumber, objectType, instance) => {
                                                                  encodeTag2222222222222222(buffer, tagNumber, true, 4);
                                                                  encodeBacnetObjectId2222222222222222(buffer, objectType, instance);
                                                                };
                                                                var encodeOpeningTag2222222222222222 = (buffer, tagNumber) => {
                                                                  let len = 1;
                                                                  const tmp = new Array(2);
                                                                  tmp[0] = 8;
                                                                  if (tagNumber <= 14) {
                                                                    tmp[0] |= tagNumber << 4;
                                                                  } else {
                                                                    tmp[0] |= 240;
                                                                    tmp[1] = tagNumber;
                                                                    len++;
                                                                  }
                                                                  tmp[0] |= 6;
                                                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                  buffer.offset += len;
                                                                };
                                                                var encodeClosingTag2222222222222222 = (buffer, tagNumber) => {
                                                                  let len = 1;
                                                                  const tmp = new Array(2);
                                                                  tmp[0] = 8;
                                                                  if (tagNumber <= 14) {
                                                                    tmp[0] |= tagNumber << 4;
                                                                  } else {
                                                                    tmp[0] |= 240;
                                                                    tmp[1] = tagNumber;
                                                                    len++;
                                                                  }
                                                                  tmp[0] |= 7;
                                                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                  buffer.offset += len;
                                                                };
                                                                var encodeReadAccessSpecification2222222222222222 = (buffer, value) => {
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    0,
                                                                    value.objectId.type,
                                                                    value.objectId.instance
                                                                  );
                                                                  encodeOpeningTag2222222222222222(buffer, 1);
                                                                  value.properties.forEach((p) => {
                                                                    encodeContextEnumerated2222222222222222(buffer, 0, p.id);
                                                                    if (p.index && p.index !== enums_default2222222222222222.ASN1_ARRAY_ALL) {
                                                                      encodeContextUnsigned2222222222222222(buffer, 1, p.index);
                                                                    }
                                                                  });
                                                                  encodeClosingTag2222222222222222(buffer, 1);
                                                                };
                                                                var encodeContextBoolean2222222222222222 = (buffer, tagNumber, booleanValue) => {
                                                                  encodeTag2222222222222222(buffer, tagNumber, true, 1);
                                                                  buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                                                                  buffer.offset += 1;
                                                                };
                                                                var encodeCovSubscription2222222222222222 = (buffer, value) => {
                                                                  encodeOpeningTag2222222222222222(buffer, 0);
                                                                  encodeOpeningTag2222222222222222(buffer, 0);
                                                                  encodeOpeningTag2222222222222222(buffer, 1);
                                                                  encodeApplicationUnsigned2222222222222222(buffer, value.recipient.network);
                                                                  if (value.recipient.network === 65535) {
                                                                    encodeApplicationOctetString2222222222222222(buffer, 0, 0, 0);
                                                                  } else {
                                                                    encodeApplicationOctetString2222222222222222(
                                                                      buffer,
                                                                      value.recipient.address,
                                                                      0,
                                                                      value.recipient.address.length
                                                                    );
                                                                  }
                                                                  encodeClosingTag2222222222222222(buffer, 1);
                                                                  encodeClosingTag2222222222222222(buffer, 0);
                                                                  encodeContextUnsigned2222222222222222(buffer, 1, value.subscriptionProcessId);
                                                                  encodeClosingTag2222222222222222(buffer, 0);
                                                                  encodeOpeningTag2222222222222222(buffer, 1);
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    0,
                                                                    value.monitoredObjectId.type,
                                                                    value.monitoredObjectId.instance
                                                                  );
                                                                  encodeContextEnumerated2222222222222222(buffer, 1, value.monitoredProperty.id);
                                                                  if (value.monitoredProperty.index !== enums_default2222222222222222.ASN1_ARRAY_ALL) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 2, value.monitoredProperty.index);
                                                                  }
                                                                  encodeClosingTag2222222222222222(buffer, 1);
                                                                  encodeContextBoolean2222222222222222(buffer, 2, value.issueConfirmedNotifications);
                                                                  encodeContextUnsigned2222222222222222(buffer, 3, value.timeRemaining);
                                                                  if (value.covIncrement > 0) {
                                                                    encodeContextReal2222222222222222(buffer, 4, value.covIncrement);
                                                                  }
                                                                };
                                                                var bacappEncodeApplicationData2222222222222222 = (buffer, value) => {
                                                                  if (value.value === null) {
                                                                    value.type = enums_default2222222222222222.ApplicationTag.NULL;
                                                                  }
                                                                  switch (value.type) {
                                                                    case enums_default2222222222222222.ApplicationTag.NULL:
                                                                      encodeApplicationNull2222222222222222(buffer);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.BOOLEAN:
                                                                      encodeApplicationBoolean2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                                      encodeApplicationUnsigned2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.SIGNED_INTEGER:
                                                                      encodeApplicationSigned2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.REAL:
                                                                      encodeApplicationReal2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.DOUBLE:
                                                                      encodeApplicationDouble2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.OCTET_STRING:
                                                                      encodeApplicationOctetString2222222222222222(buffer, value.value, 0, value.value.length);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.CHARACTER_STRING:
                                                                      encodeApplicationCharacterString2222222222222222(buffer, value.value, value.encoding);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.BIT_STRING:
                                                                      encodeApplicationBitstring2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.ENUMERATED:
                                                                      encodeApplicationEnumerated2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.DATE:
                                                                      encodeApplicationDate2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.TIME:
                                                                      encodeApplicationTime2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.TIMESTAMP:
                                                                      bacappEncodeTimestamp2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.DATETIME:
                                                                      bacappEncodeDatetime2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                                      encodeApplicationObjectId2222222222222222(buffer, value.value.type, value.value.instance);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.COV_SUBSCRIPTION:
                                                                      encodeCovSubscription2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.READ_ACCESS_RESULT:
                                                                      encodeReadAccessResult2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                                      encodeReadAccessSpecification2222222222222222(buffer, value.value);
                                                                      break;
                                                                    case void 0:
                                                                      throw new Error(
                                                                        "Cannot encode a value if the type has not been specified"
                                                                      );
                                                                    default:
                                                                      throw "No encode for ApplicationTag type: " + enums_default2222222222222222.getEnumName(
                                                                        enums_default2222222222222222.ApplicationTag,
                                                                        value.type
                                                                      );
                                                                  }
                                                                };
                                                                var bacappEncodeDeviceObjPropertyRef2222222222222222 = (buffer, value) => {
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    0,
                                                                    value.objectId.type,
                                                                    value.objectId.instance
                                                                  );
                                                                  encodeContextEnumerated2222222222222222(buffer, 1, value.id);
                                                                  if (value.arrayIndex !== enums_default2222222222222222.ASN1_ARRAY_ALL) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 2, value.arrayIndex);
                                                                  }
                                                                  if (value.deviceIndentifier.type === enums_default2222222222222222.ObjectType.DEVICE) {
                                                                    encodeContextObjectId2222222222222222(
                                                                      buffer,
                                                                      3,
                                                                      value.deviceIndentifier.type,
                                                                      value.deviceIndentifier.instance
                                                                    );
                                                                  }
                                                                };
                                                                var bacappEncodeContextDeviceObjPropertyRef2222222222222222 = (buffer, tagNumber, value) => {
                                                                  encodeOpeningTag2222222222222222(buffer, tagNumber);
                                                                  bacappEncodeDeviceObjPropertyRef2222222222222222(buffer, value);
                                                                  encodeClosingTag2222222222222222(buffer, tagNumber);
                                                                };
                                                                var bacappEncodePropertyState2222222222222222 = (buffer, value) => {
                                                                  switch (value.type) {
                                                                    case enums_default2222222222222222.PropertyStates.BOOLEAN_VALUE:
                                                                      encodeContextBoolean2222222222222222(buffer, 0, value.state === 1);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.BINARY_VALUE:
                                                                      encodeContextEnumerated2222222222222222(buffer, 1, value.state);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.EVENT_TYPE:
                                                                      encodeContextEnumerated2222222222222222(buffer, 2, value.state);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.POLARITY:
                                                                      encodeContextEnumerated2222222222222222(buffer, 3, value.state);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.PROGRAM_CHANGE:
                                                                      encodeContextEnumerated2222222222222222(buffer, 4, value.state);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.PROGRAM_STATE:
                                                                      encodeContextEnumerated2222222222222222(buffer, 5, value.state);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.REASON_FOR_HALT:
                                                                      encodeContextEnumerated2222222222222222(buffer, 6, value.state);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.RELIABILITY:
                                                                      encodeContextEnumerated2222222222222222(buffer, 7, value.state);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.STATE:
                                                                      encodeContextEnumerated2222222222222222(buffer, 8, value.state);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.SYSTEM_STATUS:
                                                                      encodeContextEnumerated2222222222222222(buffer, 9, value.state);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.UNITS:
                                                                      encodeContextEnumerated2222222222222222(buffer, 10, value.state);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.UNSIGNED_VALUE:
                                                                      encodeContextUnsigned2222222222222222(buffer, 11, value.state);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.LIFE_SAFETY_MODE:
                                                                      encodeContextEnumerated2222222222222222(buffer, 12, value.state);
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyStates.LIFE_SAFETY_STATE:
                                                                      encodeContextEnumerated2222222222222222(buffer, 13, value.state);
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                };
                                                                var encodeContextBitstring2222222222222222 = (buffer, tagNumber, bitString) => {
                                                                  let bitStringEncodedLength = 1;
                                                                  bitStringEncodedLength += bitstringBytesUsed2222222222222222(bitString);
                                                                  encodeTag2222222222222222(buffer, tagNumber, true, bitStringEncodedLength);
                                                                  encodeBitstring2222222222222222(buffer, bitString);
                                                                };
                                                                var encodeContextSigned2222222222222222 = (buffer, tagNumber, value) => {
                                                                  encodeTag2222222222222222(buffer, tagNumber, true, getSignedLength2222222222222222(value));
                                                                  encodeBacnetSigned2222222222222222(buffer, value);
                                                                };
                                                                var encodeContextTime2222222222222222 = (buffer, tagNumber, value) => {
                                                                  encodeTag2222222222222222(buffer, tagNumber, true, 4);
                                                                  encodeBacnetTime2222222222222222(buffer, value);
                                                                };
                                                                var bacappEncodeContextDatetime2222222222222222 = (buffer, tagNumber, value) => {
                                                                  if (value !== new Date(1, 1, 1)) {
                                                                    encodeOpeningTag2222222222222222(buffer, tagNumber);
                                                                    bacappEncodeDatetime2222222222222222(buffer, value);
                                                                    encodeClosingTag2222222222222222(buffer, tagNumber);
                                                                  } else {
                                                                    throw new Error("wrong Datetime while bacapp encoding context");
                                                                  }
                                                                };
                                                                var decodeTagNumber2222222222222222 = (buffer, offset) => {
                                                                  let len = 1;
                                                                  let tagNumber;
                                                                  if (isExtendedTagNumber2222222222222222(buffer[offset])) {
                                                                    tagNumber = buffer[offset + 1];
                                                                    len++;
                                                                  } else {
                                                                    tagNumber = buffer[offset] >> 4;
                                                                  }
                                                                  return {
                                                                    len,
                                                                    tagNumber
                                                                  };
                                                                };
                                                                var decodeIsContextTag2222222222222222 = (buffer, offset, tagNumber) => {
                                                                  const result = decodeTagNumber2222222222222222(buffer, offset);
                                                                  return isContextSpecific2222222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                                };
                                                                var decodeIsOpeningTagNumber2222222222222222 = (buffer, offset, tagNumber) => {
                                                                  const result = decodeTagNumber2222222222222222(buffer, offset);
                                                                  return isOpeningTag2222222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                                };
                                                                var decodeIsClosingTagNumber2222222222222222 = (buffer, offset, tagNumber) => {
                                                                  const result = decodeTagNumber2222222222222222(buffer, offset);
                                                                  return isClosingTag2222222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                                };
                                                                var decodeIsClosingTag2222222222222222 = (buffer, offset) => {
                                                                  return (buffer[offset] & 7) === 7;
                                                                };
                                                                var decodeIsOpeningTag2222222222222222 = (buffer, offset) => {
                                                                  return (buffer[offset] & 7) === 6;
                                                                };
                                                                var decodeObjectId2222222222222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                                                                  const result = decodeUnsigned2222222222222222(buffer, offset, 4);
                                                                  const objectType = result.value >> enums_default2222222222222222.ASN1_INSTANCE_BITS & enums_default2222222222222222.ASN1_MAX_OBJECT;
                                                                  const instance = result.value & enums_default2222222222222222.ASN1_MAX_INSTANCE;
                                                                  return {
                                                                    len: result.len,
                                                                    objectType,
                                                                    instance
                                                                  };
                                                                };
                                                                var decodeObjectIdSafe2222222222222222 = (buffer, offset, lenValue) => {
                                                                  if (lenValue !== 4) {
                                                                    return {
                                                                      len: 0,
                                                                      objectType: 0,
                                                                      instance: 0
                                                                    };
                                                                  } else {
                                                                    return decodeObjectId2222222222222222(buffer, offset);
                                                                  }
                                                                };
                                                                var decodeTagNumberAndValue2222222222222222 = (buffer, offset) => {
                                                                  let value;
                                                                  let result = decodeTagNumber2222222222222222(buffer, offset);
                                                                  let len = result.len;
                                                                  if (isExtendedValue2222222222222222(buffer[offset])) {
                                                                    if (buffer[offset + len] === 255) {
                                                                      len++;
                                                                      result = decodeUnsigned2222222222222222(buffer, offset + len, 4);
                                                                      len += result.len;
                                                                      value = result.value;
                                                                    } else if (buffer[offset + len] === 254) {
                                                                      len++;
                                                                      result = decodeUnsigned2222222222222222(buffer, offset + len, 2);
                                                                      len += result.len;
                                                                      value = result.value;
                                                                    } else {
                                                                      value = buffer[offset + len];
                                                                      len++;
                                                                    }
                                                                  } else if (isOpeningTag2222222222222222(buffer[offset])) {
                                                                    value = 0;
                                                                  } else if (isClosingTag2222222222222222(buffer[offset])) {
                                                                    value = 0;
                                                                  } else {
                                                                    value = buffer[offset] & 7;
                                                                  }
                                                                  return {
                                                                    len,
                                                                    tagNumber: result.tagNumber,
                                                                    value
                                                                  };
                                                                };
                                                                var bacappDecodeApplicationData2222222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                                  if (!isContextSpecific2222222222222222(buffer[offset])) {
                                                                    let result = decodeTagNumberAndValue2222222222222222(buffer, offset);
                                                                    if (result) {
                                                                      let len = result.len;
                                                                      result = bacappDecodeData2222222222222222(
                                                                        buffer,
                                                                        offset + len,
                                                                        maxOffset,
                                                                        result.tagNumber,
                                                                        result.value
                                                                      );
                                                                      if (!result) {
                                                                        return void 0;
                                                                      }
                                                                      let resObj = {
                                                                        len: len + result.len,
                                                                        type: result.type,
                                                                        value: result.value
                                                                      };
                                                                      if (result.encoding !== void 0)
                                                                        resObj.encoding = result.encoding;
                                                                      return resObj;
                                                                    }
                                                                  } else {
                                                                    return bacappDecodeContextApplicationData2222222222222222(
                                                                      buffer,
                                                                      offset,
                                                                      maxOffset,
                                                                      objectType,
                                                                      propertyId
                                                                    );
                                                                  }
                                                                };
                                                                var encodeReadAccessResult2222222222222222 = (buffer, value) => {
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    0,
                                                                    value.objectId.type,
                                                                    value.objectId.instance
                                                                  );
                                                                  encodeOpeningTag2222222222222222(buffer, 1);
                                                                  value.values.forEach((item) => {
                                                                    encodeContextEnumerated2222222222222222(buffer, 2, item.property.id);
                                                                    if (item.property.index !== enums_default2222222222222222.ASN1_ARRAY_ALL) {
                                                                      encodeContextUnsigned2222222222222222(buffer, 3, item.property.index);
                                                                    }
                                                                    if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                                                                      encodeOpeningTag2222222222222222(buffer, 5);
                                                                      encodeApplicationEnumerated2222222222222222(buffer, item.value[0].value.errorClass);
                                                                      encodeApplicationEnumerated2222222222222222(buffer, item.value[0].value.errorCode);
                                                                      encodeClosingTag2222222222222222(buffer, 5);
                                                                    } else {
                                                                      if (!item.value)
                                                                        throw new Error("No value in item");
                                                                      encodeOpeningTag2222222222222222(buffer, 4);
                                                                      item.value.forEach((subItem) => {
                                                                        bacappEncodeApplicationData2222222222222222(buffer, subItem);
                                                                      });
                                                                      encodeClosingTag2222222222222222(buffer, 4);
                                                                    }
                                                                  });
                                                                  encodeClosingTag2222222222222222(buffer, 1);
                                                                };
                                                                var decodeReadAccessResult2222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let value = {};
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  let result = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  value.objectId = {
                                                                    type: result.objectType,
                                                                    instance: result.instance
                                                                  };
                                                                  len += result.len;
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    return -1;
                                                                  }
                                                                  len++;
                                                                  const values = [];
                                                                  while (apduLen - len > 0) {
                                                                    let newEntry = {};
                                                                    if (decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                      len++;
                                                                      break;
                                                                    }
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 2) {
                                                                      return void 0;
                                                                    }
                                                                    result = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    newEntry.id = result.value;
                                                                    len += result.len;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    if (result.tagNumber === 3) {
                                                                      len += result.len;
                                                                      result = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                      newEntry.index = result.value;
                                                                      len += result.len;
                                                                    } else {
                                                                      newEntry.index = enums_default2222222222222222.ASN1_ARRAY_ALL;
                                                                    }
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber === 4) {
                                                                      const localValues = [];
                                                                      while (len + offset <= buffer.length && !decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 4)) {
                                                                        let localResult = bacappDecodeApplicationData2222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          apduLen + offset - 1,
                                                                          value.objectId.type,
                                                                          newEntry.id
                                                                        );
                                                                        if (!localResult) {
                                                                          return void 0;
                                                                        }
                                                                        len += localResult.len;
                                                                        let resObj = {
                                                                          value: localResult.value,
                                                                          type: localResult.type
                                                                        };
                                                                        if (localResult.encoding !== void 0)
                                                                          resObj.encoding = localResult.encoding;
                                                                        localValues.push(resObj);
                                                                      }
                                                                      if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 4)) {
                                                                        return void 0;
                                                                      }
                                                                      if (localValues.count === 2 && localValues[0].type === enums_default2222222222222222.ApplicationTag.DATE && localValues[1].type === enums_default2222222222222222.ApplicationTag.TIME) {
                                                                        const date = localValues[0].value;
                                                                        const time = localValues[1].value;
                                                                        const bdatetime = new Date(
                                                                          date.year,
                                                                          date.month,
                                                                          date.day,
                                                                          time.hour,
                                                                          time.minute,
                                                                          time.second,
                                                                          time.millisecond
                                                                        );
                                                                        newEntry.value = [
                                                                          { type: enums_default2222222222222222.ApplicationTag.DATETIME, value: bdatetime }
                                                                        ];
                                                                      } else {
                                                                        newEntry.value = localValues;
                                                                      }
                                                                      len++;
                                                                    } else if (result.tagNumber === 5) {
                                                                      let err = {};
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      result = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                      len += result.len;
                                                                      err.errorClass = result.value;
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      result = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                      len += result.len;
                                                                      err.errorCode = result.value;
                                                                      if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 5)) {
                                                                        return void 0;
                                                                      }
                                                                      len++;
                                                                      newEntry.value = [
                                                                        {
                                                                          type: enums_default2222222222222222.ApplicationTag.ERROR,
                                                                          value: err
                                                                        }
                                                                      ];
                                                                    }
                                                                    values.push(newEntry);
                                                                  }
                                                                  value.values = values;
                                                                  return {
                                                                    len,
                                                                    value
                                                                  };
                                                                };
                                                                var decodeSigned2222222222222222 = (buffer, offset, length) => {
                                                                  return {
                                                                    len: length,
                                                                    value: buffer.readIntBE(offset, length, true)
                                                                  };
                                                                };
                                                                var decodeReal2222222222222222 = (buffer, offset) => {
                                                                  return {
                                                                    len: 4,
                                                                    value: buffer.readFloatBE(offset, true)
                                                                  };
                                                                };
                                                                var decodeRealSafe2222222222222222 = (buffer, offset, lenValue) => {
                                                                  if (lenValue !== 4) {
                                                                    return {
                                                                      len: lenValue,
                                                                      value: 0
                                                                    };
                                                                  } else {
                                                                    return decodeReal2222222222222222(buffer, offset);
                                                                  }
                                                                };
                                                                var decodeDouble2222222222222222 = (buffer, offset) => {
                                                                  return {
                                                                    len: 8,
                                                                    value: buffer.readDoubleBE(offset, true)
                                                                  };
                                                                };
                                                                var decodeDoubleSafe2222222222222222 = (buffer, offset, lenValue) => {
                                                                  if (lenValue !== 8) {
                                                                    return {
                                                                      len: lenValue,
                                                                      value: 0
                                                                    };
                                                                  } else {
                                                                    return decodeDouble2222222222222222(buffer, offset);
                                                                  }
                                                                };
                                                                var decodeOctetString2222222222222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                                                                  const octetString = [];
                                                                  for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                                                                    octetString.push(buffer[offset + i]);
                                                                  }
                                                                  return {
                                                                    len: octetStringLength,
                                                                    value: octetString
                                                                  };
                                                                };
                                                                var multiCharsetCharacterstringDecode2222222222222222 = (buffer, offset, maxLength, encoding, length) => {
                                                                  const stringBuf = Buffer.alloc(length);
                                                                  buffer.copy(stringBuf, 0, offset, offset + length);
                                                                  return {
                                                                    value: import_iconv_lite2222222222222222.default.decode(stringBuf, getEncodingType2222222222222222(encoding, buffer, offset)),
                                                                    len: length + 1,
                                                                    encoding
                                                                  };
                                                                };
                                                                var decodeCharacterString2222222222222222 = (buffer, offset, maxLength, lenValue) => {
                                                                  return multiCharsetCharacterstringDecode2222222222222222(
                                                                    buffer,
                                                                    offset + 1,
                                                                    maxLength,
                                                                    buffer[offset],
                                                                    lenValue - 1
                                                                  );
                                                                };
                                                                var bitstringSetBitsUsed2222222222222222 = (bitString, bytesUsed, unusedBits) => {
                                                                  bitString.bitsUsed = bytesUsed * 8;
                                                                  bitString.bitsUsed -= unusedBits;
                                                                };
                                                                var decodeBitstring2222222222222222 = (buffer, offset, lenValue) => {
                                                                  let len = 0;
                                                                  let bitString = {};
                                                                  bitString.value = [];
                                                                  if (lenValue > 0) {
                                                                    const bytesUsed = lenValue - 1;
                                                                    if (bytesUsed <= enums_default2222222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                                      len = 1;
                                                                      for (let i = 0; i < bytesUsed; i++) {
                                                                        bitString.value.push(byteReverseBits2222222222222222(buffer[offset + len++]));
                                                                      }
                                                                      const unusedBits = buffer[offset] & 7;
                                                                      bitstringSetBitsUsed2222222222222222(bitString, bytesUsed, unusedBits);
                                                                    }
                                                                  }
                                                                  return {
                                                                    len,
                                                                    value: bitString
                                                                  };
                                                                };
                                                                var decodeDate2222222222222222 = (buffer, offset) => {
                                                                  let date;
                                                                  const year = buffer[offset] + 1900;
                                                                  const month = buffer[offset + 1];
                                                                  const day = buffer[offset + 2];
                                                                  const wday = buffer[offset + 3];
                                                                  if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                                                                    date = new Date(1, 1, 1);
                                                                  } else {
                                                                    date = new Date(year, month, day);
                                                                  }
                                                                  return {
                                                                    len: 4,
                                                                    value: date
                                                                  };
                                                                };
                                                                var decodeDateSafe2222222222222222 = (buffer, offset, lenValue) => {
                                                                  if (lenValue !== 4) {
                                                                    return {
                                                                      len: lenValue,
                                                                      value: new Date(1, 1, 1)
                                                                    };
                                                                  } else {
                                                                    return decodeDate2222222222222222(buffer, offset);
                                                                  }
                                                                };
                                                                var decodeApplicationDate2222222222222222 = (buffer, offset) => {
                                                                  const result = decodeTagNumber2222222222222222(buffer, offset);
                                                                  if (result.tagNumber === enums_default2222222222222222.ApplicationTag.DATE) {
                                                                    const value = decodeDate2222222222222222(buffer, offset + 1);
                                                                    return {
                                                                      len: value.len + 1,
                                                                      value
                                                                    };
                                                                  }
                                                                  return void 0;
                                                                };
                                                                var decodeBacnetTime2222222222222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                                                                  const hour = buffer[offset + 0];
                                                                  const min = buffer[offset + 1];
                                                                  const sec = buffer[offset + 2];
                                                                  let hundredths = buffer[offset + 3];
                                                                  if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                                                                    value = new Date(1, 1, 1);
                                                                  } else {
                                                                    if (hundredths > 100)
                                                                      hundredths = 0;
                                                                    value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                                                                  }
                                                                  return {
                                                                    len: 4,
                                                                    value
                                                                  };
                                                                };
                                                                var decodeBacnetTimeSafe2222222222222222 = (buffer, offset, lenValue) => {
                                                                  if (lenValue !== 4) {
                                                                    return {
                                                                      len: lenValue,
                                                                      value: new Date(1, 1, 1)
                                                                    };
                                                                  } else {
                                                                    return decodeBacnetTime2222222222222222(buffer, offset);
                                                                  }
                                                                };
                                                                var decodeApplicationTime2222222222222222 = (buffer, offset) => {
                                                                  const result = decodeTagNumber2222222222222222(buffer, offset);
                                                                  if (result.tagNumber === enums_default2222222222222222.ApplicationTag.TIME) {
                                                                    const value = decodeBacnetTime2222222222222222(buffer, offset + 1);
                                                                    return {
                                                                      len: value.len + 1,
                                                                      value
                                                                    };
                                                                  }
                                                                  return void 0;
                                                                };
                                                                var decodeBacnetDatetime2222222222222222 = (buffer, offset) => {
                                                                  let len = 0;
                                                                  const date = decodeApplicationDate2222222222222222(buffer, offset + len);
                                                                  len += date.len;
                                                                  const time = decodeApplicationTime2222222222222222(buffer, offset + len);
                                                                  len += time.len;
                                                                  return {
                                                                    len,
                                                                    value: new Date(
                                                                      date.year,
                                                                      date.month,
                                                                      date.day,
                                                                      time.hour,
                                                                      time.minute,
                                                                      time.second,
                                                                      time.millisecond
                                                                    )
                                                                  };
                                                                };
                                                                var bacappDecodeData2222222222222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                                                                  let result;
                                                                  let value = {
                                                                    len: 0,
                                                                    type: tagDataType
                                                                  };
                                                                  switch (tagDataType) {
                                                                    case enums_default2222222222222222.ApplicationTag.NULL:
                                                                      value.value = null;
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.BOOLEAN:
                                                                      value.value = lenValueType > 0;
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                                      result = decodeUnsigned2222222222222222(buffer, offset, lenValueType);
                                                                      value.len += result.len;
                                                                      value.value = result.value;
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.SIGNED_INTEGER:
                                                                      result = decodeSigned2222222222222222(buffer, offset, lenValueType);
                                                                      value.len += result.len;
                                                                      value.value = result.value;
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.REAL:
                                                                      result = decodeRealSafe2222222222222222(buffer, offset, lenValueType);
                                                                      value.len += result.len;
                                                                      value.value = result.value;
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.DOUBLE:
                                                                      result = decodeDoubleSafe2222222222222222(buffer, offset, lenValueType);
                                                                      value.len += result.len;
                                                                      value.value = result.value;
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.OCTET_STRING:
                                                                      result = decodeOctetString2222222222222222(buffer, offset, maxLength, 0, lenValueType);
                                                                      value.len += result.len;
                                                                      value.value = result.value;
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.CHARACTER_STRING:
                                                                      result = decodeCharacterString2222222222222222(buffer, offset, maxLength, lenValueType);
                                                                      value.len += result.len;
                                                                      value.value = result.value;
                                                                      value.encoding = result.encoding;
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.BIT_STRING:
                                                                      result = decodeBitstring2222222222222222(buffer, offset, lenValueType);
                                                                      value.len += result.len;
                                                                      value.value = result.value;
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.ENUMERATED:
                                                                      result = decodeEnumerated2222222222222222(buffer, offset, lenValueType);
                                                                      value.len += result.len;
                                                                      value.value = result.value;
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.DATE:
                                                                      result = decodeDateSafe2222222222222222(buffer, offset, lenValueType);
                                                                      value.len += result.len;
                                                                      value.value = result.value;
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.TIME:
                                                                      result = decodeBacnetTimeSafe2222222222222222(buffer, offset, lenValueType);
                                                                      value.len += result.len;
                                                                      value.value = result.value;
                                                                      break;
                                                                    case enums_default2222222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                                      result = decodeObjectIdSafe2222222222222222(buffer, offset, lenValueType);
                                                                      value.len += result.len;
                                                                      value.value = { type: result.objectType, instance: result.instance };
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                  return value;
                                                                };
                                                                var bacappContextTagType2222222222222222 = (property, tagNumber) => {
                                                                  let tag = 0;
                                                                  switch (property) {
                                                                    case enums_default2222222222222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                                                                    case enums_default2222222222222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                                                                    case enums_default2222222222222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                                                                      switch (tagNumber) {
                                                                        case 0:
                                                                        case 1:
                                                                          tag = enums_default2222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                          break;
                                                                        case 2:
                                                                          tag = enums_default2222222222222222.ApplicationTag.REAL;
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyIdentifier.ACTION:
                                                                      switch (tagNumber) {
                                                                        case 0:
                                                                        case 1:
                                                                          tag = enums_default2222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                          break;
                                                                        case 2:
                                                                          tag = enums_default2222222222222222.ApplicationTag.ENUMERATED;
                                                                          break;
                                                                        case 3:
                                                                        case 5:
                                                                        case 6:
                                                                          tag = enums_default2222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                          break;
                                                                        case 7:
                                                                        case 8:
                                                                          tag = enums_default2222222222222222.ApplicationTag.BOOLEAN;
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                                                                      switch (tagNumber) {
                                                                        case 0:
                                                                          tag = enums_default2222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                                                                      switch (tagNumber) {
                                                                        case 1:
                                                                          tag = enums_default2222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                          break;
                                                                        case 3:
                                                                          tag = enums_default2222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                                                                      switch (tagNumber) {
                                                                        case 0:
                                                                        case 3:
                                                                          tag = enums_default2222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                          break;
                                                                        case 1:
                                                                          tag = enums_default2222222222222222.ApplicationTag.ENUMERATED;
                                                                          break;
                                                                        case 2:
                                                                          tag = enums_default2222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyIdentifier.SUBORDINATE_LIST:
                                                                      switch (tagNumber) {
                                                                        case 0:
                                                                        case 1:
                                                                          tag = enums_default2222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyIdentifier.RECIPIENT_LIST:
                                                                      switch (tagNumber) {
                                                                        case 0:
                                                                          tag = enums_default2222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                      break;
                                                                    case enums_default2222222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                                                                      switch (tagNumber) {
                                                                        case 0:
                                                                        case 1:
                                                                          break;
                                                                        case 2:
                                                                          tag = enums_default2222222222222222.ApplicationTag.BOOLEAN;
                                                                          break;
                                                                        case 3:
                                                                          tag = enums_default2222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                          break;
                                                                        case 4:
                                                                          tag = enums_default2222222222222222.ApplicationTag.REAL;
                                                                          break;
                                                                        default:
                                                                          break;
                                                                      }
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                  return tag;
                                                                };
                                                                var decodeDeviceObjPropertyRef2222222222222222 = (buffer, offset, NOTUSEDARG = 0) => {
                                                                  let len = 0;
                                                                  let arrayIndex = enums_default2222222222222222.ASN1_ARRAY_ALL;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  let objectId = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += objectId.len;
                                                                  let result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 1) {
                                                                    return void 0;
                                                                  }
                                                                  let id = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += id.len;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  if (result.tagNumber === 2) {
                                                                    len += result.len;
                                                                    arrayIndex = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += arrayIndex.len;
                                                                  }
                                                                  if (decodeIsContextTag2222222222222222(buffer, offset + len, 3)) {
                                                                    if (!isClosingTag2222222222222222(buffer[offset + len])) {
                                                                      len++;
                                                                      objectId = decodeObjectId2222222222222222(buffer, offset + len);
                                                                      len += objectId.len;
                                                                    }
                                                                  }
                                                                  return {
                                                                    len,
                                                                    value: {
                                                                      objectId,
                                                                      id
                                                                    }
                                                                  };
                                                                };
                                                                var decodeReadAccessSpecification2222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let value = {};
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  let decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  value.objectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  len += decodedValue.len;
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  const propertyIdAndArrayIndex = [];
                                                                  while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    let propertyRef = {};
                                                                    if (!isContextSpecific2222222222222222(buffer[offset + len])) {
                                                                      return void 0;
                                                                    }
                                                                    let result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 0) {
                                                                      return void 0;
                                                                    }
                                                                    if (len + result.value >= apduLen) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    propertyRef.id = decodedValue.value;
                                                                    len += decodedValue.len;
                                                                    propertyRef.index = enums_default2222222222222222.ASN1_ARRAY_ALL;
                                                                    if (isContextSpecific2222222222222222(buffer[offset + len]) && !isClosingTag2222222222222222(buffer[offset + len])) {
                                                                      const tmp = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      if (tmp.tagNumber === 1) {
                                                                        len += tmp.len;
                                                                        if (len + tmp.value >= apduLen) {
                                                                          return void 0;
                                                                        }
                                                                        decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, tmp.value);
                                                                        propertyRef.index = decodedValue.value;
                                                                        len += decodedValue.len;
                                                                      }
                                                                    }
                                                                    propertyIdAndArrayIndex.push(propertyRef);
                                                                  }
                                                                  if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  value.properties = propertyIdAndArrayIndex;
                                                                  return {
                                                                    len,
                                                                    value
                                                                  };
                                                                };
                                                                var decodeCovSubscription2222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let value = {};
                                                                  let result;
                                                                  let decodedValue;
                                                                  value.recipient = {};
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== enums_default2222222222222222.ApplicationTag.UNSIGNED_INTEGER) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.recipient.net = decodedValue.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== enums_default2222222222222222.ApplicationTag.OCTET_STRING) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeOctetString2222222222222222(
                                                                    buffer,
                                                                    offset + len,
                                                                    apduLen,
                                                                    0,
                                                                    result.value
                                                                  );
                                                                  len += decodedValue.len;
                                                                  value.recipient.adr = decodedValue.value;
                                                                  if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 1) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.subscriptionProcessId = decodedValue.value;
                                                                  if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 0) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  value.monitoredObjectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 1) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.monitoredProperty = {};
                                                                  value.monitoredProperty.id = decodedValue.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  if (result.tagNumber === 2) {
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.monitoredProperty.index = decodedValue.value;
                                                                  } else {
                                                                    value.monitoredProperty.index = enums_default2222222222222222.ASN1_ARRAY_ALL;
                                                                  }
                                                                  if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 2) {
                                                                    return void 0;
                                                                  }
                                                                  value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                                  len++;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 3) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.timeRemaining = decodedValue.value;
                                                                  if (len < apduLen && !isClosingTag2222222222222222(buffer[offset + len])) {
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 4) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeReal2222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    value.covIncrement = decodedValue.value;
                                                                  }
                                                                  return {
                                                                    len,
                                                                    value
                                                                  };
                                                                };
                                                                var decodeCalendarDate2222222222222222 = (buffer, offset) => {
                                                                  return {
                                                                    len: 4,
                                                                    year: buffer[offset],
                                                                    month: buffer[offset + 1],
                                                                    day: buffer[offset + 2],
                                                                    wday: buffer[offset + 3]
                                                                  };
                                                                };
                                                                var decodeCalendarDateRange2222222222222222 = (buffer, offset) => {
                                                                  let len = 1;
                                                                  const startDate = decodeDate2222222222222222(buffer, offset + len);
                                                                  len += startDate.len + 1;
                                                                  const endDate = decodeDate2222222222222222(buffer, offset + len);
                                                                  len += endDate.len + 1;
                                                                  return {
                                                                    len,
                                                                    startDate,
                                                                    endDate
                                                                  };
                                                                };
                                                                var decodeCalendarWeekDay2222222222222222 = (buffer, offset) => {
                                                                  return {
                                                                    len: 3,
                                                                    month: buffer[offset],
                                                                    week: buffer[offset + 1],
                                                                    wday: buffer[offset + 2]
                                                                  };
                                                                };
                                                                var decodeCalendar2222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  const entries = [];
                                                                  let decodedValue;
                                                                  while (len < apduLen) {
                                                                    const result = decodeTagNumber2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    switch (result.tagNumber) {
                                                                      case 0:
                                                                        decodedValue = decodeCalendarDate2222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        entries.push(decodedValue);
                                                                        break;
                                                                      case 1:
                                                                        decodedValue = decodeCalendarDateRange2222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        entries.push(decodedValue);
                                                                        break;
                                                                      case 2:
                                                                        decodedValue = decodeCalendarWeekDay2222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        entries.push(decodedValue);
                                                                        break;
                                                                      default:
                                                                        return {
                                                                          len: len - 1,
                                                                          value: entries
                                                                        };
                                                                    }
                                                                  }
                                                                };
                                                                var bacappDecodeContextApplicationData2222222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  if (isContextSpecific2222222222222222(buffer[offset])) {
                                                                    if (propertyId === enums_default2222222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                                                                      result = decodeReadAccessSpecification2222222222222222(buffer, offset, maxOffset);
                                                                      if (!result) {
                                                                        return void 0;
                                                                      }
                                                                      return {
                                                                        type: enums_default2222222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                                                        value: result.value,
                                                                        len: result.len
                                                                      };
                                                                    } else if (propertyId === enums_default2222222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                                                                      result = decodeCovSubscription2222222222222222(buffer, offset, maxOffset);
                                                                      if (!result) {
                                                                        return void 0;
                                                                      }
                                                                      return {
                                                                        type: enums_default2222222222222222.ApplicationTag.COV_SUBSCRIPTION,
                                                                        value: result.value,
                                                                        len: result.len
                                                                      };
                                                                    } else if (objectType === enums_default2222222222222222.ObjectType.GROUP && propertyId === enums_default2222222222222222.PropertyIdentifier.PRESENT_VALUE) {
                                                                      result = decodeReadAccessResult2222222222222222(buffer, offset, maxOffset);
                                                                      if (!result) {
                                                                        return void 0;
                                                                      }
                                                                      return {
                                                                        type: enums_default2222222222222222.ApplicationTag.READ_ACCESS_RESULT,
                                                                        value: result.value,
                                                                        len: result.len
                                                                      };
                                                                    } else if (propertyId === enums_default2222222222222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default2222222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default2222222222222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                                                                      result = decodeDeviceObjPropertyRef2222222222222222(buffer, offset, maxOffset);
                                                                      if (!result) {
                                                                        return void 0;
                                                                      }
                                                                      return {
                                                                        type: enums_default2222222222222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                                                        value: result.value,
                                                                        len: result.len
                                                                      };
                                                                    } else if (propertyId === enums_default2222222222222222.PropertyIdentifier.DATE_LIST) {
                                                                      result = decodeCalendar2222222222222222(buffer, offset, maxOffset);
                                                                      if (!result) {
                                                                        return void 0;
                                                                      }
                                                                      return {
                                                                        type: enums_default2222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                                                        value: result.value,
                                                                        len: result.len
                                                                      };
                                                                    } else if (propertyId === enums_default2222222222222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                                                                      let subEvtResult;
                                                                      let evtResult = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += 1;
                                                                      if (evtResult.tagNumber === 0) {
                                                                        subEvtResult = decodeBacnetTime2222222222222222(buffer, offset + 1);
                                                                        return {
                                                                          type: enums_default2222222222222222.ApplicationTag.TIMESTAMP,
                                                                          value: subEvtResult.value,
                                                                          len: subEvtResult.len + 1
                                                                        };
                                                                      } else if (evtResult.tagNumber === 1) {
                                                                        subEvtResult = decodeUnsigned2222222222222222(buffer, offset + len, evtResult.value);
                                                                        return {
                                                                          type: enums_default2222222222222222.ApplicationTag.UNSIGNED_INTEGER,
                                                                          value: subEvtResult.value,
                                                                          len: subEvtResult.len + 1
                                                                        };
                                                                      } else if (evtResult.tagNumber === 2) {
                                                                        subEvtResult = decodeBacnetDatetime2222222222222222(buffer, offset + len);
                                                                        return {
                                                                          type: enums_default2222222222222222.ApplicationTag.TIMESTAMP,
                                                                          value: subEvtResult.value,
                                                                          len: subEvtResult.len + 2
                                                                        };
                                                                      } else {
                                                                        return void 0;
                                                                      }
                                                                    }
                                                                    const list = [];
                                                                    let tagResult = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    let multipleValues = isOpeningTag2222222222222222(buffer[offset + len]);
                                                                    while (len + offset <= maxOffset && !isClosingTag2222222222222222(buffer[offset + len])) {
                                                                      let subResult = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      if (!subResult) {
                                                                        return void 0;
                                                                      }
                                                                      if (subResult.value === 0) {
                                                                        len += subResult.len;
                                                                        result = bacappDecodeApplicationData2222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          maxOffset,
                                                                          enums_default2222222222222222.ASN1_MAX_OBJECT_TYPE,
                                                                          enums_default2222222222222222.ASN1_MAX_PROPERTY_ID
                                                                        );
                                                                        if (!result) {
                                                                          return void 0;
                                                                        }
                                                                        list.push(result);
                                                                        len += result.len;
                                                                      } else {
                                                                        const overrideTagNumber = bacappContextTagType2222222222222222(
                                                                          propertyId,
                                                                          subResult.tagNumber
                                                                        );
                                                                        if (overrideTagNumber !== enums_default2222222222222222.ASN1_MAX_APPLICATION_TAG) {
                                                                          subResult.tagNumber = overrideTagNumber;
                                                                        }
                                                                        let bacappResult = bacappDecodeData2222222222222222(
                                                                          buffer,
                                                                          offset + len + subResult.len,
                                                                          maxOffset,
                                                                          subResult.tagNumber,
                                                                          subResult.value
                                                                        );
                                                                        if (!bacappResult) {
                                                                          return void 0;
                                                                        }
                                                                        if (bacappResult.len === subResult.value) {
                                                                          let resObj = {
                                                                            value: bacappResult.value,
                                                                            type: bacappResult.type
                                                                          };
                                                                          if (bacappResult.encoding !== void 0)
                                                                            resObj.encoding = bacappResult.encoding;
                                                                          list.push(resObj);
                                                                          len += subResult.len + subResult.value;
                                                                        } else {
                                                                          list.push({
                                                                            value: buffer.slice(
                                                                              offset + len + subResult.len,
                                                                              offset + len + subResult.len + subResult.value
                                                                            ),
                                                                            type: enums_default2222222222222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                                                          });
                                                                          len += subResult.len + subResult.value;
                                                                        }
                                                                      }
                                                                      if (multipleValues === false) {
                                                                        return {
                                                                          len,
                                                                          value: list[0],
                                                                          type: enums_default2222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                                        };
                                                                      }
                                                                    }
                                                                    if (len + offset > maxOffset) {
                                                                      return void 0;
                                                                    }
                                                                    if (decodeIsClosingTagNumber2222222222222222(buffer, offset + len, tagResult.tagNumber)) {
                                                                      len++;
                                                                    }
                                                                    return {
                                                                      len,
                                                                      value: list,
                                                                      type: enums_default2222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                                    };
                                                                  }
                                                                  return void 0;
                                                                };
                                                                var bacappEncodeTimestamp2222222222222222 = (buffer, value) => {
                                                                  switch (value.type) {
                                                                    case enums_default2222222222222222.TimeStamp.TIME:
                                                                      encodeContextTime2222222222222222(buffer, 0, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.TimeStamp.SEQUENCE_NUMBER:
                                                                      encodeContextUnsigned2222222222222222(buffer, 1, value.value);
                                                                      break;
                                                                    case enums_default2222222222222222.TimeStamp.DATETIME:
                                                                      bacappEncodeContextDatetime2222222222222222(buffer, 2, value.value);
                                                                      break;
                                                                    default:
                                                                      throw new Error("NOT_IMPLEMENTED");
                                                                  }
                                                                };
                                                                var bacappEncodeContextTimestamp2222222222222222 = (buffer, tagNumber, value) => {
                                                                  encodeOpeningTag2222222222222222(buffer, tagNumber);
                                                                  bacappEncodeTimestamp2222222222222222(buffer, value);
                                                                  encodeClosingTag2222222222222222(buffer, tagNumber);
                                                                };
                                                                var decodeContextCharacterString2222222222222222 = (buffer, offset, maxLength, tagNumber) => {
                                                                  let len = 0;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, tagNumber)) {
                                                                    return void 0;
                                                                  }
                                                                  const result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  const decodedValue = multiCharsetCharacterstringDecode2222222222222222(
                                                                    buffer,
                                                                    offset + 1 + len,
                                                                    maxLength,
                                                                    buffer[offset + len],
                                                                    result.value - 1
                                                                  );
                                                                  if (!decodedValue) {
                                                                    return void 0;
                                                                  }
                                                                  len += result.value;
                                                                  return {
                                                                    len,
                                                                    value: decodedValue.value,
                                                                    encoding: decodedValue.encoding
                                                                  };
                                                                };
                                                                var decodeIsContextTagWithLength2222222222222222 = (buffer, offset, tagNumber) => {
                                                                  const result = decodeTagNumber2222222222222222(buffer, offset);
                                                                  return {
                                                                    len: result.len,
                                                                    value: isContextSpecific2222222222222222(buffer[offset]) && result.tagNumber === tagNumber
                                                                  };
                                                                };
                                                                var decodeContextObjectId2222222222222222 = (buffer, offset, tagNumber) => {
                                                                  const result = decodeIsContextTagWithLength2222222222222222(buffer, offset, tagNumber);
                                                                  if (!result.value) {
                                                                    return void 0;
                                                                  }
                                                                  const decodedValue = decodeObjectId2222222222222222(buffer, offset + result.len);
                                                                  decodedValue.len = decodedValue.len + result.len;
                                                                  return decodedValue;
                                                                };
                                                                var encodeBacnetCharacterString2222222222222222 = (buffer, value, encoding) => {
                                                                  encoding = encoding || enums_default2222222222222222.CharacterStringEncoding.UTF_8;
                                                                  buffer.buffer[buffer.offset++] = encoding;
                                                                  const bufEncoded = import_iconv_lite2222222222222222.default.encode(value, getEncodingType2222222222222222(encoding));
                                                                  buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                                                                };
                                                                var encodeApplicationCharacterString2222222222222222 = (buffer, value, encoding) => {
                                                                  const tmp = getBuffer2222222222222222();
                                                                  encodeBacnetCharacterString2222222222222222(tmp, value, encoding);
                                                                  encodeTag2222222222222222(buffer, enums_default2222222222222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                                                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                  buffer.offset += tmp.offset;
                                                                };
                                                                var encodeContextCharacterString2222222222222222 = (buffer, tagNumber, value, encoding) => {
                                                                  const tmp = getBuffer2222222222222222();
                                                                  encodeBacnetCharacterString2222222222222222(tmp, value, encoding);
                                                                  encodeTag2222222222222222(buffer, tagNumber, true, tmp.offset);
                                                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                                  buffer.offset += tmp.offset;
                                                                };
                                                                var encode33222222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                                  encodeContextObjectId2222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                  encodeContextEnumerated2222222222222222(buffer, 1, propertyId);
                                                                  if (arrayIndex !== ASN1_ARRAY_ALL2222222222222222) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 2, arrayIndex);
                                                                  }
                                                                  encodeOpeningTag2222222222222222(buffer, 3);
                                                                  values.forEach((value) => {
                                                                    bacappEncodeApplicationData2222222222222222(buffer, value);
                                                                  });
                                                                  encodeClosingTag2222222222222222(buffer, 3);
                                                                };
                                                                var decode33222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let value = {};
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  value.objectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.property = { id: decodedValue.value };
                                                                  if (len < apduLen && decodeIsContextTag2222222222222222(buffer, offset + len, 2)) {
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.property.index = decodedValue.value;
                                                                  } else {
                                                                    value.property.index = ASN1_ARRAY_ALL2222222222222222;
                                                                  }
                                                                  const values = [];
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 3)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  while (apduLen - len > 1) {
                                                                    result = bacappDecodeApplicationData2222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      apduLen + offset,
                                                                      value.objectId.type,
                                                                      value.property.id
                                                                    );
                                                                    if (!result) {
                                                                      return void 0;
                                                                    }
                                                                    len += result.len;
                                                                    delete result.len;
                                                                    values.push(result);
                                                                  }
                                                                  value.values = values;
                                                                  if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 3)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var alarm_acknowledge_exports2222222222222222 = {};
                                                                __export2222222222222222(alarm_acknowledge_exports2222222222222222, {
                                                                  decode: () => decode210222222222222222,
                                                                  encode: () => encode210222222222222222
                                                                });
                                                                var encode210222222222222222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                                                                  encodeContextUnsigned2222222222222222(buffer, 0, ackProcessId);
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    1,
                                                                    eventObjectId.type,
                                                                    eventObjectId.instance
                                                                  );
                                                                  encodeContextEnumerated2222222222222222(buffer, 2, eventStateAcknowledged);
                                                                  bacappEncodeContextTimestamp2222222222222222(buffer, 3, eventTimeStamp);
                                                                  encodeContextCharacterString2222222222222222(buffer, 4, ackSource);
                                                                  bacappEncodeContextTimestamp2222222222222222(buffer, 5, ackTimeStamp);
                                                                };
                                                                var decode210222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let value = {};
                                                                  let result;
                                                                  let decodedValue;
                                                                  let date;
                                                                  let time;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.acknowledgedProcessId = decodedValue.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  value.eventObjectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.eventStateAcknowledged = decodedValue.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber === 0) {
                                                                    decodedValue = decodeBacnetTime2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.eventTimeStamp = decodedValue.value;
                                                                  } else if (result.tagNumber === 1) {
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.eventTimeStamp = decodedValue.value;
                                                                  } else if (result.tagNumber === 2) {
                                                                    date = decodeApplicationDate2222222222222222(buffer, offset + len);
                                                                    len += date.len;
                                                                    date = date.value.value;
                                                                    time = decodeApplicationTime2222222222222222(buffer, offset + len);
                                                                    len += time.len;
                                                                    time = time.value.value;
                                                                    value.eventTimeStamp = new Date(
                                                                      date.getFullYear(),
                                                                      date.getMonth(),
                                                                      date.getDate(),
                                                                      time.getHours(),
                                                                      time.getMinutes(),
                                                                      time.getSeconds(),
                                                                      time.getMilliseconds()
                                                                    );
                                                                    len++;
                                                                  }
                                                                  len++;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeCharacterString2222222222222222(
                                                                    buffer,
                                                                    offset + len,
                                                                    apduLen - (offset + len),
                                                                    result.value
                                                                  );
                                                                  value.acknowledgeSource = decodedValue.value;
                                                                  len += decodedValue.len;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber === 0) {
                                                                    decodedValue = decodeBacnetTime2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.acknowledgeTimeStamp = decodedValue.value;
                                                                  } else if (result.tagNumber === 1) {
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.acknowledgeTimeStamp = decodedValue.value;
                                                                  } else if (result.tagNumber === 2) {
                                                                    date = decodeApplicationDate2222222222222222(buffer, offset + len);
                                                                    len += date.len;
                                                                    date = date.value.value;
                                                                    time = decodeApplicationTime2222222222222222(buffer, offset + len);
                                                                    len += time.len;
                                                                    time = time.value.value;
                                                                    value.acknowledgeTimeStamp = new Date(
                                                                      date.getFullYear(),
                                                                      date.getMonth(),
                                                                      date.getDate(),
                                                                      time.getHours(),
                                                                      time.getMinutes(),
                                                                      time.getSeconds(),
                                                                      time.getMilliseconds()
                                                                    );
                                                                    len++;
                                                                  }
                                                                  len++;
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var alarm_summary_exports2222222222222222 = {};
                                                                __export2222222222222222(alarm_summary_exports2222222222222222, {
                                                                  decode: () => decode34222222222222222,
                                                                  encode: () => encode34222222222222222
                                                                });
                                                                var encode34222222222222222 = (buffer, alarms) => {
                                                                  alarms.forEach((alarm) => {
                                                                    encodeContextObjectId2222222222222222(
                                                                      buffer,
                                                                      12,
                                                                      alarm.objectId.type,
                                                                      alarm.objectId.instance
                                                                    );
                                                                    encodeContextEnumerated2222222222222222(buffer, 9, alarm.alarmState);
                                                                    encodeContextBitstring2222222222222222(buffer, 8, alarm.acknowledgedTransitions);
                                                                  });
                                                                };
                                                                var decode34222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  const alarms = [];
                                                                  while (apduLen - 3 - len > 0) {
                                                                    let value = {};
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    value.objectId = {
                                                                      type: decodedValue.objectType,
                                                                      instance: decodedValue.instance
                                                                    };
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.alarmState = decodedValue.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeBitstring2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.acknowledgedTransitions = decodedValue.value;
                                                                    alarms.push(value);
                                                                  }
                                                                  return {
                                                                    len,
                                                                    alarms
                                                                  };
                                                                };
                                                                var atomic_read_file_exports2222222222222222 = {};
                                                                __export2222222222222222(atomic_read_file_exports2222222222222222, {
                                                                  decode: () => decode42222222222222222,
                                                                  decodeAcknowledge: () => decodeAcknowledge8222222222222222,
                                                                  encode: () => encode42222222222222222,
                                                                  encodeAcknowledge: () => encodeAcknowledge9222222222222222
                                                                });
                                                                var encode42222222222222222 = (buffer, isStream, objectId, position, count) => {
                                                                  encodeApplicationObjectId2222222222222222(buffer, objectId.type, objectId.instance);
                                                                  if (isStream) {
                                                                    encodeOpeningTag2222222222222222(buffer, 0);
                                                                    encodeApplicationSigned2222222222222222(buffer, position);
                                                                    encodeApplicationUnsigned2222222222222222(buffer, count);
                                                                    encodeClosingTag2222222222222222(buffer, 0);
                                                                  } else {
                                                                    encodeOpeningTag2222222222222222(buffer, 1);
                                                                    encodeApplicationSigned2222222222222222(buffer, position);
                                                                    encodeApplicationUnsigned2222222222222222(buffer, count);
                                                                    encodeClosingTag2222222222222222(buffer, 1);
                                                                  }
                                                                };
                                                                var decode42222222222222222 = (buffer, offset) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let isStream = true;
                                                                  let objectId = {};
                                                                  let position = -1;
                                                                  let count = 0;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 12) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                                                                  if (decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 0)) {
                                                                    isStream = true;
                                                                    len++;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 3) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeSigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    position = decodedValue.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 2) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    count = decodedValue.value;
                                                                    if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 0)) {
                                                                      return void 0;
                                                                    }
                                                                    len++;
                                                                  } else if (decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    isStream = false;
                                                                    len++;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 3) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeSigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    position = decodedValue.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 2) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    count = decodedValue.value;
                                                                    if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                      return void 0;
                                                                    }
                                                                    len++;
                                                                  } else {
                                                                    return void 0;
                                                                  }
                                                                  return {
                                                                    len,
                                                                    isStream,
                                                                    objectId,
                                                                    position,
                                                                    count
                                                                  };
                                                                };
                                                                var encodeAcknowledge9222222222222222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                                                                  encodeApplicationBoolean2222222222222222(buffer, endOfFile);
                                                                  if (isStream) {
                                                                    encodeOpeningTag2222222222222222(buffer, 0);
                                                                    encodeApplicationSigned2222222222222222(buffer, position);
                                                                    encodeApplicationOctetString2222222222222222(buffer, blocks[0], 0, counts[0]);
                                                                    encodeClosingTag2222222222222222(buffer, 0);
                                                                  } else {
                                                                    encodeOpeningTag2222222222222222(buffer, 1);
                                                                    encodeApplicationSigned2222222222222222(buffer, position);
                                                                    encodeApplicationUnsigned2222222222222222(buffer, blockCount);
                                                                    for (let i = 0; i < blockCount; i++) {
                                                                      encodeApplicationOctetString2222222222222222(buffer, blocks[i], 0, counts[i]);
                                                                    }
                                                                    encodeClosingTag2222222222222222(buffer, 1);
                                                                  }
                                                                };
                                                                var decodeAcknowledge8222222222222222 = (buffer, offset, length = 0) => {
                                                                  let len = length;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let endOfFile;
                                                                  let isStream;
                                                                  let position;
                                                                  let targetBuffer;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 1) {
                                                                    return void 0;
                                                                  }
                                                                  endOfFile = result.value > 0;
                                                                  if (decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 0)) {
                                                                    isStream = true;
                                                                    len++;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 3) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeSigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    position = decodedValue.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 6) {
                                                                      return void 0;
                                                                    }
                                                                    targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                                                                    len += result.value;
                                                                    if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 0)) {
                                                                      return void 0;
                                                                    }
                                                                    len++;
                                                                  } else if (decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    isStream = false;
                                                                    throw new Error("NotImplemented");
                                                                  } else {
                                                                    return void 0;
                                                                  }
                                                                  return {
                                                                    len,
                                                                    endOfFile,
                                                                    isStream,
                                                                    position,
                                                                    buffer: targetBuffer
                                                                  };
                                                                };
                                                                var atomic_write_file_exports2222222222222222 = {};
                                                                __export2222222222222222(atomic_write_file_exports2222222222222222, {
                                                                  decode: () => decode52222222222222222,
                                                                  decodeAcknowledge: () => decodeAcknowledge22222222222222222,
                                                                  encode: () => encode52222222222222222,
                                                                  encodeAcknowledge: () => encodeAcknowledge22222222222222222
                                                                });
                                                                var encode52222222222222222 = (buffer, isStream, objectId, position, blocks) => {
                                                                  encodeApplicationObjectId2222222222222222(buffer, objectId.type, objectId.instance);
                                                                  if (isStream) {
                                                                    encodeOpeningTag2222222222222222(buffer, 0);
                                                                    encodeApplicationSigned2222222222222222(buffer, position);
                                                                    encodeApplicationOctetString2222222222222222(buffer, blocks[0], 0, blocks[0].length);
                                                                    encodeClosingTag2222222222222222(buffer, 0);
                                                                  } else {
                                                                    encodeOpeningTag2222222222222222(buffer, 1);
                                                                    encodeApplicationSigned2222222222222222(buffer, position);
                                                                    encodeApplicationUnsigned2222222222222222(buffer, blocks.length);
                                                                    for (let i = 0; i < blocks.length; i++) {
                                                                      encodeApplicationOctetString2222222222222222(
                                                                        buffer,
                                                                        blocks[i],
                                                                        0,
                                                                        blocks[i].length
                                                                      );
                                                                    }
                                                                    encodeClosingTag2222222222222222(buffer, 1);
                                                                  }
                                                                };
                                                                var decode52222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let isStream;
                                                                  let position;
                                                                  let blocks = [];
                                                                  let blockCount;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 12) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  let objectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  if (decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 0)) {
                                                                    isStream = true;
                                                                    len++;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 3) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeSigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    position = decodedValue.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 6) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeOctetString2222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      apduLen,
                                                                      0,
                                                                      result.value
                                                                    );
                                                                    len += decodedValue.len;
                                                                    blocks.push(decodedValue.value);
                                                                    if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 0)) {
                                                                      return void 0;
                                                                    }
                                                                    len++;
                                                                  } else if (decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    isStream = false;
                                                                    len++;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 3) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeSigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    position = decodedValue.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 2) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    blockCount = decodedValue.value;
                                                                    for (let i = 0; i < blockCount; i++) {
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber !== 6) {
                                                                        return void 0;
                                                                      }
                                                                      decodedValue = decodeOctetString2222222222222222(
                                                                        buffer,
                                                                        offset + len,
                                                                        apduLen,
                                                                        0,
                                                                        result.value
                                                                      );
                                                                      len += decodedValue.len;
                                                                      blocks.push(decodedValue.value);
                                                                    }
                                                                    if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                      return void 0;
                                                                    }
                                                                    len++;
                                                                  } else {
                                                                    return void 0;
                                                                  }
                                                                  return {
                                                                    len,
                                                                    isStream,
                                                                    objectId,
                                                                    position,
                                                                    blocks
                                                                  };
                                                                };
                                                                var encodeAcknowledge22222222222222222 = (buffer, isStream, position) => {
                                                                  if (isStream) {
                                                                    encodeContextSigned2222222222222222(buffer, 0, position);
                                                                  } else {
                                                                    encodeContextSigned2222222222222222(buffer, 1, position);
                                                                  }
                                                                };
                                                                var decodeAcknowledge22222222222222222 = (buffer, offset, length = 0) => {
                                                                  let len = length;
                                                                  let isStream = false;
                                                                  let position = 0;
                                                                  let decodedValue;
                                                                  const result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber === 0) {
                                                                    isStream = true;
                                                                  } else if (result.tagNumber === 1) {
                                                                    isStream = false;
                                                                  } else {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeSigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  position = decodedValue.value;
                                                                  return {
                                                                    len,
                                                                    isStream,
                                                                    position
                                                                  };
                                                                };
                                                                var cov_notify_exports2222222222222222 = {};
                                                                __export2222222222222222(cov_notify_exports2222222222222222, {
                                                                  decode: () => decode62222222222222222,
                                                                  encode: () => encode62222222222222222
                                                                });
                                                                var encode62222222222222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                                                                  encodeContextUnsigned2222222222222222(buffer, 0, subscriberProcessId);
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    1,
                                                                    8,
                                                                    initiatingDeviceId
                                                                  );
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    2,
                                                                    monitoredObjectId.type,
                                                                    monitoredObjectId.instance
                                                                  );
                                                                  encodeContextUnsigned2222222222222222(buffer, 3, timeRemaining);
                                                                  encodeOpeningTag2222222222222222(buffer, 4);
                                                                  values.forEach((value) => {
                                                                    encodeContextEnumerated2222222222222222(buffer, 0, value.property.id);
                                                                    if (value.property.index === ASN1_ARRAY_ALL2222222222222222) {
                                                                      encodeContextUnsigned2222222222222222(buffer, 1, value.property.index);
                                                                    }
                                                                    encodeOpeningTag2222222222222222(buffer, 2);
                                                                    value.value.forEach((v) => {
                                                                      bacappEncodeApplicationData2222222222222222(buffer, v);
                                                                    });
                                                                    encodeClosingTag2222222222222222(buffer, 2);
                                                                    if (value.priority === ASN1_NO_PRIORITY2222222222222222) {
                                                                      encodeContextUnsigned2222222222222222(buffer, 3, value.priority);
                                                                    }
                                                                  });
                                                                  encodeClosingTag2222222222222222(buffer, 4);
                                                                };
                                                                var decode62222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  const subscriberProcessId = decodedValue.value;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  const initiatingDeviceId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 2)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  const monitoredObjectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 3)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  const timeRemaining = decodedValue.value;
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 4)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  const values = [];
                                                                  while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 4)) {
                                                                    let newEntry = {};
                                                                    newEntry.property = {};
                                                                    if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                      return void 0;
                                                                    }
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    newEntry.property.id = decodedValue.value;
                                                                    if (decodeIsContextTag2222222222222222(buffer, offset + len, 1)) {
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      newEntry.property.index = decodedValue.value;
                                                                    } else {
                                                                      newEntry.property.index = ASN1_ARRAY_ALL2222222222222222;
                                                                    }
                                                                    if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 2)) {
                                                                      return void 0;
                                                                    }
                                                                    len++;
                                                                    const properties = [];
                                                                    while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 2)) {
                                                                      decodedValue = bacappDecodeApplicationData2222222222222222(
                                                                        buffer,
                                                                        offset + len,
                                                                        apduLen + offset,
                                                                        monitoredObjectId.type,
                                                                        newEntry.property.id
                                                                      );
                                                                      if (!decodedValue) {
                                                                        return void 0;
                                                                      }
                                                                      len += decodedValue.len;
                                                                      delete decodedValue.len;
                                                                      properties.push(decodedValue);
                                                                    }
                                                                    newEntry.value = properties;
                                                                    len++;
                                                                    if (decodeIsContextTag2222222222222222(buffer, offset + len, 3)) {
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      newEntry.priority = decodedValue.value;
                                                                    } else {
                                                                      newEntry.priority = ASN1_NO_PRIORITY2222222222222222;
                                                                    }
                                                                    values.push(newEntry);
                                                                  }
                                                                  return {
                                                                    len,
                                                                    subscriberProcessId,
                                                                    initiatingDeviceId,
                                                                    monitoredObjectId,
                                                                    timeRemaining,
                                                                    values
                                                                  };
                                                                };
                                                                var create_object_exports2222222222222222 = {};
                                                                __export2222222222222222(create_object_exports2222222222222222, {
                                                                  decode: () => decode72222222222222222,
                                                                  encode: () => encode72222222222222222,
                                                                  encodeAcknowledge: () => encodeAcknowledge32222222222222222
                                                                });
                                                                var encode72222222222222222 = (buffer, objectId, values) => {
                                                                  encodeOpeningTag2222222222222222(buffer, 0);
                                                                  encodeContextObjectId2222222222222222(buffer, 1, objectId.type, objectId.instance);
                                                                  encodeClosingTag2222222222222222(buffer, 0);
                                                                  encodeOpeningTag2222222222222222(buffer, 1);
                                                                  values.forEach((propertyValue) => {
                                                                    encodeContextEnumerated2222222222222222(buffer, 0, propertyValue.property.id);
                                                                    if (propertyValue.property.index !== ASN1_ARRAY_ALL2222222222222222) {
                                                                      encodeContextUnsigned2222222222222222(buffer, 1, propertyValue.property.index);
                                                                    }
                                                                    encodeOpeningTag2222222222222222(buffer, 2);
                                                                    propertyValue.value.forEach((value) => {
                                                                      bacappEncodeApplicationData2222222222222222(buffer, value);
                                                                    });
                                                                    encodeClosingTag2222222222222222(buffer, 2);
                                                                    if (propertyValue.priority !== ASN1_NO_PRIORITY2222222222222222) {
                                                                      encodeContextUnsigned2222222222222222(buffer, 3, propertyValue.priority);
                                                                    }
                                                                  });
                                                                  encodeClosingTag2222222222222222(buffer, 1);
                                                                };
                                                                var decode72222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let objectId;
                                                                  const valueList = [];
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber === 0 && apduLen > len) {
                                                                    apduLen -= len;
                                                                    if (apduLen < 4) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeContextObjectId2222222222222222(buffer, offset + len, 1);
                                                                    len += decodedValue.len;
                                                                    objectId = {
                                                                      type: decodedValue.objectType,
                                                                      instance: decodedValue.instance
                                                                    };
                                                                  } else {
                                                                    return void 0;
                                                                  }
                                                                  if (decodeIsClosingTag2222222222222222(buffer, offset + len)) {
                                                                    len++;
                                                                  }
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  while (apduLen - len > 1) {
                                                                    let newEntry = {};
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 0) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    let propertyId = decodedValue.value;
                                                                    let arraIndex = ASN1_ARRAY_ALL2222222222222222;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber === 1) {
                                                                      decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      arraIndex += decodedValue.value;
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                    }
                                                                    newEntry.property = { id: propertyId, index: arraIndex };
                                                                    if (result.tagNumber === 2 && decodeIsOpeningTag2222222222222222(buffer, offset + len - 1)) {
                                                                      const values = [];
                                                                      while (!decodeIsClosingTag2222222222222222(buffer, offset + len)) {
                                                                        decodedValue = bacappDecodeApplicationData2222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          apduLen + offset,
                                                                          objectId.type,
                                                                          propertyId
                                                                        );
                                                                        if (!decodedValue) {
                                                                          return void 0;
                                                                        }
                                                                        len += decodedValue.len;
                                                                        delete decodedValue.len;
                                                                        values.push(decodedValue);
                                                                      }
                                                                      len++;
                                                                      newEntry.value = values;
                                                                    } else {
                                                                      return void 0;
                                                                    }
                                                                    valueList.push(newEntry);
                                                                  }
                                                                  if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  return {
                                                                    len,
                                                                    objectId,
                                                                    values: valueList
                                                                  };
                                                                };
                                                                var encodeAcknowledge32222222222222222 = (buffer, objectId) => {
                                                                  encodeApplicationObjectId2222222222222222(buffer, objectId.type, objectId.instance);
                                                                };
                                                                var delete_object_exports2222222222222222 = {};
                                                                __export2222222222222222(delete_object_exports2222222222222222, {
                                                                  decode: () => decode82222222222222222,
                                                                  encode: () => encode82222222222222222
                                                                });
                                                                var decode82222222222222222 = (buffer, offset, apduLen) => {
                                                                  const result = decodeTagNumberAndValue2222222222222222(buffer, offset);
                                                                  if (result.tagNumber !== 12) {
                                                                    return void 0;
                                                                  }
                                                                  let len = 1;
                                                                  const value = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += value.len;
                                                                  if (len !== apduLen) {
                                                                    return void 0;
                                                                  }
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var encode82222222222222222 = (buffer, objectId) => {
                                                                  encodeApplicationObjectId2222222222222222(buffer, objectId.type, objectId.instance);
                                                                };
                                                                var device_communication_control_exports2222222222222222 = {};
                                                                __export2222222222222222(device_communication_control_exports2222222222222222, {
                                                                  decode: () => decode92222222222222222,
                                                                  encode: () => encode92222222222222222
                                                                });
                                                                var encode92222222222222222 = (buffer, timeDuration, enableDisable, password) => {
                                                                  if (timeDuration > 0) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 0, timeDuration);
                                                                  }
                                                                  encodeContextEnumerated2222222222222222(buffer, 1, enableDisable);
                                                                  if (password && password !== "") {
                                                                    encodeContextCharacterString2222222222222222(buffer, 2, password);
                                                                  }
                                                                };
                                                                var decode92222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let value = {};
                                                                  let decodedValue;
                                                                  let result;
                                                                  if (decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    value.timeDuration = decodedValue.value;
                                                                    len += decodedValue.len;
                                                                  }
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  value.enableDisable = decodedValue.value;
                                                                  len += decodedValue.len;
                                                                  if (len < apduLen) {
                                                                    if (!decodeIsContextTag2222222222222222(buffer, offset + len, 2)) {
                                                                      return void 0;
                                                                    }
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeCharacterString2222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      apduLen - (offset + len),
                                                                      result.value
                                                                    );
                                                                    value.password = decodedValue.value;
                                                                    len += decodedValue.len;
                                                                  }
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var error_exports2222222222222222 = {};
                                                                __export2222222222222222(error_exports2222222222222222, {
                                                                  buildMessage: () => buildMessage2222222222222222,
                                                                  decode: () => decode102222222222222222,
                                                                  encode: () => encode102222222222222222
                                                                });
                                                                var encode102222222222222222 = (buffer, errorClass, errorCode) => {
                                                                  encodeApplicationEnumerated2222222222222222(buffer, errorClass);
                                                                  encodeApplicationEnumerated2222222222222222(buffer, errorCode);
                                                                };
                                                                var decode102222222222222222 = (buffer, offset) => {
                                                                  const orgOffset = offset;
                                                                  let result;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset);
                                                                  offset += result.len;
                                                                  const errorClass = decodeEnumerated2222222222222222(buffer, offset, result.value);
                                                                  offset += errorClass.len;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset);
                                                                  offset += result.len;
                                                                  const errorCode = decodeEnumerated2222222222222222(buffer, offset, result.value);
                                                                  offset += errorClass.len;
                                                                  return {
                                                                    len: offset - orgOffset,
                                                                    class: errorClass.value,
                                                                    code: errorCode.value
                                                                  };
                                                                };
                                                                var buildMessage2222222222222222 = function(result) {
                                                                  return "BacnetError Class: " + ErrorClassName2222222222222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName2222222222222222[result.code] + " (" + result.code + ")";
                                                                };
                                                                var event_information_exports2222222222222222 = {};
                                                                __export2222222222222222(event_information_exports2222222222222222, {
                                                                  decode: () => decode112222222222222222,
                                                                  encode: () => encode112222222222222222
                                                                });
                                                                var encode112222222222222222 = (buffer, events, moreEvents) => {
                                                                  encodeOpeningTag2222222222222222(buffer, 0);
                                                                  events.forEach((event) => {
                                                                    encodeContextObjectId2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      event.objectId.type,
                                                                      event.objectId.instance
                                                                    );
                                                                    encodeContextEnumerated2222222222222222(buffer, 1, event.eventState);
                                                                    encodeContextBitstring2222222222222222(buffer, 2, event.acknowledgedTransitions);
                                                                    encodeOpeningTag2222222222222222(buffer, 3);
                                                                    for (let i = 0; i < 3; i++) {
                                                                      encodeApplicationDate2222222222222222(buffer, event.eventTimeStamps[i]);
                                                                      encodeApplicationTime2222222222222222(buffer, event.eventTimeStamps[i]);
                                                                    }
                                                                    encodeClosingTag2222222222222222(buffer, 3);
                                                                    encodeContextEnumerated2222222222222222(buffer, 4, event.notifyType);
                                                                    encodeContextBitstring2222222222222222(buffer, 5, event.eventEnable);
                                                                    encodeOpeningTag2222222222222222(buffer, 6);
                                                                    for (let i = 0; i < 3; i++) {
                                                                      encodeApplicationUnsigned2222222222222222(buffer, event.eventPriorities[i]);
                                                                    }
                                                                    encodeClosingTag2222222222222222(buffer, 6);
                                                                  });
                                                                  encodeClosingTag2222222222222222(buffer, 0);
                                                                  encodeContextBoolean2222222222222222(buffer, 1, moreEvents);
                                                                };
                                                                var decode112222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  len++;
                                                                  const alarms = [];
                                                                  let moreEvents;
                                                                  while (apduLen - 3 - len > 0) {
                                                                    let value = {};
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    value.objectId = {
                                                                      type: decodedValue.objectType,
                                                                      instance: decodedValue.instance
                                                                    };
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.eventState = decodedValue.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeBitstring2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.acknowledgedTransitions = decodedValue.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    value.eventTimeStamps = [];
                                                                    for (let i = 0; i < 3; i++) {
                                                                      if (result.tagNumber !== 0) {
                                                                        decodedValue = decodeApplicationDate2222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        const date = decodedValue.value.value;
                                                                        decodedValue = decodeApplicationTime2222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        const time = decodedValue.value.value;
                                                                        value.eventTimeStamps[i] = new Date(
                                                                          date.getFullYear(),
                                                                          date.getMonth(),
                                                                          date.getDate(),
                                                                          time.getHours(),
                                                                          time.getMinutes(),
                                                                          time.getSeconds(),
                                                                          time.getMilliseconds()
                                                                        );
                                                                      } else {
                                                                        len += result.value;
                                                                      }
                                                                    }
                                                                    len++;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.notifyType = decodedValue.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeBitstring2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.eventEnable = decodedValue.value;
                                                                    len++;
                                                                    value.eventPriorities = [];
                                                                    for (let i = 0; i < 3; i++) {
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.eventPriorities[i] = decodedValue.value;
                                                                    }
                                                                    len++;
                                                                    alarms.push(value);
                                                                  }
                                                                  moreEvents = buffer[apduLen - 1] === 1;
                                                                  return {
                                                                    len,
                                                                    alarms,
                                                                    moreEvents
                                                                  };
                                                                };
                                                                var event_notify_data_exports2222222222222222 = {};
                                                                __export2222222222222222(event_notify_data_exports2222222222222222, {
                                                                  decode: () => decode122222222222222222,
                                                                  encode: () => encode122222222222222222
                                                                });
                                                                var encode122222222222222222 = (buffer, data) => {
                                                                  encodeContextUnsigned2222222222222222(buffer, 0, data.processId);
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    1,
                                                                    data.initiatingObjectId.type,
                                                                    data.initiatingObjectId.instance
                                                                  );
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    2,
                                                                    data.eventObjectId.type,
                                                                    data.eventObjectId.instance
                                                                  );
                                                                  bacappEncodeContextTimestamp2222222222222222(buffer, 3, data.timeStamp);
                                                                  encodeContextUnsigned2222222222222222(buffer, 4, data.notificationClass);
                                                                  encodeContextUnsigned2222222222222222(buffer, 5, data.priority);
                                                                  encodeContextEnumerated2222222222222222(buffer, 6, data.eventType);
                                                                  if (data.messageText && data.messageText !== "") {
                                                                    encodeContextCharacterString2222222222222222(buffer, 7, data.messageText);
                                                                  }
                                                                  encodeContextEnumerated2222222222222222(buffer, 8, data.notifyType);
                                                                  switch (data.notifyType) {
                                                                    case 0:
                                                                    case 1:
                                                                      encodeContextBoolean2222222222222222(buffer, 9, data.ackRequired);
                                                                      encodeContextEnumerated2222222222222222(buffer, 10, data.fromState);
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                  encodeContextEnumerated2222222222222222(buffer, 11, data.toState);
                                                                  switch (data.notifyType) {
                                                                    case 0:
                                                                    case 1:
                                                                      encodeOpeningTag2222222222222222(buffer, 12);
                                                                      switch (data.eventType) {
                                                                        case 0:
                                                                          encodeOpeningTag2222222222222222(buffer, 0);
                                                                          encodeContextBitstring2222222222222222(
                                                                            buffer,
                                                                            0,
                                                                            data.changeOfBitstringReferencedBitString
                                                                          );
                                                                          encodeContextBitstring2222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            data.changeOfBitstringStatusFlags
                                                                          );
                                                                          encodeClosingTag2222222222222222(buffer, 0);
                                                                          break;
                                                                        case 1:
                                                                          encodeOpeningTag2222222222222222(buffer, 1);
                                                                          encodeOpeningTag2222222222222222(buffer, 0);
                                                                          bacappEncodePropertyState2222222222222222(buffer, data.changeOfStateNewState);
                                                                          encodeClosingTag2222222222222222(buffer, 0);
                                                                          encodeContextBitstring2222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            data.changeOfStateStatusFlags
                                                                          );
                                                                          encodeClosingTag2222222222222222(buffer, 1);
                                                                          break;
                                                                        case 2:
                                                                          encodeOpeningTag2222222222222222(buffer, 2);
                                                                          encodeOpeningTag2222222222222222(buffer, 0);
                                                                          switch (data.changeOfValueTag) {
                                                                            case 0:
                                                                              encodeContextReal2222222222222222(
                                                                                buffer,
                                                                                1,
                                                                                data.changeOfValueChangeValue
                                                                              );
                                                                              break;
                                                                            case 1:
                                                                              encodeContextBitstring2222222222222222(
                                                                                buffer,
                                                                                0,
                                                                                data.changeOfValueChangedBits
                                                                              );
                                                                              break;
                                                                            default:
                                                                              throw new Error("NotImplemented");
                                                                          }
                                                                          encodeClosingTag2222222222222222(buffer, 0);
                                                                          encodeContextBitstring2222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            data.changeOfValueStatusFlags
                                                                          );
                                                                          encodeClosingTag2222222222222222(buffer, 2);
                                                                          break;
                                                                        case 4:
                                                                          encodeOpeningTag2222222222222222(buffer, 4);
                                                                          encodeContextReal2222222222222222(buffer, 0, data.floatingLimitReferenceValue);
                                                                          encodeContextBitstring2222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            data.floatingLimitStatusFlags
                                                                          );
                                                                          encodeContextReal2222222222222222(buffer, 2, data.floatingLimitSetPointValue);
                                                                          encodeContextReal2222222222222222(buffer, 3, data.floatingLimitErrorLimit);
                                                                          encodeClosingTag2222222222222222(buffer, 4);
                                                                          break;
                                                                        case 5:
                                                                          encodeOpeningTag2222222222222222(buffer, 5);
                                                                          encodeContextReal2222222222222222(buffer, 0, data.outOfRangeExceedingValue);
                                                                          encodeContextBitstring2222222222222222(buffer, 1, data.outOfRangeStatusFlags);
                                                                          encodeContextReal2222222222222222(buffer, 2, data.outOfRangeDeadband);
                                                                          encodeContextReal2222222222222222(buffer, 3, data.outOfRangeExceededLimit);
                                                                          encodeClosingTag2222222222222222(buffer, 5);
                                                                          break;
                                                                        case 8:
                                                                          encodeOpeningTag2222222222222222(buffer, 8);
                                                                          encodeContextEnumerated2222222222222222(
                                                                            buffer,
                                                                            0,
                                                                            data.changeOfLifeSafetyNewState
                                                                          );
                                                                          encodeContextEnumerated2222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            data.changeOfLifeSafetyNewMode
                                                                          );
                                                                          encodeContextBitstring2222222222222222(
                                                                            buffer,
                                                                            2,
                                                                            data.changeOfLifeSafetyStatusFlags
                                                                          );
                                                                          encodeContextEnumerated2222222222222222(
                                                                            buffer,
                                                                            3,
                                                                            data.changeOfLifeSafetyOperationExpected
                                                                          );
                                                                          encodeClosingTag2222222222222222(buffer, 8);
                                                                          break;
                                                                        case 10:
                                                                          encodeOpeningTag2222222222222222(buffer, 10);
                                                                          bacappEncodeContextDeviceObjPropertyRef2222222222222222(
                                                                            buffer,
                                                                            0,
                                                                            data.bufferReadyBufferProperty
                                                                          );
                                                                          encodeContextUnsigned2222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            data.bufferReadyPreviousNotification
                                                                          );
                                                                          encodeContextUnsigned2222222222222222(
                                                                            buffer,
                                                                            2,
                                                                            data.bufferReadyCurrentNotification
                                                                          );
                                                                          encodeClosingTag2222222222222222(buffer, 10);
                                                                          break;
                                                                        case 11:
                                                                          encodeOpeningTag2222222222222222(buffer, 11);
                                                                          encodeContextUnsigned2222222222222222(
                                                                            buffer,
                                                                            0,
                                                                            data.unsignedRangeExceedingValue
                                                                          );
                                                                          encodeContextBitstring2222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            data.unsignedRangeStatusFlags
                                                                          );
                                                                          encodeContextUnsigned2222222222222222(
                                                                            buffer,
                                                                            2,
                                                                            data.unsignedRangeExceededLimit
                                                                          );
                                                                          encodeClosingTag2222222222222222(buffer, 11);
                                                                          break;
                                                                        case 9:
                                                                        case 3:
                                                                          throw new Error("NotImplemented");
                                                                        default:
                                                                          throw new Error("NotImplemented");
                                                                      }
                                                                      encodeClosingTag2222222222222222(buffer, 12);
                                                                      break;
                                                                    case 2:
                                                                      throw new Error("NotImplemented");
                                                                    default:
                                                                      break;
                                                                  }
                                                                };
                                                                var decode122222222222222222 = (buffer, offset) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let eventData = {};
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  eventData.processId = decodedValue.value;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  eventData.initiatingObjectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 2)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  eventData.eventObjectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 3)) {
                                                                    return void 0;
                                                                  }
                                                                  len += 2;
                                                                  decodedValue = decodeApplicationDate2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  const date = decodedValue.value.value;
                                                                  decodedValue = decodeApplicationTime2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  const time = decodedValue.value.value;
                                                                  eventData.timeStamp = new Date(
                                                                    date.getFullYear(),
                                                                    date.getMonth(),
                                                                    date.getDate(),
                                                                    time.getHours(),
                                                                    time.getMinutes(),
                                                                    time.getSeconds(),
                                                                    time.getMilliseconds()
                                                                  );
                                                                  len += 2;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 4)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  eventData.notificationClass = decodedValue.value;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 5)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  eventData.priority = decodedValue.value;
                                                                  if (eventData.priority > 255) {
                                                                    return void 0;
                                                                  }
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 6)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  eventData.eventType = decodedValue.value;
                                                                  if (decodeIsContextTag2222222222222222(buffer, offset + len, 7)) {
                                                                    decodedValue = decodeContextCharacterString2222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      2e4,
                                                                      7
                                                                    );
                                                                    len += decodedValue.len;
                                                                    eventData.messageText = decodedValue.value;
                                                                  }
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 8)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  eventData.notifyType = decodedValue.value;
                                                                  switch (eventData.notifyType) {
                                                                    case 0:
                                                                    case 1:
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, 1);
                                                                      len += decodedValue.len;
                                                                      eventData.ackRequired = decodedValue.value > 0;
                                                                      if (!decodeIsContextTag2222222222222222(buffer, offset + len, 10)) {
                                                                        return void 0;
                                                                      }
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeEnumerated2222222222222222(
                                                                        buffer,
                                                                        offset + len,
                                                                        result.value
                                                                      );
                                                                      len += decodedValue.len;
                                                                      eventData.fromState = decodedValue.value;
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 11)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  eventData.toState = decodedValue.value;
                                                                  eventData.len = len;
                                                                  return eventData;
                                                                };
                                                                var get_enrollment_summary_exports2222222222222222 = {};
                                                                __export2222222222222222(get_enrollment_summary_exports2222222222222222, {
                                                                  decode: () => decode132222222222222222,
                                                                  decodeAcknowledge: () => decodeAcknowledge32222222222222222,
                                                                  encode: () => encode132222222222222222,
                                                                  encodeAcknowledge: () => encodeAcknowledge42222222222222222
                                                                });
                                                                var encode132222222222222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                                                                  encodeContextEnumerated2222222222222222(buffer, 0, acknowledgmentFilter);
                                                                  if (enrollmentFilter) {
                                                                    encodeOpeningTag2222222222222222(buffer, 1);
                                                                    encodeOpeningTag2222222222222222(buffer, 0);
                                                                    encodeContextObjectId2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      enrollmentFilter.objectId.type,
                                                                      enrollmentFilter.objectId.instance
                                                                    );
                                                                    encodeClosingTag2222222222222222(buffer, 0);
                                                                    encodeContextUnsigned2222222222222222(buffer, 1, enrollmentFilter.processId);
                                                                    encodeClosingTag2222222222222222(buffer, 1);
                                                                  }
                                                                  if (eventStateFilter) {
                                                                    encodeOpeningTag2222222222222222(buffer, 2);
                                                                    encodeContextEnumerated2222222222222222(buffer, 0, eventStateFilter);
                                                                    encodeClosingTag2222222222222222(buffer, 2);
                                                                  }
                                                                  if (eventTypeFilter) {
                                                                    encodeOpeningTag2222222222222222(buffer, 3);
                                                                    encodeContextEnumerated2222222222222222(buffer, 0, eventTypeFilter);
                                                                    encodeClosingTag2222222222222222(buffer, 3);
                                                                  }
                                                                  if (priorityFilter) {
                                                                    encodeOpeningTag2222222222222222(buffer, 4);
                                                                    encodeContextUnsigned2222222222222222(buffer, 0, priorityFilter.min);
                                                                    encodeContextUnsigned2222222222222222(buffer, 1, priorityFilter.max);
                                                                    encodeClosingTag2222222222222222(buffer, 4);
                                                                  }
                                                                  if (notificationClassFilter) {
                                                                    encodeOpeningTag2222222222222222(buffer, 5);
                                                                    encodeContextUnsigned2222222222222222(buffer, 0, notificationClassFilter);
                                                                    encodeClosingTag2222222222222222(buffer, 5);
                                                                  }
                                                                };
                                                                var decode132222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let value = {};
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.acknowledgmentFilter = decodedValue.value;
                                                                  if (decodeIsContextTag2222222222222222(buffer, offset + len, 1)) {
                                                                    len++;
                                                                    value.enrollmentFilter = {};
                                                                    if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                      return void 0;
                                                                    }
                                                                    len++;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    value.enrollmentFilter.objectId = {
                                                                      type: decodedValue.objectType,
                                                                      instance: decodedValue.instance
                                                                    };
                                                                    len++;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.enrollmentFilter.processId = decodedValue.value;
                                                                    len++;
                                                                  }
                                                                  if (decodeIsContextTag2222222222222222(buffer, offset + len, 2)) {
                                                                    len++;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.eventStateFilter = decodedValue.value;
                                                                    len++;
                                                                  }
                                                                  if (decodeIsContextTag2222222222222222(buffer, offset + len, 3)) {
                                                                    len++;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.eventTypeFilter = decodedValue.value;
                                                                    len++;
                                                                  }
                                                                  if (decodeIsContextTag2222222222222222(buffer, offset + len, 4)) {
                                                                    len++;
                                                                    value.priorityFilter = {};
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.priorityFilter.min = decodedValue.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.priorityFilter.max = decodedValue.value;
                                                                    len++;
                                                                  }
                                                                  if (decodeIsContextTag2222222222222222(buffer, offset + len, 5)) {
                                                                    len++;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.notificationClassFilter = decodedValue.value;
                                                                    len++;
                                                                  }
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var encodeAcknowledge42222222222222222 = (buffer, enrollmentSummaries) => {
                                                                  enrollmentSummaries.forEach((enrollmentSummary) => {
                                                                    encodeApplicationObjectId2222222222222222(
                                                                      buffer,
                                                                      enrollmentSummary.objectId.type,
                                                                      enrollmentSummary.objectId.instance
                                                                    );
                                                                    encodeApplicationEnumerated2222222222222222(buffer, enrollmentSummary.eventType);
                                                                    encodeApplicationEnumerated2222222222222222(buffer, enrollmentSummary.eventState);
                                                                    encodeApplicationUnsigned2222222222222222(buffer, enrollmentSummary.priority);
                                                                    encodeApplicationUnsigned2222222222222222(
                                                                      buffer,
                                                                      enrollmentSummary.notificationClass
                                                                    );
                                                                  });
                                                                };
                                                                var decodeAcknowledge32222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  const enrollmentSummaries = [];
                                                                  while (apduLen - len > 0) {
                                                                    const enrollmentSummary = {};
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 12) {
                                                                      return void 0;
                                                                    }
                                                                    result = decodeObjectId2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    enrollmentSummary.objectId = {
                                                                      type: result.objectType,
                                                                      instance: result.instance
                                                                    };
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 9) {
                                                                      return void 0;
                                                                    }
                                                                    result = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    len += result.len;
                                                                    enrollmentSummary.eventType = result.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 9) {
                                                                      return void 0;
                                                                    }
                                                                    result = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    len += result.len;
                                                                    enrollmentSummary.eventState = result.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 2) {
                                                                      return void 0;
                                                                    }
                                                                    result = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += result.len;
                                                                    enrollmentSummary.priority = result.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 2) {
                                                                      return void 0;
                                                                    }
                                                                    result = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += result.len;
                                                                    enrollmentSummary.notificationClass = result.value;
                                                                    enrollmentSummaries.push(enrollmentSummary);
                                                                  }
                                                                  return {
                                                                    enrollmentSummaries,
                                                                    len
                                                                  };
                                                                };
                                                                var get_event_information_exports2222222222222222 = {};
                                                                __export2222222222222222(get_event_information_exports2222222222222222, {
                                                                  decode: () => decode142222222222222222,
                                                                  decodeAcknowledge: () => decodeAcknowledge42222222222222222,
                                                                  encode: () => encode142222222222222222,
                                                                  encodeAcknowledge: () => encodeAcknowledge52222222222222222
                                                                });
                                                                var encode142222222222222222 = (buffer, lastReceivedObjectId) => {
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    0,
                                                                    lastReceivedObjectId.type,
                                                                    lastReceivedObjectId.instance
                                                                  );
                                                                };
                                                                var decode142222222222222222 = (buffer, offset) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let value = {};
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  value.lastReceivedObjectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var encodeAcknowledge52222222222222222 = (buffer, events, moreEvents) => {
                                                                  encodeOpeningTag2222222222222222(buffer, 0);
                                                                  events.forEach((eventData) => {
                                                                    encodeContextObjectId2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      eventData.objectId.type,
                                                                      eventData.objectId.instance
                                                                    );
                                                                    encodeContextEnumerated2222222222222222(buffer, 1, eventData.eventState);
                                                                    encodeContextBitstring2222222222222222(buffer, 2, eventData.acknowledgedTransitions);
                                                                    encodeOpeningTag2222222222222222(buffer, 3);
                                                                    for (let i = 0; i < 3; i++) {
                                                                      bacappEncodeTimestamp2222222222222222(buffer, eventData.eventTimeStamps[i]);
                                                                    }
                                                                    encodeClosingTag2222222222222222(buffer, 3);
                                                                    encodeContextEnumerated2222222222222222(buffer, 4, eventData.notifyType);
                                                                    encodeContextBitstring2222222222222222(buffer, 5, eventData.eventEnable);
                                                                    encodeOpeningTag2222222222222222(buffer, 6);
                                                                    for (let i = 0; i < 3; i++) {
                                                                      encodeApplicationUnsigned2222222222222222(buffer, eventData.eventPriorities[i]);
                                                                    }
                                                                    encodeClosingTag2222222222222222(buffer, 6);
                                                                  });
                                                                  encodeClosingTag2222222222222222(buffer, 0);
                                                                  encodeContextBoolean2222222222222222(buffer, 1, moreEvents);
                                                                };
                                                                var decodeAcknowledge42222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let value = {};
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  value.events = [];
                                                                  while (apduLen - len > 3) {
                                                                    let event = {};
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    event.objectId = {
                                                                      type: decodedValue.objectType,
                                                                      instance: decodedValue.instance
                                                                    };
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    event.eventState = decodedValue.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeBitstring2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    event.acknowledgedTransitions = decodedValue.value;
                                                                    if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 3)) {
                                                                      return void 0;
                                                                    }
                                                                    len++;
                                                                    event.eventTimeStamps = [];
                                                                    for (let i = 0; i < 3; i++) {
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      if (result.tagNumber === 0) {
                                                                        decodedValue = decodeBacnetTime2222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          result.value
                                                                        );
                                                                        len += decodedValue.len;
                                                                        event.eventTimeStamps[i] = {
                                                                          value: decodedValue.value,
                                                                          type: 0
                                                                          /* TIME */
                                                                        };
                                                                      } else if (result.tagNumber === 1) {
                                                                        decodedValue = decodeUnsigned2222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          result.value
                                                                        );
                                                                        len += decodedValue.len;
                                                                        event.eventTimeStamps[i] = {
                                                                          value: decodedValue.value,
                                                                          type: 1
                                                                          /* SEQUENCE_NUMBER */
                                                                        };
                                                                      } else if (result.tagNumber === 2) {
                                                                        let date = decodeApplicationDate2222222222222222(
                                                                          buffer,
                                                                          offset + len
                                                                        );
                                                                        len += date.len;
                                                                        date = date.value.value;
                                                                        let time = decodeApplicationTime2222222222222222(
                                                                          buffer,
                                                                          offset + len
                                                                        );
                                                                        len += time.len;
                                                                        time = time.value.value;
                                                                        event.eventTimeStamps[i] = {
                                                                          value: new Date(
                                                                            date.getFullYear(),
                                                                            date.getMonth(),
                                                                            date.getDate(),
                                                                            time.getHours(),
                                                                            time.getMinutes(),
                                                                            time.getSeconds(),
                                                                            time.getMilliseconds()
                                                                          ),
                                                                          type: 2
                                                                          /* DATETIME */
                                                                        };
                                                                        len++;
                                                                      }
                                                                    }
                                                                    if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 3)) {
                                                                      return void 0;
                                                                    }
                                                                    len++;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    event.notifyType = decodedValue.value;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeBitstring2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    event.eventEnable = decodedValue.value;
                                                                    if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 6)) {
                                                                      return void 0;
                                                                    }
                                                                    len++;
                                                                    event.eventPriorities = [];
                                                                    for (let i = 0; i < 3; i++) {
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      event.eventPriorities[i] = decodedValue.value;
                                                                    }
                                                                    if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 6)) {
                                                                      return void 0;
                                                                    }
                                                                    len++;
                                                                    value.events.push(event);
                                                                  }
                                                                  if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  value.moreEvents = buffer[offset + len] > 0;
                                                                  len++;
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var i_am_exports2222222222222222 = {};
                                                                __export2222222222222222(i_am_exports2222222222222222, {
                                                                  decode: () => decode152222222222222222,
                                                                  encode: () => encode152222222222222222
                                                                });
                                                                var encode152222222222222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                                                                  encodeApplicationObjectId2222222222222222(buffer, 8, deviceId);
                                                                  encodeApplicationUnsigned2222222222222222(buffer, maxApdu);
                                                                  encodeApplicationEnumerated2222222222222222(buffer, segmentation);
                                                                  encodeApplicationUnsigned2222222222222222(buffer, vendorId);
                                                                };
                                                                var decode152222222222222222 = (buffer, offset) => {
                                                                  let result;
                                                                  let apduLen = 0;
                                                                  const orgOffset = offset;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + apduLen);
                                                                  apduLen += result.len;
                                                                  if (result.tagNumber !== 12) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeObjectId2222222222222222(buffer, offset + apduLen);
                                                                  apduLen += result.len;
                                                                  if (result.objectType !== 8) {
                                                                    return void 0;
                                                                  }
                                                                  const deviceId = result.instance;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + apduLen);
                                                                  apduLen += result.len;
                                                                  if (result.tagNumber !== 2) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeUnsigned2222222222222222(buffer, offset + apduLen, result.value);
                                                                  apduLen += result.len;
                                                                  const maxApdu = result.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + apduLen);
                                                                  apduLen += result.len;
                                                                  if (result.tagNumber !== 9) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeEnumerated2222222222222222(buffer, offset + apduLen, result.value);
                                                                  apduLen += result.len;
                                                                  if (result.value > 3) {
                                                                    return void 0;
                                                                  }
                                                                  const segmentation = result.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + apduLen);
                                                                  apduLen += result.len;
                                                                  if (result.tagNumber !== 2) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeUnsigned2222222222222222(buffer, offset + apduLen, result.value);
                                                                  apduLen += result.len;
                                                                  if (result.value > 65535) {
                                                                    return void 0;
                                                                  }
                                                                  const vendorId = result.value;
                                                                  return {
                                                                    len: offset - orgOffset,
                                                                    deviceId,
                                                                    maxApdu,
                                                                    segmentation,
                                                                    vendorId
                                                                  };
                                                                };
                                                                var i_have_exports2222222222222222 = {};
                                                                __export2222222222222222(i_have_exports2222222222222222, {
                                                                  decode: () => decode162222222222222222,
                                                                  encode: () => encode162222222222222222
                                                                });
                                                                var encode162222222222222222 = (buffer, deviceId, objectId, objectName) => {
                                                                  encodeApplicationObjectId2222222222222222(buffer, deviceId.type, deviceId.instance);
                                                                  encodeApplicationObjectId2222222222222222(buffer, objectId.type, objectId.instance);
                                                                  encodeApplicationCharacterString2222222222222222(buffer, objectName);
                                                                };
                                                                var decode162222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let value = {};
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  value.deviceId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  value.objectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeCharacterString2222222222222222(
                                                                    buffer,
                                                                    offset + len,
                                                                    apduLen - (offset + len),
                                                                    result.value
                                                                  );
                                                                  len += decodedValue.len;
                                                                  value.objectName = decodedValue.value;
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var life_safety_operation_exports2222222222222222 = {};
                                                                __export2222222222222222(life_safety_operation_exports2222222222222222, {
                                                                  decode: () => decode172222222222222222,
                                                                  encode: () => encode172222222222222222
                                                                });
                                                                var encode172222222222222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                                                                  encodeContextUnsigned2222222222222222(buffer, 0, processId);
                                                                  encodeContextCharacterString2222222222222222(buffer, 1, requestingSource);
                                                                  encodeContextEnumerated2222222222222222(buffer, 2, operation);
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    3,
                                                                    targetObjectId.type,
                                                                    targetObjectId.instance
                                                                  );
                                                                };
                                                                var decode172222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let value = {};
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.processId = decodedValue.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeCharacterString2222222222222222(
                                                                    buffer,
                                                                    offset + len,
                                                                    apduLen - (offset + len),
                                                                    result.value
                                                                  );
                                                                  len += decodedValue.len;
                                                                  value.requestingSource = decodedValue.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.operation = decodedValue.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  value.targetObjectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var private_transfer_exports2222222222222222 = {};
                                                                __export2222222222222222(private_transfer_exports2222222222222222, {
                                                                  decode: () => decode182222222222222222,
                                                                  encode: () => encode182222222222222222
                                                                });
                                                                var encode182222222222222222 = (buffer, vendorId, serviceNumber, data) => {
                                                                  encodeContextUnsigned2222222222222222(buffer, 0, vendorId);
                                                                  encodeContextUnsigned2222222222222222(buffer, 1, serviceNumber);
                                                                  encodeOpeningTag2222222222222222(buffer, 2);
                                                                  for (let i = 0; i < data.length; i++) {
                                                                    buffer.buffer[buffer.offset++] = data[i];
                                                                  }
                                                                  encodeClosingTag2222222222222222(buffer, 2);
                                                                };
                                                                var decode182222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let value = {};
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.vendorId = decodedValue.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.serviceNumber = decodedValue.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  const size = apduLen - (offset + len + 1);
                                                                  const data = [];
                                                                  for (let i = 0; i < size; i++) {
                                                                    data.push(buffer[offset + len++]);
                                                                  }
                                                                  value.data = data;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var read_property_exports2222222222222222 = {};
                                                                __export2222222222222222(read_property_exports2222222222222222, {
                                                                  decode: () => decode192222222222222222,
                                                                  decodeAcknowledge: () => decodeAcknowledge52222222222222222,
                                                                  encode: () => encode192222222222222222,
                                                                  encodeAcknowledge: () => encodeAcknowledge62222222222222222
                                                                });
                                                                var encode192222222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                                                                  if (objectType <= ASN1_MAX_OBJECT2222222222222222) {
                                                                    encodeContextObjectId2222222222222222(buffer, 0, objectType, objectInstance);
                                                                  }
                                                                  if (propertyId <= ASN1_MAX_PROPERTY_ID2222222222222222) {
                                                                    encodeContextEnumerated2222222222222222(buffer, 1, propertyId);
                                                                  }
                                                                  if (arrayIndex !== ASN1_ARRAY_ALL2222222222222222) {
                                                                    encodeContextUnsigned2222222222222222(
                                                                      buffer,
                                                                      2,
                                                                      arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL2222222222222222
                                                                    );
                                                                  }
                                                                };
                                                                var decode192222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  if (apduLen < 7) {
                                                                    return void 0;
                                                                  }
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  let objectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  let property = {};
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 1) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  property.id = decodedValue.value;
                                                                  property.index = ASN1_ARRAY_ALL2222222222222222;
                                                                  if (len < apduLen) {
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber === 2 && len < apduLen) {
                                                                      decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      property.index = decodedValue.value;
                                                                    } else {
                                                                      return void 0;
                                                                    }
                                                                  }
                                                                  if (len < apduLen) {
                                                                    return void 0;
                                                                  }
                                                                  return {
                                                                    len,
                                                                    objectId,
                                                                    property
                                                                  };
                                                                };
                                                                var encodeAcknowledge62222222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                                  encodeContextObjectId2222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                  encodeContextEnumerated2222222222222222(buffer, 1, propertyId);
                                                                  if (arrayIndex !== ASN1_ARRAY_ALL2222222222222222) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 2, arrayIndex);
                                                                  }
                                                                  encodeOpeningTag2222222222222222(buffer, 3);
                                                                  values.forEach((value) => {
                                                                    bacappEncodeApplicationData2222222222222222(buffer, value);
                                                                  });
                                                                  encodeClosingTag2222222222222222(buffer, 3);
                                                                };
                                                                var decodeAcknowledge52222222222222222 = (buffer, offset, apduLen) => {
                                                                  let result;
                                                                  let decodedValue;
                                                                  let objectId = {};
                                                                  let property = {};
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  let len = 1;
                                                                  result = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  objectId.type = result.objectType;
                                                                  objectId.instance = result.instance;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 1) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += result.len;
                                                                  property.id = result.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  if (result.tagNumber === 2) {
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    property.index = decodedValue.value;
                                                                  } else {
                                                                    property.index = ASN1_ARRAY_ALL2222222222222222;
                                                                  }
                                                                  const values = [];
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 3)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  while (apduLen - len > 1) {
                                                                    result = bacappDecodeApplicationData2222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      apduLen + offset,
                                                                      objectId.type,
                                                                      property.id
                                                                    );
                                                                    if (!result) {
                                                                      return void 0;
                                                                    }
                                                                    len += result.len;
                                                                    delete result.len;
                                                                    values.push(result);
                                                                  }
                                                                  if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 3)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  return {
                                                                    len,
                                                                    objectId,
                                                                    property,
                                                                    values
                                                                  };
                                                                };
                                                                var read_property_multiple_exports2222222222222222 = {};
                                                                __export2222222222222222(read_property_multiple_exports2222222222222222, {
                                                                  decode: () => decode202222222222222222,
                                                                  decodeAcknowledge: () => decodeAcknowledge62222222222222222,
                                                                  encode: () => encode202222222222222222,
                                                                  encodeAcknowledge: () => encodeAcknowledge72222222222222222
                                                                });
                                                                var encode202222222222222222 = (buffer, properties) => {
                                                                  properties.forEach((value) => {
                                                                    encodeReadAccessSpecification2222222222222222(buffer, value);
                                                                  });
                                                                };
                                                                var decode202222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  const values = [];
                                                                  while (apduLen - len > 0) {
                                                                    const decodedValue = decodeReadAccessSpecification2222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      apduLen - len
                                                                    );
                                                                    if (!decodedValue) {
                                                                      return void 0;
                                                                    }
                                                                    len += decodedValue.len;
                                                                    values.push(decodedValue.value);
                                                                  }
                                                                  return {
                                                                    len,
                                                                    properties: values
                                                                  };
                                                                };
                                                                var encodeAcknowledge72222222222222222 = (buffer, values) => {
                                                                  values.forEach((value) => {
                                                                    encodeReadAccessResult2222222222222222(buffer, value);
                                                                  });
                                                                };
                                                                var decodeAcknowledge62222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  const values = [];
                                                                  while (apduLen - len > 0) {
                                                                    const result = decodeReadAccessResult2222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      apduLen - len
                                                                    );
                                                                    if (!result || result === -1) {
                                                                      return void 0;
                                                                    }
                                                                    len += result.len;
                                                                    values.push(result.value);
                                                                  }
                                                                  return {
                                                                    len,
                                                                    values
                                                                  };
                                                                };
                                                                var read_range_exports2222222222222222 = {};
                                                                __export2222222222222222(read_range_exports2222222222222222, {
                                                                  decode: () => decode212222222222222222,
                                                                  decodeAcknowledge: () => decodeAcknowledge72222222222222222,
                                                                  encode: () => encode212222222222222222,
                                                                  encodeAcknowledge: () => encodeAcknowledge82222222222222222
                                                                });
                                                                var encode212222222222222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                                                                  encodeContextObjectId2222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                  encodeContextEnumerated2222222222222222(buffer, 1, propertyId);
                                                                  if (arrayIndex !== ASN1_ARRAY_ALL2222222222222222) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 2, arrayIndex);
                                                                  }
                                                                  switch (requestType) {
                                                                    case 0:
                                                                      encodeOpeningTag2222222222222222(buffer, 3);
                                                                      encodeApplicationUnsigned2222222222222222(buffer, position);
                                                                      encodeApplicationSigned2222222222222222(buffer, count);
                                                                      encodeClosingTag2222222222222222(buffer, 3);
                                                                      break;
                                                                    case 1:
                                                                      encodeOpeningTag2222222222222222(buffer, 6);
                                                                      encodeApplicationUnsigned2222222222222222(buffer, position);
                                                                      encodeApplicationSigned2222222222222222(buffer, count);
                                                                      encodeClosingTag2222222222222222(buffer, 6);
                                                                      break;
                                                                    case 2:
                                                                      encodeOpeningTag2222222222222222(buffer, 7);
                                                                      encodeApplicationDate2222222222222222(buffer, time);
                                                                      encodeApplicationTime2222222222222222(buffer, time);
                                                                      encodeApplicationSigned2222222222222222(buffer, count);
                                                                      encodeClosingTag2222222222222222(buffer, 7);
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                };
                                                                var decode212222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let requestType;
                                                                  let position;
                                                                  let time;
                                                                  let count;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len, 0);
                                                                  len += decodedValue.len;
                                                                  let objectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  let property = {};
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 1) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  property.id = decodedValue.value;
                                                                  if (len < apduLen && decodeIsContextTag2222222222222222(buffer, offset + len, 2)) {
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    property.index = decodedValue.value;
                                                                  } else {
                                                                    property.index = ASN1_ARRAY_ALL2222222222222222;
                                                                  }
                                                                  if (len < apduLen) {
                                                                    result = decodeTagNumber2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    switch (result.tagNumber) {
                                                                      case 3:
                                                                        requestType = 0;
                                                                        result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned2222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          result.value
                                                                        );
                                                                        len += decodedValue.len;
                                                                        position = decodedValue.value;
                                                                        result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeSigned2222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        count = decodedValue.value;
                                                                        break;
                                                                      case 6:
                                                                        requestType = 1;
                                                                        result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeUnsigned2222222222222222(
                                                                          buffer,
                                                                          offset + len,
                                                                          result.value
                                                                        );
                                                                        len += decodedValue.len;
                                                                        position = decodedValue.value;
                                                                        result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeSigned2222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        count = decodedValue.value;
                                                                        break;
                                                                      case 7:
                                                                        requestType = 2;
                                                                        decodedValue = decodeApplicationDate2222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        const tmpDate = decodedValue.value.value;
                                                                        decodedValue = decodeApplicationTime2222222222222222(buffer, offset + len);
                                                                        len += decodedValue.len;
                                                                        const tmpTime = decodedValue.value.value;
                                                                        time = new Date(
                                                                          tmpDate.getYear(),
                                                                          tmpDate.getMonth(),
                                                                          tmpDate.getDate(),
                                                                          tmpTime.getHours(),
                                                                          tmpTime.getMinutes(),
                                                                          tmpTime.getSeconds(),
                                                                          tmpTime.getMilliseconds()
                                                                        );
                                                                        result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                        len += result.len;
                                                                        decodedValue = decodeSigned2222222222222222(buffer, offset + len, result.value);
                                                                        len += decodedValue.len;
                                                                        count = decodedValue.value;
                                                                        break;
                                                                      default:
                                                                        return void 0;
                                                                    }
                                                                    result = decodeTagNumber2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                  }
                                                                  return {
                                                                    len,
                                                                    objectId,
                                                                    property,
                                                                    requestType,
                                                                    position,
                                                                    time,
                                                                    count
                                                                  };
                                                                };
                                                                var encodeAcknowledge82222222222222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                                                                  encodeContextObjectId2222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                  encodeContextEnumerated2222222222222222(buffer, 1, propertyId);
                                                                  if (arrayIndex !== ASN1_ARRAY_ALL2222222222222222) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 2, arrayIndex);
                                                                  }
                                                                  encodeContextBitstring2222222222222222(buffer, 3, resultFlags);
                                                                  encodeContextUnsigned2222222222222222(buffer, 4, itemCount);
                                                                  encodeOpeningTag2222222222222222(buffer, 5);
                                                                  if (itemCount !== 0) {
                                                                    applicationData.copy(
                                                                      buffer.buffer,
                                                                      buffer.offset,
                                                                      0,
                                                                      applicationData.length
                                                                    );
                                                                    buffer.offset += applicationData.length;
                                                                  }
                                                                  encodeClosingTag2222222222222222(buffer, 5);
                                                                  if (itemCount !== 0 && requestType && requestType !== 0) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 6, firstSequence);
                                                                  }
                                                                };
                                                                var decodeAcknowledge72222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  const objectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  const property = { index: ASN1_ARRAY_ALL2222222222222222 };
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 1) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  property.id = decodedValue.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  if (result.tagNumber === 2 && len < apduLen) {
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    property.index = decodedValue.value;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeBitstring2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  const resultFlag = decodedValue.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  const itemCount = decodedValue.value;
                                                                  if (!decodeIsOpeningTag2222222222222222(buffer, offset + len)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                                                                  return {
                                                                    objectId,
                                                                    property,
                                                                    resultFlag,
                                                                    itemCount,
                                                                    rangeBuffer,
                                                                    len
                                                                  };
                                                                };
                                                                var register_foreign_device_exports2222222222222222 = {};
                                                                __export2222222222222222(register_foreign_device_exports2222222222222222, {
                                                                  decode: () => decode222222222222222222,
                                                                  encode: () => encode222222222222222222
                                                                });
                                                                var encode222222222222222222 = (buffer, ttl, length = 2) => {
                                                                  encodeUnsigned2222222222222222(buffer, ttl, length);
                                                                };
                                                                var decode222222222222222222 = (buffer, offset, length = 2) => {
                                                                  let len = 0;
                                                                  let result = decodeUnsigned2222222222222222(buffer, offset + len, length);
                                                                  len += result.len;
                                                                  return {
                                                                    len,
                                                                    ttl: result.value
                                                                  };
                                                                };
                                                                var reinitialize_device_exports2222222222222222 = {};
                                                                __export2222222222222222(reinitialize_device_exports2222222222222222, {
                                                                  decode: () => decode232222222222222222,
                                                                  encode: () => encode232222222222222222
                                                                });
                                                                var encode232222222222222222 = (buffer, state, password) => {
                                                                  encodeContextEnumerated2222222222222222(buffer, 0, state);
                                                                  if (password && password !== "") {
                                                                    encodeContextCharacterString2222222222222222(buffer, 1, password);
                                                                  }
                                                                };
                                                                var decode232222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let value = {};
                                                                  let result;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  let decodedValue = decodeEnumerated2222222222222222(
                                                                    buffer,
                                                                    offset + len,
                                                                    result.value
                                                                  );
                                                                  value.state = decodedValue.value;
                                                                  len += decodedValue.len;
                                                                  if (len < apduLen) {
                                                                    if (!decodeIsContextTag2222222222222222(buffer, offset + len, 1)) {
                                                                      return void 0;
                                                                    }
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeCharacterString2222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      apduLen - (offset + len),
                                                                      result.value
                                                                    );
                                                                    value.password = decodedValue.value;
                                                                    len += decodedValue.len;
                                                                  }
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var subscribe_cov_exports2222222222222222 = {};
                                                                __export2222222222222222(subscribe_cov_exports2222222222222222, {
                                                                  decode: () => decode242222222222222222,
                                                                  encode: () => encode242222222222222222
                                                                });
                                                                var encode242222222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                                                                  encodeContextUnsigned2222222222222222(buffer, 0, subscriberProcessId);
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    1,
                                                                    monitoredObjectId.type,
                                                                    monitoredObjectId.instance
                                                                  );
                                                                  if (!cancellationRequest) {
                                                                    encodeContextBoolean2222222222222222(buffer, 2, issueConfirmedNotifications);
                                                                    encodeContextUnsigned2222222222222222(buffer, 3, lifetime);
                                                                  }
                                                                };
                                                                var decode242222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let value = {};
                                                                  let result;
                                                                  let decodedValue;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.subscriberProcessId = decodedValue.value;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  value.monitoredObjectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  value.cancellationRequest = true;
                                                                  if (len < apduLen) {
                                                                    value.issueConfirmedNotifications = false;
                                                                    if (decodeIsContextTag2222222222222222(buffer, offset + len, 2)) {
                                                                      value.cancellationRequest = false;
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                                      len++;
                                                                    }
                                                                    value.lifetime = 0;
                                                                    if (decodeIsContextTag2222222222222222(buffer, offset + len, 3)) {
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      value.lifetime = decodedValue.value;
                                                                    }
                                                                  }
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var subscribe_property_exports2222222222222222 = {};
                                                                __export2222222222222222(subscribe_property_exports2222222222222222, {
                                                                  decode: () => decode252222222222222222,
                                                                  encode: () => encode252222222222222222
                                                                });
                                                                var encode252222222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                                                                  encodeContextUnsigned2222222222222222(buffer, 0, subscriberProcessId);
                                                                  encodeContextObjectId2222222222222222(
                                                                    buffer,
                                                                    1,
                                                                    monitoredObjectId.type,
                                                                    monitoredObjectId.instance
                                                                  );
                                                                  if (!cancellationRequest) {
                                                                    encodeContextBoolean2222222222222222(buffer, 2, issueConfirmedNotifications);
                                                                    encodeContextUnsigned2222222222222222(buffer, 3, lifetime);
                                                                  }
                                                                  encodeOpeningTag2222222222222222(buffer, 4);
                                                                  encodeContextEnumerated2222222222222222(buffer, 0, monitoredProperty.id);
                                                                  if (monitoredProperty.index !== ASN1_ARRAY_ALL2222222222222222) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 1, monitoredProperty.index);
                                                                  }
                                                                  encodeClosingTag2222222222222222(buffer, 4);
                                                                  if (covIncrementPresent) {
                                                                    encodeContextReal2222222222222222(buffer, 5, covIncrement);
                                                                  }
                                                                };
                                                                var decode252222222222222222 = (buffer, offset) => {
                                                                  let len = 0;
                                                                  let value = {};
                                                                  let result;
                                                                  let decodedValue;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.subscriberProcessId = decodedValue.value;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  value.monitoredObjectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  value.cancellationRequest = true;
                                                                  value.issueConfirmedNotifications = false;
                                                                  if (decodeIsContextTag2222222222222222(buffer, offset + len, 2)) {
                                                                    value.cancellationRequest = false;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                                    len++;
                                                                  }
                                                                  value.lifetime = 0;
                                                                  if (decodeIsContextTag2222222222222222(buffer, offset + len, 3)) {
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.lifetime = decodedValue.value;
                                                                  }
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 4)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  value.monitoredProperty = {};
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.monitoredProperty.id = decodedValue.value;
                                                                  value.monitoredProperty.index = ASN1_ARRAY_ALL2222222222222222;
                                                                  if (decodeIsContextTag2222222222222222(buffer, offset + len, 1)) {
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.monitoredProperty.index = decodedValue.value;
                                                                  }
                                                                  if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 4)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  value.covIncrement = 0;
                                                                  if (decodeIsContextTag2222222222222222(buffer, offset + len, 5)) {
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeReal2222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    value.covIncrement = decodedValue.value;
                                                                  }
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var time_sync_exports2222222222222222 = {};
                                                                __export2222222222222222(time_sync_exports2222222222222222, {
                                                                  decode: () => decode262222222222222222,
                                                                  encode: () => encode262222222222222222
                                                                });
                                                                var encode262222222222222222 = (buffer, time) => {
                                                                  encodeApplicationDate2222222222222222(buffer, time);
                                                                  encodeApplicationTime2222222222222222(buffer, time);
                                                                };
                                                                var decode262222222222222222 = (buffer, offset, length) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 10) {
                                                                    return void 0;
                                                                  }
                                                                  const date = decodeDate2222222222222222(buffer, offset + len);
                                                                  len += date.len;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 11) {
                                                                    return void 0;
                                                                  }
                                                                  const time = decodeBacnetTime2222222222222222(buffer, offset + len);
                                                                  len += time.len;
                                                                  return {
                                                                    len,
                                                                    value: new Date(
                                                                      date.value.getFullYear(),
                                                                      date.value.getMonth(),
                                                                      date.value.getDate(),
                                                                      time.value.getHours(),
                                                                      time.value.getMinutes(),
                                                                      time.value.getSeconds(),
                                                                      time.value.getMilliseconds()
                                                                    )
                                                                  };
                                                                };
                                                                var who_has_exports2222222222222222 = {};
                                                                __export2222222222222222(who_has_exports2222222222222222, {
                                                                  decode: () => decode272222222222222222,
                                                                  encode: () => encode272222222222222222
                                                                });
                                                                var encode272222222222222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                                                                  if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE2222222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE2222222222222222) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 0, lowLimit);
                                                                    encodeContextUnsigned2222222222222222(buffer, 1, highLimit);
                                                                  }
                                                                  if (objectName && objectName !== "") {
                                                                    encodeContextCharacterString2222222222222222(buffer, 3, objectName);
                                                                  } else {
                                                                    encodeContextObjectId2222222222222222(buffer, 2, objectId.type, objectId.instance);
                                                                  }
                                                                };
                                                                var decode272222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let value = {};
                                                                  let decodedValue;
                                                                  let result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber === 0) {
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    if (decodedValue.value <= ASN1_MAX_INSTANCE2222222222222222) {
                                                                      value.lowLimit = decodedValue.value;
                                                                    }
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                  }
                                                                  if (result.tagNumber === 1) {
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    if (decodedValue.value <= ASN1_MAX_INSTANCE2222222222222222) {
                                                                      value.highLimit = decodedValue.value;
                                                                    }
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                  }
                                                                  if (result.tagNumber === 2) {
                                                                    decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    value.objectId = {
                                                                      type: decodedValue.objectType,
                                                                      instance: decodedValue.instance
                                                                    };
                                                                  }
                                                                  if (result.tagNumber === 3) {
                                                                    decodedValue = decodeCharacterString2222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      apduLen - (offset + len),
                                                                      result.value
                                                                    );
                                                                    len += decodedValue.len;
                                                                    value.objectName = decodedValue.value;
                                                                  }
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var who_is_exports2222222222222222 = {};
                                                                __export2222222222222222(who_is_exports2222222222222222, {
                                                                  decode: () => decode282222222222222222,
                                                                  encode: () => encode282222222222222222
                                                                });
                                                                var encode282222222222222222 = (buffer, lowLimit, highLimit) => {
                                                                  if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE2222222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE2222222222222222) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 0, lowLimit);
                                                                    encodeContextUnsigned2222222222222222(buffer, 1, highLimit);
                                                                  }
                                                                };
                                                                var decode282222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let value = {};
                                                                  if (apduLen <= 0) {
                                                                    return {};
                                                                  }
                                                                  let result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 0) {
                                                                    return void 0;
                                                                  }
                                                                  if (apduLen <= len) {
                                                                    return void 0;
                                                                  }
                                                                  let decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  if (decodedValue.value <= ASN1_MAX_INSTANCE2222222222222222) {
                                                                    value.lowLimit = decodedValue.value;
                                                                  }
                                                                  if (apduLen <= len) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 1) {
                                                                    return void 0;
                                                                  }
                                                                  if (apduLen <= len) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  if (decodedValue.value <= ASN1_MAX_INSTANCE2222222222222222) {
                                                                    value.highLimit = decodedValue.value;
                                                                  }
                                                                  value.len = len;
                                                                  return value;
                                                                };
                                                                var write_property_exports2222222222222222 = {};
                                                                __export2222222222222222(write_property_exports2222222222222222, {
                                                                  decode: () => decode292222222222222222,
                                                                  encode: () => encode292222222222222222
                                                                });
                                                                var encode292222222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                                                                  encodeContextObjectId2222222222222222(buffer, 0, objectType, objectInstance);
                                                                  encodeContextEnumerated2222222222222222(buffer, 1, propertyId);
                                                                  if (arrayIndex !== ASN1_ARRAY_ALL2222222222222222) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 2, arrayIndex);
                                                                  }
                                                                  encodeOpeningTag2222222222222222(buffer, 3);
                                                                  values.forEach((value) => {
                                                                    bacappEncodeApplicationData2222222222222222(buffer, value);
                                                                  });
                                                                  encodeClosingTag2222222222222222(buffer, 3);
                                                                  if (priority !== ASN1_NO_PRIORITY2222222222222222) {
                                                                    encodeContextUnsigned2222222222222222(buffer, 4, priority);
                                                                  }
                                                                };
                                                                var decode292222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let value = {
                                                                    property: {}
                                                                  };
                                                                  let decodedValue;
                                                                  let result;
                                                                  if (!decodeIsContextTag2222222222222222(buffer, offset + len, 0)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  let objectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  len += decodedValue.len;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 1) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.property.id = decodedValue.value;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  if (result.tagNumber === 2) {
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    value.property.index = decodedValue.value;
                                                                  } else {
                                                                    value.property.index = ASN1_ARRAY_ALL2222222222222222;
                                                                  }
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 3)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  const values = [];
                                                                  while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 3)) {
                                                                    decodedValue = bacappDecodeApplicationData2222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      apduLen + offset,
                                                                      objectId.type,
                                                                      value.property.id
                                                                    );
                                                                    if (!decodedValue) {
                                                                      return void 0;
                                                                    }
                                                                    len += decodedValue.len;
                                                                    delete decodedValue.len;
                                                                    values.push(decodedValue);
                                                                  }
                                                                  value.value = values;
                                                                  if (!decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 3)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  value.priority = ASN1_MAX_PRIORITY2222222222222222;
                                                                  if (len < apduLen) {
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    if (result.tagNumber === 4) {
                                                                      len += result.len;
                                                                      decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue;
                                                                      if (decodedValue.value >= ASN1_MIN_PRIORITY2222222222222222 && decodedValue.value <= ASN1_MAX_PRIORITY2222222222222222) {
                                                                        value.priority = decodedValue.value;
                                                                      } else {
                                                                        return void 0;
                                                                      }
                                                                    }
                                                                  }
                                                                  return {
                                                                    len,
                                                                    objectId,
                                                                    value
                                                                  };
                                                                };
                                                                var write_property_multiple_exports2222222222222222 = {};
                                                                __export2222222222222222(write_property_multiple_exports2222222222222222, {
                                                                  decode: () => decode302222222222222222,
                                                                  encode: () => encode302222222222222222,
                                                                  encodeObject: () => encodeObject2222222222222222
                                                                });
                                                                var encode302222222222222222 = (buffer, objectId, values) => {
                                                                  encodeContextObjectId2222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                  encodeOpeningTag2222222222222222(buffer, 1);
                                                                  values.forEach((pValue) => {
                                                                    encodeContextEnumerated2222222222222222(buffer, 0, pValue.property.id);
                                                                    if (pValue.property.index !== ASN1_ARRAY_ALL2222222222222222) {
                                                                      encodeContextUnsigned2222222222222222(buffer, 1, pValue.property.index);
                                                                    }
                                                                    encodeOpeningTag2222222222222222(buffer, 2);
                                                                    pValue.value.forEach((value) => {
                                                                      bacappEncodeApplicationData2222222222222222(buffer, value);
                                                                    });
                                                                    encodeClosingTag2222222222222222(buffer, 2);
                                                                    if (pValue.priority !== ASN1_NO_PRIORITY2222222222222222) {
                                                                      encodeContextUnsigned2222222222222222(buffer, 3, pValue.priority);
                                                                    }
                                                                  });
                                                                  encodeClosingTag2222222222222222(buffer, 1);
                                                                };
                                                                var decode302222222222222222 = (buffer, offset, apduLen) => {
                                                                  let len = 0;
                                                                  let result;
                                                                  let decodedValue;
                                                                  let objectId;
                                                                  result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 0 || apduLen <= len) {
                                                                    return void 0;
                                                                  }
                                                                  apduLen -= len;
                                                                  if (apduLen < 4) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeObjectId2222222222222222(buffer, offset + len);
                                                                  len += decodedValue.len;
                                                                  objectId = {
                                                                    type: decodedValue.objectType,
                                                                    instance: decodedValue.instance
                                                                  };
                                                                  if (!decodeIsOpeningTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  const _values = [];
                                                                  while (apduLen - len > 1) {
                                                                    let newEntry = {};
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber !== 0) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeEnumerated2222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    let propertyId = decodedValue.value;
                                                                    let arrayIndex = ASN1_ARRAY_ALL2222222222222222;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber === 1) {
                                                                      decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      arrayIndex = decodedValue.value;
                                                                      result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                      len += result.len;
                                                                    }
                                                                    newEntry.property = { id: propertyId, index: arrayIndex };
                                                                    if (result.tagNumber !== 2 || !decodeIsOpeningTag2222222222222222(buffer, offset + len - 1)) {
                                                                      return void 0;
                                                                    }
                                                                    const values = [];
                                                                    while (len + offset <= buffer.length && !decodeIsClosingTag2222222222222222(buffer, offset + len)) {
                                                                      let value = bacappDecodeApplicationData2222222222222222(
                                                                        buffer,
                                                                        offset + len,
                                                                        apduLen + offset,
                                                                        objectId.type,
                                                                        propertyId
                                                                      );
                                                                      if (!value) {
                                                                        return void 0;
                                                                      }
                                                                      len += value.len;
                                                                      delete value.len;
                                                                      values.push(value);
                                                                    }
                                                                    len++;
                                                                    newEntry.value = values;
                                                                    let priority = ASN1_NO_PRIORITY2222222222222222;
                                                                    result = decodeTagNumberAndValue2222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    if (result.tagNumber === 3) {
                                                                      decodedValue = decodeUnsigned2222222222222222(buffer, offset + len, result.value);
                                                                      len += decodedValue.len;
                                                                      priority = decodedValue.value;
                                                                    } else {
                                                                      len--;
                                                                    }
                                                                    newEntry.priority = priority;
                                                                    _values.push(newEntry);
                                                                    if (decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                      len++;
                                                                    }
                                                                  }
                                                                  if (decodeIsClosingTagNumber2222222222222222(buffer, offset + len, 1)) {
                                                                    len++;
                                                                  }
                                                                  return {
                                                                    len,
                                                                    objectId,
                                                                    values: _values
                                                                  };
                                                                };
                                                                var encodeObject2222222222222222 = (buffer, values) => {
                                                                  values.forEach((object) => {
                                                                    encode302222222222222222(buffer, object.objectId, object.values);
                                                                  });
                                                                };
                                                                var getDecodedType2222222222222222 = (buffer, offset) => {
                                                                  return buffer[offset];
                                                                };
                                                                var encodeConfirmedServiceRequest2222222222222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                                                                  buffer.buffer[buffer.offset++] = type;
                                                                  buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                                                                  buffer.buffer[buffer.offset++] = invokeId;
                                                                  if ((type & 8) > 0) {
                                                                    buffer.buffer[buffer.offset++] = sequencenumber;
                                                                    buffer.buffer[buffer.offset++] = proposedWindowSize;
                                                                  }
                                                                  buffer.buffer[buffer.offset++] = service;
                                                                };
                                                                var decodeConfirmedServiceRequest2222222222222222 = (buffer, offset) => {
                                                                  const orgOffset = offset;
                                                                  const type = buffer[offset++];
                                                                  const maxSegments = buffer[offset] & 240;
                                                                  const maxApdu = buffer[offset++] & 15;
                                                                  const invokeId = buffer[offset++];
                                                                  let sequencenumber = 0;
                                                                  let proposedWindowNumber = 0;
                                                                  if ((type & 8) > 0) {
                                                                    sequencenumber = buffer[offset++];
                                                                    proposedWindowNumber = buffer[offset++];
                                                                  }
                                                                  const service = buffer[offset++];
                                                                  return {
                                                                    len: offset - orgOffset,
                                                                    type,
                                                                    service,
                                                                    maxSegments,
                                                                    maxApdu,
                                                                    invokeId,
                                                                    sequencenumber,
                                                                    proposedWindowNumber
                                                                  };
                                                                };
                                                                var encodeUnconfirmedServiceRequest2222222222222222 = (buffer, type, service) => {
                                                                  buffer.buffer[buffer.offset++] = type;
                                                                  buffer.buffer[buffer.offset++] = service;
                                                                };
                                                                var decodeUnconfirmedServiceRequest2222222222222222 = (buffer, offset) => {
                                                                  const orgOffset = offset;
                                                                  const type = buffer[offset++];
                                                                  const service = buffer[offset++];
                                                                  return {
                                                                    len: offset - orgOffset,
                                                                    type,
                                                                    service
                                                                  };
                                                                };
                                                                var encodeSimpleAck2222222222222222 = (buffer, type, service, invokeId) => {
                                                                  buffer.buffer[buffer.offset++] = type;
                                                                  buffer.buffer[buffer.offset++] = invokeId;
                                                                  buffer.buffer[buffer.offset++] = service;
                                                                };
                                                                var decodeSimpleAck2222222222222222 = (buffer, offset) => {
                                                                  const orgOffset = offset;
                                                                  const type = buffer[offset++];
                                                                  const invokeId = buffer[offset++];
                                                                  const service = buffer[offset++];
                                                                  return {
                                                                    len: offset - orgOffset,
                                                                    type,
                                                                    service,
                                                                    invokeId
                                                                  };
                                                                };
                                                                var encodeComplexAck2222222222222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                                                                  let len = 3;
                                                                  buffer.buffer[buffer.offset++] = type;
                                                                  buffer.buffer[buffer.offset++] = invokeId;
                                                                  if ((type & 8) > 0) {
                                                                    buffer.buffer[buffer.offset++] = sequencenumber;
                                                                    buffer.buffer[buffer.offset++] = proposedWindowNumber;
                                                                    len += 2;
                                                                  }
                                                                  buffer.buffer[buffer.offset++] = service;
                                                                  return len;
                                                                };
                                                                var decodeComplexAck2222222222222222 = (buffer, offset) => {
                                                                  const orgOffset = offset;
                                                                  const type = buffer[offset++];
                                                                  const invokeId = buffer[offset++];
                                                                  let sequencenumber = 0;
                                                                  let proposedWindowNumber = 0;
                                                                  if ((type & 8) > 0) {
                                                                    sequencenumber = buffer[offset++];
                                                                    proposedWindowNumber = buffer[offset++];
                                                                  }
                                                                  const service = buffer[offset++];
                                                                  return {
                                                                    len: offset - orgOffset,
                                                                    type,
                                                                    service,
                                                                    invokeId,
                                                                    sequencenumber,
                                                                    proposedWindowNumber
                                                                  };
                                                                };
                                                                var encodeSegmentAck2222222222222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                                                                  buffer.buffer[buffer.offset++] = type;
                                                                  buffer.buffer[buffer.offset++] = originalInvokeId;
                                                                  buffer.buffer[buffer.offset++] = sequencenumber;
                                                                  buffer.buffer[buffer.offset++] = actualWindowSize;
                                                                };
                                                                var decodeSegmentAck2222222222222222 = (buffer, offset) => {
                                                                  const orgOffset = offset;
                                                                  const type = buffer[offset++];
                                                                  const originalInvokeId = buffer[offset++];
                                                                  const sequencenumber = buffer[offset++];
                                                                  const actualWindowSize = buffer[offset++];
                                                                  return {
                                                                    len: offset - orgOffset,
                                                                    type,
                                                                    originalInvokeId,
                                                                    sequencenumber,
                                                                    actualWindowSize
                                                                  };
                                                                };
                                                                var encodeResult2222222222222222 = (buffer, resultCode) => {
                                                                  encodeUnsigned2222222222222222(buffer, resultCode, 2);
                                                                };
                                                                var encodeError2222222222222222 = (buffer, type, service, invokeId) => {
                                                                  buffer.buffer[buffer.offset++] = type;
                                                                  buffer.buffer[buffer.offset++] = invokeId;
                                                                  buffer.buffer[buffer.offset++] = service;
                                                                };
                                                                var decodeError2222222222222222 = (buffer, offset) => {
                                                                  const orgOffset = offset;
                                                                  const type = buffer[offset++];
                                                                  const invokeId = buffer[offset++];
                                                                  const service = buffer[offset++];
                                                                  return {
                                                                    len: offset - orgOffset,
                                                                    type,
                                                                    service,
                                                                    invokeId
                                                                  };
                                                                };
                                                                var decodeAbort2222222222222222 = (buffer, offset) => {
                                                                  const orgOffset = offset;
                                                                  const type = buffer[offset++];
                                                                  const invokeId = buffer[offset++];
                                                                  const reason = buffer[offset++];
                                                                  return {
                                                                    len: offset - orgOffset,
                                                                    type,
                                                                    invokeId,
                                                                    reason
                                                                  };
                                                                };
                                                                var DEFAULT_HOP_COUNT3222222222222222 = 255;
                                                                var BACNET_PROTOCOL_VERSION2222222222222222 = 1;
                                                                var BACNET_ADDRESS_TYPES2222222222222222 = {
                                                                  NONE: 0,
                                                                  IP: 1
                                                                };
                                                                var decodeTarget2222222222222222 = (buffer, offset) => {
                                                                  let len = 0;
                                                                  const target = {
                                                                    type: BACNET_ADDRESS_TYPES2222222222222222.NONE,
                                                                    net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                                                                  };
                                                                  const adrLen = buffer[offset + len++];
                                                                  if (adrLen > 0) {
                                                                    target.adr = [];
                                                                    for (let i = 0; i < adrLen; i++) {
                                                                      target.adr.push(buffer[offset + len++]);
                                                                    }
                                                                  }
                                                                  return {
                                                                    target,
                                                                    len
                                                                  };
                                                                };
                                                                var encodeTarget2222222222222222 = (buffer, target) => {
                                                                  buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                                                                  buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                                                                  if (target.net === 65535 || !target.adr) {
                                                                    buffer.buffer[buffer.offset++] = 0;
                                                                  } else {
                                                                    buffer.buffer[buffer.offset++] = target.adr.length;
                                                                    if (target.adr.length > 0) {
                                                                      for (let i = 0; i < target.adr.length; i++) {
                                                                        buffer.buffer[buffer.offset++] = target.adr[i];
                                                                      }
                                                                    }
                                                                  }
                                                                };
                                                                var decode312222222222222222 = (buffer, offset) => {
                                                                  let adrLen;
                                                                  const orgOffset = offset;
                                                                  offset++;
                                                                  const funct = buffer[offset++];
                                                                  let destination;
                                                                  if (funct & 32) {
                                                                    const tmpDestination = decodeTarget2222222222222222(buffer, offset);
                                                                    offset += tmpDestination.len;
                                                                    destination = tmpDestination.target;
                                                                  }
                                                                  let source;
                                                                  if (funct & 8) {
                                                                    const tmpSource = decodeTarget2222222222222222(buffer, offset);
                                                                    offset += tmpSource.len;
                                                                    source = tmpSource.target;
                                                                  }
                                                                  let hopCount = 0;
                                                                  if (funct & 32) {
                                                                    hopCount = buffer[offset++];
                                                                  }
                                                                  let networkMsgType = 0;
                                                                  let vendorId = 0;
                                                                  if (funct & 128) {
                                                                    networkMsgType = buffer[offset++];
                                                                    if (networkMsgType >= 128) {
                                                                      vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                                                                    } else if (networkMsgType === 0) {
                                                                      offset += 2;
                                                                    }
                                                                  }
                                                                  if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION2222222222222222) {
                                                                    return void 0;
                                                                  }
                                                                  return {
                                                                    len: offset - orgOffset,
                                                                    funct,
                                                                    destination,
                                                                    source,
                                                                    hopCount,
                                                                    networkMsgType,
                                                                    vendorId
                                                                  };
                                                                };
                                                                var encode312222222222222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                                                                  const hasDestination = destination && destination.net > 0;
                                                                  const hasSource = source && source.net > 0 && source.net !== 65535;
                                                                  buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION2222222222222222;
                                                                  buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                                                                  if (hasDestination) {
                                                                    encodeTarget2222222222222222(buffer, destination);
                                                                  }
                                                                  if (hasSource) {
                                                                    encodeTarget2222222222222222(buffer, source);
                                                                  }
                                                                  if (hasDestination) {
                                                                    buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT3222222222222222;
                                                                  }
                                                                  if ((funct & 128) > 0) {
                                                                    buffer.buffer[buffer.offset++] = networkMsgType;
                                                                    if (networkMsgType >= 128) {
                                                                      buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                                                                      buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                                                                    }
                                                                  }
                                                                };
                                                                var DEFAULT_BACNET_PORT22222222222222222 = 47808;
                                                                var encode322222222222222222 = (buffer, func, msgLength, originatingIP) => {
                                                                  buffer[0] = BVLL_TYPE_BACNET_IP2222222222222222;
                                                                  buffer[1] = func;
                                                                  buffer[2] = (msgLength & 65280) >> 8;
                                                                  buffer[3] = (msgLength & 255) >> 0;
                                                                  if (originatingIP) {
                                                                    if (func !== 4) {
                                                                      throw new Error(
                                                                        "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                                                                      );
                                                                    }
                                                                    const [ipstr, portstr] = originatingIP.split(":");
                                                                    const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT22222222222222222;
                                                                    const ip = ipstr.split(".");
                                                                    buffer[4] = parseInt(ip[0], 10);
                                                                    buffer[5] = parseInt(ip[1], 10);
                                                                    buffer[6] = parseInt(ip[2], 10);
                                                                    buffer[7] = parseInt(ip[3], 10);
                                                                    buffer[8] = (port & 65280) >> 8;
                                                                    buffer[9] = (port & 255) >> 0;
                                                                    return 6 + BVLC_HEADER_LENGTH3222222222222222;
                                                                  } else {
                                                                    if (func === 4) {
                                                                      throw new Error(
                                                                        "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                                                                      );
                                                                    }
                                                                  }
                                                                  return BVLC_HEADER_LENGTH3222222222222222;
                                                                };
                                                                var decode322222222222222222 = (buffer, _offset) => {
                                                                  let len;
                                                                  const func = buffer[1];
                                                                  const msgLength = buffer[2] << 8 | buffer[3] << 0;
                                                                  if (buffer[0] !== BVLL_TYPE_BACNET_IP2222222222222222 || buffer.length !== msgLength) {
                                                                    return void 0;
                                                                  }
                                                                  let originatingIP = null;
                                                                  switch (func) {
                                                                    case 0:
                                                                    case 10:
                                                                    case 11:
                                                                    case 9:
                                                                    case 5:
                                                                    case 6:
                                                                    case 8:
                                                                    case 2:
                                                                    case 1:
                                                                    case 3:
                                                                    case 7:
                                                                      len = 4;
                                                                      break;
                                                                    case 4:
                                                                      const port = buffer[8] << 8 | buffer[9];
                                                                      originatingIP = buffer.slice(4, 8).join(".");
                                                                      if (port !== DEFAULT_BACNET_PORT22222222222222222) {
                                                                        originatingIP += ":" + port;
                                                                      }
                                                                      len = 10;
                                                                      break;
                                                                    case 12:
                                                                      return void 0;
                                                                    default:
                                                                      return void 0;
                                                                  }
                                                                  return {
                                                                    len,
                                                                    func,
                                                                    msgLength,
                                                                    // Originating IP is set to the IP address of the node that originally
                                                                    // sent the packet, when it has been forwarded to us by a BBMD (since the
                                                                    // BBMD's IP address will be in the sender field.
                                                                    originatingIP
                                                                  };
                                                                };
                                                                var EventEmitter22222222222222222 = import_events22222222222222222.default.EventEmitter;
                                                                var debug32222222222222222 = (0, import_debug32222222222222222.default)("bacnet:client:debug");
                                                                var trace22222222222222222 = (0, import_debug32222222222222222.default)("bacnet:client:trace");
                                                                var ALL_INTERFACES2222222222222222 = "0.0.0.0";
                                                                var LOCALHOST_INTERFACES_IPV42222222222222222 = "127.0.0.1";
                                                                var BROADCAST_ADDRESS2222222222222222 = "255.255.255.255";
                                                                var DEFAULT_HOP_COUNT22222222222222222 = 255;
                                                                var BVLC_HEADER_LENGTH22222222222222222 = 4;
                                                                var BVLC_FWD_HEADER_LENGTH2222222222222222 = 10;
                                                                var beU2222222222222222 = UnconfirmedServiceChoice2222222222222222;
                                                                var unconfirmedServiceMap2222222222222222 = {
                                                                  [beU2222222222222222.I_AM]: "iAm",
                                                                  [beU2222222222222222.WHO_IS]: "whoIs",
                                                                  [beU2222222222222222.WHO_HAS]: "whoHas",
                                                                  [beU2222222222222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                                                                  [beU2222222222222222.TIME_SYNCHRONIZATION]: "timeSync",
                                                                  [beU2222222222222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                                                                  [beU2222222222222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                                  [beU2222222222222222.I_HAVE]: "iHave",
                                                                  [beU2222222222222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                                };
                                                                var beC2222222222222222 = ConfirmedServiceChoice2222222222222222;
                                                                var confirmedServiceMap2222222222222222 = {
                                                                  [beC2222222222222222.READ_PROPERTY]: "readProperty",
                                                                  [beC2222222222222222.WRITE_PROPERTY]: "writeProperty",
                                                                  [beC2222222222222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                                                                  [beC2222222222222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                                                                  [beC2222222222222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                                                                  [beC2222222222222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                                                                  [beC2222222222222222.ATOMIC_READ_FILE]: "atomicReadFile",
                                                                  [beC2222222222222222.SUBSCRIBE_COV]: "subscribeCov",
                                                                  [beC2222222222222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                                                                  [beC2222222222222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                                                                  [beC2222222222222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                                                                  [beC2222222222222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                                  [beC2222222222222222.READ_RANGE]: "readRange",
                                                                  [beC2222222222222222.CREATE_OBJECT]: "createObject",
                                                                  [beC2222222222222222.DELETE_OBJECT]: "deleteObject",
                                                                  [beC2222222222222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                                                                  [beC2222222222222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                                                                  [beC2222222222222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                                                                  [beC2222222222222222.GET_EVENT_INFORMATION]: "getEventInformation",
                                                                  [beC2222222222222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                                                                  [beC2222222222222222.ADD_LIST_ELEMENT]: "addListElement",
                                                                  [beC2222222222222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                                                                  [beC2222222222222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                                };
                                                                var errorReasonEnums2222222222222222 = {
                                                                  BacnetAbort: RejectReason2222222222222222
                                                                };
                                                                var BacnetError2222222222222222 = class extends Error {
                                                                  constructor(message, bacnetErrorClass, bacnetErrorCode) {
                                                                    super(message);
                                                                    this.bacnetErrorClass = bacnetErrorClass;
                                                                    this.bacnetErrorCode = bacnetErrorCode;
                                                                  }
                                                                };
                                                                function bacnetErrorToString2222222222222222(err) {
                                                                  var _a;
                                                                  const isError = err instanceof Error || err instanceof BacnetError2222222222222222;
                                                                  if (!isError)
                                                                    return;
                                                                  const message = err.message;
                                                                  const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                                                                  const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                                                                  if (!errorReasonEnums2222222222222222[reasonClass])
                                                                    return;
                                                                  const reasonString = errorReasonEnums2222222222222222[reasonClass][reason];
                                                                  return reasonClass + ": " + reasonString;
                                                                }
                                                                var Client2222222222222222 = class extends EventEmitter22222222222222222 {
                                                                  /**
                                                                   *
                                                                   * @param options
                                                                   */
                                                                  constructor(options) {
                                                                    super();
                                                                    options = options || {};
                                                                    this._invokeCounter = 1;
                                                                    this._invokeStore = {};
                                                                    this._lastSequenceNumber = 0;
                                                                    this._segmentStore = [];
                                                                    this._settings = {
                                                                      port: options.port || 47808,
                                                                      interface: options.interface || ALL_INTERFACES2222222222222222,
                                                                      transport: options.transport,
                                                                      broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS2222222222222222,
                                                                      apduTimeout: options.apduTimeout || 3e3
                                                                    };
                                                                    options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                                                                    this._transport = this._settings.transport || new Transport2222222222222222({
                                                                      port: this._settings.port,
                                                                      interface: this._settings.interface,
                                                                      broadcastAddress: this._settings.broadcastAddress,
                                                                      reuseAddr: options.reuseAddr
                                                                    });
                                                                    this._transport.on("message", this._receiveData.bind(this));
                                                                    this._transport.on("error", this._receiveError.bind(this));
                                                                    this._transport.on("listening", () => this.emit("listening"));
                                                                    this._transport.open();
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @returns {number}
                                                                   * @private
                                                                   */
                                                                  _getInvokeId() {
                                                                    const id = this._invokeCounter++;
                                                                    if (id >= 256)
                                                                      this._invokeCounter = 1;
                                                                    return id - 1;
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param id
                                                                   * @param err
                                                                   * @param result
                                                                   * @returns {*}
                                                                   * @private
                                                                   */
                                                                  _invokeCallback(id, err, result) {
                                                                    const callback = this._invokeStore[id];
                                                                    if (callback) {
                                                                      return void callback(err, result);
                                                                    }
                                                                    debug32222222222222222("InvokeId", id, "not found -> drop package");
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param id
                                                                   * @param callback
                                                                   * @private
                                                                   */
                                                                  _addCallback(id, callback) {
                                                                    const timeout = setTimeout(() => {
                                                                      delete this._invokeStore[id];
                                                                      callback(new Error("ERR_TIMEOUT"));
                                                                    }, this._settings.apduTimeout);
                                                                    this._invokeStore[id] = (err, data) => {
                                                                      clearTimeout(timeout);
                                                                      delete this._invokeStore[id];
                                                                      callback(err, data);
                                                                    };
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param isForwarded
                                                                   * @returns {{offset: (number), buffer: *}}
                                                                   * @private
                                                                   */
                                                                  _getBuffer(isForwarded) {
                                                                    return Object.assign(
                                                                      {},
                                                                      {
                                                                        buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                                                        offset: isForwarded ? BVLC_FWD_HEADER_LENGTH2222222222222222 : BVLC_HEADER_LENGTH22222222222222222
                                                                      }
                                                                    );
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param invokeId
                                                                   * @param buffer
                                                                   * @param offset
                                                                   * @param length
                                                                   * @returns {*}
                                                                   * @private
                                                                   */
                                                                  _processError(invokeId, buffer, offset, length) {
                                                                    const result = error_exports2222222222222222.decode(buffer, offset);
                                                                    trace22222222222222222("Received error:", result);
                                                                    if (!result) {
                                                                      return debug32222222222222222("Couldn`t decode Error");
                                                                    }
                                                                    const err = new BacnetError2222222222222222(error_exports2222222222222222.buildMessage(result));
                                                                    err.bacnetErrorClass = result.class;
                                                                    err.bacnetErrorCode = result.code;
                                                                    this._invokeCallback(invokeId, err);
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param invokeId
                                                                   * @param reason
                                                                   * @private
                                                                   */
                                                                  _processAbort(invokeId, reason) {
                                                                    const err = new BacnetError2222222222222222("BacnetAbort - Reason:" + reason);
                                                                    err.bacnetAbortReason = reason;
                                                                    err.bacnetErrorClass = AbortReason2222222222222222;
                                                                    this._invokeCallback(invokeId, err);
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param negative
                                                                   * @param server
                                                                   * @param originalInvokeId
                                                                   * @param sequencenumber
                                                                   * @param actualWindowSize
                                                                   * @private
                                                                   */
                                                                  _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                                                                    const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      receiver,
                                                                      null,
                                                                      DEFAULT_HOP_COUNT22222222222222222,
                                                                      0,
                                                                      0
                                                                    );
                                                                    encodeSegmentAck2222222222222222(
                                                                      buffer,
                                                                      64 | (negative ? 2 : 0) | (server ? 1 : 0),
                                                                      originalInvokeId,
                                                                      sequencenumber,
                                                                      actualWindowSize
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param msg
                                                                   * @param first
                                                                   * @param moreFollows
                                                                   * @param buffer
                                                                   * @param offset
                                                                   * @param length
                                                                   * @private
                                                                   */
                                                                  _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                                                                    if (first) {
                                                                      this._segmentStore = [];
                                                                      msg.type &= ~8;
                                                                      let apduHeaderLen = 3;
                                                                      if ((msg.type & PDU_TYPE_MASK2222222222222222) === 0) {
                                                                        apduHeaderLen = 4;
                                                                      }
                                                                      const apdubuffer = this._getBuffer();
                                                                      apdubuffer.offset = 0;
                                                                      buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                                                                      if ((msg.type & PDU_TYPE_MASK2222222222222222) === 0) {
                                                                        encodeConfirmedServiceRequest2222222222222222(
                                                                          apdubuffer,
                                                                          msg.type,
                                                                          msg.service,
                                                                          msg.maxSegments,
                                                                          msg.maxApdu,
                                                                          msg.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                      } else {
                                                                        encodeComplexAck2222222222222222(
                                                                          apdubuffer,
                                                                          msg.type,
                                                                          msg.service,
                                                                          msg.invokeId,
                                                                          0,
                                                                          0
                                                                        );
                                                                      }
                                                                      this._segmentStore.push(
                                                                        //@ts-ignore
                                                                        apdubuffer.buffer.slice(0, length + apduHeaderLen)
                                                                      );
                                                                    } else {
                                                                      this._segmentStore.push(buffer.slice(offset, offset + length));
                                                                    }
                                                                    if (!moreFollows) {
                                                                      const apduBuffer = Buffer.concat(this._segmentStore);
                                                                      this._segmentStore = [];
                                                                      msg.type &= ~8;
                                                                      this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                                                                    }
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param msg
                                                                   * @param server
                                                                   * @param buffer
                                                                   * @param offset
                                                                   * @param length
                                                                   * @private
                                                                   */
                                                                  _processSegment(msg, server, buffer, offset, length) {
                                                                    let first = false;
                                                                    if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                                                                      first = true;
                                                                    } else {
                                                                      if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                                                        return this._segmentAckResponse(
                                                                          msg.header.address,
                                                                          true,
                                                                          server,
                                                                          msg.invokeId,
                                                                          this._lastSequenceNumber,
                                                                          msg.proposedWindowNumber
                                                                        );
                                                                      }
                                                                    }
                                                                    this._lastSequenceNumber = msg.sequencenumber;
                                                                    const moreFollows = msg.type & 4;
                                                                    if (!moreFollows) {
                                                                      this._lastSequenceNumber = 0;
                                                                    }
                                                                    if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                                                                      this._segmentAckResponse(
                                                                        msg.header.address,
                                                                        false,
                                                                        server,
                                                                        msg.invokeId,
                                                                        msg.sequencenumber,
                                                                        msg.proposedWindowNumber
                                                                      );
                                                                    }
                                                                    this._performDefaultSegmentHandling(
                                                                      msg,
                                                                      first,
                                                                      moreFollows,
                                                                      buffer,
                                                                      offset,
                                                                      length
                                                                    );
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param serviceMap
                                                                   * @param content
                                                                   * @param buffer
                                                                   * @param offset
                                                                   * @param length
                                                                   * @returns {*}
                                                                   * @private
                                                                   */
                                                                  _processServiceRequest(serviceMap, content, buffer, offset, length) {
                                                                    let result;
                                                                    const sender = content.header.sender;
                                                                    if (sender.address === LOCALHOST_INTERFACES_IPV42222222222222222) {
                                                                      debug32222222222222222("Received and skipped localhost service request:", content.service);
                                                                      return;
                                                                    }
                                                                    const name = serviceMap[content.service];
                                                                    if (!name) {
                                                                      debug32222222222222222("Received unsupported service request:", content.service);
                                                                      return;
                                                                    }
                                                                    const id = content.invokeId ? "@" + content.invokeId : "";
                                                                    trace22222222222222222(`Received service request${id}:`, name);
                                                                    const serviceHandler = services_exports2222222222222222[name];
                                                                    if (serviceHandler) {
                                                                      try {
                                                                        content.payload = serviceHandler.decode(buffer, offset, length);
                                                                        trace22222222222222222(`Handled service request${id}:`, name, JSON.stringify(content));
                                                                      } catch (e) {
                                                                        debug32222222222222222("Exception thrown when processing message:", e);
                                                                        debug32222222222222222("Original message was", name + ":", content);
                                                                        return;
                                                                      }
                                                                      if (!content.payload) {
                                                                        return debug32222222222222222("Received invalid", name, "message");
                                                                      }
                                                                    } else {
                                                                      debug32222222222222222("No serviceHandler defined for:", name);
                                                                    }
                                                                    if (this.listenerCount(name)) {
                                                                      trace22222222222222222("listener count by name emits " + name + " with content");
                                                                      this.emit(name, content);
                                                                    } else {
                                                                      if (this.listenerCount("unhandledEvent")) {
                                                                        trace22222222222222222("unhandled event emiting with content");
                                                                        this.emit("unhandledEvent", content);
                                                                      } else {
                                                                        trace22222222222222222(
                                                                          "no unhandled event handler with header: " + JSON.stringify(content.header)
                                                                        );
                                                                        if (content.header.expectingReply) {
                                                                          debug32222222222222222("Replying with error for unhandled service:", name);
                                                                          content.header.sender.forwardedFrom = null;
                                                                          this.errorResponse(
                                                                            content.header.sender,
                                                                            content.service,
                                                                            content.invokeId,
                                                                            5,
                                                                            67
                                                                            /* REJECT_UNRECOGNIZED_SERVICE */
                                                                          );
                                                                        }
                                                                      }
                                                                    }
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param buffer
                                                                   * @param offset
                                                                   * @param length
                                                                   * @param header
                                                                   * @private
                                                                   */
                                                                  _handlePdu(buffer, offset, length, header) {
                                                                    let msg;
                                                                    trace22222222222222222("handlePdu Header: ", header);
                                                                    switch (header.apduType & PDU_TYPE_MASK2222222222222222) {
                                                                      case 16:
                                                                        msg = decodeUnconfirmedServiceRequest2222222222222222(buffer, offset);
                                                                        msg.header = header;
                                                                        msg.header.confirmedService = false;
                                                                        this._processServiceRequest(
                                                                          unconfirmedServiceMap2222222222222222,
                                                                          msg,
                                                                          buffer,
                                                                          offset + msg.len,
                                                                          length - msg.len
                                                                        );
                                                                        break;
                                                                      case 32:
                                                                        msg = decodeSimpleAck2222222222222222(buffer, offset);
                                                                        offset += msg.len;
                                                                        length -= msg.len;
                                                                        this._invokeCallback(msg.invokeId, null, {
                                                                          msg,
                                                                          buffer,
                                                                          offset: offset + msg.len,
                                                                          length: length - msg.len
                                                                        });
                                                                        break;
                                                                      case 48:
                                                                        msg = decodeComplexAck2222222222222222(buffer, offset);
                                                                        msg.header = header;
                                                                        if ((header.apduType & 8) === 0) {
                                                                          this._invokeCallback(msg.invokeId, null, {
                                                                            msg,
                                                                            buffer,
                                                                            offset: offset + msg.len,
                                                                            length: length - msg.len
                                                                          });
                                                                        } else {
                                                                          this._processSegment(
                                                                            msg,
                                                                            true,
                                                                            buffer,
                                                                            offset + msg.len,
                                                                            length - msg.len
                                                                          );
                                                                        }
                                                                        break;
                                                                      case 64:
                                                                        msg = decodeSegmentAck2222222222222222(buffer, offset);
                                                                        msg.header = header;
                                                                        this._processSegment(
                                                                          msg,
                                                                          true,
                                                                          buffer,
                                                                          offset + msg.len,
                                                                          length - msg.len
                                                                        );
                                                                        break;
                                                                      case 80:
                                                                        msg = decodeError2222222222222222(buffer, offset);
                                                                        this._processError(
                                                                          msg.invokeId,
                                                                          buffer,
                                                                          offset + msg.len,
                                                                          length - msg.len
                                                                        );
                                                                        break;
                                                                      case 96:
                                                                      case 112:
                                                                        msg = decodeAbort2222222222222222(buffer, offset);
                                                                        this._processAbort(msg.invokeId, msg.reason);
                                                                        break;
                                                                      case 0:
                                                                        msg = decodeConfirmedServiceRequest2222222222222222(buffer, offset);
                                                                        msg.header = header;
                                                                        msg.header.confirmedService = true;
                                                                        if ((header.apduType & 8) === 0) {
                                                                          this._processServiceRequest(
                                                                            confirmedServiceMap2222222222222222,
                                                                            msg,
                                                                            buffer,
                                                                            offset + msg.len,
                                                                            length - msg.len
                                                                          );
                                                                        } else {
                                                                          this._processSegment(
                                                                            msg,
                                                                            true,
                                                                            buffer,
                                                                            offset + msg.len,
                                                                            length - msg.len
                                                                          );
                                                                        }
                                                                        break;
                                                                      default:
                                                                        debug32222222222222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                                                        break;
                                                                    }
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param buffer
                                                                   * @param offset
                                                                   * @param msgLength
                                                                   * @param header
                                                                   * @returns {*}
                                                                   * @private
                                                                   */
                                                                  _handleNpdu(buffer, offset, msgLength, header) {
                                                                    if (msgLength <= 0) {
                                                                      return trace22222222222222222("No NPDU data -> Drop package");
                                                                    }
                                                                    const result = decode312222222222222222(buffer, offset);
                                                                    if (!result) {
                                                                      return trace22222222222222222("Received invalid NPDU header -> Drop package");
                                                                    }
                                                                    if (result.funct & 128) {
                                                                      return trace22222222222222222("Received network layer message -> Drop package");
                                                                    }
                                                                    offset += result.len;
                                                                    msgLength -= result.len;
                                                                    if (msgLength <= 0) {
                                                                      return trace22222222222222222("No APDU data -> Drop package");
                                                                    }
                                                                    header.apduType = getDecodedType2222222222222222(buffer, offset);
                                                                    header.expectingReply = !!(result.funct & 4);
                                                                    this._handlePdu(buffer, offset, msgLength, header);
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param buffer
                                                                   * @param remoteAddress
                                                                   * @returns {*}
                                                                   * @private
                                                                   */
                                                                  _receiveData(buffer, remoteAddress) {
                                                                    if (buffer.length < BVLC_HEADER_LENGTH3222222222222222) {
                                                                      return trace22222222222222222("Received invalid data -> Drop package");
                                                                    }
                                                                    const result = decode322222222222222222(buffer, 0);
                                                                    if (!result) {
                                                                      return trace22222222222222222("Received invalid BVLC header -> Drop package");
                                                                    }
                                                                    let header = {
                                                                      // Which function the packet came in on, so later code can distinguish
                                                                      // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                                                                      func: result.func,
                                                                      sender: {
                                                                        // Address of the host we are directly connected to. String, IP:port.
                                                                        address: remoteAddress,
                                                                        // If the host is a BBMD passing messages along to another node, this
                                                                        // is the address of the distant BACnet node.  String, IP:port.
                                                                        // Typically we won't have network connectivity to this address, but
                                                                        // we have to include it in replies so the host we are connect to knows
                                                                        // where to forward the messages.
                                                                        forwardedFrom: null
                                                                      }
                                                                    };
                                                                    switch (result.func) {
                                                                      case 10:
                                                                      case 11:
                                                                        this._handleNpdu(
                                                                          buffer,
                                                                          result.len,
                                                                          buffer.length - result.len,
                                                                          header
                                                                        );
                                                                        break;
                                                                      case 4:
                                                                        header.sender.forwardedFrom = result.originatingIP;
                                                                        this._handleNpdu(
                                                                          buffer,
                                                                          result.len,
                                                                          buffer.length - result.len,
                                                                          header
                                                                        );
                                                                        break;
                                                                      case 5:
                                                                        let decodeResult = register_foreign_device_exports2222222222222222.decode(
                                                                          buffer,
                                                                          result.len,
                                                                          buffer.length - result.len
                                                                        );
                                                                        if (!decodeResult) {
                                                                          return trace22222222222222222("Received invalid registerForeignDevice message");
                                                                        }
                                                                        this.emit("registerForeignDevice", {
                                                                          header,
                                                                          payload: decodeResult
                                                                        });
                                                                        break;
                                                                      case 9:
                                                                        this._handleNpdu(
                                                                          buffer,
                                                                          result.len,
                                                                          buffer.length - result.len,
                                                                          header
                                                                        );
                                                                        break;
                                                                      default:
                                                                        debug32222222222222222(
                                                                          "Received unknown BVLC function " + result.func + " -> Drop package"
                                                                        );
                                                                        break;
                                                                    }
                                                                  }
                                                                  /**
                                                                   * @event bacnet.error
                                                                   * @param {error} err - The error object thrown by the underlying transport layer.
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * client.on('error', (err) => {
                                                                   *   console.log('Error occurred: ', err);
                                                                   *   client.close();
                                                                   * });
                                                                   */
                                                                  _receiveError(err) {
                                                                    this.emit("error", err);
                                                                  }
                                                                  /**
                                                                   * The whoIs command discovers all BACNET devices in a network.
                                                                   * @function bacnet.whoIs
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {object=} options
                                                                   * @param {number=} options.lowLimit - Minimal device instance number to search for.
                                                                   * @param {number=} options.highLimit - Maximal device instance number to search for.
                                                                   * @fires bacnet.iAm
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * client.whoIs();
                                                                   */
                                                                  whoIs(receiver, options) {
                                                                    if (!options) {
                                                                      if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                                                        options = receiver;
                                                                        receiver = void 0;
                                                                      }
                                                                    }
                                                                    options = options || {};
                                                                    const settings = {
                                                                      lowLimit: options.lowLimit,
                                                                      highLimit: options.highLimit
                                                                    };
                                                                    const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      //@ts-ignore
                                                                      receiver,
                                                                      null,
                                                                      DEFAULT_HOP_COUNT22222222222222222,
                                                                      0,
                                                                      0
                                                                    );
                                                                    encodeUnconfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      16,
                                                                      8
                                                                      /* WHO_IS */
                                                                    );
                                                                    who_is_exports2222222222222222.encode(buffer, settings.lowLimit, settings.highLimit);
                                                                    this.sendBvlc(receiver, buffer);
                                                                  }
                                                                  /**
                                                                   * The timeSync command sets the time of a target device.
                                                                   * @function bacnet.timeSync
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {date} dateTime - The date and time to set on the target device.
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * client.timeSync('192.168.1.43', new Date());
                                                                   */
                                                                  timeSync(receiver, dateTime) {
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(buffer, 0, receiver);
                                                                    encodeUnconfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      16,
                                                                      6
                                                                      /* TIME_SYNCHRONIZATION */
                                                                    );
                                                                    time_sync_exports2222222222222222.encode(buffer, dateTime);
                                                                    this.sendBvlc(receiver, buffer);
                                                                  }
                                                                  /**
                                                                   * The timeSyncUTC command sets the UTC time of a target device.
                                                                   * @function bacnet.timeSyncUTC
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {date} dateTime - The date and time to set on the target device.
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * client.timeSyncUTC('192.168.1.43', new Date());
                                                                   */
                                                                  timeSyncUTC(receiver, dateTime) {
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(buffer, 0, receiver);
                                                                    encodeUnconfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      16,
                                                                      9
                                                                      /* UTC_TIME_SYNCHRONIZATION */
                                                                    );
                                                                    time_sync_exports2222222222222222.encode(buffer, dateTime);
                                                                    this.sendBvlc(receiver, buffer);
                                                                  }
                                                                  /**
                                                                   * The readProperty command reads a single property of an object from a device.
                                                                   * @function bacnet.readProperty
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {object} objectId - The BACNET object ID to read.
                                                                   * @param {number} objectId.type - The BACNET object type to read.
                                                                   * @param {number} objectId.instance - The BACNET object instance to read.
                                                                   * @param {number} propertyId - The BACNET property id in the specified object to read.
                                                                   * @param {object=} options
                                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                   * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                                                                   *   console.log('value: ', value);
                                                                   * });
                                                                   */
                                                                  readProperty(receiver, objectId, propertyId, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId(),
                                                                      arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL2222222222222222
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      //@ts-ignore
                                                                      receiver,
                                                                      null,
                                                                      DEFAULT_HOP_COUNT22222222222222222,
                                                                      0,
                                                                      0
                                                                    );
                                                                    const type = 0 | //@ts-ignore
                                                                    (settings.maxSegments !== 0 ? 2 : 0);
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      type,
                                                                      12,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    read_property_exports2222222222222222.encode(
                                                                      buffer,
                                                                      objectId.type,
                                                                      objectId.instance,
                                                                      propertyId,
                                                                      settings.arrayIndex
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      const result = read_property_exports2222222222222222.decodeAcknowledge(
                                                                        data.buffer,
                                                                        data.offset,
                                                                        data.length
                                                                      );
                                                                      if (!result) {
                                                                        return void next(new Error("INVALID_DECODING"));
                                                                      }
                                                                      next(null, result);
                                                                    });
                                                                  }
                                                                  /**
                                                                   * The writeProperty command writes a single property of an object to a device.
                                                                   * @function bacnet.writeProperty
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {object} objectId - The BACNET object ID to write.
                                                                   * @param {number} objectId.type - The BACNET object type to write.
                                                                   * @param {number} objectId.instance - The BACNET object instance to write.
                                                                   * @param {number} propertyId - The BACNET property id in the specified object to write.
                                                                   * @param {object[]} values - A list of values to be written to the specified property.
                                                                   * @param {ApplicationTag} values.type - The data-type of the value to be written.
                                                                   * @param {number} values.value - The actual value to be written.
                                                                   * @param {object=} options
                                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                   * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                                   * @param {number=} options.priority - The priority of the value to be written.
                                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                                                                   *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                                                                   * ], (err, value) => {
                                                                   *   console.log('value: ', value);
                                                                   * });
                                                                   */
                                                                  writeProperty(receiver, objectId, propertyId, values, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId(),
                                                                      arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL2222222222222222,
                                                                      priority: options.priority || ASN1_NO_PRIORITY2222222222222222
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      //@ts-ignore Todo somehow types do not match at all
                                                                      receiver,
                                                                      null,
                                                                      DEFAULT_HOP_COUNT22222222222222222,
                                                                      0,
                                                                      0
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      15,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    write_property_exports2222222222222222.encode(
                                                                      buffer,
                                                                      objectId.type,
                                                                      objectId.instance,
                                                                      propertyId,
                                                                      settings.arrayIndex,
                                                                      settings.priority,
                                                                      values
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      next(err);
                                                                    });
                                                                  }
                                                                  /**
                                                                   * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                                                                   * @function bacnet.readPropertyMultiple
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {object[]} propertiesArray - List of object and property specifications to be read.
                                                                   * @param {object} propertiesArray.objectId - Specifies which object to read.
                                                                   * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                                                                   * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                                                                   * @param {object[]} propertiesArray.properties - List of properties to be read.
                                                                   * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                                                                   * @param {object=} options
                                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * const requestArray = [
                                                                   *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                                                                   * ];
                                                                   * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                                                                   *   console.log('value: ', value);
                                                                   * });
                                                                   */
                                                                  readPropertyMultiple(receiver, propertiesArray, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                                                                    const buffer = this._getBuffer(!!isForwarded);
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      //@ts-ignore Todo somehow types do not match at all
                                                                      receiver,
                                                                      null,
                                                                      DEFAULT_HOP_COUNT22222222222222222,
                                                                      0,
                                                                      0
                                                                    );
                                                                    const type = 0 | //@ts-ignore
                                                                    (settings.maxSegments !== 0 ? 2 : 0);
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      type,
                                                                      14,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    read_property_multiple_exports2222222222222222.encode(buffer, propertiesArray);
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return next(err);
                                                                      }
                                                                      const result = read_property_multiple_exports2222222222222222.decodeAcknowledge(
                                                                        data.buffer,
                                                                        data.offset,
                                                                        data.length
                                                                      );
                                                                      if (!result) {
                                                                        return next(new Error("INVALID_DECODING"));
                                                                      }
                                                                      next(null, result);
                                                                    });
                                                                  }
                                                                  /**
                                                                   * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                                                                   * @function bacnet.writePropertyMultiple
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {object[]} values - List of object and property specifications to be written.
                                                                   * @param {object} values.objectId - Specifies which object to read.
                                                                   * @param {number} values.objectId.type - The BACNET object type to read.
                                                                   * @param {number} values.objectId.instance - The BACNET object instance to read.
                                                                   * @param {object[]} values.values - List of properties to be written.
                                                                   * @param {object} values.values.property - Property specifications to be written.
                                                                   * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                                                                   * @param {number} values.values.property.index - The array index of the property to be written.
                                                                   * @param {object[]} values.values.value - A list of values to be written to the specified property.
                                                                   * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                                                                   * @param {object} values.values.value.value - The actual value to be written.
                                                                   * @param {number} values.values.priority - The priority to be used for writing to the property.
                                                                   * @param {object=} options
                                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * const values = [
                                                                   *   {objectId: {type: 8, instance: 44301}, values: [
                                                                   *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                                                                   *   ]}
                                                                   * ];
                                                                   * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                                                                   *   console.log('value: ', value);
                                                                   * });
                                                                   */
                                                                  writePropertyMultiple(receiver, values, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      //@ts-ignore
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      16,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId
                                                                    );
                                                                    write_property_multiple_exports2222222222222222.encodeObject(buffer, values);
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      next(err);
                                                                    });
                                                                  }
                                                                  /**
                                                                   * The confirmedCOVNotification command is used to push notifications to other
                                                                   * systems that have registered with us via a subscribeCOV message.
                                                                   * @function bacnet.confirmedCOVNotification
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                                                                   * @param {number} monitoredObject.type - Object type.
                                                                   * @param {number} monitoredObject.instance - Object instance.
                                                                   * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                                                                   * @param {number} initiatingDeviceId - Our BACnet device ID.
                                                                   * @param {number} lifetime - Number of seconds left until the subscription expires.
                                                                   * @param {array} values - values for the monitored object.  See example.
                                                                   * @param {object=} options
                                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * const settings = {deviceId: 123}; // our BACnet device
                                                                   *
                                                                   * // Items saved from subscribeCOV message
                                                                   * const monitoredObject = {type: 1, instance: 1};
                                                                   * const subscriberProcessId = 123;
                                                                   *
                                                                   * client.confirmedCOVNotification(
                                                                   *   '192.168.1.43',
                                                                   *   monitoredObject,
                                                                   *   subscriberProcessId,
                                                                   *   settings.deviceId,
                                                                   *   30, // should be lifetime of subscription really
                                                                   *   [
                                                                   *     {
                                                                   *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                                                                   *       value: [
                                                                   *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                                                                   *       ],
                                                                   *     },
                                                                   *   ],
                                                                   *   (err) => {
                                                                   *     console.log('error: ', err);
                                                                   *   }
                                                                   * );
                                                                   */
                                                                  confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer();
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      1,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    cov_notify_exports2222222222222222.encode(
                                                                      buffer,
                                                                      subscribeId,
                                                                      initiatingDeviceId,
                                                                      monitoredObject,
                                                                      lifetime,
                                                                      values
                                                                    );
                                                                    encode322222222222222222(
                                                                      buffer.buffer,
                                                                      10,
                                                                      buffer.offset
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      next();
                                                                    });
                                                                  }
                                                                  /**
                                                                   * The deviceCommunicationControl command enables or disables network communication of the target device.
                                                                   * @function bacnet.deviceCommunicationControl
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                                                                   * @param {EnableDisable} enableDisable - The network communication state to set.
                                                                   * @param {object=} options
                                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                   * @param {string=} options.password - The optional password used to set the network communication state.
                                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                                                                   *   console.log('error: ', err);
                                                                   * });
                                                                   */
                                                                  deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId(),
                                                                      password: options.password
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      17,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    device_communication_control_exports2222222222222222.encode(
                                                                      buffer,
                                                                      timeDuration,
                                                                      enableDisable,
                                                                      settings.password
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      next(err);
                                                                    });
                                                                  }
                                                                  /**
                                                                   * The reinitializeDevice command initiates a restart of the target device.
                                                                   * @function bacnet.reinitializeDevice
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {ReinitializedState} state - The type of restart to be initiated.
                                                                   * @param {object=} options
                                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                                   * @param {string=} options.password - The optional password used to restart the device.
                                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                                                                   *   console.log('value: ', value);
                                                                   * });
                                                                   */
                                                                  reinitializeDevice(receiver, state, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId(),
                                                                      password: options.password
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      20,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    reinitialize_device_exports2222222222222222.encode(buffer, state, settings.password);
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      next(err);
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param objectId
                                                                   * @param position
                                                                   * @param fileBuffer
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  writeFile(receiver, objectId, position, fileBuffer, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      7,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    atomic_write_file_exports2222222222222222.encode(
                                                                      buffer,
                                                                      false,
                                                                      objectId,
                                                                      position,
                                                                      fileBuffer
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      const result = atomic_write_file_exports2222222222222222.decodeAcknowledge(
                                                                        data.buffer,
                                                                        data.offset,
                                                                        data.length
                                                                      );
                                                                      if (!result) {
                                                                        return void next(new Error("INVALID_DECODING"));
                                                                      }
                                                                      next(null, result);
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param objectId
                                                                   * @param position
                                                                   * @param count
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  readFile(receiver, objectId, position, count, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      6,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    atomic_read_file_exports2222222222222222.encode(buffer, true, objectId, position, count);
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      const result = atomic_read_file_exports2222222222222222.decodeAcknowledge(
                                                                        data.buffer,
                                                                        data.offset,
                                                                        data.length
                                                                      );
                                                                      if (!result) {
                                                                        return void next(new Error("INVALID_DECODING"));
                                                                      }
                                                                      next(null, result);
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param objectId
                                                                   * @param idxBegin
                                                                   * @param quantity
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  readRange(receiver, objectId, idxBegin, quantity, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      26,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    read_range_exports2222222222222222.encode(
                                                                      buffer,
                                                                      objectId,
                                                                      131,
                                                                      ASN1_ARRAY_ALL2222222222222222,
                                                                      0,
                                                                      idxBegin,
                                                                      /* @__PURE__ */ new Date(),
                                                                      quantity
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      const result = read_range_exports2222222222222222.decodeAcknowledge(
                                                                        data.buffer,
                                                                        data.offset,
                                                                        data.length
                                                                      );
                                                                      if (!result) {
                                                                        return void next(new Error("INVALID_DECODING"));
                                                                      }
                                                                      next(null, result);
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param objectId
                                                                   * @param subscribeId
                                                                   * @param cancel
                                                                   * @param issueConfirmedNotifications
                                                                   * @param lifetime
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                                                                    const next = nextFunc || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      // @ts-ignore TODO types not matching with documentation and code
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      5,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    subscribe_cov_exports2222222222222222.encode(
                                                                      buffer,
                                                                      subscribeId,
                                                                      objectId,
                                                                      cancel,
                                                                      issueConfirmedNotifications,
                                                                      lifetime
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      next();
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param objectId
                                                                   * @param monitoredProperty
                                                                   * @param subscribeId
                                                                   * @param cancel
                                                                   * @param issueConfirmedNotifications
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      28,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    subscribe_property_exports2222222222222222.encode(
                                                                      buffer,
                                                                      subscribeId,
                                                                      objectId,
                                                                      cancel,
                                                                      issueConfirmedNotifications,
                                                                      0,
                                                                      monitoredProperty,
                                                                      false,
                                                                      15
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      next();
                                                                    });
                                                                  }
                                                                  /**
                                                                   * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                                                                   * @function bacnet.unconfirmedCOVNotification
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                                                                   * @param {number} initiatingDeviceId - The id of this device.
                                                                   * @param {object} monitoredObjectId - Specifies about which object the notification is.
                                                                   * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                                                                   * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                                                                   * @param {number} timeRemaining - How long the subscription is still active in seconds.
                                                                   * @param {object[]} values - List of properties with updated values.
                                                                   * @param {object} values.property - Property specifications.
                                                                   * @param {number} values.property.id - The updated BACNET property id.
                                                                   * @param {number} values.property.index - The array index of the updated property.
                                                                   * @param {object[]} values.value - A list of updated values.
                                                                   * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                                                                   * @param {object} values.value.value - The actual updated value.
                                                                   * @param {number} values.priority - The priority of the updated property.
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * client.unconfirmedCOVNotification(
                                                                   *            '127.0.0.1',
                                                                   *            3,
                                                                   *            433,
                                                                   *            {type: 2, instance: 122},
                                                                   *            120,
                                                                   *            [
                                                                   *              {
                                                                   *                property: {id: 85},
                                                                   *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                                                                   *              },
                                                                   *              {
                                                                   *                property: {id: 111},
                                                                   *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                                                                   *              }
                                                                   *            ]);
                                                                   */
                                                                  unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                                                                    const buffer = this._getBuffer();
                                                                    encode312222222222222222(buffer, 0, receiver);
                                                                    encodeUnconfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      16,
                                                                      2
                                                                      /* UNCONFIRMED_COV_NOTIFICATION */
                                                                    );
                                                                    cov_notify_exports2222222222222222.encode(
                                                                      buffer,
                                                                      subscriberProcessId,
                                                                      initiatingDeviceId,
                                                                      monitoredObjectId,
                                                                      timeRemaining,
                                                                      values
                                                                    );
                                                                    encode322222222222222222(
                                                                      buffer.buffer,
                                                                      10,
                                                                      buffer.offset
                                                                    );
                                                                    this._transport.send(buffer.buffer, buffer.offset, receiver);
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param objectId
                                                                   * @param values
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  createObject(receiver, objectId, values, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      10,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    create_object_exports2222222222222222.encode(buffer, objectId, values);
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      next();
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param objectId
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  deleteObject(receiver, objectId, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      11,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    delete_object_exports2222222222222222.encode(buffer, objectId);
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      next();
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param objectId
                                                                   * @param reference
                                                                   * @param values
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  removeListElement(receiver, objectId, reference, values, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      9,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    add_list_element_exports2222222222222222.encode(
                                                                      buffer,
                                                                      objectId,
                                                                      reference.id,
                                                                      reference.index,
                                                                      values
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      next();
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param objectId
                                                                   * @param reference
                                                                   * @param values
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  addListElement(receiver, objectId, reference, values, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      8,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    add_list_element_exports2222222222222222.encode(
                                                                      buffer,
                                                                      objectId,
                                                                      reference.id,
                                                                      reference.index,
                                                                      values
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      next();
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  getAlarmSummary(receiver, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      3,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      const result = alarm_summary_exports2222222222222222.decode(
                                                                        data.buffer,
                                                                        data.offset,
                                                                        data.length
                                                                      );
                                                                      if (!result) {
                                                                        return void next(new Error("INVALID_DECODING"));
                                                                      }
                                                                      next(null, result);
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param objectId
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  getEventInformation(receiver, objectId, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      29,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    encodeContextObjectId2222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      const result = event_information_exports2222222222222222.decode(
                                                                        data.buffer,
                                                                        data.offset,
                                                                        data.length
                                                                      );
                                                                      if (!result) {
                                                                        return void next(new Error("INVALID_DECODING"));
                                                                      }
                                                                      next(null, result);
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param objectId
                                                                   * @param eventState
                                                                   * @param ackText
                                                                   * @param evTimeStamp
                                                                   * @param ackTimeStamp
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      0,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    alarm_acknowledge_exports2222222222222222.encode(
                                                                      buffer,
                                                                      57,
                                                                      objectId,
                                                                      eventState,
                                                                      ackText,
                                                                      evTimeStamp,
                                                                      ackTimeStamp
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      next();
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param vendorId
                                                                   * @param serviceNumber
                                                                   * @param data
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      18,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    private_transfer_exports2222222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data2) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      next();
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param vendorId
                                                                   * @param serviceNumber
                                                                   * @param data
                                                                   */
                                                                  unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(buffer, 0, receiver);
                                                                    encodeUnconfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      16,
                                                                      4
                                                                      /* UNCONFIRMED_PRIVATE_TRANSFER */
                                                                    );
                                                                    private_transfer_exports2222222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                                    this.sendBvlc(receiver, buffer);
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param acknowledgmentFilter
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      4,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    get_enrollment_summary_exports2222222222222222.encode(
                                                                      buffer,
                                                                      acknowledgmentFilter,
                                                                      options.enrollmentFilter,
                                                                      options.eventStateFilter,
                                                                      options.eventTypeFilter,
                                                                      options.priorityFilter,
                                                                      options.notificationClassFilter
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      const result = get_enrollment_summary_exports2222222222222222.decodeAcknowledge(
                                                                        data.buffer,
                                                                        data.offset,
                                                                        data.length
                                                                      );
                                                                      if (!result) {
                                                                        return void next(new Error("INVALID_DECODING"));
                                                                      }
                                                                      next(null, result);
                                                                    });
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param eventNotification
                                                                   */
                                                                  unconfirmedEventNotification(receiver, eventNotification) {
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(buffer, 0, receiver);
                                                                    encodeUnconfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      16,
                                                                      3
                                                                      /* UNCONFIRMED_EVENT_NOTIFICATION */
                                                                    );
                                                                    event_notify_data_exports2222222222222222.encode(buffer, eventNotification);
                                                                    this.sendBvlc(receiver, buffer);
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param eventNotification
                                                                   * @param options
                                                                   * @param next
                                                                   */
                                                                  confirmedEventNotification(receiver, eventNotification, options, next) {
                                                                    next = next || options;
                                                                    const settings = {
                                                                      maxSegments: options.maxSegments || 112,
                                                                      maxApdu: options.maxApdu || 5,
                                                                      invokeId: options.invokeId || this._getInvokeId()
                                                                    };
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(
                                                                      buffer,
                                                                      0 | 4,
                                                                      receiver
                                                                    );
                                                                    encodeConfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      0,
                                                                      2,
                                                                      settings.maxSegments,
                                                                      settings.maxApdu,
                                                                      settings.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                    event_notify_data_exports2222222222222222.encode(buffer, eventNotification);
                                                                    this.sendBvlc(receiver, buffer);
                                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                                      if (err) {
                                                                        return void next(err);
                                                                      }
                                                                      next();
                                                                    });
                                                                  }
                                                                  /**
                                                                   * The readPropertyResponse call sends a response with information about one of our properties.
                                                                   * @function bacnet.readPropertyResponse
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {number} invokeId - ID of the original readProperty request.
                                                                   * @param {object} objectId - objectId from the original request,
                                                                   * @param {object} property - property being read, taken from the original request.
                                                                   * @param {object=} options varying behaviour for special circumstances
                                                                   * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                                                                   */
                                                                  readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(buffer, 0, receiver);
                                                                    encodeComplexAck2222222222222222(
                                                                      buffer,
                                                                      48,
                                                                      12,
                                                                      invokeId
                                                                    );
                                                                    read_property_exports2222222222222222.encodeAcknowledge(
                                                                      buffer,
                                                                      objectId,
                                                                      property.id,
                                                                      property.index,
                                                                      value
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                  }
                                                                  readPropertyMultipleResponse(receiver, invokeId, values) {
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(buffer, 0, receiver);
                                                                    encodeComplexAck2222222222222222(
                                                                      buffer,
                                                                      48,
                                                                      14,
                                                                      invokeId
                                                                    );
                                                                    read_property_multiple_exports2222222222222222.encodeAcknowledge(buffer, values);
                                                                    this.sendBvlc(receiver, buffer);
                                                                  }
                                                                  /**
                                                                   * The iAmResponse command is sent as a reply to a whoIs request.
                                                                   * @function bacnet.iAmResponse
                                                                   * @param {object} receiver - address to send packet to, null for local broadcast.
                                                                   * @param {number} deviceId - Our device ID.
                                                                   * @param {number} segmentation - an enum.Segmentation value.
                                                                   * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                                                                   */
                                                                  iAmResponse(receiver, deviceId, segmentation, vendorId) {
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(buffer, 0, receiver);
                                                                    encodeUnconfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      16,
                                                                      0
                                                                      /* I_AM */
                                                                    );
                                                                    i_am_exports2222222222222222.encode(
                                                                      buffer,
                                                                      deviceId,
                                                                      this._transport.getMaxPayload(),
                                                                      segmentation,
                                                                      vendorId
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param deviceId
                                                                   * @param objectId
                                                                   * @param objectName
                                                                   */
                                                                  iHaveResponse(receiver, deviceId, objectId, objectName) {
                                                                    const buffer = this._getBuffer(
                                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                    );
                                                                    encode312222222222222222(buffer, 0, receiver);
                                                                    encodeUnconfirmedServiceRequest2222222222222222(
                                                                      buffer,
                                                                      16,
                                                                      1
                                                                      /* I_HAVE */
                                                                    );
                                                                    i_have_exports2222222222222222.encode(buffer, deviceId, objectId, objectName);
                                                                    this.sendBvlc(receiver, buffer);
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param service
                                                                   * @param invokeId
                                                                   */
                                                                  simpleAckResponse(receiver, service, invokeId) {
                                                                    if (typeof receiver === "string")
                                                                      return;
                                                                    const buffer = this._getBuffer(!!receiver.forwardedFrom);
                                                                    encode312222222222222222(buffer, 0, receiver);
                                                                    encodeSimpleAck2222222222222222(
                                                                      buffer,
                                                                      32,
                                                                      service,
                                                                      invokeId
                                                                    );
                                                                    this.sendBvlc(receiver, buffer);
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param service
                                                                   * @param invokeId
                                                                   * @param errorClass
                                                                   * @param errorCode
                                                                   */
                                                                  errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                                                                    trace22222222222222222(
                                                                      `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                                                        service
                                                                      )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                                                                    );
                                                                    trace22222222222222222(
                                                                      `error message ${error_exports2222222222222222.buildMessage({
                                                                        class: errorClass,
                                                                        code: errorCode
                                                                      })}`
                                                                    );
                                                                    const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                                                                    if (typeof receiver === "string")
                                                                      throw new Error("receiver must be object");
                                                                    const buffer = this._getBuffer(hasSource);
                                                                    encode312222222222222222(buffer, 0, receiver);
                                                                    encodeError2222222222222222(buffer, 80, service, invokeId);
                                                                    error_exports2222222222222222.encode(buffer, errorClass, errorCode);
                                                                    this.sendBvlc(receiver, buffer);
                                                                  }
                                                                  /**
                                                                   *
                                                                   * @param receiver
                                                                   * @param buffer
                                                                   */
                                                                  sendBvlc(receiver, buffer) {
                                                                    if (typeof receiver === "string") {
                                                                      receiver = {
                                                                        address: receiver
                                                                      };
                                                                    }
                                                                    if (receiver && receiver.forwardedFrom) {
                                                                      encode322222222222222222(
                                                                        buffer.buffer,
                                                                        4,
                                                                        buffer.offset,
                                                                        receiver.forwardedFrom
                                                                      );
                                                                    } else if (receiver && receiver.address) {
                                                                      encode322222222222222222(
                                                                        buffer.buffer,
                                                                        10,
                                                                        buffer.offset
                                                                      );
                                                                    } else {
                                                                      encode322222222222222222(
                                                                        buffer.buffer,
                                                                        11,
                                                                        buffer.offset
                                                                      );
                                                                    }
                                                                    this._transport.send(
                                                                      buffer.buffer,
                                                                      buffer.offset,
                                                                      receiver && receiver.address || null
                                                                    );
                                                                  }
                                                                  /**
                                                                   * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                                                                   * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                                                                   * @function bacnet.resultResponse
                                                                   * @param {string} receiver - IP address of the target device.
                                                                   * @param {number} resultCode - Single value from BvlcResultFormat enum.
                                                                   */
                                                                  resultResponse(receiver, resultCode) {
                                                                    const buffer = this._getBuffer();
                                                                    encodeResult2222222222222222(buffer, resultCode);
                                                                    encode322222222222222222(
                                                                      buffer.buffer,
                                                                      0,
                                                                      buffer.offset
                                                                    );
                                                                    this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                                                                  }
                                                                  /**
                                                                   * Unloads the current bacnet instance and closes the underlying UDP socket.
                                                                   * @function bacnet.close
                                                                   * @example
                                                                   * const bacnet = require('node-bacnet');
                                                                   * const client = new bacnet();
                                                                   *
                                                                   * client.close();
                                                                   */
                                                                  close() {
                                                                    this._transport.close();
                                                                  }
                                                                  /**
                                                                   * Helper function to take an array of enums and produce a bitstring suitable
                                                                   * for inclusion as a property.
                                                                   *
                                                                   * @example
                                                                   * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                                                                   *   {value: bacnet.createBitstring([
                                                                   *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                                                                   *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                                                                   *   ]),
                                                                   *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                                                                   * ],
                                                                   */
                                                                  static createBitstring(items) {
                                                                    let offset = 0;
                                                                    let bytes = [];
                                                                    let bitsUsed = 0;
                                                                    while (items.length) {
                                                                      let value = 0;
                                                                      items = items.filter((i) => {
                                                                        if (i >= offset + 8) {
                                                                          return true;
                                                                        }
                                                                        value |= 1 << i - offset;
                                                                        bitsUsed = Math.max(bitsUsed, i);
                                                                        return false;
                                                                      });
                                                                      bytes.push(value);
                                                                      offset += 8;
                                                                    }
                                                                    bitsUsed++;
                                                                    return {
                                                                      value: bytes,
                                                                      bitsUsed
                                                                    };
                                                                  }
                                                                };
                                                                var import_underscore2222222222222222 = __toESM2222222222222222(require("underscore"));
                                                                var import_process2222222222222222 = __toESM2222222222222222(require("process"));
                                                                var import__2222222222222222 = __toESM2222222222222222(require_dist2222222222222222());
                                                                var PropertyIdentifierToEnumMap2222222222222222 = {};
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.OBJECT_TYPE] = import__2222222222222222.enums.ObjectType;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__2222222222222222.enums.Segmentation;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.EVENT_STATE] = import__2222222222222222.enums.EventState;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.UNITS] = import__2222222222222222.enums.EngineeringUnits;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.RELIABILITY] = import__2222222222222222.enums.Reliability;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__2222222222222222.enums.NotifyType;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.POLARITY] = import__2222222222222222.enums.Polarity;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__2222222222222222.enums.ServicesSupported;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__2222222222222222.enums.ObjectTypesSupported;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.STATUS_FLAGS] = import__2222222222222222.enums.StatusFlags;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__2222222222222222.enums.LimitEnable;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.EVENT_ENABLE] = import__2222222222222222.enums.EventTransitionBits;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__2222222222222222.enums.EventTransitionBits;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__2222222222222222.enums.DeviceStatus;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__2222222222222222.enums.DeviceStatus;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.ACK_REQUIRED] = import__2222222222222222.enums.EventTransitionBits;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.LOGGING_TYPE] = import__2222222222222222.enums.LoggingType;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__2222222222222222.enums.FileAccessMethod;
                                                                PropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.PropertyIdentifier.NODE_TYPE] = import__2222222222222222.enums.NodeType;
                                                                var ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222 = {};
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BINARY_INPUT] = {};
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BINARY_INPUT][import__2222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222222.enums.BinaryPV;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BINARY_INPUT][import__2222222222222222.enums.PropertyIdentifier.MODE] = import__2222222222222222.enums.BinaryPV;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.ANALOG_INPUT] = {};
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.ANALOG_INPUT][import__2222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222222.enums.BinaryPV;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.ANALOG_OUTPUT] = {};
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.ANALOG_OUTPUT][import__2222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222222.enums.BinaryPV;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BINARY_OUTPUT] = {};
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BINARY_OUTPUT][import__2222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222222.enums.BinaryPV;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BINARY_OUTPUT][import__2222222222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__2222222222222222.enums.BinaryPV;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BINARY_VALUE] = {};
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BINARY_VALUE][import__2222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222222.enums.BinaryPV;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BINARY_VALUE][import__2222222222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__2222222222222222.enums.BinaryPV;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__2222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222222.enums.BinaryLightingPV;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BITSTRING_VALUE] = {};
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.BINARY_VALUE][import__2222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222222.enums.BinaryPV;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222222.enums.LifeSafetyState;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222222222.enums.PropertyIdentifier.TRACKING_VALUE] = import__2222222222222222.enums.LifeSafetyState;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222222222.enums.PropertyIdentifier.MODE] = import__2222222222222222.enums.LifeSafetyMode;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222222222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__2222222222222222.enums.LifeSafetyMode;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222222222.enums.PropertyIdentifier.SILENCED] = import__2222222222222222.enums.LifeSafetyState;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222222222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__2222222222222222.enums.LifeSafetyOperation;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__2222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222222.enums.LifeSafetyState;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__2222222222222222.enums.PropertyIdentifier.MODE] = import__2222222222222222.enums.LifeSafetyMode;
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.LOAD_CONTROL] = {};
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[import__2222222222222222.enums.ObjectType.LOAD_CONTROL][import__2222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222222.enums.ShedState;
                                                                var propSubSet2222222222222222 = import_process2222222222222222.default.argv.includes("--all") ? Object.values(import__2222222222222222.enums.PropertyIdentifier) : [
                                                                  /* normally supported from all devices */
                                                                  import__2222222222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                                                                  import__2222222222222222.enums.PropertyIdentifier.OBJECT_NAME,
                                                                  import__2222222222222222.enums.PropertyIdentifier.OBJECT_TYPE,
                                                                  import__2222222222222222.enums.PropertyIdentifier.PRESENT_VALUE,
                                                                  import__2222222222222222.enums.PropertyIdentifier.STATUS_FLAGS,
                                                                  import__2222222222222222.enums.PropertyIdentifier.EVENT_STATE,
                                                                  import__2222222222222222.enums.PropertyIdentifier.RELIABILITY,
                                                                  import__2222222222222222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                                                                  import__2222222222222222.enums.PropertyIdentifier.UNITS,
                                                                  /* other properties */
                                                                  import__2222222222222222.enums.PropertyIdentifier.DESCRIPTION,
                                                                  import__2222222222222222.enums.PropertyIdentifier.SYSTEM_STATUS,
                                                                  import__2222222222222222.enums.PropertyIdentifier.VENDOR_NAME,
                                                                  import__2222222222222222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                                                                  import__2222222222222222.enums.PropertyIdentifier.MODEL_NAME,
                                                                  import__2222222222222222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                                                                  import__2222222222222222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                                                                  import__2222222222222222.enums.PropertyIdentifier.LOCATION,
                                                                  import__2222222222222222.enums.PropertyIdentifier.LOCAL_DATE,
                                                                  import__2222222222222222.enums.PropertyIdentifier.LOCAL_TIME,
                                                                  import__2222222222222222.enums.PropertyIdentifier.UTC_OFFSET,
                                                                  import__2222222222222222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                                                                  import__2222222222222222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                                                                  import__2222222222222222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                                                                  import__2222222222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                                                                  import__2222222222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                                                                  import__2222222222222222.enums.PropertyIdentifier.OBJECT_LIST,
                                                                  import__2222222222222222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                                                                  import__2222222222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                                                                  import__2222222222222222.enums.PropertyIdentifier.APDU_TIMEOUT,
                                                                  import__2222222222222222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                                                                  import__2222222222222222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                                                                  import__2222222222222222.enums.PropertyIdentifier.DATABASE_REVISION,
                                                                  import__2222222222222222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                                                                  import__2222222222222222.enums.PropertyIdentifier.MAX_MASTER,
                                                                  import__2222222222222222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                                                                  import__2222222222222222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                                                                ];
                                                                var debug42222222222222222 = import_process2222222222222222.default.argv.includes("--debug");
                                                                function getAllPropertiesManually2222222222222222(address, objectId, callback, propList, result) {
                                                                  if (!propList) {
                                                                    propList = propSubSet2222222222222222.map((x) => x);
                                                                  }
                                                                  if (!result) {
                                                                    result = [];
                                                                  }
                                                                  if (!propList.length) {
                                                                    return callback({
                                                                      values: [
                                                                        {
                                                                          objectId,
                                                                          values: result
                                                                        }
                                                                      ]
                                                                    });
                                                                  }
                                                                  const prop = propList.shift();
                                                                  bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                                                                    if (!err) {
                                                                      if (debug42222222222222222) {
                                                                        console.log("Handle value " + prop + ": ", JSON.stringify(value));
                                                                      }
                                                                      const objRes = value.property;
                                                                      objRes.value = value.values;
                                                                      result.push(objRes);
                                                                    } else {
                                                                    }
                                                                    getAllPropertiesManually2222222222222222(address, objectId, callback, propList, result);
                                                                  });
                                                                }
                                                                function readBit2222222222222222(buffer, i, bit) {
                                                                  return (buffer[i] >> bit) % 2;
                                                                }
                                                                function handleBitString2222222222222222(buffer, bitsUsed, usedEnum) {
                                                                  const res = [];
                                                                  for (let i = 0; i < bitsUsed; i++) {
                                                                    const bufferIndex = Math.floor(i / 8);
                                                                    if (readBit2222222222222222(buffer, bufferIndex, i % 8)) {
                                                                      res.push(import__2222222222222222.enums.getEnumName(usedEnum, i));
                                                                    }
                                                                  }
                                                                  return res;
                                                                }
                                                                function parseValue2222222222222222(address, objId2, parentType, value, supportsMultiple, callback) {
                                                                  let resValue = null;
                                                                  if (value && value.type && value.value !== null && value.value !== void 0) {
                                                                    switch (value.type) {
                                                                      case import__2222222222222222.enums.ApplicationTag.NULL:
                                                                        resValue = null;
                                                                        break;
                                                                      case import__2222222222222222.enums.ApplicationTag.BOOLEAN:
                                                                        resValue = !!value.value;
                                                                        break;
                                                                      case import__2222222222222222.enums.ApplicationTag.UNSIGNED_INTEGER:
                                                                      case import__2222222222222222.enums.ApplicationTag.SIGNED_INTEGER:
                                                                      case import__2222222222222222.enums.ApplicationTag.REAL:
                                                                      case import__2222222222222222.enums.ApplicationTag.DOUBLE:
                                                                      case import__2222222222222222.enums.ApplicationTag.CHARACTER_STRING:
                                                                        resValue = value.value;
                                                                        break;
                                                                      case import__2222222222222222.enums.ApplicationTag.DATE:
                                                                      case import__2222222222222222.enums.ApplicationTag.TIME:
                                                                      case import__2222222222222222.enums.ApplicationTag.TIMESTAMP:
                                                                        resValue = value.value;
                                                                        break;
                                                                      case import__2222222222222222.enums.ApplicationTag.BIT_STRING:
                                                                        if (ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[parentType][objId2]) {
                                                                          resValue = handleBitString2222222222222222(
                                                                            value.value.value,
                                                                            value.value.bitsUsed,
                                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[parentType][objId2]
                                                                          );
                                                                        } else if (PropertyIdentifierToEnumMap2222222222222222[objId2]) {
                                                                          resValue = handleBitString2222222222222222(
                                                                            value.value.value,
                                                                            value.value.bitsUsed,
                                                                            PropertyIdentifierToEnumMap2222222222222222[objId2]
                                                                          );
                                                                        } else {
                                                                          if (parentType !== import__2222222222222222.enums.ObjectType.BITSTRING_VALUE) {
                                                                            console.log(
                                                                              "Unknown value for BIT_STRING type for objId " + import__2222222222222222.enums.getEnumName(import__2222222222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__2222222222222222.enums.getEnumName(import__2222222222222222.enums.ObjectType, parentType)
                                                                            );
                                                                          }
                                                                          resValue = value.value;
                                                                        }
                                                                        break;
                                                                      case import__2222222222222222.enums.ApplicationTag.ENUMERATED:
                                                                        if (ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[parentType][objId2]) {
                                                                          resValue = import__2222222222222222.enums.getEnumName(
                                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222222[parentType][objId2],
                                                                            value.value
                                                                          );
                                                                        } else if (PropertyIdentifierToEnumMap2222222222222222[objId2]) {
                                                                          resValue = import__2222222222222222.enums.getEnumName(
                                                                            PropertyIdentifierToEnumMap2222222222222222[objId2],
                                                                            value.value
                                                                          );
                                                                        } else {
                                                                          console.log(
                                                                            "Unknown value for ENUMERATED type for objId " + import__2222222222222222.enums.getEnumName(import__2222222222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__2222222222222222.enums.getEnumName(import__2222222222222222.enums.ObjectType, parentType)
                                                                          );
                                                                          resValue = value.value;
                                                                        }
                                                                        break;
                                                                      case import__2222222222222222.enums.ApplicationTag.OBJECTIDENTIFIER:
                                                                        if (objId2 === import__2222222222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__2222222222222222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__2222222222222222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                                                                          resValue = value.value;
                                                                        } else if (supportsMultiple) {
                                                                          const requestArray = [
                                                                            {
                                                                              objectId: value.value,
                                                                              properties: [{ id: 8 }]
                                                                            }
                                                                          ];
                                                                          bacnetClient.readPropertyMultiple(
                                                                            address,
                                                                            requestArray,
                                                                            (err, resValue2) => {
                                                                              parseDeviceObject2222222222222222(address, resValue2, value.value, true, callback);
                                                                            }
                                                                          );
                                                                          return;
                                                                        } else {
                                                                          getAllPropertiesManually2222222222222222(address, value.value, (result) => {
                                                                            parseDeviceObject2222222222222222(address, result, value.value, false, callback);
                                                                          });
                                                                          return;
                                                                        }
                                                                        break;
                                                                      case import__2222222222222222.enums.ApplicationTag.OCTET_STRING:
                                                                        resValue = value.value;
                                                                        break;
                                                                      case import__2222222222222222.enums.ApplicationTag.ERROR:
                                                                        resValue = {
                                                                          errorClass: import__2222222222222222.enums.getEnumName(
                                                                            import__2222222222222222.enums.ErrorClass,
                                                                            value.value.errorClass
                                                                          ),
                                                                          errorCode: import__2222222222222222.enums.getEnumName(import__2222222222222222.enums.ErrorCode, value.value.errorCode)
                                                                        };
                                                                        break;
                                                                      case import__2222222222222222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                                                                      case import__2222222222222222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                                                                      case import__2222222222222222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                                                                      case import__2222222222222222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                                        resValue = value.value;
                                                                        break;
                                                                      case import__2222222222222222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                                                        parseValue2222222222222222(
                                                                          address,
                                                                          objId2,
                                                                          parentType,
                                                                          value.value,
                                                                          supportsMultiple,
                                                                          callback
                                                                        );
                                                                        return;
                                                                      case import__2222222222222222.enums.ApplicationTag.READ_ACCESS_RESULT:
                                                                        resValue = value.value;
                                                                        break;
                                                                      default:
                                                                        console.log(
                                                                          "unknown type " + value.type + ": " + JSON.stringify(value)
                                                                        );
                                                                        resValue = value;
                                                                    }
                                                                  }
                                                                  setImmediate(() => callback(resValue));
                                                                }
                                                                function parseDeviceObject2222222222222222(address, obj, parent, supportsMultiple, callback) {
                                                                  if (debug42222222222222222) {
                                                                    console.log(
                                                                      "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                                                                    );
                                                                  }
                                                                  if (!obj) {
                                                                    console.log("object not valid on parse device object");
                                                                    return;
                                                                  }
                                                                  if (!obj.values || !Array.isArray(obj.values)) {
                                                                    console.log("No device or invalid response");
                                                                    callback({ ERROR: "No device or invalid response" });
                                                                    return;
                                                                  }
                                                                  let cbCount = 0;
                                                                  let objDef = {};
                                                                  const finalize = () => {
                                                                    Object.keys(objDef).forEach((devId) => {
                                                                      Object.keys(objDef[devId]).forEach((objId2) => {
                                                                        if (objDef[devId][objId2].length === 1) {
                                                                          objDef[devId][objId2] = objDef[devId][objId2][0];
                                                                        }
                                                                      });
                                                                    });
                                                                    if (obj.values.length === 1) {
                                                                      objDef = objDef[obj.values[0].objectId.instance];
                                                                    }
                                                                    if (debug42222222222222222) {
                                                                      console.log(
                                                                        "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                                                                      );
                                                                    }
                                                                    callback(objDef);
                                                                  };
                                                                  obj.values.forEach((devBaseObj) => {
                                                                    if (!devBaseObj.objectId) {
                                                                      console.log("No device Id found in object data");
                                                                      return;
                                                                    }
                                                                    if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                                                                      console.log("No device type or instance found in object data");
                                                                      return;
                                                                    }
                                                                    if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                                                                      console.log("No device values response");
                                                                      return;
                                                                    }
                                                                    const deviceId = devBaseObj.objectId.instance;
                                                                    objDef[deviceId] = {};
                                                                    devBaseObj.values.forEach((devObj) => {
                                                                      let objId2 = import__2222222222222222.enums.getEnumName(import__2222222222222222.enums.PropertyIdentifier, devObj.id);
                                                                      if (devObj.index !== 4294967295) {
                                                                        objId2 += "-" + devObj.index;
                                                                      }
                                                                      if (debug42222222222222222) {
                                                                        console.log("Handle Object property:", deviceId, objId2, devObj.value);
                                                                      }
                                                                      devObj.value.forEach((val) => {
                                                                        if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                                                          objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                                          objDef[deviceId][objId2].push(val.value);
                                                                          return;
                                                                        }
                                                                        cbCount++;
                                                                        parseValue2222222222222222(
                                                                          address,
                                                                          devObj.id,
                                                                          parent.type,
                                                                          val,
                                                                          supportsMultiple,
                                                                          (parsedValue) => {
                                                                            if (debug42222222222222222) {
                                                                              console.log(
                                                                                "RETURN parsedValue",
                                                                                deviceId,
                                                                                objId2,
                                                                                devObj.value,
                                                                                parsedValue
                                                                              );
                                                                            }
                                                                            objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                                            objDef[deviceId][objId2].push(parsedValue);
                                                                            if (!--cbCount) {
                                                                              finalize();
                                                                            }
                                                                          }
                                                                        );
                                                                      });
                                                                    });
                                                                  });
                                                                  if (cbCount === 0) {
                                                                    finalize();
                                                                  }
                                                                }
                                                                var limitToDevice2222222222222222 = null;
                                                                if (import_process2222222222222222.default.argv.length === 3) {
                                                                  limitToDevice2222222222222222 = parseInt(import_process2222222222222222.default.argv[2]);
                                                                  if (isNaN(limitToDevice2222222222222222)) {
                                                                    limitToDevice2222222222222222 = null;
                                                                  }
                                                                }
                                                                var node_bacnet_default2222222222222222 = Client2222222222222222;
                                                              }
                                                            });
                                                            var node_bacnet_exports222222222222222 = {};
                                                            __export222222222222222(node_bacnet_exports222222222222222, {
                                                              _: () => import_underscore222222222222222.default,
                                                              bacnetErrorToString: () => bacnetErrorToString222222222222222,
                                                              default: () => node_bacnet_default222222222222222,
                                                              enums: () => enum_exports222222222222222,
                                                              parseValue: () => parseValue222222222222222
                                                            });
                                                            module222222222222222.exports = __toCommonJS222222222222222(node_bacnet_exports222222222222222);
                                                            var enum_exports222222222222222 = {};
                                                            __export222222222222222(enum_exports222222222222222, {
                                                              ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL222222222222222,
                                                              ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS222222222222222,
                                                              ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG222222222222222,
                                                              ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES222222222222222,
                                                              ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE222222222222222,
                                                              ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT222222222222222,
                                                              ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE222222222222222,
                                                              ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY222222222222222,
                                                              ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID222222222222222,
                                                              ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY222222222222222,
                                                              ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY222222222222222,
                                                              AbortReason: () => AbortReason222222222222222,
                                                              AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable222222222222222,
                                                              AccessCredentialDisable: () => AccessCredentialDisable222222222222222,
                                                              AccessCredentialDisableReason: () => AccessCredentialDisableReason222222222222222,
                                                              AccessEvent: () => AccessEvent222222222222222,
                                                              AccessPassbackMode: () => AccessPassbackMode222222222222222,
                                                              AccessUserType: () => AccessUserType222222222222222,
                                                              AccessZoneOccupancyState: () => AccessZoneOccupancyState222222222222222,
                                                              Action: () => Action222222222222222,
                                                              ApplicationTag: () => ApplicationTag222222222222222,
                                                              ApplicationTagName: () => ApplicationTagName222222222222222,
                                                              AuthenticationFactorType: () => AuthenticationFactorType222222222222222,
                                                              AuthenticationStatus: () => AuthenticationStatus222222222222222,
                                                              AuthorizationExemption: () => AuthorizationExemption222222222222222,
                                                              AuthorizationMode: () => AuthorizationMode222222222222222,
                                                              BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH322222222222222,
                                                              BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP222222222222222,
                                                              BackupState: () => BackupState222222222222222,
                                                              BinaryLightingPV: () => BinaryLightingPV222222222222222,
                                                              BinaryPV: () => BinaryPV222222222222222,
                                                              BvlcResultFormat: () => BvlcResultFormat222222222222222,
                                                              BvlcResultPurpose: () => BvlcResultPurpose222222222222222,
                                                              CharacterStringEncoding: () => CharacterStringEncoding222222222222222,
                                                              ConfirmedServiceChoice: () => ConfirmedServiceChoice222222222222222,
                                                              CovType: () => CovType222222222222222,
                                                              DaysOfWeek: () => DaysOfWeek222222222222222,
                                                              DeviceStatus: () => DeviceStatus222222222222222,
                                                              DoorAlarmState: () => DoorAlarmState222222222222222,
                                                              DoorSecuredStatus: () => DoorSecuredStatus222222222222222,
                                                              DoorStatus: () => DoorStatus222222222222222,
                                                              DoorValue: () => DoorValue222222222222222,
                                                              EnableDisable: () => EnableDisable222222222222222,
                                                              EngineeringUnits: () => EngineeringUnits222222222222222,
                                                              ErrorClass: () => ErrorClass222222222222222,
                                                              ErrorClassName: () => ErrorClassName222222222222222,
                                                              ErrorCode: () => ErrorCode222222222222222,
                                                              ErrorCodeName: () => ErrorCodeName222222222222222,
                                                              EscalatorFault: () => EscalatorFault222222222222222,
                                                              EscalatorMode: () => EscalatorMode222222222222222,
                                                              EscalatorOperationDirection: () => EscalatorOperationDirection222222222222222,
                                                              EventState: () => EventState222222222222222,
                                                              EventTransitionBits: () => EventTransitionBits222222222222222,
                                                              EventType: () => EventType222222222222222,
                                                              FaultType: () => FaultType222222222222222,
                                                              FileAccessMethod: () => FileAccessMethod222222222222222,
                                                              IPMode: () => IPMode222222222222222,
                                                              LifeSafetyMode: () => LifeSafetyMode222222222222222,
                                                              LifeSafetyOperation: () => LifeSafetyOperation222222222222222,
                                                              LifeSafetyState: () => LifeSafetyState222222222222222,
                                                              LiftCarDirection: () => LiftCarDirection222222222222222,
                                                              LiftCarDoorCommand: () => LiftCarDoorCommand222222222222222,
                                                              LiftCarDriveStatus: () => LiftCarDriveStatus222222222222222,
                                                              LiftCarMode: () => LiftCarMode222222222222222,
                                                              LiftFault: () => LiftFault222222222222222,
                                                              LiftGroupMode: () => LiftGroupMode222222222222222,
                                                              LightingInProgress: () => LightingInProgress222222222222222,
                                                              LightingOperation: () => LightingOperation222222222222222,
                                                              LightingTransition: () => LightingTransition222222222222222,
                                                              LimitEnable: () => LimitEnable222222222222222,
                                                              LockStatus: () => LockStatus222222222222222,
                                                              LogStatus: () => LogStatus222222222222222,
                                                              LoggingType: () => LoggingType222222222222222,
                                                              Maintenance: () => Maintenance222222222222222,
                                                              MaxApduLengthAccepted: () => MaxApduLengthAccepted222222222222222,
                                                              MaxSegmentsAccepted: () => MaxSegmentsAccepted222222222222222,
                                                              NetworkLayerMessageType: () => NetworkLayerMessageType222222222222222,
                                                              NetworkNumberQuality: () => NetworkNumberQuality222222222222222,
                                                              NetworkPortCommand: () => NetworkPortCommand222222222222222,
                                                              NetworkType: () => NetworkType222222222222222,
                                                              NodeType: () => NodeType222222222222222,
                                                              NotifyType: () => NotifyType222222222222222,
                                                              NpduControlBit: () => NpduControlBit222222222222222,
                                                              NpduControlPriority: () => NpduControlPriority222222222222222,
                                                              ObjectType: () => ObjectType222222222222222,
                                                              ObjectTypesSupported: () => ObjectTypesSupported222222222222222,
                                                              PDU_TYPE_MASK: () => PDU_TYPE_MASK222222222222222,
                                                              PduConReqBit: () => PduConReqBit222222222222222,
                                                              PduSegAckBit: () => PduSegAckBit222222222222222,
                                                              PduType: () => PduType222222222222222,
                                                              Polarity: () => Polarity222222222222222,
                                                              ProgramError: () => ProgramError222222222222222,
                                                              ProgramRequest: () => ProgramRequest222222222222222,
                                                              ProgramState: () => ProgramState222222222222222,
                                                              PropertyIdentifier: () => PropertyIdentifier222222222222222,
                                                              PropertyStates: () => PropertyStates222222222222222,
                                                              ProtocolLevel: () => ProtocolLevel222222222222222,
                                                              ReadRangeType: () => ReadRangeType222222222222222,
                                                              ReinitializedState: () => ReinitializedState222222222222222,
                                                              RejectReason: () => RejectReason222222222222222,
                                                              Relationship: () => Relationship222222222222222,
                                                              Reliability: () => Reliability222222222222222,
                                                              RestartReason: () => RestartReason222222222222222,
                                                              ResultFlags: () => ResultFlags222222222222222,
                                                              SecurityLevel: () => SecurityLevel222222222222222,
                                                              SecurityPolicy: () => SecurityPolicy222222222222222,
                                                              Segmentation: () => Segmentation222222222222222,
                                                              ServicesSupported: () => ServicesSupported222222222222222,
                                                              ShedState: () => ShedState222222222222222,
                                                              SilencedState: () => SilencedState222222222222222,
                                                              StatusFlags: () => StatusFlags222222222222222,
                                                              TimeStamp: () => TimeStamp222222222222222,
                                                              TimerState: () => TimerState222222222222222,
                                                              TimerTransition: () => TimerTransition222222222222222,
                                                              UnconfirmedServiceChoice: () => UnconfirmedServiceChoice222222222222222,
                                                              VTClass: () => VTClass222222222222222,
                                                              WriteStatus: () => WriteStatus222222222222222,
                                                              getEnumName: () => getEnumName222222222222222
                                                            });
                                                            var import_debug422222222222222 = __toESM222222222222222(require("debug"));
                                                            var debug522222222222222 = (0, import_debug422222222222222.default)("bacnet=enum=debug");
                                                            var trace322222222222222 = (0, import_debug422222222222222.default)("bacnet=enum=trace");
                                                            function invertEnum222222222222222(enumToInvert) {
                                                              const invertedEnum = {};
                                                              Object.keys(enumToInvert).forEach((key) => {
                                                                invertedEnum[enumToInvert[key]] = key;
                                                              });
                                                              return invertedEnum;
                                                            }
                                                            function getEnumName222222222222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                                                              if (!Number.isInteger(value)) {
                                                                throw new Error(
                                                                  'getEnumName() can only be passed an integer value, was given "' + value + '"'
                                                                );
                                                              }
                                                              let foundEntry;
                                                              try {
                                                                const invertedGroup = invertEnum222222222222222(group);
                                                                foundEntry = invertedGroup[value];
                                                                if (foundEntry === void 0 && undefinedFallbackValue) {
                                                                  foundEntry = undefinedFallbackValue;
                                                                }
                                                                if (foundEntry === void 0) {
                                                                  foundEntry = value.toString();
                                                                } else if (addNumberValue) {
                                                                  foundEntry += "(" + value + ")";
                                                                }
                                                              } catch (e) {
                                                                trace322222222222222(e.message);
                                                                foundEntry = null;
                                                              }
                                                              return foundEntry;
                                                            }
                                                            var PDU_TYPE_MASK222222222222222 = 240;
                                                            var ASN1_MAX_OBJECT222222222222222 = 1023;
                                                            var ASN1_INSTANCE_BITS222222222222222 = 22;
                                                            var ASN1_MAX_INSTANCE222222222222222 = 4194303;
                                                            var ASN1_MAX_BITSTRING_BYTES222222222222222 = 15;
                                                            var ASN1_ARRAY_ALL222222222222222 = 4294967295;
                                                            var ASN1_NO_PRIORITY222222222222222 = 0;
                                                            var ASN1_MIN_PRIORITY222222222222222 = 1;
                                                            var ASN1_MAX_PRIORITY222222222222222 = 16;
                                                            var ASN1_MAX_APPLICATION_TAG222222222222222 = 16;
                                                            var ASN1_MAX_OBJECT_TYPE222222222222222 = 1024;
                                                            var ASN1_MAX_PROPERTY_ID222222222222222 = 4194303;
                                                            var BVLL_TYPE_BACNET_IP222222222222222 = 129;
                                                            var BVLC_HEADER_LENGTH322222222222222 = 4;
                                                            var ConfirmedServiceChoice222222222222222 = /* @__PURE__ */ ((ConfirmedServiceChoice2222222222222222) => {
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["READ_RANGE"] = 26] = "READ_RANGE";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                              ConfirmedServiceChoice2222222222222222[ConfirmedServiceChoice2222222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                              return ConfirmedServiceChoice2222222222222222;
                                                            })(ConfirmedServiceChoice222222222222222 || {});
                                                            var UnconfirmedServiceChoice222222222222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice2222222222222222) => {
                                                              UnconfirmedServiceChoice2222222222222222[UnconfirmedServiceChoice2222222222222222["I_AM"] = 0] = "I_AM";
                                                              UnconfirmedServiceChoice2222222222222222[UnconfirmedServiceChoice2222222222222222["I_HAVE"] = 1] = "I_HAVE";
                                                              UnconfirmedServiceChoice2222222222222222[UnconfirmedServiceChoice2222222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                                                              UnconfirmedServiceChoice2222222222222222[UnconfirmedServiceChoice2222222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                              UnconfirmedServiceChoice2222222222222222[UnconfirmedServiceChoice2222222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                              UnconfirmedServiceChoice2222222222222222[UnconfirmedServiceChoice2222222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                                                              UnconfirmedServiceChoice2222222222222222[UnconfirmedServiceChoice2222222222222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                                                              UnconfirmedServiceChoice2222222222222222[UnconfirmedServiceChoice2222222222222222["WHO_HAS"] = 7] = "WHO_HAS";
                                                              UnconfirmedServiceChoice2222222222222222[UnconfirmedServiceChoice2222222222222222["WHO_IS"] = 8] = "WHO_IS";
                                                              UnconfirmedServiceChoice2222222222222222[UnconfirmedServiceChoice2222222222222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                                                              UnconfirmedServiceChoice2222222222222222[UnconfirmedServiceChoice2222222222222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                                                              UnconfirmedServiceChoice2222222222222222[UnconfirmedServiceChoice2222222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                              return UnconfirmedServiceChoice2222222222222222;
                                                            })(UnconfirmedServiceChoice222222222222222 || {});
                                                            var AbortReason222222222222222 = /* @__PURE__ */ ((AbortReason2222222222222222) => {
                                                              AbortReason2222222222222222[AbortReason2222222222222222["OTHER"] = 0] = "OTHER";
                                                              AbortReason2222222222222222[AbortReason2222222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                              AbortReason2222222222222222[AbortReason2222222222222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                                                              AbortReason2222222222222222[AbortReason2222222222222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                              AbortReason2222222222222222[AbortReason2222222222222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                                                              AbortReason2222222222222222[AbortReason2222222222222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                                                              AbortReason2222222222222222[AbortReason2222222222222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                                                              AbortReason2222222222222222[AbortReason2222222222222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                                                              AbortReason2222222222222222[AbortReason2222222222222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                                                              AbortReason2222222222222222[AbortReason2222222222222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                                                              AbortReason2222222222222222[AbortReason2222222222222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                                                              AbortReason2222222222222222[AbortReason2222222222222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                                                              return AbortReason2222222222222222;
                                                            })(AbortReason222222222222222 || {});
                                                            var RejectReason222222222222222 = /* @__PURE__ */ ((RejectReason2222222222222222) => {
                                                              RejectReason2222222222222222[RejectReason2222222222222222["OTHER"] = 0] = "OTHER";
                                                              RejectReason2222222222222222[RejectReason2222222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                              RejectReason2222222222222222[RejectReason2222222222222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                                                              RejectReason2222222222222222[RejectReason2222222222222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                                                              RejectReason2222222222222222[RejectReason2222222222222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                                                              RejectReason2222222222222222[RejectReason2222222222222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                                                              RejectReason2222222222222222[RejectReason2222222222222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                                                              RejectReason2222222222222222[RejectReason2222222222222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                                                              RejectReason2222222222222222[RejectReason2222222222222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                                                              RejectReason2222222222222222[RejectReason2222222222222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                                                              return RejectReason2222222222222222;
                                                            })(RejectReason222222222222222 || {});
                                                            var ErrorClass222222222222222 = /* @__PURE__ */ ((ErrorClass2222222222222222) => {
                                                              ErrorClass2222222222222222[ErrorClass2222222222222222["DEVICE"] = 0] = "DEVICE";
                                                              ErrorClass2222222222222222[ErrorClass2222222222222222["OBJECT"] = 1] = "OBJECT";
                                                              ErrorClass2222222222222222[ErrorClass2222222222222222["PROPERTY"] = 2] = "PROPERTY";
                                                              ErrorClass2222222222222222[ErrorClass2222222222222222["RESOURCES"] = 3] = "RESOURCES";
                                                              ErrorClass2222222222222222[ErrorClass2222222222222222["SECURITY"] = 4] = "SECURITY";
                                                              ErrorClass2222222222222222[ErrorClass2222222222222222["SERVICES"] = 5] = "SERVICES";
                                                              ErrorClass2222222222222222[ErrorClass2222222222222222["VT"] = 6] = "VT";
                                                              ErrorClass2222222222222222[ErrorClass2222222222222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                                                              return ErrorClass2222222222222222;
                                                            })(ErrorClass222222222222222 || {});
                                                            var ErrorClassName222222222222222 = invertEnum222222222222222(
                                                              ErrorClass222222222222222
                                                            );
                                                            var ErrorCode222222222222222 = /* @__PURE__ */ ((ErrorCode2222222222222222) => {
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["BUSY"] = 82] = "BUSY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["FILE_FULL"] = 128] = "FILE_FULL";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["OTHER"] = 0] = "OTHER";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["SUCCESS"] = 84] = "SUCCESS";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["TIMEOUT"] = 30] = "TIMEOUT";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                                                              ErrorCode2222222222222222[ErrorCode2222222222222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                                                              return ErrorCode2222222222222222;
                                                            })(ErrorCode222222222222222 || {});
                                                            var ErrorCodeName222222222222222 = invertEnum222222222222222(
                                                              ErrorCode222222222222222
                                                            );
                                                            var AccessAuthenticationFactorDisable222222222222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable2222222222222222) => {
                                                              AccessAuthenticationFactorDisable2222222222222222[AccessAuthenticationFactorDisable2222222222222222["NONE"] = 0] = "NONE";
                                                              AccessAuthenticationFactorDisable2222222222222222[AccessAuthenticationFactorDisable2222222222222222["DISABLED"] = 1] = "DISABLED";
                                                              AccessAuthenticationFactorDisable2222222222222222[AccessAuthenticationFactorDisable2222222222222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                                                              AccessAuthenticationFactorDisable2222222222222222[AccessAuthenticationFactorDisable2222222222222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                                                              AccessAuthenticationFactorDisable2222222222222222[AccessAuthenticationFactorDisable2222222222222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                                                              AccessAuthenticationFactorDisable2222222222222222[AccessAuthenticationFactorDisable2222222222222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                                                              return AccessAuthenticationFactorDisable2222222222222222;
                                                            })(AccessAuthenticationFactorDisable222222222222222 || {});
                                                            var AccessCredentialDisable222222222222222 = /* @__PURE__ */ ((AccessCredentialDisable2222222222222222) => {
                                                              AccessCredentialDisable2222222222222222[AccessCredentialDisable2222222222222222["NONE"] = 0] = "NONE";
                                                              AccessCredentialDisable2222222222222222[AccessCredentialDisable2222222222222222["DISABLE"] = 1] = "DISABLE";
                                                              AccessCredentialDisable2222222222222222[AccessCredentialDisable2222222222222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                                                              AccessCredentialDisable2222222222222222[AccessCredentialDisable2222222222222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                                                              return AccessCredentialDisable2222222222222222;
                                                            })(AccessCredentialDisable222222222222222 || {});
                                                            var AccessCredentialDisableReason222222222222222 = /* @__PURE__ */ ((AccessCredentialDisableReason2222222222222222) => {
                                                              AccessCredentialDisableReason2222222222222222[AccessCredentialDisableReason2222222222222222["DISABLED"] = 0] = "DISABLED";
                                                              AccessCredentialDisableReason2222222222222222[AccessCredentialDisableReason2222222222222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                                                              AccessCredentialDisableReason2222222222222222[AccessCredentialDisableReason2222222222222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                                                              AccessCredentialDisableReason2222222222222222[AccessCredentialDisableReason2222222222222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                                                              AccessCredentialDisableReason2222222222222222[AccessCredentialDisableReason2222222222222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                                                              AccessCredentialDisableReason2222222222222222[AccessCredentialDisableReason2222222222222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                                                              AccessCredentialDisableReason2222222222222222[AccessCredentialDisableReason2222222222222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                                                              AccessCredentialDisableReason2222222222222222[AccessCredentialDisableReason2222222222222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                                                              AccessCredentialDisableReason2222222222222222[AccessCredentialDisableReason2222222222222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                                                              AccessCredentialDisableReason2222222222222222[AccessCredentialDisableReason2222222222222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                                                              return AccessCredentialDisableReason2222222222222222;
                                                            })(AccessCredentialDisableReason222222222222222 || {});
                                                            var AccessEvent222222222222222 = /* @__PURE__ */ ((AccessEvent2222222222222222) => {
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["NONE"] = 0] = "NONE";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["GRANTED"] = 1] = "GRANTED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["MUSTER"] = 2] = "MUSTER";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DURESS"] = 4] = "DURESS";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["TRACE"] = 5] = "TRACE";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                                                              AccessEvent2222222222222222[AccessEvent2222222222222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                                                              return AccessEvent2222222222222222;
                                                            })(AccessEvent222222222222222 || {});
                                                            var AccessPassbackMode222222222222222 = /* @__PURE__ */ ((AccessPassbackMode2222222222222222) => {
                                                              AccessPassbackMode2222222222222222[AccessPassbackMode2222222222222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                                                              AccessPassbackMode2222222222222222[AccessPassbackMode2222222222222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                                                              AccessPassbackMode2222222222222222[AccessPassbackMode2222222222222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                                                              return AccessPassbackMode2222222222222222;
                                                            })(AccessPassbackMode222222222222222 || {});
                                                            var AccessUserType222222222222222 = /* @__PURE__ */ ((AccessUserType2222222222222222) => {
                                                              AccessUserType2222222222222222[AccessUserType2222222222222222["ASSET"] = 0] = "ASSET";
                                                              AccessUserType2222222222222222[AccessUserType2222222222222222["GROUP"] = 1] = "GROUP";
                                                              AccessUserType2222222222222222[AccessUserType2222222222222222["PERSON"] = 2] = "PERSON";
                                                              return AccessUserType2222222222222222;
                                                            })(AccessUserType222222222222222 || {});
                                                            var AccessZoneOccupancyState222222222222222 = /* @__PURE__ */ ((AccessZoneOccupancyState2222222222222222) => {
                                                              AccessZoneOccupancyState2222222222222222[AccessZoneOccupancyState2222222222222222["NORMAL"] = 0] = "NORMAL";
                                                              AccessZoneOccupancyState2222222222222222[AccessZoneOccupancyState2222222222222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                                                              AccessZoneOccupancyState2222222222222222[AccessZoneOccupancyState2222222222222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                                                              AccessZoneOccupancyState2222222222222222[AccessZoneOccupancyState2222222222222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                                                              AccessZoneOccupancyState2222222222222222[AccessZoneOccupancyState2222222222222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                                                              AccessZoneOccupancyState2222222222222222[AccessZoneOccupancyState2222222222222222["DISABLED"] = 5] = "DISABLED";
                                                              AccessZoneOccupancyState2222222222222222[AccessZoneOccupancyState2222222222222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                                                              return AccessZoneOccupancyState2222222222222222;
                                                            })(AccessZoneOccupancyState222222222222222 || {});
                                                            var Action222222222222222 = /* @__PURE__ */ ((Action2222222222222222) => {
                                                              Action2222222222222222[Action2222222222222222["DIRECT"] = 0] = "DIRECT";
                                                              Action2222222222222222[Action2222222222222222["REVERSE"] = 1] = "REVERSE";
                                                              return Action2222222222222222;
                                                            })(Action222222222222222 || {});
                                                            var AuthenticationFactorType222222222222222 = /* @__PURE__ */ ((AuthenticationFactorType2222222222222222) => {
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["UNDEFINED"] = 0] = "UNDEFINED";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["ERROR"] = 1] = "ERROR";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["CUSTOM"] = 2] = "CUSTOM";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["WIEGAND26"] = 8] = "WIEGAND26";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["WIEGAND37"] = 9] = "WIEGAND37";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["FASC_N"] = 13] = "FASC_N";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["GSA75"] = 17] = "GSA75";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["CHUID"] = 18] = "CHUID";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["GUID"] = 20] = "GUID";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["CBEFF_A"] = 21] = "CBEFF_A";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["CBEFF_B"] = 22] = "CBEFF_B";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["CBEFF_C"] = 23] = "CBEFF_C";
                                                              AuthenticationFactorType2222222222222222[AuthenticationFactorType2222222222222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                                                              return AuthenticationFactorType2222222222222222;
                                                            })(AuthenticationFactorType222222222222222 || {});
                                                            var AuthenticationStatus222222222222222 = /* @__PURE__ */ ((AuthenticationStatus2222222222222222) => {
                                                              AuthenticationStatus2222222222222222[AuthenticationStatus2222222222222222["NOT_READY"] = 0] = "NOT_READY";
                                                              AuthenticationStatus2222222222222222[AuthenticationStatus2222222222222222["READY"] = 1] = "READY";
                                                              AuthenticationStatus2222222222222222[AuthenticationStatus2222222222222222["DISABLED"] = 2] = "DISABLED";
                                                              AuthenticationStatus2222222222222222[AuthenticationStatus2222222222222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                                                              AuthenticationStatus2222222222222222[AuthenticationStatus2222222222222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                                                              AuthenticationStatus2222222222222222[AuthenticationStatus2222222222222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                                                              AuthenticationStatus2222222222222222[AuthenticationStatus2222222222222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                                                              return AuthenticationStatus2222222222222222;
                                                            })(AuthenticationStatus222222222222222 || {});
                                                            var AuthorizationExemption222222222222222 = /* @__PURE__ */ ((AuthorizationExemption2222222222222222) => {
                                                              AuthorizationExemption2222222222222222[AuthorizationExemption2222222222222222["PASSBACK"] = 0] = "PASSBACK";
                                                              AuthorizationExemption2222222222222222[AuthorizationExemption2222222222222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                                                              AuthorizationExemption2222222222222222[AuthorizationExemption2222222222222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                                                              AuthorizationExemption2222222222222222[AuthorizationExemption2222222222222222["LOCKOUT"] = 3] = "LOCKOUT";
                                                              AuthorizationExemption2222222222222222[AuthorizationExemption2222222222222222["DENY"] = 4] = "DENY";
                                                              AuthorizationExemption2222222222222222[AuthorizationExemption2222222222222222["VERIFICATION"] = 5] = "VERIFICATION";
                                                              AuthorizationExemption2222222222222222[AuthorizationExemption2222222222222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                                                              return AuthorizationExemption2222222222222222;
                                                            })(AuthorizationExemption222222222222222 || {});
                                                            var AuthorizationMode222222222222222 = /* @__PURE__ */ ((AuthorizationMode2222222222222222) => {
                                                              AuthorizationMode2222222222222222[AuthorizationMode2222222222222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                                                              AuthorizationMode2222222222222222[AuthorizationMode2222222222222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                                                              AuthorizationMode2222222222222222[AuthorizationMode2222222222222222["DENY_ALL"] = 2] = "DENY_ALL";
                                                              AuthorizationMode2222222222222222[AuthorizationMode2222222222222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                                                              AuthorizationMode2222222222222222[AuthorizationMode2222222222222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                                                              AuthorizationMode2222222222222222[AuthorizationMode2222222222222222["NONE"] = 5] = "NONE";
                                                              return AuthorizationMode2222222222222222;
                                                            })(AuthorizationMode222222222222222 || {});
                                                            var BackupState222222222222222 = /* @__PURE__ */ ((BackupState2222222222222222) => {
                                                              BackupState2222222222222222[BackupState2222222222222222["IDLE"] = 0] = "IDLE";
                                                              BackupState2222222222222222[BackupState2222222222222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                                                              BackupState2222222222222222[BackupState2222222222222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                                                              BackupState2222222222222222[BackupState2222222222222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                                                              BackupState2222222222222222[BackupState2222222222222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                                                              BackupState2222222222222222[BackupState2222222222222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                                                              BackupState2222222222222222[BackupState2222222222222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                                                              return BackupState2222222222222222;
                                                            })(BackupState222222222222222 || {});
                                                            var BinaryLightingPV222222222222222 = /* @__PURE__ */ ((BinaryLightingPV2222222222222222) => {
                                                              BinaryLightingPV2222222222222222[BinaryLightingPV2222222222222222["OFF"] = 0] = "OFF";
                                                              BinaryLightingPV2222222222222222[BinaryLightingPV2222222222222222["ON"] = 1] = "ON";
                                                              BinaryLightingPV2222222222222222[BinaryLightingPV2222222222222222["WARN"] = 2] = "WARN";
                                                              BinaryLightingPV2222222222222222[BinaryLightingPV2222222222222222["WARN_OFF"] = 3] = "WARN_OFF";
                                                              BinaryLightingPV2222222222222222[BinaryLightingPV2222222222222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                                                              BinaryLightingPV2222222222222222[BinaryLightingPV2222222222222222["STOP"] = 5] = "STOP";
                                                              return BinaryLightingPV2222222222222222;
                                                            })(BinaryLightingPV222222222222222 || {});
                                                            var BinaryPV222222222222222 = /* @__PURE__ */ ((BinaryPV2222222222222222) => {
                                                              BinaryPV2222222222222222[BinaryPV2222222222222222["INACTIVE"] = 0] = "INACTIVE";
                                                              BinaryPV2222222222222222[BinaryPV2222222222222222["ACTIVE"] = 1] = "ACTIVE";
                                                              return BinaryPV2222222222222222;
                                                            })(BinaryPV222222222222222 || {});
                                                            var DeviceStatus222222222222222 = /* @__PURE__ */ ((DeviceStatus2222222222222222) => {
                                                              DeviceStatus2222222222222222[DeviceStatus2222222222222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                                                              DeviceStatus2222222222222222[DeviceStatus2222222222222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                                                              DeviceStatus2222222222222222[DeviceStatus2222222222222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                                                              DeviceStatus2222222222222222[DeviceStatus2222222222222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                                                              DeviceStatus2222222222222222[DeviceStatus2222222222222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                                                              DeviceStatus2222222222222222[DeviceStatus2222222222222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                                                              return DeviceStatus2222222222222222;
                                                            })(DeviceStatus222222222222222 || {});
                                                            var DoorAlarmState222222222222222 = /* @__PURE__ */ ((DoorAlarmState2222222222222222) => {
                                                              DoorAlarmState2222222222222222[DoorAlarmState2222222222222222["NORMAL"] = 0] = "NORMAL";
                                                              DoorAlarmState2222222222222222[DoorAlarmState2222222222222222["ALARM"] = 1] = "ALARM";
                                                              DoorAlarmState2222222222222222[DoorAlarmState2222222222222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                                                              DoorAlarmState2222222222222222[DoorAlarmState2222222222222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                                                              DoorAlarmState2222222222222222[DoorAlarmState2222222222222222["TAMPER"] = 4] = "TAMPER";
                                                              DoorAlarmState2222222222222222[DoorAlarmState2222222222222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                                                              DoorAlarmState2222222222222222[DoorAlarmState2222222222222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                                                              DoorAlarmState2222222222222222[DoorAlarmState2222222222222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                                                              DoorAlarmState2222222222222222[DoorAlarmState2222222222222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                                                              return DoorAlarmState2222222222222222;
                                                            })(DoorAlarmState222222222222222 || {});
                                                            var DoorSecuredStatus222222222222222 = /* @__PURE__ */ ((DoorSecuredStatus2222222222222222) => {
                                                              DoorSecuredStatus2222222222222222[DoorSecuredStatus2222222222222222["SECURED"] = 0] = "SECURED";
                                                              DoorSecuredStatus2222222222222222[DoorSecuredStatus2222222222222222["UNSECURED"] = 1] = "UNSECURED";
                                                              DoorSecuredStatus2222222222222222[DoorSecuredStatus2222222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                              return DoorSecuredStatus2222222222222222;
                                                            })(DoorSecuredStatus222222222222222 || {});
                                                            var DoorStatus222222222222222 = /* @__PURE__ */ ((DoorStatus2222222222222222) => {
                                                              DoorStatus2222222222222222[DoorStatus2222222222222222["CLOSED"] = 0] = "CLOSED";
                                                              DoorStatus2222222222222222[DoorStatus2222222222222222["OPENED"] = 1] = "OPENED";
                                                              DoorStatus2222222222222222[DoorStatus2222222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                              DoorStatus2222222222222222[DoorStatus2222222222222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                                                              DoorStatus2222222222222222[DoorStatus2222222222222222["UNUSED"] = 4] = "UNUSED";
                                                              DoorStatus2222222222222222[DoorStatus2222222222222222["NONE"] = 5] = "NONE";
                                                              DoorStatus2222222222222222[DoorStatus2222222222222222["CLOSING"] = 6] = "CLOSING";
                                                              DoorStatus2222222222222222[DoorStatus2222222222222222["OPENING"] = 7] = "OPENING";
                                                              DoorStatus2222222222222222[DoorStatus2222222222222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                                                              DoorStatus2222222222222222[DoorStatus2222222222222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                                                              return DoorStatus2222222222222222;
                                                            })(DoorStatus222222222222222 || {});
                                                            var DoorValue222222222222222 = /* @__PURE__ */ ((DoorValue2222222222222222) => {
                                                              DoorValue2222222222222222[DoorValue2222222222222222["LOCK"] = 0] = "LOCK";
                                                              DoorValue2222222222222222[DoorValue2222222222222222["UNLOCK"] = 1] = "UNLOCK";
                                                              DoorValue2222222222222222[DoorValue2222222222222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                                                              DoorValue2222222222222222[DoorValue2222222222222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                                                              return DoorValue2222222222222222;
                                                            })(DoorValue222222222222222 || {});
                                                            var EngineeringUnits222222222222222 = /* @__PURE__ */ ((EngineeringUnits2222222222222222) => {
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CURRENCY1"] = 105] = "CURRENCY1";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CURRENCY2"] = 106] = "CURRENCY2";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CURRENCY3"] = 107] = "CURRENCY3";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CURRENCY4"] = 108] = "CURRENCY4";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CURRENCY5"] = 109] = "CURRENCY5";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CURRENCY6"] = 110] = "CURRENCY6";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CURRENCY7"] = 111] = "CURRENCY7";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CURRENCY8"] = 112] = "CURRENCY8";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CURRENCY9"] = 113] = "CURRENCY9";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CURRENCY10"] = 114] = "CURRENCY10";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["AMPERES"] = 3] = "AMPERES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DECIBELS"] = 199] = "DECIBELS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["FARADS"] = 170] = "FARADS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["HENRYS"] = 171] = "HENRYS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["OHMS"] = 4] = "OHMS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["OHM_METERS"] = 172] = "OHM_METERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOHMS"] = 122] = "KILOHMS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGOHMS"] = 123] = "MEGOHMS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["SIEMENS"] = 173] = "SIEMENS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["TESLAS"] = 175] = "TESLAS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["VOLTS"] = 5] = "VOLTS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["WEBERS"] = 178] = "WEBERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["JOULES"] = 16] = "JOULES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOJOULES"] = 17] = "KILOJOULES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["BTUS"] = 20] = "BTUS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["THERMS"] = 21] = "THERMS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["TON_HOURS"] = 22] = "TON_HOURS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["NEWTON"] = 153] = "NEWTON";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["HERTZ"] = 27] = "HERTZ";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PER_HOUR"] = 131] = "PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MICROMETERS"] = 194] = "MICROMETERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOMETERS"] = 193] = "KILOMETERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["METERS"] = 31] = "METERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["INCHES"] = 32] = "INCHES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["FEET"] = 33] = "FEET";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CANDELAS"] = 179] = "CANDELAS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["LUMENS"] = 36] = "LUMENS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["LUXES"] = 37] = "LUXES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["GRAMS"] = 195] = "GRAMS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["TONS"] = 41] = "TONS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["WATTS"] = 47] = "WATTS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOWATTS"] = 48] = "KILOWATTS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PASCALS"] = 53] = "PASCALS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIBARS"] = 134] = "MILLIBARS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["BARS"] = 55] = "BARS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["YEARS"] = 67] = "YEARS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MONTHS"] = 68] = "MONTHS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["WEEKS"] = 69] = "WEEKS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DAYS"] = 70] = "DAYS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["HOURS"] = 71] = "HOURS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MINUTES"] = 72] = "MINUTES";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["SECONDS"] = 73] = "SECONDS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLILITERS"] = 197] = "MILLILITERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["LITERS"] = 82] = "LITERS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["US_GALLONS"] = 83] = "US_GALLONS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["NO_UNITS"] = 95] = "NO_UNITS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PERCENT"] = 98] = "PERCENT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PER_SECOND"] = 101] = "PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["RADIANS"] = 103] = "RADIANS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PER_MILLE"] = 207] = "PER_MILLE";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["BECQUERELS"] = 222] = "BECQUERELS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["GRAY"] = 225] = "GRAY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MICROGRAY"] = 227] = "MICROGRAY";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["SIEVERTS"] = 228] = "SIEVERTS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIREMS"] = 47814] = "MILLIREMS";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["PH"] = 234] = "PH";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                                                              EngineeringUnits2222222222222222[EngineeringUnits2222222222222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                                                              return EngineeringUnits2222222222222222;
                                                            })(EngineeringUnits222222222222222 || {});
                                                            var EscalatorFault222222222222222 = /* @__PURE__ */ ((EscalatorFault2222222222222222) => {
                                                              EscalatorFault2222222222222222[EscalatorFault2222222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                              EscalatorFault2222222222222222[EscalatorFault2222222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                              EscalatorFault2222222222222222[EscalatorFault2222222222222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                                                              EscalatorFault2222222222222222[EscalatorFault2222222222222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                                                              EscalatorFault2222222222222222[EscalatorFault2222222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                              EscalatorFault2222222222222222[EscalatorFault2222222222222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                                                              EscalatorFault2222222222222222[EscalatorFault2222222222222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                                                              EscalatorFault2222222222222222[EscalatorFault2222222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                              EscalatorFault2222222222222222[EscalatorFault2222222222222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                                                              return EscalatorFault2222222222222222;
                                                            })(EscalatorFault222222222222222 || {});
                                                            var EscalatorMode222222222222222 = /* @__PURE__ */ ((EscalatorMode2222222222222222) => {
                                                              EscalatorMode2222222222222222[EscalatorMode2222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                              EscalatorMode2222222222222222[EscalatorMode2222222222222222["STOP"] = 1] = "STOP";
                                                              EscalatorMode2222222222222222[EscalatorMode2222222222222222["UP"] = 2] = "UP";
                                                              EscalatorMode2222222222222222[EscalatorMode2222222222222222["DOWN"] = 3] = "DOWN";
                                                              EscalatorMode2222222222222222[EscalatorMode2222222222222222["INSPECTION"] = 4] = "INSPECTION";
                                                              EscalatorMode2222222222222222[EscalatorMode2222222222222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                                                              return EscalatorMode2222222222222222;
                                                            })(EscalatorMode222222222222222 || {});
                                                            var EscalatorOperationDirection222222222222222 = /* @__PURE__ */ ((EscalatorOperationDirection2222222222222222) => {
                                                              EscalatorOperationDirection2222222222222222[EscalatorOperationDirection2222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                              EscalatorOperationDirection2222222222222222[EscalatorOperationDirection2222222222222222["STOPPED"] = 1] = "STOPPED";
                                                              EscalatorOperationDirection2222222222222222[EscalatorOperationDirection2222222222222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                                                              EscalatorOperationDirection2222222222222222[EscalatorOperationDirection2222222222222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                                                              EscalatorOperationDirection2222222222222222[EscalatorOperationDirection2222222222222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                                                              EscalatorOperationDirection2222222222222222[EscalatorOperationDirection2222222222222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                                                              return EscalatorOperationDirection2222222222222222;
                                                            })(EscalatorOperationDirection222222222222222 || {});
                                                            var EventState222222222222222 = /* @__PURE__ */ ((EventState2222222222222222) => {
                                                              EventState2222222222222222[EventState2222222222222222["NORMAL"] = 0] = "NORMAL";
                                                              EventState2222222222222222[EventState2222222222222222["FAULT"] = 1] = "FAULT";
                                                              EventState2222222222222222[EventState2222222222222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                                                              EventState2222222222222222[EventState2222222222222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                                                              EventState2222222222222222[EventState2222222222222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                                                              EventState2222222222222222[EventState2222222222222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                                                              return EventState2222222222222222;
                                                            })(EventState222222222222222 || {});
                                                            var EventType222222222222222 = /* @__PURE__ */ ((EventType2222222222222222) => {
                                                              EventType2222222222222222[EventType2222222222222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                                                              EventType2222222222222222[EventType2222222222222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                                                              EventType2222222222222222[EventType2222222222222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                                                              EventType2222222222222222[EventType2222222222222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                                                              EventType2222222222222222[EventType2222222222222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                                                              EventType2222222222222222[EventType2222222222222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                                                              EventType2222222222222222[EventType2222222222222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                                                              EventType2222222222222222[EventType2222222222222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                                                              EventType2222222222222222[EventType2222222222222222["EXTENDED"] = 9] = "EXTENDED";
                                                              EventType2222222222222222[EventType2222222222222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                                                              EventType2222222222222222[EventType2222222222222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                                                              EventType2222222222222222[EventType2222222222222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                                                              EventType2222222222222222[EventType2222222222222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                                                              EventType2222222222222222[EventType2222222222222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                                                              EventType2222222222222222[EventType2222222222222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                                                              EventType2222222222222222[EventType2222222222222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                                                              EventType2222222222222222[EventType2222222222222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                                                              EventType2222222222222222[EventType2222222222222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                                                              EventType2222222222222222[EventType2222222222222222["NONE"] = 20] = "NONE";
                                                              EventType2222222222222222[EventType2222222222222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                                                              EventType2222222222222222[EventType2222222222222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                                                              return EventType2222222222222222;
                                                            })(EventType222222222222222 || {});
                                                            var FaultType222222222222222 = /* @__PURE__ */ ((FaultType2222222222222222) => {
                                                              FaultType2222222222222222[FaultType2222222222222222["NONE"] = 0] = "NONE";
                                                              FaultType2222222222222222[FaultType2222222222222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                                                              FaultType2222222222222222[FaultType2222222222222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                                                              FaultType2222222222222222[FaultType2222222222222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                                                              FaultType2222222222222222[FaultType2222222222222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                                                              FaultType2222222222222222[FaultType2222222222222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                                                              FaultType2222222222222222[FaultType2222222222222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                                                              FaultType2222222222222222[FaultType2222222222222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                                                              return FaultType2222222222222222;
                                                            })(FaultType222222222222222 || {});
                                                            var FileAccessMethod222222222222222 = /* @__PURE__ */ ((FileAccessMethod2222222222222222) => {
                                                              FileAccessMethod2222222222222222[FileAccessMethod2222222222222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                                                              FileAccessMethod2222222222222222[FileAccessMethod2222222222222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                                                              return FileAccessMethod2222222222222222;
                                                            })(FileAccessMethod222222222222222 || {});
                                                            var IPMode222222222222222 = /* @__PURE__ */ ((IPMode2222222222222222) => {
                                                              IPMode2222222222222222[IPMode2222222222222222["NORMAL"] = 0] = "NORMAL";
                                                              IPMode2222222222222222[IPMode2222222222222222["FOREIGN"] = 1] = "FOREIGN";
                                                              IPMode2222222222222222[IPMode2222222222222222["BBMD"] = 2] = "BBMD";
                                                              return IPMode2222222222222222;
                                                            })(IPMode222222222222222 || {});
                                                            var LifeSafetyMode222222222222222 = /* @__PURE__ */ ((LifeSafetyMode2222222222222222) => {
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["OFF"] = 0] = "OFF";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["ON"] = 1] = "ON";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["TEST"] = 2] = "TEST";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["MANNED"] = 3] = "MANNED";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["UNMANNED"] = 4] = "UNMANNED";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["ARMED"] = 5] = "ARMED";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["DISARMED"] = 6] = "DISARMED";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["PREARMED"] = 7] = "PREARMED";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["SLOW"] = 8] = "SLOW";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["FAST"] = 9] = "FAST";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["ENABLED"] = 11] = "ENABLED";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["DISABLED"] = 12] = "DISABLED";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                                                              LifeSafetyMode2222222222222222[LifeSafetyMode2222222222222222["DEFAULT"] = 14] = "DEFAULT";
                                                              return LifeSafetyMode2222222222222222;
                                                            })(LifeSafetyMode222222222222222 || {});
                                                            var LifeSafetyOperation222222222222222 = /* @__PURE__ */ ((LifeSafetyOperation2222222222222222) => {
                                                              LifeSafetyOperation2222222222222222[LifeSafetyOperation2222222222222222["NONE"] = 0] = "NONE";
                                                              LifeSafetyOperation2222222222222222[LifeSafetyOperation2222222222222222["SILENCE"] = 1] = "SILENCE";
                                                              LifeSafetyOperation2222222222222222[LifeSafetyOperation2222222222222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                                                              LifeSafetyOperation2222222222222222[LifeSafetyOperation2222222222222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                                                              LifeSafetyOperation2222222222222222[LifeSafetyOperation2222222222222222["RESET"] = 4] = "RESET";
                                                              LifeSafetyOperation2222222222222222[LifeSafetyOperation2222222222222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                                                              LifeSafetyOperation2222222222222222[LifeSafetyOperation2222222222222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                                                              LifeSafetyOperation2222222222222222[LifeSafetyOperation2222222222222222["UNSILENCE"] = 7] = "UNSILENCE";
                                                              LifeSafetyOperation2222222222222222[LifeSafetyOperation2222222222222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                                                              LifeSafetyOperation2222222222222222[LifeSafetyOperation2222222222222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                                                              return LifeSafetyOperation2222222222222222;
                                                            })(LifeSafetyOperation222222222222222 || {});
                                                            var LifeSafetyState222222222222222 = /* @__PURE__ */ ((LifeSafetyState2222222222222222) => {
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["QUIET"] = 0] = "QUIET";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["ALARM"] = 2] = "ALARM";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["FAULT"] = 3] = "FAULT";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["NOT_READY"] = 6] = "NOT_READY";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["ACTIVE"] = 7] = "ACTIVE";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["TAMPER"] = 8] = "TAMPER";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["HOLDUP"] = 13] = "HOLDUP";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["DURESS"] = 14] = "DURESS";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["ABNORMAL"] = 16] = "ABNORMAL";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["DELAYED"] = 18] = "DELAYED";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["BLOCKED"] = 19] = "BLOCKED";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                                                              LifeSafetyState2222222222222222[LifeSafetyState2222222222222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                                                              return LifeSafetyState2222222222222222;
                                                            })(LifeSafetyState222222222222222 || {});
                                                            var LiftCarDirection222222222222222 = /* @__PURE__ */ ((LiftCarDirection2222222222222222) => {
                                                              LiftCarDirection2222222222222222[LiftCarDirection2222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                              LiftCarDirection2222222222222222[LiftCarDirection2222222222222222["NONE"] = 1] = "NONE";
                                                              LiftCarDirection2222222222222222[LiftCarDirection2222222222222222["STOPPED"] = 2] = "STOPPED";
                                                              LiftCarDirection2222222222222222[LiftCarDirection2222222222222222["UP"] = 3] = "UP";
                                                              LiftCarDirection2222222222222222[LiftCarDirection2222222222222222["DOWN"] = 4] = "DOWN";
                                                              LiftCarDirection2222222222222222[LiftCarDirection2222222222222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                                                              return LiftCarDirection2222222222222222;
                                                            })(LiftCarDirection222222222222222 || {});
                                                            var LiftCarDoorCommand222222222222222 = /* @__PURE__ */ ((LiftCarDoorCommand2222222222222222) => {
                                                              LiftCarDoorCommand2222222222222222[LiftCarDoorCommand2222222222222222["NONE"] = 0] = "NONE";
                                                              LiftCarDoorCommand2222222222222222[LiftCarDoorCommand2222222222222222["OPEN"] = 1] = "OPEN";
                                                              LiftCarDoorCommand2222222222222222[LiftCarDoorCommand2222222222222222["CLOSE"] = 2] = "CLOSE";
                                                              return LiftCarDoorCommand2222222222222222;
                                                            })(LiftCarDoorCommand222222222222222 || {});
                                                            var LiftCarDriveStatus222222222222222 = /* @__PURE__ */ ((LiftCarDriveStatus2222222222222222) => {
                                                              LiftCarDriveStatus2222222222222222[LiftCarDriveStatus2222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                              LiftCarDriveStatus2222222222222222[LiftCarDriveStatus2222222222222222["STATIONARY"] = 1] = "STATIONARY";
                                                              LiftCarDriveStatus2222222222222222[LiftCarDriveStatus2222222222222222["BRAKING"] = 2] = "BRAKING";
                                                              LiftCarDriveStatus2222222222222222[LiftCarDriveStatus2222222222222222["ACCELERATE"] = 3] = "ACCELERATE";
                                                              LiftCarDriveStatus2222222222222222[LiftCarDriveStatus2222222222222222["DECELERATE"] = 4] = "DECELERATE";
                                                              LiftCarDriveStatus2222222222222222[LiftCarDriveStatus2222222222222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                                                              LiftCarDriveStatus2222222222222222[LiftCarDriveStatus2222222222222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                                                              LiftCarDriveStatus2222222222222222[LiftCarDriveStatus2222222222222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                                                              LiftCarDriveStatus2222222222222222[LiftCarDriveStatus2222222222222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                                                              LiftCarDriveStatus2222222222222222[LiftCarDriveStatus2222222222222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                                                              return LiftCarDriveStatus2222222222222222;
                                                            })(LiftCarDriveStatus222222222222222 || {});
                                                            var LiftCarMode222222222222222 = /* @__PURE__ */ ((LiftCarMode2222222222222222) => {
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["NORMAL"] = 1] = "NORMAL";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["VIP"] = 2] = "VIP";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["HOMING"] = 3] = "HOMING";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["PARKING"] = 4] = "PARKING";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["INSPECTION"] = 8] = "INSPECTION";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                                                              LiftCarMode2222222222222222[LiftCarMode2222222222222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                                                              return LiftCarMode2222222222222222;
                                                            })(LiftCarMode222222222222222 || {});
                                                            var LiftFault222222222222222 = /* @__PURE__ */ ((LiftFault2222222222222222) => {
                                                              LiftFault2222222222222222[LiftFault2222222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["START_FAILURE"] = 10] = "START_FAILURE";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                              LiftFault2222222222222222[LiftFault2222222222222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                                                              return LiftFault2222222222222222;
                                                            })(LiftFault222222222222222 || {});
                                                            var LiftGroupMode222222222222222 = /* @__PURE__ */ ((LiftGroupMode2222222222222222) => {
                                                              LiftGroupMode2222222222222222[LiftGroupMode2222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                              LiftGroupMode2222222222222222[LiftGroupMode2222222222222222["NORMAL"] = 1] = "NORMAL";
                                                              LiftGroupMode2222222222222222[LiftGroupMode2222222222222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                                                              LiftGroupMode2222222222222222[LiftGroupMode2222222222222222["TWO_WAY"] = 3] = "TWO_WAY";
                                                              LiftGroupMode2222222222222222[LiftGroupMode2222222222222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                                                              LiftGroupMode2222222222222222[LiftGroupMode2222222222222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                                                              LiftGroupMode2222222222222222[LiftGroupMode2222222222222222["UP_PEAK"] = 6] = "UP_PEAK";
                                                              return LiftGroupMode2222222222222222;
                                                            })(LiftGroupMode222222222222222 || {});
                                                            var LightingInProgress222222222222222 = /* @__PURE__ */ ((LightingInProgress2222222222222222) => {
                                                              LightingInProgress2222222222222222[LightingInProgress2222222222222222["IDLE"] = 0] = "IDLE";
                                                              LightingInProgress2222222222222222[LightingInProgress2222222222222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                                                              LightingInProgress2222222222222222[LightingInProgress2222222222222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                                                              LightingInProgress2222222222222222[LightingInProgress2222222222222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                                                              LightingInProgress2222222222222222[LightingInProgress2222222222222222["OTHER"] = 4] = "OTHER";
                                                              return LightingInProgress2222222222222222;
                                                            })(LightingInProgress222222222222222 || {});
                                                            var LightingOperation222222222222222 = /* @__PURE__ */ ((LightingOperation2222222222222222) => {
                                                              LightingOperation2222222222222222[LightingOperation2222222222222222["NONE"] = 0] = "NONE";
                                                              LightingOperation2222222222222222[LightingOperation2222222222222222["FADE_TO"] = 1] = "FADE_TO";
                                                              LightingOperation2222222222222222[LightingOperation2222222222222222["RAMP_TO"] = 2] = "RAMP_TO";
                                                              LightingOperation2222222222222222[LightingOperation2222222222222222["STEP_UP"] = 3] = "STEP_UP";
                                                              LightingOperation2222222222222222[LightingOperation2222222222222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                                                              LightingOperation2222222222222222[LightingOperation2222222222222222["STEP_ON"] = 5] = "STEP_ON";
                                                              LightingOperation2222222222222222[LightingOperation2222222222222222["STEP_OFF"] = 6] = "STEP_OFF";
                                                              LightingOperation2222222222222222[LightingOperation2222222222222222["WARN"] = 7] = "WARN";
                                                              LightingOperation2222222222222222[LightingOperation2222222222222222["WARN_OFF"] = 8] = "WARN_OFF";
                                                              LightingOperation2222222222222222[LightingOperation2222222222222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                                                              LightingOperation2222222222222222[LightingOperation2222222222222222["STOP"] = 10] = "STOP";
                                                              return LightingOperation2222222222222222;
                                                            })(LightingOperation222222222222222 || {});
                                                            var LightingTransition222222222222222 = /* @__PURE__ */ ((LightingTransition2222222222222222) => {
                                                              LightingTransition2222222222222222[LightingTransition2222222222222222["NONE"] = 0] = "NONE";
                                                              LightingTransition2222222222222222[LightingTransition2222222222222222["FADE"] = 1] = "FADE";
                                                              LightingTransition2222222222222222[LightingTransition2222222222222222["RAMP"] = 2] = "RAMP";
                                                              return LightingTransition2222222222222222;
                                                            })(LightingTransition222222222222222 || {});
                                                            var LockStatus222222222222222 = /* @__PURE__ */ ((LockStatus2222222222222222) => {
                                                              LockStatus2222222222222222[LockStatus2222222222222222["LOCKED"] = 0] = "LOCKED";
                                                              LockStatus2222222222222222[LockStatus2222222222222222["UNLOCKED"] = 1] = "UNLOCKED";
                                                              LockStatus2222222222222222[LockStatus2222222222222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                                                              LockStatus2222222222222222[LockStatus2222222222222222["UNUSED"] = 3] = "UNUSED";
                                                              LockStatus2222222222222222[LockStatus2222222222222222["UNKNOWN"] = 4] = "UNKNOWN";
                                                              return LockStatus2222222222222222;
                                                            })(LockStatus222222222222222 || {});
                                                            var LoggingType222222222222222 = /* @__PURE__ */ ((LoggingType2222222222222222) => {
                                                              LoggingType2222222222222222[LoggingType2222222222222222["POLLED"] = 0] = "POLLED";
                                                              LoggingType2222222222222222[LoggingType2222222222222222["COV"] = 1] = "COV";
                                                              LoggingType2222222222222222[LoggingType2222222222222222["TRIGGERED"] = 2] = "TRIGGERED";
                                                              return LoggingType2222222222222222;
                                                            })(LoggingType222222222222222 || {});
                                                            var Maintenance222222222222222 = /* @__PURE__ */ ((Maintenance2222222222222222) => {
                                                              Maintenance2222222222222222[Maintenance2222222222222222["NONE"] = 0] = "NONE";
                                                              Maintenance2222222222222222[Maintenance2222222222222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                                                              Maintenance2222222222222222[Maintenance2222222222222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                                                              Maintenance2222222222222222[Maintenance2222222222222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                                                              return Maintenance2222222222222222;
                                                            })(Maintenance222222222222222 || {});
                                                            var NetworkNumberQuality222222222222222 = /* @__PURE__ */ ((NetworkNumberQuality2222222222222222) => {
                                                              NetworkNumberQuality2222222222222222[NetworkNumberQuality2222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                              NetworkNumberQuality2222222222222222[NetworkNumberQuality2222222222222222["LEARNED"] = 1] = "LEARNED";
                                                              NetworkNumberQuality2222222222222222[NetworkNumberQuality2222222222222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                                                              NetworkNumberQuality2222222222222222[NetworkNumberQuality2222222222222222["CONFIGURED"] = 3] = "CONFIGURED";
                                                              return NetworkNumberQuality2222222222222222;
                                                            })(NetworkNumberQuality222222222222222 || {});
                                                            var NetworkPortCommand222222222222222 = /* @__PURE__ */ ((NetworkPortCommand2222222222222222) => {
                                                              NetworkPortCommand2222222222222222[NetworkPortCommand2222222222222222["IDLE"] = 0] = "IDLE";
                                                              NetworkPortCommand2222222222222222[NetworkPortCommand2222222222222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                                                              NetworkPortCommand2222222222222222[NetworkPortCommand2222222222222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                                                              NetworkPortCommand2222222222222222[NetworkPortCommand2222222222222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                                                              NetworkPortCommand2222222222222222[NetworkPortCommand2222222222222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                                                              NetworkPortCommand2222222222222222[NetworkPortCommand2222222222222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                                                              NetworkPortCommand2222222222222222[NetworkPortCommand2222222222222222["DISCONNECT"] = 6] = "DISCONNECT";
                                                              NetworkPortCommand2222222222222222[NetworkPortCommand2222222222222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                                                              return NetworkPortCommand2222222222222222;
                                                            })(NetworkPortCommand222222222222222 || {});
                                                            var NetworkType222222222222222 = /* @__PURE__ */ ((NetworkType2222222222222222) => {
                                                              NetworkType2222222222222222[NetworkType2222222222222222["ETHERNET"] = 0] = "ETHERNET";
                                                              NetworkType2222222222222222[NetworkType2222222222222222["ARCNET"] = 1] = "ARCNET";
                                                              NetworkType2222222222222222[NetworkType2222222222222222["MSTP"] = 2] = "MSTP";
                                                              NetworkType2222222222222222[NetworkType2222222222222222["PTP"] = 3] = "PTP";
                                                              NetworkType2222222222222222[NetworkType2222222222222222["LONTALK"] = 4] = "LONTALK";
                                                              NetworkType2222222222222222[NetworkType2222222222222222["IPV4"] = 5] = "IPV4";
                                                              NetworkType2222222222222222[NetworkType2222222222222222["ZIGBEE"] = 6] = "ZIGBEE";
                                                              NetworkType2222222222222222[NetworkType2222222222222222["VIRTUAL"] = 7] = "VIRTUAL";
                                                              NetworkType2222222222222222[NetworkType2222222222222222["IPV6"] = 9] = "IPV6";
                                                              NetworkType2222222222222222[NetworkType2222222222222222["SERIAL"] = 10] = "SERIAL";
                                                              return NetworkType2222222222222222;
                                                            })(NetworkType222222222222222 || {});
                                                            var NodeType222222222222222 = /* @__PURE__ */ ((NodeType2222222222222222) => {
                                                              NodeType2222222222222222[NodeType2222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                              NodeType2222222222222222[NodeType2222222222222222["SYSTEM"] = 1] = "SYSTEM";
                                                              NodeType2222222222222222[NodeType2222222222222222["NETWORK"] = 2] = "NETWORK";
                                                              NodeType2222222222222222[NodeType2222222222222222["DEVICE"] = 3] = "DEVICE";
                                                              NodeType2222222222222222[NodeType2222222222222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                                                              NodeType2222222222222222[NodeType2222222222222222["AREA"] = 5] = "AREA";
                                                              NodeType2222222222222222[NodeType2222222222222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                                                              NodeType2222222222222222[NodeType2222222222222222["POINT"] = 7] = "POINT";
                                                              NodeType2222222222222222[NodeType2222222222222222["COLLECTION"] = 8] = "COLLECTION";
                                                              NodeType2222222222222222[NodeType2222222222222222["PROPERTY"] = 9] = "PROPERTY";
                                                              NodeType2222222222222222[NodeType2222222222222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                                                              NodeType2222222222222222[NodeType2222222222222222["OTHER"] = 11] = "OTHER";
                                                              NodeType2222222222222222[NodeType2222222222222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                                                              NodeType2222222222222222[NodeType2222222222222222["BUILDING"] = 13] = "BUILDING";
                                                              NodeType2222222222222222[NodeType2222222222222222["FLOOR"] = 14] = "FLOOR";
                                                              NodeType2222222222222222[NodeType2222222222222222["SECTION"] = 15] = "SECTION";
                                                              NodeType2222222222222222[NodeType2222222222222222["MODULE"] = 16] = "MODULE";
                                                              NodeType2222222222222222[NodeType2222222222222222["TREE"] = 17] = "TREE";
                                                              NodeType2222222222222222[NodeType2222222222222222["MEMBER"] = 18] = "MEMBER";
                                                              NodeType2222222222222222[NodeType2222222222222222["PROTOCOL"] = 19] = "PROTOCOL";
                                                              NodeType2222222222222222[NodeType2222222222222222["ROOM"] = 20] = "ROOM";
                                                              NodeType2222222222222222[NodeType2222222222222222["ZONE"] = 21] = "ZONE";
                                                              return NodeType2222222222222222;
                                                            })(NodeType222222222222222 || {});
                                                            var NotifyType222222222222222 = /* @__PURE__ */ ((NotifyType2222222222222222) => {
                                                              NotifyType2222222222222222[NotifyType2222222222222222["ALARM"] = 0] = "ALARM";
                                                              NotifyType2222222222222222[NotifyType2222222222222222["EVENT"] = 1] = "EVENT";
                                                              NotifyType2222222222222222[NotifyType2222222222222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                                                              return NotifyType2222222222222222;
                                                            })(NotifyType222222222222222 || {});
                                                            var ObjectType222222222222222 = /* @__PURE__ */ ((ObjectType2222222222222222) => {
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["COMMAND"] = 7] = "COMMAND";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["DEVICE"] = 8] = "DEVICE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["FILE"] = 10] = "FILE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["GROUP"] = 11] = "GROUP";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["LIFT"] = 59] = "LIFT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["LOOP"] = 12] = "LOOP";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["TIMER"] = 31] = "TIMER";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                              ObjectType2222222222222222[ObjectType2222222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                              return ObjectType2222222222222222;
                                                            })(ObjectType222222222222222 || {});
                                                            var Polarity222222222222222 = /* @__PURE__ */ ((Polarity2222222222222222) => {
                                                              Polarity2222222222222222[Polarity2222222222222222["NORMAL"] = 0] = "NORMAL";
                                                              Polarity2222222222222222[Polarity2222222222222222["REVERSE"] = 1] = "REVERSE";
                                                              return Polarity2222222222222222;
                                                            })(Polarity222222222222222 || {});
                                                            var ProgramError222222222222222 = /* @__PURE__ */ ((ProgramError2222222222222222) => {
                                                              ProgramError2222222222222222[ProgramError2222222222222222["NORMAL"] = 0] = "NORMAL";
                                                              ProgramError2222222222222222[ProgramError2222222222222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                                                              ProgramError2222222222222222[ProgramError2222222222222222["INTERNAL"] = 2] = "INTERNAL";
                                                              ProgramError2222222222222222[ProgramError2222222222222222["PROGRAM"] = 3] = "PROGRAM";
                                                              ProgramError2222222222222222[ProgramError2222222222222222["OTHER"] = 4] = "OTHER";
                                                              return ProgramError2222222222222222;
                                                            })(ProgramError222222222222222 || {});
                                                            var ProgramRequest222222222222222 = /* @__PURE__ */ ((ProgramRequest2222222222222222) => {
                                                              ProgramRequest2222222222222222[ProgramRequest2222222222222222["READY"] = 0] = "READY";
                                                              ProgramRequest2222222222222222[ProgramRequest2222222222222222["LOAD"] = 1] = "LOAD";
                                                              ProgramRequest2222222222222222[ProgramRequest2222222222222222["RUN"] = 2] = "RUN";
                                                              ProgramRequest2222222222222222[ProgramRequest2222222222222222["HALT"] = 3] = "HALT";
                                                              ProgramRequest2222222222222222[ProgramRequest2222222222222222["RESTART"] = 4] = "RESTART";
                                                              ProgramRequest2222222222222222[ProgramRequest2222222222222222["UNLOAD"] = 5] = "UNLOAD";
                                                              return ProgramRequest2222222222222222;
                                                            })(ProgramRequest222222222222222 || {});
                                                            var ProgramState222222222222222 = /* @__PURE__ */ ((ProgramState2222222222222222) => {
                                                              ProgramState2222222222222222[ProgramState2222222222222222["IDLE"] = 0] = "IDLE";
                                                              ProgramState2222222222222222[ProgramState2222222222222222["LOADING"] = 1] = "LOADING";
                                                              ProgramState2222222222222222[ProgramState2222222222222222["RUNNING"] = 2] = "RUNNING";
                                                              ProgramState2222222222222222[ProgramState2222222222222222["WAITING"] = 3] = "WAITING";
                                                              ProgramState2222222222222222[ProgramState2222222222222222["HALTED"] = 4] = "HALTED";
                                                              ProgramState2222222222222222[ProgramState2222222222222222["UNLOADING"] = 5] = "UNLOADING";
                                                              return ProgramState2222222222222222;
                                                            })(ProgramState222222222222222 || {});
                                                            var PropertyIdentifier222222222222222 = /* @__PURE__ */ ((PropertyIdentifier2222222222222222) => {
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACTION"] = 2] = "ACTION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ALL"] = 8] = "ALL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ARCHIVE"] = 13] = "ARCHIVE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BIAS"] = 14] = "BIAS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BIT_MASK"] = 342] = "BIT_MASK";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CAR_MODE"] = 456] = "CAR_MODE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["COMMAND"] = 417] = "COMMAND";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["COUNT"] = 177] = "COUNT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DATE_LIST"] = 23] = "DATE_LIST";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DEADBAND"] = 25] = "DEADBAND";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ENABLE"] = 133] = "ENABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["GROUP_ID"] = 465] = "GROUP_ID";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["IS_UTC"] = 344] = "IS_UTC";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["KEY_SETS"] = 330] = "KEY_SETS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOCATION"] = 58] = "LOCATION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOCKOUT"] = 282] = "LOCKOUT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MEMBERS"] = 286] = "MEMBERS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MODE"] = 160] = "MODE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OPTIONAL"] = 80] = "OPTIONAL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["POLARITY"] = 84] = "POLARITY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["POWER"] = 384] = "POWER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["POWER_MODE"] = 479] = "POWER_MODE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PRESCALE"] = 185] = "PRESCALE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PRIORITY"] = 86] = "PRIORITY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["READ_ONLY"] = 99] = "READ_ONLY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["RELIABILITY"] = 103] = "RELIABILITY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["REPRESENTS"] = 491] = "REPRESENTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["REQUIRED"] = 105] = "REQUIRED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["RESOLUTION"] = 106] = "RESOLUTION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SCALE"] = 187] = "SCALE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SETPOINT"] = 108] = "SETPOINT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SETTING"] = 162] = "SETTING";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SILENCED"] = 163] = "SILENCED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["START_TIME"] = 142] = "START_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["STOP_TIME"] = 143] = "STOP_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TAGS"] = 486] = "TAGS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TRANSITION"] = 385] = "TRANSITION";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["TRIGGER"] = 205] = "TRIGGER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["UNITS"] = 117] = "UNITS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["USER_NAME"] = 317] = "USER_NAME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["USER_TYPE"] = 318] = "USER_TYPE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["VALUE_SET"] = 191] = "VALUE_SET";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                                                              PropertyIdentifier2222222222222222[PropertyIdentifier2222222222222222["ZONE_TO"] = 321] = "ZONE_TO";
                                                              return PropertyIdentifier2222222222222222;
                                                            })(PropertyIdentifier222222222222222 || {});
                                                            var ProtocolLevel222222222222222 = /* @__PURE__ */ ((ProtocolLevel2222222222222222) => {
                                                              ProtocolLevel2222222222222222[ProtocolLevel2222222222222222["PHYSICAL"] = 0] = "PHYSICAL";
                                                              ProtocolLevel2222222222222222[ProtocolLevel2222222222222222["PROTOCOL"] = 1] = "PROTOCOL";
                                                              ProtocolLevel2222222222222222[ProtocolLevel2222222222222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                                                              ProtocolLevel2222222222222222[ProtocolLevel2222222222222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                                                              return ProtocolLevel2222222222222222;
                                                            })(ProtocolLevel222222222222222 || {});
                                                            var Relationship222222222222222 = /* @__PURE__ */ ((Relationship2222222222222222) => {
                                                              Relationship2222222222222222[Relationship2222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                              Relationship2222222222222222[Relationship2222222222222222["DEFAULT"] = 1] = "DEFAULT";
                                                              Relationship2222222222222222[Relationship2222222222222222["CONTAINS"] = 2] = "CONTAINS";
                                                              Relationship2222222222222222[Relationship2222222222222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                                                              Relationship2222222222222222[Relationship2222222222222222["USES"] = 4] = "USES";
                                                              Relationship2222222222222222[Relationship2222222222222222["USED_BY"] = 5] = "USED_BY";
                                                              Relationship2222222222222222[Relationship2222222222222222["COMMANDS"] = 6] = "COMMANDS";
                                                              Relationship2222222222222222[Relationship2222222222222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                                                              Relationship2222222222222222[Relationship2222222222222222["ADJUSTS"] = 8] = "ADJUSTS";
                                                              Relationship2222222222222222[Relationship2222222222222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                                                              Relationship2222222222222222[Relationship2222222222222222["INGRESS"] = 10] = "INGRESS";
                                                              Relationship2222222222222222[Relationship2222222222222222["EGRESS"] = 11] = "EGRESS";
                                                              Relationship2222222222222222[Relationship2222222222222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                                                              Relationship2222222222222222[Relationship2222222222222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                                                              Relationship2222222222222222[Relationship2222222222222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                                                              Relationship2222222222222222[Relationship2222222222222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                                                              Relationship2222222222222222[Relationship2222222222222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                                                              Relationship2222222222222222[Relationship2222222222222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                                                              Relationship2222222222222222[Relationship2222222222222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                                                              Relationship2222222222222222[Relationship2222222222222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                                                              Relationship2222222222222222[Relationship2222222222222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                                                              Relationship2222222222222222[Relationship2222222222222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                                                              Relationship2222222222222222[Relationship2222222222222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                                                              Relationship2222222222222222[Relationship2222222222222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                                                              Relationship2222222222222222[Relationship2222222222222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                                                              Relationship2222222222222222[Relationship2222222222222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                                                              Relationship2222222222222222[Relationship2222222222222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                                                              Relationship2222222222222222[Relationship2222222222222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                                                              Relationship2222222222222222[Relationship2222222222222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                                                              Relationship2222222222222222[Relationship2222222222222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                                                              return Relationship2222222222222222;
                                                            })(Relationship222222222222222 || {});
                                                            var Reliability222222222222222 = /* @__PURE__ */ ((Reliability2222222222222222) => {
                                                              Reliability2222222222222222[Reliability2222222222222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                                                              Reliability2222222222222222[Reliability2222222222222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                                                              Reliability2222222222222222[Reliability2222222222222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                                                              Reliability2222222222222222[Reliability2222222222222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                                                              Reliability2222222222222222[Reliability2222222222222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                                                              Reliability2222222222222222[Reliability2222222222222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                                                              Reliability2222222222222222[Reliability2222222222222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                                                              Reliability2222222222222222[Reliability2222222222222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                                                              Reliability2222222222222222[Reliability2222222222222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                                                              Reliability2222222222222222[Reliability2222222222222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                                                              Reliability2222222222222222[Reliability2222222222222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                                                              Reliability2222222222222222[Reliability2222222222222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                                                              Reliability2222222222222222[Reliability2222222222222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                                                              Reliability2222222222222222[Reliability2222222222222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                                                              Reliability2222222222222222[Reliability2222222222222222["TRIPPED"] = 15] = "TRIPPED";
                                                              Reliability2222222222222222[Reliability2222222222222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                                                              Reliability2222222222222222[Reliability2222222222222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                                                              Reliability2222222222222222[Reliability2222222222222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                                                              Reliability2222222222222222[Reliability2222222222222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                                                              Reliability2222222222222222[Reliability2222222222222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                                                              Reliability2222222222222222[Reliability2222222222222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                                                              Reliability2222222222222222[Reliability2222222222222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                                                              Reliability2222222222222222[Reliability2222222222222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                                                              Reliability2222222222222222[Reliability2222222222222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                                                              return Reliability2222222222222222;
                                                            })(Reliability222222222222222 || {});
                                                            var RestartReason222222222222222 = /* @__PURE__ */ ((RestartReason2222222222222222) => {
                                                              RestartReason2222222222222222[RestartReason2222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                              RestartReason2222222222222222[RestartReason2222222222222222["COLDSTART"] = 1] = "COLDSTART";
                                                              RestartReason2222222222222222[RestartReason2222222222222222["WARMSTART"] = 2] = "WARMSTART";
                                                              RestartReason2222222222222222[RestartReason2222222222222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                                                              RestartReason2222222222222222[RestartReason2222222222222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                                                              RestartReason2222222222222222[RestartReason2222222222222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                                                              RestartReason2222222222222222[RestartReason2222222222222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                                                              RestartReason2222222222222222[RestartReason2222222222222222["SUSPENDED"] = 7] = "SUSPENDED";
                                                              RestartReason2222222222222222[RestartReason2222222222222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                                                              return RestartReason2222222222222222;
                                                            })(RestartReason222222222222222 || {});
                                                            var SecurityLevel222222222222222 = /* @__PURE__ */ ((SecurityLevel2222222222222222) => {
                                                              SecurityLevel2222222222222222[SecurityLevel2222222222222222["INCAPABLE"] = 0] = "INCAPABLE";
                                                              SecurityLevel2222222222222222[SecurityLevel2222222222222222["PLAIN"] = 1] = "PLAIN";
                                                              SecurityLevel2222222222222222[SecurityLevel2222222222222222["SIGNED"] = 2] = "SIGNED";
                                                              SecurityLevel2222222222222222[SecurityLevel2222222222222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                                                              SecurityLevel2222222222222222[SecurityLevel2222222222222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                                                              SecurityLevel2222222222222222[SecurityLevel2222222222222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                                                              return SecurityLevel2222222222222222;
                                                            })(SecurityLevel222222222222222 || {});
                                                            var SecurityPolicy222222222222222 = /* @__PURE__ */ ((SecurityPolicy2222222222222222) => {
                                                              SecurityPolicy2222222222222222[SecurityPolicy2222222222222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                                                              SecurityPolicy2222222222222222[SecurityPolicy2222222222222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                                                              SecurityPolicy2222222222222222[SecurityPolicy2222222222222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                                                              SecurityPolicy2222222222222222[SecurityPolicy2222222222222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                                                              return SecurityPolicy2222222222222222;
                                                            })(SecurityPolicy222222222222222 || {});
                                                            var Segmentation222222222222222 = /* @__PURE__ */ ((Segmentation2222222222222222) => {
                                                              Segmentation2222222222222222[Segmentation2222222222222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                                                              Segmentation2222222222222222[Segmentation2222222222222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                                                              Segmentation2222222222222222[Segmentation2222222222222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                                                              Segmentation2222222222222222[Segmentation2222222222222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                                                              return Segmentation2222222222222222;
                                                            })(Segmentation222222222222222 || {});
                                                            var ShedState222222222222222 = /* @__PURE__ */ ((ShedState2222222222222222) => {
                                                              ShedState2222222222222222[ShedState2222222222222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                                                              ShedState2222222222222222[ShedState2222222222222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                                                              ShedState2222222222222222[ShedState2222222222222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                                                              ShedState2222222222222222[ShedState2222222222222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                                                              return ShedState2222222222222222;
                                                            })(ShedState222222222222222 || {});
                                                            var SilencedState222222222222222 = /* @__PURE__ */ ((SilencedState2222222222222222) => {
                                                              SilencedState2222222222222222[SilencedState2222222222222222["UNSILENCED"] = 0] = "UNSILENCED";
                                                              SilencedState2222222222222222[SilencedState2222222222222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                                                              SilencedState2222222222222222[SilencedState2222222222222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                                                              SilencedState2222222222222222[SilencedState2222222222222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                                                              return SilencedState2222222222222222;
                                                            })(SilencedState222222222222222 || {});
                                                            var TimerState222222222222222 = /* @__PURE__ */ ((TimerState2222222222222222) => {
                                                              TimerState2222222222222222[TimerState2222222222222222["IDLE"] = 0] = "IDLE";
                                                              TimerState2222222222222222[TimerState2222222222222222["RUNNING"] = 1] = "RUNNING";
                                                              TimerState2222222222222222[TimerState2222222222222222["EXPIRED"] = 2] = "EXPIRED";
                                                              return TimerState2222222222222222;
                                                            })(TimerState222222222222222 || {});
                                                            var TimerTransition222222222222222 = /* @__PURE__ */ ((TimerTransition2222222222222222) => {
                                                              TimerTransition2222222222222222[TimerTransition2222222222222222["NONE"] = 0] = "NONE";
                                                              TimerTransition2222222222222222[TimerTransition2222222222222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                                                              TimerTransition2222222222222222[TimerTransition2222222222222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                                                              TimerTransition2222222222222222[TimerTransition2222222222222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                                                              TimerTransition2222222222222222[TimerTransition2222222222222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                                                              TimerTransition2222222222222222[TimerTransition2222222222222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                                                              TimerTransition2222222222222222[TimerTransition2222222222222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                                                              TimerTransition2222222222222222[TimerTransition2222222222222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                                                              return TimerTransition2222222222222222;
                                                            })(TimerTransition222222222222222 || {});
                                                            var VTClass222222222222222 = /* @__PURE__ */ ((VTClass2222222222222222) => {
                                                              VTClass2222222222222222[VTClass2222222222222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                                                              VTClass2222222222222222[VTClass2222222222222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                                                              VTClass2222222222222222[VTClass2222222222222222["DEC_VT52"] = 2] = "DEC_VT52";
                                                              VTClass2222222222222222[VTClass2222222222222222["DEC_VT100"] = 3] = "DEC_VT100";
                                                              VTClass2222222222222222[VTClass2222222222222222["DEC_VT220"] = 4] = "DEC_VT220";
                                                              VTClass2222222222222222[VTClass2222222222222222["HP_700_94"] = 5] = "HP_700_94";
                                                              VTClass2222222222222222[VTClass2222222222222222["IBM_3130"] = 6] = "IBM_3130";
                                                              return VTClass2222222222222222;
                                                            })(VTClass222222222222222 || {});
                                                            var WriteStatus222222222222222 = /* @__PURE__ */ ((WriteStatus2222222222222222) => {
                                                              WriteStatus2222222222222222[WriteStatus2222222222222222["IDLE"] = 0] = "IDLE";
                                                              WriteStatus2222222222222222[WriteStatus2222222222222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                                                              WriteStatus2222222222222222[WriteStatus2222222222222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                                                              WriteStatus2222222222222222[WriteStatus2222222222222222["FAILED"] = 3] = "FAILED";
                                                              return WriteStatus2222222222222222;
                                                            })(WriteStatus222222222222222 || {});
                                                            var DaysOfWeek222222222222222 = /* @__PURE__ */ ((DaysOfWeek2222222222222222) => {
                                                              DaysOfWeek2222222222222222[DaysOfWeek2222222222222222["MONDAY"] = 0] = "MONDAY";
                                                              DaysOfWeek2222222222222222[DaysOfWeek2222222222222222["TUESDAY"] = 1] = "TUESDAY";
                                                              DaysOfWeek2222222222222222[DaysOfWeek2222222222222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                                                              DaysOfWeek2222222222222222[DaysOfWeek2222222222222222["THURSDAY"] = 3] = "THURSDAY";
                                                              DaysOfWeek2222222222222222[DaysOfWeek2222222222222222["FRIDAY"] = 4] = "FRIDAY";
                                                              DaysOfWeek2222222222222222[DaysOfWeek2222222222222222["SATURDAY"] = 5] = "SATURDAY";
                                                              DaysOfWeek2222222222222222[DaysOfWeek2222222222222222["SUNDAY"] = 6] = "SUNDAY";
                                                              return DaysOfWeek2222222222222222;
                                                            })(DaysOfWeek222222222222222 || {});
                                                            var EventTransitionBits222222222222222 = /* @__PURE__ */ ((EventTransitionBits2222222222222222) => {
                                                              EventTransitionBits2222222222222222[EventTransitionBits2222222222222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                                                              EventTransitionBits2222222222222222[EventTransitionBits2222222222222222["TO_FAULT"] = 1] = "TO_FAULT";
                                                              EventTransitionBits2222222222222222[EventTransitionBits2222222222222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                                                              return EventTransitionBits2222222222222222;
                                                            })(EventTransitionBits222222222222222 || {});
                                                            var LimitEnable222222222222222 = /* @__PURE__ */ ((LimitEnable2222222222222222) => {
                                                              LimitEnable2222222222222222[LimitEnable2222222222222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                                                              LimitEnable2222222222222222[LimitEnable2222222222222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                                                              return LimitEnable2222222222222222;
                                                            })(LimitEnable222222222222222 || {});
                                                            var LogStatus222222222222222 = /* @__PURE__ */ ((LogStatus2222222222222222) => {
                                                              LogStatus2222222222222222[LogStatus2222222222222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                                                              LogStatus2222222222222222[LogStatus2222222222222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                                                              LogStatus2222222222222222[LogStatus2222222222222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                                                              return LogStatus2222222222222222;
                                                            })(LogStatus222222222222222 || {});
                                                            var ObjectTypesSupported222222222222222 = /* @__PURE__ */ ((ObjectTypesSupported2222222222222222) => {
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["COMMAND"] = 7] = "COMMAND";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["DEVICE"] = 8] = "DEVICE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["FILE"] = 10] = "FILE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["GROUP"] = 11] = "GROUP";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["LOOP"] = 12] = "LOOP";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["TIMER"] = 31] = "TIMER";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                              ObjectTypesSupported2222222222222222[ObjectTypesSupported2222222222222222["LIFT"] = 59] = "LIFT";
                                                              return ObjectTypesSupported2222222222222222;
                                                            })(ObjectTypesSupported222222222222222 || {});
                                                            var ResultFlags222222222222222 = /* @__PURE__ */ ((ResultFlags2222222222222222) => {
                                                              ResultFlags2222222222222222[ResultFlags2222222222222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                                                              ResultFlags2222222222222222[ResultFlags2222222222222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                                                              ResultFlags2222222222222222[ResultFlags2222222222222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                                                              return ResultFlags2222222222222222;
                                                            })(ResultFlags222222222222222 || {});
                                                            var ServicesSupported222222222222222 = /* @__PURE__ */ ((ServicesSupported2222222222222222) => {
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["I_AM"] = 26] = "I_AM";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["I_HAVE"] = 27] = "I_HAVE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["WHO_HAS"] = 33] = "WHO_HAS";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["WHO_IS"] = 34] = "WHO_IS";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["READ_RANGE"] = 35] = "READ_RANGE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                              ServicesSupported2222222222222222[ServicesSupported2222222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                              return ServicesSupported2222222222222222;
                                                            })(ServicesSupported222222222222222 || {});
                                                            var StatusFlags222222222222222 = /* @__PURE__ */ ((StatusFlags2222222222222222) => {
                                                              StatusFlags2222222222222222[StatusFlags2222222222222222["IN_ALARM"] = 0] = "IN_ALARM";
                                                              StatusFlags2222222222222222[StatusFlags2222222222222222["FAULT"] = 1] = "FAULT";
                                                              StatusFlags2222222222222222[StatusFlags2222222222222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                                                              StatusFlags2222222222222222[StatusFlags2222222222222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                                                              return StatusFlags2222222222222222;
                                                            })(StatusFlags222222222222222 || {});
                                                            var ApplicationTag222222222222222 = /* @__PURE__ */ ((ApplicationTag2222222222222222) => {
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["NULL"] = 0] = "NULL";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["BOOLEAN"] = 1] = "BOOLEAN";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["REAL"] = 4] = "REAL";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["DOUBLE"] = 5] = "DOUBLE";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["BIT_STRING"] = 8] = "BIT_STRING";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["ENUMERATED"] = 9] = "ENUMERATED";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["DATE"] = 10] = "DATE";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["TIME"] = 11] = "TIME";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["DATERANGE"] = 102] = "DATERANGE";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["DATETIME"] = 103] = "DATETIME";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["ERROR"] = 105] = "ERROR";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["DESTINATION"] = 109] = "DESTINATION";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["RECIPIENT"] = 110] = "RECIPIENT";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                                                              ApplicationTag2222222222222222[ApplicationTag2222222222222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                                                              return ApplicationTag2222222222222222;
                                                            })(ApplicationTag222222222222222 || {});
                                                            var ApplicationTagName222222222222222 = invertEnum222222222222222(
                                                              ApplicationTag222222222222222
                                                            );
                                                            var BvlcResultFormat222222222222222 = /* @__PURE__ */ ((BvlcResultFormat2222222222222222) => {
                                                              BvlcResultFormat2222222222222222[BvlcResultFormat2222222222222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                                                              BvlcResultFormat2222222222222222[BvlcResultFormat2222222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                              BvlcResultFormat2222222222222222[BvlcResultFormat2222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                              BvlcResultFormat2222222222222222[BvlcResultFormat2222222222222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                                                              BvlcResultFormat2222222222222222[BvlcResultFormat2222222222222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                                                              BvlcResultFormat2222222222222222[BvlcResultFormat2222222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                                                              BvlcResultFormat2222222222222222[BvlcResultFormat2222222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                                                              return BvlcResultFormat2222222222222222;
                                                            })(BvlcResultFormat222222222222222 || {});
                                                            var BvlcResultPurpose222222222222222 = /* @__PURE__ */ ((BvlcResultPurpose2222222222222222) => {
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                                                              BvlcResultPurpose2222222222222222[BvlcResultPurpose2222222222222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                                                              return BvlcResultPurpose2222222222222222;
                                                            })(BvlcResultPurpose222222222222222 || {});
                                                            var CharacterStringEncoding222222222222222 = /* @__PURE__ */ ((CharacterStringEncoding2222222222222222) => {
                                                              CharacterStringEncoding2222222222222222[CharacterStringEncoding2222222222222222["UTF_8"] = 0] = "UTF_8";
                                                              CharacterStringEncoding2222222222222222[CharacterStringEncoding2222222222222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                                                              CharacterStringEncoding2222222222222222[CharacterStringEncoding2222222222222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                                                              CharacterStringEncoding2222222222222222[CharacterStringEncoding2222222222222222["UCS_4"] = 3] = "UCS_4";
                                                              CharacterStringEncoding2222222222222222[CharacterStringEncoding2222222222222222["UCS_2"] = 4] = "UCS_2";
                                                              CharacterStringEncoding2222222222222222[CharacterStringEncoding2222222222222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                                                              return CharacterStringEncoding2222222222222222;
                                                            })(CharacterStringEncoding222222222222222 || {});
                                                            var CovType222222222222222 = /* @__PURE__ */ ((CovType2222222222222222) => {
                                                              CovType2222222222222222[CovType2222222222222222["REAL"] = 0] = "REAL";
                                                              CovType2222222222222222[CovType2222222222222222["BIT_STRING"] = 1] = "BIT_STRING";
                                                              return CovType2222222222222222;
                                                            })(CovType222222222222222 || {});
                                                            var EnableDisable222222222222222 = /* @__PURE__ */ ((EnableDisable2222222222222222) => {
                                                              EnableDisable2222222222222222[EnableDisable2222222222222222["ENABLE"] = 0] = "ENABLE";
                                                              EnableDisable2222222222222222[EnableDisable2222222222222222["DISABLE"] = 1] = "DISABLE";
                                                              EnableDisable2222222222222222[EnableDisable2222222222222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                                                              return EnableDisable2222222222222222;
                                                            })(EnableDisable222222222222222 || {});
                                                            var MaxApduLengthAccepted222222222222222 = /* @__PURE__ */ ((MaxApduLengthAccepted2222222222222222) => {
                                                              MaxApduLengthAccepted2222222222222222[MaxApduLengthAccepted2222222222222222["OCTETS_50"] = 0] = "OCTETS_50";
                                                              MaxApduLengthAccepted2222222222222222[MaxApduLengthAccepted2222222222222222["OCTETS_128"] = 1] = "OCTETS_128";
                                                              MaxApduLengthAccepted2222222222222222[MaxApduLengthAccepted2222222222222222["OCTETS_206"] = 2] = "OCTETS_206";
                                                              MaxApduLengthAccepted2222222222222222[MaxApduLengthAccepted2222222222222222["OCTETS_480"] = 3] = "OCTETS_480";
                                                              MaxApduLengthAccepted2222222222222222[MaxApduLengthAccepted2222222222222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                                                              MaxApduLengthAccepted2222222222222222[MaxApduLengthAccepted2222222222222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                                                              return MaxApduLengthAccepted2222222222222222;
                                                            })(MaxApduLengthAccepted222222222222222 || {});
                                                            var MaxSegmentsAccepted222222222222222 = /* @__PURE__ */ ((MaxSegmentsAccepted2222222222222222) => {
                                                              MaxSegmentsAccepted2222222222222222[MaxSegmentsAccepted2222222222222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                                                              MaxSegmentsAccepted2222222222222222[MaxSegmentsAccepted2222222222222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                                                              MaxSegmentsAccepted2222222222222222[MaxSegmentsAccepted2222222222222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                                                              MaxSegmentsAccepted2222222222222222[MaxSegmentsAccepted2222222222222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                                                              MaxSegmentsAccepted2222222222222222[MaxSegmentsAccepted2222222222222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                                                              MaxSegmentsAccepted2222222222222222[MaxSegmentsAccepted2222222222222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                                                              MaxSegmentsAccepted2222222222222222[MaxSegmentsAccepted2222222222222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                                                              MaxSegmentsAccepted2222222222222222[MaxSegmentsAccepted2222222222222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                                                              return MaxSegmentsAccepted2222222222222222;
                                                            })(MaxSegmentsAccepted222222222222222 || {});
                                                            var NetworkLayerMessageType222222222222222 = /* @__PURE__ */ ((NetworkLayerMessageType2222222222222222) => {
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                                                              NetworkLayerMessageType2222222222222222[NetworkLayerMessageType2222222222222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                                                              return NetworkLayerMessageType2222222222222222;
                                                            })(NetworkLayerMessageType222222222222222 || {});
                                                            var NpduControlBit222222222222222 = /* @__PURE__ */ ((NpduControlBit2222222222222222) => {
                                                              NpduControlBit2222222222222222[NpduControlBit2222222222222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                                                              NpduControlBit2222222222222222[NpduControlBit2222222222222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                                                              NpduControlBit2222222222222222[NpduControlBit2222222222222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                                                              NpduControlBit2222222222222222[NpduControlBit2222222222222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                                                              return NpduControlBit2222222222222222;
                                                            })(NpduControlBit222222222222222 || {});
                                                            var NpduControlPriority222222222222222 = /* @__PURE__ */ ((NpduControlPriority2222222222222222) => {
                                                              NpduControlPriority2222222222222222[NpduControlPriority2222222222222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                                                              NpduControlPriority2222222222222222[NpduControlPriority2222222222222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                                                              NpduControlPriority2222222222222222[NpduControlPriority2222222222222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                                                              NpduControlPriority2222222222222222[NpduControlPriority2222222222222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                                                              return NpduControlPriority2222222222222222;
                                                            })(NpduControlPriority222222222222222 || {});
                                                            var PduConReqBit222222222222222 = /* @__PURE__ */ ((PduConReqBit2222222222222222) => {
                                                              PduConReqBit2222222222222222[PduConReqBit2222222222222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                                                              PduConReqBit2222222222222222[PduConReqBit2222222222222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                                                              PduConReqBit2222222222222222[PduConReqBit2222222222222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                                                              return PduConReqBit2222222222222222;
                                                            })(PduConReqBit222222222222222 || {});
                                                            var PduSegAckBit222222222222222 = /* @__PURE__ */ ((PduSegAckBit2222222222222222) => {
                                                              PduSegAckBit2222222222222222[PduSegAckBit2222222222222222["SERVER"] = 1] = "SERVER";
                                                              PduSegAckBit2222222222222222[PduSegAckBit2222222222222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                                                              return PduSegAckBit2222222222222222;
                                                            })(PduSegAckBit222222222222222 || {});
                                                            var PduType222222222222222 = /* @__PURE__ */ ((PduType2222222222222222) => {
                                                              PduType2222222222222222[PduType2222222222222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                                                              PduType2222222222222222[PduType2222222222222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                                                              PduType2222222222222222[PduType2222222222222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                                                              PduType2222222222222222[PduType2222222222222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                                                              PduType2222222222222222[PduType2222222222222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                                                              PduType2222222222222222[PduType2222222222222222["ERROR"] = 80] = "ERROR";
                                                              PduType2222222222222222[PduType2222222222222222["REJECT"] = 96] = "REJECT";
                                                              PduType2222222222222222[PduType2222222222222222["ABORT"] = 112] = "ABORT";
                                                              return PduType2222222222222222;
                                                            })(PduType222222222222222 || {});
                                                            var PropertyStates222222222222222 = /* @__PURE__ */ ((PropertyStates2222222222222222) => {
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["POLARITY"] = 3] = "POLARITY";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["RELIABILITY"] = 7] = "RELIABILITY";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["STATE"] = 8] = "STATE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["UNITS"] = 10] = "UNITS";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["ACTION"] = 16] = "ACTION";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["SHED_STATE"] = 27] = "SHED_STATE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                                                              PropertyStates2222222222222222[PropertyStates2222222222222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                                                              return PropertyStates2222222222222222;
                                                            })(PropertyStates222222222222222 || {});
                                                            var ReadRangeType222222222222222 = /* @__PURE__ */ ((ReadRangeType2222222222222222) => {
                                                              ReadRangeType2222222222222222[ReadRangeType2222222222222222["BY_POSITION"] = 0] = "BY_POSITION";
                                                              ReadRangeType2222222222222222[ReadRangeType2222222222222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                                                              ReadRangeType2222222222222222[ReadRangeType2222222222222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                                                              return ReadRangeType2222222222222222;
                                                            })(ReadRangeType222222222222222 || {});
                                                            var ReinitializedState222222222222222 = /* @__PURE__ */ ((ReinitializedState2222222222222222) => {
                                                              ReinitializedState2222222222222222[ReinitializedState2222222222222222["COLDSTART"] = 0] = "COLDSTART";
                                                              ReinitializedState2222222222222222[ReinitializedState2222222222222222["WARMSTART"] = 1] = "WARMSTART";
                                                              ReinitializedState2222222222222222[ReinitializedState2222222222222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                                                              ReinitializedState2222222222222222[ReinitializedState2222222222222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                                                              ReinitializedState2222222222222222[ReinitializedState2222222222222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                                                              ReinitializedState2222222222222222[ReinitializedState2222222222222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                                                              ReinitializedState2222222222222222[ReinitializedState2222222222222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                                                              ReinitializedState2222222222222222[ReinitializedState2222222222222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                                                              return ReinitializedState2222222222222222;
                                                            })(ReinitializedState222222222222222 || {});
                                                            var TimeStamp222222222222222 = /* @__PURE__ */ ((TimeStamp2222222222222222) => {
                                                              TimeStamp2222222222222222[TimeStamp2222222222222222["TIME"] = 0] = "TIME";
                                                              TimeStamp2222222222222222[TimeStamp2222222222222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                                                              TimeStamp2222222222222222[TimeStamp2222222222222222["DATETIME"] = 2] = "DATETIME";
                                                              return TimeStamp2222222222222222;
                                                            })(TimeStamp222222222222222 || {});
                                                            var import_events2222222222222222 = __toESM222222222222222(require("events"));
                                                            var import_debug3222222222222222 = __toESM222222222222222(require("debug"));
                                                            var import_dgram222222222222222 = require("dgram");
                                                            var import_events322222222222222 = __toESM222222222222222(require("events"));
                                                            var import_debug2222222222222222 = __toESM222222222222222(require("debug"));
                                                            var EventEmitter322222222222222 = import_events322222222222222.default.EventEmitter;
                                                            var debug2222222222222222 = (0, import_debug2222222222222222.default)("bacnet:client:debug");
                                                            var DEFAULT_BACNET_PORT322222222222222 = 47808;
                                                            var Transport222222222222222 = class extends EventEmitter322222222222222 {
                                                              constructor(settings) {
                                                                super();
                                                                this._lastSendMessages = {};
                                                                this._settings = settings;
                                                                this._server = (0, import_dgram222222222222222.createSocket)({
                                                                  type: "udp4",
                                                                  reuseAddr: settings.reuseAddr
                                                                });
                                                                this._server.on("message", (msg, rinfo) => {
                                                                  if (this.ownAddress.port === rinfo.port) {
                                                                    for (let [messageKey, earlierSentBuffer] of Object.entries(
                                                                      this._lastSendMessages
                                                                    )) {
                                                                      if (msg.equals(earlierSentBuffer)) {
                                                                        debug2222222222222222(
                                                                          `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                                                        );
                                                                        return;
                                                                      }
                                                                    }
                                                                  }
                                                                  debug2222222222222222(
                                                                    `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                                                      "hex"
                                                                    )}`
                                                                  );
                                                                  this.emit(
                                                                    "message",
                                                                    msg,
                                                                    rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT322222222222222 ? "" : ":" + rinfo.port)
                                                                  );
                                                                });
                                                                this._server.on("listening", () => {
                                                                  this.ownAddress = this._server.address();
                                                                  debug2222222222222222(
                                                                    `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                                                                  );
                                                                  this.emit("listening", this.ownAddress);
                                                                });
                                                                this._server.on("error", (err) => {
                                                                  debug2222222222222222("transport error", err.message);
                                                                  this.emit("error", err);
                                                                });
                                                                this._server.on("close", () => {
                                                                  debug2222222222222222("transport closed");
                                                                  this.emit("close");
                                                                });
                                                              }
                                                              getBroadcastAddress() {
                                                                return this._settings.broadcastAddress;
                                                              }
                                                              getMaxPayload() {
                                                                return 1482;
                                                              }
                                                              send(buffer, offset, receiver) {
                                                                if (!receiver) {
                                                                  receiver = this.getBroadcastAddress();
                                                                  const dataToSend = Buffer.alloc(offset);
                                                                  const hrTime = process.hrtime();
                                                                  const messageKey = hrTime[0] * 1e9 + hrTime[1];
                                                                  buffer.copy(dataToSend, 0, 0, offset);
                                                                  this._lastSendMessages[messageKey] = dataToSend;
                                                                  setTimeout(() => {
                                                                    delete this._lastSendMessages[messageKey];
                                                                  }, 1e4);
                                                                }
                                                                const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                                                                const [address, port] = receiverAddress.split(":");
                                                                debug2222222222222222(
                                                                  "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                                                                );
                                                                this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT322222222222222, address);
                                                              }
                                                              open() {
                                                                this._server.bind(this._settings.port, this._settings.interface, () => {
                                                                  this._server.setBroadcast(true);
                                                                });
                                                              }
                                                              close() {
                                                                this._server.close();
                                                              }
                                                            };
                                                            var services_exports222222222222222 = {};
                                                            __export222222222222222(services_exports222222222222222, {
                                                              addListElement: () => add_list_element_exports222222222222222,
                                                              alarmAcknowledge: () => alarm_acknowledge_exports222222222222222,
                                                              alarmSummary: () => alarm_summary_exports222222222222222,
                                                              atomicReadFile: () => atomic_read_file_exports222222222222222,
                                                              atomicWriteFile: () => atomic_write_file_exports222222222222222,
                                                              covNotify: () => cov_notify_exports222222222222222,
                                                              covNotifyUnconfirmed: () => cov_notify_exports222222222222222,
                                                              createObject: () => create_object_exports222222222222222,
                                                              deleteObject: () => delete_object_exports222222222222222,
                                                              deviceCommunicationControl: () => device_communication_control_exports222222222222222,
                                                              error: () => error_exports222222222222222,
                                                              eventInformation: () => event_information_exports222222222222222,
                                                              eventNotifyData: () => event_notify_data_exports222222222222222,
                                                              getEnrollmentSummary: () => get_enrollment_summary_exports222222222222222,
                                                              getEventInformation: () => get_event_information_exports222222222222222,
                                                              iAm: () => i_am_exports222222222222222,
                                                              iHave: () => i_have_exports222222222222222,
                                                              lifeSafetyOperation: () => life_safety_operation_exports222222222222222,
                                                              privateTransfer: () => private_transfer_exports222222222222222,
                                                              readProperty: () => read_property_exports222222222222222,
                                                              readPropertyMultiple: () => read_property_multiple_exports222222222222222,
                                                              readRange: () => read_range_exports222222222222222,
                                                              registerForeignDevice: () => register_foreign_device_exports222222222222222,
                                                              reinitializeDevice: () => reinitialize_device_exports222222222222222,
                                                              subscribeCov: () => subscribe_cov_exports222222222222222,
                                                              subscribeProperty: () => subscribe_property_exports222222222222222,
                                                              timeSync: () => time_sync_exports222222222222222,
                                                              timeSyncUTC: () => time_sync_exports222222222222222,
                                                              whoHas: () => who_has_exports222222222222222,
                                                              whoIs: () => who_is_exports222222222222222,
                                                              writeProperty: () => write_property_exports222222222222222,
                                                              writePropertyMultiple: () => write_property_multiple_exports222222222222222
                                                            });
                                                            var add_list_element_exports222222222222222 = {};
                                                            __export222222222222222(add_list_element_exports222222222222222, {
                                                              decode: () => decode3322222222222222,
                                                              encode: () => encode3322222222222222
                                                            });
                                                            var import_iconv_lite222222222222222 = __toESM222222222222222(require("iconv-lite"));
                                                            var enums_default222222222222222 = enum_exports222222222222222;
                                                            var START_YEAR222222222222222 = 1900;
                                                            var MAX_YEARS222222222222222 = 256;
                                                            var getBuffer222222222222222 = () => {
                                                              return {
                                                                buffer: Buffer.alloc(1472),
                                                                offset: 0
                                                              };
                                                            };
                                                            var getSignedLength222222222222222 = (value) => {
                                                              if (value >= -128 && value < 128)
                                                                return 1;
                                                              else if (value >= -32768 && value < 32768)
                                                                return 2;
                                                              else if (value > -8388608 && value < 8388608)
                                                                return 3;
                                                              else
                                                                return 4;
                                                            };
                                                            var getUnsignedLength222222222222222 = (value) => {
                                                              if (value < 256)
                                                                return 1;
                                                              else if (value < 65536)
                                                                return 2;
                                                              else if (value < 16777216)
                                                                return 3;
                                                              else
                                                                return 4;
                                                            };
                                                            var getEncodingType222222222222222 = (encoding, decodingBuffer, decodingOffset) => {
                                                              switch (encoding) {
                                                                case enums_default222222222222222.CharacterStringEncoding.UCS_2:
                                                                  if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                                                    return "ucs2";
                                                                  }
                                                                  return "UTF-16BE";
                                                                case enums_default222222222222222.CharacterStringEncoding.ISO_8859_1:
                                                                  return "latin1";
                                                                case enums_default222222222222222.CharacterStringEncoding.MICROSOFT_DBCS:
                                                                  return "cp850";
                                                                case enums_default222222222222222.CharacterStringEncoding.JIS_X_0208:
                                                                  return "Shift_JIS";
                                                                default:
                                                                  return "utf8";
                                                              }
                                                            };
                                                            var encodeUnsigned222222222222222 = (buffer, value, length) => {
                                                              buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                                                              buffer.offset += length;
                                                            };
                                                            var encodeBacnetUnsigned222222222222222 = (buffer, value) => {
                                                              encodeUnsigned222222222222222(buffer, value, getUnsignedLength222222222222222(value));
                                                            };
                                                            var encodeSigned222222222222222 = (buffer, value, length) => {
                                                              buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                                                              buffer.offset += length;
                                                            };
                                                            var encodeBacnetSigned222222222222222 = (buffer, value) => {
                                                              encodeSigned222222222222222(buffer, value, getSignedLength222222222222222(value));
                                                            };
                                                            var encodeBacnetReal222222222222222 = (buffer, value) => {
                                                              buffer.buffer.writeFloatBE(value, buffer.offset, true);
                                                              buffer.offset += 4;
                                                            };
                                                            var encodeBacnetDouble222222222222222 = (buffer, value) => {
                                                              buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                                                              buffer.offset += 8;
                                                            };
                                                            var decodeUnsigned222222222222222 = (buffer, offset, length) => {
                                                              if (length === 0) {
                                                                return {
                                                                  len: 0,
                                                                  value: 0
                                                                };
                                                              }
                                                              return {
                                                                len: length,
                                                                //@ts-ignore
                                                                value: buffer.readUIntBE(offset, length)
                                                              };
                                                            };
                                                            var decodeEnumerated222222222222222 = (buffer, offset, length) => {
                                                              return decodeUnsigned222222222222222(buffer, offset, length);
                                                            };
                                                            var encodeBacnetObjectId222222222222222 = (buffer, objectType, instance) => {
                                                              const value = ((objectType & enums_default222222222222222.ASN1_MAX_OBJECT) << enums_default222222222222222.ASN1_INSTANCE_BITS | instance & enums_default222222222222222.ASN1_MAX_INSTANCE) >>> 0;
                                                              encodeUnsigned222222222222222(buffer, value, 4);
                                                            };
                                                            var encodeTag222222222222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                                                              let len = 1;
                                                              const tmp = new Array(3);
                                                              tmp[0] = 0;
                                                              if (contextSpecific) {
                                                                tmp[0] |= 8;
                                                              }
                                                              if (tagNumber <= 14) {
                                                                tmp[0] |= tagNumber << 4;
                                                              } else {
                                                                tmp[0] |= 240;
                                                                tmp[1] = tagNumber;
                                                                len++;
                                                              }
                                                              if (lenValueType <= 4) {
                                                                tmp[0] |= lenValueType;
                                                                Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                buffer.offset += len;
                                                              } else {
                                                                tmp[0] |= 5;
                                                                if (lenValueType <= 253) {
                                                                  tmp[len++] = lenValueType;
                                                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                  buffer.offset += len;
                                                                } else if (lenValueType <= 65535) {
                                                                  tmp[len++] = 254;
                                                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                  buffer.offset += len;
                                                                  encodeUnsigned222222222222222(buffer, lenValueType, 2);
                                                                } else {
                                                                  tmp[len++] = 255;
                                                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                                  buffer.offset += len;
                                                                  encodeUnsigned222222222222222(buffer, lenValueType, 4);
                                                                }
                                                              }
                                                            };
                                                            var encodeBacnetEnumerated222222222222222 = (buffer, value) => {
                                                              encodeBacnetUnsigned222222222222222(buffer, value);
                                                            };
                                                            var isExtendedTagNumber222222222222222 = (x) => {
                                                              return (x & 240) === 240;
                                                            };
                                                            var isExtendedValue222222222222222 = (x) => {
                                                              return (x & 7) === 5;
                                                            };
                                                            var isContextSpecific222222222222222 = (x) => {
                                                              return (x & 8) === 8;
                                                            };
                                                            var isOpeningTag222222222222222 = (x) => {
                                                              return (x & 7) === 6;
                                                            };
                                                            var isClosingTag222222222222222 = (x) => {
                                                              return (x & 7) === 7;
                                                            };
                                                            var encodeContextReal222222222222222 = (buffer, tagNumber, value) => {
                                                              encodeTag222222222222222(buffer, tagNumber, true, 4);
                                                              encodeBacnetReal222222222222222(buffer, value);
                                                            };
                                                            var encodeContextUnsigned222222222222222 = (buffer, tagNumber, value) => {
                                                              encodeTag222222222222222(buffer, tagNumber, true, getUnsignedLength222222222222222(value));
                                                              encodeBacnetUnsigned222222222222222(buffer, value);
                                                            };
                                                            var encodeContextEnumerated222222222222222 = (buffer, tagNumber, value) => {
                                                              encodeContextUnsigned222222222222222(buffer, tagNumber, value);
                                                            };
                                                            var encodeOctetString222222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                              if (octetString) {
                                                                for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                                                                  buffer.buffer[buffer.offset++] = octetString[i];
                                                                }
                                                              }
                                                            };
                                                            var encodeApplicationOctetString222222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                              encodeTag222222222222222(buffer, enums_default222222222222222.ApplicationTag.OCTET_STRING, false, octetCount);
                                                              encodeOctetString222222222222222(buffer, octetString, octetOffset, octetCount);
                                                            };
                                                            var encodeApplicationNull222222222222222 = (buffer) => {
                                                              buffer.buffer[buffer.offset++] = enums_default222222222222222.ApplicationTag.NULL;
                                                            };
                                                            var encodeApplicationBoolean222222222222222 = (buffer, booleanValue) => {
                                                              encodeTag222222222222222(buffer, enums_default222222222222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                                                            };
                                                            var encodeApplicationReal222222222222222 = (buffer, value) => {
                                                              encodeTag222222222222222(buffer, enums_default222222222222222.ApplicationTag.REAL, false, 4);
                                                              encodeBacnetReal222222222222222(buffer, value);
                                                            };
                                                            var encodeApplicationDouble222222222222222 = (buffer, value) => {
                                                              encodeTag222222222222222(buffer, enums_default222222222222222.ApplicationTag.DOUBLE, false, 8);
                                                              encodeBacnetDouble222222222222222(buffer, value);
                                                            };
                                                            var bitstringBytesUsed222222222222222 = (bitString) => {
                                                              let len = 0;
                                                              if (bitString.bitsUsed > 0) {
                                                                const lastBit = bitString.bitsUsed - 1;
                                                                const usedBytes = lastBit / 8 + 1;
                                                                len = Math.floor(usedBytes);
                                                              }
                                                              return len;
                                                            };
                                                            var encodeApplicationObjectId222222222222222 = (buffer, objectType, instance) => {
                                                              const tmp = getBuffer222222222222222();
                                                              encodeBacnetObjectId222222222222222(tmp, objectType, instance);
                                                              encodeTag222222222222222(buffer, enums_default222222222222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                                                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                              buffer.offset += tmp.offset;
                                                            };
                                                            var encodeApplicationUnsigned222222222222222 = (buffer, value) => {
                                                              const tmp = getBuffer222222222222222();
                                                              encodeBacnetUnsigned222222222222222(tmp, value);
                                                              encodeTag222222222222222(buffer, enums_default222222222222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                                                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                              buffer.offset += tmp.offset;
                                                            };
                                                            var encodeApplicationEnumerated222222222222222 = (buffer, value) => {
                                                              const tmp = getBuffer222222222222222();
                                                              encodeBacnetEnumerated222222222222222(tmp, value);
                                                              encodeTag222222222222222(buffer, enums_default222222222222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                                                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                              buffer.offset += tmp.offset;
                                                            };
                                                            var encodeApplicationSigned222222222222222 = (buffer, value) => {
                                                              const tmp = getBuffer222222222222222();
                                                              encodeBacnetSigned222222222222222(tmp, value);
                                                              encodeTag222222222222222(buffer, enums_default222222222222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                                                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                              buffer.offset += tmp.offset;
                                                            };
                                                            var byteReverseBits222222222222222 = (inByte) => {
                                                              let outByte = 0;
                                                              if ((inByte & 1) > 0) {
                                                                outByte |= 128;
                                                              }
                                                              if ((inByte & 2) > 0) {
                                                                outByte |= 64;
                                                              }
                                                              if ((inByte & 4) > 0) {
                                                                outByte |= 32;
                                                              }
                                                              if ((inByte & 8) > 0) {
                                                                outByte |= 16;
                                                              }
                                                              if ((inByte & 16) > 0) {
                                                                outByte |= 8;
                                                              }
                                                              if ((inByte & 32) > 0) {
                                                                outByte |= 4;
                                                              }
                                                              if ((inByte & 64) > 0) {
                                                                outByte |= 2;
                                                              }
                                                              if ((inByte & 128) > 0) {
                                                                outByte |= 1;
                                                              }
                                                              return outByte;
                                                            };
                                                            var bitstringOctet222222222222222 = (bitString, octetIndex) => {
                                                              let octet = 0;
                                                              if (bitString.value && octetIndex < enums_default222222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                                octet = bitString.value[octetIndex];
                                                              }
                                                              return octet;
                                                            };
                                                            var encodeBitstring222222222222222 = (buffer, bitString) => {
                                                              if (bitString.bitsUsed === 0) {
                                                                buffer.buffer[buffer.offset++] = 0;
                                                              } else {
                                                                const usedBytes = bitstringBytesUsed222222222222222(bitString);
                                                                const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                                                                buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                                                                for (let i = 0; i < usedBytes; i++) {
                                                                  buffer.buffer[buffer.offset++] = byteReverseBits222222222222222(
                                                                    bitstringOctet222222222222222(bitString, i)
                                                                  );
                                                                }
                                                              }
                                                            };
                                                            var encodeApplicationBitstring222222222222222 = (buffer, bitString) => {
                                                              let bitStringEncodedLength = 1;
                                                              bitStringEncodedLength += bitstringBytesUsed222222222222222(bitString);
                                                              encodeTag222222222222222(
                                                                buffer,
                                                                enums_default222222222222222.ApplicationTag.BIT_STRING,
                                                                false,
                                                                bitStringEncodedLength
                                                              );
                                                              encodeBitstring222222222222222(buffer, bitString);
                                                            };
                                                            var encodeBacnetDate222222222222222 = (buffer, value) => {
                                                              if (value === new Date(1, 1, 1)) {
                                                                buffer.buffer[buffer.offset++] = 255;
                                                                buffer.buffer[buffer.offset++] = 255;
                                                                buffer.buffer[buffer.offset++] = 255;
                                                                buffer.buffer[buffer.offset++] = 255;
                                                                return;
                                                              }
                                                              if (value.getFullYear() >= START_YEAR222222222222222) {
                                                                buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR222222222222222;
                                                              } else if (value.getFullYear() < MAX_YEARS222222222222222) {
                                                                buffer.buffer[buffer.offset++] = value.getFullYear();
                                                              } else {
                                                                throw new Error("invaide year: " + value.getFullYear());
                                                              }
                                                              buffer.buffer[buffer.offset++] = value.getMonth();
                                                              buffer.buffer[buffer.offset++] = value.getDate();
                                                              buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                                                            };
                                                            var encodeApplicationDate222222222222222 = (buffer, value) => {
                                                              encodeTag222222222222222(buffer, enums_default222222222222222.ApplicationTag.DATE, false, 4);
                                                              encodeBacnetDate222222222222222(buffer, value);
                                                            };
                                                            var encodeBacnetTime222222222222222 = (buffer, value) => {
                                                              buffer.buffer[buffer.offset++] = value.getHours();
                                                              buffer.buffer[buffer.offset++] = value.getMinutes();
                                                              buffer.buffer[buffer.offset++] = value.getSeconds();
                                                              buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                                                            };
                                                            var encodeApplicationTime222222222222222 = (buffer, value) => {
                                                              encodeTag222222222222222(buffer, enums_default222222222222222.ApplicationTag.TIME, false, 4);
                                                              encodeBacnetTime222222222222222(buffer, value);
                                                            };
                                                            var bacappEncodeDatetime222222222222222 = (buffer, value) => {
                                                              if (value !== new Date(1, 1, 1)) {
                                                                encodeApplicationDate222222222222222(buffer, value);
                                                                encodeApplicationTime222222222222222(buffer, value);
                                                              }
                                                            };
                                                            var encodeContextObjectId222222222222222 = (buffer, tagNumber, objectType, instance) => {
                                                              encodeTag222222222222222(buffer, tagNumber, true, 4);
                                                              encodeBacnetObjectId222222222222222(buffer, objectType, instance);
                                                            };
                                                            var encodeOpeningTag222222222222222 = (buffer, tagNumber) => {
                                                              let len = 1;
                                                              const tmp = new Array(2);
                                                              tmp[0] = 8;
                                                              if (tagNumber <= 14) {
                                                                tmp[0] |= tagNumber << 4;
                                                              } else {
                                                                tmp[0] |= 240;
                                                                tmp[1] = tagNumber;
                                                                len++;
                                                              }
                                                              tmp[0] |= 6;
                                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                              buffer.offset += len;
                                                            };
                                                            var encodeClosingTag222222222222222 = (buffer, tagNumber) => {
                                                              let len = 1;
                                                              const tmp = new Array(2);
                                                              tmp[0] = 8;
                                                              if (tagNumber <= 14) {
                                                                tmp[0] |= tagNumber << 4;
                                                              } else {
                                                                tmp[0] |= 240;
                                                                tmp[1] = tagNumber;
                                                                len++;
                                                              }
                                                              tmp[0] |= 7;
                                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                              buffer.offset += len;
                                                            };
                                                            var encodeReadAccessSpecification222222222222222 = (buffer, value) => {
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                0,
                                                                value.objectId.type,
                                                                value.objectId.instance
                                                              );
                                                              encodeOpeningTag222222222222222(buffer, 1);
                                                              value.properties.forEach((p) => {
                                                                encodeContextEnumerated222222222222222(buffer, 0, p.id);
                                                                if (p.index && p.index !== enums_default222222222222222.ASN1_ARRAY_ALL) {
                                                                  encodeContextUnsigned222222222222222(buffer, 1, p.index);
                                                                }
                                                              });
                                                              encodeClosingTag222222222222222(buffer, 1);
                                                            };
                                                            var encodeContextBoolean222222222222222 = (buffer, tagNumber, booleanValue) => {
                                                              encodeTag222222222222222(buffer, tagNumber, true, 1);
                                                              buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                                                              buffer.offset += 1;
                                                            };
                                                            var encodeCovSubscription222222222222222 = (buffer, value) => {
                                                              encodeOpeningTag222222222222222(buffer, 0);
                                                              encodeOpeningTag222222222222222(buffer, 0);
                                                              encodeOpeningTag222222222222222(buffer, 1);
                                                              encodeApplicationUnsigned222222222222222(buffer, value.recipient.network);
                                                              if (value.recipient.network === 65535) {
                                                                encodeApplicationOctetString222222222222222(buffer, 0, 0, 0);
                                                              } else {
                                                                encodeApplicationOctetString222222222222222(
                                                                  buffer,
                                                                  value.recipient.address,
                                                                  0,
                                                                  value.recipient.address.length
                                                                );
                                                              }
                                                              encodeClosingTag222222222222222(buffer, 1);
                                                              encodeClosingTag222222222222222(buffer, 0);
                                                              encodeContextUnsigned222222222222222(buffer, 1, value.subscriptionProcessId);
                                                              encodeClosingTag222222222222222(buffer, 0);
                                                              encodeOpeningTag222222222222222(buffer, 1);
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                0,
                                                                value.monitoredObjectId.type,
                                                                value.monitoredObjectId.instance
                                                              );
                                                              encodeContextEnumerated222222222222222(buffer, 1, value.monitoredProperty.id);
                                                              if (value.monitoredProperty.index !== enums_default222222222222222.ASN1_ARRAY_ALL) {
                                                                encodeContextUnsigned222222222222222(buffer, 2, value.monitoredProperty.index);
                                                              }
                                                              encodeClosingTag222222222222222(buffer, 1);
                                                              encodeContextBoolean222222222222222(buffer, 2, value.issueConfirmedNotifications);
                                                              encodeContextUnsigned222222222222222(buffer, 3, value.timeRemaining);
                                                              if (value.covIncrement > 0) {
                                                                encodeContextReal222222222222222(buffer, 4, value.covIncrement);
                                                              }
                                                            };
                                                            var bacappEncodeApplicationData222222222222222 = (buffer, value) => {
                                                              if (value.value === null) {
                                                                value.type = enums_default222222222222222.ApplicationTag.NULL;
                                                              }
                                                              switch (value.type) {
                                                                case enums_default222222222222222.ApplicationTag.NULL:
                                                                  encodeApplicationNull222222222222222(buffer);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.BOOLEAN:
                                                                  encodeApplicationBoolean222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                                  encodeApplicationUnsigned222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.SIGNED_INTEGER:
                                                                  encodeApplicationSigned222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.REAL:
                                                                  encodeApplicationReal222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.DOUBLE:
                                                                  encodeApplicationDouble222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.OCTET_STRING:
                                                                  encodeApplicationOctetString222222222222222(buffer, value.value, 0, value.value.length);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.CHARACTER_STRING:
                                                                  encodeApplicationCharacterString222222222222222(buffer, value.value, value.encoding);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.BIT_STRING:
                                                                  encodeApplicationBitstring222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.ENUMERATED:
                                                                  encodeApplicationEnumerated222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.DATE:
                                                                  encodeApplicationDate222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.TIME:
                                                                  encodeApplicationTime222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.TIMESTAMP:
                                                                  bacappEncodeTimestamp222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.DATETIME:
                                                                  bacappEncodeDatetime222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                                  encodeApplicationObjectId222222222222222(buffer, value.value.type, value.value.instance);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.COV_SUBSCRIPTION:
                                                                  encodeCovSubscription222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.READ_ACCESS_RESULT:
                                                                  encodeReadAccessResult222222222222222(buffer, value.value);
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                                  encodeReadAccessSpecification222222222222222(buffer, value.value);
                                                                  break;
                                                                case void 0:
                                                                  throw new Error(
                                                                    "Cannot encode a value if the type has not been specified"
                                                                  );
                                                                default:
                                                                  throw "No encode for ApplicationTag type: " + enums_default222222222222222.getEnumName(
                                                                    enums_default222222222222222.ApplicationTag,
                                                                    value.type
                                                                  );
                                                              }
                                                            };
                                                            var bacappEncodeDeviceObjPropertyRef222222222222222 = (buffer, value) => {
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                0,
                                                                value.objectId.type,
                                                                value.objectId.instance
                                                              );
                                                              encodeContextEnumerated222222222222222(buffer, 1, value.id);
                                                              if (value.arrayIndex !== enums_default222222222222222.ASN1_ARRAY_ALL) {
                                                                encodeContextUnsigned222222222222222(buffer, 2, value.arrayIndex);
                                                              }
                                                              if (value.deviceIndentifier.type === enums_default222222222222222.ObjectType.DEVICE) {
                                                                encodeContextObjectId222222222222222(
                                                                  buffer,
                                                                  3,
                                                                  value.deviceIndentifier.type,
                                                                  value.deviceIndentifier.instance
                                                                );
                                                              }
                                                            };
                                                            var bacappEncodeContextDeviceObjPropertyRef222222222222222 = (buffer, tagNumber, value) => {
                                                              encodeOpeningTag222222222222222(buffer, tagNumber);
                                                              bacappEncodeDeviceObjPropertyRef222222222222222(buffer, value);
                                                              encodeClosingTag222222222222222(buffer, tagNumber);
                                                            };
                                                            var bacappEncodePropertyState222222222222222 = (buffer, value) => {
                                                              switch (value.type) {
                                                                case enums_default222222222222222.PropertyStates.BOOLEAN_VALUE:
                                                                  encodeContextBoolean222222222222222(buffer, 0, value.state === 1);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.BINARY_VALUE:
                                                                  encodeContextEnumerated222222222222222(buffer, 1, value.state);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.EVENT_TYPE:
                                                                  encodeContextEnumerated222222222222222(buffer, 2, value.state);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.POLARITY:
                                                                  encodeContextEnumerated222222222222222(buffer, 3, value.state);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.PROGRAM_CHANGE:
                                                                  encodeContextEnumerated222222222222222(buffer, 4, value.state);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.PROGRAM_STATE:
                                                                  encodeContextEnumerated222222222222222(buffer, 5, value.state);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.REASON_FOR_HALT:
                                                                  encodeContextEnumerated222222222222222(buffer, 6, value.state);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.RELIABILITY:
                                                                  encodeContextEnumerated222222222222222(buffer, 7, value.state);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.STATE:
                                                                  encodeContextEnumerated222222222222222(buffer, 8, value.state);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.SYSTEM_STATUS:
                                                                  encodeContextEnumerated222222222222222(buffer, 9, value.state);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.UNITS:
                                                                  encodeContextEnumerated222222222222222(buffer, 10, value.state);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.UNSIGNED_VALUE:
                                                                  encodeContextUnsigned222222222222222(buffer, 11, value.state);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.LIFE_SAFETY_MODE:
                                                                  encodeContextEnumerated222222222222222(buffer, 12, value.state);
                                                                  break;
                                                                case enums_default222222222222222.PropertyStates.LIFE_SAFETY_STATE:
                                                                  encodeContextEnumerated222222222222222(buffer, 13, value.state);
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                            };
                                                            var encodeContextBitstring222222222222222 = (buffer, tagNumber, bitString) => {
                                                              let bitStringEncodedLength = 1;
                                                              bitStringEncodedLength += bitstringBytesUsed222222222222222(bitString);
                                                              encodeTag222222222222222(buffer, tagNumber, true, bitStringEncodedLength);
                                                              encodeBitstring222222222222222(buffer, bitString);
                                                            };
                                                            var encodeContextSigned222222222222222 = (buffer, tagNumber, value) => {
                                                              encodeTag222222222222222(buffer, tagNumber, true, getSignedLength222222222222222(value));
                                                              encodeBacnetSigned222222222222222(buffer, value);
                                                            };
                                                            var encodeContextTime222222222222222 = (buffer, tagNumber, value) => {
                                                              encodeTag222222222222222(buffer, tagNumber, true, 4);
                                                              encodeBacnetTime222222222222222(buffer, value);
                                                            };
                                                            var bacappEncodeContextDatetime222222222222222 = (buffer, tagNumber, value) => {
                                                              if (value !== new Date(1, 1, 1)) {
                                                                encodeOpeningTag222222222222222(buffer, tagNumber);
                                                                bacappEncodeDatetime222222222222222(buffer, value);
                                                                encodeClosingTag222222222222222(buffer, tagNumber);
                                                              } else {
                                                                throw new Error("wrong Datetime while bacapp encoding context");
                                                              }
                                                            };
                                                            var decodeTagNumber222222222222222 = (buffer, offset) => {
                                                              let len = 1;
                                                              let tagNumber;
                                                              if (isExtendedTagNumber222222222222222(buffer[offset])) {
                                                                tagNumber = buffer[offset + 1];
                                                                len++;
                                                              } else {
                                                                tagNumber = buffer[offset] >> 4;
                                                              }
                                                              return {
                                                                len,
                                                                tagNumber
                                                              };
                                                            };
                                                            var decodeIsContextTag222222222222222 = (buffer, offset, tagNumber) => {
                                                              const result = decodeTagNumber222222222222222(buffer, offset);
                                                              return isContextSpecific222222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                            };
                                                            var decodeIsOpeningTagNumber222222222222222 = (buffer, offset, tagNumber) => {
                                                              const result = decodeTagNumber222222222222222(buffer, offset);
                                                              return isOpeningTag222222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                            };
                                                            var decodeIsClosingTagNumber222222222222222 = (buffer, offset, tagNumber) => {
                                                              const result = decodeTagNumber222222222222222(buffer, offset);
                                                              return isClosingTag222222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                            };
                                                            var decodeIsClosingTag222222222222222 = (buffer, offset) => {
                                                              return (buffer[offset] & 7) === 7;
                                                            };
                                                            var decodeIsOpeningTag222222222222222 = (buffer, offset) => {
                                                              return (buffer[offset] & 7) === 6;
                                                            };
                                                            var decodeObjectId222222222222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                                                              const result = decodeUnsigned222222222222222(buffer, offset, 4);
                                                              const objectType = result.value >> enums_default222222222222222.ASN1_INSTANCE_BITS & enums_default222222222222222.ASN1_MAX_OBJECT;
                                                              const instance = result.value & enums_default222222222222222.ASN1_MAX_INSTANCE;
                                                              return {
                                                                len: result.len,
                                                                objectType,
                                                                instance
                                                              };
                                                            };
                                                            var decodeObjectIdSafe222222222222222 = (buffer, offset, lenValue) => {
                                                              if (lenValue !== 4) {
                                                                return {
                                                                  len: 0,
                                                                  objectType: 0,
                                                                  instance: 0
                                                                };
                                                              } else {
                                                                return decodeObjectId222222222222222(buffer, offset);
                                                              }
                                                            };
                                                            var decodeTagNumberAndValue222222222222222 = (buffer, offset) => {
                                                              let value;
                                                              let result = decodeTagNumber222222222222222(buffer, offset);
                                                              let len = result.len;
                                                              if (isExtendedValue222222222222222(buffer[offset])) {
                                                                if (buffer[offset + len] === 255) {
                                                                  len++;
                                                                  result = decodeUnsigned222222222222222(buffer, offset + len, 4);
                                                                  len += result.len;
                                                                  value = result.value;
                                                                } else if (buffer[offset + len] === 254) {
                                                                  len++;
                                                                  result = decodeUnsigned222222222222222(buffer, offset + len, 2);
                                                                  len += result.len;
                                                                  value = result.value;
                                                                } else {
                                                                  value = buffer[offset + len];
                                                                  len++;
                                                                }
                                                              } else if (isOpeningTag222222222222222(buffer[offset])) {
                                                                value = 0;
                                                              } else if (isClosingTag222222222222222(buffer[offset])) {
                                                                value = 0;
                                                              } else {
                                                                value = buffer[offset] & 7;
                                                              }
                                                              return {
                                                                len,
                                                                tagNumber: result.tagNumber,
                                                                value
                                                              };
                                                            };
                                                            var bacappDecodeApplicationData222222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                              if (!isContextSpecific222222222222222(buffer[offset])) {
                                                                let result = decodeTagNumberAndValue222222222222222(buffer, offset);
                                                                if (result) {
                                                                  let len = result.len;
                                                                  result = bacappDecodeData222222222222222(
                                                                    buffer,
                                                                    offset + len,
                                                                    maxOffset,
                                                                    result.tagNumber,
                                                                    result.value
                                                                  );
                                                                  if (!result) {
                                                                    return void 0;
                                                                  }
                                                                  let resObj = {
                                                                    len: len + result.len,
                                                                    type: result.type,
                                                                    value: result.value
                                                                  };
                                                                  if (result.encoding !== void 0)
                                                                    resObj.encoding = result.encoding;
                                                                  return resObj;
                                                                }
                                                              } else {
                                                                return bacappDecodeContextApplicationData222222222222222(
                                                                  buffer,
                                                                  offset,
                                                                  maxOffset,
                                                                  objectType,
                                                                  propertyId
                                                                );
                                                              }
                                                            };
                                                            var encodeReadAccessResult222222222222222 = (buffer, value) => {
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                0,
                                                                value.objectId.type,
                                                                value.objectId.instance
                                                              );
                                                              encodeOpeningTag222222222222222(buffer, 1);
                                                              value.values.forEach((item) => {
                                                                encodeContextEnumerated222222222222222(buffer, 2, item.property.id);
                                                                if (item.property.index !== enums_default222222222222222.ASN1_ARRAY_ALL) {
                                                                  encodeContextUnsigned222222222222222(buffer, 3, item.property.index);
                                                                }
                                                                if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                                                                  encodeOpeningTag222222222222222(buffer, 5);
                                                                  encodeApplicationEnumerated222222222222222(buffer, item.value[0].value.errorClass);
                                                                  encodeApplicationEnumerated222222222222222(buffer, item.value[0].value.errorCode);
                                                                  encodeClosingTag222222222222222(buffer, 5);
                                                                } else {
                                                                  if (!item.value)
                                                                    throw new Error("No value in item");
                                                                  encodeOpeningTag222222222222222(buffer, 4);
                                                                  item.value.forEach((subItem) => {
                                                                    bacappEncodeApplicationData222222222222222(buffer, subItem);
                                                                  });
                                                                  encodeClosingTag222222222222222(buffer, 4);
                                                                }
                                                              });
                                                              encodeClosingTag222222222222222(buffer, 1);
                                                            };
                                                            var decodeReadAccessResult222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let value = {};
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              let result = decodeObjectId222222222222222(buffer, offset + len);
                                                              value.objectId = {
                                                                type: result.objectType,
                                                                instance: result.instance
                                                              };
                                                              len += result.len;
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                return -1;
                                                              }
                                                              len++;
                                                              const values = [];
                                                              while (apduLen - len > 0) {
                                                                let newEntry = {};
                                                                if (decodeIsClosingTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                  len++;
                                                                  break;
                                                                }
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 2) {
                                                                  return void 0;
                                                                }
                                                                result = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                newEntry.id = result.value;
                                                                len += result.len;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                if (result.tagNumber === 3) {
                                                                  len += result.len;
                                                                  result = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                  newEntry.index = result.value;
                                                                  len += result.len;
                                                                } else {
                                                                  newEntry.index = enums_default222222222222222.ASN1_ARRAY_ALL;
                                                                }
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber === 4) {
                                                                  const localValues = [];
                                                                  while (len + offset <= buffer.length && !decodeIsClosingTagNumber222222222222222(buffer, offset + len, 4)) {
                                                                    let localResult = bacappDecodeApplicationData222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      apduLen + offset - 1,
                                                                      value.objectId.type,
                                                                      newEntry.id
                                                                    );
                                                                    if (!localResult) {
                                                                      return void 0;
                                                                    }
                                                                    len += localResult.len;
                                                                    let resObj = {
                                                                      value: localResult.value,
                                                                      type: localResult.type
                                                                    };
                                                                    if (localResult.encoding !== void 0)
                                                                      resObj.encoding = localResult.encoding;
                                                                    localValues.push(resObj);
                                                                  }
                                                                  if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 4)) {
                                                                    return void 0;
                                                                  }
                                                                  if (localValues.count === 2 && localValues[0].type === enums_default222222222222222.ApplicationTag.DATE && localValues[1].type === enums_default222222222222222.ApplicationTag.TIME) {
                                                                    const date = localValues[0].value;
                                                                    const time = localValues[1].value;
                                                                    const bdatetime = new Date(
                                                                      date.year,
                                                                      date.month,
                                                                      date.day,
                                                                      time.hour,
                                                                      time.minute,
                                                                      time.second,
                                                                      time.millisecond
                                                                    );
                                                                    newEntry.value = [
                                                                      { type: enums_default222222222222222.ApplicationTag.DATETIME, value: bdatetime }
                                                                    ];
                                                                  } else {
                                                                    newEntry.value = localValues;
                                                                  }
                                                                  len++;
                                                                } else if (result.tagNumber === 5) {
                                                                  let err = {};
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  result = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                  len += result.len;
                                                                  err.errorClass = result.value;
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  result = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                  len += result.len;
                                                                  err.errorCode = result.value;
                                                                  if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 5)) {
                                                                    return void 0;
                                                                  }
                                                                  len++;
                                                                  newEntry.value = [
                                                                    {
                                                                      type: enums_default222222222222222.ApplicationTag.ERROR,
                                                                      value: err
                                                                    }
                                                                  ];
                                                                }
                                                                values.push(newEntry);
                                                              }
                                                              value.values = values;
                                                              return {
                                                                len,
                                                                value
                                                              };
                                                            };
                                                            var decodeSigned222222222222222 = (buffer, offset, length) => {
                                                              return {
                                                                len: length,
                                                                value: buffer.readIntBE(offset, length, true)
                                                              };
                                                            };
                                                            var decodeReal222222222222222 = (buffer, offset) => {
                                                              return {
                                                                len: 4,
                                                                value: buffer.readFloatBE(offset, true)
                                                              };
                                                            };
                                                            var decodeRealSafe222222222222222 = (buffer, offset, lenValue) => {
                                                              if (lenValue !== 4) {
                                                                return {
                                                                  len: lenValue,
                                                                  value: 0
                                                                };
                                                              } else {
                                                                return decodeReal222222222222222(buffer, offset);
                                                              }
                                                            };
                                                            var decodeDouble222222222222222 = (buffer, offset) => {
                                                              return {
                                                                len: 8,
                                                                value: buffer.readDoubleBE(offset, true)
                                                              };
                                                            };
                                                            var decodeDoubleSafe222222222222222 = (buffer, offset, lenValue) => {
                                                              if (lenValue !== 8) {
                                                                return {
                                                                  len: lenValue,
                                                                  value: 0
                                                                };
                                                              } else {
                                                                return decodeDouble222222222222222(buffer, offset);
                                                              }
                                                            };
                                                            var decodeOctetString222222222222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                                                              const octetString = [];
                                                              for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                                                                octetString.push(buffer[offset + i]);
                                                              }
                                                              return {
                                                                len: octetStringLength,
                                                                value: octetString
                                                              };
                                                            };
                                                            var multiCharsetCharacterstringDecode222222222222222 = (buffer, offset, maxLength, encoding, length) => {
                                                              const stringBuf = Buffer.alloc(length);
                                                              buffer.copy(stringBuf, 0, offset, offset + length);
                                                              return {
                                                                value: import_iconv_lite222222222222222.default.decode(stringBuf, getEncodingType222222222222222(encoding, buffer, offset)),
                                                                len: length + 1,
                                                                encoding
                                                              };
                                                            };
                                                            var decodeCharacterString222222222222222 = (buffer, offset, maxLength, lenValue) => {
                                                              return multiCharsetCharacterstringDecode222222222222222(
                                                                buffer,
                                                                offset + 1,
                                                                maxLength,
                                                                buffer[offset],
                                                                lenValue - 1
                                                              );
                                                            };
                                                            var bitstringSetBitsUsed222222222222222 = (bitString, bytesUsed, unusedBits) => {
                                                              bitString.bitsUsed = bytesUsed * 8;
                                                              bitString.bitsUsed -= unusedBits;
                                                            };
                                                            var decodeBitstring222222222222222 = (buffer, offset, lenValue) => {
                                                              let len = 0;
                                                              let bitString = {};
                                                              bitString.value = [];
                                                              if (lenValue > 0) {
                                                                const bytesUsed = lenValue - 1;
                                                                if (bytesUsed <= enums_default222222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                                  len = 1;
                                                                  for (let i = 0; i < bytesUsed; i++) {
                                                                    bitString.value.push(byteReverseBits222222222222222(buffer[offset + len++]));
                                                                  }
                                                                  const unusedBits = buffer[offset] & 7;
                                                                  bitstringSetBitsUsed222222222222222(bitString, bytesUsed, unusedBits);
                                                                }
                                                              }
                                                              return {
                                                                len,
                                                                value: bitString
                                                              };
                                                            };
                                                            var decodeDate222222222222222 = (buffer, offset) => {
                                                              let date;
                                                              const year = buffer[offset] + 1900;
                                                              const month = buffer[offset + 1];
                                                              const day = buffer[offset + 2];
                                                              const wday = buffer[offset + 3];
                                                              if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                                                                date = new Date(1, 1, 1);
                                                              } else {
                                                                date = new Date(year, month, day);
                                                              }
                                                              return {
                                                                len: 4,
                                                                value: date
                                                              };
                                                            };
                                                            var decodeDateSafe222222222222222 = (buffer, offset, lenValue) => {
                                                              if (lenValue !== 4) {
                                                                return {
                                                                  len: lenValue,
                                                                  value: new Date(1, 1, 1)
                                                                };
                                                              } else {
                                                                return decodeDate222222222222222(buffer, offset);
                                                              }
                                                            };
                                                            var decodeApplicationDate222222222222222 = (buffer, offset) => {
                                                              const result = decodeTagNumber222222222222222(buffer, offset);
                                                              if (result.tagNumber === enums_default222222222222222.ApplicationTag.DATE) {
                                                                const value = decodeDate222222222222222(buffer, offset + 1);
                                                                return {
                                                                  len: value.len + 1,
                                                                  value
                                                                };
                                                              }
                                                              return void 0;
                                                            };
                                                            var decodeBacnetTime222222222222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                                                              const hour = buffer[offset + 0];
                                                              const min = buffer[offset + 1];
                                                              const sec = buffer[offset + 2];
                                                              let hundredths = buffer[offset + 3];
                                                              if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                                                                value = new Date(1, 1, 1);
                                                              } else {
                                                                if (hundredths > 100)
                                                                  hundredths = 0;
                                                                value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                                                              }
                                                              return {
                                                                len: 4,
                                                                value
                                                              };
                                                            };
                                                            var decodeBacnetTimeSafe222222222222222 = (buffer, offset, lenValue) => {
                                                              if (lenValue !== 4) {
                                                                return {
                                                                  len: lenValue,
                                                                  value: new Date(1, 1, 1)
                                                                };
                                                              } else {
                                                                return decodeBacnetTime222222222222222(buffer, offset);
                                                              }
                                                            };
                                                            var decodeApplicationTime222222222222222 = (buffer, offset) => {
                                                              const result = decodeTagNumber222222222222222(buffer, offset);
                                                              if (result.tagNumber === enums_default222222222222222.ApplicationTag.TIME) {
                                                                const value = decodeBacnetTime222222222222222(buffer, offset + 1);
                                                                return {
                                                                  len: value.len + 1,
                                                                  value
                                                                };
                                                              }
                                                              return void 0;
                                                            };
                                                            var decodeBacnetDatetime222222222222222 = (buffer, offset) => {
                                                              let len = 0;
                                                              const date = decodeApplicationDate222222222222222(buffer, offset + len);
                                                              len += date.len;
                                                              const time = decodeApplicationTime222222222222222(buffer, offset + len);
                                                              len += time.len;
                                                              return {
                                                                len,
                                                                value: new Date(
                                                                  date.year,
                                                                  date.month,
                                                                  date.day,
                                                                  time.hour,
                                                                  time.minute,
                                                                  time.second,
                                                                  time.millisecond
                                                                )
                                                              };
                                                            };
                                                            var bacappDecodeData222222222222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                                                              let result;
                                                              let value = {
                                                                len: 0,
                                                                type: tagDataType
                                                              };
                                                              switch (tagDataType) {
                                                                case enums_default222222222222222.ApplicationTag.NULL:
                                                                  value.value = null;
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.BOOLEAN:
                                                                  value.value = lenValueType > 0;
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                                  result = decodeUnsigned222222222222222(buffer, offset, lenValueType);
                                                                  value.len += result.len;
                                                                  value.value = result.value;
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.SIGNED_INTEGER:
                                                                  result = decodeSigned222222222222222(buffer, offset, lenValueType);
                                                                  value.len += result.len;
                                                                  value.value = result.value;
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.REAL:
                                                                  result = decodeRealSafe222222222222222(buffer, offset, lenValueType);
                                                                  value.len += result.len;
                                                                  value.value = result.value;
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.DOUBLE:
                                                                  result = decodeDoubleSafe222222222222222(buffer, offset, lenValueType);
                                                                  value.len += result.len;
                                                                  value.value = result.value;
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.OCTET_STRING:
                                                                  result = decodeOctetString222222222222222(buffer, offset, maxLength, 0, lenValueType);
                                                                  value.len += result.len;
                                                                  value.value = result.value;
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.CHARACTER_STRING:
                                                                  result = decodeCharacterString222222222222222(buffer, offset, maxLength, lenValueType);
                                                                  value.len += result.len;
                                                                  value.value = result.value;
                                                                  value.encoding = result.encoding;
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.BIT_STRING:
                                                                  result = decodeBitstring222222222222222(buffer, offset, lenValueType);
                                                                  value.len += result.len;
                                                                  value.value = result.value;
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.ENUMERATED:
                                                                  result = decodeEnumerated222222222222222(buffer, offset, lenValueType);
                                                                  value.len += result.len;
                                                                  value.value = result.value;
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.DATE:
                                                                  result = decodeDateSafe222222222222222(buffer, offset, lenValueType);
                                                                  value.len += result.len;
                                                                  value.value = result.value;
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.TIME:
                                                                  result = decodeBacnetTimeSafe222222222222222(buffer, offset, lenValueType);
                                                                  value.len += result.len;
                                                                  value.value = result.value;
                                                                  break;
                                                                case enums_default222222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                                  result = decodeObjectIdSafe222222222222222(buffer, offset, lenValueType);
                                                                  value.len += result.len;
                                                                  value.value = { type: result.objectType, instance: result.instance };
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                              return value;
                                                            };
                                                            var bacappContextTagType222222222222222 = (property, tagNumber) => {
                                                              let tag = 0;
                                                              switch (property) {
                                                                case enums_default222222222222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                                                                case enums_default222222222222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                                                                case enums_default222222222222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                                                                  switch (tagNumber) {
                                                                    case 0:
                                                                    case 1:
                                                                      tag = enums_default222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                      break;
                                                                    case 2:
                                                                      tag = enums_default222222222222222.ApplicationTag.REAL;
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                  break;
                                                                case enums_default222222222222222.PropertyIdentifier.ACTION:
                                                                  switch (tagNumber) {
                                                                    case 0:
                                                                    case 1:
                                                                      tag = enums_default222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                      break;
                                                                    case 2:
                                                                      tag = enums_default222222222222222.ApplicationTag.ENUMERATED;
                                                                      break;
                                                                    case 3:
                                                                    case 5:
                                                                    case 6:
                                                                      tag = enums_default222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                      break;
                                                                    case 7:
                                                                    case 8:
                                                                      tag = enums_default222222222222222.ApplicationTag.BOOLEAN;
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                  break;
                                                                case enums_default222222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                                                                  switch (tagNumber) {
                                                                    case 0:
                                                                      tag = enums_default222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                  break;
                                                                case enums_default222222222222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                                                                  switch (tagNumber) {
                                                                    case 1:
                                                                      tag = enums_default222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                      break;
                                                                    case 3:
                                                                      tag = enums_default222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                  break;
                                                                case enums_default222222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                                                                  switch (tagNumber) {
                                                                    case 0:
                                                                    case 3:
                                                                      tag = enums_default222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                      break;
                                                                    case 1:
                                                                      tag = enums_default222222222222222.ApplicationTag.ENUMERATED;
                                                                      break;
                                                                    case 2:
                                                                      tag = enums_default222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                  break;
                                                                case enums_default222222222222222.PropertyIdentifier.SUBORDINATE_LIST:
                                                                  switch (tagNumber) {
                                                                    case 0:
                                                                    case 1:
                                                                      tag = enums_default222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                  break;
                                                                case enums_default222222222222222.PropertyIdentifier.RECIPIENT_LIST:
                                                                  switch (tagNumber) {
                                                                    case 0:
                                                                      tag = enums_default222222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                  break;
                                                                case enums_default222222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                                                                  switch (tagNumber) {
                                                                    case 0:
                                                                    case 1:
                                                                      break;
                                                                    case 2:
                                                                      tag = enums_default222222222222222.ApplicationTag.BOOLEAN;
                                                                      break;
                                                                    case 3:
                                                                      tag = enums_default222222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                      break;
                                                                    case 4:
                                                                      tag = enums_default222222222222222.ApplicationTag.REAL;
                                                                      break;
                                                                    default:
                                                                      break;
                                                                  }
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                              return tag;
                                                            };
                                                            var decodeDeviceObjPropertyRef222222222222222 = (buffer, offset, NOTUSEDARG = 0) => {
                                                              let len = 0;
                                                              let arrayIndex = enums_default222222222222222.ASN1_ARRAY_ALL;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              let objectId = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += objectId.len;
                                                              let result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 1) {
                                                                return void 0;
                                                              }
                                                              let id = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += id.len;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              if (result.tagNumber === 2) {
                                                                len += result.len;
                                                                arrayIndex = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += arrayIndex.len;
                                                              }
                                                              if (decodeIsContextTag222222222222222(buffer, offset + len, 3)) {
                                                                if (!isClosingTag222222222222222(buffer[offset + len])) {
                                                                  len++;
                                                                  objectId = decodeObjectId222222222222222(buffer, offset + len);
                                                                  len += objectId.len;
                                                                }
                                                              }
                                                              return {
                                                                len,
                                                                value: {
                                                                  objectId,
                                                                  id
                                                                }
                                                              };
                                                            };
                                                            var decodeReadAccessSpecification222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let value = {};
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              let decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              value.objectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              len += decodedValue.len;
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              const propertyIdAndArrayIndex = [];
                                                              while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                let propertyRef = {};
                                                                if (!isContextSpecific222222222222222(buffer[offset + len])) {
                                                                  return void 0;
                                                                }
                                                                let result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 0) {
                                                                  return void 0;
                                                                }
                                                                if (len + result.value >= apduLen) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                propertyRef.id = decodedValue.value;
                                                                len += decodedValue.len;
                                                                propertyRef.index = enums_default222222222222222.ASN1_ARRAY_ALL;
                                                                if (isContextSpecific222222222222222(buffer[offset + len]) && !isClosingTag222222222222222(buffer[offset + len])) {
                                                                  const tmp = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  if (tmp.tagNumber === 1) {
                                                                    len += tmp.len;
                                                                    if (len + tmp.value >= apduLen) {
                                                                      return void 0;
                                                                    }
                                                                    decodedValue = decodeUnsigned222222222222222(buffer, offset + len, tmp.value);
                                                                    propertyRef.index = decodedValue.value;
                                                                    len += decodedValue.len;
                                                                  }
                                                                }
                                                                propertyIdAndArrayIndex.push(propertyRef);
                                                              }
                                                              if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              value.properties = propertyIdAndArrayIndex;
                                                              return {
                                                                len,
                                                                value
                                                              };
                                                            };
                                                            var decodeCovSubscription222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let value = {};
                                                              let result;
                                                              let decodedValue;
                                                              value.recipient = {};
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== enums_default222222222222222.ApplicationTag.UNSIGNED_INTEGER) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.recipient.net = decodedValue.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== enums_default222222222222222.ApplicationTag.OCTET_STRING) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeOctetString222222222222222(
                                                                buffer,
                                                                offset + len,
                                                                apduLen,
                                                                0,
                                                                result.value
                                                              );
                                                              len += decodedValue.len;
                                                              value.recipient.adr = decodedValue.value;
                                                              if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 1) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.subscriptionProcessId = decodedValue.value;
                                                              if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 0) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              value.monitoredObjectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 1) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.monitoredProperty = {};
                                                              value.monitoredProperty.id = decodedValue.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              if (result.tagNumber === 2) {
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.monitoredProperty.index = decodedValue.value;
                                                              } else {
                                                                value.monitoredProperty.index = enums_default222222222222222.ASN1_ARRAY_ALL;
                                                              }
                                                              if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 2) {
                                                                return void 0;
                                                              }
                                                              value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                              len++;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 3) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.timeRemaining = decodedValue.value;
                                                              if (len < apduLen && !isClosingTag222222222222222(buffer[offset + len])) {
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 4) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeReal222222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                value.covIncrement = decodedValue.value;
                                                              }
                                                              return {
                                                                len,
                                                                value
                                                              };
                                                            };
                                                            var decodeCalendarDate222222222222222 = (buffer, offset) => {
                                                              return {
                                                                len: 4,
                                                                year: buffer[offset],
                                                                month: buffer[offset + 1],
                                                                day: buffer[offset + 2],
                                                                wday: buffer[offset + 3]
                                                              };
                                                            };
                                                            var decodeCalendarDateRange222222222222222 = (buffer, offset) => {
                                                              let len = 1;
                                                              const startDate = decodeDate222222222222222(buffer, offset + len);
                                                              len += startDate.len + 1;
                                                              const endDate = decodeDate222222222222222(buffer, offset + len);
                                                              len += endDate.len + 1;
                                                              return {
                                                                len,
                                                                startDate,
                                                                endDate
                                                              };
                                                            };
                                                            var decodeCalendarWeekDay222222222222222 = (buffer, offset) => {
                                                              return {
                                                                len: 3,
                                                                month: buffer[offset],
                                                                week: buffer[offset + 1],
                                                                wday: buffer[offset + 2]
                                                              };
                                                            };
                                                            var decodeCalendar222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              const entries = [];
                                                              let decodedValue;
                                                              while (len < apduLen) {
                                                                const result = decodeTagNumber222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                switch (result.tagNumber) {
                                                                  case 0:
                                                                    decodedValue = decodeCalendarDate222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    entries.push(decodedValue);
                                                                    break;
                                                                  case 1:
                                                                    decodedValue = decodeCalendarDateRange222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    entries.push(decodedValue);
                                                                    break;
                                                                  case 2:
                                                                    decodedValue = decodeCalendarWeekDay222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    entries.push(decodedValue);
                                                                    break;
                                                                  default:
                                                                    return {
                                                                      len: len - 1,
                                                                      value: entries
                                                                    };
                                                                }
                                                              }
                                                            };
                                                            var bacappDecodeContextApplicationData222222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                              let len = 0;
                                                              let result;
                                                              if (isContextSpecific222222222222222(buffer[offset])) {
                                                                if (propertyId === enums_default222222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                                                                  result = decodeReadAccessSpecification222222222222222(buffer, offset, maxOffset);
                                                                  if (!result) {
                                                                    return void 0;
                                                                  }
                                                                  return {
                                                                    type: enums_default222222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                                                    value: result.value,
                                                                    len: result.len
                                                                  };
                                                                } else if (propertyId === enums_default222222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                                                                  result = decodeCovSubscription222222222222222(buffer, offset, maxOffset);
                                                                  if (!result) {
                                                                    return void 0;
                                                                  }
                                                                  return {
                                                                    type: enums_default222222222222222.ApplicationTag.COV_SUBSCRIPTION,
                                                                    value: result.value,
                                                                    len: result.len
                                                                  };
                                                                } else if (objectType === enums_default222222222222222.ObjectType.GROUP && propertyId === enums_default222222222222222.PropertyIdentifier.PRESENT_VALUE) {
                                                                  result = decodeReadAccessResult222222222222222(buffer, offset, maxOffset);
                                                                  if (!result) {
                                                                    return void 0;
                                                                  }
                                                                  return {
                                                                    type: enums_default222222222222222.ApplicationTag.READ_ACCESS_RESULT,
                                                                    value: result.value,
                                                                    len: result.len
                                                                  };
                                                                } else if (propertyId === enums_default222222222222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default222222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default222222222222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                                                                  result = decodeDeviceObjPropertyRef222222222222222(buffer, offset, maxOffset);
                                                                  if (!result) {
                                                                    return void 0;
                                                                  }
                                                                  return {
                                                                    type: enums_default222222222222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                                                    value: result.value,
                                                                    len: result.len
                                                                  };
                                                                } else if (propertyId === enums_default222222222222222.PropertyIdentifier.DATE_LIST) {
                                                                  result = decodeCalendar222222222222222(buffer, offset, maxOffset);
                                                                  if (!result) {
                                                                    return void 0;
                                                                  }
                                                                  return {
                                                                    type: enums_default222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                                                    value: result.value,
                                                                    len: result.len
                                                                  };
                                                                } else if (propertyId === enums_default222222222222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                                                                  let subEvtResult;
                                                                  let evtResult = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += 1;
                                                                  if (evtResult.tagNumber === 0) {
                                                                    subEvtResult = decodeBacnetTime222222222222222(buffer, offset + 1);
                                                                    return {
                                                                      type: enums_default222222222222222.ApplicationTag.TIMESTAMP,
                                                                      value: subEvtResult.value,
                                                                      len: subEvtResult.len + 1
                                                                    };
                                                                  } else if (evtResult.tagNumber === 1) {
                                                                    subEvtResult = decodeUnsigned222222222222222(buffer, offset + len, evtResult.value);
                                                                    return {
                                                                      type: enums_default222222222222222.ApplicationTag.UNSIGNED_INTEGER,
                                                                      value: subEvtResult.value,
                                                                      len: subEvtResult.len + 1
                                                                    };
                                                                  } else if (evtResult.tagNumber === 2) {
                                                                    subEvtResult = decodeBacnetDatetime222222222222222(buffer, offset + len);
                                                                    return {
                                                                      type: enums_default222222222222222.ApplicationTag.TIMESTAMP,
                                                                      value: subEvtResult.value,
                                                                      len: subEvtResult.len + 2
                                                                    };
                                                                  } else {
                                                                    return void 0;
                                                                  }
                                                                }
                                                                const list = [];
                                                                let tagResult = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                let multipleValues = isOpeningTag222222222222222(buffer[offset + len]);
                                                                while (len + offset <= maxOffset && !isClosingTag222222222222222(buffer[offset + len])) {
                                                                  let subResult = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  if (!subResult) {
                                                                    return void 0;
                                                                  }
                                                                  if (subResult.value === 0) {
                                                                    len += subResult.len;
                                                                    result = bacappDecodeApplicationData222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      maxOffset,
                                                                      enums_default222222222222222.ASN1_MAX_OBJECT_TYPE,
                                                                      enums_default222222222222222.ASN1_MAX_PROPERTY_ID
                                                                    );
                                                                    if (!result) {
                                                                      return void 0;
                                                                    }
                                                                    list.push(result);
                                                                    len += result.len;
                                                                  } else {
                                                                    const overrideTagNumber = bacappContextTagType222222222222222(
                                                                      propertyId,
                                                                      subResult.tagNumber
                                                                    );
                                                                    if (overrideTagNumber !== enums_default222222222222222.ASN1_MAX_APPLICATION_TAG) {
                                                                      subResult.tagNumber = overrideTagNumber;
                                                                    }
                                                                    let bacappResult = bacappDecodeData222222222222222(
                                                                      buffer,
                                                                      offset + len + subResult.len,
                                                                      maxOffset,
                                                                      subResult.tagNumber,
                                                                      subResult.value
                                                                    );
                                                                    if (!bacappResult) {
                                                                      return void 0;
                                                                    }
                                                                    if (bacappResult.len === subResult.value) {
                                                                      let resObj = {
                                                                        value: bacappResult.value,
                                                                        type: bacappResult.type
                                                                      };
                                                                      if (bacappResult.encoding !== void 0)
                                                                        resObj.encoding = bacappResult.encoding;
                                                                      list.push(resObj);
                                                                      len += subResult.len + subResult.value;
                                                                    } else {
                                                                      list.push({
                                                                        value: buffer.slice(
                                                                          offset + len + subResult.len,
                                                                          offset + len + subResult.len + subResult.value
                                                                        ),
                                                                        type: enums_default222222222222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                                                      });
                                                                      len += subResult.len + subResult.value;
                                                                    }
                                                                  }
                                                                  if (multipleValues === false) {
                                                                    return {
                                                                      len,
                                                                      value: list[0],
                                                                      type: enums_default222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                                    };
                                                                  }
                                                                }
                                                                if (len + offset > maxOffset) {
                                                                  return void 0;
                                                                }
                                                                if (decodeIsClosingTagNumber222222222222222(buffer, offset + len, tagResult.tagNumber)) {
                                                                  len++;
                                                                }
                                                                return {
                                                                  len,
                                                                  value: list,
                                                                  type: enums_default222222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                                };
                                                              }
                                                              return void 0;
                                                            };
                                                            var bacappEncodeTimestamp222222222222222 = (buffer, value) => {
                                                              switch (value.type) {
                                                                case enums_default222222222222222.TimeStamp.TIME:
                                                                  encodeContextTime222222222222222(buffer, 0, value.value);
                                                                  break;
                                                                case enums_default222222222222222.TimeStamp.SEQUENCE_NUMBER:
                                                                  encodeContextUnsigned222222222222222(buffer, 1, value.value);
                                                                  break;
                                                                case enums_default222222222222222.TimeStamp.DATETIME:
                                                                  bacappEncodeContextDatetime222222222222222(buffer, 2, value.value);
                                                                  break;
                                                                default:
                                                                  throw new Error("NOT_IMPLEMENTED");
                                                              }
                                                            };
                                                            var bacappEncodeContextTimestamp222222222222222 = (buffer, tagNumber, value) => {
                                                              encodeOpeningTag222222222222222(buffer, tagNumber);
                                                              bacappEncodeTimestamp222222222222222(buffer, value);
                                                              encodeClosingTag222222222222222(buffer, tagNumber);
                                                            };
                                                            var decodeContextCharacterString222222222222222 = (buffer, offset, maxLength, tagNumber) => {
                                                              let len = 0;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, tagNumber)) {
                                                                return void 0;
                                                              }
                                                              const result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              const decodedValue = multiCharsetCharacterstringDecode222222222222222(
                                                                buffer,
                                                                offset + 1 + len,
                                                                maxLength,
                                                                buffer[offset + len],
                                                                result.value - 1
                                                              );
                                                              if (!decodedValue) {
                                                                return void 0;
                                                              }
                                                              len += result.value;
                                                              return {
                                                                len,
                                                                value: decodedValue.value,
                                                                encoding: decodedValue.encoding
                                                              };
                                                            };
                                                            var decodeIsContextTagWithLength222222222222222 = (buffer, offset, tagNumber) => {
                                                              const result = decodeTagNumber222222222222222(buffer, offset);
                                                              return {
                                                                len: result.len,
                                                                value: isContextSpecific222222222222222(buffer[offset]) && result.tagNumber === tagNumber
                                                              };
                                                            };
                                                            var decodeContextObjectId222222222222222 = (buffer, offset, tagNumber) => {
                                                              const result = decodeIsContextTagWithLength222222222222222(buffer, offset, tagNumber);
                                                              if (!result.value) {
                                                                return void 0;
                                                              }
                                                              const decodedValue = decodeObjectId222222222222222(buffer, offset + result.len);
                                                              decodedValue.len = decodedValue.len + result.len;
                                                              return decodedValue;
                                                            };
                                                            var encodeBacnetCharacterString222222222222222 = (buffer, value, encoding) => {
                                                              encoding = encoding || enums_default222222222222222.CharacterStringEncoding.UTF_8;
                                                              buffer.buffer[buffer.offset++] = encoding;
                                                              const bufEncoded = import_iconv_lite222222222222222.default.encode(value, getEncodingType222222222222222(encoding));
                                                              buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                                                            };
                                                            var encodeApplicationCharacterString222222222222222 = (buffer, value, encoding) => {
                                                              const tmp = getBuffer222222222222222();
                                                              encodeBacnetCharacterString222222222222222(tmp, value, encoding);
                                                              encodeTag222222222222222(buffer, enums_default222222222222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                                                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                              buffer.offset += tmp.offset;
                                                            };
                                                            var encodeContextCharacterString222222222222222 = (buffer, tagNumber, value, encoding) => {
                                                              const tmp = getBuffer222222222222222();
                                                              encodeBacnetCharacterString222222222222222(tmp, value, encoding);
                                                              encodeTag222222222222222(buffer, tagNumber, true, tmp.offset);
                                                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                              buffer.offset += tmp.offset;
                                                            };
                                                            var encode3322222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                              encodeContextObjectId222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                              encodeContextEnumerated222222222222222(buffer, 1, propertyId);
                                                              if (arrayIndex !== ASN1_ARRAY_ALL222222222222222) {
                                                                encodeContextUnsigned222222222222222(buffer, 2, arrayIndex);
                                                              }
                                                              encodeOpeningTag222222222222222(buffer, 3);
                                                              values.forEach((value) => {
                                                                bacappEncodeApplicationData222222222222222(buffer, value);
                                                              });
                                                              encodeClosingTag222222222222222(buffer, 3);
                                                            };
                                                            var decode3322222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let value = {};
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              value.objectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.property = { id: decodedValue.value };
                                                              if (len < apduLen && decodeIsContextTag222222222222222(buffer, offset + len, 2)) {
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.property.index = decodedValue.value;
                                                              } else {
                                                                value.property.index = ASN1_ARRAY_ALL222222222222222;
                                                              }
                                                              const values = [];
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 3)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              while (apduLen - len > 1) {
                                                                result = bacappDecodeApplicationData222222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  apduLen + offset,
                                                                  value.objectId.type,
                                                                  value.property.id
                                                                );
                                                                if (!result) {
                                                                  return void 0;
                                                                }
                                                                len += result.len;
                                                                delete result.len;
                                                                values.push(result);
                                                              }
                                                              value.values = values;
                                                              if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 3)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var alarm_acknowledge_exports222222222222222 = {};
                                                            __export222222222222222(alarm_acknowledge_exports222222222222222, {
                                                              decode: () => decode21022222222222222,
                                                              encode: () => encode21022222222222222
                                                            });
                                                            var encode21022222222222222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                                                              encodeContextUnsigned222222222222222(buffer, 0, ackProcessId);
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                1,
                                                                eventObjectId.type,
                                                                eventObjectId.instance
                                                              );
                                                              encodeContextEnumerated222222222222222(buffer, 2, eventStateAcknowledged);
                                                              bacappEncodeContextTimestamp222222222222222(buffer, 3, eventTimeStamp);
                                                              encodeContextCharacterString222222222222222(buffer, 4, ackSource);
                                                              bacappEncodeContextTimestamp222222222222222(buffer, 5, ackTimeStamp);
                                                            };
                                                            var decode21022222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let value = {};
                                                              let result;
                                                              let decodedValue;
                                                              let date;
                                                              let time;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.acknowledgedProcessId = decodedValue.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              value.eventObjectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.eventStateAcknowledged = decodedValue.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber === 0) {
                                                                decodedValue = decodeBacnetTime222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.eventTimeStamp = decodedValue.value;
                                                              } else if (result.tagNumber === 1) {
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.eventTimeStamp = decodedValue.value;
                                                              } else if (result.tagNumber === 2) {
                                                                date = decodeApplicationDate222222222222222(buffer, offset + len);
                                                                len += date.len;
                                                                date = date.value.value;
                                                                time = decodeApplicationTime222222222222222(buffer, offset + len);
                                                                len += time.len;
                                                                time = time.value.value;
                                                                value.eventTimeStamp = new Date(
                                                                  date.getFullYear(),
                                                                  date.getMonth(),
                                                                  date.getDate(),
                                                                  time.getHours(),
                                                                  time.getMinutes(),
                                                                  time.getSeconds(),
                                                                  time.getMilliseconds()
                                                                );
                                                                len++;
                                                              }
                                                              len++;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeCharacterString222222222222222(
                                                                buffer,
                                                                offset + len,
                                                                apduLen - (offset + len),
                                                                result.value
                                                              );
                                                              value.acknowledgeSource = decodedValue.value;
                                                              len += decodedValue.len;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber === 0) {
                                                                decodedValue = decodeBacnetTime222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.acknowledgeTimeStamp = decodedValue.value;
                                                              } else if (result.tagNumber === 1) {
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.acknowledgeTimeStamp = decodedValue.value;
                                                              } else if (result.tagNumber === 2) {
                                                                date = decodeApplicationDate222222222222222(buffer, offset + len);
                                                                len += date.len;
                                                                date = date.value.value;
                                                                time = decodeApplicationTime222222222222222(buffer, offset + len);
                                                                len += time.len;
                                                                time = time.value.value;
                                                                value.acknowledgeTimeStamp = new Date(
                                                                  date.getFullYear(),
                                                                  date.getMonth(),
                                                                  date.getDate(),
                                                                  time.getHours(),
                                                                  time.getMinutes(),
                                                                  time.getSeconds(),
                                                                  time.getMilliseconds()
                                                                );
                                                                len++;
                                                              }
                                                              len++;
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var alarm_summary_exports222222222222222 = {};
                                                            __export222222222222222(alarm_summary_exports222222222222222, {
                                                              decode: () => decode3422222222222222,
                                                              encode: () => encode3422222222222222
                                                            });
                                                            var encode3422222222222222 = (buffer, alarms) => {
                                                              alarms.forEach((alarm) => {
                                                                encodeContextObjectId222222222222222(
                                                                  buffer,
                                                                  12,
                                                                  alarm.objectId.type,
                                                                  alarm.objectId.instance
                                                                );
                                                                encodeContextEnumerated222222222222222(buffer, 9, alarm.alarmState);
                                                                encodeContextBitstring222222222222222(buffer, 8, alarm.acknowledgedTransitions);
                                                              });
                                                            };
                                                            var decode3422222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              const alarms = [];
                                                              while (apduLen - 3 - len > 0) {
                                                                let value = {};
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                value.objectId = {
                                                                  type: decodedValue.objectType,
                                                                  instance: decodedValue.instance
                                                                };
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.alarmState = decodedValue.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeBitstring222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.acknowledgedTransitions = decodedValue.value;
                                                                alarms.push(value);
                                                              }
                                                              return {
                                                                len,
                                                                alarms
                                                              };
                                                            };
                                                            var atomic_read_file_exports222222222222222 = {};
                                                            __export222222222222222(atomic_read_file_exports222222222222222, {
                                                              decode: () => decode4222222222222222,
                                                              decodeAcknowledge: () => decodeAcknowledge822222222222222,
                                                              encode: () => encode4222222222222222,
                                                              encodeAcknowledge: () => encodeAcknowledge922222222222222
                                                            });
                                                            var encode4222222222222222 = (buffer, isStream, objectId, position, count) => {
                                                              encodeApplicationObjectId222222222222222(buffer, objectId.type, objectId.instance);
                                                              if (isStream) {
                                                                encodeOpeningTag222222222222222(buffer, 0);
                                                                encodeApplicationSigned222222222222222(buffer, position);
                                                                encodeApplicationUnsigned222222222222222(buffer, count);
                                                                encodeClosingTag222222222222222(buffer, 0);
                                                              } else {
                                                                encodeOpeningTag222222222222222(buffer, 1);
                                                                encodeApplicationSigned222222222222222(buffer, position);
                                                                encodeApplicationUnsigned222222222222222(buffer, count);
                                                                encodeClosingTag222222222222222(buffer, 1);
                                                              }
                                                            };
                                                            var decode4222222222222222 = (buffer, offset) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let isStream = true;
                                                              let objectId = {};
                                                              let position = -1;
                                                              let count = 0;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 12) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                                                              if (decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 0)) {
                                                                isStream = true;
                                                                len++;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 3) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeSigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                position = decodedValue.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 2) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                count = decodedValue.value;
                                                                if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 0)) {
                                                                  return void 0;
                                                                }
                                                                len++;
                                                              } else if (decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                isStream = false;
                                                                len++;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 3) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeSigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                position = decodedValue.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 2) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                count = decodedValue.value;
                                                                if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                  return void 0;
                                                                }
                                                                len++;
                                                              } else {
                                                                return void 0;
                                                              }
                                                              return {
                                                                len,
                                                                isStream,
                                                                objectId,
                                                                position,
                                                                count
                                                              };
                                                            };
                                                            var encodeAcknowledge922222222222222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                                                              encodeApplicationBoolean222222222222222(buffer, endOfFile);
                                                              if (isStream) {
                                                                encodeOpeningTag222222222222222(buffer, 0);
                                                                encodeApplicationSigned222222222222222(buffer, position);
                                                                encodeApplicationOctetString222222222222222(buffer, blocks[0], 0, counts[0]);
                                                                encodeClosingTag222222222222222(buffer, 0);
                                                              } else {
                                                                encodeOpeningTag222222222222222(buffer, 1);
                                                                encodeApplicationSigned222222222222222(buffer, position);
                                                                encodeApplicationUnsigned222222222222222(buffer, blockCount);
                                                                for (let i = 0; i < blockCount; i++) {
                                                                  encodeApplicationOctetString222222222222222(buffer, blocks[i], 0, counts[i]);
                                                                }
                                                                encodeClosingTag222222222222222(buffer, 1);
                                                              }
                                                            };
                                                            var decodeAcknowledge822222222222222 = (buffer, offset, length = 0) => {
                                                              let len = length;
                                                              let result;
                                                              let decodedValue;
                                                              let endOfFile;
                                                              let isStream;
                                                              let position;
                                                              let targetBuffer;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 1) {
                                                                return void 0;
                                                              }
                                                              endOfFile = result.value > 0;
                                                              if (decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 0)) {
                                                                isStream = true;
                                                                len++;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 3) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeSigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                position = decodedValue.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 6) {
                                                                  return void 0;
                                                                }
                                                                targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                                                                len += result.value;
                                                                if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 0)) {
                                                                  return void 0;
                                                                }
                                                                len++;
                                                              } else if (decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                isStream = false;
                                                                throw new Error("NotImplemented");
                                                              } else {
                                                                return void 0;
                                                              }
                                                              return {
                                                                len,
                                                                endOfFile,
                                                                isStream,
                                                                position,
                                                                buffer: targetBuffer
                                                              };
                                                            };
                                                            var atomic_write_file_exports222222222222222 = {};
                                                            __export222222222222222(atomic_write_file_exports222222222222222, {
                                                              decode: () => decode5222222222222222,
                                                              decodeAcknowledge: () => decodeAcknowledge2222222222222222,
                                                              encode: () => encode5222222222222222,
                                                              encodeAcknowledge: () => encodeAcknowledge2222222222222222
                                                            });
                                                            var encode5222222222222222 = (buffer, isStream, objectId, position, blocks) => {
                                                              encodeApplicationObjectId222222222222222(buffer, objectId.type, objectId.instance);
                                                              if (isStream) {
                                                                encodeOpeningTag222222222222222(buffer, 0);
                                                                encodeApplicationSigned222222222222222(buffer, position);
                                                                encodeApplicationOctetString222222222222222(buffer, blocks[0], 0, blocks[0].length);
                                                                encodeClosingTag222222222222222(buffer, 0);
                                                              } else {
                                                                encodeOpeningTag222222222222222(buffer, 1);
                                                                encodeApplicationSigned222222222222222(buffer, position);
                                                                encodeApplicationUnsigned222222222222222(buffer, blocks.length);
                                                                for (let i = 0; i < blocks.length; i++) {
                                                                  encodeApplicationOctetString222222222222222(
                                                                    buffer,
                                                                    blocks[i],
                                                                    0,
                                                                    blocks[i].length
                                                                  );
                                                                }
                                                                encodeClosingTag222222222222222(buffer, 1);
                                                              }
                                                            };
                                                            var decode5222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let isStream;
                                                              let position;
                                                              let blocks = [];
                                                              let blockCount;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 12) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              let objectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              if (decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 0)) {
                                                                isStream = true;
                                                                len++;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 3) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeSigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                position = decodedValue.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 6) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeOctetString222222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  apduLen,
                                                                  0,
                                                                  result.value
                                                                );
                                                                len += decodedValue.len;
                                                                blocks.push(decodedValue.value);
                                                                if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 0)) {
                                                                  return void 0;
                                                                }
                                                                len++;
                                                              } else if (decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                isStream = false;
                                                                len++;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 3) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeSigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                position = decodedValue.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 2) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                blockCount = decodedValue.value;
                                                                for (let i = 0; i < blockCount; i++) {
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber !== 6) {
                                                                    return void 0;
                                                                  }
                                                                  decodedValue = decodeOctetString222222222222222(
                                                                    buffer,
                                                                    offset + len,
                                                                    apduLen,
                                                                    0,
                                                                    result.value
                                                                  );
                                                                  len += decodedValue.len;
                                                                  blocks.push(decodedValue.value);
                                                                }
                                                                if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                  return void 0;
                                                                }
                                                                len++;
                                                              } else {
                                                                return void 0;
                                                              }
                                                              return {
                                                                len,
                                                                isStream,
                                                                objectId,
                                                                position,
                                                                blocks
                                                              };
                                                            };
                                                            var encodeAcknowledge2222222222222222 = (buffer, isStream, position) => {
                                                              if (isStream) {
                                                                encodeContextSigned222222222222222(buffer, 0, position);
                                                              } else {
                                                                encodeContextSigned222222222222222(buffer, 1, position);
                                                              }
                                                            };
                                                            var decodeAcknowledge2222222222222222 = (buffer, offset, length = 0) => {
                                                              let len = length;
                                                              let isStream = false;
                                                              let position = 0;
                                                              let decodedValue;
                                                              const result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber === 0) {
                                                                isStream = true;
                                                              } else if (result.tagNumber === 1) {
                                                                isStream = false;
                                                              } else {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeSigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              position = decodedValue.value;
                                                              return {
                                                                len,
                                                                isStream,
                                                                position
                                                              };
                                                            };
                                                            var cov_notify_exports222222222222222 = {};
                                                            __export222222222222222(cov_notify_exports222222222222222, {
                                                              decode: () => decode6222222222222222,
                                                              encode: () => encode6222222222222222
                                                            });
                                                            var encode6222222222222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                                                              encodeContextUnsigned222222222222222(buffer, 0, subscriberProcessId);
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                1,
                                                                8,
                                                                initiatingDeviceId
                                                              );
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                2,
                                                                monitoredObjectId.type,
                                                                monitoredObjectId.instance
                                                              );
                                                              encodeContextUnsigned222222222222222(buffer, 3, timeRemaining);
                                                              encodeOpeningTag222222222222222(buffer, 4);
                                                              values.forEach((value) => {
                                                                encodeContextEnumerated222222222222222(buffer, 0, value.property.id);
                                                                if (value.property.index === ASN1_ARRAY_ALL222222222222222) {
                                                                  encodeContextUnsigned222222222222222(buffer, 1, value.property.index);
                                                                }
                                                                encodeOpeningTag222222222222222(buffer, 2);
                                                                value.value.forEach((v) => {
                                                                  bacappEncodeApplicationData222222222222222(buffer, v);
                                                                });
                                                                encodeClosingTag222222222222222(buffer, 2);
                                                                if (value.priority === ASN1_NO_PRIORITY222222222222222) {
                                                                  encodeContextUnsigned222222222222222(buffer, 3, value.priority);
                                                                }
                                                              });
                                                              encodeClosingTag222222222222222(buffer, 4);
                                                            };
                                                            var decode6222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              const subscriberProcessId = decodedValue.value;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              const initiatingDeviceId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 2)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              const monitoredObjectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 3)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              const timeRemaining = decodedValue.value;
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 4)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              const values = [];
                                                              while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222222222(buffer, offset + len, 4)) {
                                                                let newEntry = {};
                                                                newEntry.property = {};
                                                                if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                  return void 0;
                                                                }
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                newEntry.property.id = decodedValue.value;
                                                                if (decodeIsContextTag222222222222222(buffer, offset + len, 1)) {
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  newEntry.property.index = decodedValue.value;
                                                                } else {
                                                                  newEntry.property.index = ASN1_ARRAY_ALL222222222222222;
                                                                }
                                                                if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 2)) {
                                                                  return void 0;
                                                                }
                                                                len++;
                                                                const properties = [];
                                                                while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222222222(buffer, offset + len, 2)) {
                                                                  decodedValue = bacappDecodeApplicationData222222222222222(
                                                                    buffer,
                                                                    offset + len,
                                                                    apduLen + offset,
                                                                    monitoredObjectId.type,
                                                                    newEntry.property.id
                                                                  );
                                                                  if (!decodedValue) {
                                                                    return void 0;
                                                                  }
                                                                  len += decodedValue.len;
                                                                  delete decodedValue.len;
                                                                  properties.push(decodedValue);
                                                                }
                                                                newEntry.value = properties;
                                                                len++;
                                                                if (decodeIsContextTag222222222222222(buffer, offset + len, 3)) {
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  newEntry.priority = decodedValue.value;
                                                                } else {
                                                                  newEntry.priority = ASN1_NO_PRIORITY222222222222222;
                                                                }
                                                                values.push(newEntry);
                                                              }
                                                              return {
                                                                len,
                                                                subscriberProcessId,
                                                                initiatingDeviceId,
                                                                monitoredObjectId,
                                                                timeRemaining,
                                                                values
                                                              };
                                                            };
                                                            var create_object_exports222222222222222 = {};
                                                            __export222222222222222(create_object_exports222222222222222, {
                                                              decode: () => decode7222222222222222,
                                                              encode: () => encode7222222222222222,
                                                              encodeAcknowledge: () => encodeAcknowledge3222222222222222
                                                            });
                                                            var encode7222222222222222 = (buffer, objectId, values) => {
                                                              encodeOpeningTag222222222222222(buffer, 0);
                                                              encodeContextObjectId222222222222222(buffer, 1, objectId.type, objectId.instance);
                                                              encodeClosingTag222222222222222(buffer, 0);
                                                              encodeOpeningTag222222222222222(buffer, 1);
                                                              values.forEach((propertyValue) => {
                                                                encodeContextEnumerated222222222222222(buffer, 0, propertyValue.property.id);
                                                                if (propertyValue.property.index !== ASN1_ARRAY_ALL222222222222222) {
                                                                  encodeContextUnsigned222222222222222(buffer, 1, propertyValue.property.index);
                                                                }
                                                                encodeOpeningTag222222222222222(buffer, 2);
                                                                propertyValue.value.forEach((value) => {
                                                                  bacappEncodeApplicationData222222222222222(buffer, value);
                                                                });
                                                                encodeClosingTag222222222222222(buffer, 2);
                                                                if (propertyValue.priority !== ASN1_NO_PRIORITY222222222222222) {
                                                                  encodeContextUnsigned222222222222222(buffer, 3, propertyValue.priority);
                                                                }
                                                              });
                                                              encodeClosingTag222222222222222(buffer, 1);
                                                            };
                                                            var decode7222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let objectId;
                                                              const valueList = [];
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber === 0 && apduLen > len) {
                                                                apduLen -= len;
                                                                if (apduLen < 4) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeContextObjectId222222222222222(buffer, offset + len, 1);
                                                                len += decodedValue.len;
                                                                objectId = {
                                                                  type: decodedValue.objectType,
                                                                  instance: decodedValue.instance
                                                                };
                                                              } else {
                                                                return void 0;
                                                              }
                                                              if (decodeIsClosingTag222222222222222(buffer, offset + len)) {
                                                                len++;
                                                              }
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              while (apduLen - len > 1) {
                                                                let newEntry = {};
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 0) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                let propertyId = decodedValue.value;
                                                                let arraIndex = ASN1_ARRAY_ALL222222222222222;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber === 1) {
                                                                  decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  arraIndex += decodedValue.value;
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                }
                                                                newEntry.property = { id: propertyId, index: arraIndex };
                                                                if (result.tagNumber === 2 && decodeIsOpeningTag222222222222222(buffer, offset + len - 1)) {
                                                                  const values = [];
                                                                  while (!decodeIsClosingTag222222222222222(buffer, offset + len)) {
                                                                    decodedValue = bacappDecodeApplicationData222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      apduLen + offset,
                                                                      objectId.type,
                                                                      propertyId
                                                                    );
                                                                    if (!decodedValue) {
                                                                      return void 0;
                                                                    }
                                                                    len += decodedValue.len;
                                                                    delete decodedValue.len;
                                                                    values.push(decodedValue);
                                                                  }
                                                                  len++;
                                                                  newEntry.value = values;
                                                                } else {
                                                                  return void 0;
                                                                }
                                                                valueList.push(newEntry);
                                                              }
                                                              if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              return {
                                                                len,
                                                                objectId,
                                                                values: valueList
                                                              };
                                                            };
                                                            var encodeAcknowledge3222222222222222 = (buffer, objectId) => {
                                                              encodeApplicationObjectId222222222222222(buffer, objectId.type, objectId.instance);
                                                            };
                                                            var delete_object_exports222222222222222 = {};
                                                            __export222222222222222(delete_object_exports222222222222222, {
                                                              decode: () => decode8222222222222222,
                                                              encode: () => encode8222222222222222
                                                            });
                                                            var decode8222222222222222 = (buffer, offset, apduLen) => {
                                                              const result = decodeTagNumberAndValue222222222222222(buffer, offset);
                                                              if (result.tagNumber !== 12) {
                                                                return void 0;
                                                              }
                                                              let len = 1;
                                                              const value = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += value.len;
                                                              if (len !== apduLen) {
                                                                return void 0;
                                                              }
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var encode8222222222222222 = (buffer, objectId) => {
                                                              encodeApplicationObjectId222222222222222(buffer, objectId.type, objectId.instance);
                                                            };
                                                            var device_communication_control_exports222222222222222 = {};
                                                            __export222222222222222(device_communication_control_exports222222222222222, {
                                                              decode: () => decode9222222222222222,
                                                              encode: () => encode9222222222222222
                                                            });
                                                            var encode9222222222222222 = (buffer, timeDuration, enableDisable, password) => {
                                                              if (timeDuration > 0) {
                                                                encodeContextUnsigned222222222222222(buffer, 0, timeDuration);
                                                              }
                                                              encodeContextEnumerated222222222222222(buffer, 1, enableDisable);
                                                              if (password && password !== "") {
                                                                encodeContextCharacterString222222222222222(buffer, 2, password);
                                                              }
                                                            };
                                                            var decode9222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let value = {};
                                                              let decodedValue;
                                                              let result;
                                                              if (decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                value.timeDuration = decodedValue.value;
                                                                len += decodedValue.len;
                                                              }
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              value.enableDisable = decodedValue.value;
                                                              len += decodedValue.len;
                                                              if (len < apduLen) {
                                                                if (!decodeIsContextTag222222222222222(buffer, offset + len, 2)) {
                                                                  return void 0;
                                                                }
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeCharacterString222222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  apduLen - (offset + len),
                                                                  result.value
                                                                );
                                                                value.password = decodedValue.value;
                                                                len += decodedValue.len;
                                                              }
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var error_exports222222222222222 = {};
                                                            __export222222222222222(error_exports222222222222222, {
                                                              buildMessage: () => buildMessage222222222222222,
                                                              decode: () => decode10222222222222222,
                                                              encode: () => encode10222222222222222
                                                            });
                                                            var encode10222222222222222 = (buffer, errorClass, errorCode) => {
                                                              encodeApplicationEnumerated222222222222222(buffer, errorClass);
                                                              encodeApplicationEnumerated222222222222222(buffer, errorCode);
                                                            };
                                                            var decode10222222222222222 = (buffer, offset) => {
                                                              const orgOffset = offset;
                                                              let result;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset);
                                                              offset += result.len;
                                                              const errorClass = decodeEnumerated222222222222222(buffer, offset, result.value);
                                                              offset += errorClass.len;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset);
                                                              offset += result.len;
                                                              const errorCode = decodeEnumerated222222222222222(buffer, offset, result.value);
                                                              offset += errorClass.len;
                                                              return {
                                                                len: offset - orgOffset,
                                                                class: errorClass.value,
                                                                code: errorCode.value
                                                              };
                                                            };
                                                            var buildMessage222222222222222 = function(result) {
                                                              return "BacnetError Class: " + ErrorClassName222222222222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName222222222222222[result.code] + " (" + result.code + ")";
                                                            };
                                                            var event_information_exports222222222222222 = {};
                                                            __export222222222222222(event_information_exports222222222222222, {
                                                              decode: () => decode11222222222222222,
                                                              encode: () => encode11222222222222222
                                                            });
                                                            var encode11222222222222222 = (buffer, events, moreEvents) => {
                                                              encodeOpeningTag222222222222222(buffer, 0);
                                                              events.forEach((event) => {
                                                                encodeContextObjectId222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  event.objectId.type,
                                                                  event.objectId.instance
                                                                );
                                                                encodeContextEnumerated222222222222222(buffer, 1, event.eventState);
                                                                encodeContextBitstring222222222222222(buffer, 2, event.acknowledgedTransitions);
                                                                encodeOpeningTag222222222222222(buffer, 3);
                                                                for (let i = 0; i < 3; i++) {
                                                                  encodeApplicationDate222222222222222(buffer, event.eventTimeStamps[i]);
                                                                  encodeApplicationTime222222222222222(buffer, event.eventTimeStamps[i]);
                                                                }
                                                                encodeClosingTag222222222222222(buffer, 3);
                                                                encodeContextEnumerated222222222222222(buffer, 4, event.notifyType);
                                                                encodeContextBitstring222222222222222(buffer, 5, event.eventEnable);
                                                                encodeOpeningTag222222222222222(buffer, 6);
                                                                for (let i = 0; i < 3; i++) {
                                                                  encodeApplicationUnsigned222222222222222(buffer, event.eventPriorities[i]);
                                                                }
                                                                encodeClosingTag222222222222222(buffer, 6);
                                                              });
                                                              encodeClosingTag222222222222222(buffer, 0);
                                                              encodeContextBoolean222222222222222(buffer, 1, moreEvents);
                                                            };
                                                            var decode11222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              len++;
                                                              const alarms = [];
                                                              let moreEvents;
                                                              while (apduLen - 3 - len > 0) {
                                                                let value = {};
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                value.objectId = {
                                                                  type: decodedValue.objectType,
                                                                  instance: decodedValue.instance
                                                                };
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.eventState = decodedValue.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeBitstring222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.acknowledgedTransitions = decodedValue.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                value.eventTimeStamps = [];
                                                                for (let i = 0; i < 3; i++) {
                                                                  if (result.tagNumber !== 0) {
                                                                    decodedValue = decodeApplicationDate222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    const date = decodedValue.value.value;
                                                                    decodedValue = decodeApplicationTime222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    const time = decodedValue.value.value;
                                                                    value.eventTimeStamps[i] = new Date(
                                                                      date.getFullYear(),
                                                                      date.getMonth(),
                                                                      date.getDate(),
                                                                      time.getHours(),
                                                                      time.getMinutes(),
                                                                      time.getSeconds(),
                                                                      time.getMilliseconds()
                                                                    );
                                                                  } else {
                                                                    len += result.value;
                                                                  }
                                                                }
                                                                len++;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.notifyType = decodedValue.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeBitstring222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.eventEnable = decodedValue.value;
                                                                len++;
                                                                value.eventPriorities = [];
                                                                for (let i = 0; i < 3; i++) {
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.eventPriorities[i] = decodedValue.value;
                                                                }
                                                                len++;
                                                                alarms.push(value);
                                                              }
                                                              moreEvents = buffer[apduLen - 1] === 1;
                                                              return {
                                                                len,
                                                                alarms,
                                                                moreEvents
                                                              };
                                                            };
                                                            var event_notify_data_exports222222222222222 = {};
                                                            __export222222222222222(event_notify_data_exports222222222222222, {
                                                              decode: () => decode12222222222222222,
                                                              encode: () => encode12222222222222222
                                                            });
                                                            var encode12222222222222222 = (buffer, data) => {
                                                              encodeContextUnsigned222222222222222(buffer, 0, data.processId);
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                1,
                                                                data.initiatingObjectId.type,
                                                                data.initiatingObjectId.instance
                                                              );
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                2,
                                                                data.eventObjectId.type,
                                                                data.eventObjectId.instance
                                                              );
                                                              bacappEncodeContextTimestamp222222222222222(buffer, 3, data.timeStamp);
                                                              encodeContextUnsigned222222222222222(buffer, 4, data.notificationClass);
                                                              encodeContextUnsigned222222222222222(buffer, 5, data.priority);
                                                              encodeContextEnumerated222222222222222(buffer, 6, data.eventType);
                                                              if (data.messageText && data.messageText !== "") {
                                                                encodeContextCharacterString222222222222222(buffer, 7, data.messageText);
                                                              }
                                                              encodeContextEnumerated222222222222222(buffer, 8, data.notifyType);
                                                              switch (data.notifyType) {
                                                                case 0:
                                                                case 1:
                                                                  encodeContextBoolean222222222222222(buffer, 9, data.ackRequired);
                                                                  encodeContextEnumerated222222222222222(buffer, 10, data.fromState);
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                              encodeContextEnumerated222222222222222(buffer, 11, data.toState);
                                                              switch (data.notifyType) {
                                                                case 0:
                                                                case 1:
                                                                  encodeOpeningTag222222222222222(buffer, 12);
                                                                  switch (data.eventType) {
                                                                    case 0:
                                                                      encodeOpeningTag222222222222222(buffer, 0);
                                                                      encodeContextBitstring222222222222222(
                                                                        buffer,
                                                                        0,
                                                                        data.changeOfBitstringReferencedBitString
                                                                      );
                                                                      encodeContextBitstring222222222222222(
                                                                        buffer,
                                                                        1,
                                                                        data.changeOfBitstringStatusFlags
                                                                      );
                                                                      encodeClosingTag222222222222222(buffer, 0);
                                                                      break;
                                                                    case 1:
                                                                      encodeOpeningTag222222222222222(buffer, 1);
                                                                      encodeOpeningTag222222222222222(buffer, 0);
                                                                      bacappEncodePropertyState222222222222222(buffer, data.changeOfStateNewState);
                                                                      encodeClosingTag222222222222222(buffer, 0);
                                                                      encodeContextBitstring222222222222222(
                                                                        buffer,
                                                                        1,
                                                                        data.changeOfStateStatusFlags
                                                                      );
                                                                      encodeClosingTag222222222222222(buffer, 1);
                                                                      break;
                                                                    case 2:
                                                                      encodeOpeningTag222222222222222(buffer, 2);
                                                                      encodeOpeningTag222222222222222(buffer, 0);
                                                                      switch (data.changeOfValueTag) {
                                                                        case 0:
                                                                          encodeContextReal222222222222222(
                                                                            buffer,
                                                                            1,
                                                                            data.changeOfValueChangeValue
                                                                          );
                                                                          break;
                                                                        case 1:
                                                                          encodeContextBitstring222222222222222(
                                                                            buffer,
                                                                            0,
                                                                            data.changeOfValueChangedBits
                                                                          );
                                                                          break;
                                                                        default:
                                                                          throw new Error("NotImplemented");
                                                                      }
                                                                      encodeClosingTag222222222222222(buffer, 0);
                                                                      encodeContextBitstring222222222222222(
                                                                        buffer,
                                                                        1,
                                                                        data.changeOfValueStatusFlags
                                                                      );
                                                                      encodeClosingTag222222222222222(buffer, 2);
                                                                      break;
                                                                    case 4:
                                                                      encodeOpeningTag222222222222222(buffer, 4);
                                                                      encodeContextReal222222222222222(buffer, 0, data.floatingLimitReferenceValue);
                                                                      encodeContextBitstring222222222222222(
                                                                        buffer,
                                                                        1,
                                                                        data.floatingLimitStatusFlags
                                                                      );
                                                                      encodeContextReal222222222222222(buffer, 2, data.floatingLimitSetPointValue);
                                                                      encodeContextReal222222222222222(buffer, 3, data.floatingLimitErrorLimit);
                                                                      encodeClosingTag222222222222222(buffer, 4);
                                                                      break;
                                                                    case 5:
                                                                      encodeOpeningTag222222222222222(buffer, 5);
                                                                      encodeContextReal222222222222222(buffer, 0, data.outOfRangeExceedingValue);
                                                                      encodeContextBitstring222222222222222(buffer, 1, data.outOfRangeStatusFlags);
                                                                      encodeContextReal222222222222222(buffer, 2, data.outOfRangeDeadband);
                                                                      encodeContextReal222222222222222(buffer, 3, data.outOfRangeExceededLimit);
                                                                      encodeClosingTag222222222222222(buffer, 5);
                                                                      break;
                                                                    case 8:
                                                                      encodeOpeningTag222222222222222(buffer, 8);
                                                                      encodeContextEnumerated222222222222222(
                                                                        buffer,
                                                                        0,
                                                                        data.changeOfLifeSafetyNewState
                                                                      );
                                                                      encodeContextEnumerated222222222222222(
                                                                        buffer,
                                                                        1,
                                                                        data.changeOfLifeSafetyNewMode
                                                                      );
                                                                      encodeContextBitstring222222222222222(
                                                                        buffer,
                                                                        2,
                                                                        data.changeOfLifeSafetyStatusFlags
                                                                      );
                                                                      encodeContextEnumerated222222222222222(
                                                                        buffer,
                                                                        3,
                                                                        data.changeOfLifeSafetyOperationExpected
                                                                      );
                                                                      encodeClosingTag222222222222222(buffer, 8);
                                                                      break;
                                                                    case 10:
                                                                      encodeOpeningTag222222222222222(buffer, 10);
                                                                      bacappEncodeContextDeviceObjPropertyRef222222222222222(
                                                                        buffer,
                                                                        0,
                                                                        data.bufferReadyBufferProperty
                                                                      );
                                                                      encodeContextUnsigned222222222222222(
                                                                        buffer,
                                                                        1,
                                                                        data.bufferReadyPreviousNotification
                                                                      );
                                                                      encodeContextUnsigned222222222222222(
                                                                        buffer,
                                                                        2,
                                                                        data.bufferReadyCurrentNotification
                                                                      );
                                                                      encodeClosingTag222222222222222(buffer, 10);
                                                                      break;
                                                                    case 11:
                                                                      encodeOpeningTag222222222222222(buffer, 11);
                                                                      encodeContextUnsigned222222222222222(
                                                                        buffer,
                                                                        0,
                                                                        data.unsignedRangeExceedingValue
                                                                      );
                                                                      encodeContextBitstring222222222222222(
                                                                        buffer,
                                                                        1,
                                                                        data.unsignedRangeStatusFlags
                                                                      );
                                                                      encodeContextUnsigned222222222222222(
                                                                        buffer,
                                                                        2,
                                                                        data.unsignedRangeExceededLimit
                                                                      );
                                                                      encodeClosingTag222222222222222(buffer, 11);
                                                                      break;
                                                                    case 9:
                                                                    case 3:
                                                                      throw new Error("NotImplemented");
                                                                    default:
                                                                      throw new Error("NotImplemented");
                                                                  }
                                                                  encodeClosingTag222222222222222(buffer, 12);
                                                                  break;
                                                                case 2:
                                                                  throw new Error("NotImplemented");
                                                                default:
                                                                  break;
                                                              }
                                                            };
                                                            var decode12222222222222222 = (buffer, offset) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let eventData = {};
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              eventData.processId = decodedValue.value;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              eventData.initiatingObjectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 2)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              eventData.eventObjectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 3)) {
                                                                return void 0;
                                                              }
                                                              len += 2;
                                                              decodedValue = decodeApplicationDate222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              const date = decodedValue.value.value;
                                                              decodedValue = decodeApplicationTime222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              const time = decodedValue.value.value;
                                                              eventData.timeStamp = new Date(
                                                                date.getFullYear(),
                                                                date.getMonth(),
                                                                date.getDate(),
                                                                time.getHours(),
                                                                time.getMinutes(),
                                                                time.getSeconds(),
                                                                time.getMilliseconds()
                                                              );
                                                              len += 2;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 4)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              eventData.notificationClass = decodedValue.value;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 5)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              eventData.priority = decodedValue.value;
                                                              if (eventData.priority > 255) {
                                                                return void 0;
                                                              }
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 6)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              eventData.eventType = decodedValue.value;
                                                              if (decodeIsContextTag222222222222222(buffer, offset + len, 7)) {
                                                                decodedValue = decodeContextCharacterString222222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  2e4,
                                                                  7
                                                                );
                                                                len += decodedValue.len;
                                                                eventData.messageText = decodedValue.value;
                                                              }
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 8)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              eventData.notifyType = decodedValue.value;
                                                              switch (eventData.notifyType) {
                                                                case 0:
                                                                case 1:
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned222222222222222(buffer, offset + len, 1);
                                                                  len += decodedValue.len;
                                                                  eventData.ackRequired = decodedValue.value > 0;
                                                                  if (!decodeIsContextTag222222222222222(buffer, offset + len, 10)) {
                                                                    return void 0;
                                                                  }
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeEnumerated222222222222222(
                                                                    buffer,
                                                                    offset + len,
                                                                    result.value
                                                                  );
                                                                  len += decodedValue.len;
                                                                  eventData.fromState = decodedValue.value;
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 11)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              eventData.toState = decodedValue.value;
                                                              eventData.len = len;
                                                              return eventData;
                                                            };
                                                            var get_enrollment_summary_exports222222222222222 = {};
                                                            __export222222222222222(get_enrollment_summary_exports222222222222222, {
                                                              decode: () => decode13222222222222222,
                                                              decodeAcknowledge: () => decodeAcknowledge3222222222222222,
                                                              encode: () => encode13222222222222222,
                                                              encodeAcknowledge: () => encodeAcknowledge4222222222222222
                                                            });
                                                            var encode13222222222222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                                                              encodeContextEnumerated222222222222222(buffer, 0, acknowledgmentFilter);
                                                              if (enrollmentFilter) {
                                                                encodeOpeningTag222222222222222(buffer, 1);
                                                                encodeOpeningTag222222222222222(buffer, 0);
                                                                encodeContextObjectId222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  enrollmentFilter.objectId.type,
                                                                  enrollmentFilter.objectId.instance
                                                                );
                                                                encodeClosingTag222222222222222(buffer, 0);
                                                                encodeContextUnsigned222222222222222(buffer, 1, enrollmentFilter.processId);
                                                                encodeClosingTag222222222222222(buffer, 1);
                                                              }
                                                              if (eventStateFilter) {
                                                                encodeOpeningTag222222222222222(buffer, 2);
                                                                encodeContextEnumerated222222222222222(buffer, 0, eventStateFilter);
                                                                encodeClosingTag222222222222222(buffer, 2);
                                                              }
                                                              if (eventTypeFilter) {
                                                                encodeOpeningTag222222222222222(buffer, 3);
                                                                encodeContextEnumerated222222222222222(buffer, 0, eventTypeFilter);
                                                                encodeClosingTag222222222222222(buffer, 3);
                                                              }
                                                              if (priorityFilter) {
                                                                encodeOpeningTag222222222222222(buffer, 4);
                                                                encodeContextUnsigned222222222222222(buffer, 0, priorityFilter.min);
                                                                encodeContextUnsigned222222222222222(buffer, 1, priorityFilter.max);
                                                                encodeClosingTag222222222222222(buffer, 4);
                                                              }
                                                              if (notificationClassFilter) {
                                                                encodeOpeningTag222222222222222(buffer, 5);
                                                                encodeContextUnsigned222222222222222(buffer, 0, notificationClassFilter);
                                                                encodeClosingTag222222222222222(buffer, 5);
                                                              }
                                                            };
                                                            var decode13222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let value = {};
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.acknowledgmentFilter = decodedValue.value;
                                                              if (decodeIsContextTag222222222222222(buffer, offset + len, 1)) {
                                                                len++;
                                                                value.enrollmentFilter = {};
                                                                if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                  return void 0;
                                                                }
                                                                len++;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                value.enrollmentFilter.objectId = {
                                                                  type: decodedValue.objectType,
                                                                  instance: decodedValue.instance
                                                                };
                                                                len++;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.enrollmentFilter.processId = decodedValue.value;
                                                                len++;
                                                              }
                                                              if (decodeIsContextTag222222222222222(buffer, offset + len, 2)) {
                                                                len++;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.eventStateFilter = decodedValue.value;
                                                                len++;
                                                              }
                                                              if (decodeIsContextTag222222222222222(buffer, offset + len, 3)) {
                                                                len++;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.eventTypeFilter = decodedValue.value;
                                                                len++;
                                                              }
                                                              if (decodeIsContextTag222222222222222(buffer, offset + len, 4)) {
                                                                len++;
                                                                value.priorityFilter = {};
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.priorityFilter.min = decodedValue.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.priorityFilter.max = decodedValue.value;
                                                                len++;
                                                              }
                                                              if (decodeIsContextTag222222222222222(buffer, offset + len, 5)) {
                                                                len++;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.notificationClassFilter = decodedValue.value;
                                                                len++;
                                                              }
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var encodeAcknowledge4222222222222222 = (buffer, enrollmentSummaries) => {
                                                              enrollmentSummaries.forEach((enrollmentSummary) => {
                                                                encodeApplicationObjectId222222222222222(
                                                                  buffer,
                                                                  enrollmentSummary.objectId.type,
                                                                  enrollmentSummary.objectId.instance
                                                                );
                                                                encodeApplicationEnumerated222222222222222(buffer, enrollmentSummary.eventType);
                                                                encodeApplicationEnumerated222222222222222(buffer, enrollmentSummary.eventState);
                                                                encodeApplicationUnsigned222222222222222(buffer, enrollmentSummary.priority);
                                                                encodeApplicationUnsigned222222222222222(
                                                                  buffer,
                                                                  enrollmentSummary.notificationClass
                                                                );
                                                              });
                                                            };
                                                            var decodeAcknowledge3222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              const enrollmentSummaries = [];
                                                              while (apduLen - len > 0) {
                                                                const enrollmentSummary = {};
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 12) {
                                                                  return void 0;
                                                                }
                                                                result = decodeObjectId222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                enrollmentSummary.objectId = {
                                                                  type: result.objectType,
                                                                  instance: result.instance
                                                                };
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 9) {
                                                                  return void 0;
                                                                }
                                                                result = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                len += result.len;
                                                                enrollmentSummary.eventType = result.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 9) {
                                                                  return void 0;
                                                                }
                                                                result = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                len += result.len;
                                                                enrollmentSummary.eventState = result.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 2) {
                                                                  return void 0;
                                                                }
                                                                result = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += result.len;
                                                                enrollmentSummary.priority = result.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 2) {
                                                                  return void 0;
                                                                }
                                                                result = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += result.len;
                                                                enrollmentSummary.notificationClass = result.value;
                                                                enrollmentSummaries.push(enrollmentSummary);
                                                              }
                                                              return {
                                                                enrollmentSummaries,
                                                                len
                                                              };
                                                            };
                                                            var get_event_information_exports222222222222222 = {};
                                                            __export222222222222222(get_event_information_exports222222222222222, {
                                                              decode: () => decode14222222222222222,
                                                              decodeAcknowledge: () => decodeAcknowledge4222222222222222,
                                                              encode: () => encode14222222222222222,
                                                              encodeAcknowledge: () => encodeAcknowledge5222222222222222
                                                            });
                                                            var encode14222222222222222 = (buffer, lastReceivedObjectId) => {
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                0,
                                                                lastReceivedObjectId.type,
                                                                lastReceivedObjectId.instance
                                                              );
                                                            };
                                                            var decode14222222222222222 = (buffer, offset) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let value = {};
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              value.lastReceivedObjectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var encodeAcknowledge5222222222222222 = (buffer, events, moreEvents) => {
                                                              encodeOpeningTag222222222222222(buffer, 0);
                                                              events.forEach((eventData) => {
                                                                encodeContextObjectId222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  eventData.objectId.type,
                                                                  eventData.objectId.instance
                                                                );
                                                                encodeContextEnumerated222222222222222(buffer, 1, eventData.eventState);
                                                                encodeContextBitstring222222222222222(buffer, 2, eventData.acknowledgedTransitions);
                                                                encodeOpeningTag222222222222222(buffer, 3);
                                                                for (let i = 0; i < 3; i++) {
                                                                  bacappEncodeTimestamp222222222222222(buffer, eventData.eventTimeStamps[i]);
                                                                }
                                                                encodeClosingTag222222222222222(buffer, 3);
                                                                encodeContextEnumerated222222222222222(buffer, 4, eventData.notifyType);
                                                                encodeContextBitstring222222222222222(buffer, 5, eventData.eventEnable);
                                                                encodeOpeningTag222222222222222(buffer, 6);
                                                                for (let i = 0; i < 3; i++) {
                                                                  encodeApplicationUnsigned222222222222222(buffer, eventData.eventPriorities[i]);
                                                                }
                                                                encodeClosingTag222222222222222(buffer, 6);
                                                              });
                                                              encodeClosingTag222222222222222(buffer, 0);
                                                              encodeContextBoolean222222222222222(buffer, 1, moreEvents);
                                                            };
                                                            var decodeAcknowledge4222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let value = {};
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              value.events = [];
                                                              while (apduLen - len > 3) {
                                                                let event = {};
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                event.objectId = {
                                                                  type: decodedValue.objectType,
                                                                  instance: decodedValue.instance
                                                                };
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                event.eventState = decodedValue.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeBitstring222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                event.acknowledgedTransitions = decodedValue.value;
                                                                if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 3)) {
                                                                  return void 0;
                                                                }
                                                                len++;
                                                                event.eventTimeStamps = [];
                                                                for (let i = 0; i < 3; i++) {
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  if (result.tagNumber === 0) {
                                                                    decodedValue = decodeBacnetTime222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      result.value
                                                                    );
                                                                    len += decodedValue.len;
                                                                    event.eventTimeStamps[i] = {
                                                                      value: decodedValue.value,
                                                                      type: 0
                                                                      /* TIME */
                                                                    };
                                                                  } else if (result.tagNumber === 1) {
                                                                    decodedValue = decodeUnsigned222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      result.value
                                                                    );
                                                                    len += decodedValue.len;
                                                                    event.eventTimeStamps[i] = {
                                                                      value: decodedValue.value,
                                                                      type: 1
                                                                      /* SEQUENCE_NUMBER */
                                                                    };
                                                                  } else if (result.tagNumber === 2) {
                                                                    let date = decodeApplicationDate222222222222222(
                                                                      buffer,
                                                                      offset + len
                                                                    );
                                                                    len += date.len;
                                                                    date = date.value.value;
                                                                    let time = decodeApplicationTime222222222222222(
                                                                      buffer,
                                                                      offset + len
                                                                    );
                                                                    len += time.len;
                                                                    time = time.value.value;
                                                                    event.eventTimeStamps[i] = {
                                                                      value: new Date(
                                                                        date.getFullYear(),
                                                                        date.getMonth(),
                                                                        date.getDate(),
                                                                        time.getHours(),
                                                                        time.getMinutes(),
                                                                        time.getSeconds(),
                                                                        time.getMilliseconds()
                                                                      ),
                                                                      type: 2
                                                                      /* DATETIME */
                                                                    };
                                                                    len++;
                                                                  }
                                                                }
                                                                if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 3)) {
                                                                  return void 0;
                                                                }
                                                                len++;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                event.notifyType = decodedValue.value;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeBitstring222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                event.eventEnable = decodedValue.value;
                                                                if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 6)) {
                                                                  return void 0;
                                                                }
                                                                len++;
                                                                event.eventPriorities = [];
                                                                for (let i = 0; i < 3; i++) {
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  event.eventPriorities[i] = decodedValue.value;
                                                                }
                                                                if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 6)) {
                                                                  return void 0;
                                                                }
                                                                len++;
                                                                value.events.push(event);
                                                              }
                                                              if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              value.moreEvents = buffer[offset + len] > 0;
                                                              len++;
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var i_am_exports222222222222222 = {};
                                                            __export222222222222222(i_am_exports222222222222222, {
                                                              decode: () => decode15222222222222222,
                                                              encode: () => encode15222222222222222
                                                            });
                                                            var encode15222222222222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                                                              encodeApplicationObjectId222222222222222(buffer, 8, deviceId);
                                                              encodeApplicationUnsigned222222222222222(buffer, maxApdu);
                                                              encodeApplicationEnumerated222222222222222(buffer, segmentation);
                                                              encodeApplicationUnsigned222222222222222(buffer, vendorId);
                                                            };
                                                            var decode15222222222222222 = (buffer, offset) => {
                                                              let result;
                                                              let apduLen = 0;
                                                              const orgOffset = offset;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + apduLen);
                                                              apduLen += result.len;
                                                              if (result.tagNumber !== 12) {
                                                                return void 0;
                                                              }
                                                              result = decodeObjectId222222222222222(buffer, offset + apduLen);
                                                              apduLen += result.len;
                                                              if (result.objectType !== 8) {
                                                                return void 0;
                                                              }
                                                              const deviceId = result.instance;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + apduLen);
                                                              apduLen += result.len;
                                                              if (result.tagNumber !== 2) {
                                                                return void 0;
                                                              }
                                                              result = decodeUnsigned222222222222222(buffer, offset + apduLen, result.value);
                                                              apduLen += result.len;
                                                              const maxApdu = result.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + apduLen);
                                                              apduLen += result.len;
                                                              if (result.tagNumber !== 9) {
                                                                return void 0;
                                                              }
                                                              result = decodeEnumerated222222222222222(buffer, offset + apduLen, result.value);
                                                              apduLen += result.len;
                                                              if (result.value > 3) {
                                                                return void 0;
                                                              }
                                                              const segmentation = result.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + apduLen);
                                                              apduLen += result.len;
                                                              if (result.tagNumber !== 2) {
                                                                return void 0;
                                                              }
                                                              result = decodeUnsigned222222222222222(buffer, offset + apduLen, result.value);
                                                              apduLen += result.len;
                                                              if (result.value > 65535) {
                                                                return void 0;
                                                              }
                                                              const vendorId = result.value;
                                                              return {
                                                                len: offset - orgOffset,
                                                                deviceId,
                                                                maxApdu,
                                                                segmentation,
                                                                vendorId
                                                              };
                                                            };
                                                            var i_have_exports222222222222222 = {};
                                                            __export222222222222222(i_have_exports222222222222222, {
                                                              decode: () => decode16222222222222222,
                                                              encode: () => encode16222222222222222
                                                            });
                                                            var encode16222222222222222 = (buffer, deviceId, objectId, objectName) => {
                                                              encodeApplicationObjectId222222222222222(buffer, deviceId.type, deviceId.instance);
                                                              encodeApplicationObjectId222222222222222(buffer, objectId.type, objectId.instance);
                                                              encodeApplicationCharacterString222222222222222(buffer, objectName);
                                                            };
                                                            var decode16222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let value = {};
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              value.deviceId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              value.objectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeCharacterString222222222222222(
                                                                buffer,
                                                                offset + len,
                                                                apduLen - (offset + len),
                                                                result.value
                                                              );
                                                              len += decodedValue.len;
                                                              value.objectName = decodedValue.value;
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var life_safety_operation_exports222222222222222 = {};
                                                            __export222222222222222(life_safety_operation_exports222222222222222, {
                                                              decode: () => decode17222222222222222,
                                                              encode: () => encode17222222222222222
                                                            });
                                                            var encode17222222222222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                                                              encodeContextUnsigned222222222222222(buffer, 0, processId);
                                                              encodeContextCharacterString222222222222222(buffer, 1, requestingSource);
                                                              encodeContextEnumerated222222222222222(buffer, 2, operation);
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                3,
                                                                targetObjectId.type,
                                                                targetObjectId.instance
                                                              );
                                                            };
                                                            var decode17222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let value = {};
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.processId = decodedValue.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeCharacterString222222222222222(
                                                                buffer,
                                                                offset + len,
                                                                apduLen - (offset + len),
                                                                result.value
                                                              );
                                                              len += decodedValue.len;
                                                              value.requestingSource = decodedValue.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.operation = decodedValue.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              value.targetObjectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var private_transfer_exports222222222222222 = {};
                                                            __export222222222222222(private_transfer_exports222222222222222, {
                                                              decode: () => decode18222222222222222,
                                                              encode: () => encode18222222222222222
                                                            });
                                                            var encode18222222222222222 = (buffer, vendorId, serviceNumber, data) => {
                                                              encodeContextUnsigned222222222222222(buffer, 0, vendorId);
                                                              encodeContextUnsigned222222222222222(buffer, 1, serviceNumber);
                                                              encodeOpeningTag222222222222222(buffer, 2);
                                                              for (let i = 0; i < data.length; i++) {
                                                                buffer.buffer[buffer.offset++] = data[i];
                                                              }
                                                              encodeClosingTag222222222222222(buffer, 2);
                                                            };
                                                            var decode18222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let value = {};
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.vendorId = decodedValue.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.serviceNumber = decodedValue.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              const size = apduLen - (offset + len + 1);
                                                              const data = [];
                                                              for (let i = 0; i < size; i++) {
                                                                data.push(buffer[offset + len++]);
                                                              }
                                                              value.data = data;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var read_property_exports222222222222222 = {};
                                                            __export222222222222222(read_property_exports222222222222222, {
                                                              decode: () => decode19222222222222222,
                                                              decodeAcknowledge: () => decodeAcknowledge5222222222222222,
                                                              encode: () => encode19222222222222222,
                                                              encodeAcknowledge: () => encodeAcknowledge6222222222222222
                                                            });
                                                            var encode19222222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                                                              if (objectType <= ASN1_MAX_OBJECT222222222222222) {
                                                                encodeContextObjectId222222222222222(buffer, 0, objectType, objectInstance);
                                                              }
                                                              if (propertyId <= ASN1_MAX_PROPERTY_ID222222222222222) {
                                                                encodeContextEnumerated222222222222222(buffer, 1, propertyId);
                                                              }
                                                              if (arrayIndex !== ASN1_ARRAY_ALL222222222222222) {
                                                                encodeContextUnsigned222222222222222(
                                                                  buffer,
                                                                  2,
                                                                  arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL222222222222222
                                                                );
                                                              }
                                                            };
                                                            var decode19222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              if (apduLen < 7) {
                                                                return void 0;
                                                              }
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              let objectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              let property = {};
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 1) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              property.id = decodedValue.value;
                                                              property.index = ASN1_ARRAY_ALL222222222222222;
                                                              if (len < apduLen) {
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber === 2 && len < apduLen) {
                                                                  decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  property.index = decodedValue.value;
                                                                } else {
                                                                  return void 0;
                                                                }
                                                              }
                                                              if (len < apduLen) {
                                                                return void 0;
                                                              }
                                                              return {
                                                                len,
                                                                objectId,
                                                                property
                                                              };
                                                            };
                                                            var encodeAcknowledge6222222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                              encodeContextObjectId222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                              encodeContextEnumerated222222222222222(buffer, 1, propertyId);
                                                              if (arrayIndex !== ASN1_ARRAY_ALL222222222222222) {
                                                                encodeContextUnsigned222222222222222(buffer, 2, arrayIndex);
                                                              }
                                                              encodeOpeningTag222222222222222(buffer, 3);
                                                              values.forEach((value) => {
                                                                bacappEncodeApplicationData222222222222222(buffer, value);
                                                              });
                                                              encodeClosingTag222222222222222(buffer, 3);
                                                            };
                                                            var decodeAcknowledge5222222222222222 = (buffer, offset, apduLen) => {
                                                              let result;
                                                              let decodedValue;
                                                              let objectId = {};
                                                              let property = {};
                                                              if (!decodeIsContextTag222222222222222(buffer, offset, 0)) {
                                                                return void 0;
                                                              }
                                                              let len = 1;
                                                              result = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              objectId.type = result.objectType;
                                                              objectId.instance = result.instance;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 1) {
                                                                return void 0;
                                                              }
                                                              result = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += result.len;
                                                              property.id = result.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              if (result.tagNumber === 2) {
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                property.index = decodedValue.value;
                                                              } else {
                                                                property.index = ASN1_ARRAY_ALL222222222222222;
                                                              }
                                                              const values = [];
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 3)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              while (apduLen - len > 1) {
                                                                result = bacappDecodeApplicationData222222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  apduLen + offset,
                                                                  objectId.type,
                                                                  property.id
                                                                );
                                                                if (!result) {
                                                                  return void 0;
                                                                }
                                                                len += result.len;
                                                                delete result.len;
                                                                values.push(result);
                                                              }
                                                              if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 3)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              return {
                                                                len,
                                                                objectId,
                                                                property,
                                                                values
                                                              };
                                                            };
                                                            var read_property_multiple_exports222222222222222 = {};
                                                            __export222222222222222(read_property_multiple_exports222222222222222, {
                                                              decode: () => decode20222222222222222,
                                                              decodeAcknowledge: () => decodeAcknowledge6222222222222222,
                                                              encode: () => encode20222222222222222,
                                                              encodeAcknowledge: () => encodeAcknowledge7222222222222222
                                                            });
                                                            var encode20222222222222222 = (buffer, properties) => {
                                                              properties.forEach((value) => {
                                                                encodeReadAccessSpecification222222222222222(buffer, value);
                                                              });
                                                            };
                                                            var decode20222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              const values = [];
                                                              while (apduLen - len > 0) {
                                                                const decodedValue = decodeReadAccessSpecification222222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  apduLen - len
                                                                );
                                                                if (!decodedValue) {
                                                                  return void 0;
                                                                }
                                                                len += decodedValue.len;
                                                                values.push(decodedValue.value);
                                                              }
                                                              return {
                                                                len,
                                                                properties: values
                                                              };
                                                            };
                                                            var encodeAcknowledge7222222222222222 = (buffer, values) => {
                                                              values.forEach((value) => {
                                                                encodeReadAccessResult222222222222222(buffer, value);
                                                              });
                                                            };
                                                            var decodeAcknowledge6222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              const values = [];
                                                              while (apduLen - len > 0) {
                                                                const result = decodeReadAccessResult222222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  apduLen - len
                                                                );
                                                                if (!result || result === -1) {
                                                                  return void 0;
                                                                }
                                                                len += result.len;
                                                                values.push(result.value);
                                                              }
                                                              return {
                                                                len,
                                                                values
                                                              };
                                                            };
                                                            var read_range_exports222222222222222 = {};
                                                            __export222222222222222(read_range_exports222222222222222, {
                                                              decode: () => decode21222222222222222,
                                                              decodeAcknowledge: () => decodeAcknowledge7222222222222222,
                                                              encode: () => encode21222222222222222,
                                                              encodeAcknowledge: () => encodeAcknowledge8222222222222222
                                                            });
                                                            var encode21222222222222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                                                              encodeContextObjectId222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                              encodeContextEnumerated222222222222222(buffer, 1, propertyId);
                                                              if (arrayIndex !== ASN1_ARRAY_ALL222222222222222) {
                                                                encodeContextUnsigned222222222222222(buffer, 2, arrayIndex);
                                                              }
                                                              switch (requestType) {
                                                                case 0:
                                                                  encodeOpeningTag222222222222222(buffer, 3);
                                                                  encodeApplicationUnsigned222222222222222(buffer, position);
                                                                  encodeApplicationSigned222222222222222(buffer, count);
                                                                  encodeClosingTag222222222222222(buffer, 3);
                                                                  break;
                                                                case 1:
                                                                  encodeOpeningTag222222222222222(buffer, 6);
                                                                  encodeApplicationUnsigned222222222222222(buffer, position);
                                                                  encodeApplicationSigned222222222222222(buffer, count);
                                                                  encodeClosingTag222222222222222(buffer, 6);
                                                                  break;
                                                                case 2:
                                                                  encodeOpeningTag222222222222222(buffer, 7);
                                                                  encodeApplicationDate222222222222222(buffer, time);
                                                                  encodeApplicationTime222222222222222(buffer, time);
                                                                  encodeApplicationSigned222222222222222(buffer, count);
                                                                  encodeClosingTag222222222222222(buffer, 7);
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                            };
                                                            var decode21222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let requestType;
                                                              let position;
                                                              let time;
                                                              let count;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len, 0);
                                                              len += decodedValue.len;
                                                              let objectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              let property = {};
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 1) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              property.id = decodedValue.value;
                                                              if (len < apduLen && decodeIsContextTag222222222222222(buffer, offset + len, 2)) {
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                property.index = decodedValue.value;
                                                              } else {
                                                                property.index = ASN1_ARRAY_ALL222222222222222;
                                                              }
                                                              if (len < apduLen) {
                                                                result = decodeTagNumber222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                switch (result.tagNumber) {
                                                                  case 3:
                                                                    requestType = 0;
                                                                    result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      result.value
                                                                    );
                                                                    len += decodedValue.len;
                                                                    position = decodedValue.value;
                                                                    result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeSigned222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    count = decodedValue.value;
                                                                    break;
                                                                  case 6:
                                                                    requestType = 1;
                                                                    result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeUnsigned222222222222222(
                                                                      buffer,
                                                                      offset + len,
                                                                      result.value
                                                                    );
                                                                    len += decodedValue.len;
                                                                    position = decodedValue.value;
                                                                    result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeSigned222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    count = decodedValue.value;
                                                                    break;
                                                                  case 7:
                                                                    requestType = 2;
                                                                    decodedValue = decodeApplicationDate222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    const tmpDate = decodedValue.value.value;
                                                                    decodedValue = decodeApplicationTime222222222222222(buffer, offset + len);
                                                                    len += decodedValue.len;
                                                                    const tmpTime = decodedValue.value.value;
                                                                    time = new Date(
                                                                      tmpDate.getYear(),
                                                                      tmpDate.getMonth(),
                                                                      tmpDate.getDate(),
                                                                      tmpTime.getHours(),
                                                                      tmpTime.getMinutes(),
                                                                      tmpTime.getSeconds(),
                                                                      tmpTime.getMilliseconds()
                                                                    );
                                                                    result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                    len += result.len;
                                                                    decodedValue = decodeSigned222222222222222(buffer, offset + len, result.value);
                                                                    len += decodedValue.len;
                                                                    count = decodedValue.value;
                                                                    break;
                                                                  default:
                                                                    return void 0;
                                                                }
                                                                result = decodeTagNumber222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                              }
                                                              return {
                                                                len,
                                                                objectId,
                                                                property,
                                                                requestType,
                                                                position,
                                                                time,
                                                                count
                                                              };
                                                            };
                                                            var encodeAcknowledge8222222222222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                                                              encodeContextObjectId222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                              encodeContextEnumerated222222222222222(buffer, 1, propertyId);
                                                              if (arrayIndex !== ASN1_ARRAY_ALL222222222222222) {
                                                                encodeContextUnsigned222222222222222(buffer, 2, arrayIndex);
                                                              }
                                                              encodeContextBitstring222222222222222(buffer, 3, resultFlags);
                                                              encodeContextUnsigned222222222222222(buffer, 4, itemCount);
                                                              encodeOpeningTag222222222222222(buffer, 5);
                                                              if (itemCount !== 0) {
                                                                applicationData.copy(
                                                                  buffer.buffer,
                                                                  buffer.offset,
                                                                  0,
                                                                  applicationData.length
                                                                );
                                                                buffer.offset += applicationData.length;
                                                              }
                                                              encodeClosingTag222222222222222(buffer, 5);
                                                              if (itemCount !== 0 && requestType && requestType !== 0) {
                                                                encodeContextUnsigned222222222222222(buffer, 6, firstSequence);
                                                              }
                                                            };
                                                            var decodeAcknowledge7222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              const objectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              const property = { index: ASN1_ARRAY_ALL222222222222222 };
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 1) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              property.id = decodedValue.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              if (result.tagNumber === 2 && len < apduLen) {
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                property.index = decodedValue.value;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeBitstring222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              const resultFlag = decodedValue.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              const itemCount = decodedValue.value;
                                                              if (!decodeIsOpeningTag222222222222222(buffer, offset + len)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                                                              return {
                                                                objectId,
                                                                property,
                                                                resultFlag,
                                                                itemCount,
                                                                rangeBuffer,
                                                                len
                                                              };
                                                            };
                                                            var register_foreign_device_exports222222222222222 = {};
                                                            __export222222222222222(register_foreign_device_exports222222222222222, {
                                                              decode: () => decode22222222222222222,
                                                              encode: () => encode22222222222222222
                                                            });
                                                            var encode22222222222222222 = (buffer, ttl, length = 2) => {
                                                              encodeUnsigned222222222222222(buffer, ttl, length);
                                                            };
                                                            var decode22222222222222222 = (buffer, offset, length = 2) => {
                                                              let len = 0;
                                                              let result = decodeUnsigned222222222222222(buffer, offset + len, length);
                                                              len += result.len;
                                                              return {
                                                                len,
                                                                ttl: result.value
                                                              };
                                                            };
                                                            var reinitialize_device_exports222222222222222 = {};
                                                            __export222222222222222(reinitialize_device_exports222222222222222, {
                                                              decode: () => decode23222222222222222,
                                                              encode: () => encode23222222222222222
                                                            });
                                                            var encode23222222222222222 = (buffer, state, password) => {
                                                              encodeContextEnumerated222222222222222(buffer, 0, state);
                                                              if (password && password !== "") {
                                                                encodeContextCharacterString222222222222222(buffer, 1, password);
                                                              }
                                                            };
                                                            var decode23222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let value = {};
                                                              let result;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              let decodedValue = decodeEnumerated222222222222222(
                                                                buffer,
                                                                offset + len,
                                                                result.value
                                                              );
                                                              value.state = decodedValue.value;
                                                              len += decodedValue.len;
                                                              if (len < apduLen) {
                                                                if (!decodeIsContextTag222222222222222(buffer, offset + len, 1)) {
                                                                  return void 0;
                                                                }
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeCharacterString222222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  apduLen - (offset + len),
                                                                  result.value
                                                                );
                                                                value.password = decodedValue.value;
                                                                len += decodedValue.len;
                                                              }
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var subscribe_cov_exports222222222222222 = {};
                                                            __export222222222222222(subscribe_cov_exports222222222222222, {
                                                              decode: () => decode24222222222222222,
                                                              encode: () => encode24222222222222222
                                                            });
                                                            var encode24222222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                                                              encodeContextUnsigned222222222222222(buffer, 0, subscriberProcessId);
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                1,
                                                                monitoredObjectId.type,
                                                                monitoredObjectId.instance
                                                              );
                                                              if (!cancellationRequest) {
                                                                encodeContextBoolean222222222222222(buffer, 2, issueConfirmedNotifications);
                                                                encodeContextUnsigned222222222222222(buffer, 3, lifetime);
                                                              }
                                                            };
                                                            var decode24222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let value = {};
                                                              let result;
                                                              let decodedValue;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.subscriberProcessId = decodedValue.value;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              value.monitoredObjectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              value.cancellationRequest = true;
                                                              if (len < apduLen) {
                                                                value.issueConfirmedNotifications = false;
                                                                if (decodeIsContextTag222222222222222(buffer, offset + len, 2)) {
                                                                  value.cancellationRequest = false;
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                                  len++;
                                                                }
                                                                value.lifetime = 0;
                                                                if (decodeIsContextTag222222222222222(buffer, offset + len, 3)) {
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  value.lifetime = decodedValue.value;
                                                                }
                                                              }
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var subscribe_property_exports222222222222222 = {};
                                                            __export222222222222222(subscribe_property_exports222222222222222, {
                                                              decode: () => decode25222222222222222,
                                                              encode: () => encode25222222222222222
                                                            });
                                                            var encode25222222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                                                              encodeContextUnsigned222222222222222(buffer, 0, subscriberProcessId);
                                                              encodeContextObjectId222222222222222(
                                                                buffer,
                                                                1,
                                                                monitoredObjectId.type,
                                                                monitoredObjectId.instance
                                                              );
                                                              if (!cancellationRequest) {
                                                                encodeContextBoolean222222222222222(buffer, 2, issueConfirmedNotifications);
                                                                encodeContextUnsigned222222222222222(buffer, 3, lifetime);
                                                              }
                                                              encodeOpeningTag222222222222222(buffer, 4);
                                                              encodeContextEnumerated222222222222222(buffer, 0, monitoredProperty.id);
                                                              if (monitoredProperty.index !== ASN1_ARRAY_ALL222222222222222) {
                                                                encodeContextUnsigned222222222222222(buffer, 1, monitoredProperty.index);
                                                              }
                                                              encodeClosingTag222222222222222(buffer, 4);
                                                              if (covIncrementPresent) {
                                                                encodeContextReal222222222222222(buffer, 5, covIncrement);
                                                              }
                                                            };
                                                            var decode25222222222222222 = (buffer, offset) => {
                                                              let len = 0;
                                                              let value = {};
                                                              let result;
                                                              let decodedValue;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.subscriberProcessId = decodedValue.value;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              value.monitoredObjectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              value.cancellationRequest = true;
                                                              value.issueConfirmedNotifications = false;
                                                              if (decodeIsContextTag222222222222222(buffer, offset + len, 2)) {
                                                                value.cancellationRequest = false;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                                len++;
                                                              }
                                                              value.lifetime = 0;
                                                              if (decodeIsContextTag222222222222222(buffer, offset + len, 3)) {
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.lifetime = decodedValue.value;
                                                              }
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 4)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              value.monitoredProperty = {};
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.monitoredProperty.id = decodedValue.value;
                                                              value.monitoredProperty.index = ASN1_ARRAY_ALL222222222222222;
                                                              if (decodeIsContextTag222222222222222(buffer, offset + len, 1)) {
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.monitoredProperty.index = decodedValue.value;
                                                              }
                                                              if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 4)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              value.covIncrement = 0;
                                                              if (decodeIsContextTag222222222222222(buffer, offset + len, 5)) {
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeReal222222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                value.covIncrement = decodedValue.value;
                                                              }
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var time_sync_exports222222222222222 = {};
                                                            __export222222222222222(time_sync_exports222222222222222, {
                                                              decode: () => decode26222222222222222,
                                                              encode: () => encode26222222222222222
                                                            });
                                                            var encode26222222222222222 = (buffer, time) => {
                                                              encodeApplicationDate222222222222222(buffer, time);
                                                              encodeApplicationTime222222222222222(buffer, time);
                                                            };
                                                            var decode26222222222222222 = (buffer, offset, length) => {
                                                              let len = 0;
                                                              let result;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 10) {
                                                                return void 0;
                                                              }
                                                              const date = decodeDate222222222222222(buffer, offset + len);
                                                              len += date.len;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 11) {
                                                                return void 0;
                                                              }
                                                              const time = decodeBacnetTime222222222222222(buffer, offset + len);
                                                              len += time.len;
                                                              return {
                                                                len,
                                                                value: new Date(
                                                                  date.value.getFullYear(),
                                                                  date.value.getMonth(),
                                                                  date.value.getDate(),
                                                                  time.value.getHours(),
                                                                  time.value.getMinutes(),
                                                                  time.value.getSeconds(),
                                                                  time.value.getMilliseconds()
                                                                )
                                                              };
                                                            };
                                                            var who_has_exports222222222222222 = {};
                                                            __export222222222222222(who_has_exports222222222222222, {
                                                              decode: () => decode27222222222222222,
                                                              encode: () => encode27222222222222222
                                                            });
                                                            var encode27222222222222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                                                              if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE222222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE222222222222222) {
                                                                encodeContextUnsigned222222222222222(buffer, 0, lowLimit);
                                                                encodeContextUnsigned222222222222222(buffer, 1, highLimit);
                                                              }
                                                              if (objectName && objectName !== "") {
                                                                encodeContextCharacterString222222222222222(buffer, 3, objectName);
                                                              } else {
                                                                encodeContextObjectId222222222222222(buffer, 2, objectId.type, objectId.instance);
                                                              }
                                                            };
                                                            var decode27222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let value = {};
                                                              let decodedValue;
                                                              let result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber === 0) {
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                if (decodedValue.value <= ASN1_MAX_INSTANCE222222222222222) {
                                                                  value.lowLimit = decodedValue.value;
                                                                }
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                              }
                                                              if (result.tagNumber === 1) {
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                if (decodedValue.value <= ASN1_MAX_INSTANCE222222222222222) {
                                                                  value.highLimit = decodedValue.value;
                                                                }
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                              }
                                                              if (result.tagNumber === 2) {
                                                                decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                value.objectId = {
                                                                  type: decodedValue.objectType,
                                                                  instance: decodedValue.instance
                                                                };
                                                              }
                                                              if (result.tagNumber === 3) {
                                                                decodedValue = decodeCharacterString222222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  apduLen - (offset + len),
                                                                  result.value
                                                                );
                                                                len += decodedValue.len;
                                                                value.objectName = decodedValue.value;
                                                              }
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var who_is_exports222222222222222 = {};
                                                            __export222222222222222(who_is_exports222222222222222, {
                                                              decode: () => decode28222222222222222,
                                                              encode: () => encode28222222222222222
                                                            });
                                                            var encode28222222222222222 = (buffer, lowLimit, highLimit) => {
                                                              if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE222222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE222222222222222) {
                                                                encodeContextUnsigned222222222222222(buffer, 0, lowLimit);
                                                                encodeContextUnsigned222222222222222(buffer, 1, highLimit);
                                                              }
                                                            };
                                                            var decode28222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let value = {};
                                                              if (apduLen <= 0) {
                                                                return {};
                                                              }
                                                              let result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 0) {
                                                                return void 0;
                                                              }
                                                              if (apduLen <= len) {
                                                                return void 0;
                                                              }
                                                              let decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              if (decodedValue.value <= ASN1_MAX_INSTANCE222222222222222) {
                                                                value.lowLimit = decodedValue.value;
                                                              }
                                                              if (apduLen <= len) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 1) {
                                                                return void 0;
                                                              }
                                                              if (apduLen <= len) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              if (decodedValue.value <= ASN1_MAX_INSTANCE222222222222222) {
                                                                value.highLimit = decodedValue.value;
                                                              }
                                                              value.len = len;
                                                              return value;
                                                            };
                                                            var write_property_exports222222222222222 = {};
                                                            __export222222222222222(write_property_exports222222222222222, {
                                                              decode: () => decode29222222222222222,
                                                              encode: () => encode29222222222222222
                                                            });
                                                            var encode29222222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                                                              encodeContextObjectId222222222222222(buffer, 0, objectType, objectInstance);
                                                              encodeContextEnumerated222222222222222(buffer, 1, propertyId);
                                                              if (arrayIndex !== ASN1_ARRAY_ALL222222222222222) {
                                                                encodeContextUnsigned222222222222222(buffer, 2, arrayIndex);
                                                              }
                                                              encodeOpeningTag222222222222222(buffer, 3);
                                                              values.forEach((value) => {
                                                                bacappEncodeApplicationData222222222222222(buffer, value);
                                                              });
                                                              encodeClosingTag222222222222222(buffer, 3);
                                                              if (priority !== ASN1_NO_PRIORITY222222222222222) {
                                                                encodeContextUnsigned222222222222222(buffer, 4, priority);
                                                              }
                                                            };
                                                            var decode29222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let value = {
                                                                property: {}
                                                              };
                                                              let decodedValue;
                                                              let result;
                                                              if (!decodeIsContextTag222222222222222(buffer, offset + len, 0)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              let objectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              len += decodedValue.len;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 1) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.property.id = decodedValue.value;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              if (result.tagNumber === 2) {
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                value.property.index = decodedValue.value;
                                                              } else {
                                                                value.property.index = ASN1_ARRAY_ALL222222222222222;
                                                              }
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 3)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              const values = [];
                                                              while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222222222(buffer, offset + len, 3)) {
                                                                decodedValue = bacappDecodeApplicationData222222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  apduLen + offset,
                                                                  objectId.type,
                                                                  value.property.id
                                                                );
                                                                if (!decodedValue) {
                                                                  return void 0;
                                                                }
                                                                len += decodedValue.len;
                                                                delete decodedValue.len;
                                                                values.push(decodedValue);
                                                              }
                                                              value.value = values;
                                                              if (!decodeIsClosingTagNumber222222222222222(buffer, offset + len, 3)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              value.priority = ASN1_MAX_PRIORITY222222222222222;
                                                              if (len < apduLen) {
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                if (result.tagNumber === 4) {
                                                                  len += result.len;
                                                                  decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue;
                                                                  if (decodedValue.value >= ASN1_MIN_PRIORITY222222222222222 && decodedValue.value <= ASN1_MAX_PRIORITY222222222222222) {
                                                                    value.priority = decodedValue.value;
                                                                  } else {
                                                                    return void 0;
                                                                  }
                                                                }
                                                              }
                                                              return {
                                                                len,
                                                                objectId,
                                                                value
                                                              };
                                                            };
                                                            var write_property_multiple_exports222222222222222 = {};
                                                            __export222222222222222(write_property_multiple_exports222222222222222, {
                                                              decode: () => decode30222222222222222,
                                                              encode: () => encode30222222222222222,
                                                              encodeObject: () => encodeObject222222222222222
                                                            });
                                                            var encode30222222222222222 = (buffer, objectId, values) => {
                                                              encodeContextObjectId222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                              encodeOpeningTag222222222222222(buffer, 1);
                                                              values.forEach((pValue) => {
                                                                encodeContextEnumerated222222222222222(buffer, 0, pValue.property.id);
                                                                if (pValue.property.index !== ASN1_ARRAY_ALL222222222222222) {
                                                                  encodeContextUnsigned222222222222222(buffer, 1, pValue.property.index);
                                                                }
                                                                encodeOpeningTag222222222222222(buffer, 2);
                                                                pValue.value.forEach((value) => {
                                                                  bacappEncodeApplicationData222222222222222(buffer, value);
                                                                });
                                                                encodeClosingTag222222222222222(buffer, 2);
                                                                if (pValue.priority !== ASN1_NO_PRIORITY222222222222222) {
                                                                  encodeContextUnsigned222222222222222(buffer, 3, pValue.priority);
                                                                }
                                                              });
                                                              encodeClosingTag222222222222222(buffer, 1);
                                                            };
                                                            var decode30222222222222222 = (buffer, offset, apduLen) => {
                                                              let len = 0;
                                                              let result;
                                                              let decodedValue;
                                                              let objectId;
                                                              result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 0 || apduLen <= len) {
                                                                return void 0;
                                                              }
                                                              apduLen -= len;
                                                              if (apduLen < 4) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeObjectId222222222222222(buffer, offset + len);
                                                              len += decodedValue.len;
                                                              objectId = {
                                                                type: decodedValue.objectType,
                                                                instance: decodedValue.instance
                                                              };
                                                              if (!decodeIsOpeningTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              const _values = [];
                                                              while (apduLen - len > 1) {
                                                                let newEntry = {};
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber !== 0) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeEnumerated222222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                let propertyId = decodedValue.value;
                                                                let arrayIndex = ASN1_ARRAY_ALL222222222222222;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber === 1) {
                                                                  decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  arrayIndex = decodedValue.value;
                                                                  result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                  len += result.len;
                                                                }
                                                                newEntry.property = { id: propertyId, index: arrayIndex };
                                                                if (result.tagNumber !== 2 || !decodeIsOpeningTag222222222222222(buffer, offset + len - 1)) {
                                                                  return void 0;
                                                                }
                                                                const values = [];
                                                                while (len + offset <= buffer.length && !decodeIsClosingTag222222222222222(buffer, offset + len)) {
                                                                  let value = bacappDecodeApplicationData222222222222222(
                                                                    buffer,
                                                                    offset + len,
                                                                    apduLen + offset,
                                                                    objectId.type,
                                                                    propertyId
                                                                  );
                                                                  if (!value) {
                                                                    return void 0;
                                                                  }
                                                                  len += value.len;
                                                                  delete value.len;
                                                                  values.push(value);
                                                                }
                                                                len++;
                                                                newEntry.value = values;
                                                                let priority = ASN1_NO_PRIORITY222222222222222;
                                                                result = decodeTagNumberAndValue222222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                if (result.tagNumber === 3) {
                                                                  decodedValue = decodeUnsigned222222222222222(buffer, offset + len, result.value);
                                                                  len += decodedValue.len;
                                                                  priority = decodedValue.value;
                                                                } else {
                                                                  len--;
                                                                }
                                                                newEntry.priority = priority;
                                                                _values.push(newEntry);
                                                                if (decodeIsClosingTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                  len++;
                                                                }
                                                              }
                                                              if (decodeIsClosingTagNumber222222222222222(buffer, offset + len, 1)) {
                                                                len++;
                                                              }
                                                              return {
                                                                len,
                                                                objectId,
                                                                values: _values
                                                              };
                                                            };
                                                            var encodeObject222222222222222 = (buffer, values) => {
                                                              values.forEach((object) => {
                                                                encode30222222222222222(buffer, object.objectId, object.values);
                                                              });
                                                            };
                                                            var getDecodedType222222222222222 = (buffer, offset) => {
                                                              return buffer[offset];
                                                            };
                                                            var encodeConfirmedServiceRequest222222222222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                                                              buffer.buffer[buffer.offset++] = type;
                                                              buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                                                              buffer.buffer[buffer.offset++] = invokeId;
                                                              if ((type & 8) > 0) {
                                                                buffer.buffer[buffer.offset++] = sequencenumber;
                                                                buffer.buffer[buffer.offset++] = proposedWindowSize;
                                                              }
                                                              buffer.buffer[buffer.offset++] = service;
                                                            };
                                                            var decodeConfirmedServiceRequest222222222222222 = (buffer, offset) => {
                                                              const orgOffset = offset;
                                                              const type = buffer[offset++];
                                                              const maxSegments = buffer[offset] & 240;
                                                              const maxApdu = buffer[offset++] & 15;
                                                              const invokeId = buffer[offset++];
                                                              let sequencenumber = 0;
                                                              let proposedWindowNumber = 0;
                                                              if ((type & 8) > 0) {
                                                                sequencenumber = buffer[offset++];
                                                                proposedWindowNumber = buffer[offset++];
                                                              }
                                                              const service = buffer[offset++];
                                                              return {
                                                                len: offset - orgOffset,
                                                                type,
                                                                service,
                                                                maxSegments,
                                                                maxApdu,
                                                                invokeId,
                                                                sequencenumber,
                                                                proposedWindowNumber
                                                              };
                                                            };
                                                            var encodeUnconfirmedServiceRequest222222222222222 = (buffer, type, service) => {
                                                              buffer.buffer[buffer.offset++] = type;
                                                              buffer.buffer[buffer.offset++] = service;
                                                            };
                                                            var decodeUnconfirmedServiceRequest222222222222222 = (buffer, offset) => {
                                                              const orgOffset = offset;
                                                              const type = buffer[offset++];
                                                              const service = buffer[offset++];
                                                              return {
                                                                len: offset - orgOffset,
                                                                type,
                                                                service
                                                              };
                                                            };
                                                            var encodeSimpleAck222222222222222 = (buffer, type, service, invokeId) => {
                                                              buffer.buffer[buffer.offset++] = type;
                                                              buffer.buffer[buffer.offset++] = invokeId;
                                                              buffer.buffer[buffer.offset++] = service;
                                                            };
                                                            var decodeSimpleAck222222222222222 = (buffer, offset) => {
                                                              const orgOffset = offset;
                                                              const type = buffer[offset++];
                                                              const invokeId = buffer[offset++];
                                                              const service = buffer[offset++];
                                                              return {
                                                                len: offset - orgOffset,
                                                                type,
                                                                service,
                                                                invokeId
                                                              };
                                                            };
                                                            var encodeComplexAck222222222222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                                                              let len = 3;
                                                              buffer.buffer[buffer.offset++] = type;
                                                              buffer.buffer[buffer.offset++] = invokeId;
                                                              if ((type & 8) > 0) {
                                                                buffer.buffer[buffer.offset++] = sequencenumber;
                                                                buffer.buffer[buffer.offset++] = proposedWindowNumber;
                                                                len += 2;
                                                              }
                                                              buffer.buffer[buffer.offset++] = service;
                                                              return len;
                                                            };
                                                            var decodeComplexAck222222222222222 = (buffer, offset) => {
                                                              const orgOffset = offset;
                                                              const type = buffer[offset++];
                                                              const invokeId = buffer[offset++];
                                                              let sequencenumber = 0;
                                                              let proposedWindowNumber = 0;
                                                              if ((type & 8) > 0) {
                                                                sequencenumber = buffer[offset++];
                                                                proposedWindowNumber = buffer[offset++];
                                                              }
                                                              const service = buffer[offset++];
                                                              return {
                                                                len: offset - orgOffset,
                                                                type,
                                                                service,
                                                                invokeId,
                                                                sequencenumber,
                                                                proposedWindowNumber
                                                              };
                                                            };
                                                            var encodeSegmentAck222222222222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                                                              buffer.buffer[buffer.offset++] = type;
                                                              buffer.buffer[buffer.offset++] = originalInvokeId;
                                                              buffer.buffer[buffer.offset++] = sequencenumber;
                                                              buffer.buffer[buffer.offset++] = actualWindowSize;
                                                            };
                                                            var decodeSegmentAck222222222222222 = (buffer, offset) => {
                                                              const orgOffset = offset;
                                                              const type = buffer[offset++];
                                                              const originalInvokeId = buffer[offset++];
                                                              const sequencenumber = buffer[offset++];
                                                              const actualWindowSize = buffer[offset++];
                                                              return {
                                                                len: offset - orgOffset,
                                                                type,
                                                                originalInvokeId,
                                                                sequencenumber,
                                                                actualWindowSize
                                                              };
                                                            };
                                                            var encodeResult222222222222222 = (buffer, resultCode) => {
                                                              encodeUnsigned222222222222222(buffer, resultCode, 2);
                                                            };
                                                            var encodeError222222222222222 = (buffer, type, service, invokeId) => {
                                                              buffer.buffer[buffer.offset++] = type;
                                                              buffer.buffer[buffer.offset++] = invokeId;
                                                              buffer.buffer[buffer.offset++] = service;
                                                            };
                                                            var decodeError222222222222222 = (buffer, offset) => {
                                                              const orgOffset = offset;
                                                              const type = buffer[offset++];
                                                              const invokeId = buffer[offset++];
                                                              const service = buffer[offset++];
                                                              return {
                                                                len: offset - orgOffset,
                                                                type,
                                                                service,
                                                                invokeId
                                                              };
                                                            };
                                                            var decodeAbort222222222222222 = (buffer, offset) => {
                                                              const orgOffset = offset;
                                                              const type = buffer[offset++];
                                                              const invokeId = buffer[offset++];
                                                              const reason = buffer[offset++];
                                                              return {
                                                                len: offset - orgOffset,
                                                                type,
                                                                invokeId,
                                                                reason
                                                              };
                                                            };
                                                            var DEFAULT_HOP_COUNT322222222222222 = 255;
                                                            var BACNET_PROTOCOL_VERSION222222222222222 = 1;
                                                            var BACNET_ADDRESS_TYPES222222222222222 = {
                                                              NONE: 0,
                                                              IP: 1
                                                            };
                                                            var decodeTarget222222222222222 = (buffer, offset) => {
                                                              let len = 0;
                                                              const target = {
                                                                type: BACNET_ADDRESS_TYPES222222222222222.NONE,
                                                                net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                                                              };
                                                              const adrLen = buffer[offset + len++];
                                                              if (adrLen > 0) {
                                                                target.adr = [];
                                                                for (let i = 0; i < adrLen; i++) {
                                                                  target.adr.push(buffer[offset + len++]);
                                                                }
                                                              }
                                                              return {
                                                                target,
                                                                len
                                                              };
                                                            };
                                                            var encodeTarget222222222222222 = (buffer, target) => {
                                                              buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                                                              buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                                                              if (target.net === 65535 || !target.adr) {
                                                                buffer.buffer[buffer.offset++] = 0;
                                                              } else {
                                                                buffer.buffer[buffer.offset++] = target.adr.length;
                                                                if (target.adr.length > 0) {
                                                                  for (let i = 0; i < target.adr.length; i++) {
                                                                    buffer.buffer[buffer.offset++] = target.adr[i];
                                                                  }
                                                                }
                                                              }
                                                            };
                                                            var decode31222222222222222 = (buffer, offset) => {
                                                              let adrLen;
                                                              const orgOffset = offset;
                                                              offset++;
                                                              const funct = buffer[offset++];
                                                              let destination;
                                                              if (funct & 32) {
                                                                const tmpDestination = decodeTarget222222222222222(buffer, offset);
                                                                offset += tmpDestination.len;
                                                                destination = tmpDestination.target;
                                                              }
                                                              let source;
                                                              if (funct & 8) {
                                                                const tmpSource = decodeTarget222222222222222(buffer, offset);
                                                                offset += tmpSource.len;
                                                                source = tmpSource.target;
                                                              }
                                                              let hopCount = 0;
                                                              if (funct & 32) {
                                                                hopCount = buffer[offset++];
                                                              }
                                                              let networkMsgType = 0;
                                                              let vendorId = 0;
                                                              if (funct & 128) {
                                                                networkMsgType = buffer[offset++];
                                                                if (networkMsgType >= 128) {
                                                                  vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                                                                } else if (networkMsgType === 0) {
                                                                  offset += 2;
                                                                }
                                                              }
                                                              if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION222222222222222) {
                                                                return void 0;
                                                              }
                                                              return {
                                                                len: offset - orgOffset,
                                                                funct,
                                                                destination,
                                                                source,
                                                                hopCount,
                                                                networkMsgType,
                                                                vendorId
                                                              };
                                                            };
                                                            var encode31222222222222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                                                              const hasDestination = destination && destination.net > 0;
                                                              const hasSource = source && source.net > 0 && source.net !== 65535;
                                                              buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION222222222222222;
                                                              buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                                                              if (hasDestination) {
                                                                encodeTarget222222222222222(buffer, destination);
                                                              }
                                                              if (hasSource) {
                                                                encodeTarget222222222222222(buffer, source);
                                                              }
                                                              if (hasDestination) {
                                                                buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT322222222222222;
                                                              }
                                                              if ((funct & 128) > 0) {
                                                                buffer.buffer[buffer.offset++] = networkMsgType;
                                                                if (networkMsgType >= 128) {
                                                                  buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                                                                  buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                                                                }
                                                              }
                                                            };
                                                            var DEFAULT_BACNET_PORT2222222222222222 = 47808;
                                                            var encode32222222222222222 = (buffer, func, msgLength, originatingIP) => {
                                                              buffer[0] = BVLL_TYPE_BACNET_IP222222222222222;
                                                              buffer[1] = func;
                                                              buffer[2] = (msgLength & 65280) >> 8;
                                                              buffer[3] = (msgLength & 255) >> 0;
                                                              if (originatingIP) {
                                                                if (func !== 4) {
                                                                  throw new Error(
                                                                    "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                                                                  );
                                                                }
                                                                const [ipstr, portstr] = originatingIP.split(":");
                                                                const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT2222222222222222;
                                                                const ip = ipstr.split(".");
                                                                buffer[4] = parseInt(ip[0], 10);
                                                                buffer[5] = parseInt(ip[1], 10);
                                                                buffer[6] = parseInt(ip[2], 10);
                                                                buffer[7] = parseInt(ip[3], 10);
                                                                buffer[8] = (port & 65280) >> 8;
                                                                buffer[9] = (port & 255) >> 0;
                                                                return 6 + BVLC_HEADER_LENGTH322222222222222;
                                                              } else {
                                                                if (func === 4) {
                                                                  throw new Error(
                                                                    "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                                                                  );
                                                                }
                                                              }
                                                              return BVLC_HEADER_LENGTH322222222222222;
                                                            };
                                                            var decode32222222222222222 = (buffer, _offset) => {
                                                              let len;
                                                              const func = buffer[1];
                                                              const msgLength = buffer[2] << 8 | buffer[3] << 0;
                                                              if (buffer[0] !== BVLL_TYPE_BACNET_IP222222222222222 || buffer.length !== msgLength) {
                                                                return void 0;
                                                              }
                                                              let originatingIP = null;
                                                              switch (func) {
                                                                case 0:
                                                                case 10:
                                                                case 11:
                                                                case 9:
                                                                case 5:
                                                                case 6:
                                                                case 8:
                                                                case 2:
                                                                case 1:
                                                                case 3:
                                                                case 7:
                                                                  len = 4;
                                                                  break;
                                                                case 4:
                                                                  const port = buffer[8] << 8 | buffer[9];
                                                                  originatingIP = buffer.slice(4, 8).join(".");
                                                                  if (port !== DEFAULT_BACNET_PORT2222222222222222) {
                                                                    originatingIP += ":" + port;
                                                                  }
                                                                  len = 10;
                                                                  break;
                                                                case 12:
                                                                  return void 0;
                                                                default:
                                                                  return void 0;
                                                              }
                                                              return {
                                                                len,
                                                                func,
                                                                msgLength,
                                                                // Originating IP is set to the IP address of the node that originally
                                                                // sent the packet, when it has been forwarded to us by a BBMD (since the
                                                                // BBMD's IP address will be in the sender field.
                                                                originatingIP
                                                              };
                                                            };
                                                            var EventEmitter2222222222222222 = import_events2222222222222222.default.EventEmitter;
                                                            var debug3222222222222222 = (0, import_debug3222222222222222.default)("bacnet:client:debug");
                                                            var trace2222222222222222 = (0, import_debug3222222222222222.default)("bacnet:client:trace");
                                                            var ALL_INTERFACES222222222222222 = "0.0.0.0";
                                                            var LOCALHOST_INTERFACES_IPV4222222222222222 = "127.0.0.1";
                                                            var BROADCAST_ADDRESS222222222222222 = "255.255.255.255";
                                                            var DEFAULT_HOP_COUNT2222222222222222 = 255;
                                                            var BVLC_HEADER_LENGTH2222222222222222 = 4;
                                                            var BVLC_FWD_HEADER_LENGTH222222222222222 = 10;
                                                            var beU222222222222222 = UnconfirmedServiceChoice222222222222222;
                                                            var unconfirmedServiceMap222222222222222 = {
                                                              [beU222222222222222.I_AM]: "iAm",
                                                              [beU222222222222222.WHO_IS]: "whoIs",
                                                              [beU222222222222222.WHO_HAS]: "whoHas",
                                                              [beU222222222222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                                                              [beU222222222222222.TIME_SYNCHRONIZATION]: "timeSync",
                                                              [beU222222222222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                                                              [beU222222222222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                              [beU222222222222222.I_HAVE]: "iHave",
                                                              [beU222222222222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                            };
                                                            var beC222222222222222 = ConfirmedServiceChoice222222222222222;
                                                            var confirmedServiceMap222222222222222 = {
                                                              [beC222222222222222.READ_PROPERTY]: "readProperty",
                                                              [beC222222222222222.WRITE_PROPERTY]: "writeProperty",
                                                              [beC222222222222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                                                              [beC222222222222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                                                              [beC222222222222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                                                              [beC222222222222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                                                              [beC222222222222222.ATOMIC_READ_FILE]: "atomicReadFile",
                                                              [beC222222222222222.SUBSCRIBE_COV]: "subscribeCov",
                                                              [beC222222222222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                                                              [beC222222222222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                                                              [beC222222222222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                                                              [beC222222222222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                              [beC222222222222222.READ_RANGE]: "readRange",
                                                              [beC222222222222222.CREATE_OBJECT]: "createObject",
                                                              [beC222222222222222.DELETE_OBJECT]: "deleteObject",
                                                              [beC222222222222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                                                              [beC222222222222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                                                              [beC222222222222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                                                              [beC222222222222222.GET_EVENT_INFORMATION]: "getEventInformation",
                                                              [beC222222222222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                                                              [beC222222222222222.ADD_LIST_ELEMENT]: "addListElement",
                                                              [beC222222222222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                                                              [beC222222222222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                            };
                                                            var errorReasonEnums222222222222222 = {
                                                              BacnetAbort: RejectReason222222222222222
                                                            };
                                                            var BacnetError222222222222222 = class extends Error {
                                                              constructor(message, bacnetErrorClass, bacnetErrorCode) {
                                                                super(message);
                                                                this.bacnetErrorClass = bacnetErrorClass;
                                                                this.bacnetErrorCode = bacnetErrorCode;
                                                              }
                                                            };
                                                            function bacnetErrorToString222222222222222(err) {
                                                              var _a;
                                                              const isError = err instanceof Error || err instanceof BacnetError222222222222222;
                                                              if (!isError)
                                                                return;
                                                              const message = err.message;
                                                              const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                                                              const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                                                              if (!errorReasonEnums222222222222222[reasonClass])
                                                                return;
                                                              const reasonString = errorReasonEnums222222222222222[reasonClass][reason];
                                                              return reasonClass + ": " + reasonString;
                                                            }
                                                            var Client222222222222222 = class extends EventEmitter2222222222222222 {
                                                              /**
                                                               *
                                                               * @param options
                                                               */
                                                              constructor(options) {
                                                                super();
                                                                options = options || {};
                                                                this._invokeCounter = 1;
                                                                this._invokeStore = {};
                                                                this._lastSequenceNumber = 0;
                                                                this._segmentStore = [];
                                                                this._settings = {
                                                                  port: options.port || 47808,
                                                                  interface: options.interface || ALL_INTERFACES222222222222222,
                                                                  transport: options.transport,
                                                                  broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS222222222222222,
                                                                  apduTimeout: options.apduTimeout || 3e3
                                                                };
                                                                options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                                                                this._transport = this._settings.transport || new Transport222222222222222({
                                                                  port: this._settings.port,
                                                                  interface: this._settings.interface,
                                                                  broadcastAddress: this._settings.broadcastAddress,
                                                                  reuseAddr: options.reuseAddr
                                                                });
                                                                this._transport.on("message", this._receiveData.bind(this));
                                                                this._transport.on("error", this._receiveError.bind(this));
                                                                this._transport.on("listening", () => this.emit("listening"));
                                                                this._transport.open();
                                                              }
                                                              /**
                                                               *
                                                               * @returns {number}
                                                               * @private
                                                               */
                                                              _getInvokeId() {
                                                                const id = this._invokeCounter++;
                                                                if (id >= 256)
                                                                  this._invokeCounter = 1;
                                                                return id - 1;
                                                              }
                                                              /**
                                                               *
                                                               * @param id
                                                               * @param err
                                                               * @param result
                                                               * @returns {*}
                                                               * @private
                                                               */
                                                              _invokeCallback(id, err, result) {
                                                                const callback = this._invokeStore[id];
                                                                if (callback) {
                                                                  return void callback(err, result);
                                                                }
                                                                debug3222222222222222("InvokeId", id, "not found -> drop package");
                                                              }
                                                              /**
                                                               *
                                                               * @param id
                                                               * @param callback
                                                               * @private
                                                               */
                                                              _addCallback(id, callback) {
                                                                const timeout = setTimeout(() => {
                                                                  delete this._invokeStore[id];
                                                                  callback(new Error("ERR_TIMEOUT"));
                                                                }, this._settings.apduTimeout);
                                                                this._invokeStore[id] = (err, data) => {
                                                                  clearTimeout(timeout);
                                                                  delete this._invokeStore[id];
                                                                  callback(err, data);
                                                                };
                                                              }
                                                              /**
                                                               *
                                                               * @param isForwarded
                                                               * @returns {{offset: (number), buffer: *}}
                                                               * @private
                                                               */
                                                              _getBuffer(isForwarded) {
                                                                return Object.assign(
                                                                  {},
                                                                  {
                                                                    buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                                                    offset: isForwarded ? BVLC_FWD_HEADER_LENGTH222222222222222 : BVLC_HEADER_LENGTH2222222222222222
                                                                  }
                                                                );
                                                              }
                                                              /**
                                                               *
                                                               * @param invokeId
                                                               * @param buffer
                                                               * @param offset
                                                               * @param length
                                                               * @returns {*}
                                                               * @private
                                                               */
                                                              _processError(invokeId, buffer, offset, length) {
                                                                const result = error_exports222222222222222.decode(buffer, offset);
                                                                trace2222222222222222("Received error:", result);
                                                                if (!result) {
                                                                  return debug3222222222222222("Couldn`t decode Error");
                                                                }
                                                                const err = new BacnetError222222222222222(error_exports222222222222222.buildMessage(result));
                                                                err.bacnetErrorClass = result.class;
                                                                err.bacnetErrorCode = result.code;
                                                                this._invokeCallback(invokeId, err);
                                                              }
                                                              /**
                                                               *
                                                               * @param invokeId
                                                               * @param reason
                                                               * @private
                                                               */
                                                              _processAbort(invokeId, reason) {
                                                                const err = new BacnetError222222222222222("BacnetAbort - Reason:" + reason);
                                                                err.bacnetAbortReason = reason;
                                                                err.bacnetErrorClass = AbortReason222222222222222;
                                                                this._invokeCallback(invokeId, err);
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param negative
                                                               * @param server
                                                               * @param originalInvokeId
                                                               * @param sequencenumber
                                                               * @param actualWindowSize
                                                               * @private
                                                               */
                                                              _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                                                                const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  receiver,
                                                                  null,
                                                                  DEFAULT_HOP_COUNT2222222222222222,
                                                                  0,
                                                                  0
                                                                );
                                                                encodeSegmentAck222222222222222(
                                                                  buffer,
                                                                  64 | (negative ? 2 : 0) | (server ? 1 : 0),
                                                                  originalInvokeId,
                                                                  sequencenumber,
                                                                  actualWindowSize
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                              }
                                                              /**
                                                               *
                                                               * @param msg
                                                               * @param first
                                                               * @param moreFollows
                                                               * @param buffer
                                                               * @param offset
                                                               * @param length
                                                               * @private
                                                               */
                                                              _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                                                                if (first) {
                                                                  this._segmentStore = [];
                                                                  msg.type &= ~8;
                                                                  let apduHeaderLen = 3;
                                                                  if ((msg.type & PDU_TYPE_MASK222222222222222) === 0) {
                                                                    apduHeaderLen = 4;
                                                                  }
                                                                  const apdubuffer = this._getBuffer();
                                                                  apdubuffer.offset = 0;
                                                                  buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                                                                  if ((msg.type & PDU_TYPE_MASK222222222222222) === 0) {
                                                                    encodeConfirmedServiceRequest222222222222222(
                                                                      apdubuffer,
                                                                      msg.type,
                                                                      msg.service,
                                                                      msg.maxSegments,
                                                                      msg.maxApdu,
                                                                      msg.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                  } else {
                                                                    encodeComplexAck222222222222222(
                                                                      apdubuffer,
                                                                      msg.type,
                                                                      msg.service,
                                                                      msg.invokeId,
                                                                      0,
                                                                      0
                                                                    );
                                                                  }
                                                                  this._segmentStore.push(
                                                                    //@ts-ignore
                                                                    apdubuffer.buffer.slice(0, length + apduHeaderLen)
                                                                  );
                                                                } else {
                                                                  this._segmentStore.push(buffer.slice(offset, offset + length));
                                                                }
                                                                if (!moreFollows) {
                                                                  const apduBuffer = Buffer.concat(this._segmentStore);
                                                                  this._segmentStore = [];
                                                                  msg.type &= ~8;
                                                                  this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                                                                }
                                                              }
                                                              /**
                                                               *
                                                               * @param msg
                                                               * @param server
                                                               * @param buffer
                                                               * @param offset
                                                               * @param length
                                                               * @private
                                                               */
                                                              _processSegment(msg, server, buffer, offset, length) {
                                                                let first = false;
                                                                if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                                                                  first = true;
                                                                } else {
                                                                  if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                                                    return this._segmentAckResponse(
                                                                      msg.header.address,
                                                                      true,
                                                                      server,
                                                                      msg.invokeId,
                                                                      this._lastSequenceNumber,
                                                                      msg.proposedWindowNumber
                                                                    );
                                                                  }
                                                                }
                                                                this._lastSequenceNumber = msg.sequencenumber;
                                                                const moreFollows = msg.type & 4;
                                                                if (!moreFollows) {
                                                                  this._lastSequenceNumber = 0;
                                                                }
                                                                if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                                                                  this._segmentAckResponse(
                                                                    msg.header.address,
                                                                    false,
                                                                    server,
                                                                    msg.invokeId,
                                                                    msg.sequencenumber,
                                                                    msg.proposedWindowNumber
                                                                  );
                                                                }
                                                                this._performDefaultSegmentHandling(
                                                                  msg,
                                                                  first,
                                                                  moreFollows,
                                                                  buffer,
                                                                  offset,
                                                                  length
                                                                );
                                                              }
                                                              /**
                                                               *
                                                               * @param serviceMap
                                                               * @param content
                                                               * @param buffer
                                                               * @param offset
                                                               * @param length
                                                               * @returns {*}
                                                               * @private
                                                               */
                                                              _processServiceRequest(serviceMap, content, buffer, offset, length) {
                                                                let result;
                                                                const sender = content.header.sender;
                                                                if (sender.address === LOCALHOST_INTERFACES_IPV4222222222222222) {
                                                                  debug3222222222222222("Received and skipped localhost service request:", content.service);
                                                                  return;
                                                                }
                                                                const name = serviceMap[content.service];
                                                                if (!name) {
                                                                  debug3222222222222222("Received unsupported service request:", content.service);
                                                                  return;
                                                                }
                                                                const id = content.invokeId ? "@" + content.invokeId : "";
                                                                trace2222222222222222(`Received service request${id}:`, name);
                                                                const serviceHandler = services_exports222222222222222[name];
                                                                if (serviceHandler) {
                                                                  try {
                                                                    content.payload = serviceHandler.decode(buffer, offset, length);
                                                                    trace2222222222222222(`Handled service request${id}:`, name, JSON.stringify(content));
                                                                  } catch (e) {
                                                                    debug3222222222222222("Exception thrown when processing message:", e);
                                                                    debug3222222222222222("Original message was", name + ":", content);
                                                                    return;
                                                                  }
                                                                  if (!content.payload) {
                                                                    return debug3222222222222222("Received invalid", name, "message");
                                                                  }
                                                                } else {
                                                                  debug3222222222222222("No serviceHandler defined for:", name);
                                                                }
                                                                if (this.listenerCount(name)) {
                                                                  trace2222222222222222("listener count by name emits " + name + " with content");
                                                                  this.emit(name, content);
                                                                } else {
                                                                  if (this.listenerCount("unhandledEvent")) {
                                                                    trace2222222222222222("unhandled event emiting with content");
                                                                    this.emit("unhandledEvent", content);
                                                                  } else {
                                                                    trace2222222222222222(
                                                                      "no unhandled event handler with header: " + JSON.stringify(content.header)
                                                                    );
                                                                    if (content.header.expectingReply) {
                                                                      debug3222222222222222("Replying with error for unhandled service:", name);
                                                                      content.header.sender.forwardedFrom = null;
                                                                      this.errorResponse(
                                                                        content.header.sender,
                                                                        content.service,
                                                                        content.invokeId,
                                                                        5,
                                                                        67
                                                                        /* REJECT_UNRECOGNIZED_SERVICE */
                                                                      );
                                                                    }
                                                                  }
                                                                }
                                                              }
                                                              /**
                                                               *
                                                               * @param buffer
                                                               * @param offset
                                                               * @param length
                                                               * @param header
                                                               * @private
                                                               */
                                                              _handlePdu(buffer, offset, length, header) {
                                                                let msg;
                                                                trace2222222222222222("handlePdu Header: ", header);
                                                                switch (header.apduType & PDU_TYPE_MASK222222222222222) {
                                                                  case 16:
                                                                    msg = decodeUnconfirmedServiceRequest222222222222222(buffer, offset);
                                                                    msg.header = header;
                                                                    msg.header.confirmedService = false;
                                                                    this._processServiceRequest(
                                                                      unconfirmedServiceMap222222222222222,
                                                                      msg,
                                                                      buffer,
                                                                      offset + msg.len,
                                                                      length - msg.len
                                                                    );
                                                                    break;
                                                                  case 32:
                                                                    msg = decodeSimpleAck222222222222222(buffer, offset);
                                                                    offset += msg.len;
                                                                    length -= msg.len;
                                                                    this._invokeCallback(msg.invokeId, null, {
                                                                      msg,
                                                                      buffer,
                                                                      offset: offset + msg.len,
                                                                      length: length - msg.len
                                                                    });
                                                                    break;
                                                                  case 48:
                                                                    msg = decodeComplexAck222222222222222(buffer, offset);
                                                                    msg.header = header;
                                                                    if ((header.apduType & 8) === 0) {
                                                                      this._invokeCallback(msg.invokeId, null, {
                                                                        msg,
                                                                        buffer,
                                                                        offset: offset + msg.len,
                                                                        length: length - msg.len
                                                                      });
                                                                    } else {
                                                                      this._processSegment(
                                                                        msg,
                                                                        true,
                                                                        buffer,
                                                                        offset + msg.len,
                                                                        length - msg.len
                                                                      );
                                                                    }
                                                                    break;
                                                                  case 64:
                                                                    msg = decodeSegmentAck222222222222222(buffer, offset);
                                                                    msg.header = header;
                                                                    this._processSegment(
                                                                      msg,
                                                                      true,
                                                                      buffer,
                                                                      offset + msg.len,
                                                                      length - msg.len
                                                                    );
                                                                    break;
                                                                  case 80:
                                                                    msg = decodeError222222222222222(buffer, offset);
                                                                    this._processError(
                                                                      msg.invokeId,
                                                                      buffer,
                                                                      offset + msg.len,
                                                                      length - msg.len
                                                                    );
                                                                    break;
                                                                  case 96:
                                                                  case 112:
                                                                    msg = decodeAbort222222222222222(buffer, offset);
                                                                    this._processAbort(msg.invokeId, msg.reason);
                                                                    break;
                                                                  case 0:
                                                                    msg = decodeConfirmedServiceRequest222222222222222(buffer, offset);
                                                                    msg.header = header;
                                                                    msg.header.confirmedService = true;
                                                                    if ((header.apduType & 8) === 0) {
                                                                      this._processServiceRequest(
                                                                        confirmedServiceMap222222222222222,
                                                                        msg,
                                                                        buffer,
                                                                        offset + msg.len,
                                                                        length - msg.len
                                                                      );
                                                                    } else {
                                                                      this._processSegment(
                                                                        msg,
                                                                        true,
                                                                        buffer,
                                                                        offset + msg.len,
                                                                        length - msg.len
                                                                      );
                                                                    }
                                                                    break;
                                                                  default:
                                                                    debug3222222222222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                                                    break;
                                                                }
                                                              }
                                                              /**
                                                               *
                                                               * @param buffer
                                                               * @param offset
                                                               * @param msgLength
                                                               * @param header
                                                               * @returns {*}
                                                               * @private
                                                               */
                                                              _handleNpdu(buffer, offset, msgLength, header) {
                                                                if (msgLength <= 0) {
                                                                  return trace2222222222222222("No NPDU data -> Drop package");
                                                                }
                                                                const result = decode31222222222222222(buffer, offset);
                                                                if (!result) {
                                                                  return trace2222222222222222("Received invalid NPDU header -> Drop package");
                                                                }
                                                                if (result.funct & 128) {
                                                                  return trace2222222222222222("Received network layer message -> Drop package");
                                                                }
                                                                offset += result.len;
                                                                msgLength -= result.len;
                                                                if (msgLength <= 0) {
                                                                  return trace2222222222222222("No APDU data -> Drop package");
                                                                }
                                                                header.apduType = getDecodedType222222222222222(buffer, offset);
                                                                header.expectingReply = !!(result.funct & 4);
                                                                this._handlePdu(buffer, offset, msgLength, header);
                                                              }
                                                              /**
                                                               *
                                                               * @param buffer
                                                               * @param remoteAddress
                                                               * @returns {*}
                                                               * @private
                                                               */
                                                              _receiveData(buffer, remoteAddress) {
                                                                if (buffer.length < BVLC_HEADER_LENGTH322222222222222) {
                                                                  return trace2222222222222222("Received invalid data -> Drop package");
                                                                }
                                                                const result = decode32222222222222222(buffer, 0);
                                                                if (!result) {
                                                                  return trace2222222222222222("Received invalid BVLC header -> Drop package");
                                                                }
                                                                let header = {
                                                                  // Which function the packet came in on, so later code can distinguish
                                                                  // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                                                                  func: result.func,
                                                                  sender: {
                                                                    // Address of the host we are directly connected to. String, IP:port.
                                                                    address: remoteAddress,
                                                                    // If the host is a BBMD passing messages along to another node, this
                                                                    // is the address of the distant BACnet node.  String, IP:port.
                                                                    // Typically we won't have network connectivity to this address, but
                                                                    // we have to include it in replies so the host we are connect to knows
                                                                    // where to forward the messages.
                                                                    forwardedFrom: null
                                                                  }
                                                                };
                                                                switch (result.func) {
                                                                  case 10:
                                                                  case 11:
                                                                    this._handleNpdu(
                                                                      buffer,
                                                                      result.len,
                                                                      buffer.length - result.len,
                                                                      header
                                                                    );
                                                                    break;
                                                                  case 4:
                                                                    header.sender.forwardedFrom = result.originatingIP;
                                                                    this._handleNpdu(
                                                                      buffer,
                                                                      result.len,
                                                                      buffer.length - result.len,
                                                                      header
                                                                    );
                                                                    break;
                                                                  case 5:
                                                                    let decodeResult = register_foreign_device_exports222222222222222.decode(
                                                                      buffer,
                                                                      result.len,
                                                                      buffer.length - result.len
                                                                    );
                                                                    if (!decodeResult) {
                                                                      return trace2222222222222222("Received invalid registerForeignDevice message");
                                                                    }
                                                                    this.emit("registerForeignDevice", {
                                                                      header,
                                                                      payload: decodeResult
                                                                    });
                                                                    break;
                                                                  case 9:
                                                                    this._handleNpdu(
                                                                      buffer,
                                                                      result.len,
                                                                      buffer.length - result.len,
                                                                      header
                                                                    );
                                                                    break;
                                                                  default:
                                                                    debug3222222222222222(
                                                                      "Received unknown BVLC function " + result.func + " -> Drop package"
                                                                    );
                                                                    break;
                                                                }
                                                              }
                                                              /**
                                                               * @event bacnet.error
                                                               * @param {error} err - The error object thrown by the underlying transport layer.
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * client.on('error', (err) => {
                                                               *   console.log('Error occurred: ', err);
                                                               *   client.close();
                                                               * });
                                                               */
                                                              _receiveError(err) {
                                                                this.emit("error", err);
                                                              }
                                                              /**
                                                               * The whoIs command discovers all BACNET devices in a network.
                                                               * @function bacnet.whoIs
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {object=} options
                                                               * @param {number=} options.lowLimit - Minimal device instance number to search for.
                                                               * @param {number=} options.highLimit - Maximal device instance number to search for.
                                                               * @fires bacnet.iAm
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * client.whoIs();
                                                               */
                                                              whoIs(receiver, options) {
                                                                if (!options) {
                                                                  if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                                                    options = receiver;
                                                                    receiver = void 0;
                                                                  }
                                                                }
                                                                options = options || {};
                                                                const settings = {
                                                                  lowLimit: options.lowLimit,
                                                                  highLimit: options.highLimit
                                                                };
                                                                const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  //@ts-ignore
                                                                  receiver,
                                                                  null,
                                                                  DEFAULT_HOP_COUNT2222222222222222,
                                                                  0,
                                                                  0
                                                                );
                                                                encodeUnconfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  16,
                                                                  8
                                                                  /* WHO_IS */
                                                                );
                                                                who_is_exports222222222222222.encode(buffer, settings.lowLimit, settings.highLimit);
                                                                this.sendBvlc(receiver, buffer);
                                                              }
                                                              /**
                                                               * The timeSync command sets the time of a target device.
                                                               * @function bacnet.timeSync
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {date} dateTime - The date and time to set on the target device.
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * client.timeSync('192.168.1.43', new Date());
                                                               */
                                                              timeSync(receiver, dateTime) {
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(buffer, 0, receiver);
                                                                encodeUnconfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  16,
                                                                  6
                                                                  /* TIME_SYNCHRONIZATION */
                                                                );
                                                                time_sync_exports222222222222222.encode(buffer, dateTime);
                                                                this.sendBvlc(receiver, buffer);
                                                              }
                                                              /**
                                                               * The timeSyncUTC command sets the UTC time of a target device.
                                                               * @function bacnet.timeSyncUTC
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {date} dateTime - The date and time to set on the target device.
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * client.timeSyncUTC('192.168.1.43', new Date());
                                                               */
                                                              timeSyncUTC(receiver, dateTime) {
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(buffer, 0, receiver);
                                                                encodeUnconfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  16,
                                                                  9
                                                                  /* UTC_TIME_SYNCHRONIZATION */
                                                                );
                                                                time_sync_exports222222222222222.encode(buffer, dateTime);
                                                                this.sendBvlc(receiver, buffer);
                                                              }
                                                              /**
                                                               * The readProperty command reads a single property of an object from a device.
                                                               * @function bacnet.readProperty
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {object} objectId - The BACNET object ID to read.
                                                               * @param {number} objectId.type - The BACNET object type to read.
                                                               * @param {number} objectId.instance - The BACNET object instance to read.
                                                               * @param {number} propertyId - The BACNET property id in the specified object to read.
                                                               * @param {object=} options
                                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                               * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                                                               *   console.log('value: ', value);
                                                               * });
                                                               */
                                                              readProperty(receiver, objectId, propertyId, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId(),
                                                                  arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL222222222222222
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  //@ts-ignore
                                                                  receiver,
                                                                  null,
                                                                  DEFAULT_HOP_COUNT2222222222222222,
                                                                  0,
                                                                  0
                                                                );
                                                                const type = 0 | //@ts-ignore
                                                                (settings.maxSegments !== 0 ? 2 : 0);
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  type,
                                                                  12,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                read_property_exports222222222222222.encode(
                                                                  buffer,
                                                                  objectId.type,
                                                                  objectId.instance,
                                                                  propertyId,
                                                                  settings.arrayIndex
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  const result = read_property_exports222222222222222.decodeAcknowledge(
                                                                    data.buffer,
                                                                    data.offset,
                                                                    data.length
                                                                  );
                                                                  if (!result) {
                                                                    return void next(new Error("INVALID_DECODING"));
                                                                  }
                                                                  next(null, result);
                                                                });
                                                              }
                                                              /**
                                                               * The writeProperty command writes a single property of an object to a device.
                                                               * @function bacnet.writeProperty
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {object} objectId - The BACNET object ID to write.
                                                               * @param {number} objectId.type - The BACNET object type to write.
                                                               * @param {number} objectId.instance - The BACNET object instance to write.
                                                               * @param {number} propertyId - The BACNET property id in the specified object to write.
                                                               * @param {object[]} values - A list of values to be written to the specified property.
                                                               * @param {ApplicationTag} values.type - The data-type of the value to be written.
                                                               * @param {number} values.value - The actual value to be written.
                                                               * @param {object=} options
                                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                               * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                               * @param {number=} options.priority - The priority of the value to be written.
                                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                                                               *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                                                               * ], (err, value) => {
                                                               *   console.log('value: ', value);
                                                               * });
                                                               */
                                                              writeProperty(receiver, objectId, propertyId, values, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId(),
                                                                  arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL222222222222222,
                                                                  priority: options.priority || ASN1_NO_PRIORITY222222222222222
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  //@ts-ignore Todo somehow types do not match at all
                                                                  receiver,
                                                                  null,
                                                                  DEFAULT_HOP_COUNT2222222222222222,
                                                                  0,
                                                                  0
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  15,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                write_property_exports222222222222222.encode(
                                                                  buffer,
                                                                  objectId.type,
                                                                  objectId.instance,
                                                                  propertyId,
                                                                  settings.arrayIndex,
                                                                  settings.priority,
                                                                  values
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  next(err);
                                                                });
                                                              }
                                                              /**
                                                               * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                                                               * @function bacnet.readPropertyMultiple
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {object[]} propertiesArray - List of object and property specifications to be read.
                                                               * @param {object} propertiesArray.objectId - Specifies which object to read.
                                                               * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                                                               * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                                                               * @param {object[]} propertiesArray.properties - List of properties to be read.
                                                               * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                                                               * @param {object=} options
                                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * const requestArray = [
                                                               *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                                                               * ];
                                                               * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                                                               *   console.log('value: ', value);
                                                               * });
                                                               */
                                                              readPropertyMultiple(receiver, propertiesArray, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                                                                const buffer = this._getBuffer(!!isForwarded);
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  //@ts-ignore Todo somehow types do not match at all
                                                                  receiver,
                                                                  null,
                                                                  DEFAULT_HOP_COUNT2222222222222222,
                                                                  0,
                                                                  0
                                                                );
                                                                const type = 0 | //@ts-ignore
                                                                (settings.maxSegments !== 0 ? 2 : 0);
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  type,
                                                                  14,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                read_property_multiple_exports222222222222222.encode(buffer, propertiesArray);
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return next(err);
                                                                  }
                                                                  const result = read_property_multiple_exports222222222222222.decodeAcknowledge(
                                                                    data.buffer,
                                                                    data.offset,
                                                                    data.length
                                                                  );
                                                                  if (!result) {
                                                                    return next(new Error("INVALID_DECODING"));
                                                                  }
                                                                  next(null, result);
                                                                });
                                                              }
                                                              /**
                                                               * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                                                               * @function bacnet.writePropertyMultiple
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {object[]} values - List of object and property specifications to be written.
                                                               * @param {object} values.objectId - Specifies which object to read.
                                                               * @param {number} values.objectId.type - The BACNET object type to read.
                                                               * @param {number} values.objectId.instance - The BACNET object instance to read.
                                                               * @param {object[]} values.values - List of properties to be written.
                                                               * @param {object} values.values.property - Property specifications to be written.
                                                               * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                                                               * @param {number} values.values.property.index - The array index of the property to be written.
                                                               * @param {object[]} values.values.value - A list of values to be written to the specified property.
                                                               * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                                                               * @param {object} values.values.value.value - The actual value to be written.
                                                               * @param {number} values.values.priority - The priority to be used for writing to the property.
                                                               * @param {object=} options
                                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * const values = [
                                                               *   {objectId: {type: 8, instance: 44301}, values: [
                                                               *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                                                               *   ]}
                                                               * ];
                                                               * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                                                               *   console.log('value: ', value);
                                                               * });
                                                               */
                                                              writePropertyMultiple(receiver, values, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  //@ts-ignore
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  16,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId
                                                                );
                                                                write_property_multiple_exports222222222222222.encodeObject(buffer, values);
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  next(err);
                                                                });
                                                              }
                                                              /**
                                                               * The confirmedCOVNotification command is used to push notifications to other
                                                               * systems that have registered with us via a subscribeCOV message.
                                                               * @function bacnet.confirmedCOVNotification
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                                                               * @param {number} monitoredObject.type - Object type.
                                                               * @param {number} monitoredObject.instance - Object instance.
                                                               * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                                                               * @param {number} initiatingDeviceId - Our BACnet device ID.
                                                               * @param {number} lifetime - Number of seconds left until the subscription expires.
                                                               * @param {array} values - values for the monitored object.  See example.
                                                               * @param {object=} options
                                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * const settings = {deviceId: 123}; // our BACnet device
                                                               *
                                                               * // Items saved from subscribeCOV message
                                                               * const monitoredObject = {type: 1, instance: 1};
                                                               * const subscriberProcessId = 123;
                                                               *
                                                               * client.confirmedCOVNotification(
                                                               *   '192.168.1.43',
                                                               *   monitoredObject,
                                                               *   subscriberProcessId,
                                                               *   settings.deviceId,
                                                               *   30, // should be lifetime of subscription really
                                                               *   [
                                                               *     {
                                                               *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                                                               *       value: [
                                                               *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                                                               *       ],
                                                               *     },
                                                               *   ],
                                                               *   (err) => {
                                                               *     console.log('error: ', err);
                                                               *   }
                                                               * );
                                                               */
                                                              confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer();
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  1,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                cov_notify_exports222222222222222.encode(
                                                                  buffer,
                                                                  subscribeId,
                                                                  initiatingDeviceId,
                                                                  monitoredObject,
                                                                  lifetime,
                                                                  values
                                                                );
                                                                encode32222222222222222(
                                                                  buffer.buffer,
                                                                  10,
                                                                  buffer.offset
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  next();
                                                                });
                                                              }
                                                              /**
                                                               * The deviceCommunicationControl command enables or disables network communication of the target device.
                                                               * @function bacnet.deviceCommunicationControl
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                                                               * @param {EnableDisable} enableDisable - The network communication state to set.
                                                               * @param {object=} options
                                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                               * @param {string=} options.password - The optional password used to set the network communication state.
                                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                                                               *   console.log('error: ', err);
                                                               * });
                                                               */
                                                              deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId(),
                                                                  password: options.password
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  17,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                device_communication_control_exports222222222222222.encode(
                                                                  buffer,
                                                                  timeDuration,
                                                                  enableDisable,
                                                                  settings.password
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  next(err);
                                                                });
                                                              }
                                                              /**
                                                               * The reinitializeDevice command initiates a restart of the target device.
                                                               * @function bacnet.reinitializeDevice
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {ReinitializedState} state - The type of restart to be initiated.
                                                               * @param {object=} options
                                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                               * @param {string=} options.password - The optional password used to restart the device.
                                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                                                               *   console.log('value: ', value);
                                                               * });
                                                               */
                                                              reinitializeDevice(receiver, state, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId(),
                                                                  password: options.password
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  20,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                reinitialize_device_exports222222222222222.encode(buffer, state, settings.password);
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  next(err);
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param objectId
                                                               * @param position
                                                               * @param fileBuffer
                                                               * @param options
                                                               * @param next
                                                               */
                                                              writeFile(receiver, objectId, position, fileBuffer, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  7,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                atomic_write_file_exports222222222222222.encode(
                                                                  buffer,
                                                                  false,
                                                                  objectId,
                                                                  position,
                                                                  fileBuffer
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  const result = atomic_write_file_exports222222222222222.decodeAcknowledge(
                                                                    data.buffer,
                                                                    data.offset,
                                                                    data.length
                                                                  );
                                                                  if (!result) {
                                                                    return void next(new Error("INVALID_DECODING"));
                                                                  }
                                                                  next(null, result);
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param objectId
                                                               * @param position
                                                               * @param count
                                                               * @param options
                                                               * @param next
                                                               */
                                                              readFile(receiver, objectId, position, count, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  6,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                atomic_read_file_exports222222222222222.encode(buffer, true, objectId, position, count);
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  const result = atomic_read_file_exports222222222222222.decodeAcknowledge(
                                                                    data.buffer,
                                                                    data.offset,
                                                                    data.length
                                                                  );
                                                                  if (!result) {
                                                                    return void next(new Error("INVALID_DECODING"));
                                                                  }
                                                                  next(null, result);
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param objectId
                                                               * @param idxBegin
                                                               * @param quantity
                                                               * @param options
                                                               * @param next
                                                               */
                                                              readRange(receiver, objectId, idxBegin, quantity, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  26,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                read_range_exports222222222222222.encode(
                                                                  buffer,
                                                                  objectId,
                                                                  131,
                                                                  ASN1_ARRAY_ALL222222222222222,
                                                                  0,
                                                                  idxBegin,
                                                                  /* @__PURE__ */ new Date(),
                                                                  quantity
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  const result = read_range_exports222222222222222.decodeAcknowledge(
                                                                    data.buffer,
                                                                    data.offset,
                                                                    data.length
                                                                  );
                                                                  if (!result) {
                                                                    return void next(new Error("INVALID_DECODING"));
                                                                  }
                                                                  next(null, result);
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param objectId
                                                               * @param subscribeId
                                                               * @param cancel
                                                               * @param issueConfirmedNotifications
                                                               * @param lifetime
                                                               * @param options
                                                               * @param next
                                                               */
                                                              subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                                                                const next = nextFunc || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  // @ts-ignore TODO types not matching with documentation and code
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  5,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                subscribe_cov_exports222222222222222.encode(
                                                                  buffer,
                                                                  subscribeId,
                                                                  objectId,
                                                                  cancel,
                                                                  issueConfirmedNotifications,
                                                                  lifetime
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  next();
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param objectId
                                                               * @param monitoredProperty
                                                               * @param subscribeId
                                                               * @param cancel
                                                               * @param issueConfirmedNotifications
                                                               * @param options
                                                               * @param next
                                                               */
                                                              subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  28,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                subscribe_property_exports222222222222222.encode(
                                                                  buffer,
                                                                  subscribeId,
                                                                  objectId,
                                                                  cancel,
                                                                  issueConfirmedNotifications,
                                                                  0,
                                                                  monitoredProperty,
                                                                  false,
                                                                  15
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  next();
                                                                });
                                                              }
                                                              /**
                                                               * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                                                               * @function bacnet.unconfirmedCOVNotification
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                                                               * @param {number} initiatingDeviceId - The id of this device.
                                                               * @param {object} monitoredObjectId - Specifies about which object the notification is.
                                                               * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                                                               * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                                                               * @param {number} timeRemaining - How long the subscription is still active in seconds.
                                                               * @param {object[]} values - List of properties with updated values.
                                                               * @param {object} values.property - Property specifications.
                                                               * @param {number} values.property.id - The updated BACNET property id.
                                                               * @param {number} values.property.index - The array index of the updated property.
                                                               * @param {object[]} values.value - A list of updated values.
                                                               * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                                                               * @param {object} values.value.value - The actual updated value.
                                                               * @param {number} values.priority - The priority of the updated property.
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * client.unconfirmedCOVNotification(
                                                               *            '127.0.0.1',
                                                               *            3,
                                                               *            433,
                                                               *            {type: 2, instance: 122},
                                                               *            120,
                                                               *            [
                                                               *              {
                                                               *                property: {id: 85},
                                                               *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                                                               *              },
                                                               *              {
                                                               *                property: {id: 111},
                                                               *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                                                               *              }
                                                               *            ]);
                                                               */
                                                              unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                                                                const buffer = this._getBuffer();
                                                                encode31222222222222222(buffer, 0, receiver);
                                                                encodeUnconfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  16,
                                                                  2
                                                                  /* UNCONFIRMED_COV_NOTIFICATION */
                                                                );
                                                                cov_notify_exports222222222222222.encode(
                                                                  buffer,
                                                                  subscriberProcessId,
                                                                  initiatingDeviceId,
                                                                  monitoredObjectId,
                                                                  timeRemaining,
                                                                  values
                                                                );
                                                                encode32222222222222222(
                                                                  buffer.buffer,
                                                                  10,
                                                                  buffer.offset
                                                                );
                                                                this._transport.send(buffer.buffer, buffer.offset, receiver);
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param objectId
                                                               * @param values
                                                               * @param options
                                                               * @param next
                                                               */
                                                              createObject(receiver, objectId, values, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  10,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                create_object_exports222222222222222.encode(buffer, objectId, values);
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  next();
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param objectId
                                                               * @param options
                                                               * @param next
                                                               */
                                                              deleteObject(receiver, objectId, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  11,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                delete_object_exports222222222222222.encode(buffer, objectId);
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  next();
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param objectId
                                                               * @param reference
                                                               * @param values
                                                               * @param options
                                                               * @param next
                                                               */
                                                              removeListElement(receiver, objectId, reference, values, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  9,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                add_list_element_exports222222222222222.encode(
                                                                  buffer,
                                                                  objectId,
                                                                  reference.id,
                                                                  reference.index,
                                                                  values
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  next();
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param objectId
                                                               * @param reference
                                                               * @param values
                                                               * @param options
                                                               * @param next
                                                               */
                                                              addListElement(receiver, objectId, reference, values, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  8,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                add_list_element_exports222222222222222.encode(
                                                                  buffer,
                                                                  objectId,
                                                                  reference.id,
                                                                  reference.index,
                                                                  values
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  next();
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param options
                                                               * @param next
                                                               */
                                                              getAlarmSummary(receiver, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  3,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  const result = alarm_summary_exports222222222222222.decode(
                                                                    data.buffer,
                                                                    data.offset,
                                                                    data.length
                                                                  );
                                                                  if (!result) {
                                                                    return void next(new Error("INVALID_DECODING"));
                                                                  }
                                                                  next(null, result);
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param objectId
                                                               * @param options
                                                               * @param next
                                                               */
                                                              getEventInformation(receiver, objectId, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  29,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                encodeContextObjectId222222222222222(buffer, 0, objectId.type, objectId.instance);
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  const result = event_information_exports222222222222222.decode(
                                                                    data.buffer,
                                                                    data.offset,
                                                                    data.length
                                                                  );
                                                                  if (!result) {
                                                                    return void next(new Error("INVALID_DECODING"));
                                                                  }
                                                                  next(null, result);
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param objectId
                                                               * @param eventState
                                                               * @param ackText
                                                               * @param evTimeStamp
                                                               * @param ackTimeStamp
                                                               * @param options
                                                               * @param next
                                                               */
                                                              acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  0,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                alarm_acknowledge_exports222222222222222.encode(
                                                                  buffer,
                                                                  57,
                                                                  objectId,
                                                                  eventState,
                                                                  ackText,
                                                                  evTimeStamp,
                                                                  ackTimeStamp
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  next();
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param vendorId
                                                               * @param serviceNumber
                                                               * @param data
                                                               * @param options
                                                               * @param next
                                                               */
                                                              confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  18,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                private_transfer_exports222222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data2) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  next();
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param vendorId
                                                               * @param serviceNumber
                                                               * @param data
                                                               */
                                                              unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(buffer, 0, receiver);
                                                                encodeUnconfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  16,
                                                                  4
                                                                  /* UNCONFIRMED_PRIVATE_TRANSFER */
                                                                );
                                                                private_transfer_exports222222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                                this.sendBvlc(receiver, buffer);
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param acknowledgmentFilter
                                                               * @param options
                                                               * @param next
                                                               */
                                                              getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  4,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                get_enrollment_summary_exports222222222222222.encode(
                                                                  buffer,
                                                                  acknowledgmentFilter,
                                                                  options.enrollmentFilter,
                                                                  options.eventStateFilter,
                                                                  options.eventTypeFilter,
                                                                  options.priorityFilter,
                                                                  options.notificationClassFilter
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  const result = get_enrollment_summary_exports222222222222222.decodeAcknowledge(
                                                                    data.buffer,
                                                                    data.offset,
                                                                    data.length
                                                                  );
                                                                  if (!result) {
                                                                    return void next(new Error("INVALID_DECODING"));
                                                                  }
                                                                  next(null, result);
                                                                });
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param eventNotification
                                                               */
                                                              unconfirmedEventNotification(receiver, eventNotification) {
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(buffer, 0, receiver);
                                                                encodeUnconfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  16,
                                                                  3
                                                                  /* UNCONFIRMED_EVENT_NOTIFICATION */
                                                                );
                                                                event_notify_data_exports222222222222222.encode(buffer, eventNotification);
                                                                this.sendBvlc(receiver, buffer);
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param eventNotification
                                                               * @param options
                                                               * @param next
                                                               */
                                                              confirmedEventNotification(receiver, eventNotification, options, next) {
                                                                next = next || options;
                                                                const settings = {
                                                                  maxSegments: options.maxSegments || 112,
                                                                  maxApdu: options.maxApdu || 5,
                                                                  invokeId: options.invokeId || this._getInvokeId()
                                                                };
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(
                                                                  buffer,
                                                                  0 | 4,
                                                                  receiver
                                                                );
                                                                encodeConfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  0,
                                                                  2,
                                                                  settings.maxSegments,
                                                                  settings.maxApdu,
                                                                  settings.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                                event_notify_data_exports222222222222222.encode(buffer, eventNotification);
                                                                this.sendBvlc(receiver, buffer);
                                                                this._addCallback(settings.invokeId, (err, data) => {
                                                                  if (err) {
                                                                    return void next(err);
                                                                  }
                                                                  next();
                                                                });
                                                              }
                                                              /**
                                                               * The readPropertyResponse call sends a response with information about one of our properties.
                                                               * @function bacnet.readPropertyResponse
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {number} invokeId - ID of the original readProperty request.
                                                               * @param {object} objectId - objectId from the original request,
                                                               * @param {object} property - property being read, taken from the original request.
                                                               * @param {object=} options varying behaviour for special circumstances
                                                               * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                                                               */
                                                              readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(buffer, 0, receiver);
                                                                encodeComplexAck222222222222222(
                                                                  buffer,
                                                                  48,
                                                                  12,
                                                                  invokeId
                                                                );
                                                                read_property_exports222222222222222.encodeAcknowledge(
                                                                  buffer,
                                                                  objectId,
                                                                  property.id,
                                                                  property.index,
                                                                  value
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                              }
                                                              readPropertyMultipleResponse(receiver, invokeId, values) {
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(buffer, 0, receiver);
                                                                encodeComplexAck222222222222222(
                                                                  buffer,
                                                                  48,
                                                                  14,
                                                                  invokeId
                                                                );
                                                                read_property_multiple_exports222222222222222.encodeAcknowledge(buffer, values);
                                                                this.sendBvlc(receiver, buffer);
                                                              }
                                                              /**
                                                               * The iAmResponse command is sent as a reply to a whoIs request.
                                                               * @function bacnet.iAmResponse
                                                               * @param {object} receiver - address to send packet to, null for local broadcast.
                                                               * @param {number} deviceId - Our device ID.
                                                               * @param {number} segmentation - an enum.Segmentation value.
                                                               * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                                                               */
                                                              iAmResponse(receiver, deviceId, segmentation, vendorId) {
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(buffer, 0, receiver);
                                                                encodeUnconfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  16,
                                                                  0
                                                                  /* I_AM */
                                                                );
                                                                i_am_exports222222222222222.encode(
                                                                  buffer,
                                                                  deviceId,
                                                                  this._transport.getMaxPayload(),
                                                                  segmentation,
                                                                  vendorId
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param deviceId
                                                               * @param objectId
                                                               * @param objectName
                                                               */
                                                              iHaveResponse(receiver, deviceId, objectId, objectName) {
                                                                const buffer = this._getBuffer(
                                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                                );
                                                                encode31222222222222222(buffer, 0, receiver);
                                                                encodeUnconfirmedServiceRequest222222222222222(
                                                                  buffer,
                                                                  16,
                                                                  1
                                                                  /* I_HAVE */
                                                                );
                                                                i_have_exports222222222222222.encode(buffer, deviceId, objectId, objectName);
                                                                this.sendBvlc(receiver, buffer);
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param service
                                                               * @param invokeId
                                                               */
                                                              simpleAckResponse(receiver, service, invokeId) {
                                                                if (typeof receiver === "string")
                                                                  return;
                                                                const buffer = this._getBuffer(!!receiver.forwardedFrom);
                                                                encode31222222222222222(buffer, 0, receiver);
                                                                encodeSimpleAck222222222222222(
                                                                  buffer,
                                                                  32,
                                                                  service,
                                                                  invokeId
                                                                );
                                                                this.sendBvlc(receiver, buffer);
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param service
                                                               * @param invokeId
                                                               * @param errorClass
                                                               * @param errorCode
                                                               */
                                                              errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                                                                trace2222222222222222(
                                                                  `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                                                    service
                                                                  )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                                                                );
                                                                trace2222222222222222(
                                                                  `error message ${error_exports222222222222222.buildMessage({
                                                                    class: errorClass,
                                                                    code: errorCode
                                                                  })}`
                                                                );
                                                                const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                                                                if (typeof receiver === "string")
                                                                  throw new Error("receiver must be object");
                                                                const buffer = this._getBuffer(hasSource);
                                                                encode31222222222222222(buffer, 0, receiver);
                                                                encodeError222222222222222(buffer, 80, service, invokeId);
                                                                error_exports222222222222222.encode(buffer, errorClass, errorCode);
                                                                this.sendBvlc(receiver, buffer);
                                                              }
                                                              /**
                                                               *
                                                               * @param receiver
                                                               * @param buffer
                                                               */
                                                              sendBvlc(receiver, buffer) {
                                                                if (typeof receiver === "string") {
                                                                  receiver = {
                                                                    address: receiver
                                                                  };
                                                                }
                                                                if (receiver && receiver.forwardedFrom) {
                                                                  encode32222222222222222(
                                                                    buffer.buffer,
                                                                    4,
                                                                    buffer.offset,
                                                                    receiver.forwardedFrom
                                                                  );
                                                                } else if (receiver && receiver.address) {
                                                                  encode32222222222222222(
                                                                    buffer.buffer,
                                                                    10,
                                                                    buffer.offset
                                                                  );
                                                                } else {
                                                                  encode32222222222222222(
                                                                    buffer.buffer,
                                                                    11,
                                                                    buffer.offset
                                                                  );
                                                                }
                                                                this._transport.send(
                                                                  buffer.buffer,
                                                                  buffer.offset,
                                                                  receiver && receiver.address || null
                                                                );
                                                              }
                                                              /**
                                                               * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                                                               * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                                                               * @function bacnet.resultResponse
                                                               * @param {string} receiver - IP address of the target device.
                                                               * @param {number} resultCode - Single value from BvlcResultFormat enum.
                                                               */
                                                              resultResponse(receiver, resultCode) {
                                                                const buffer = this._getBuffer();
                                                                encodeResult222222222222222(buffer, resultCode);
                                                                encode32222222222222222(
                                                                  buffer.buffer,
                                                                  0,
                                                                  buffer.offset
                                                                );
                                                                this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                                                              }
                                                              /**
                                                               * Unloads the current bacnet instance and closes the underlying UDP socket.
                                                               * @function bacnet.close
                                                               * @example
                                                               * const bacnet = require('node-bacnet');
                                                               * const client = new bacnet();
                                                               *
                                                               * client.close();
                                                               */
                                                              close() {
                                                                this._transport.close();
                                                              }
                                                              /**
                                                               * Helper function to take an array of enums and produce a bitstring suitable
                                                               * for inclusion as a property.
                                                               *
                                                               * @example
                                                               * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                                                               *   {value: bacnet.createBitstring([
                                                               *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                                                               *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                                                               *   ]),
                                                               *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                                                               * ],
                                                               */
                                                              static createBitstring(items) {
                                                                let offset = 0;
                                                                let bytes = [];
                                                                let bitsUsed = 0;
                                                                while (items.length) {
                                                                  let value = 0;
                                                                  items = items.filter((i) => {
                                                                    if (i >= offset + 8) {
                                                                      return true;
                                                                    }
                                                                    value |= 1 << i - offset;
                                                                    bitsUsed = Math.max(bitsUsed, i);
                                                                    return false;
                                                                  });
                                                                  bytes.push(value);
                                                                  offset += 8;
                                                                }
                                                                bitsUsed++;
                                                                return {
                                                                  value: bytes,
                                                                  bitsUsed
                                                                };
                                                              }
                                                            };
                                                            var import_underscore222222222222222 = __toESM222222222222222(require("underscore"));
                                                            var import_process222222222222222 = __toESM222222222222222(require("process"));
                                                            var import__222222222222222 = __toESM222222222222222(require_dist222222222222222());
                                                            var PropertyIdentifierToEnumMap222222222222222 = {};
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.OBJECT_TYPE] = import__222222222222222.enums.ObjectType;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__222222222222222.enums.Segmentation;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.EVENT_STATE] = import__222222222222222.enums.EventState;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.UNITS] = import__222222222222222.enums.EngineeringUnits;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.RELIABILITY] = import__222222222222222.enums.Reliability;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__222222222222222.enums.NotifyType;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.POLARITY] = import__222222222222222.enums.Polarity;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__222222222222222.enums.ServicesSupported;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__222222222222222.enums.ObjectTypesSupported;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.STATUS_FLAGS] = import__222222222222222.enums.StatusFlags;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__222222222222222.enums.LimitEnable;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.EVENT_ENABLE] = import__222222222222222.enums.EventTransitionBits;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__222222222222222.enums.EventTransitionBits;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__222222222222222.enums.DeviceStatus;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__222222222222222.enums.DeviceStatus;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.ACK_REQUIRED] = import__222222222222222.enums.EventTransitionBits;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.LOGGING_TYPE] = import__222222222222222.enums.LoggingType;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__222222222222222.enums.FileAccessMethod;
                                                            PropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.PropertyIdentifier.NODE_TYPE] = import__222222222222222.enums.NodeType;
                                                            var ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222 = {};
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BINARY_INPUT] = {};
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BINARY_INPUT][import__222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222222.enums.BinaryPV;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BINARY_INPUT][import__222222222222222.enums.PropertyIdentifier.MODE] = import__222222222222222.enums.BinaryPV;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.ANALOG_INPUT] = {};
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.ANALOG_INPUT][import__222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222222.enums.BinaryPV;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.ANALOG_OUTPUT] = {};
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.ANALOG_OUTPUT][import__222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222222.enums.BinaryPV;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BINARY_OUTPUT] = {};
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BINARY_OUTPUT][import__222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222222.enums.BinaryPV;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BINARY_OUTPUT][import__222222222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__222222222222222.enums.BinaryPV;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BINARY_VALUE] = {};
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BINARY_VALUE][import__222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222222.enums.BinaryPV;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BINARY_VALUE][import__222222222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__222222222222222.enums.BinaryPV;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222222.enums.BinaryLightingPV;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BITSTRING_VALUE] = {};
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.BINARY_VALUE][import__222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222222.enums.BinaryPV;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222222.enums.LifeSafetyState;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222222222.enums.PropertyIdentifier.TRACKING_VALUE] = import__222222222222222.enums.LifeSafetyState;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222222222.enums.PropertyIdentifier.MODE] = import__222222222222222.enums.LifeSafetyMode;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222222222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__222222222222222.enums.LifeSafetyMode;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222222222.enums.PropertyIdentifier.SILENCED] = import__222222222222222.enums.LifeSafetyState;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222222222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__222222222222222.enums.LifeSafetyOperation;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222222.enums.LifeSafetyState;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__222222222222222.enums.PropertyIdentifier.MODE] = import__222222222222222.enums.LifeSafetyMode;
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.LOAD_CONTROL] = {};
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[import__222222222222222.enums.ObjectType.LOAD_CONTROL][import__222222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222222.enums.ShedState;
                                                            var propSubSet222222222222222 = import_process222222222222222.default.argv.includes("--all") ? Object.values(import__222222222222222.enums.PropertyIdentifier) : [
                                                              /* normally supported from all devices */
                                                              import__222222222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                                                              import__222222222222222.enums.PropertyIdentifier.OBJECT_NAME,
                                                              import__222222222222222.enums.PropertyIdentifier.OBJECT_TYPE,
                                                              import__222222222222222.enums.PropertyIdentifier.PRESENT_VALUE,
                                                              import__222222222222222.enums.PropertyIdentifier.STATUS_FLAGS,
                                                              import__222222222222222.enums.PropertyIdentifier.EVENT_STATE,
                                                              import__222222222222222.enums.PropertyIdentifier.RELIABILITY,
                                                              import__222222222222222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                                                              import__222222222222222.enums.PropertyIdentifier.UNITS,
                                                              /* other properties */
                                                              import__222222222222222.enums.PropertyIdentifier.DESCRIPTION,
                                                              import__222222222222222.enums.PropertyIdentifier.SYSTEM_STATUS,
                                                              import__222222222222222.enums.PropertyIdentifier.VENDOR_NAME,
                                                              import__222222222222222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                                                              import__222222222222222.enums.PropertyIdentifier.MODEL_NAME,
                                                              import__222222222222222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                                                              import__222222222222222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                                                              import__222222222222222.enums.PropertyIdentifier.LOCATION,
                                                              import__222222222222222.enums.PropertyIdentifier.LOCAL_DATE,
                                                              import__222222222222222.enums.PropertyIdentifier.LOCAL_TIME,
                                                              import__222222222222222.enums.PropertyIdentifier.UTC_OFFSET,
                                                              import__222222222222222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                                                              import__222222222222222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                                                              import__222222222222222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                                                              import__222222222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                                                              import__222222222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                                                              import__222222222222222.enums.PropertyIdentifier.OBJECT_LIST,
                                                              import__222222222222222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                                                              import__222222222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                                                              import__222222222222222.enums.PropertyIdentifier.APDU_TIMEOUT,
                                                              import__222222222222222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                                                              import__222222222222222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                                                              import__222222222222222.enums.PropertyIdentifier.DATABASE_REVISION,
                                                              import__222222222222222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                                                              import__222222222222222.enums.PropertyIdentifier.MAX_MASTER,
                                                              import__222222222222222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                                                              import__222222222222222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                                                            ];
                                                            var debug4222222222222222 = import_process222222222222222.default.argv.includes("--debug");
                                                            function getAllPropertiesManually222222222222222(address, objectId, callback, propList, result) {
                                                              if (!propList) {
                                                                propList = propSubSet222222222222222.map((x) => x);
                                                              }
                                                              if (!result) {
                                                                result = [];
                                                              }
                                                              if (!propList.length) {
                                                                return callback({
                                                                  values: [
                                                                    {
                                                                      objectId,
                                                                      values: result
                                                                    }
                                                                  ]
                                                                });
                                                              }
                                                              const prop = propList.shift();
                                                              bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                                                                if (!err) {
                                                                  if (debug4222222222222222) {
                                                                    console.log("Handle value " + prop + ": ", JSON.stringify(value));
                                                                  }
                                                                  const objRes = value.property;
                                                                  objRes.value = value.values;
                                                                  result.push(objRes);
                                                                } else {
                                                                }
                                                                getAllPropertiesManually222222222222222(address, objectId, callback, propList, result);
                                                              });
                                                            }
                                                            function readBit222222222222222(buffer, i, bit) {
                                                              return (buffer[i] >> bit) % 2;
                                                            }
                                                            function handleBitString222222222222222(buffer, bitsUsed, usedEnum) {
                                                              const res = [];
                                                              for (let i = 0; i < bitsUsed; i++) {
                                                                const bufferIndex = Math.floor(i / 8);
                                                                if (readBit222222222222222(buffer, bufferIndex, i % 8)) {
                                                                  res.push(import__222222222222222.enums.getEnumName(usedEnum, i));
                                                                }
                                                              }
                                                              return res;
                                                            }
                                                            function parseValue222222222222222(address, objId2, parentType, value, supportsMultiple, callback) {
                                                              let resValue = null;
                                                              if (value && value.type && value.value !== null && value.value !== void 0) {
                                                                switch (value.type) {
                                                                  case import__222222222222222.enums.ApplicationTag.NULL:
                                                                    resValue = null;
                                                                    break;
                                                                  case import__222222222222222.enums.ApplicationTag.BOOLEAN:
                                                                    resValue = !!value.value;
                                                                    break;
                                                                  case import__222222222222222.enums.ApplicationTag.UNSIGNED_INTEGER:
                                                                  case import__222222222222222.enums.ApplicationTag.SIGNED_INTEGER:
                                                                  case import__222222222222222.enums.ApplicationTag.REAL:
                                                                  case import__222222222222222.enums.ApplicationTag.DOUBLE:
                                                                  case import__222222222222222.enums.ApplicationTag.CHARACTER_STRING:
                                                                    resValue = value.value;
                                                                    break;
                                                                  case import__222222222222222.enums.ApplicationTag.DATE:
                                                                  case import__222222222222222.enums.ApplicationTag.TIME:
                                                                  case import__222222222222222.enums.ApplicationTag.TIMESTAMP:
                                                                    resValue = value.value;
                                                                    break;
                                                                  case import__222222222222222.enums.ApplicationTag.BIT_STRING:
                                                                    if (ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[parentType][objId2]) {
                                                                      resValue = handleBitString222222222222222(
                                                                        value.value.value,
                                                                        value.value.bitsUsed,
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[parentType][objId2]
                                                                      );
                                                                    } else if (PropertyIdentifierToEnumMap222222222222222[objId2]) {
                                                                      resValue = handleBitString222222222222222(
                                                                        value.value.value,
                                                                        value.value.bitsUsed,
                                                                        PropertyIdentifierToEnumMap222222222222222[objId2]
                                                                      );
                                                                    } else {
                                                                      if (parentType !== import__222222222222222.enums.ObjectType.BITSTRING_VALUE) {
                                                                        console.log(
                                                                          "Unknown value for BIT_STRING type for objId " + import__222222222222222.enums.getEnumName(import__222222222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__222222222222222.enums.getEnumName(import__222222222222222.enums.ObjectType, parentType)
                                                                        );
                                                                      }
                                                                      resValue = value.value;
                                                                    }
                                                                    break;
                                                                  case import__222222222222222.enums.ApplicationTag.ENUMERATED:
                                                                    if (ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[parentType][objId2]) {
                                                                      resValue = import__222222222222222.enums.getEnumName(
                                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222222[parentType][objId2],
                                                                        value.value
                                                                      );
                                                                    } else if (PropertyIdentifierToEnumMap222222222222222[objId2]) {
                                                                      resValue = import__222222222222222.enums.getEnumName(
                                                                        PropertyIdentifierToEnumMap222222222222222[objId2],
                                                                        value.value
                                                                      );
                                                                    } else {
                                                                      console.log(
                                                                        "Unknown value for ENUMERATED type for objId " + import__222222222222222.enums.getEnumName(import__222222222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__222222222222222.enums.getEnumName(import__222222222222222.enums.ObjectType, parentType)
                                                                      );
                                                                      resValue = value.value;
                                                                    }
                                                                    break;
                                                                  case import__222222222222222.enums.ApplicationTag.OBJECTIDENTIFIER:
                                                                    if (objId2 === import__222222222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__222222222222222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__222222222222222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                                                                      resValue = value.value;
                                                                    } else if (supportsMultiple) {
                                                                      const requestArray = [
                                                                        {
                                                                          objectId: value.value,
                                                                          properties: [{ id: 8 }]
                                                                        }
                                                                      ];
                                                                      bacnetClient.readPropertyMultiple(
                                                                        address,
                                                                        requestArray,
                                                                        (err, resValue2) => {
                                                                          parseDeviceObject222222222222222(address, resValue2, value.value, true, callback);
                                                                        }
                                                                      );
                                                                      return;
                                                                    } else {
                                                                      getAllPropertiesManually222222222222222(address, value.value, (result) => {
                                                                        parseDeviceObject222222222222222(address, result, value.value, false, callback);
                                                                      });
                                                                      return;
                                                                    }
                                                                    break;
                                                                  case import__222222222222222.enums.ApplicationTag.OCTET_STRING:
                                                                    resValue = value.value;
                                                                    break;
                                                                  case import__222222222222222.enums.ApplicationTag.ERROR:
                                                                    resValue = {
                                                                      errorClass: import__222222222222222.enums.getEnumName(
                                                                        import__222222222222222.enums.ErrorClass,
                                                                        value.value.errorClass
                                                                      ),
                                                                      errorCode: import__222222222222222.enums.getEnumName(import__222222222222222.enums.ErrorCode, value.value.errorCode)
                                                                    };
                                                                    break;
                                                                  case import__222222222222222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                                                                  case import__222222222222222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                                                                  case import__222222222222222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                                                                  case import__222222222222222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                                    resValue = value.value;
                                                                    break;
                                                                  case import__222222222222222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                                                    parseValue222222222222222(
                                                                      address,
                                                                      objId2,
                                                                      parentType,
                                                                      value.value,
                                                                      supportsMultiple,
                                                                      callback
                                                                    );
                                                                    return;
                                                                  case import__222222222222222.enums.ApplicationTag.READ_ACCESS_RESULT:
                                                                    resValue = value.value;
                                                                    break;
                                                                  default:
                                                                    console.log(
                                                                      "unknown type " + value.type + ": " + JSON.stringify(value)
                                                                    );
                                                                    resValue = value;
                                                                }
                                                              }
                                                              setImmediate(() => callback(resValue));
                                                            }
                                                            function parseDeviceObject222222222222222(address, obj, parent, supportsMultiple, callback) {
                                                              if (debug4222222222222222) {
                                                                console.log(
                                                                  "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                                                                );
                                                              }
                                                              if (!obj) {
                                                                console.log("object not valid on parse device object");
                                                                return;
                                                              }
                                                              if (!obj.values || !Array.isArray(obj.values)) {
                                                                console.log("No device or invalid response");
                                                                callback({ ERROR: "No device or invalid response" });
                                                                return;
                                                              }
                                                              let cbCount = 0;
                                                              let objDef = {};
                                                              const finalize = () => {
                                                                Object.keys(objDef).forEach((devId) => {
                                                                  Object.keys(objDef[devId]).forEach((objId2) => {
                                                                    if (objDef[devId][objId2].length === 1) {
                                                                      objDef[devId][objId2] = objDef[devId][objId2][0];
                                                                    }
                                                                  });
                                                                });
                                                                if (obj.values.length === 1) {
                                                                  objDef = objDef[obj.values[0].objectId.instance];
                                                                }
                                                                if (debug4222222222222222) {
                                                                  console.log(
                                                                    "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                                                                  );
                                                                }
                                                                callback(objDef);
                                                              };
                                                              obj.values.forEach((devBaseObj) => {
                                                                if (!devBaseObj.objectId) {
                                                                  console.log("No device Id found in object data");
                                                                  return;
                                                                }
                                                                if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                                                                  console.log("No device type or instance found in object data");
                                                                  return;
                                                                }
                                                                if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                                                                  console.log("No device values response");
                                                                  return;
                                                                }
                                                                const deviceId = devBaseObj.objectId.instance;
                                                                objDef[deviceId] = {};
                                                                devBaseObj.values.forEach((devObj) => {
                                                                  let objId2 = import__222222222222222.enums.getEnumName(import__222222222222222.enums.PropertyIdentifier, devObj.id);
                                                                  if (devObj.index !== 4294967295) {
                                                                    objId2 += "-" + devObj.index;
                                                                  }
                                                                  if (debug4222222222222222) {
                                                                    console.log("Handle Object property:", deviceId, objId2, devObj.value);
                                                                  }
                                                                  devObj.value.forEach((val) => {
                                                                    if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                                                      objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                                      objDef[deviceId][objId2].push(val.value);
                                                                      return;
                                                                    }
                                                                    cbCount++;
                                                                    parseValue222222222222222(
                                                                      address,
                                                                      devObj.id,
                                                                      parent.type,
                                                                      val,
                                                                      supportsMultiple,
                                                                      (parsedValue) => {
                                                                        if (debug4222222222222222) {
                                                                          console.log(
                                                                            "RETURN parsedValue",
                                                                            deviceId,
                                                                            objId2,
                                                                            devObj.value,
                                                                            parsedValue
                                                                          );
                                                                        }
                                                                        objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                                        objDef[deviceId][objId2].push(parsedValue);
                                                                        if (!--cbCount) {
                                                                          finalize();
                                                                        }
                                                                      }
                                                                    );
                                                                  });
                                                                });
                                                              });
                                                              if (cbCount === 0) {
                                                                finalize();
                                                              }
                                                            }
                                                            var limitToDevice222222222222222 = null;
                                                            if (import_process222222222222222.default.argv.length === 3) {
                                                              limitToDevice222222222222222 = parseInt(import_process222222222222222.default.argv[2]);
                                                              if (isNaN(limitToDevice222222222222222)) {
                                                                limitToDevice222222222222222 = null;
                                                              }
                                                            }
                                                            var node_bacnet_default222222222222222 = Client222222222222222;
                                                          }
                                                        });
                                                        var node_bacnet_exports22222222222222 = {};
                                                        __export22222222222222(node_bacnet_exports22222222222222, {
                                                          _: () => import_underscore22222222222222.default,
                                                          bacnetErrorToString: () => bacnetErrorToString22222222222222,
                                                          default: () => node_bacnet_default22222222222222,
                                                          enums: () => enum_exports22222222222222,
                                                          parseValue: () => parseValue22222222222222
                                                        });
                                                        module22222222222222.exports = __toCommonJS22222222222222(node_bacnet_exports22222222222222);
                                                        var enum_exports22222222222222 = {};
                                                        __export22222222222222(enum_exports22222222222222, {
                                                          ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL22222222222222,
                                                          ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS22222222222222,
                                                          ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG22222222222222,
                                                          ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES22222222222222,
                                                          ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE22222222222222,
                                                          ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT22222222222222,
                                                          ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE22222222222222,
                                                          ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY22222222222222,
                                                          ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID22222222222222,
                                                          ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY22222222222222,
                                                          ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY22222222222222,
                                                          AbortReason: () => AbortReason22222222222222,
                                                          AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable22222222222222,
                                                          AccessCredentialDisable: () => AccessCredentialDisable22222222222222,
                                                          AccessCredentialDisableReason: () => AccessCredentialDisableReason22222222222222,
                                                          AccessEvent: () => AccessEvent22222222222222,
                                                          AccessPassbackMode: () => AccessPassbackMode22222222222222,
                                                          AccessUserType: () => AccessUserType22222222222222,
                                                          AccessZoneOccupancyState: () => AccessZoneOccupancyState22222222222222,
                                                          Action: () => Action22222222222222,
                                                          ApplicationTag: () => ApplicationTag22222222222222,
                                                          ApplicationTagName: () => ApplicationTagName22222222222222,
                                                          AuthenticationFactorType: () => AuthenticationFactorType22222222222222,
                                                          AuthenticationStatus: () => AuthenticationStatus22222222222222,
                                                          AuthorizationExemption: () => AuthorizationExemption22222222222222,
                                                          AuthorizationMode: () => AuthorizationMode22222222222222,
                                                          BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH32222222222222,
                                                          BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP22222222222222,
                                                          BackupState: () => BackupState22222222222222,
                                                          BinaryLightingPV: () => BinaryLightingPV22222222222222,
                                                          BinaryPV: () => BinaryPV22222222222222,
                                                          BvlcResultFormat: () => BvlcResultFormat22222222222222,
                                                          BvlcResultPurpose: () => BvlcResultPurpose22222222222222,
                                                          CharacterStringEncoding: () => CharacterStringEncoding22222222222222,
                                                          ConfirmedServiceChoice: () => ConfirmedServiceChoice22222222222222,
                                                          CovType: () => CovType22222222222222,
                                                          DaysOfWeek: () => DaysOfWeek22222222222222,
                                                          DeviceStatus: () => DeviceStatus22222222222222,
                                                          DoorAlarmState: () => DoorAlarmState22222222222222,
                                                          DoorSecuredStatus: () => DoorSecuredStatus22222222222222,
                                                          DoorStatus: () => DoorStatus22222222222222,
                                                          DoorValue: () => DoorValue22222222222222,
                                                          EnableDisable: () => EnableDisable22222222222222,
                                                          EngineeringUnits: () => EngineeringUnits22222222222222,
                                                          ErrorClass: () => ErrorClass22222222222222,
                                                          ErrorClassName: () => ErrorClassName22222222222222,
                                                          ErrorCode: () => ErrorCode22222222222222,
                                                          ErrorCodeName: () => ErrorCodeName22222222222222,
                                                          EscalatorFault: () => EscalatorFault22222222222222,
                                                          EscalatorMode: () => EscalatorMode22222222222222,
                                                          EscalatorOperationDirection: () => EscalatorOperationDirection22222222222222,
                                                          EventState: () => EventState22222222222222,
                                                          EventTransitionBits: () => EventTransitionBits22222222222222,
                                                          EventType: () => EventType22222222222222,
                                                          FaultType: () => FaultType22222222222222,
                                                          FileAccessMethod: () => FileAccessMethod22222222222222,
                                                          IPMode: () => IPMode22222222222222,
                                                          LifeSafetyMode: () => LifeSafetyMode22222222222222,
                                                          LifeSafetyOperation: () => LifeSafetyOperation22222222222222,
                                                          LifeSafetyState: () => LifeSafetyState22222222222222,
                                                          LiftCarDirection: () => LiftCarDirection22222222222222,
                                                          LiftCarDoorCommand: () => LiftCarDoorCommand22222222222222,
                                                          LiftCarDriveStatus: () => LiftCarDriveStatus22222222222222,
                                                          LiftCarMode: () => LiftCarMode22222222222222,
                                                          LiftFault: () => LiftFault22222222222222,
                                                          LiftGroupMode: () => LiftGroupMode22222222222222,
                                                          LightingInProgress: () => LightingInProgress22222222222222,
                                                          LightingOperation: () => LightingOperation22222222222222,
                                                          LightingTransition: () => LightingTransition22222222222222,
                                                          LimitEnable: () => LimitEnable22222222222222,
                                                          LockStatus: () => LockStatus22222222222222,
                                                          LogStatus: () => LogStatus22222222222222,
                                                          LoggingType: () => LoggingType22222222222222,
                                                          Maintenance: () => Maintenance22222222222222,
                                                          MaxApduLengthAccepted: () => MaxApduLengthAccepted22222222222222,
                                                          MaxSegmentsAccepted: () => MaxSegmentsAccepted22222222222222,
                                                          NetworkLayerMessageType: () => NetworkLayerMessageType22222222222222,
                                                          NetworkNumberQuality: () => NetworkNumberQuality22222222222222,
                                                          NetworkPortCommand: () => NetworkPortCommand22222222222222,
                                                          NetworkType: () => NetworkType22222222222222,
                                                          NodeType: () => NodeType22222222222222,
                                                          NotifyType: () => NotifyType22222222222222,
                                                          NpduControlBit: () => NpduControlBit22222222222222,
                                                          NpduControlPriority: () => NpduControlPriority22222222222222,
                                                          ObjectType: () => ObjectType22222222222222,
                                                          ObjectTypesSupported: () => ObjectTypesSupported22222222222222,
                                                          PDU_TYPE_MASK: () => PDU_TYPE_MASK22222222222222,
                                                          PduConReqBit: () => PduConReqBit22222222222222,
                                                          PduSegAckBit: () => PduSegAckBit22222222222222,
                                                          PduType: () => PduType22222222222222,
                                                          Polarity: () => Polarity22222222222222,
                                                          ProgramError: () => ProgramError22222222222222,
                                                          ProgramRequest: () => ProgramRequest22222222222222,
                                                          ProgramState: () => ProgramState22222222222222,
                                                          PropertyIdentifier: () => PropertyIdentifier22222222222222,
                                                          PropertyStates: () => PropertyStates22222222222222,
                                                          ProtocolLevel: () => ProtocolLevel22222222222222,
                                                          ReadRangeType: () => ReadRangeType22222222222222,
                                                          ReinitializedState: () => ReinitializedState22222222222222,
                                                          RejectReason: () => RejectReason22222222222222,
                                                          Relationship: () => Relationship22222222222222,
                                                          Reliability: () => Reliability22222222222222,
                                                          RestartReason: () => RestartReason22222222222222,
                                                          ResultFlags: () => ResultFlags22222222222222,
                                                          SecurityLevel: () => SecurityLevel22222222222222,
                                                          SecurityPolicy: () => SecurityPolicy22222222222222,
                                                          Segmentation: () => Segmentation22222222222222,
                                                          ServicesSupported: () => ServicesSupported22222222222222,
                                                          ShedState: () => ShedState22222222222222,
                                                          SilencedState: () => SilencedState22222222222222,
                                                          StatusFlags: () => StatusFlags22222222222222,
                                                          TimeStamp: () => TimeStamp22222222222222,
                                                          TimerState: () => TimerState22222222222222,
                                                          TimerTransition: () => TimerTransition22222222222222,
                                                          UnconfirmedServiceChoice: () => UnconfirmedServiceChoice22222222222222,
                                                          VTClass: () => VTClass22222222222222,
                                                          WriteStatus: () => WriteStatus22222222222222,
                                                          getEnumName: () => getEnumName22222222222222
                                                        });
                                                        var import_debug42222222222222 = __toESM22222222222222(require("debug"));
                                                        var debug52222222222222 = (0, import_debug42222222222222.default)("bacnet=enum=debug");
                                                        var trace32222222222222 = (0, import_debug42222222222222.default)("bacnet=enum=trace");
                                                        function invertEnum22222222222222(enumToInvert) {
                                                          const invertedEnum = {};
                                                          Object.keys(enumToInvert).forEach((key) => {
                                                            invertedEnum[enumToInvert[key]] = key;
                                                          });
                                                          return invertedEnum;
                                                        }
                                                        function getEnumName22222222222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                                                          if (!Number.isInteger(value)) {
                                                            throw new Error(
                                                              'getEnumName() can only be passed an integer value, was given "' + value + '"'
                                                            );
                                                          }
                                                          let foundEntry;
                                                          try {
                                                            const invertedGroup = invertEnum22222222222222(group);
                                                            foundEntry = invertedGroup[value];
                                                            if (foundEntry === void 0 && undefinedFallbackValue) {
                                                              foundEntry = undefinedFallbackValue;
                                                            }
                                                            if (foundEntry === void 0) {
                                                              foundEntry = value.toString();
                                                            } else if (addNumberValue) {
                                                              foundEntry += "(" + value + ")";
                                                            }
                                                          } catch (e) {
                                                            trace32222222222222(e.message);
                                                            foundEntry = null;
                                                          }
                                                          return foundEntry;
                                                        }
                                                        var PDU_TYPE_MASK22222222222222 = 240;
                                                        var ASN1_MAX_OBJECT22222222222222 = 1023;
                                                        var ASN1_INSTANCE_BITS22222222222222 = 22;
                                                        var ASN1_MAX_INSTANCE22222222222222 = 4194303;
                                                        var ASN1_MAX_BITSTRING_BYTES22222222222222 = 15;
                                                        var ASN1_ARRAY_ALL22222222222222 = 4294967295;
                                                        var ASN1_NO_PRIORITY22222222222222 = 0;
                                                        var ASN1_MIN_PRIORITY22222222222222 = 1;
                                                        var ASN1_MAX_PRIORITY22222222222222 = 16;
                                                        var ASN1_MAX_APPLICATION_TAG22222222222222 = 16;
                                                        var ASN1_MAX_OBJECT_TYPE22222222222222 = 1024;
                                                        var ASN1_MAX_PROPERTY_ID22222222222222 = 4194303;
                                                        var BVLL_TYPE_BACNET_IP22222222222222 = 129;
                                                        var BVLC_HEADER_LENGTH32222222222222 = 4;
                                                        var ConfirmedServiceChoice22222222222222 = /* @__PURE__ */ ((ConfirmedServiceChoice222222222222222) => {
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["READ_RANGE"] = 26] = "READ_RANGE";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                          ConfirmedServiceChoice222222222222222[ConfirmedServiceChoice222222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                          return ConfirmedServiceChoice222222222222222;
                                                        })(ConfirmedServiceChoice22222222222222 || {});
                                                        var UnconfirmedServiceChoice22222222222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice222222222222222) => {
                                                          UnconfirmedServiceChoice222222222222222[UnconfirmedServiceChoice222222222222222["I_AM"] = 0] = "I_AM";
                                                          UnconfirmedServiceChoice222222222222222[UnconfirmedServiceChoice222222222222222["I_HAVE"] = 1] = "I_HAVE";
                                                          UnconfirmedServiceChoice222222222222222[UnconfirmedServiceChoice222222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                                                          UnconfirmedServiceChoice222222222222222[UnconfirmedServiceChoice222222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                          UnconfirmedServiceChoice222222222222222[UnconfirmedServiceChoice222222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                          UnconfirmedServiceChoice222222222222222[UnconfirmedServiceChoice222222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                                                          UnconfirmedServiceChoice222222222222222[UnconfirmedServiceChoice222222222222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                                                          UnconfirmedServiceChoice222222222222222[UnconfirmedServiceChoice222222222222222["WHO_HAS"] = 7] = "WHO_HAS";
                                                          UnconfirmedServiceChoice222222222222222[UnconfirmedServiceChoice222222222222222["WHO_IS"] = 8] = "WHO_IS";
                                                          UnconfirmedServiceChoice222222222222222[UnconfirmedServiceChoice222222222222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                                                          UnconfirmedServiceChoice222222222222222[UnconfirmedServiceChoice222222222222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                                                          UnconfirmedServiceChoice222222222222222[UnconfirmedServiceChoice222222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                          return UnconfirmedServiceChoice222222222222222;
                                                        })(UnconfirmedServiceChoice22222222222222 || {});
                                                        var AbortReason22222222222222 = /* @__PURE__ */ ((AbortReason222222222222222) => {
                                                          AbortReason222222222222222[AbortReason222222222222222["OTHER"] = 0] = "OTHER";
                                                          AbortReason222222222222222[AbortReason222222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                          AbortReason222222222222222[AbortReason222222222222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                                                          AbortReason222222222222222[AbortReason222222222222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                          AbortReason222222222222222[AbortReason222222222222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                                                          AbortReason222222222222222[AbortReason222222222222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                                                          AbortReason222222222222222[AbortReason222222222222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                                                          AbortReason222222222222222[AbortReason222222222222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                                                          AbortReason222222222222222[AbortReason222222222222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                                                          AbortReason222222222222222[AbortReason222222222222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                                                          AbortReason222222222222222[AbortReason222222222222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                                                          AbortReason222222222222222[AbortReason222222222222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                                                          return AbortReason222222222222222;
                                                        })(AbortReason22222222222222 || {});
                                                        var RejectReason22222222222222 = /* @__PURE__ */ ((RejectReason222222222222222) => {
                                                          RejectReason222222222222222[RejectReason222222222222222["OTHER"] = 0] = "OTHER";
                                                          RejectReason222222222222222[RejectReason222222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                          RejectReason222222222222222[RejectReason222222222222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                                                          RejectReason222222222222222[RejectReason222222222222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                                                          RejectReason222222222222222[RejectReason222222222222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                                                          RejectReason222222222222222[RejectReason222222222222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                                                          RejectReason222222222222222[RejectReason222222222222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                                                          RejectReason222222222222222[RejectReason222222222222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                                                          RejectReason222222222222222[RejectReason222222222222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                                                          RejectReason222222222222222[RejectReason222222222222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                                                          return RejectReason222222222222222;
                                                        })(RejectReason22222222222222 || {});
                                                        var ErrorClass22222222222222 = /* @__PURE__ */ ((ErrorClass222222222222222) => {
                                                          ErrorClass222222222222222[ErrorClass222222222222222["DEVICE"] = 0] = "DEVICE";
                                                          ErrorClass222222222222222[ErrorClass222222222222222["OBJECT"] = 1] = "OBJECT";
                                                          ErrorClass222222222222222[ErrorClass222222222222222["PROPERTY"] = 2] = "PROPERTY";
                                                          ErrorClass222222222222222[ErrorClass222222222222222["RESOURCES"] = 3] = "RESOURCES";
                                                          ErrorClass222222222222222[ErrorClass222222222222222["SECURITY"] = 4] = "SECURITY";
                                                          ErrorClass222222222222222[ErrorClass222222222222222["SERVICES"] = 5] = "SERVICES";
                                                          ErrorClass222222222222222[ErrorClass222222222222222["VT"] = 6] = "VT";
                                                          ErrorClass222222222222222[ErrorClass222222222222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                                                          return ErrorClass222222222222222;
                                                        })(ErrorClass22222222222222 || {});
                                                        var ErrorClassName22222222222222 = invertEnum22222222222222(
                                                          ErrorClass22222222222222
                                                        );
                                                        var ErrorCode22222222222222 = /* @__PURE__ */ ((ErrorCode222222222222222) => {
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["BUSY"] = 82] = "BUSY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["FILE_FULL"] = 128] = "FILE_FULL";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["OTHER"] = 0] = "OTHER";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["SUCCESS"] = 84] = "SUCCESS";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["TIMEOUT"] = 30] = "TIMEOUT";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                                                          ErrorCode222222222222222[ErrorCode222222222222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                                                          return ErrorCode222222222222222;
                                                        })(ErrorCode22222222222222 || {});
                                                        var ErrorCodeName22222222222222 = invertEnum22222222222222(
                                                          ErrorCode22222222222222
                                                        );
                                                        var AccessAuthenticationFactorDisable22222222222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable222222222222222) => {
                                                          AccessAuthenticationFactorDisable222222222222222[AccessAuthenticationFactorDisable222222222222222["NONE"] = 0] = "NONE";
                                                          AccessAuthenticationFactorDisable222222222222222[AccessAuthenticationFactorDisable222222222222222["DISABLED"] = 1] = "DISABLED";
                                                          AccessAuthenticationFactorDisable222222222222222[AccessAuthenticationFactorDisable222222222222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                                                          AccessAuthenticationFactorDisable222222222222222[AccessAuthenticationFactorDisable222222222222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                                                          AccessAuthenticationFactorDisable222222222222222[AccessAuthenticationFactorDisable222222222222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                                                          AccessAuthenticationFactorDisable222222222222222[AccessAuthenticationFactorDisable222222222222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                                                          return AccessAuthenticationFactorDisable222222222222222;
                                                        })(AccessAuthenticationFactorDisable22222222222222 || {});
                                                        var AccessCredentialDisable22222222222222 = /* @__PURE__ */ ((AccessCredentialDisable222222222222222) => {
                                                          AccessCredentialDisable222222222222222[AccessCredentialDisable222222222222222["NONE"] = 0] = "NONE";
                                                          AccessCredentialDisable222222222222222[AccessCredentialDisable222222222222222["DISABLE"] = 1] = "DISABLE";
                                                          AccessCredentialDisable222222222222222[AccessCredentialDisable222222222222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                                                          AccessCredentialDisable222222222222222[AccessCredentialDisable222222222222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                                                          return AccessCredentialDisable222222222222222;
                                                        })(AccessCredentialDisable22222222222222 || {});
                                                        var AccessCredentialDisableReason22222222222222 = /* @__PURE__ */ ((AccessCredentialDisableReason222222222222222) => {
                                                          AccessCredentialDisableReason222222222222222[AccessCredentialDisableReason222222222222222["DISABLED"] = 0] = "DISABLED";
                                                          AccessCredentialDisableReason222222222222222[AccessCredentialDisableReason222222222222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                                                          AccessCredentialDisableReason222222222222222[AccessCredentialDisableReason222222222222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                                                          AccessCredentialDisableReason222222222222222[AccessCredentialDisableReason222222222222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                                                          AccessCredentialDisableReason222222222222222[AccessCredentialDisableReason222222222222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                                                          AccessCredentialDisableReason222222222222222[AccessCredentialDisableReason222222222222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                                                          AccessCredentialDisableReason222222222222222[AccessCredentialDisableReason222222222222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                                                          AccessCredentialDisableReason222222222222222[AccessCredentialDisableReason222222222222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                                                          AccessCredentialDisableReason222222222222222[AccessCredentialDisableReason222222222222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                                                          AccessCredentialDisableReason222222222222222[AccessCredentialDisableReason222222222222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                                                          return AccessCredentialDisableReason222222222222222;
                                                        })(AccessCredentialDisableReason22222222222222 || {});
                                                        var AccessEvent22222222222222 = /* @__PURE__ */ ((AccessEvent222222222222222) => {
                                                          AccessEvent222222222222222[AccessEvent222222222222222["NONE"] = 0] = "NONE";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["GRANTED"] = 1] = "GRANTED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["MUSTER"] = 2] = "MUSTER";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DURESS"] = 4] = "DURESS";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["TRACE"] = 5] = "TRACE";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                                                          AccessEvent222222222222222[AccessEvent222222222222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                                                          return AccessEvent222222222222222;
                                                        })(AccessEvent22222222222222 || {});
                                                        var AccessPassbackMode22222222222222 = /* @__PURE__ */ ((AccessPassbackMode222222222222222) => {
                                                          AccessPassbackMode222222222222222[AccessPassbackMode222222222222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                                                          AccessPassbackMode222222222222222[AccessPassbackMode222222222222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                                                          AccessPassbackMode222222222222222[AccessPassbackMode222222222222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                                                          return AccessPassbackMode222222222222222;
                                                        })(AccessPassbackMode22222222222222 || {});
                                                        var AccessUserType22222222222222 = /* @__PURE__ */ ((AccessUserType222222222222222) => {
                                                          AccessUserType222222222222222[AccessUserType222222222222222["ASSET"] = 0] = "ASSET";
                                                          AccessUserType222222222222222[AccessUserType222222222222222["GROUP"] = 1] = "GROUP";
                                                          AccessUserType222222222222222[AccessUserType222222222222222["PERSON"] = 2] = "PERSON";
                                                          return AccessUserType222222222222222;
                                                        })(AccessUserType22222222222222 || {});
                                                        var AccessZoneOccupancyState22222222222222 = /* @__PURE__ */ ((AccessZoneOccupancyState222222222222222) => {
                                                          AccessZoneOccupancyState222222222222222[AccessZoneOccupancyState222222222222222["NORMAL"] = 0] = "NORMAL";
                                                          AccessZoneOccupancyState222222222222222[AccessZoneOccupancyState222222222222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                                                          AccessZoneOccupancyState222222222222222[AccessZoneOccupancyState222222222222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                                                          AccessZoneOccupancyState222222222222222[AccessZoneOccupancyState222222222222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                                                          AccessZoneOccupancyState222222222222222[AccessZoneOccupancyState222222222222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                                                          AccessZoneOccupancyState222222222222222[AccessZoneOccupancyState222222222222222["DISABLED"] = 5] = "DISABLED";
                                                          AccessZoneOccupancyState222222222222222[AccessZoneOccupancyState222222222222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                                                          return AccessZoneOccupancyState222222222222222;
                                                        })(AccessZoneOccupancyState22222222222222 || {});
                                                        var Action22222222222222 = /* @__PURE__ */ ((Action222222222222222) => {
                                                          Action222222222222222[Action222222222222222["DIRECT"] = 0] = "DIRECT";
                                                          Action222222222222222[Action222222222222222["REVERSE"] = 1] = "REVERSE";
                                                          return Action222222222222222;
                                                        })(Action22222222222222 || {});
                                                        var AuthenticationFactorType22222222222222 = /* @__PURE__ */ ((AuthenticationFactorType222222222222222) => {
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["UNDEFINED"] = 0] = "UNDEFINED";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["ERROR"] = 1] = "ERROR";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["CUSTOM"] = 2] = "CUSTOM";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["WIEGAND26"] = 8] = "WIEGAND26";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["WIEGAND37"] = 9] = "WIEGAND37";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["FASC_N"] = 13] = "FASC_N";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["GSA75"] = 17] = "GSA75";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["CHUID"] = 18] = "CHUID";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["GUID"] = 20] = "GUID";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["CBEFF_A"] = 21] = "CBEFF_A";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["CBEFF_B"] = 22] = "CBEFF_B";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["CBEFF_C"] = 23] = "CBEFF_C";
                                                          AuthenticationFactorType222222222222222[AuthenticationFactorType222222222222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                                                          return AuthenticationFactorType222222222222222;
                                                        })(AuthenticationFactorType22222222222222 || {});
                                                        var AuthenticationStatus22222222222222 = /* @__PURE__ */ ((AuthenticationStatus222222222222222) => {
                                                          AuthenticationStatus222222222222222[AuthenticationStatus222222222222222["NOT_READY"] = 0] = "NOT_READY";
                                                          AuthenticationStatus222222222222222[AuthenticationStatus222222222222222["READY"] = 1] = "READY";
                                                          AuthenticationStatus222222222222222[AuthenticationStatus222222222222222["DISABLED"] = 2] = "DISABLED";
                                                          AuthenticationStatus222222222222222[AuthenticationStatus222222222222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                                                          AuthenticationStatus222222222222222[AuthenticationStatus222222222222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                                                          AuthenticationStatus222222222222222[AuthenticationStatus222222222222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                                                          AuthenticationStatus222222222222222[AuthenticationStatus222222222222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                                                          return AuthenticationStatus222222222222222;
                                                        })(AuthenticationStatus22222222222222 || {});
                                                        var AuthorizationExemption22222222222222 = /* @__PURE__ */ ((AuthorizationExemption222222222222222) => {
                                                          AuthorizationExemption222222222222222[AuthorizationExemption222222222222222["PASSBACK"] = 0] = "PASSBACK";
                                                          AuthorizationExemption222222222222222[AuthorizationExemption222222222222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                                                          AuthorizationExemption222222222222222[AuthorizationExemption222222222222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                                                          AuthorizationExemption222222222222222[AuthorizationExemption222222222222222["LOCKOUT"] = 3] = "LOCKOUT";
                                                          AuthorizationExemption222222222222222[AuthorizationExemption222222222222222["DENY"] = 4] = "DENY";
                                                          AuthorizationExemption222222222222222[AuthorizationExemption222222222222222["VERIFICATION"] = 5] = "VERIFICATION";
                                                          AuthorizationExemption222222222222222[AuthorizationExemption222222222222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                                                          return AuthorizationExemption222222222222222;
                                                        })(AuthorizationExemption22222222222222 || {});
                                                        var AuthorizationMode22222222222222 = /* @__PURE__ */ ((AuthorizationMode222222222222222) => {
                                                          AuthorizationMode222222222222222[AuthorizationMode222222222222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                                                          AuthorizationMode222222222222222[AuthorizationMode222222222222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                                                          AuthorizationMode222222222222222[AuthorizationMode222222222222222["DENY_ALL"] = 2] = "DENY_ALL";
                                                          AuthorizationMode222222222222222[AuthorizationMode222222222222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                                                          AuthorizationMode222222222222222[AuthorizationMode222222222222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                                                          AuthorizationMode222222222222222[AuthorizationMode222222222222222["NONE"] = 5] = "NONE";
                                                          return AuthorizationMode222222222222222;
                                                        })(AuthorizationMode22222222222222 || {});
                                                        var BackupState22222222222222 = /* @__PURE__ */ ((BackupState222222222222222) => {
                                                          BackupState222222222222222[BackupState222222222222222["IDLE"] = 0] = "IDLE";
                                                          BackupState222222222222222[BackupState222222222222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                                                          BackupState222222222222222[BackupState222222222222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                                                          BackupState222222222222222[BackupState222222222222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                                                          BackupState222222222222222[BackupState222222222222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                                                          BackupState222222222222222[BackupState222222222222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                                                          BackupState222222222222222[BackupState222222222222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                                                          return BackupState222222222222222;
                                                        })(BackupState22222222222222 || {});
                                                        var BinaryLightingPV22222222222222 = /* @__PURE__ */ ((BinaryLightingPV222222222222222) => {
                                                          BinaryLightingPV222222222222222[BinaryLightingPV222222222222222["OFF"] = 0] = "OFF";
                                                          BinaryLightingPV222222222222222[BinaryLightingPV222222222222222["ON"] = 1] = "ON";
                                                          BinaryLightingPV222222222222222[BinaryLightingPV222222222222222["WARN"] = 2] = "WARN";
                                                          BinaryLightingPV222222222222222[BinaryLightingPV222222222222222["WARN_OFF"] = 3] = "WARN_OFF";
                                                          BinaryLightingPV222222222222222[BinaryLightingPV222222222222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                                                          BinaryLightingPV222222222222222[BinaryLightingPV222222222222222["STOP"] = 5] = "STOP";
                                                          return BinaryLightingPV222222222222222;
                                                        })(BinaryLightingPV22222222222222 || {});
                                                        var BinaryPV22222222222222 = /* @__PURE__ */ ((BinaryPV222222222222222) => {
                                                          BinaryPV222222222222222[BinaryPV222222222222222["INACTIVE"] = 0] = "INACTIVE";
                                                          BinaryPV222222222222222[BinaryPV222222222222222["ACTIVE"] = 1] = "ACTIVE";
                                                          return BinaryPV222222222222222;
                                                        })(BinaryPV22222222222222 || {});
                                                        var DeviceStatus22222222222222 = /* @__PURE__ */ ((DeviceStatus222222222222222) => {
                                                          DeviceStatus222222222222222[DeviceStatus222222222222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                                                          DeviceStatus222222222222222[DeviceStatus222222222222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                                                          DeviceStatus222222222222222[DeviceStatus222222222222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                                                          DeviceStatus222222222222222[DeviceStatus222222222222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                                                          DeviceStatus222222222222222[DeviceStatus222222222222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                                                          DeviceStatus222222222222222[DeviceStatus222222222222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                                                          return DeviceStatus222222222222222;
                                                        })(DeviceStatus22222222222222 || {});
                                                        var DoorAlarmState22222222222222 = /* @__PURE__ */ ((DoorAlarmState222222222222222) => {
                                                          DoorAlarmState222222222222222[DoorAlarmState222222222222222["NORMAL"] = 0] = "NORMAL";
                                                          DoorAlarmState222222222222222[DoorAlarmState222222222222222["ALARM"] = 1] = "ALARM";
                                                          DoorAlarmState222222222222222[DoorAlarmState222222222222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                                                          DoorAlarmState222222222222222[DoorAlarmState222222222222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                                                          DoorAlarmState222222222222222[DoorAlarmState222222222222222["TAMPER"] = 4] = "TAMPER";
                                                          DoorAlarmState222222222222222[DoorAlarmState222222222222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                                                          DoorAlarmState222222222222222[DoorAlarmState222222222222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                                                          DoorAlarmState222222222222222[DoorAlarmState222222222222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                                                          DoorAlarmState222222222222222[DoorAlarmState222222222222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                                                          return DoorAlarmState222222222222222;
                                                        })(DoorAlarmState22222222222222 || {});
                                                        var DoorSecuredStatus22222222222222 = /* @__PURE__ */ ((DoorSecuredStatus222222222222222) => {
                                                          DoorSecuredStatus222222222222222[DoorSecuredStatus222222222222222["SECURED"] = 0] = "SECURED";
                                                          DoorSecuredStatus222222222222222[DoorSecuredStatus222222222222222["UNSECURED"] = 1] = "UNSECURED";
                                                          DoorSecuredStatus222222222222222[DoorSecuredStatus222222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                          return DoorSecuredStatus222222222222222;
                                                        })(DoorSecuredStatus22222222222222 || {});
                                                        var DoorStatus22222222222222 = /* @__PURE__ */ ((DoorStatus222222222222222) => {
                                                          DoorStatus222222222222222[DoorStatus222222222222222["CLOSED"] = 0] = "CLOSED";
                                                          DoorStatus222222222222222[DoorStatus222222222222222["OPENED"] = 1] = "OPENED";
                                                          DoorStatus222222222222222[DoorStatus222222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                          DoorStatus222222222222222[DoorStatus222222222222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                                                          DoorStatus222222222222222[DoorStatus222222222222222["UNUSED"] = 4] = "UNUSED";
                                                          DoorStatus222222222222222[DoorStatus222222222222222["NONE"] = 5] = "NONE";
                                                          DoorStatus222222222222222[DoorStatus222222222222222["CLOSING"] = 6] = "CLOSING";
                                                          DoorStatus222222222222222[DoorStatus222222222222222["OPENING"] = 7] = "OPENING";
                                                          DoorStatus222222222222222[DoorStatus222222222222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                                                          DoorStatus222222222222222[DoorStatus222222222222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                                                          return DoorStatus222222222222222;
                                                        })(DoorStatus22222222222222 || {});
                                                        var DoorValue22222222222222 = /* @__PURE__ */ ((DoorValue222222222222222) => {
                                                          DoorValue222222222222222[DoorValue222222222222222["LOCK"] = 0] = "LOCK";
                                                          DoorValue222222222222222[DoorValue222222222222222["UNLOCK"] = 1] = "UNLOCK";
                                                          DoorValue222222222222222[DoorValue222222222222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                                                          DoorValue222222222222222[DoorValue222222222222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                                                          return DoorValue222222222222222;
                                                        })(DoorValue22222222222222 || {});
                                                        var EngineeringUnits22222222222222 = /* @__PURE__ */ ((EngineeringUnits222222222222222) => {
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CURRENCY1"] = 105] = "CURRENCY1";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CURRENCY2"] = 106] = "CURRENCY2";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CURRENCY3"] = 107] = "CURRENCY3";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CURRENCY4"] = 108] = "CURRENCY4";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CURRENCY5"] = 109] = "CURRENCY5";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CURRENCY6"] = 110] = "CURRENCY6";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CURRENCY7"] = 111] = "CURRENCY7";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CURRENCY8"] = 112] = "CURRENCY8";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CURRENCY9"] = 113] = "CURRENCY9";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CURRENCY10"] = 114] = "CURRENCY10";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["AMPERES"] = 3] = "AMPERES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DECIBELS"] = 199] = "DECIBELS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["FARADS"] = 170] = "FARADS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["HENRYS"] = 171] = "HENRYS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["OHMS"] = 4] = "OHMS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["OHM_METERS"] = 172] = "OHM_METERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOHMS"] = 122] = "KILOHMS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGOHMS"] = 123] = "MEGOHMS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["SIEMENS"] = 173] = "SIEMENS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["TESLAS"] = 175] = "TESLAS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["VOLTS"] = 5] = "VOLTS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["WEBERS"] = 178] = "WEBERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["JOULES"] = 16] = "JOULES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOJOULES"] = 17] = "KILOJOULES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["BTUS"] = 20] = "BTUS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["THERMS"] = 21] = "THERMS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["TON_HOURS"] = 22] = "TON_HOURS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["NEWTON"] = 153] = "NEWTON";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["HERTZ"] = 27] = "HERTZ";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PER_HOUR"] = 131] = "PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MICROMETERS"] = 194] = "MICROMETERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOMETERS"] = 193] = "KILOMETERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["METERS"] = 31] = "METERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["INCHES"] = 32] = "INCHES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["FEET"] = 33] = "FEET";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CANDELAS"] = 179] = "CANDELAS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["LUMENS"] = 36] = "LUMENS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["LUXES"] = 37] = "LUXES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["GRAMS"] = 195] = "GRAMS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["TONS"] = 41] = "TONS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["WATTS"] = 47] = "WATTS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOWATTS"] = 48] = "KILOWATTS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PASCALS"] = 53] = "PASCALS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIBARS"] = 134] = "MILLIBARS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["BARS"] = 55] = "BARS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["YEARS"] = 67] = "YEARS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MONTHS"] = 68] = "MONTHS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["WEEKS"] = 69] = "WEEKS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DAYS"] = 70] = "DAYS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["HOURS"] = 71] = "HOURS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MINUTES"] = 72] = "MINUTES";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["SECONDS"] = 73] = "SECONDS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLILITERS"] = 197] = "MILLILITERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["LITERS"] = 82] = "LITERS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["US_GALLONS"] = 83] = "US_GALLONS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["NO_UNITS"] = 95] = "NO_UNITS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PERCENT"] = 98] = "PERCENT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PER_SECOND"] = 101] = "PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["RADIANS"] = 103] = "RADIANS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PER_MILLE"] = 207] = "PER_MILLE";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["BECQUERELS"] = 222] = "BECQUERELS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["GRAY"] = 225] = "GRAY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MICROGRAY"] = 227] = "MICROGRAY";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["SIEVERTS"] = 228] = "SIEVERTS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIREMS"] = 47814] = "MILLIREMS";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["PH"] = 234] = "PH";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                                                          EngineeringUnits222222222222222[EngineeringUnits222222222222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                                                          return EngineeringUnits222222222222222;
                                                        })(EngineeringUnits22222222222222 || {});
                                                        var EscalatorFault22222222222222 = /* @__PURE__ */ ((EscalatorFault222222222222222) => {
                                                          EscalatorFault222222222222222[EscalatorFault222222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                          EscalatorFault222222222222222[EscalatorFault222222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                          EscalatorFault222222222222222[EscalatorFault222222222222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                                                          EscalatorFault222222222222222[EscalatorFault222222222222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                                                          EscalatorFault222222222222222[EscalatorFault222222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                          EscalatorFault222222222222222[EscalatorFault222222222222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                                                          EscalatorFault222222222222222[EscalatorFault222222222222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                                                          EscalatorFault222222222222222[EscalatorFault222222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                          EscalatorFault222222222222222[EscalatorFault222222222222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                                                          return EscalatorFault222222222222222;
                                                        })(EscalatorFault22222222222222 || {});
                                                        var EscalatorMode22222222222222 = /* @__PURE__ */ ((EscalatorMode222222222222222) => {
                                                          EscalatorMode222222222222222[EscalatorMode222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                          EscalatorMode222222222222222[EscalatorMode222222222222222["STOP"] = 1] = "STOP";
                                                          EscalatorMode222222222222222[EscalatorMode222222222222222["UP"] = 2] = "UP";
                                                          EscalatorMode222222222222222[EscalatorMode222222222222222["DOWN"] = 3] = "DOWN";
                                                          EscalatorMode222222222222222[EscalatorMode222222222222222["INSPECTION"] = 4] = "INSPECTION";
                                                          EscalatorMode222222222222222[EscalatorMode222222222222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                                                          return EscalatorMode222222222222222;
                                                        })(EscalatorMode22222222222222 || {});
                                                        var EscalatorOperationDirection22222222222222 = /* @__PURE__ */ ((EscalatorOperationDirection222222222222222) => {
                                                          EscalatorOperationDirection222222222222222[EscalatorOperationDirection222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                          EscalatorOperationDirection222222222222222[EscalatorOperationDirection222222222222222["STOPPED"] = 1] = "STOPPED";
                                                          EscalatorOperationDirection222222222222222[EscalatorOperationDirection222222222222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                                                          EscalatorOperationDirection222222222222222[EscalatorOperationDirection222222222222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                                                          EscalatorOperationDirection222222222222222[EscalatorOperationDirection222222222222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                                                          EscalatorOperationDirection222222222222222[EscalatorOperationDirection222222222222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                                                          return EscalatorOperationDirection222222222222222;
                                                        })(EscalatorOperationDirection22222222222222 || {});
                                                        var EventState22222222222222 = /* @__PURE__ */ ((EventState222222222222222) => {
                                                          EventState222222222222222[EventState222222222222222["NORMAL"] = 0] = "NORMAL";
                                                          EventState222222222222222[EventState222222222222222["FAULT"] = 1] = "FAULT";
                                                          EventState222222222222222[EventState222222222222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                                                          EventState222222222222222[EventState222222222222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                                                          EventState222222222222222[EventState222222222222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                                                          EventState222222222222222[EventState222222222222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                                                          return EventState222222222222222;
                                                        })(EventState22222222222222 || {});
                                                        var EventType22222222222222 = /* @__PURE__ */ ((EventType222222222222222) => {
                                                          EventType222222222222222[EventType222222222222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                                                          EventType222222222222222[EventType222222222222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                                                          EventType222222222222222[EventType222222222222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                                                          EventType222222222222222[EventType222222222222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                                                          EventType222222222222222[EventType222222222222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                                                          EventType222222222222222[EventType222222222222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                                                          EventType222222222222222[EventType222222222222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                                                          EventType222222222222222[EventType222222222222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                                                          EventType222222222222222[EventType222222222222222["EXTENDED"] = 9] = "EXTENDED";
                                                          EventType222222222222222[EventType222222222222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                                                          EventType222222222222222[EventType222222222222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                                                          EventType222222222222222[EventType222222222222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                                                          EventType222222222222222[EventType222222222222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                                                          EventType222222222222222[EventType222222222222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                                                          EventType222222222222222[EventType222222222222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                                                          EventType222222222222222[EventType222222222222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                                                          EventType222222222222222[EventType222222222222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                                                          EventType222222222222222[EventType222222222222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                                                          EventType222222222222222[EventType222222222222222["NONE"] = 20] = "NONE";
                                                          EventType222222222222222[EventType222222222222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                                                          EventType222222222222222[EventType222222222222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                                                          return EventType222222222222222;
                                                        })(EventType22222222222222 || {});
                                                        var FaultType22222222222222 = /* @__PURE__ */ ((FaultType222222222222222) => {
                                                          FaultType222222222222222[FaultType222222222222222["NONE"] = 0] = "NONE";
                                                          FaultType222222222222222[FaultType222222222222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                                                          FaultType222222222222222[FaultType222222222222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                                                          FaultType222222222222222[FaultType222222222222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                                                          FaultType222222222222222[FaultType222222222222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                                                          FaultType222222222222222[FaultType222222222222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                                                          FaultType222222222222222[FaultType222222222222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                                                          FaultType222222222222222[FaultType222222222222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                                                          return FaultType222222222222222;
                                                        })(FaultType22222222222222 || {});
                                                        var FileAccessMethod22222222222222 = /* @__PURE__ */ ((FileAccessMethod222222222222222) => {
                                                          FileAccessMethod222222222222222[FileAccessMethod222222222222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                                                          FileAccessMethod222222222222222[FileAccessMethod222222222222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                                                          return FileAccessMethod222222222222222;
                                                        })(FileAccessMethod22222222222222 || {});
                                                        var IPMode22222222222222 = /* @__PURE__ */ ((IPMode222222222222222) => {
                                                          IPMode222222222222222[IPMode222222222222222["NORMAL"] = 0] = "NORMAL";
                                                          IPMode222222222222222[IPMode222222222222222["FOREIGN"] = 1] = "FOREIGN";
                                                          IPMode222222222222222[IPMode222222222222222["BBMD"] = 2] = "BBMD";
                                                          return IPMode222222222222222;
                                                        })(IPMode22222222222222 || {});
                                                        var LifeSafetyMode22222222222222 = /* @__PURE__ */ ((LifeSafetyMode222222222222222) => {
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["OFF"] = 0] = "OFF";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["ON"] = 1] = "ON";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["TEST"] = 2] = "TEST";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["MANNED"] = 3] = "MANNED";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["UNMANNED"] = 4] = "UNMANNED";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["ARMED"] = 5] = "ARMED";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["DISARMED"] = 6] = "DISARMED";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["PREARMED"] = 7] = "PREARMED";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["SLOW"] = 8] = "SLOW";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["FAST"] = 9] = "FAST";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["ENABLED"] = 11] = "ENABLED";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["DISABLED"] = 12] = "DISABLED";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                                                          LifeSafetyMode222222222222222[LifeSafetyMode222222222222222["DEFAULT"] = 14] = "DEFAULT";
                                                          return LifeSafetyMode222222222222222;
                                                        })(LifeSafetyMode22222222222222 || {});
                                                        var LifeSafetyOperation22222222222222 = /* @__PURE__ */ ((LifeSafetyOperation222222222222222) => {
                                                          LifeSafetyOperation222222222222222[LifeSafetyOperation222222222222222["NONE"] = 0] = "NONE";
                                                          LifeSafetyOperation222222222222222[LifeSafetyOperation222222222222222["SILENCE"] = 1] = "SILENCE";
                                                          LifeSafetyOperation222222222222222[LifeSafetyOperation222222222222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                                                          LifeSafetyOperation222222222222222[LifeSafetyOperation222222222222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                                                          LifeSafetyOperation222222222222222[LifeSafetyOperation222222222222222["RESET"] = 4] = "RESET";
                                                          LifeSafetyOperation222222222222222[LifeSafetyOperation222222222222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                                                          LifeSafetyOperation222222222222222[LifeSafetyOperation222222222222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                                                          LifeSafetyOperation222222222222222[LifeSafetyOperation222222222222222["UNSILENCE"] = 7] = "UNSILENCE";
                                                          LifeSafetyOperation222222222222222[LifeSafetyOperation222222222222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                                                          LifeSafetyOperation222222222222222[LifeSafetyOperation222222222222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                                                          return LifeSafetyOperation222222222222222;
                                                        })(LifeSafetyOperation22222222222222 || {});
                                                        var LifeSafetyState22222222222222 = /* @__PURE__ */ ((LifeSafetyState222222222222222) => {
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["QUIET"] = 0] = "QUIET";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["ALARM"] = 2] = "ALARM";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["FAULT"] = 3] = "FAULT";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["NOT_READY"] = 6] = "NOT_READY";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["ACTIVE"] = 7] = "ACTIVE";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["TAMPER"] = 8] = "TAMPER";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["HOLDUP"] = 13] = "HOLDUP";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["DURESS"] = 14] = "DURESS";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["ABNORMAL"] = 16] = "ABNORMAL";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["DELAYED"] = 18] = "DELAYED";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["BLOCKED"] = 19] = "BLOCKED";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                                                          LifeSafetyState222222222222222[LifeSafetyState222222222222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                                                          return LifeSafetyState222222222222222;
                                                        })(LifeSafetyState22222222222222 || {});
                                                        var LiftCarDirection22222222222222 = /* @__PURE__ */ ((LiftCarDirection222222222222222) => {
                                                          LiftCarDirection222222222222222[LiftCarDirection222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                          LiftCarDirection222222222222222[LiftCarDirection222222222222222["NONE"] = 1] = "NONE";
                                                          LiftCarDirection222222222222222[LiftCarDirection222222222222222["STOPPED"] = 2] = "STOPPED";
                                                          LiftCarDirection222222222222222[LiftCarDirection222222222222222["UP"] = 3] = "UP";
                                                          LiftCarDirection222222222222222[LiftCarDirection222222222222222["DOWN"] = 4] = "DOWN";
                                                          LiftCarDirection222222222222222[LiftCarDirection222222222222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                                                          return LiftCarDirection222222222222222;
                                                        })(LiftCarDirection22222222222222 || {});
                                                        var LiftCarDoorCommand22222222222222 = /* @__PURE__ */ ((LiftCarDoorCommand222222222222222) => {
                                                          LiftCarDoorCommand222222222222222[LiftCarDoorCommand222222222222222["NONE"] = 0] = "NONE";
                                                          LiftCarDoorCommand222222222222222[LiftCarDoorCommand222222222222222["OPEN"] = 1] = "OPEN";
                                                          LiftCarDoorCommand222222222222222[LiftCarDoorCommand222222222222222["CLOSE"] = 2] = "CLOSE";
                                                          return LiftCarDoorCommand222222222222222;
                                                        })(LiftCarDoorCommand22222222222222 || {});
                                                        var LiftCarDriveStatus22222222222222 = /* @__PURE__ */ ((LiftCarDriveStatus222222222222222) => {
                                                          LiftCarDriveStatus222222222222222[LiftCarDriveStatus222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                          LiftCarDriveStatus222222222222222[LiftCarDriveStatus222222222222222["STATIONARY"] = 1] = "STATIONARY";
                                                          LiftCarDriveStatus222222222222222[LiftCarDriveStatus222222222222222["BRAKING"] = 2] = "BRAKING";
                                                          LiftCarDriveStatus222222222222222[LiftCarDriveStatus222222222222222["ACCELERATE"] = 3] = "ACCELERATE";
                                                          LiftCarDriveStatus222222222222222[LiftCarDriveStatus222222222222222["DECELERATE"] = 4] = "DECELERATE";
                                                          LiftCarDriveStatus222222222222222[LiftCarDriveStatus222222222222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                                                          LiftCarDriveStatus222222222222222[LiftCarDriveStatus222222222222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                                                          LiftCarDriveStatus222222222222222[LiftCarDriveStatus222222222222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                                                          LiftCarDriveStatus222222222222222[LiftCarDriveStatus222222222222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                                                          LiftCarDriveStatus222222222222222[LiftCarDriveStatus222222222222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                                                          return LiftCarDriveStatus222222222222222;
                                                        })(LiftCarDriveStatus22222222222222 || {});
                                                        var LiftCarMode22222222222222 = /* @__PURE__ */ ((LiftCarMode222222222222222) => {
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["NORMAL"] = 1] = "NORMAL";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["VIP"] = 2] = "VIP";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["HOMING"] = 3] = "HOMING";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["PARKING"] = 4] = "PARKING";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["INSPECTION"] = 8] = "INSPECTION";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                                                          LiftCarMode222222222222222[LiftCarMode222222222222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                                                          return LiftCarMode222222222222222;
                                                        })(LiftCarMode22222222222222 || {});
                                                        var LiftFault22222222222222 = /* @__PURE__ */ ((LiftFault222222222222222) => {
                                                          LiftFault222222222222222[LiftFault222222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                          LiftFault222222222222222[LiftFault222222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                          LiftFault222222222222222[LiftFault222222222222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                                                          LiftFault222222222222222[LiftFault222222222222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                                                          LiftFault222222222222222[LiftFault222222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                          LiftFault222222222222222[LiftFault222222222222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                                                          LiftFault222222222222222[LiftFault222222222222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                                                          LiftFault222222222222222[LiftFault222222222222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                                                          LiftFault222222222222222[LiftFault222222222222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                                                          LiftFault222222222222222[LiftFault222222222222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                                                          LiftFault222222222222222[LiftFault222222222222222["START_FAILURE"] = 10] = "START_FAILURE";
                                                          LiftFault222222222222222[LiftFault222222222222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                                                          LiftFault222222222222222[LiftFault222222222222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                                                          LiftFault222222222222222[LiftFault222222222222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                                                          LiftFault222222222222222[LiftFault222222222222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                                                          LiftFault222222222222222[LiftFault222222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                          LiftFault222222222222222[LiftFault222222222222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                                                          return LiftFault222222222222222;
                                                        })(LiftFault22222222222222 || {});
                                                        var LiftGroupMode22222222222222 = /* @__PURE__ */ ((LiftGroupMode222222222222222) => {
                                                          LiftGroupMode222222222222222[LiftGroupMode222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                          LiftGroupMode222222222222222[LiftGroupMode222222222222222["NORMAL"] = 1] = "NORMAL";
                                                          LiftGroupMode222222222222222[LiftGroupMode222222222222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                                                          LiftGroupMode222222222222222[LiftGroupMode222222222222222["TWO_WAY"] = 3] = "TWO_WAY";
                                                          LiftGroupMode222222222222222[LiftGroupMode222222222222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                                                          LiftGroupMode222222222222222[LiftGroupMode222222222222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                                                          LiftGroupMode222222222222222[LiftGroupMode222222222222222["UP_PEAK"] = 6] = "UP_PEAK";
                                                          return LiftGroupMode222222222222222;
                                                        })(LiftGroupMode22222222222222 || {});
                                                        var LightingInProgress22222222222222 = /* @__PURE__ */ ((LightingInProgress222222222222222) => {
                                                          LightingInProgress222222222222222[LightingInProgress222222222222222["IDLE"] = 0] = "IDLE";
                                                          LightingInProgress222222222222222[LightingInProgress222222222222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                                                          LightingInProgress222222222222222[LightingInProgress222222222222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                                                          LightingInProgress222222222222222[LightingInProgress222222222222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                                                          LightingInProgress222222222222222[LightingInProgress222222222222222["OTHER"] = 4] = "OTHER";
                                                          return LightingInProgress222222222222222;
                                                        })(LightingInProgress22222222222222 || {});
                                                        var LightingOperation22222222222222 = /* @__PURE__ */ ((LightingOperation222222222222222) => {
                                                          LightingOperation222222222222222[LightingOperation222222222222222["NONE"] = 0] = "NONE";
                                                          LightingOperation222222222222222[LightingOperation222222222222222["FADE_TO"] = 1] = "FADE_TO";
                                                          LightingOperation222222222222222[LightingOperation222222222222222["RAMP_TO"] = 2] = "RAMP_TO";
                                                          LightingOperation222222222222222[LightingOperation222222222222222["STEP_UP"] = 3] = "STEP_UP";
                                                          LightingOperation222222222222222[LightingOperation222222222222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                                                          LightingOperation222222222222222[LightingOperation222222222222222["STEP_ON"] = 5] = "STEP_ON";
                                                          LightingOperation222222222222222[LightingOperation222222222222222["STEP_OFF"] = 6] = "STEP_OFF";
                                                          LightingOperation222222222222222[LightingOperation222222222222222["WARN"] = 7] = "WARN";
                                                          LightingOperation222222222222222[LightingOperation222222222222222["WARN_OFF"] = 8] = "WARN_OFF";
                                                          LightingOperation222222222222222[LightingOperation222222222222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                                                          LightingOperation222222222222222[LightingOperation222222222222222["STOP"] = 10] = "STOP";
                                                          return LightingOperation222222222222222;
                                                        })(LightingOperation22222222222222 || {});
                                                        var LightingTransition22222222222222 = /* @__PURE__ */ ((LightingTransition222222222222222) => {
                                                          LightingTransition222222222222222[LightingTransition222222222222222["NONE"] = 0] = "NONE";
                                                          LightingTransition222222222222222[LightingTransition222222222222222["FADE"] = 1] = "FADE";
                                                          LightingTransition222222222222222[LightingTransition222222222222222["RAMP"] = 2] = "RAMP";
                                                          return LightingTransition222222222222222;
                                                        })(LightingTransition22222222222222 || {});
                                                        var LockStatus22222222222222 = /* @__PURE__ */ ((LockStatus222222222222222) => {
                                                          LockStatus222222222222222[LockStatus222222222222222["LOCKED"] = 0] = "LOCKED";
                                                          LockStatus222222222222222[LockStatus222222222222222["UNLOCKED"] = 1] = "UNLOCKED";
                                                          LockStatus222222222222222[LockStatus222222222222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                                                          LockStatus222222222222222[LockStatus222222222222222["UNUSED"] = 3] = "UNUSED";
                                                          LockStatus222222222222222[LockStatus222222222222222["UNKNOWN"] = 4] = "UNKNOWN";
                                                          return LockStatus222222222222222;
                                                        })(LockStatus22222222222222 || {});
                                                        var LoggingType22222222222222 = /* @__PURE__ */ ((LoggingType222222222222222) => {
                                                          LoggingType222222222222222[LoggingType222222222222222["POLLED"] = 0] = "POLLED";
                                                          LoggingType222222222222222[LoggingType222222222222222["COV"] = 1] = "COV";
                                                          LoggingType222222222222222[LoggingType222222222222222["TRIGGERED"] = 2] = "TRIGGERED";
                                                          return LoggingType222222222222222;
                                                        })(LoggingType22222222222222 || {});
                                                        var Maintenance22222222222222 = /* @__PURE__ */ ((Maintenance222222222222222) => {
                                                          Maintenance222222222222222[Maintenance222222222222222["NONE"] = 0] = "NONE";
                                                          Maintenance222222222222222[Maintenance222222222222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                                                          Maintenance222222222222222[Maintenance222222222222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                                                          Maintenance222222222222222[Maintenance222222222222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                                                          return Maintenance222222222222222;
                                                        })(Maintenance22222222222222 || {});
                                                        var NetworkNumberQuality22222222222222 = /* @__PURE__ */ ((NetworkNumberQuality222222222222222) => {
                                                          NetworkNumberQuality222222222222222[NetworkNumberQuality222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                          NetworkNumberQuality222222222222222[NetworkNumberQuality222222222222222["LEARNED"] = 1] = "LEARNED";
                                                          NetworkNumberQuality222222222222222[NetworkNumberQuality222222222222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                                                          NetworkNumberQuality222222222222222[NetworkNumberQuality222222222222222["CONFIGURED"] = 3] = "CONFIGURED";
                                                          return NetworkNumberQuality222222222222222;
                                                        })(NetworkNumberQuality22222222222222 || {});
                                                        var NetworkPortCommand22222222222222 = /* @__PURE__ */ ((NetworkPortCommand222222222222222) => {
                                                          NetworkPortCommand222222222222222[NetworkPortCommand222222222222222["IDLE"] = 0] = "IDLE";
                                                          NetworkPortCommand222222222222222[NetworkPortCommand222222222222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                                                          NetworkPortCommand222222222222222[NetworkPortCommand222222222222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                                                          NetworkPortCommand222222222222222[NetworkPortCommand222222222222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                                                          NetworkPortCommand222222222222222[NetworkPortCommand222222222222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                                                          NetworkPortCommand222222222222222[NetworkPortCommand222222222222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                                                          NetworkPortCommand222222222222222[NetworkPortCommand222222222222222["DISCONNECT"] = 6] = "DISCONNECT";
                                                          NetworkPortCommand222222222222222[NetworkPortCommand222222222222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                                                          return NetworkPortCommand222222222222222;
                                                        })(NetworkPortCommand22222222222222 || {});
                                                        var NetworkType22222222222222 = /* @__PURE__ */ ((NetworkType222222222222222) => {
                                                          NetworkType222222222222222[NetworkType222222222222222["ETHERNET"] = 0] = "ETHERNET";
                                                          NetworkType222222222222222[NetworkType222222222222222["ARCNET"] = 1] = "ARCNET";
                                                          NetworkType222222222222222[NetworkType222222222222222["MSTP"] = 2] = "MSTP";
                                                          NetworkType222222222222222[NetworkType222222222222222["PTP"] = 3] = "PTP";
                                                          NetworkType222222222222222[NetworkType222222222222222["LONTALK"] = 4] = "LONTALK";
                                                          NetworkType222222222222222[NetworkType222222222222222["IPV4"] = 5] = "IPV4";
                                                          NetworkType222222222222222[NetworkType222222222222222["ZIGBEE"] = 6] = "ZIGBEE";
                                                          NetworkType222222222222222[NetworkType222222222222222["VIRTUAL"] = 7] = "VIRTUAL";
                                                          NetworkType222222222222222[NetworkType222222222222222["IPV6"] = 9] = "IPV6";
                                                          NetworkType222222222222222[NetworkType222222222222222["SERIAL"] = 10] = "SERIAL";
                                                          return NetworkType222222222222222;
                                                        })(NetworkType22222222222222 || {});
                                                        var NodeType22222222222222 = /* @__PURE__ */ ((NodeType222222222222222) => {
                                                          NodeType222222222222222[NodeType222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                          NodeType222222222222222[NodeType222222222222222["SYSTEM"] = 1] = "SYSTEM";
                                                          NodeType222222222222222[NodeType222222222222222["NETWORK"] = 2] = "NETWORK";
                                                          NodeType222222222222222[NodeType222222222222222["DEVICE"] = 3] = "DEVICE";
                                                          NodeType222222222222222[NodeType222222222222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                                                          NodeType222222222222222[NodeType222222222222222["AREA"] = 5] = "AREA";
                                                          NodeType222222222222222[NodeType222222222222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                                                          NodeType222222222222222[NodeType222222222222222["POINT"] = 7] = "POINT";
                                                          NodeType222222222222222[NodeType222222222222222["COLLECTION"] = 8] = "COLLECTION";
                                                          NodeType222222222222222[NodeType222222222222222["PROPERTY"] = 9] = "PROPERTY";
                                                          NodeType222222222222222[NodeType222222222222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                                                          NodeType222222222222222[NodeType222222222222222["OTHER"] = 11] = "OTHER";
                                                          NodeType222222222222222[NodeType222222222222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                                                          NodeType222222222222222[NodeType222222222222222["BUILDING"] = 13] = "BUILDING";
                                                          NodeType222222222222222[NodeType222222222222222["FLOOR"] = 14] = "FLOOR";
                                                          NodeType222222222222222[NodeType222222222222222["SECTION"] = 15] = "SECTION";
                                                          NodeType222222222222222[NodeType222222222222222["MODULE"] = 16] = "MODULE";
                                                          NodeType222222222222222[NodeType222222222222222["TREE"] = 17] = "TREE";
                                                          NodeType222222222222222[NodeType222222222222222["MEMBER"] = 18] = "MEMBER";
                                                          NodeType222222222222222[NodeType222222222222222["PROTOCOL"] = 19] = "PROTOCOL";
                                                          NodeType222222222222222[NodeType222222222222222["ROOM"] = 20] = "ROOM";
                                                          NodeType222222222222222[NodeType222222222222222["ZONE"] = 21] = "ZONE";
                                                          return NodeType222222222222222;
                                                        })(NodeType22222222222222 || {});
                                                        var NotifyType22222222222222 = /* @__PURE__ */ ((NotifyType222222222222222) => {
                                                          NotifyType222222222222222[NotifyType222222222222222["ALARM"] = 0] = "ALARM";
                                                          NotifyType222222222222222[NotifyType222222222222222["EVENT"] = 1] = "EVENT";
                                                          NotifyType222222222222222[NotifyType222222222222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                                                          return NotifyType222222222222222;
                                                        })(NotifyType22222222222222 || {});
                                                        var ObjectType22222222222222 = /* @__PURE__ */ ((ObjectType222222222222222) => {
                                                          ObjectType222222222222222[ObjectType222222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                          ObjectType222222222222222[ObjectType222222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                          ObjectType222222222222222[ObjectType222222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                          ObjectType222222222222222[ObjectType222222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                          ObjectType222222222222222[ObjectType222222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                          ObjectType222222222222222[ObjectType222222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                          ObjectType222222222222222[ObjectType222222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                          ObjectType222222222222222[ObjectType222222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                          ObjectType222222222222222[ObjectType222222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                          ObjectType222222222222222[ObjectType222222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                          ObjectType222222222222222[ObjectType222222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                          ObjectType222222222222222[ObjectType222222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                          ObjectType222222222222222[ObjectType222222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                          ObjectType222222222222222[ObjectType222222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                          ObjectType222222222222222[ObjectType222222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                          ObjectType222222222222222[ObjectType222222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                          ObjectType222222222222222[ObjectType222222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["COMMAND"] = 7] = "COMMAND";
                                                          ObjectType222222222222222[ObjectType222222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                          ObjectType222222222222222[ObjectType222222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["DEVICE"] = 8] = "DEVICE";
                                                          ObjectType222222222222222[ObjectType222222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                          ObjectType222222222222222[ObjectType222222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                          ObjectType222222222222222[ObjectType222222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                          ObjectType222222222222222[ObjectType222222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                          ObjectType222222222222222[ObjectType222222222222222["FILE"] = 10] = "FILE";
                                                          ObjectType222222222222222[ObjectType222222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                          ObjectType222222222222222[ObjectType222222222222222["GROUP"] = 11] = "GROUP";
                                                          ObjectType222222222222222[ObjectType222222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                          ObjectType222222222222222[ObjectType222222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                          ObjectType222222222222222[ObjectType222222222222222["LIFT"] = 59] = "LIFT";
                                                          ObjectType222222222222222[ObjectType222222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                          ObjectType222222222222222[ObjectType222222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                          ObjectType222222222222222[ObjectType222222222222222["LOOP"] = 12] = "LOOP";
                                                          ObjectType222222222222222[ObjectType222222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                          ObjectType222222222222222[ObjectType222222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                          ObjectType222222222222222[ObjectType222222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                          ObjectType222222222222222[ObjectType222222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                          ObjectType222222222222222[ObjectType222222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                          ObjectType222222222222222[ObjectType222222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                          ObjectType222222222222222[ObjectType222222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                          ObjectType222222222222222[ObjectType222222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                          ObjectType222222222222222[ObjectType222222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                          ObjectType222222222222222[ObjectType222222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                          ObjectType222222222222222[ObjectType222222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                          ObjectType222222222222222[ObjectType222222222222222["TIMER"] = 31] = "TIMER";
                                                          ObjectType222222222222222[ObjectType222222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                          ObjectType222222222222222[ObjectType222222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                          return ObjectType222222222222222;
                                                        })(ObjectType22222222222222 || {});
                                                        var Polarity22222222222222 = /* @__PURE__ */ ((Polarity222222222222222) => {
                                                          Polarity222222222222222[Polarity222222222222222["NORMAL"] = 0] = "NORMAL";
                                                          Polarity222222222222222[Polarity222222222222222["REVERSE"] = 1] = "REVERSE";
                                                          return Polarity222222222222222;
                                                        })(Polarity22222222222222 || {});
                                                        var ProgramError22222222222222 = /* @__PURE__ */ ((ProgramError222222222222222) => {
                                                          ProgramError222222222222222[ProgramError222222222222222["NORMAL"] = 0] = "NORMAL";
                                                          ProgramError222222222222222[ProgramError222222222222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                                                          ProgramError222222222222222[ProgramError222222222222222["INTERNAL"] = 2] = "INTERNAL";
                                                          ProgramError222222222222222[ProgramError222222222222222["PROGRAM"] = 3] = "PROGRAM";
                                                          ProgramError222222222222222[ProgramError222222222222222["OTHER"] = 4] = "OTHER";
                                                          return ProgramError222222222222222;
                                                        })(ProgramError22222222222222 || {});
                                                        var ProgramRequest22222222222222 = /* @__PURE__ */ ((ProgramRequest222222222222222) => {
                                                          ProgramRequest222222222222222[ProgramRequest222222222222222["READY"] = 0] = "READY";
                                                          ProgramRequest222222222222222[ProgramRequest222222222222222["LOAD"] = 1] = "LOAD";
                                                          ProgramRequest222222222222222[ProgramRequest222222222222222["RUN"] = 2] = "RUN";
                                                          ProgramRequest222222222222222[ProgramRequest222222222222222["HALT"] = 3] = "HALT";
                                                          ProgramRequest222222222222222[ProgramRequest222222222222222["RESTART"] = 4] = "RESTART";
                                                          ProgramRequest222222222222222[ProgramRequest222222222222222["UNLOAD"] = 5] = "UNLOAD";
                                                          return ProgramRequest222222222222222;
                                                        })(ProgramRequest22222222222222 || {});
                                                        var ProgramState22222222222222 = /* @__PURE__ */ ((ProgramState222222222222222) => {
                                                          ProgramState222222222222222[ProgramState222222222222222["IDLE"] = 0] = "IDLE";
                                                          ProgramState222222222222222[ProgramState222222222222222["LOADING"] = 1] = "LOADING";
                                                          ProgramState222222222222222[ProgramState222222222222222["RUNNING"] = 2] = "RUNNING";
                                                          ProgramState222222222222222[ProgramState222222222222222["WAITING"] = 3] = "WAITING";
                                                          ProgramState222222222222222[ProgramState222222222222222["HALTED"] = 4] = "HALTED";
                                                          ProgramState222222222222222[ProgramState222222222222222["UNLOADING"] = 5] = "UNLOADING";
                                                          return ProgramState222222222222222;
                                                        })(ProgramState22222222222222 || {});
                                                        var PropertyIdentifier22222222222222 = /* @__PURE__ */ ((PropertyIdentifier222222222222222) => {
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACTION"] = 2] = "ACTION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ALL"] = 8] = "ALL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ARCHIVE"] = 13] = "ARCHIVE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BIAS"] = 14] = "BIAS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BIT_MASK"] = 342] = "BIT_MASK";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CAR_MODE"] = 456] = "CAR_MODE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["COMMAND"] = 417] = "COMMAND";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["COUNT"] = 177] = "COUNT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DATE_LIST"] = 23] = "DATE_LIST";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DEADBAND"] = 25] = "DEADBAND";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ENABLE"] = 133] = "ENABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["GROUP_ID"] = 465] = "GROUP_ID";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["IS_UTC"] = 344] = "IS_UTC";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["KEY_SETS"] = 330] = "KEY_SETS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOCATION"] = 58] = "LOCATION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOCKOUT"] = 282] = "LOCKOUT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MEMBERS"] = 286] = "MEMBERS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MODE"] = 160] = "MODE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OPTIONAL"] = 80] = "OPTIONAL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["POLARITY"] = 84] = "POLARITY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["POWER"] = 384] = "POWER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["POWER_MODE"] = 479] = "POWER_MODE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PRESCALE"] = 185] = "PRESCALE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PRIORITY"] = 86] = "PRIORITY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["READ_ONLY"] = 99] = "READ_ONLY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["RELIABILITY"] = 103] = "RELIABILITY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["REPRESENTS"] = 491] = "REPRESENTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["REQUIRED"] = 105] = "REQUIRED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["RESOLUTION"] = 106] = "RESOLUTION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SCALE"] = 187] = "SCALE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SETPOINT"] = 108] = "SETPOINT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SETTING"] = 162] = "SETTING";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SILENCED"] = 163] = "SILENCED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["START_TIME"] = 142] = "START_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["STOP_TIME"] = 143] = "STOP_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TAGS"] = 486] = "TAGS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TRANSITION"] = 385] = "TRANSITION";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["TRIGGER"] = 205] = "TRIGGER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["UNITS"] = 117] = "UNITS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["USER_NAME"] = 317] = "USER_NAME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["USER_TYPE"] = 318] = "USER_TYPE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["VALUE_SET"] = 191] = "VALUE_SET";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                                                          PropertyIdentifier222222222222222[PropertyIdentifier222222222222222["ZONE_TO"] = 321] = "ZONE_TO";
                                                          return PropertyIdentifier222222222222222;
                                                        })(PropertyIdentifier22222222222222 || {});
                                                        var ProtocolLevel22222222222222 = /* @__PURE__ */ ((ProtocolLevel222222222222222) => {
                                                          ProtocolLevel222222222222222[ProtocolLevel222222222222222["PHYSICAL"] = 0] = "PHYSICAL";
                                                          ProtocolLevel222222222222222[ProtocolLevel222222222222222["PROTOCOL"] = 1] = "PROTOCOL";
                                                          ProtocolLevel222222222222222[ProtocolLevel222222222222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                                                          ProtocolLevel222222222222222[ProtocolLevel222222222222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                                                          return ProtocolLevel222222222222222;
                                                        })(ProtocolLevel22222222222222 || {});
                                                        var Relationship22222222222222 = /* @__PURE__ */ ((Relationship222222222222222) => {
                                                          Relationship222222222222222[Relationship222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                          Relationship222222222222222[Relationship222222222222222["DEFAULT"] = 1] = "DEFAULT";
                                                          Relationship222222222222222[Relationship222222222222222["CONTAINS"] = 2] = "CONTAINS";
                                                          Relationship222222222222222[Relationship222222222222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                                                          Relationship222222222222222[Relationship222222222222222["USES"] = 4] = "USES";
                                                          Relationship222222222222222[Relationship222222222222222["USED_BY"] = 5] = "USED_BY";
                                                          Relationship222222222222222[Relationship222222222222222["COMMANDS"] = 6] = "COMMANDS";
                                                          Relationship222222222222222[Relationship222222222222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                                                          Relationship222222222222222[Relationship222222222222222["ADJUSTS"] = 8] = "ADJUSTS";
                                                          Relationship222222222222222[Relationship222222222222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                                                          Relationship222222222222222[Relationship222222222222222["INGRESS"] = 10] = "INGRESS";
                                                          Relationship222222222222222[Relationship222222222222222["EGRESS"] = 11] = "EGRESS";
                                                          Relationship222222222222222[Relationship222222222222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                                                          Relationship222222222222222[Relationship222222222222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                                                          Relationship222222222222222[Relationship222222222222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                                                          Relationship222222222222222[Relationship222222222222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                                                          Relationship222222222222222[Relationship222222222222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                                                          Relationship222222222222222[Relationship222222222222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                                                          Relationship222222222222222[Relationship222222222222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                                                          Relationship222222222222222[Relationship222222222222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                                                          Relationship222222222222222[Relationship222222222222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                                                          Relationship222222222222222[Relationship222222222222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                                                          Relationship222222222222222[Relationship222222222222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                                                          Relationship222222222222222[Relationship222222222222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                                                          Relationship222222222222222[Relationship222222222222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                                                          Relationship222222222222222[Relationship222222222222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                                                          Relationship222222222222222[Relationship222222222222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                                                          Relationship222222222222222[Relationship222222222222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                                                          Relationship222222222222222[Relationship222222222222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                                                          Relationship222222222222222[Relationship222222222222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                                                          return Relationship222222222222222;
                                                        })(Relationship22222222222222 || {});
                                                        var Reliability22222222222222 = /* @__PURE__ */ ((Reliability222222222222222) => {
                                                          Reliability222222222222222[Reliability222222222222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                                                          Reliability222222222222222[Reliability222222222222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                                                          Reliability222222222222222[Reliability222222222222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                                                          Reliability222222222222222[Reliability222222222222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                                                          Reliability222222222222222[Reliability222222222222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                                                          Reliability222222222222222[Reliability222222222222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                                                          Reliability222222222222222[Reliability222222222222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                                                          Reliability222222222222222[Reliability222222222222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                                                          Reliability222222222222222[Reliability222222222222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                                                          Reliability222222222222222[Reliability222222222222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                                                          Reliability222222222222222[Reliability222222222222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                                                          Reliability222222222222222[Reliability222222222222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                                                          Reliability222222222222222[Reliability222222222222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                                                          Reliability222222222222222[Reliability222222222222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                                                          Reliability222222222222222[Reliability222222222222222["TRIPPED"] = 15] = "TRIPPED";
                                                          Reliability222222222222222[Reliability222222222222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                                                          Reliability222222222222222[Reliability222222222222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                                                          Reliability222222222222222[Reliability222222222222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                                                          Reliability222222222222222[Reliability222222222222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                                                          Reliability222222222222222[Reliability222222222222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                                                          Reliability222222222222222[Reliability222222222222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                                                          Reliability222222222222222[Reliability222222222222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                                                          Reliability222222222222222[Reliability222222222222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                                                          Reliability222222222222222[Reliability222222222222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                                                          return Reliability222222222222222;
                                                        })(Reliability22222222222222 || {});
                                                        var RestartReason22222222222222 = /* @__PURE__ */ ((RestartReason222222222222222) => {
                                                          RestartReason222222222222222[RestartReason222222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                          RestartReason222222222222222[RestartReason222222222222222["COLDSTART"] = 1] = "COLDSTART";
                                                          RestartReason222222222222222[RestartReason222222222222222["WARMSTART"] = 2] = "WARMSTART";
                                                          RestartReason222222222222222[RestartReason222222222222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                                                          RestartReason222222222222222[RestartReason222222222222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                                                          RestartReason222222222222222[RestartReason222222222222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                                                          RestartReason222222222222222[RestartReason222222222222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                                                          RestartReason222222222222222[RestartReason222222222222222["SUSPENDED"] = 7] = "SUSPENDED";
                                                          RestartReason222222222222222[RestartReason222222222222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                                                          return RestartReason222222222222222;
                                                        })(RestartReason22222222222222 || {});
                                                        var SecurityLevel22222222222222 = /* @__PURE__ */ ((SecurityLevel222222222222222) => {
                                                          SecurityLevel222222222222222[SecurityLevel222222222222222["INCAPABLE"] = 0] = "INCAPABLE";
                                                          SecurityLevel222222222222222[SecurityLevel222222222222222["PLAIN"] = 1] = "PLAIN";
                                                          SecurityLevel222222222222222[SecurityLevel222222222222222["SIGNED"] = 2] = "SIGNED";
                                                          SecurityLevel222222222222222[SecurityLevel222222222222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                                                          SecurityLevel222222222222222[SecurityLevel222222222222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                                                          SecurityLevel222222222222222[SecurityLevel222222222222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                                                          return SecurityLevel222222222222222;
                                                        })(SecurityLevel22222222222222 || {});
                                                        var SecurityPolicy22222222222222 = /* @__PURE__ */ ((SecurityPolicy222222222222222) => {
                                                          SecurityPolicy222222222222222[SecurityPolicy222222222222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                                                          SecurityPolicy222222222222222[SecurityPolicy222222222222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                                                          SecurityPolicy222222222222222[SecurityPolicy222222222222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                                                          SecurityPolicy222222222222222[SecurityPolicy222222222222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                                                          return SecurityPolicy222222222222222;
                                                        })(SecurityPolicy22222222222222 || {});
                                                        var Segmentation22222222222222 = /* @__PURE__ */ ((Segmentation222222222222222) => {
                                                          Segmentation222222222222222[Segmentation222222222222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                                                          Segmentation222222222222222[Segmentation222222222222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                                                          Segmentation222222222222222[Segmentation222222222222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                                                          Segmentation222222222222222[Segmentation222222222222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                                                          return Segmentation222222222222222;
                                                        })(Segmentation22222222222222 || {});
                                                        var ShedState22222222222222 = /* @__PURE__ */ ((ShedState222222222222222) => {
                                                          ShedState222222222222222[ShedState222222222222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                                                          ShedState222222222222222[ShedState222222222222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                                                          ShedState222222222222222[ShedState222222222222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                                                          ShedState222222222222222[ShedState222222222222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                                                          return ShedState222222222222222;
                                                        })(ShedState22222222222222 || {});
                                                        var SilencedState22222222222222 = /* @__PURE__ */ ((SilencedState222222222222222) => {
                                                          SilencedState222222222222222[SilencedState222222222222222["UNSILENCED"] = 0] = "UNSILENCED";
                                                          SilencedState222222222222222[SilencedState222222222222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                                                          SilencedState222222222222222[SilencedState222222222222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                                                          SilencedState222222222222222[SilencedState222222222222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                                                          return SilencedState222222222222222;
                                                        })(SilencedState22222222222222 || {});
                                                        var TimerState22222222222222 = /* @__PURE__ */ ((TimerState222222222222222) => {
                                                          TimerState222222222222222[TimerState222222222222222["IDLE"] = 0] = "IDLE";
                                                          TimerState222222222222222[TimerState222222222222222["RUNNING"] = 1] = "RUNNING";
                                                          TimerState222222222222222[TimerState222222222222222["EXPIRED"] = 2] = "EXPIRED";
                                                          return TimerState222222222222222;
                                                        })(TimerState22222222222222 || {});
                                                        var TimerTransition22222222222222 = /* @__PURE__ */ ((TimerTransition222222222222222) => {
                                                          TimerTransition222222222222222[TimerTransition222222222222222["NONE"] = 0] = "NONE";
                                                          TimerTransition222222222222222[TimerTransition222222222222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                                                          TimerTransition222222222222222[TimerTransition222222222222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                                                          TimerTransition222222222222222[TimerTransition222222222222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                                                          TimerTransition222222222222222[TimerTransition222222222222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                                                          TimerTransition222222222222222[TimerTransition222222222222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                                                          TimerTransition222222222222222[TimerTransition222222222222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                                                          TimerTransition222222222222222[TimerTransition222222222222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                                                          return TimerTransition222222222222222;
                                                        })(TimerTransition22222222222222 || {});
                                                        var VTClass22222222222222 = /* @__PURE__ */ ((VTClass222222222222222) => {
                                                          VTClass222222222222222[VTClass222222222222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                                                          VTClass222222222222222[VTClass222222222222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                                                          VTClass222222222222222[VTClass222222222222222["DEC_VT52"] = 2] = "DEC_VT52";
                                                          VTClass222222222222222[VTClass222222222222222["DEC_VT100"] = 3] = "DEC_VT100";
                                                          VTClass222222222222222[VTClass222222222222222["DEC_VT220"] = 4] = "DEC_VT220";
                                                          VTClass222222222222222[VTClass222222222222222["HP_700_94"] = 5] = "HP_700_94";
                                                          VTClass222222222222222[VTClass222222222222222["IBM_3130"] = 6] = "IBM_3130";
                                                          return VTClass222222222222222;
                                                        })(VTClass22222222222222 || {});
                                                        var WriteStatus22222222222222 = /* @__PURE__ */ ((WriteStatus222222222222222) => {
                                                          WriteStatus222222222222222[WriteStatus222222222222222["IDLE"] = 0] = "IDLE";
                                                          WriteStatus222222222222222[WriteStatus222222222222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                                                          WriteStatus222222222222222[WriteStatus222222222222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                                                          WriteStatus222222222222222[WriteStatus222222222222222["FAILED"] = 3] = "FAILED";
                                                          return WriteStatus222222222222222;
                                                        })(WriteStatus22222222222222 || {});
                                                        var DaysOfWeek22222222222222 = /* @__PURE__ */ ((DaysOfWeek222222222222222) => {
                                                          DaysOfWeek222222222222222[DaysOfWeek222222222222222["MONDAY"] = 0] = "MONDAY";
                                                          DaysOfWeek222222222222222[DaysOfWeek222222222222222["TUESDAY"] = 1] = "TUESDAY";
                                                          DaysOfWeek222222222222222[DaysOfWeek222222222222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                                                          DaysOfWeek222222222222222[DaysOfWeek222222222222222["THURSDAY"] = 3] = "THURSDAY";
                                                          DaysOfWeek222222222222222[DaysOfWeek222222222222222["FRIDAY"] = 4] = "FRIDAY";
                                                          DaysOfWeek222222222222222[DaysOfWeek222222222222222["SATURDAY"] = 5] = "SATURDAY";
                                                          DaysOfWeek222222222222222[DaysOfWeek222222222222222["SUNDAY"] = 6] = "SUNDAY";
                                                          return DaysOfWeek222222222222222;
                                                        })(DaysOfWeek22222222222222 || {});
                                                        var EventTransitionBits22222222222222 = /* @__PURE__ */ ((EventTransitionBits222222222222222) => {
                                                          EventTransitionBits222222222222222[EventTransitionBits222222222222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                                                          EventTransitionBits222222222222222[EventTransitionBits222222222222222["TO_FAULT"] = 1] = "TO_FAULT";
                                                          EventTransitionBits222222222222222[EventTransitionBits222222222222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                                                          return EventTransitionBits222222222222222;
                                                        })(EventTransitionBits22222222222222 || {});
                                                        var LimitEnable22222222222222 = /* @__PURE__ */ ((LimitEnable222222222222222) => {
                                                          LimitEnable222222222222222[LimitEnable222222222222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                                                          LimitEnable222222222222222[LimitEnable222222222222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                                                          return LimitEnable222222222222222;
                                                        })(LimitEnable22222222222222 || {});
                                                        var LogStatus22222222222222 = /* @__PURE__ */ ((LogStatus222222222222222) => {
                                                          LogStatus222222222222222[LogStatus222222222222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                                                          LogStatus222222222222222[LogStatus222222222222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                                                          LogStatus222222222222222[LogStatus222222222222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                                                          return LogStatus222222222222222;
                                                        })(LogStatus22222222222222 || {});
                                                        var ObjectTypesSupported22222222222222 = /* @__PURE__ */ ((ObjectTypesSupported222222222222222) => {
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["COMMAND"] = 7] = "COMMAND";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["DEVICE"] = 8] = "DEVICE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["FILE"] = 10] = "FILE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["GROUP"] = 11] = "GROUP";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["LOOP"] = 12] = "LOOP";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["TIMER"] = 31] = "TIMER";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                          ObjectTypesSupported222222222222222[ObjectTypesSupported222222222222222["LIFT"] = 59] = "LIFT";
                                                          return ObjectTypesSupported222222222222222;
                                                        })(ObjectTypesSupported22222222222222 || {});
                                                        var ResultFlags22222222222222 = /* @__PURE__ */ ((ResultFlags222222222222222) => {
                                                          ResultFlags222222222222222[ResultFlags222222222222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                                                          ResultFlags222222222222222[ResultFlags222222222222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                                                          ResultFlags222222222222222[ResultFlags222222222222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                                                          return ResultFlags222222222222222;
                                                        })(ResultFlags22222222222222 || {});
                                                        var ServicesSupported22222222222222 = /* @__PURE__ */ ((ServicesSupported222222222222222) => {
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["I_AM"] = 26] = "I_AM";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["I_HAVE"] = 27] = "I_HAVE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["WHO_HAS"] = 33] = "WHO_HAS";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["WHO_IS"] = 34] = "WHO_IS";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["READ_RANGE"] = 35] = "READ_RANGE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                          ServicesSupported222222222222222[ServicesSupported222222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                          return ServicesSupported222222222222222;
                                                        })(ServicesSupported22222222222222 || {});
                                                        var StatusFlags22222222222222 = /* @__PURE__ */ ((StatusFlags222222222222222) => {
                                                          StatusFlags222222222222222[StatusFlags222222222222222["IN_ALARM"] = 0] = "IN_ALARM";
                                                          StatusFlags222222222222222[StatusFlags222222222222222["FAULT"] = 1] = "FAULT";
                                                          StatusFlags222222222222222[StatusFlags222222222222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                                                          StatusFlags222222222222222[StatusFlags222222222222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                                                          return StatusFlags222222222222222;
                                                        })(StatusFlags22222222222222 || {});
                                                        var ApplicationTag22222222222222 = /* @__PURE__ */ ((ApplicationTag222222222222222) => {
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["NULL"] = 0] = "NULL";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["BOOLEAN"] = 1] = "BOOLEAN";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["REAL"] = 4] = "REAL";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["DOUBLE"] = 5] = "DOUBLE";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["BIT_STRING"] = 8] = "BIT_STRING";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["ENUMERATED"] = 9] = "ENUMERATED";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["DATE"] = 10] = "DATE";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["TIME"] = 11] = "TIME";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["DATERANGE"] = 102] = "DATERANGE";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["DATETIME"] = 103] = "DATETIME";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["ERROR"] = 105] = "ERROR";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["DESTINATION"] = 109] = "DESTINATION";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["RECIPIENT"] = 110] = "RECIPIENT";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                                                          ApplicationTag222222222222222[ApplicationTag222222222222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                                                          return ApplicationTag222222222222222;
                                                        })(ApplicationTag22222222222222 || {});
                                                        var ApplicationTagName22222222222222 = invertEnum22222222222222(
                                                          ApplicationTag22222222222222
                                                        );
                                                        var BvlcResultFormat22222222222222 = /* @__PURE__ */ ((BvlcResultFormat222222222222222) => {
                                                          BvlcResultFormat222222222222222[BvlcResultFormat222222222222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                                                          BvlcResultFormat222222222222222[BvlcResultFormat222222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                          BvlcResultFormat222222222222222[BvlcResultFormat222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                          BvlcResultFormat222222222222222[BvlcResultFormat222222222222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                                                          BvlcResultFormat222222222222222[BvlcResultFormat222222222222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                                                          BvlcResultFormat222222222222222[BvlcResultFormat222222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                                                          BvlcResultFormat222222222222222[BvlcResultFormat222222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                                                          return BvlcResultFormat222222222222222;
                                                        })(BvlcResultFormat22222222222222 || {});
                                                        var BvlcResultPurpose22222222222222 = /* @__PURE__ */ ((BvlcResultPurpose222222222222222) => {
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                                                          BvlcResultPurpose222222222222222[BvlcResultPurpose222222222222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                                                          return BvlcResultPurpose222222222222222;
                                                        })(BvlcResultPurpose22222222222222 || {});
                                                        var CharacterStringEncoding22222222222222 = /* @__PURE__ */ ((CharacterStringEncoding222222222222222) => {
                                                          CharacterStringEncoding222222222222222[CharacterStringEncoding222222222222222["UTF_8"] = 0] = "UTF_8";
                                                          CharacterStringEncoding222222222222222[CharacterStringEncoding222222222222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                                                          CharacterStringEncoding222222222222222[CharacterStringEncoding222222222222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                                                          CharacterStringEncoding222222222222222[CharacterStringEncoding222222222222222["UCS_4"] = 3] = "UCS_4";
                                                          CharacterStringEncoding222222222222222[CharacterStringEncoding222222222222222["UCS_2"] = 4] = "UCS_2";
                                                          CharacterStringEncoding222222222222222[CharacterStringEncoding222222222222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                                                          return CharacterStringEncoding222222222222222;
                                                        })(CharacterStringEncoding22222222222222 || {});
                                                        var CovType22222222222222 = /* @__PURE__ */ ((CovType222222222222222) => {
                                                          CovType222222222222222[CovType222222222222222["REAL"] = 0] = "REAL";
                                                          CovType222222222222222[CovType222222222222222["BIT_STRING"] = 1] = "BIT_STRING";
                                                          return CovType222222222222222;
                                                        })(CovType22222222222222 || {});
                                                        var EnableDisable22222222222222 = /* @__PURE__ */ ((EnableDisable222222222222222) => {
                                                          EnableDisable222222222222222[EnableDisable222222222222222["ENABLE"] = 0] = "ENABLE";
                                                          EnableDisable222222222222222[EnableDisable222222222222222["DISABLE"] = 1] = "DISABLE";
                                                          EnableDisable222222222222222[EnableDisable222222222222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                                                          return EnableDisable222222222222222;
                                                        })(EnableDisable22222222222222 || {});
                                                        var MaxApduLengthAccepted22222222222222 = /* @__PURE__ */ ((MaxApduLengthAccepted222222222222222) => {
                                                          MaxApduLengthAccepted222222222222222[MaxApduLengthAccepted222222222222222["OCTETS_50"] = 0] = "OCTETS_50";
                                                          MaxApduLengthAccepted222222222222222[MaxApduLengthAccepted222222222222222["OCTETS_128"] = 1] = "OCTETS_128";
                                                          MaxApduLengthAccepted222222222222222[MaxApduLengthAccepted222222222222222["OCTETS_206"] = 2] = "OCTETS_206";
                                                          MaxApduLengthAccepted222222222222222[MaxApduLengthAccepted222222222222222["OCTETS_480"] = 3] = "OCTETS_480";
                                                          MaxApduLengthAccepted222222222222222[MaxApduLengthAccepted222222222222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                                                          MaxApduLengthAccepted222222222222222[MaxApduLengthAccepted222222222222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                                                          return MaxApduLengthAccepted222222222222222;
                                                        })(MaxApduLengthAccepted22222222222222 || {});
                                                        var MaxSegmentsAccepted22222222222222 = /* @__PURE__ */ ((MaxSegmentsAccepted222222222222222) => {
                                                          MaxSegmentsAccepted222222222222222[MaxSegmentsAccepted222222222222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                                                          MaxSegmentsAccepted222222222222222[MaxSegmentsAccepted222222222222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                                                          MaxSegmentsAccepted222222222222222[MaxSegmentsAccepted222222222222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                                                          MaxSegmentsAccepted222222222222222[MaxSegmentsAccepted222222222222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                                                          MaxSegmentsAccepted222222222222222[MaxSegmentsAccepted222222222222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                                                          MaxSegmentsAccepted222222222222222[MaxSegmentsAccepted222222222222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                                                          MaxSegmentsAccepted222222222222222[MaxSegmentsAccepted222222222222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                                                          MaxSegmentsAccepted222222222222222[MaxSegmentsAccepted222222222222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                                                          return MaxSegmentsAccepted222222222222222;
                                                        })(MaxSegmentsAccepted22222222222222 || {});
                                                        var NetworkLayerMessageType22222222222222 = /* @__PURE__ */ ((NetworkLayerMessageType222222222222222) => {
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                                                          NetworkLayerMessageType222222222222222[NetworkLayerMessageType222222222222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                                                          return NetworkLayerMessageType222222222222222;
                                                        })(NetworkLayerMessageType22222222222222 || {});
                                                        var NpduControlBit22222222222222 = /* @__PURE__ */ ((NpduControlBit222222222222222) => {
                                                          NpduControlBit222222222222222[NpduControlBit222222222222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                                                          NpduControlBit222222222222222[NpduControlBit222222222222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                                                          NpduControlBit222222222222222[NpduControlBit222222222222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                                                          NpduControlBit222222222222222[NpduControlBit222222222222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                                                          return NpduControlBit222222222222222;
                                                        })(NpduControlBit22222222222222 || {});
                                                        var NpduControlPriority22222222222222 = /* @__PURE__ */ ((NpduControlPriority222222222222222) => {
                                                          NpduControlPriority222222222222222[NpduControlPriority222222222222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                                                          NpduControlPriority222222222222222[NpduControlPriority222222222222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                                                          NpduControlPriority222222222222222[NpduControlPriority222222222222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                                                          NpduControlPriority222222222222222[NpduControlPriority222222222222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                                                          return NpduControlPriority222222222222222;
                                                        })(NpduControlPriority22222222222222 || {});
                                                        var PduConReqBit22222222222222 = /* @__PURE__ */ ((PduConReqBit222222222222222) => {
                                                          PduConReqBit222222222222222[PduConReqBit222222222222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                                                          PduConReqBit222222222222222[PduConReqBit222222222222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                                                          PduConReqBit222222222222222[PduConReqBit222222222222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                                                          return PduConReqBit222222222222222;
                                                        })(PduConReqBit22222222222222 || {});
                                                        var PduSegAckBit22222222222222 = /* @__PURE__ */ ((PduSegAckBit222222222222222) => {
                                                          PduSegAckBit222222222222222[PduSegAckBit222222222222222["SERVER"] = 1] = "SERVER";
                                                          PduSegAckBit222222222222222[PduSegAckBit222222222222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                                                          return PduSegAckBit222222222222222;
                                                        })(PduSegAckBit22222222222222 || {});
                                                        var PduType22222222222222 = /* @__PURE__ */ ((PduType222222222222222) => {
                                                          PduType222222222222222[PduType222222222222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                                                          PduType222222222222222[PduType222222222222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                                                          PduType222222222222222[PduType222222222222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                                                          PduType222222222222222[PduType222222222222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                                                          PduType222222222222222[PduType222222222222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                                                          PduType222222222222222[PduType222222222222222["ERROR"] = 80] = "ERROR";
                                                          PduType222222222222222[PduType222222222222222["REJECT"] = 96] = "REJECT";
                                                          PduType222222222222222[PduType222222222222222["ABORT"] = 112] = "ABORT";
                                                          return PduType222222222222222;
                                                        })(PduType22222222222222 || {});
                                                        var PropertyStates22222222222222 = /* @__PURE__ */ ((PropertyStates222222222222222) => {
                                                          PropertyStates222222222222222[PropertyStates222222222222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["POLARITY"] = 3] = "POLARITY";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["RELIABILITY"] = 7] = "RELIABILITY";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["STATE"] = 8] = "STATE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["UNITS"] = 10] = "UNITS";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["ACTION"] = 16] = "ACTION";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["SHED_STATE"] = 27] = "SHED_STATE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                                                          PropertyStates222222222222222[PropertyStates222222222222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                                                          return PropertyStates222222222222222;
                                                        })(PropertyStates22222222222222 || {});
                                                        var ReadRangeType22222222222222 = /* @__PURE__ */ ((ReadRangeType222222222222222) => {
                                                          ReadRangeType222222222222222[ReadRangeType222222222222222["BY_POSITION"] = 0] = "BY_POSITION";
                                                          ReadRangeType222222222222222[ReadRangeType222222222222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                                                          ReadRangeType222222222222222[ReadRangeType222222222222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                                                          return ReadRangeType222222222222222;
                                                        })(ReadRangeType22222222222222 || {});
                                                        var ReinitializedState22222222222222 = /* @__PURE__ */ ((ReinitializedState222222222222222) => {
                                                          ReinitializedState222222222222222[ReinitializedState222222222222222["COLDSTART"] = 0] = "COLDSTART";
                                                          ReinitializedState222222222222222[ReinitializedState222222222222222["WARMSTART"] = 1] = "WARMSTART";
                                                          ReinitializedState222222222222222[ReinitializedState222222222222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                                                          ReinitializedState222222222222222[ReinitializedState222222222222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                                                          ReinitializedState222222222222222[ReinitializedState222222222222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                                                          ReinitializedState222222222222222[ReinitializedState222222222222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                                                          ReinitializedState222222222222222[ReinitializedState222222222222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                                                          ReinitializedState222222222222222[ReinitializedState222222222222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                                                          return ReinitializedState222222222222222;
                                                        })(ReinitializedState22222222222222 || {});
                                                        var TimeStamp22222222222222 = /* @__PURE__ */ ((TimeStamp222222222222222) => {
                                                          TimeStamp222222222222222[TimeStamp222222222222222["TIME"] = 0] = "TIME";
                                                          TimeStamp222222222222222[TimeStamp222222222222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                                                          TimeStamp222222222222222[TimeStamp222222222222222["DATETIME"] = 2] = "DATETIME";
                                                          return TimeStamp222222222222222;
                                                        })(TimeStamp22222222222222 || {});
                                                        var import_events222222222222222 = __toESM22222222222222(require("events"));
                                                        var import_debug322222222222222 = __toESM22222222222222(require("debug"));
                                                        var import_dgram22222222222222 = require("dgram");
                                                        var import_events32222222222222 = __toESM22222222222222(require("events"));
                                                        var import_debug222222222222222 = __toESM22222222222222(require("debug"));
                                                        var EventEmitter32222222222222 = import_events32222222222222.default.EventEmitter;
                                                        var debug222222222222222 = (0, import_debug222222222222222.default)("bacnet:client:debug");
                                                        var DEFAULT_BACNET_PORT32222222222222 = 47808;
                                                        var Transport22222222222222 = class extends EventEmitter32222222222222 {
                                                          constructor(settings) {
                                                            super();
                                                            this._lastSendMessages = {};
                                                            this._settings = settings;
                                                            this._server = (0, import_dgram22222222222222.createSocket)({
                                                              type: "udp4",
                                                              reuseAddr: settings.reuseAddr
                                                            });
                                                            this._server.on("message", (msg, rinfo) => {
                                                              if (this.ownAddress.port === rinfo.port) {
                                                                for (let [messageKey, earlierSentBuffer] of Object.entries(
                                                                  this._lastSendMessages
                                                                )) {
                                                                  if (msg.equals(earlierSentBuffer)) {
                                                                    debug222222222222222(
                                                                      `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                                                    );
                                                                    return;
                                                                  }
                                                                }
                                                              }
                                                              debug222222222222222(
                                                                `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                                                  "hex"
                                                                )}`
                                                              );
                                                              this.emit(
                                                                "message",
                                                                msg,
                                                                rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT32222222222222 ? "" : ":" + rinfo.port)
                                                              );
                                                            });
                                                            this._server.on("listening", () => {
                                                              this.ownAddress = this._server.address();
                                                              debug222222222222222(
                                                                `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                                                              );
                                                              this.emit("listening", this.ownAddress);
                                                            });
                                                            this._server.on("error", (err) => {
                                                              debug222222222222222("transport error", err.message);
                                                              this.emit("error", err);
                                                            });
                                                            this._server.on("close", () => {
                                                              debug222222222222222("transport closed");
                                                              this.emit("close");
                                                            });
                                                          }
                                                          getBroadcastAddress() {
                                                            return this._settings.broadcastAddress;
                                                          }
                                                          getMaxPayload() {
                                                            return 1482;
                                                          }
                                                          send(buffer, offset, receiver) {
                                                            if (!receiver) {
                                                              receiver = this.getBroadcastAddress();
                                                              const dataToSend = Buffer.alloc(offset);
                                                              const hrTime = process.hrtime();
                                                              const messageKey = hrTime[0] * 1e9 + hrTime[1];
                                                              buffer.copy(dataToSend, 0, 0, offset);
                                                              this._lastSendMessages[messageKey] = dataToSend;
                                                              setTimeout(() => {
                                                                delete this._lastSendMessages[messageKey];
                                                              }, 1e4);
                                                            }
                                                            const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                                                            const [address, port] = receiverAddress.split(":");
                                                            debug222222222222222(
                                                              "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                                                            );
                                                            this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT32222222222222, address);
                                                          }
                                                          open() {
                                                            this._server.bind(this._settings.port, this._settings.interface, () => {
                                                              this._server.setBroadcast(true);
                                                            });
                                                          }
                                                          close() {
                                                            this._server.close();
                                                          }
                                                        };
                                                        var services_exports22222222222222 = {};
                                                        __export22222222222222(services_exports22222222222222, {
                                                          addListElement: () => add_list_element_exports22222222222222,
                                                          alarmAcknowledge: () => alarm_acknowledge_exports22222222222222,
                                                          alarmSummary: () => alarm_summary_exports22222222222222,
                                                          atomicReadFile: () => atomic_read_file_exports22222222222222,
                                                          atomicWriteFile: () => atomic_write_file_exports22222222222222,
                                                          covNotify: () => cov_notify_exports22222222222222,
                                                          covNotifyUnconfirmed: () => cov_notify_exports22222222222222,
                                                          createObject: () => create_object_exports22222222222222,
                                                          deleteObject: () => delete_object_exports22222222222222,
                                                          deviceCommunicationControl: () => device_communication_control_exports22222222222222,
                                                          error: () => error_exports22222222222222,
                                                          eventInformation: () => event_information_exports22222222222222,
                                                          eventNotifyData: () => event_notify_data_exports22222222222222,
                                                          getEnrollmentSummary: () => get_enrollment_summary_exports22222222222222,
                                                          getEventInformation: () => get_event_information_exports22222222222222,
                                                          iAm: () => i_am_exports22222222222222,
                                                          iHave: () => i_have_exports22222222222222,
                                                          lifeSafetyOperation: () => life_safety_operation_exports22222222222222,
                                                          privateTransfer: () => private_transfer_exports22222222222222,
                                                          readProperty: () => read_property_exports22222222222222,
                                                          readPropertyMultiple: () => read_property_multiple_exports22222222222222,
                                                          readRange: () => read_range_exports22222222222222,
                                                          registerForeignDevice: () => register_foreign_device_exports22222222222222,
                                                          reinitializeDevice: () => reinitialize_device_exports22222222222222,
                                                          subscribeCov: () => subscribe_cov_exports22222222222222,
                                                          subscribeProperty: () => subscribe_property_exports22222222222222,
                                                          timeSync: () => time_sync_exports22222222222222,
                                                          timeSyncUTC: () => time_sync_exports22222222222222,
                                                          whoHas: () => who_has_exports22222222222222,
                                                          whoIs: () => who_is_exports22222222222222,
                                                          writeProperty: () => write_property_exports22222222222222,
                                                          writePropertyMultiple: () => write_property_multiple_exports22222222222222
                                                        });
                                                        var add_list_element_exports22222222222222 = {};
                                                        __export22222222222222(add_list_element_exports22222222222222, {
                                                          decode: () => decode332222222222222,
                                                          encode: () => encode332222222222222
                                                        });
                                                        var import_iconv_lite22222222222222 = __toESM22222222222222(require("iconv-lite"));
                                                        var enums_default22222222222222 = enum_exports22222222222222;
                                                        var START_YEAR22222222222222 = 1900;
                                                        var MAX_YEARS22222222222222 = 256;
                                                        var getBuffer22222222222222 = () => {
                                                          return {
                                                            buffer: Buffer.alloc(1472),
                                                            offset: 0
                                                          };
                                                        };
                                                        var getSignedLength22222222222222 = (value) => {
                                                          if (value >= -128 && value < 128)
                                                            return 1;
                                                          else if (value >= -32768 && value < 32768)
                                                            return 2;
                                                          else if (value > -8388608 && value < 8388608)
                                                            return 3;
                                                          else
                                                            return 4;
                                                        };
                                                        var getUnsignedLength22222222222222 = (value) => {
                                                          if (value < 256)
                                                            return 1;
                                                          else if (value < 65536)
                                                            return 2;
                                                          else if (value < 16777216)
                                                            return 3;
                                                          else
                                                            return 4;
                                                        };
                                                        var getEncodingType22222222222222 = (encoding, decodingBuffer, decodingOffset) => {
                                                          switch (encoding) {
                                                            case enums_default22222222222222.CharacterStringEncoding.UCS_2:
                                                              if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                                                return "ucs2";
                                                              }
                                                              return "UTF-16BE";
                                                            case enums_default22222222222222.CharacterStringEncoding.ISO_8859_1:
                                                              return "latin1";
                                                            case enums_default22222222222222.CharacterStringEncoding.MICROSOFT_DBCS:
                                                              return "cp850";
                                                            case enums_default22222222222222.CharacterStringEncoding.JIS_X_0208:
                                                              return "Shift_JIS";
                                                            default:
                                                              return "utf8";
                                                          }
                                                        };
                                                        var encodeUnsigned22222222222222 = (buffer, value, length) => {
                                                          buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                                                          buffer.offset += length;
                                                        };
                                                        var encodeBacnetUnsigned22222222222222 = (buffer, value) => {
                                                          encodeUnsigned22222222222222(buffer, value, getUnsignedLength22222222222222(value));
                                                        };
                                                        var encodeSigned22222222222222 = (buffer, value, length) => {
                                                          buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                                                          buffer.offset += length;
                                                        };
                                                        var encodeBacnetSigned22222222222222 = (buffer, value) => {
                                                          encodeSigned22222222222222(buffer, value, getSignedLength22222222222222(value));
                                                        };
                                                        var encodeBacnetReal22222222222222 = (buffer, value) => {
                                                          buffer.buffer.writeFloatBE(value, buffer.offset, true);
                                                          buffer.offset += 4;
                                                        };
                                                        var encodeBacnetDouble22222222222222 = (buffer, value) => {
                                                          buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                                                          buffer.offset += 8;
                                                        };
                                                        var decodeUnsigned22222222222222 = (buffer, offset, length) => {
                                                          if (length === 0) {
                                                            return {
                                                              len: 0,
                                                              value: 0
                                                            };
                                                          }
                                                          return {
                                                            len: length,
                                                            //@ts-ignore
                                                            value: buffer.readUIntBE(offset, length)
                                                          };
                                                        };
                                                        var decodeEnumerated22222222222222 = (buffer, offset, length) => {
                                                          return decodeUnsigned22222222222222(buffer, offset, length);
                                                        };
                                                        var encodeBacnetObjectId22222222222222 = (buffer, objectType, instance) => {
                                                          const value = ((objectType & enums_default22222222222222.ASN1_MAX_OBJECT) << enums_default22222222222222.ASN1_INSTANCE_BITS | instance & enums_default22222222222222.ASN1_MAX_INSTANCE) >>> 0;
                                                          encodeUnsigned22222222222222(buffer, value, 4);
                                                        };
                                                        var encodeTag22222222222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                                                          let len = 1;
                                                          const tmp = new Array(3);
                                                          tmp[0] = 0;
                                                          if (contextSpecific) {
                                                            tmp[0] |= 8;
                                                          }
                                                          if (tagNumber <= 14) {
                                                            tmp[0] |= tagNumber << 4;
                                                          } else {
                                                            tmp[0] |= 240;
                                                            tmp[1] = tagNumber;
                                                            len++;
                                                          }
                                                          if (lenValueType <= 4) {
                                                            tmp[0] |= lenValueType;
                                                            Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                            buffer.offset += len;
                                                          } else {
                                                            tmp[0] |= 5;
                                                            if (lenValueType <= 253) {
                                                              tmp[len++] = lenValueType;
                                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                              buffer.offset += len;
                                                            } else if (lenValueType <= 65535) {
                                                              tmp[len++] = 254;
                                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                              buffer.offset += len;
                                                              encodeUnsigned22222222222222(buffer, lenValueType, 2);
                                                            } else {
                                                              tmp[len++] = 255;
                                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                              buffer.offset += len;
                                                              encodeUnsigned22222222222222(buffer, lenValueType, 4);
                                                            }
                                                          }
                                                        };
                                                        var encodeBacnetEnumerated22222222222222 = (buffer, value) => {
                                                          encodeBacnetUnsigned22222222222222(buffer, value);
                                                        };
                                                        var isExtendedTagNumber22222222222222 = (x) => {
                                                          return (x & 240) === 240;
                                                        };
                                                        var isExtendedValue22222222222222 = (x) => {
                                                          return (x & 7) === 5;
                                                        };
                                                        var isContextSpecific22222222222222 = (x) => {
                                                          return (x & 8) === 8;
                                                        };
                                                        var isOpeningTag22222222222222 = (x) => {
                                                          return (x & 7) === 6;
                                                        };
                                                        var isClosingTag22222222222222 = (x) => {
                                                          return (x & 7) === 7;
                                                        };
                                                        var encodeContextReal22222222222222 = (buffer, tagNumber, value) => {
                                                          encodeTag22222222222222(buffer, tagNumber, true, 4);
                                                          encodeBacnetReal22222222222222(buffer, value);
                                                        };
                                                        var encodeContextUnsigned22222222222222 = (buffer, tagNumber, value) => {
                                                          encodeTag22222222222222(buffer, tagNumber, true, getUnsignedLength22222222222222(value));
                                                          encodeBacnetUnsigned22222222222222(buffer, value);
                                                        };
                                                        var encodeContextEnumerated22222222222222 = (buffer, tagNumber, value) => {
                                                          encodeContextUnsigned22222222222222(buffer, tagNumber, value);
                                                        };
                                                        var encodeOctetString22222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                          if (octetString) {
                                                            for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                                                              buffer.buffer[buffer.offset++] = octetString[i];
                                                            }
                                                          }
                                                        };
                                                        var encodeApplicationOctetString22222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                          encodeTag22222222222222(buffer, enums_default22222222222222.ApplicationTag.OCTET_STRING, false, octetCount);
                                                          encodeOctetString22222222222222(buffer, octetString, octetOffset, octetCount);
                                                        };
                                                        var encodeApplicationNull22222222222222 = (buffer) => {
                                                          buffer.buffer[buffer.offset++] = enums_default22222222222222.ApplicationTag.NULL;
                                                        };
                                                        var encodeApplicationBoolean22222222222222 = (buffer, booleanValue) => {
                                                          encodeTag22222222222222(buffer, enums_default22222222222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                                                        };
                                                        var encodeApplicationReal22222222222222 = (buffer, value) => {
                                                          encodeTag22222222222222(buffer, enums_default22222222222222.ApplicationTag.REAL, false, 4);
                                                          encodeBacnetReal22222222222222(buffer, value);
                                                        };
                                                        var encodeApplicationDouble22222222222222 = (buffer, value) => {
                                                          encodeTag22222222222222(buffer, enums_default22222222222222.ApplicationTag.DOUBLE, false, 8);
                                                          encodeBacnetDouble22222222222222(buffer, value);
                                                        };
                                                        var bitstringBytesUsed22222222222222 = (bitString) => {
                                                          let len = 0;
                                                          if (bitString.bitsUsed > 0) {
                                                            const lastBit = bitString.bitsUsed - 1;
                                                            const usedBytes = lastBit / 8 + 1;
                                                            len = Math.floor(usedBytes);
                                                          }
                                                          return len;
                                                        };
                                                        var encodeApplicationObjectId22222222222222 = (buffer, objectType, instance) => {
                                                          const tmp = getBuffer22222222222222();
                                                          encodeBacnetObjectId22222222222222(tmp, objectType, instance);
                                                          encodeTag22222222222222(buffer, enums_default22222222222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                          buffer.offset += tmp.offset;
                                                        };
                                                        var encodeApplicationUnsigned22222222222222 = (buffer, value) => {
                                                          const tmp = getBuffer22222222222222();
                                                          encodeBacnetUnsigned22222222222222(tmp, value);
                                                          encodeTag22222222222222(buffer, enums_default22222222222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                          buffer.offset += tmp.offset;
                                                        };
                                                        var encodeApplicationEnumerated22222222222222 = (buffer, value) => {
                                                          const tmp = getBuffer22222222222222();
                                                          encodeBacnetEnumerated22222222222222(tmp, value);
                                                          encodeTag22222222222222(buffer, enums_default22222222222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                          buffer.offset += tmp.offset;
                                                        };
                                                        var encodeApplicationSigned22222222222222 = (buffer, value) => {
                                                          const tmp = getBuffer22222222222222();
                                                          encodeBacnetSigned22222222222222(tmp, value);
                                                          encodeTag22222222222222(buffer, enums_default22222222222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                          buffer.offset += tmp.offset;
                                                        };
                                                        var byteReverseBits22222222222222 = (inByte) => {
                                                          let outByte = 0;
                                                          if ((inByte & 1) > 0) {
                                                            outByte |= 128;
                                                          }
                                                          if ((inByte & 2) > 0) {
                                                            outByte |= 64;
                                                          }
                                                          if ((inByte & 4) > 0) {
                                                            outByte |= 32;
                                                          }
                                                          if ((inByte & 8) > 0) {
                                                            outByte |= 16;
                                                          }
                                                          if ((inByte & 16) > 0) {
                                                            outByte |= 8;
                                                          }
                                                          if ((inByte & 32) > 0) {
                                                            outByte |= 4;
                                                          }
                                                          if ((inByte & 64) > 0) {
                                                            outByte |= 2;
                                                          }
                                                          if ((inByte & 128) > 0) {
                                                            outByte |= 1;
                                                          }
                                                          return outByte;
                                                        };
                                                        var bitstringOctet22222222222222 = (bitString, octetIndex) => {
                                                          let octet = 0;
                                                          if (bitString.value && octetIndex < enums_default22222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                            octet = bitString.value[octetIndex];
                                                          }
                                                          return octet;
                                                        };
                                                        var encodeBitstring22222222222222 = (buffer, bitString) => {
                                                          if (bitString.bitsUsed === 0) {
                                                            buffer.buffer[buffer.offset++] = 0;
                                                          } else {
                                                            const usedBytes = bitstringBytesUsed22222222222222(bitString);
                                                            const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                                                            buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                                                            for (let i = 0; i < usedBytes; i++) {
                                                              buffer.buffer[buffer.offset++] = byteReverseBits22222222222222(
                                                                bitstringOctet22222222222222(bitString, i)
                                                              );
                                                            }
                                                          }
                                                        };
                                                        var encodeApplicationBitstring22222222222222 = (buffer, bitString) => {
                                                          let bitStringEncodedLength = 1;
                                                          bitStringEncodedLength += bitstringBytesUsed22222222222222(bitString);
                                                          encodeTag22222222222222(
                                                            buffer,
                                                            enums_default22222222222222.ApplicationTag.BIT_STRING,
                                                            false,
                                                            bitStringEncodedLength
                                                          );
                                                          encodeBitstring22222222222222(buffer, bitString);
                                                        };
                                                        var encodeBacnetDate22222222222222 = (buffer, value) => {
                                                          if (value === new Date(1, 1, 1)) {
                                                            buffer.buffer[buffer.offset++] = 255;
                                                            buffer.buffer[buffer.offset++] = 255;
                                                            buffer.buffer[buffer.offset++] = 255;
                                                            buffer.buffer[buffer.offset++] = 255;
                                                            return;
                                                          }
                                                          if (value.getFullYear() >= START_YEAR22222222222222) {
                                                            buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR22222222222222;
                                                          } else if (value.getFullYear() < MAX_YEARS22222222222222) {
                                                            buffer.buffer[buffer.offset++] = value.getFullYear();
                                                          } else {
                                                            throw new Error("invaide year: " + value.getFullYear());
                                                          }
                                                          buffer.buffer[buffer.offset++] = value.getMonth();
                                                          buffer.buffer[buffer.offset++] = value.getDate();
                                                          buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                                                        };
                                                        var encodeApplicationDate22222222222222 = (buffer, value) => {
                                                          encodeTag22222222222222(buffer, enums_default22222222222222.ApplicationTag.DATE, false, 4);
                                                          encodeBacnetDate22222222222222(buffer, value);
                                                        };
                                                        var encodeBacnetTime22222222222222 = (buffer, value) => {
                                                          buffer.buffer[buffer.offset++] = value.getHours();
                                                          buffer.buffer[buffer.offset++] = value.getMinutes();
                                                          buffer.buffer[buffer.offset++] = value.getSeconds();
                                                          buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                                                        };
                                                        var encodeApplicationTime22222222222222 = (buffer, value) => {
                                                          encodeTag22222222222222(buffer, enums_default22222222222222.ApplicationTag.TIME, false, 4);
                                                          encodeBacnetTime22222222222222(buffer, value);
                                                        };
                                                        var bacappEncodeDatetime22222222222222 = (buffer, value) => {
                                                          if (value !== new Date(1, 1, 1)) {
                                                            encodeApplicationDate22222222222222(buffer, value);
                                                            encodeApplicationTime22222222222222(buffer, value);
                                                          }
                                                        };
                                                        var encodeContextObjectId22222222222222 = (buffer, tagNumber, objectType, instance) => {
                                                          encodeTag22222222222222(buffer, tagNumber, true, 4);
                                                          encodeBacnetObjectId22222222222222(buffer, objectType, instance);
                                                        };
                                                        var encodeOpeningTag22222222222222 = (buffer, tagNumber) => {
                                                          let len = 1;
                                                          const tmp = new Array(2);
                                                          tmp[0] = 8;
                                                          if (tagNumber <= 14) {
                                                            tmp[0] |= tagNumber << 4;
                                                          } else {
                                                            tmp[0] |= 240;
                                                            tmp[1] = tagNumber;
                                                            len++;
                                                          }
                                                          tmp[0] |= 6;
                                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                          buffer.offset += len;
                                                        };
                                                        var encodeClosingTag22222222222222 = (buffer, tagNumber) => {
                                                          let len = 1;
                                                          const tmp = new Array(2);
                                                          tmp[0] = 8;
                                                          if (tagNumber <= 14) {
                                                            tmp[0] |= tagNumber << 4;
                                                          } else {
                                                            tmp[0] |= 240;
                                                            tmp[1] = tagNumber;
                                                            len++;
                                                          }
                                                          tmp[0] |= 7;
                                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                          buffer.offset += len;
                                                        };
                                                        var encodeReadAccessSpecification22222222222222 = (buffer, value) => {
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            0,
                                                            value.objectId.type,
                                                            value.objectId.instance
                                                          );
                                                          encodeOpeningTag22222222222222(buffer, 1);
                                                          value.properties.forEach((p) => {
                                                            encodeContextEnumerated22222222222222(buffer, 0, p.id);
                                                            if (p.index && p.index !== enums_default22222222222222.ASN1_ARRAY_ALL) {
                                                              encodeContextUnsigned22222222222222(buffer, 1, p.index);
                                                            }
                                                          });
                                                          encodeClosingTag22222222222222(buffer, 1);
                                                        };
                                                        var encodeContextBoolean22222222222222 = (buffer, tagNumber, booleanValue) => {
                                                          encodeTag22222222222222(buffer, tagNumber, true, 1);
                                                          buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                                                          buffer.offset += 1;
                                                        };
                                                        var encodeCovSubscription22222222222222 = (buffer, value) => {
                                                          encodeOpeningTag22222222222222(buffer, 0);
                                                          encodeOpeningTag22222222222222(buffer, 0);
                                                          encodeOpeningTag22222222222222(buffer, 1);
                                                          encodeApplicationUnsigned22222222222222(buffer, value.recipient.network);
                                                          if (value.recipient.network === 65535) {
                                                            encodeApplicationOctetString22222222222222(buffer, 0, 0, 0);
                                                          } else {
                                                            encodeApplicationOctetString22222222222222(
                                                              buffer,
                                                              value.recipient.address,
                                                              0,
                                                              value.recipient.address.length
                                                            );
                                                          }
                                                          encodeClosingTag22222222222222(buffer, 1);
                                                          encodeClosingTag22222222222222(buffer, 0);
                                                          encodeContextUnsigned22222222222222(buffer, 1, value.subscriptionProcessId);
                                                          encodeClosingTag22222222222222(buffer, 0);
                                                          encodeOpeningTag22222222222222(buffer, 1);
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            0,
                                                            value.monitoredObjectId.type,
                                                            value.monitoredObjectId.instance
                                                          );
                                                          encodeContextEnumerated22222222222222(buffer, 1, value.monitoredProperty.id);
                                                          if (value.monitoredProperty.index !== enums_default22222222222222.ASN1_ARRAY_ALL) {
                                                            encodeContextUnsigned22222222222222(buffer, 2, value.monitoredProperty.index);
                                                          }
                                                          encodeClosingTag22222222222222(buffer, 1);
                                                          encodeContextBoolean22222222222222(buffer, 2, value.issueConfirmedNotifications);
                                                          encodeContextUnsigned22222222222222(buffer, 3, value.timeRemaining);
                                                          if (value.covIncrement > 0) {
                                                            encodeContextReal22222222222222(buffer, 4, value.covIncrement);
                                                          }
                                                        };
                                                        var bacappEncodeApplicationData22222222222222 = (buffer, value) => {
                                                          if (value.value === null) {
                                                            value.type = enums_default22222222222222.ApplicationTag.NULL;
                                                          }
                                                          switch (value.type) {
                                                            case enums_default22222222222222.ApplicationTag.NULL:
                                                              encodeApplicationNull22222222222222(buffer);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.BOOLEAN:
                                                              encodeApplicationBoolean22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                              encodeApplicationUnsigned22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.SIGNED_INTEGER:
                                                              encodeApplicationSigned22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.REAL:
                                                              encodeApplicationReal22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.DOUBLE:
                                                              encodeApplicationDouble22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.OCTET_STRING:
                                                              encodeApplicationOctetString22222222222222(buffer, value.value, 0, value.value.length);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.CHARACTER_STRING:
                                                              encodeApplicationCharacterString22222222222222(buffer, value.value, value.encoding);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.BIT_STRING:
                                                              encodeApplicationBitstring22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.ENUMERATED:
                                                              encodeApplicationEnumerated22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.DATE:
                                                              encodeApplicationDate22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.TIME:
                                                              encodeApplicationTime22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.TIMESTAMP:
                                                              bacappEncodeTimestamp22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.DATETIME:
                                                              bacappEncodeDatetime22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                              encodeApplicationObjectId22222222222222(buffer, value.value.type, value.value.instance);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.COV_SUBSCRIPTION:
                                                              encodeCovSubscription22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.READ_ACCESS_RESULT:
                                                              encodeReadAccessResult22222222222222(buffer, value.value);
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                              encodeReadAccessSpecification22222222222222(buffer, value.value);
                                                              break;
                                                            case void 0:
                                                              throw new Error(
                                                                "Cannot encode a value if the type has not been specified"
                                                              );
                                                            default:
                                                              throw "No encode for ApplicationTag type: " + enums_default22222222222222.getEnumName(
                                                                enums_default22222222222222.ApplicationTag,
                                                                value.type
                                                              );
                                                          }
                                                        };
                                                        var bacappEncodeDeviceObjPropertyRef22222222222222 = (buffer, value) => {
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            0,
                                                            value.objectId.type,
                                                            value.objectId.instance
                                                          );
                                                          encodeContextEnumerated22222222222222(buffer, 1, value.id);
                                                          if (value.arrayIndex !== enums_default22222222222222.ASN1_ARRAY_ALL) {
                                                            encodeContextUnsigned22222222222222(buffer, 2, value.arrayIndex);
                                                          }
                                                          if (value.deviceIndentifier.type === enums_default22222222222222.ObjectType.DEVICE) {
                                                            encodeContextObjectId22222222222222(
                                                              buffer,
                                                              3,
                                                              value.deviceIndentifier.type,
                                                              value.deviceIndentifier.instance
                                                            );
                                                          }
                                                        };
                                                        var bacappEncodeContextDeviceObjPropertyRef22222222222222 = (buffer, tagNumber, value) => {
                                                          encodeOpeningTag22222222222222(buffer, tagNumber);
                                                          bacappEncodeDeviceObjPropertyRef22222222222222(buffer, value);
                                                          encodeClosingTag22222222222222(buffer, tagNumber);
                                                        };
                                                        var bacappEncodePropertyState22222222222222 = (buffer, value) => {
                                                          switch (value.type) {
                                                            case enums_default22222222222222.PropertyStates.BOOLEAN_VALUE:
                                                              encodeContextBoolean22222222222222(buffer, 0, value.state === 1);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.BINARY_VALUE:
                                                              encodeContextEnumerated22222222222222(buffer, 1, value.state);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.EVENT_TYPE:
                                                              encodeContextEnumerated22222222222222(buffer, 2, value.state);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.POLARITY:
                                                              encodeContextEnumerated22222222222222(buffer, 3, value.state);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.PROGRAM_CHANGE:
                                                              encodeContextEnumerated22222222222222(buffer, 4, value.state);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.PROGRAM_STATE:
                                                              encodeContextEnumerated22222222222222(buffer, 5, value.state);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.REASON_FOR_HALT:
                                                              encodeContextEnumerated22222222222222(buffer, 6, value.state);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.RELIABILITY:
                                                              encodeContextEnumerated22222222222222(buffer, 7, value.state);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.STATE:
                                                              encodeContextEnumerated22222222222222(buffer, 8, value.state);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.SYSTEM_STATUS:
                                                              encodeContextEnumerated22222222222222(buffer, 9, value.state);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.UNITS:
                                                              encodeContextEnumerated22222222222222(buffer, 10, value.state);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.UNSIGNED_VALUE:
                                                              encodeContextUnsigned22222222222222(buffer, 11, value.state);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.LIFE_SAFETY_MODE:
                                                              encodeContextEnumerated22222222222222(buffer, 12, value.state);
                                                              break;
                                                            case enums_default22222222222222.PropertyStates.LIFE_SAFETY_STATE:
                                                              encodeContextEnumerated22222222222222(buffer, 13, value.state);
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                        };
                                                        var encodeContextBitstring22222222222222 = (buffer, tagNumber, bitString) => {
                                                          let bitStringEncodedLength = 1;
                                                          bitStringEncodedLength += bitstringBytesUsed22222222222222(bitString);
                                                          encodeTag22222222222222(buffer, tagNumber, true, bitStringEncodedLength);
                                                          encodeBitstring22222222222222(buffer, bitString);
                                                        };
                                                        var encodeContextSigned22222222222222 = (buffer, tagNumber, value) => {
                                                          encodeTag22222222222222(buffer, tagNumber, true, getSignedLength22222222222222(value));
                                                          encodeBacnetSigned22222222222222(buffer, value);
                                                        };
                                                        var encodeContextTime22222222222222 = (buffer, tagNumber, value) => {
                                                          encodeTag22222222222222(buffer, tagNumber, true, 4);
                                                          encodeBacnetTime22222222222222(buffer, value);
                                                        };
                                                        var bacappEncodeContextDatetime22222222222222 = (buffer, tagNumber, value) => {
                                                          if (value !== new Date(1, 1, 1)) {
                                                            encodeOpeningTag22222222222222(buffer, tagNumber);
                                                            bacappEncodeDatetime22222222222222(buffer, value);
                                                            encodeClosingTag22222222222222(buffer, tagNumber);
                                                          } else {
                                                            throw new Error("wrong Datetime while bacapp encoding context");
                                                          }
                                                        };
                                                        var decodeTagNumber22222222222222 = (buffer, offset) => {
                                                          let len = 1;
                                                          let tagNumber;
                                                          if (isExtendedTagNumber22222222222222(buffer[offset])) {
                                                            tagNumber = buffer[offset + 1];
                                                            len++;
                                                          } else {
                                                            tagNumber = buffer[offset] >> 4;
                                                          }
                                                          return {
                                                            len,
                                                            tagNumber
                                                          };
                                                        };
                                                        var decodeIsContextTag22222222222222 = (buffer, offset, tagNumber) => {
                                                          const result = decodeTagNumber22222222222222(buffer, offset);
                                                          return isContextSpecific22222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                        };
                                                        var decodeIsOpeningTagNumber22222222222222 = (buffer, offset, tagNumber) => {
                                                          const result = decodeTagNumber22222222222222(buffer, offset);
                                                          return isOpeningTag22222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                        };
                                                        var decodeIsClosingTagNumber22222222222222 = (buffer, offset, tagNumber) => {
                                                          const result = decodeTagNumber22222222222222(buffer, offset);
                                                          return isClosingTag22222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                        };
                                                        var decodeIsClosingTag22222222222222 = (buffer, offset) => {
                                                          return (buffer[offset] & 7) === 7;
                                                        };
                                                        var decodeIsOpeningTag22222222222222 = (buffer, offset) => {
                                                          return (buffer[offset] & 7) === 6;
                                                        };
                                                        var decodeObjectId22222222222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                                                          const result = decodeUnsigned22222222222222(buffer, offset, 4);
                                                          const objectType = result.value >> enums_default22222222222222.ASN1_INSTANCE_BITS & enums_default22222222222222.ASN1_MAX_OBJECT;
                                                          const instance = result.value & enums_default22222222222222.ASN1_MAX_INSTANCE;
                                                          return {
                                                            len: result.len,
                                                            objectType,
                                                            instance
                                                          };
                                                        };
                                                        var decodeObjectIdSafe22222222222222 = (buffer, offset, lenValue) => {
                                                          if (lenValue !== 4) {
                                                            return {
                                                              len: 0,
                                                              objectType: 0,
                                                              instance: 0
                                                            };
                                                          } else {
                                                            return decodeObjectId22222222222222(buffer, offset);
                                                          }
                                                        };
                                                        var decodeTagNumberAndValue22222222222222 = (buffer, offset) => {
                                                          let value;
                                                          let result = decodeTagNumber22222222222222(buffer, offset);
                                                          let len = result.len;
                                                          if (isExtendedValue22222222222222(buffer[offset])) {
                                                            if (buffer[offset + len] === 255) {
                                                              len++;
                                                              result = decodeUnsigned22222222222222(buffer, offset + len, 4);
                                                              len += result.len;
                                                              value = result.value;
                                                            } else if (buffer[offset + len] === 254) {
                                                              len++;
                                                              result = decodeUnsigned22222222222222(buffer, offset + len, 2);
                                                              len += result.len;
                                                              value = result.value;
                                                            } else {
                                                              value = buffer[offset + len];
                                                              len++;
                                                            }
                                                          } else if (isOpeningTag22222222222222(buffer[offset])) {
                                                            value = 0;
                                                          } else if (isClosingTag22222222222222(buffer[offset])) {
                                                            value = 0;
                                                          } else {
                                                            value = buffer[offset] & 7;
                                                          }
                                                          return {
                                                            len,
                                                            tagNumber: result.tagNumber,
                                                            value
                                                          };
                                                        };
                                                        var bacappDecodeApplicationData22222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                          if (!isContextSpecific22222222222222(buffer[offset])) {
                                                            let result = decodeTagNumberAndValue22222222222222(buffer, offset);
                                                            if (result) {
                                                              let len = result.len;
                                                              result = bacappDecodeData22222222222222(
                                                                buffer,
                                                                offset + len,
                                                                maxOffset,
                                                                result.tagNumber,
                                                                result.value
                                                              );
                                                              if (!result) {
                                                                return void 0;
                                                              }
                                                              let resObj = {
                                                                len: len + result.len,
                                                                type: result.type,
                                                                value: result.value
                                                              };
                                                              if (result.encoding !== void 0)
                                                                resObj.encoding = result.encoding;
                                                              return resObj;
                                                            }
                                                          } else {
                                                            return bacappDecodeContextApplicationData22222222222222(
                                                              buffer,
                                                              offset,
                                                              maxOffset,
                                                              objectType,
                                                              propertyId
                                                            );
                                                          }
                                                        };
                                                        var encodeReadAccessResult22222222222222 = (buffer, value) => {
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            0,
                                                            value.objectId.type,
                                                            value.objectId.instance
                                                          );
                                                          encodeOpeningTag22222222222222(buffer, 1);
                                                          value.values.forEach((item) => {
                                                            encodeContextEnumerated22222222222222(buffer, 2, item.property.id);
                                                            if (item.property.index !== enums_default22222222222222.ASN1_ARRAY_ALL) {
                                                              encodeContextUnsigned22222222222222(buffer, 3, item.property.index);
                                                            }
                                                            if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                                                              encodeOpeningTag22222222222222(buffer, 5);
                                                              encodeApplicationEnumerated22222222222222(buffer, item.value[0].value.errorClass);
                                                              encodeApplicationEnumerated22222222222222(buffer, item.value[0].value.errorCode);
                                                              encodeClosingTag22222222222222(buffer, 5);
                                                            } else {
                                                              if (!item.value)
                                                                throw new Error("No value in item");
                                                              encodeOpeningTag22222222222222(buffer, 4);
                                                              item.value.forEach((subItem) => {
                                                                bacappEncodeApplicationData22222222222222(buffer, subItem);
                                                              });
                                                              encodeClosingTag22222222222222(buffer, 4);
                                                            }
                                                          });
                                                          encodeClosingTag22222222222222(buffer, 1);
                                                        };
                                                        var decodeReadAccessResult22222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let value = {};
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          let result = decodeObjectId22222222222222(buffer, offset + len);
                                                          value.objectId = {
                                                            type: result.objectType,
                                                            instance: result.instance
                                                          };
                                                          len += result.len;
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            return -1;
                                                          }
                                                          len++;
                                                          const values = [];
                                                          while (apduLen - len > 0) {
                                                            let newEntry = {};
                                                            if (decodeIsClosingTagNumber22222222222222(buffer, offset + len, 1)) {
                                                              len++;
                                                              break;
                                                            }
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 2) {
                                                              return void 0;
                                                            }
                                                            result = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            newEntry.id = result.value;
                                                            len += result.len;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            if (result.tagNumber === 3) {
                                                              len += result.len;
                                                              result = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                              newEntry.index = result.value;
                                                              len += result.len;
                                                            } else {
                                                              newEntry.index = enums_default22222222222222.ASN1_ARRAY_ALL;
                                                            }
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber === 4) {
                                                              const localValues = [];
                                                              while (len + offset <= buffer.length && !decodeIsClosingTagNumber22222222222222(buffer, offset + len, 4)) {
                                                                let localResult = bacappDecodeApplicationData22222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  apduLen + offset - 1,
                                                                  value.objectId.type,
                                                                  newEntry.id
                                                                );
                                                                if (!localResult) {
                                                                  return void 0;
                                                                }
                                                                len += localResult.len;
                                                                let resObj = {
                                                                  value: localResult.value,
                                                                  type: localResult.type
                                                                };
                                                                if (localResult.encoding !== void 0)
                                                                  resObj.encoding = localResult.encoding;
                                                                localValues.push(resObj);
                                                              }
                                                              if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 4)) {
                                                                return void 0;
                                                              }
                                                              if (localValues.count === 2 && localValues[0].type === enums_default22222222222222.ApplicationTag.DATE && localValues[1].type === enums_default22222222222222.ApplicationTag.TIME) {
                                                                const date = localValues[0].value;
                                                                const time = localValues[1].value;
                                                                const bdatetime = new Date(
                                                                  date.year,
                                                                  date.month,
                                                                  date.day,
                                                                  time.hour,
                                                                  time.minute,
                                                                  time.second,
                                                                  time.millisecond
                                                                );
                                                                newEntry.value = [
                                                                  { type: enums_default22222222222222.ApplicationTag.DATETIME, value: bdatetime }
                                                                ];
                                                              } else {
                                                                newEntry.value = localValues;
                                                              }
                                                              len++;
                                                            } else if (result.tagNumber === 5) {
                                                              let err = {};
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              result = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                              len += result.len;
                                                              err.errorClass = result.value;
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              result = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                              len += result.len;
                                                              err.errorCode = result.value;
                                                              if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 5)) {
                                                                return void 0;
                                                              }
                                                              len++;
                                                              newEntry.value = [
                                                                {
                                                                  type: enums_default22222222222222.ApplicationTag.ERROR,
                                                                  value: err
                                                                }
                                                              ];
                                                            }
                                                            values.push(newEntry);
                                                          }
                                                          value.values = values;
                                                          return {
                                                            len,
                                                            value
                                                          };
                                                        };
                                                        var decodeSigned22222222222222 = (buffer, offset, length) => {
                                                          return {
                                                            len: length,
                                                            value: buffer.readIntBE(offset, length, true)
                                                          };
                                                        };
                                                        var decodeReal22222222222222 = (buffer, offset) => {
                                                          return {
                                                            len: 4,
                                                            value: buffer.readFloatBE(offset, true)
                                                          };
                                                        };
                                                        var decodeRealSafe22222222222222 = (buffer, offset, lenValue) => {
                                                          if (lenValue !== 4) {
                                                            return {
                                                              len: lenValue,
                                                              value: 0
                                                            };
                                                          } else {
                                                            return decodeReal22222222222222(buffer, offset);
                                                          }
                                                        };
                                                        var decodeDouble22222222222222 = (buffer, offset) => {
                                                          return {
                                                            len: 8,
                                                            value: buffer.readDoubleBE(offset, true)
                                                          };
                                                        };
                                                        var decodeDoubleSafe22222222222222 = (buffer, offset, lenValue) => {
                                                          if (lenValue !== 8) {
                                                            return {
                                                              len: lenValue,
                                                              value: 0
                                                            };
                                                          } else {
                                                            return decodeDouble22222222222222(buffer, offset);
                                                          }
                                                        };
                                                        var decodeOctetString22222222222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                                                          const octetString = [];
                                                          for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                                                            octetString.push(buffer[offset + i]);
                                                          }
                                                          return {
                                                            len: octetStringLength,
                                                            value: octetString
                                                          };
                                                        };
                                                        var multiCharsetCharacterstringDecode22222222222222 = (buffer, offset, maxLength, encoding, length) => {
                                                          const stringBuf = Buffer.alloc(length);
                                                          buffer.copy(stringBuf, 0, offset, offset + length);
                                                          return {
                                                            value: import_iconv_lite22222222222222.default.decode(stringBuf, getEncodingType22222222222222(encoding, buffer, offset)),
                                                            len: length + 1,
                                                            encoding
                                                          };
                                                        };
                                                        var decodeCharacterString22222222222222 = (buffer, offset, maxLength, lenValue) => {
                                                          return multiCharsetCharacterstringDecode22222222222222(
                                                            buffer,
                                                            offset + 1,
                                                            maxLength,
                                                            buffer[offset],
                                                            lenValue - 1
                                                          );
                                                        };
                                                        var bitstringSetBitsUsed22222222222222 = (bitString, bytesUsed, unusedBits) => {
                                                          bitString.bitsUsed = bytesUsed * 8;
                                                          bitString.bitsUsed -= unusedBits;
                                                        };
                                                        var decodeBitstring22222222222222 = (buffer, offset, lenValue) => {
                                                          let len = 0;
                                                          let bitString = {};
                                                          bitString.value = [];
                                                          if (lenValue > 0) {
                                                            const bytesUsed = lenValue - 1;
                                                            if (bytesUsed <= enums_default22222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                              len = 1;
                                                              for (let i = 0; i < bytesUsed; i++) {
                                                                bitString.value.push(byteReverseBits22222222222222(buffer[offset + len++]));
                                                              }
                                                              const unusedBits = buffer[offset] & 7;
                                                              bitstringSetBitsUsed22222222222222(bitString, bytesUsed, unusedBits);
                                                            }
                                                          }
                                                          return {
                                                            len,
                                                            value: bitString
                                                          };
                                                        };
                                                        var decodeDate22222222222222 = (buffer, offset) => {
                                                          let date;
                                                          const year = buffer[offset] + 1900;
                                                          const month = buffer[offset + 1];
                                                          const day = buffer[offset + 2];
                                                          const wday = buffer[offset + 3];
                                                          if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                                                            date = new Date(1, 1, 1);
                                                          } else {
                                                            date = new Date(year, month, day);
                                                          }
                                                          return {
                                                            len: 4,
                                                            value: date
                                                          };
                                                        };
                                                        var decodeDateSafe22222222222222 = (buffer, offset, lenValue) => {
                                                          if (lenValue !== 4) {
                                                            return {
                                                              len: lenValue,
                                                              value: new Date(1, 1, 1)
                                                            };
                                                          } else {
                                                            return decodeDate22222222222222(buffer, offset);
                                                          }
                                                        };
                                                        var decodeApplicationDate22222222222222 = (buffer, offset) => {
                                                          const result = decodeTagNumber22222222222222(buffer, offset);
                                                          if (result.tagNumber === enums_default22222222222222.ApplicationTag.DATE) {
                                                            const value = decodeDate22222222222222(buffer, offset + 1);
                                                            return {
                                                              len: value.len + 1,
                                                              value
                                                            };
                                                          }
                                                          return void 0;
                                                        };
                                                        var decodeBacnetTime22222222222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                                                          const hour = buffer[offset + 0];
                                                          const min = buffer[offset + 1];
                                                          const sec = buffer[offset + 2];
                                                          let hundredths = buffer[offset + 3];
                                                          if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                                                            value = new Date(1, 1, 1);
                                                          } else {
                                                            if (hundredths > 100)
                                                              hundredths = 0;
                                                            value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                                                          }
                                                          return {
                                                            len: 4,
                                                            value
                                                          };
                                                        };
                                                        var decodeBacnetTimeSafe22222222222222 = (buffer, offset, lenValue) => {
                                                          if (lenValue !== 4) {
                                                            return {
                                                              len: lenValue,
                                                              value: new Date(1, 1, 1)
                                                            };
                                                          } else {
                                                            return decodeBacnetTime22222222222222(buffer, offset);
                                                          }
                                                        };
                                                        var decodeApplicationTime22222222222222 = (buffer, offset) => {
                                                          const result = decodeTagNumber22222222222222(buffer, offset);
                                                          if (result.tagNumber === enums_default22222222222222.ApplicationTag.TIME) {
                                                            const value = decodeBacnetTime22222222222222(buffer, offset + 1);
                                                            return {
                                                              len: value.len + 1,
                                                              value
                                                            };
                                                          }
                                                          return void 0;
                                                        };
                                                        var decodeBacnetDatetime22222222222222 = (buffer, offset) => {
                                                          let len = 0;
                                                          const date = decodeApplicationDate22222222222222(buffer, offset + len);
                                                          len += date.len;
                                                          const time = decodeApplicationTime22222222222222(buffer, offset + len);
                                                          len += time.len;
                                                          return {
                                                            len,
                                                            value: new Date(
                                                              date.year,
                                                              date.month,
                                                              date.day,
                                                              time.hour,
                                                              time.minute,
                                                              time.second,
                                                              time.millisecond
                                                            )
                                                          };
                                                        };
                                                        var bacappDecodeData22222222222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                                                          let result;
                                                          let value = {
                                                            len: 0,
                                                            type: tagDataType
                                                          };
                                                          switch (tagDataType) {
                                                            case enums_default22222222222222.ApplicationTag.NULL:
                                                              value.value = null;
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.BOOLEAN:
                                                              value.value = lenValueType > 0;
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                              result = decodeUnsigned22222222222222(buffer, offset, lenValueType);
                                                              value.len += result.len;
                                                              value.value = result.value;
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.SIGNED_INTEGER:
                                                              result = decodeSigned22222222222222(buffer, offset, lenValueType);
                                                              value.len += result.len;
                                                              value.value = result.value;
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.REAL:
                                                              result = decodeRealSafe22222222222222(buffer, offset, lenValueType);
                                                              value.len += result.len;
                                                              value.value = result.value;
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.DOUBLE:
                                                              result = decodeDoubleSafe22222222222222(buffer, offset, lenValueType);
                                                              value.len += result.len;
                                                              value.value = result.value;
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.OCTET_STRING:
                                                              result = decodeOctetString22222222222222(buffer, offset, maxLength, 0, lenValueType);
                                                              value.len += result.len;
                                                              value.value = result.value;
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.CHARACTER_STRING:
                                                              result = decodeCharacterString22222222222222(buffer, offset, maxLength, lenValueType);
                                                              value.len += result.len;
                                                              value.value = result.value;
                                                              value.encoding = result.encoding;
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.BIT_STRING:
                                                              result = decodeBitstring22222222222222(buffer, offset, lenValueType);
                                                              value.len += result.len;
                                                              value.value = result.value;
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.ENUMERATED:
                                                              result = decodeEnumerated22222222222222(buffer, offset, lenValueType);
                                                              value.len += result.len;
                                                              value.value = result.value;
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.DATE:
                                                              result = decodeDateSafe22222222222222(buffer, offset, lenValueType);
                                                              value.len += result.len;
                                                              value.value = result.value;
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.TIME:
                                                              result = decodeBacnetTimeSafe22222222222222(buffer, offset, lenValueType);
                                                              value.len += result.len;
                                                              value.value = result.value;
                                                              break;
                                                            case enums_default22222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                              result = decodeObjectIdSafe22222222222222(buffer, offset, lenValueType);
                                                              value.len += result.len;
                                                              value.value = { type: result.objectType, instance: result.instance };
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                          return value;
                                                        };
                                                        var bacappContextTagType22222222222222 = (property, tagNumber) => {
                                                          let tag = 0;
                                                          switch (property) {
                                                            case enums_default22222222222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                                                            case enums_default22222222222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                                                            case enums_default22222222222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                                                              switch (tagNumber) {
                                                                case 0:
                                                                case 1:
                                                                  tag = enums_default22222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                  break;
                                                                case 2:
                                                                  tag = enums_default22222222222222.ApplicationTag.REAL;
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                              break;
                                                            case enums_default22222222222222.PropertyIdentifier.ACTION:
                                                              switch (tagNumber) {
                                                                case 0:
                                                                case 1:
                                                                  tag = enums_default22222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                  break;
                                                                case 2:
                                                                  tag = enums_default22222222222222.ApplicationTag.ENUMERATED;
                                                                  break;
                                                                case 3:
                                                                case 5:
                                                                case 6:
                                                                  tag = enums_default22222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                  break;
                                                                case 7:
                                                                case 8:
                                                                  tag = enums_default22222222222222.ApplicationTag.BOOLEAN;
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                              break;
                                                            case enums_default22222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                                                              switch (tagNumber) {
                                                                case 0:
                                                                  tag = enums_default22222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                              break;
                                                            case enums_default22222222222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                                                              switch (tagNumber) {
                                                                case 1:
                                                                  tag = enums_default22222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                  break;
                                                                case 3:
                                                                  tag = enums_default22222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                              break;
                                                            case enums_default22222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                                                              switch (tagNumber) {
                                                                case 0:
                                                                case 3:
                                                                  tag = enums_default22222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                  break;
                                                                case 1:
                                                                  tag = enums_default22222222222222.ApplicationTag.ENUMERATED;
                                                                  break;
                                                                case 2:
                                                                  tag = enums_default22222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                              break;
                                                            case enums_default22222222222222.PropertyIdentifier.SUBORDINATE_LIST:
                                                              switch (tagNumber) {
                                                                case 0:
                                                                case 1:
                                                                  tag = enums_default22222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                              break;
                                                            case enums_default22222222222222.PropertyIdentifier.RECIPIENT_LIST:
                                                              switch (tagNumber) {
                                                                case 0:
                                                                  tag = enums_default22222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                              break;
                                                            case enums_default22222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                                                              switch (tagNumber) {
                                                                case 0:
                                                                case 1:
                                                                  break;
                                                                case 2:
                                                                  tag = enums_default22222222222222.ApplicationTag.BOOLEAN;
                                                                  break;
                                                                case 3:
                                                                  tag = enums_default22222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                                  break;
                                                                case 4:
                                                                  tag = enums_default22222222222222.ApplicationTag.REAL;
                                                                  break;
                                                                default:
                                                                  break;
                                                              }
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                          return tag;
                                                        };
                                                        var decodeDeviceObjPropertyRef22222222222222 = (buffer, offset, NOTUSEDARG = 0) => {
                                                          let len = 0;
                                                          let arrayIndex = enums_default22222222222222.ASN1_ARRAY_ALL;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          let objectId = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += objectId.len;
                                                          let result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 1) {
                                                            return void 0;
                                                          }
                                                          let id = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += id.len;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          if (result.tagNumber === 2) {
                                                            len += result.len;
                                                            arrayIndex = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += arrayIndex.len;
                                                          }
                                                          if (decodeIsContextTag22222222222222(buffer, offset + len, 3)) {
                                                            if (!isClosingTag22222222222222(buffer[offset + len])) {
                                                              len++;
                                                              objectId = decodeObjectId22222222222222(buffer, offset + len);
                                                              len += objectId.len;
                                                            }
                                                          }
                                                          return {
                                                            len,
                                                            value: {
                                                              objectId,
                                                              id
                                                            }
                                                          };
                                                        };
                                                        var decodeReadAccessSpecification22222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let value = {};
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          let decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          value.objectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          len += decodedValue.len;
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          const propertyIdAndArrayIndex = [];
                                                          while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            let propertyRef = {};
                                                            if (!isContextSpecific22222222222222(buffer[offset + len])) {
                                                              return void 0;
                                                            }
                                                            let result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 0) {
                                                              return void 0;
                                                            }
                                                            if (len + result.value >= apduLen) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            propertyRef.id = decodedValue.value;
                                                            len += decodedValue.len;
                                                            propertyRef.index = enums_default22222222222222.ASN1_ARRAY_ALL;
                                                            if (isContextSpecific22222222222222(buffer[offset + len]) && !isClosingTag22222222222222(buffer[offset + len])) {
                                                              const tmp = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              if (tmp.tagNumber === 1) {
                                                                len += tmp.len;
                                                                if (len + tmp.value >= apduLen) {
                                                                  return void 0;
                                                                }
                                                                decodedValue = decodeUnsigned22222222222222(buffer, offset + len, tmp.value);
                                                                propertyRef.index = decodedValue.value;
                                                                len += decodedValue.len;
                                                              }
                                                            }
                                                            propertyIdAndArrayIndex.push(propertyRef);
                                                          }
                                                          if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          value.properties = propertyIdAndArrayIndex;
                                                          return {
                                                            len,
                                                            value
                                                          };
                                                        };
                                                        var decodeCovSubscription22222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let value = {};
                                                          let result;
                                                          let decodedValue;
                                                          value.recipient = {};
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== enums_default22222222222222.ApplicationTag.UNSIGNED_INTEGER) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.recipient.net = decodedValue.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== enums_default22222222222222.ApplicationTag.OCTET_STRING) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeOctetString22222222222222(
                                                            buffer,
                                                            offset + len,
                                                            apduLen,
                                                            0,
                                                            result.value
                                                          );
                                                          len += decodedValue.len;
                                                          value.recipient.adr = decodedValue.value;
                                                          if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 1) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.subscriptionProcessId = decodedValue.value;
                                                          if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 0) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          value.monitoredObjectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 1) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.monitoredProperty = {};
                                                          value.monitoredProperty.id = decodedValue.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          if (result.tagNumber === 2) {
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.monitoredProperty.index = decodedValue.value;
                                                          } else {
                                                            value.monitoredProperty.index = enums_default22222222222222.ASN1_ARRAY_ALL;
                                                          }
                                                          if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 2) {
                                                            return void 0;
                                                          }
                                                          value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                          len++;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 3) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.timeRemaining = decodedValue.value;
                                                          if (len < apduLen && !isClosingTag22222222222222(buffer[offset + len])) {
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 4) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeReal22222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            value.covIncrement = decodedValue.value;
                                                          }
                                                          return {
                                                            len,
                                                            value
                                                          };
                                                        };
                                                        var decodeCalendarDate22222222222222 = (buffer, offset) => {
                                                          return {
                                                            len: 4,
                                                            year: buffer[offset],
                                                            month: buffer[offset + 1],
                                                            day: buffer[offset + 2],
                                                            wday: buffer[offset + 3]
                                                          };
                                                        };
                                                        var decodeCalendarDateRange22222222222222 = (buffer, offset) => {
                                                          let len = 1;
                                                          const startDate = decodeDate22222222222222(buffer, offset + len);
                                                          len += startDate.len + 1;
                                                          const endDate = decodeDate22222222222222(buffer, offset + len);
                                                          len += endDate.len + 1;
                                                          return {
                                                            len,
                                                            startDate,
                                                            endDate
                                                          };
                                                        };
                                                        var decodeCalendarWeekDay22222222222222 = (buffer, offset) => {
                                                          return {
                                                            len: 3,
                                                            month: buffer[offset],
                                                            week: buffer[offset + 1],
                                                            wday: buffer[offset + 2]
                                                          };
                                                        };
                                                        var decodeCalendar22222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          const entries = [];
                                                          let decodedValue;
                                                          while (len < apduLen) {
                                                            const result = decodeTagNumber22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            switch (result.tagNumber) {
                                                              case 0:
                                                                decodedValue = decodeCalendarDate22222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                entries.push(decodedValue);
                                                                break;
                                                              case 1:
                                                                decodedValue = decodeCalendarDateRange22222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                entries.push(decodedValue);
                                                                break;
                                                              case 2:
                                                                decodedValue = decodeCalendarWeekDay22222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                entries.push(decodedValue);
                                                                break;
                                                              default:
                                                                return {
                                                                  len: len - 1,
                                                                  value: entries
                                                                };
                                                            }
                                                          }
                                                        };
                                                        var bacappDecodeContextApplicationData22222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                          let len = 0;
                                                          let result;
                                                          if (isContextSpecific22222222222222(buffer[offset])) {
                                                            if (propertyId === enums_default22222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                                                              result = decodeReadAccessSpecification22222222222222(buffer, offset, maxOffset);
                                                              if (!result) {
                                                                return void 0;
                                                              }
                                                              return {
                                                                type: enums_default22222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                                                value: result.value,
                                                                len: result.len
                                                              };
                                                            } else if (propertyId === enums_default22222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                                                              result = decodeCovSubscription22222222222222(buffer, offset, maxOffset);
                                                              if (!result) {
                                                                return void 0;
                                                              }
                                                              return {
                                                                type: enums_default22222222222222.ApplicationTag.COV_SUBSCRIPTION,
                                                                value: result.value,
                                                                len: result.len
                                                              };
                                                            } else if (objectType === enums_default22222222222222.ObjectType.GROUP && propertyId === enums_default22222222222222.PropertyIdentifier.PRESENT_VALUE) {
                                                              result = decodeReadAccessResult22222222222222(buffer, offset, maxOffset);
                                                              if (!result) {
                                                                return void 0;
                                                              }
                                                              return {
                                                                type: enums_default22222222222222.ApplicationTag.READ_ACCESS_RESULT,
                                                                value: result.value,
                                                                len: result.len
                                                              };
                                                            } else if (propertyId === enums_default22222222222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default22222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default22222222222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                                                              result = decodeDeviceObjPropertyRef22222222222222(buffer, offset, maxOffset);
                                                              if (!result) {
                                                                return void 0;
                                                              }
                                                              return {
                                                                type: enums_default22222222222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                                                value: result.value,
                                                                len: result.len
                                                              };
                                                            } else if (propertyId === enums_default22222222222222.PropertyIdentifier.DATE_LIST) {
                                                              result = decodeCalendar22222222222222(buffer, offset, maxOffset);
                                                              if (!result) {
                                                                return void 0;
                                                              }
                                                              return {
                                                                type: enums_default22222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                                                value: result.value,
                                                                len: result.len
                                                              };
                                                            } else if (propertyId === enums_default22222222222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                                                              let subEvtResult;
                                                              let evtResult = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += 1;
                                                              if (evtResult.tagNumber === 0) {
                                                                subEvtResult = decodeBacnetTime22222222222222(buffer, offset + 1);
                                                                return {
                                                                  type: enums_default22222222222222.ApplicationTag.TIMESTAMP,
                                                                  value: subEvtResult.value,
                                                                  len: subEvtResult.len + 1
                                                                };
                                                              } else if (evtResult.tagNumber === 1) {
                                                                subEvtResult = decodeUnsigned22222222222222(buffer, offset + len, evtResult.value);
                                                                return {
                                                                  type: enums_default22222222222222.ApplicationTag.UNSIGNED_INTEGER,
                                                                  value: subEvtResult.value,
                                                                  len: subEvtResult.len + 1
                                                                };
                                                              } else if (evtResult.tagNumber === 2) {
                                                                subEvtResult = decodeBacnetDatetime22222222222222(buffer, offset + len);
                                                                return {
                                                                  type: enums_default22222222222222.ApplicationTag.TIMESTAMP,
                                                                  value: subEvtResult.value,
                                                                  len: subEvtResult.len + 2
                                                                };
                                                              } else {
                                                                return void 0;
                                                              }
                                                            }
                                                            const list = [];
                                                            let tagResult = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            let multipleValues = isOpeningTag22222222222222(buffer[offset + len]);
                                                            while (len + offset <= maxOffset && !isClosingTag22222222222222(buffer[offset + len])) {
                                                              let subResult = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              if (!subResult) {
                                                                return void 0;
                                                              }
                                                              if (subResult.value === 0) {
                                                                len += subResult.len;
                                                                result = bacappDecodeApplicationData22222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  maxOffset,
                                                                  enums_default22222222222222.ASN1_MAX_OBJECT_TYPE,
                                                                  enums_default22222222222222.ASN1_MAX_PROPERTY_ID
                                                                );
                                                                if (!result) {
                                                                  return void 0;
                                                                }
                                                                list.push(result);
                                                                len += result.len;
                                                              } else {
                                                                const overrideTagNumber = bacappContextTagType22222222222222(
                                                                  propertyId,
                                                                  subResult.tagNumber
                                                                );
                                                                if (overrideTagNumber !== enums_default22222222222222.ASN1_MAX_APPLICATION_TAG) {
                                                                  subResult.tagNumber = overrideTagNumber;
                                                                }
                                                                let bacappResult = bacappDecodeData22222222222222(
                                                                  buffer,
                                                                  offset + len + subResult.len,
                                                                  maxOffset,
                                                                  subResult.tagNumber,
                                                                  subResult.value
                                                                );
                                                                if (!bacappResult) {
                                                                  return void 0;
                                                                }
                                                                if (bacappResult.len === subResult.value) {
                                                                  let resObj = {
                                                                    value: bacappResult.value,
                                                                    type: bacappResult.type
                                                                  };
                                                                  if (bacappResult.encoding !== void 0)
                                                                    resObj.encoding = bacappResult.encoding;
                                                                  list.push(resObj);
                                                                  len += subResult.len + subResult.value;
                                                                } else {
                                                                  list.push({
                                                                    value: buffer.slice(
                                                                      offset + len + subResult.len,
                                                                      offset + len + subResult.len + subResult.value
                                                                    ),
                                                                    type: enums_default22222222222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                                                  });
                                                                  len += subResult.len + subResult.value;
                                                                }
                                                              }
                                                              if (multipleValues === false) {
                                                                return {
                                                                  len,
                                                                  value: list[0],
                                                                  type: enums_default22222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                                };
                                                              }
                                                            }
                                                            if (len + offset > maxOffset) {
                                                              return void 0;
                                                            }
                                                            if (decodeIsClosingTagNumber22222222222222(buffer, offset + len, tagResult.tagNumber)) {
                                                              len++;
                                                            }
                                                            return {
                                                              len,
                                                              value: list,
                                                              type: enums_default22222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                            };
                                                          }
                                                          return void 0;
                                                        };
                                                        var bacappEncodeTimestamp22222222222222 = (buffer, value) => {
                                                          switch (value.type) {
                                                            case enums_default22222222222222.TimeStamp.TIME:
                                                              encodeContextTime22222222222222(buffer, 0, value.value);
                                                              break;
                                                            case enums_default22222222222222.TimeStamp.SEQUENCE_NUMBER:
                                                              encodeContextUnsigned22222222222222(buffer, 1, value.value);
                                                              break;
                                                            case enums_default22222222222222.TimeStamp.DATETIME:
                                                              bacappEncodeContextDatetime22222222222222(buffer, 2, value.value);
                                                              break;
                                                            default:
                                                              throw new Error("NOT_IMPLEMENTED");
                                                          }
                                                        };
                                                        var bacappEncodeContextTimestamp22222222222222 = (buffer, tagNumber, value) => {
                                                          encodeOpeningTag22222222222222(buffer, tagNumber);
                                                          bacappEncodeTimestamp22222222222222(buffer, value);
                                                          encodeClosingTag22222222222222(buffer, tagNumber);
                                                        };
                                                        var decodeContextCharacterString22222222222222 = (buffer, offset, maxLength, tagNumber) => {
                                                          let len = 0;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, tagNumber)) {
                                                            return void 0;
                                                          }
                                                          const result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          const decodedValue = multiCharsetCharacterstringDecode22222222222222(
                                                            buffer,
                                                            offset + 1 + len,
                                                            maxLength,
                                                            buffer[offset + len],
                                                            result.value - 1
                                                          );
                                                          if (!decodedValue) {
                                                            return void 0;
                                                          }
                                                          len += result.value;
                                                          return {
                                                            len,
                                                            value: decodedValue.value,
                                                            encoding: decodedValue.encoding
                                                          };
                                                        };
                                                        var decodeIsContextTagWithLength22222222222222 = (buffer, offset, tagNumber) => {
                                                          const result = decodeTagNumber22222222222222(buffer, offset);
                                                          return {
                                                            len: result.len,
                                                            value: isContextSpecific22222222222222(buffer[offset]) && result.tagNumber === tagNumber
                                                          };
                                                        };
                                                        var decodeContextObjectId22222222222222 = (buffer, offset, tagNumber) => {
                                                          const result = decodeIsContextTagWithLength22222222222222(buffer, offset, tagNumber);
                                                          if (!result.value) {
                                                            return void 0;
                                                          }
                                                          const decodedValue = decodeObjectId22222222222222(buffer, offset + result.len);
                                                          decodedValue.len = decodedValue.len + result.len;
                                                          return decodedValue;
                                                        };
                                                        var encodeBacnetCharacterString22222222222222 = (buffer, value, encoding) => {
                                                          encoding = encoding || enums_default22222222222222.CharacterStringEncoding.UTF_8;
                                                          buffer.buffer[buffer.offset++] = encoding;
                                                          const bufEncoded = import_iconv_lite22222222222222.default.encode(value, getEncodingType22222222222222(encoding));
                                                          buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                                                        };
                                                        var encodeApplicationCharacterString22222222222222 = (buffer, value, encoding) => {
                                                          const tmp = getBuffer22222222222222();
                                                          encodeBacnetCharacterString22222222222222(tmp, value, encoding);
                                                          encodeTag22222222222222(buffer, enums_default22222222222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                          buffer.offset += tmp.offset;
                                                        };
                                                        var encodeContextCharacterString22222222222222 = (buffer, tagNumber, value, encoding) => {
                                                          const tmp = getBuffer22222222222222();
                                                          encodeBacnetCharacterString22222222222222(tmp, value, encoding);
                                                          encodeTag22222222222222(buffer, tagNumber, true, tmp.offset);
                                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                          buffer.offset += tmp.offset;
                                                        };
                                                        var encode332222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                          encodeContextObjectId22222222222222(buffer, 0, objectId.type, objectId.instance);
                                                          encodeContextEnumerated22222222222222(buffer, 1, propertyId);
                                                          if (arrayIndex !== ASN1_ARRAY_ALL22222222222222) {
                                                            encodeContextUnsigned22222222222222(buffer, 2, arrayIndex);
                                                          }
                                                          encodeOpeningTag22222222222222(buffer, 3);
                                                          values.forEach((value) => {
                                                            bacappEncodeApplicationData22222222222222(buffer, value);
                                                          });
                                                          encodeClosingTag22222222222222(buffer, 3);
                                                        };
                                                        var decode332222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let value = {};
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          value.objectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.property = { id: decodedValue.value };
                                                          if (len < apduLen && decodeIsContextTag22222222222222(buffer, offset + len, 2)) {
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.property.index = decodedValue.value;
                                                          } else {
                                                            value.property.index = ASN1_ARRAY_ALL22222222222222;
                                                          }
                                                          const values = [];
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 3)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          while (apduLen - len > 1) {
                                                            result = bacappDecodeApplicationData22222222222222(
                                                              buffer,
                                                              offset + len,
                                                              apduLen + offset,
                                                              value.objectId.type,
                                                              value.property.id
                                                            );
                                                            if (!result) {
                                                              return void 0;
                                                            }
                                                            len += result.len;
                                                            delete result.len;
                                                            values.push(result);
                                                          }
                                                          value.values = values;
                                                          if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 3)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var alarm_acknowledge_exports22222222222222 = {};
                                                        __export22222222222222(alarm_acknowledge_exports22222222222222, {
                                                          decode: () => decode2102222222222222,
                                                          encode: () => encode2102222222222222
                                                        });
                                                        var encode2102222222222222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                                                          encodeContextUnsigned22222222222222(buffer, 0, ackProcessId);
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            1,
                                                            eventObjectId.type,
                                                            eventObjectId.instance
                                                          );
                                                          encodeContextEnumerated22222222222222(buffer, 2, eventStateAcknowledged);
                                                          bacappEncodeContextTimestamp22222222222222(buffer, 3, eventTimeStamp);
                                                          encodeContextCharacterString22222222222222(buffer, 4, ackSource);
                                                          bacappEncodeContextTimestamp22222222222222(buffer, 5, ackTimeStamp);
                                                        };
                                                        var decode2102222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let value = {};
                                                          let result;
                                                          let decodedValue;
                                                          let date;
                                                          let time;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.acknowledgedProcessId = decodedValue.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          value.eventObjectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.eventStateAcknowledged = decodedValue.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber === 0) {
                                                            decodedValue = decodeBacnetTime22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.eventTimeStamp = decodedValue.value;
                                                          } else if (result.tagNumber === 1) {
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.eventTimeStamp = decodedValue.value;
                                                          } else if (result.tagNumber === 2) {
                                                            date = decodeApplicationDate22222222222222(buffer, offset + len);
                                                            len += date.len;
                                                            date = date.value.value;
                                                            time = decodeApplicationTime22222222222222(buffer, offset + len);
                                                            len += time.len;
                                                            time = time.value.value;
                                                            value.eventTimeStamp = new Date(
                                                              date.getFullYear(),
                                                              date.getMonth(),
                                                              date.getDate(),
                                                              time.getHours(),
                                                              time.getMinutes(),
                                                              time.getSeconds(),
                                                              time.getMilliseconds()
                                                            );
                                                            len++;
                                                          }
                                                          len++;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeCharacterString22222222222222(
                                                            buffer,
                                                            offset + len,
                                                            apduLen - (offset + len),
                                                            result.value
                                                          );
                                                          value.acknowledgeSource = decodedValue.value;
                                                          len += decodedValue.len;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber === 0) {
                                                            decodedValue = decodeBacnetTime22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.acknowledgeTimeStamp = decodedValue.value;
                                                          } else if (result.tagNumber === 1) {
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.acknowledgeTimeStamp = decodedValue.value;
                                                          } else if (result.tagNumber === 2) {
                                                            date = decodeApplicationDate22222222222222(buffer, offset + len);
                                                            len += date.len;
                                                            date = date.value.value;
                                                            time = decodeApplicationTime22222222222222(buffer, offset + len);
                                                            len += time.len;
                                                            time = time.value.value;
                                                            value.acknowledgeTimeStamp = new Date(
                                                              date.getFullYear(),
                                                              date.getMonth(),
                                                              date.getDate(),
                                                              time.getHours(),
                                                              time.getMinutes(),
                                                              time.getSeconds(),
                                                              time.getMilliseconds()
                                                            );
                                                            len++;
                                                          }
                                                          len++;
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var alarm_summary_exports22222222222222 = {};
                                                        __export22222222222222(alarm_summary_exports22222222222222, {
                                                          decode: () => decode342222222222222,
                                                          encode: () => encode342222222222222
                                                        });
                                                        var encode342222222222222 = (buffer, alarms) => {
                                                          alarms.forEach((alarm) => {
                                                            encodeContextObjectId22222222222222(
                                                              buffer,
                                                              12,
                                                              alarm.objectId.type,
                                                              alarm.objectId.instance
                                                            );
                                                            encodeContextEnumerated22222222222222(buffer, 9, alarm.alarmState);
                                                            encodeContextBitstring22222222222222(buffer, 8, alarm.acknowledgedTransitions);
                                                          });
                                                        };
                                                        var decode342222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          const alarms = [];
                                                          while (apduLen - 3 - len > 0) {
                                                            let value = {};
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            value.objectId = {
                                                              type: decodedValue.objectType,
                                                              instance: decodedValue.instance
                                                            };
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.alarmState = decodedValue.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeBitstring22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.acknowledgedTransitions = decodedValue.value;
                                                            alarms.push(value);
                                                          }
                                                          return {
                                                            len,
                                                            alarms
                                                          };
                                                        };
                                                        var atomic_read_file_exports22222222222222 = {};
                                                        __export22222222222222(atomic_read_file_exports22222222222222, {
                                                          decode: () => decode422222222222222,
                                                          decodeAcknowledge: () => decodeAcknowledge82222222222222,
                                                          encode: () => encode422222222222222,
                                                          encodeAcknowledge: () => encodeAcknowledge92222222222222
                                                        });
                                                        var encode422222222222222 = (buffer, isStream, objectId, position, count) => {
                                                          encodeApplicationObjectId22222222222222(buffer, objectId.type, objectId.instance);
                                                          if (isStream) {
                                                            encodeOpeningTag22222222222222(buffer, 0);
                                                            encodeApplicationSigned22222222222222(buffer, position);
                                                            encodeApplicationUnsigned22222222222222(buffer, count);
                                                            encodeClosingTag22222222222222(buffer, 0);
                                                          } else {
                                                            encodeOpeningTag22222222222222(buffer, 1);
                                                            encodeApplicationSigned22222222222222(buffer, position);
                                                            encodeApplicationUnsigned22222222222222(buffer, count);
                                                            encodeClosingTag22222222222222(buffer, 1);
                                                          }
                                                        };
                                                        var decode422222222222222 = (buffer, offset) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let isStream = true;
                                                          let objectId = {};
                                                          let position = -1;
                                                          let count = 0;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 12) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                                                          if (decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 0)) {
                                                            isStream = true;
                                                            len++;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 3) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeSigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            position = decodedValue.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 2) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            count = decodedValue.value;
                                                            if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 0)) {
                                                              return void 0;
                                                            }
                                                            len++;
                                                          } else if (decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            isStream = false;
                                                            len++;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 3) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeSigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            position = decodedValue.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 2) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            count = decodedValue.value;
                                                            if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 1)) {
                                                              return void 0;
                                                            }
                                                            len++;
                                                          } else {
                                                            return void 0;
                                                          }
                                                          return {
                                                            len,
                                                            isStream,
                                                            objectId,
                                                            position,
                                                            count
                                                          };
                                                        };
                                                        var encodeAcknowledge92222222222222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                                                          encodeApplicationBoolean22222222222222(buffer, endOfFile);
                                                          if (isStream) {
                                                            encodeOpeningTag22222222222222(buffer, 0);
                                                            encodeApplicationSigned22222222222222(buffer, position);
                                                            encodeApplicationOctetString22222222222222(buffer, blocks[0], 0, counts[0]);
                                                            encodeClosingTag22222222222222(buffer, 0);
                                                          } else {
                                                            encodeOpeningTag22222222222222(buffer, 1);
                                                            encodeApplicationSigned22222222222222(buffer, position);
                                                            encodeApplicationUnsigned22222222222222(buffer, blockCount);
                                                            for (let i = 0; i < blockCount; i++) {
                                                              encodeApplicationOctetString22222222222222(buffer, blocks[i], 0, counts[i]);
                                                            }
                                                            encodeClosingTag22222222222222(buffer, 1);
                                                          }
                                                        };
                                                        var decodeAcknowledge82222222222222 = (buffer, offset, length = 0) => {
                                                          let len = length;
                                                          let result;
                                                          let decodedValue;
                                                          let endOfFile;
                                                          let isStream;
                                                          let position;
                                                          let targetBuffer;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 1) {
                                                            return void 0;
                                                          }
                                                          endOfFile = result.value > 0;
                                                          if (decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 0)) {
                                                            isStream = true;
                                                            len++;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 3) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeSigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            position = decodedValue.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 6) {
                                                              return void 0;
                                                            }
                                                            targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                                                            len += result.value;
                                                            if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 0)) {
                                                              return void 0;
                                                            }
                                                            len++;
                                                          } else if (decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            isStream = false;
                                                            throw new Error("NotImplemented");
                                                          } else {
                                                            return void 0;
                                                          }
                                                          return {
                                                            len,
                                                            endOfFile,
                                                            isStream,
                                                            position,
                                                            buffer: targetBuffer
                                                          };
                                                        };
                                                        var atomic_write_file_exports22222222222222 = {};
                                                        __export22222222222222(atomic_write_file_exports22222222222222, {
                                                          decode: () => decode522222222222222,
                                                          decodeAcknowledge: () => decodeAcknowledge222222222222222,
                                                          encode: () => encode522222222222222,
                                                          encodeAcknowledge: () => encodeAcknowledge222222222222222
                                                        });
                                                        var encode522222222222222 = (buffer, isStream, objectId, position, blocks) => {
                                                          encodeApplicationObjectId22222222222222(buffer, objectId.type, objectId.instance);
                                                          if (isStream) {
                                                            encodeOpeningTag22222222222222(buffer, 0);
                                                            encodeApplicationSigned22222222222222(buffer, position);
                                                            encodeApplicationOctetString22222222222222(buffer, blocks[0], 0, blocks[0].length);
                                                            encodeClosingTag22222222222222(buffer, 0);
                                                          } else {
                                                            encodeOpeningTag22222222222222(buffer, 1);
                                                            encodeApplicationSigned22222222222222(buffer, position);
                                                            encodeApplicationUnsigned22222222222222(buffer, blocks.length);
                                                            for (let i = 0; i < blocks.length; i++) {
                                                              encodeApplicationOctetString22222222222222(
                                                                buffer,
                                                                blocks[i],
                                                                0,
                                                                blocks[i].length
                                                              );
                                                            }
                                                            encodeClosingTag22222222222222(buffer, 1);
                                                          }
                                                        };
                                                        var decode522222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let isStream;
                                                          let position;
                                                          let blocks = [];
                                                          let blockCount;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 12) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          let objectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          if (decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 0)) {
                                                            isStream = true;
                                                            len++;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 3) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeSigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            position = decodedValue.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 6) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeOctetString22222222222222(
                                                              buffer,
                                                              offset + len,
                                                              apduLen,
                                                              0,
                                                              result.value
                                                            );
                                                            len += decodedValue.len;
                                                            blocks.push(decodedValue.value);
                                                            if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 0)) {
                                                              return void 0;
                                                            }
                                                            len++;
                                                          } else if (decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            isStream = false;
                                                            len++;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 3) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeSigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            position = decodedValue.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 2) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            blockCount = decodedValue.value;
                                                            for (let i = 0; i < blockCount; i++) {
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber !== 6) {
                                                                return void 0;
                                                              }
                                                              decodedValue = decodeOctetString22222222222222(
                                                                buffer,
                                                                offset + len,
                                                                apduLen,
                                                                0,
                                                                result.value
                                                              );
                                                              len += decodedValue.len;
                                                              blocks.push(decodedValue.value);
                                                            }
                                                            if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 1)) {
                                                              return void 0;
                                                            }
                                                            len++;
                                                          } else {
                                                            return void 0;
                                                          }
                                                          return {
                                                            len,
                                                            isStream,
                                                            objectId,
                                                            position,
                                                            blocks
                                                          };
                                                        };
                                                        var encodeAcknowledge222222222222222 = (buffer, isStream, position) => {
                                                          if (isStream) {
                                                            encodeContextSigned22222222222222(buffer, 0, position);
                                                          } else {
                                                            encodeContextSigned22222222222222(buffer, 1, position);
                                                          }
                                                        };
                                                        var decodeAcknowledge222222222222222 = (buffer, offset, length = 0) => {
                                                          let len = length;
                                                          let isStream = false;
                                                          let position = 0;
                                                          let decodedValue;
                                                          const result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber === 0) {
                                                            isStream = true;
                                                          } else if (result.tagNumber === 1) {
                                                            isStream = false;
                                                          } else {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeSigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          position = decodedValue.value;
                                                          return {
                                                            len,
                                                            isStream,
                                                            position
                                                          };
                                                        };
                                                        var cov_notify_exports22222222222222 = {};
                                                        __export22222222222222(cov_notify_exports22222222222222, {
                                                          decode: () => decode622222222222222,
                                                          encode: () => encode622222222222222
                                                        });
                                                        var encode622222222222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                                                          encodeContextUnsigned22222222222222(buffer, 0, subscriberProcessId);
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            1,
                                                            8,
                                                            initiatingDeviceId
                                                          );
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            2,
                                                            monitoredObjectId.type,
                                                            monitoredObjectId.instance
                                                          );
                                                          encodeContextUnsigned22222222222222(buffer, 3, timeRemaining);
                                                          encodeOpeningTag22222222222222(buffer, 4);
                                                          values.forEach((value) => {
                                                            encodeContextEnumerated22222222222222(buffer, 0, value.property.id);
                                                            if (value.property.index === ASN1_ARRAY_ALL22222222222222) {
                                                              encodeContextUnsigned22222222222222(buffer, 1, value.property.index);
                                                            }
                                                            encodeOpeningTag22222222222222(buffer, 2);
                                                            value.value.forEach((v) => {
                                                              bacappEncodeApplicationData22222222222222(buffer, v);
                                                            });
                                                            encodeClosingTag22222222222222(buffer, 2);
                                                            if (value.priority === ASN1_NO_PRIORITY22222222222222) {
                                                              encodeContextUnsigned22222222222222(buffer, 3, value.priority);
                                                            }
                                                          });
                                                          encodeClosingTag22222222222222(buffer, 4);
                                                        };
                                                        var decode622222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          const subscriberProcessId = decodedValue.value;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          const initiatingDeviceId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 2)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          const monitoredObjectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 3)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          const timeRemaining = decodedValue.value;
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 4)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          const values = [];
                                                          while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222222222(buffer, offset + len, 4)) {
                                                            let newEntry = {};
                                                            newEntry.property = {};
                                                            if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                              return void 0;
                                                            }
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            newEntry.property.id = decodedValue.value;
                                                            if (decodeIsContextTag22222222222222(buffer, offset + len, 1)) {
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              newEntry.property.index = decodedValue.value;
                                                            } else {
                                                              newEntry.property.index = ASN1_ARRAY_ALL22222222222222;
                                                            }
                                                            if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 2)) {
                                                              return void 0;
                                                            }
                                                            len++;
                                                            const properties = [];
                                                            while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222222222(buffer, offset + len, 2)) {
                                                              decodedValue = bacappDecodeApplicationData22222222222222(
                                                                buffer,
                                                                offset + len,
                                                                apduLen + offset,
                                                                monitoredObjectId.type,
                                                                newEntry.property.id
                                                              );
                                                              if (!decodedValue) {
                                                                return void 0;
                                                              }
                                                              len += decodedValue.len;
                                                              delete decodedValue.len;
                                                              properties.push(decodedValue);
                                                            }
                                                            newEntry.value = properties;
                                                            len++;
                                                            if (decodeIsContextTag22222222222222(buffer, offset + len, 3)) {
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              newEntry.priority = decodedValue.value;
                                                            } else {
                                                              newEntry.priority = ASN1_NO_PRIORITY22222222222222;
                                                            }
                                                            values.push(newEntry);
                                                          }
                                                          return {
                                                            len,
                                                            subscriberProcessId,
                                                            initiatingDeviceId,
                                                            monitoredObjectId,
                                                            timeRemaining,
                                                            values
                                                          };
                                                        };
                                                        var create_object_exports22222222222222 = {};
                                                        __export22222222222222(create_object_exports22222222222222, {
                                                          decode: () => decode722222222222222,
                                                          encode: () => encode722222222222222,
                                                          encodeAcknowledge: () => encodeAcknowledge322222222222222
                                                        });
                                                        var encode722222222222222 = (buffer, objectId, values) => {
                                                          encodeOpeningTag22222222222222(buffer, 0);
                                                          encodeContextObjectId22222222222222(buffer, 1, objectId.type, objectId.instance);
                                                          encodeClosingTag22222222222222(buffer, 0);
                                                          encodeOpeningTag22222222222222(buffer, 1);
                                                          values.forEach((propertyValue) => {
                                                            encodeContextEnumerated22222222222222(buffer, 0, propertyValue.property.id);
                                                            if (propertyValue.property.index !== ASN1_ARRAY_ALL22222222222222) {
                                                              encodeContextUnsigned22222222222222(buffer, 1, propertyValue.property.index);
                                                            }
                                                            encodeOpeningTag22222222222222(buffer, 2);
                                                            propertyValue.value.forEach((value) => {
                                                              bacappEncodeApplicationData22222222222222(buffer, value);
                                                            });
                                                            encodeClosingTag22222222222222(buffer, 2);
                                                            if (propertyValue.priority !== ASN1_NO_PRIORITY22222222222222) {
                                                              encodeContextUnsigned22222222222222(buffer, 3, propertyValue.priority);
                                                            }
                                                          });
                                                          encodeClosingTag22222222222222(buffer, 1);
                                                        };
                                                        var decode722222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let objectId;
                                                          const valueList = [];
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber === 0 && apduLen > len) {
                                                            apduLen -= len;
                                                            if (apduLen < 4) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeContextObjectId22222222222222(buffer, offset + len, 1);
                                                            len += decodedValue.len;
                                                            objectId = {
                                                              type: decodedValue.objectType,
                                                              instance: decodedValue.instance
                                                            };
                                                          } else {
                                                            return void 0;
                                                          }
                                                          if (decodeIsClosingTag22222222222222(buffer, offset + len)) {
                                                            len++;
                                                          }
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          while (apduLen - len > 1) {
                                                            let newEntry = {};
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 0) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            let propertyId = decodedValue.value;
                                                            let arraIndex = ASN1_ARRAY_ALL22222222222222;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber === 1) {
                                                              decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              arraIndex += decodedValue.value;
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                            }
                                                            newEntry.property = { id: propertyId, index: arraIndex };
                                                            if (result.tagNumber === 2 && decodeIsOpeningTag22222222222222(buffer, offset + len - 1)) {
                                                              const values = [];
                                                              while (!decodeIsClosingTag22222222222222(buffer, offset + len)) {
                                                                decodedValue = bacappDecodeApplicationData22222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  apduLen + offset,
                                                                  objectId.type,
                                                                  propertyId
                                                                );
                                                                if (!decodedValue) {
                                                                  return void 0;
                                                                }
                                                                len += decodedValue.len;
                                                                delete decodedValue.len;
                                                                values.push(decodedValue);
                                                              }
                                                              len++;
                                                              newEntry.value = values;
                                                            } else {
                                                              return void 0;
                                                            }
                                                            valueList.push(newEntry);
                                                          }
                                                          if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          return {
                                                            len,
                                                            objectId,
                                                            values: valueList
                                                          };
                                                        };
                                                        var encodeAcknowledge322222222222222 = (buffer, objectId) => {
                                                          encodeApplicationObjectId22222222222222(buffer, objectId.type, objectId.instance);
                                                        };
                                                        var delete_object_exports22222222222222 = {};
                                                        __export22222222222222(delete_object_exports22222222222222, {
                                                          decode: () => decode822222222222222,
                                                          encode: () => encode822222222222222
                                                        });
                                                        var decode822222222222222 = (buffer, offset, apduLen) => {
                                                          const result = decodeTagNumberAndValue22222222222222(buffer, offset);
                                                          if (result.tagNumber !== 12) {
                                                            return void 0;
                                                          }
                                                          let len = 1;
                                                          const value = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += value.len;
                                                          if (len !== apduLen) {
                                                            return void 0;
                                                          }
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var encode822222222222222 = (buffer, objectId) => {
                                                          encodeApplicationObjectId22222222222222(buffer, objectId.type, objectId.instance);
                                                        };
                                                        var device_communication_control_exports22222222222222 = {};
                                                        __export22222222222222(device_communication_control_exports22222222222222, {
                                                          decode: () => decode922222222222222,
                                                          encode: () => encode922222222222222
                                                        });
                                                        var encode922222222222222 = (buffer, timeDuration, enableDisable, password) => {
                                                          if (timeDuration > 0) {
                                                            encodeContextUnsigned22222222222222(buffer, 0, timeDuration);
                                                          }
                                                          encodeContextEnumerated22222222222222(buffer, 1, enableDisable);
                                                          if (password && password !== "") {
                                                            encodeContextCharacterString22222222222222(buffer, 2, password);
                                                          }
                                                        };
                                                        var decode922222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let value = {};
                                                          let decodedValue;
                                                          let result;
                                                          if (decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            value.timeDuration = decodedValue.value;
                                                            len += decodedValue.len;
                                                          }
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          value.enableDisable = decodedValue.value;
                                                          len += decodedValue.len;
                                                          if (len < apduLen) {
                                                            if (!decodeIsContextTag22222222222222(buffer, offset + len, 2)) {
                                                              return void 0;
                                                            }
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeCharacterString22222222222222(
                                                              buffer,
                                                              offset + len,
                                                              apduLen - (offset + len),
                                                              result.value
                                                            );
                                                            value.password = decodedValue.value;
                                                            len += decodedValue.len;
                                                          }
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var error_exports22222222222222 = {};
                                                        __export22222222222222(error_exports22222222222222, {
                                                          buildMessage: () => buildMessage22222222222222,
                                                          decode: () => decode1022222222222222,
                                                          encode: () => encode1022222222222222
                                                        });
                                                        var encode1022222222222222 = (buffer, errorClass, errorCode) => {
                                                          encodeApplicationEnumerated22222222222222(buffer, errorClass);
                                                          encodeApplicationEnumerated22222222222222(buffer, errorCode);
                                                        };
                                                        var decode1022222222222222 = (buffer, offset) => {
                                                          const orgOffset = offset;
                                                          let result;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset);
                                                          offset += result.len;
                                                          const errorClass = decodeEnumerated22222222222222(buffer, offset, result.value);
                                                          offset += errorClass.len;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset);
                                                          offset += result.len;
                                                          const errorCode = decodeEnumerated22222222222222(buffer, offset, result.value);
                                                          offset += errorClass.len;
                                                          return {
                                                            len: offset - orgOffset,
                                                            class: errorClass.value,
                                                            code: errorCode.value
                                                          };
                                                        };
                                                        var buildMessage22222222222222 = function(result) {
                                                          return "BacnetError Class: " + ErrorClassName22222222222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName22222222222222[result.code] + " (" + result.code + ")";
                                                        };
                                                        var event_information_exports22222222222222 = {};
                                                        __export22222222222222(event_information_exports22222222222222, {
                                                          decode: () => decode1122222222222222,
                                                          encode: () => encode1122222222222222
                                                        });
                                                        var encode1122222222222222 = (buffer, events, moreEvents) => {
                                                          encodeOpeningTag22222222222222(buffer, 0);
                                                          events.forEach((event) => {
                                                            encodeContextObjectId22222222222222(
                                                              buffer,
                                                              0,
                                                              event.objectId.type,
                                                              event.objectId.instance
                                                            );
                                                            encodeContextEnumerated22222222222222(buffer, 1, event.eventState);
                                                            encodeContextBitstring22222222222222(buffer, 2, event.acknowledgedTransitions);
                                                            encodeOpeningTag22222222222222(buffer, 3);
                                                            for (let i = 0; i < 3; i++) {
                                                              encodeApplicationDate22222222222222(buffer, event.eventTimeStamps[i]);
                                                              encodeApplicationTime22222222222222(buffer, event.eventTimeStamps[i]);
                                                            }
                                                            encodeClosingTag22222222222222(buffer, 3);
                                                            encodeContextEnumerated22222222222222(buffer, 4, event.notifyType);
                                                            encodeContextBitstring22222222222222(buffer, 5, event.eventEnable);
                                                            encodeOpeningTag22222222222222(buffer, 6);
                                                            for (let i = 0; i < 3; i++) {
                                                              encodeApplicationUnsigned22222222222222(buffer, event.eventPriorities[i]);
                                                            }
                                                            encodeClosingTag22222222222222(buffer, 6);
                                                          });
                                                          encodeClosingTag22222222222222(buffer, 0);
                                                          encodeContextBoolean22222222222222(buffer, 1, moreEvents);
                                                        };
                                                        var decode1122222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          len++;
                                                          const alarms = [];
                                                          let moreEvents;
                                                          while (apduLen - 3 - len > 0) {
                                                            let value = {};
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            value.objectId = {
                                                              type: decodedValue.objectType,
                                                              instance: decodedValue.instance
                                                            };
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.eventState = decodedValue.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeBitstring22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.acknowledgedTransitions = decodedValue.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            value.eventTimeStamps = [];
                                                            for (let i = 0; i < 3; i++) {
                                                              if (result.tagNumber !== 0) {
                                                                decodedValue = decodeApplicationDate22222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                const date = decodedValue.value.value;
                                                                decodedValue = decodeApplicationTime22222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                const time = decodedValue.value.value;
                                                                value.eventTimeStamps[i] = new Date(
                                                                  date.getFullYear(),
                                                                  date.getMonth(),
                                                                  date.getDate(),
                                                                  time.getHours(),
                                                                  time.getMinutes(),
                                                                  time.getSeconds(),
                                                                  time.getMilliseconds()
                                                                );
                                                              } else {
                                                                len += result.value;
                                                              }
                                                            }
                                                            len++;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.notifyType = decodedValue.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeBitstring22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.eventEnable = decodedValue.value;
                                                            len++;
                                                            value.eventPriorities = [];
                                                            for (let i = 0; i < 3; i++) {
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.eventPriorities[i] = decodedValue.value;
                                                            }
                                                            len++;
                                                            alarms.push(value);
                                                          }
                                                          moreEvents = buffer[apduLen - 1] === 1;
                                                          return {
                                                            len,
                                                            alarms,
                                                            moreEvents
                                                          };
                                                        };
                                                        var event_notify_data_exports22222222222222 = {};
                                                        __export22222222222222(event_notify_data_exports22222222222222, {
                                                          decode: () => decode1222222222222222,
                                                          encode: () => encode1222222222222222
                                                        });
                                                        var encode1222222222222222 = (buffer, data) => {
                                                          encodeContextUnsigned22222222222222(buffer, 0, data.processId);
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            1,
                                                            data.initiatingObjectId.type,
                                                            data.initiatingObjectId.instance
                                                          );
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            2,
                                                            data.eventObjectId.type,
                                                            data.eventObjectId.instance
                                                          );
                                                          bacappEncodeContextTimestamp22222222222222(buffer, 3, data.timeStamp);
                                                          encodeContextUnsigned22222222222222(buffer, 4, data.notificationClass);
                                                          encodeContextUnsigned22222222222222(buffer, 5, data.priority);
                                                          encodeContextEnumerated22222222222222(buffer, 6, data.eventType);
                                                          if (data.messageText && data.messageText !== "") {
                                                            encodeContextCharacterString22222222222222(buffer, 7, data.messageText);
                                                          }
                                                          encodeContextEnumerated22222222222222(buffer, 8, data.notifyType);
                                                          switch (data.notifyType) {
                                                            case 0:
                                                            case 1:
                                                              encodeContextBoolean22222222222222(buffer, 9, data.ackRequired);
                                                              encodeContextEnumerated22222222222222(buffer, 10, data.fromState);
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                          encodeContextEnumerated22222222222222(buffer, 11, data.toState);
                                                          switch (data.notifyType) {
                                                            case 0:
                                                            case 1:
                                                              encodeOpeningTag22222222222222(buffer, 12);
                                                              switch (data.eventType) {
                                                                case 0:
                                                                  encodeOpeningTag22222222222222(buffer, 0);
                                                                  encodeContextBitstring22222222222222(
                                                                    buffer,
                                                                    0,
                                                                    data.changeOfBitstringReferencedBitString
                                                                  );
                                                                  encodeContextBitstring22222222222222(
                                                                    buffer,
                                                                    1,
                                                                    data.changeOfBitstringStatusFlags
                                                                  );
                                                                  encodeClosingTag22222222222222(buffer, 0);
                                                                  break;
                                                                case 1:
                                                                  encodeOpeningTag22222222222222(buffer, 1);
                                                                  encodeOpeningTag22222222222222(buffer, 0);
                                                                  bacappEncodePropertyState22222222222222(buffer, data.changeOfStateNewState);
                                                                  encodeClosingTag22222222222222(buffer, 0);
                                                                  encodeContextBitstring22222222222222(
                                                                    buffer,
                                                                    1,
                                                                    data.changeOfStateStatusFlags
                                                                  );
                                                                  encodeClosingTag22222222222222(buffer, 1);
                                                                  break;
                                                                case 2:
                                                                  encodeOpeningTag22222222222222(buffer, 2);
                                                                  encodeOpeningTag22222222222222(buffer, 0);
                                                                  switch (data.changeOfValueTag) {
                                                                    case 0:
                                                                      encodeContextReal22222222222222(
                                                                        buffer,
                                                                        1,
                                                                        data.changeOfValueChangeValue
                                                                      );
                                                                      break;
                                                                    case 1:
                                                                      encodeContextBitstring22222222222222(
                                                                        buffer,
                                                                        0,
                                                                        data.changeOfValueChangedBits
                                                                      );
                                                                      break;
                                                                    default:
                                                                      throw new Error("NotImplemented");
                                                                  }
                                                                  encodeClosingTag22222222222222(buffer, 0);
                                                                  encodeContextBitstring22222222222222(
                                                                    buffer,
                                                                    1,
                                                                    data.changeOfValueStatusFlags
                                                                  );
                                                                  encodeClosingTag22222222222222(buffer, 2);
                                                                  break;
                                                                case 4:
                                                                  encodeOpeningTag22222222222222(buffer, 4);
                                                                  encodeContextReal22222222222222(buffer, 0, data.floatingLimitReferenceValue);
                                                                  encodeContextBitstring22222222222222(
                                                                    buffer,
                                                                    1,
                                                                    data.floatingLimitStatusFlags
                                                                  );
                                                                  encodeContextReal22222222222222(buffer, 2, data.floatingLimitSetPointValue);
                                                                  encodeContextReal22222222222222(buffer, 3, data.floatingLimitErrorLimit);
                                                                  encodeClosingTag22222222222222(buffer, 4);
                                                                  break;
                                                                case 5:
                                                                  encodeOpeningTag22222222222222(buffer, 5);
                                                                  encodeContextReal22222222222222(buffer, 0, data.outOfRangeExceedingValue);
                                                                  encodeContextBitstring22222222222222(buffer, 1, data.outOfRangeStatusFlags);
                                                                  encodeContextReal22222222222222(buffer, 2, data.outOfRangeDeadband);
                                                                  encodeContextReal22222222222222(buffer, 3, data.outOfRangeExceededLimit);
                                                                  encodeClosingTag22222222222222(buffer, 5);
                                                                  break;
                                                                case 8:
                                                                  encodeOpeningTag22222222222222(buffer, 8);
                                                                  encodeContextEnumerated22222222222222(
                                                                    buffer,
                                                                    0,
                                                                    data.changeOfLifeSafetyNewState
                                                                  );
                                                                  encodeContextEnumerated22222222222222(
                                                                    buffer,
                                                                    1,
                                                                    data.changeOfLifeSafetyNewMode
                                                                  );
                                                                  encodeContextBitstring22222222222222(
                                                                    buffer,
                                                                    2,
                                                                    data.changeOfLifeSafetyStatusFlags
                                                                  );
                                                                  encodeContextEnumerated22222222222222(
                                                                    buffer,
                                                                    3,
                                                                    data.changeOfLifeSafetyOperationExpected
                                                                  );
                                                                  encodeClosingTag22222222222222(buffer, 8);
                                                                  break;
                                                                case 10:
                                                                  encodeOpeningTag22222222222222(buffer, 10);
                                                                  bacappEncodeContextDeviceObjPropertyRef22222222222222(
                                                                    buffer,
                                                                    0,
                                                                    data.bufferReadyBufferProperty
                                                                  );
                                                                  encodeContextUnsigned22222222222222(
                                                                    buffer,
                                                                    1,
                                                                    data.bufferReadyPreviousNotification
                                                                  );
                                                                  encodeContextUnsigned22222222222222(
                                                                    buffer,
                                                                    2,
                                                                    data.bufferReadyCurrentNotification
                                                                  );
                                                                  encodeClosingTag22222222222222(buffer, 10);
                                                                  break;
                                                                case 11:
                                                                  encodeOpeningTag22222222222222(buffer, 11);
                                                                  encodeContextUnsigned22222222222222(
                                                                    buffer,
                                                                    0,
                                                                    data.unsignedRangeExceedingValue
                                                                  );
                                                                  encodeContextBitstring22222222222222(
                                                                    buffer,
                                                                    1,
                                                                    data.unsignedRangeStatusFlags
                                                                  );
                                                                  encodeContextUnsigned22222222222222(
                                                                    buffer,
                                                                    2,
                                                                    data.unsignedRangeExceededLimit
                                                                  );
                                                                  encodeClosingTag22222222222222(buffer, 11);
                                                                  break;
                                                                case 9:
                                                                case 3:
                                                                  throw new Error("NotImplemented");
                                                                default:
                                                                  throw new Error("NotImplemented");
                                                              }
                                                              encodeClosingTag22222222222222(buffer, 12);
                                                              break;
                                                            case 2:
                                                              throw new Error("NotImplemented");
                                                            default:
                                                              break;
                                                          }
                                                        };
                                                        var decode1222222222222222 = (buffer, offset) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let eventData = {};
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          eventData.processId = decodedValue.value;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          eventData.initiatingObjectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 2)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          eventData.eventObjectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 3)) {
                                                            return void 0;
                                                          }
                                                          len += 2;
                                                          decodedValue = decodeApplicationDate22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          const date = decodedValue.value.value;
                                                          decodedValue = decodeApplicationTime22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          const time = decodedValue.value.value;
                                                          eventData.timeStamp = new Date(
                                                            date.getFullYear(),
                                                            date.getMonth(),
                                                            date.getDate(),
                                                            time.getHours(),
                                                            time.getMinutes(),
                                                            time.getSeconds(),
                                                            time.getMilliseconds()
                                                          );
                                                          len += 2;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 4)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          eventData.notificationClass = decodedValue.value;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 5)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          eventData.priority = decodedValue.value;
                                                          if (eventData.priority > 255) {
                                                            return void 0;
                                                          }
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 6)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          eventData.eventType = decodedValue.value;
                                                          if (decodeIsContextTag22222222222222(buffer, offset + len, 7)) {
                                                            decodedValue = decodeContextCharacterString22222222222222(
                                                              buffer,
                                                              offset + len,
                                                              2e4,
                                                              7
                                                            );
                                                            len += decodedValue.len;
                                                            eventData.messageText = decodedValue.value;
                                                          }
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 8)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          eventData.notifyType = decodedValue.value;
                                                          switch (eventData.notifyType) {
                                                            case 0:
                                                            case 1:
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned22222222222222(buffer, offset + len, 1);
                                                              len += decodedValue.len;
                                                              eventData.ackRequired = decodedValue.value > 0;
                                                              if (!decodeIsContextTag22222222222222(buffer, offset + len, 10)) {
                                                                return void 0;
                                                              }
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeEnumerated22222222222222(
                                                                buffer,
                                                                offset + len,
                                                                result.value
                                                              );
                                                              len += decodedValue.len;
                                                              eventData.fromState = decodedValue.value;
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 11)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          eventData.toState = decodedValue.value;
                                                          eventData.len = len;
                                                          return eventData;
                                                        };
                                                        var get_enrollment_summary_exports22222222222222 = {};
                                                        __export22222222222222(get_enrollment_summary_exports22222222222222, {
                                                          decode: () => decode1322222222222222,
                                                          decodeAcknowledge: () => decodeAcknowledge322222222222222,
                                                          encode: () => encode1322222222222222,
                                                          encodeAcknowledge: () => encodeAcknowledge422222222222222
                                                        });
                                                        var encode1322222222222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                                                          encodeContextEnumerated22222222222222(buffer, 0, acknowledgmentFilter);
                                                          if (enrollmentFilter) {
                                                            encodeOpeningTag22222222222222(buffer, 1);
                                                            encodeOpeningTag22222222222222(buffer, 0);
                                                            encodeContextObjectId22222222222222(
                                                              buffer,
                                                              0,
                                                              enrollmentFilter.objectId.type,
                                                              enrollmentFilter.objectId.instance
                                                            );
                                                            encodeClosingTag22222222222222(buffer, 0);
                                                            encodeContextUnsigned22222222222222(buffer, 1, enrollmentFilter.processId);
                                                            encodeClosingTag22222222222222(buffer, 1);
                                                          }
                                                          if (eventStateFilter) {
                                                            encodeOpeningTag22222222222222(buffer, 2);
                                                            encodeContextEnumerated22222222222222(buffer, 0, eventStateFilter);
                                                            encodeClosingTag22222222222222(buffer, 2);
                                                          }
                                                          if (eventTypeFilter) {
                                                            encodeOpeningTag22222222222222(buffer, 3);
                                                            encodeContextEnumerated22222222222222(buffer, 0, eventTypeFilter);
                                                            encodeClosingTag22222222222222(buffer, 3);
                                                          }
                                                          if (priorityFilter) {
                                                            encodeOpeningTag22222222222222(buffer, 4);
                                                            encodeContextUnsigned22222222222222(buffer, 0, priorityFilter.min);
                                                            encodeContextUnsigned22222222222222(buffer, 1, priorityFilter.max);
                                                            encodeClosingTag22222222222222(buffer, 4);
                                                          }
                                                          if (notificationClassFilter) {
                                                            encodeOpeningTag22222222222222(buffer, 5);
                                                            encodeContextUnsigned22222222222222(buffer, 0, notificationClassFilter);
                                                            encodeClosingTag22222222222222(buffer, 5);
                                                          }
                                                        };
                                                        var decode1322222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let value = {};
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.acknowledgmentFilter = decodedValue.value;
                                                          if (decodeIsContextTag22222222222222(buffer, offset + len, 1)) {
                                                            len++;
                                                            value.enrollmentFilter = {};
                                                            if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                              return void 0;
                                                            }
                                                            len++;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            value.enrollmentFilter.objectId = {
                                                              type: decodedValue.objectType,
                                                              instance: decodedValue.instance
                                                            };
                                                            len++;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.enrollmentFilter.processId = decodedValue.value;
                                                            len++;
                                                          }
                                                          if (decodeIsContextTag22222222222222(buffer, offset + len, 2)) {
                                                            len++;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.eventStateFilter = decodedValue.value;
                                                            len++;
                                                          }
                                                          if (decodeIsContextTag22222222222222(buffer, offset + len, 3)) {
                                                            len++;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.eventTypeFilter = decodedValue.value;
                                                            len++;
                                                          }
                                                          if (decodeIsContextTag22222222222222(buffer, offset + len, 4)) {
                                                            len++;
                                                            value.priorityFilter = {};
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.priorityFilter.min = decodedValue.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.priorityFilter.max = decodedValue.value;
                                                            len++;
                                                          }
                                                          if (decodeIsContextTag22222222222222(buffer, offset + len, 5)) {
                                                            len++;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.notificationClassFilter = decodedValue.value;
                                                            len++;
                                                          }
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var encodeAcknowledge422222222222222 = (buffer, enrollmentSummaries) => {
                                                          enrollmentSummaries.forEach((enrollmentSummary) => {
                                                            encodeApplicationObjectId22222222222222(
                                                              buffer,
                                                              enrollmentSummary.objectId.type,
                                                              enrollmentSummary.objectId.instance
                                                            );
                                                            encodeApplicationEnumerated22222222222222(buffer, enrollmentSummary.eventType);
                                                            encodeApplicationEnumerated22222222222222(buffer, enrollmentSummary.eventState);
                                                            encodeApplicationUnsigned22222222222222(buffer, enrollmentSummary.priority);
                                                            encodeApplicationUnsigned22222222222222(
                                                              buffer,
                                                              enrollmentSummary.notificationClass
                                                            );
                                                          });
                                                        };
                                                        var decodeAcknowledge322222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          const enrollmentSummaries = [];
                                                          while (apduLen - len > 0) {
                                                            const enrollmentSummary = {};
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 12) {
                                                              return void 0;
                                                            }
                                                            result = decodeObjectId22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            enrollmentSummary.objectId = {
                                                              type: result.objectType,
                                                              instance: result.instance
                                                            };
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 9) {
                                                              return void 0;
                                                            }
                                                            result = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            len += result.len;
                                                            enrollmentSummary.eventType = result.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 9) {
                                                              return void 0;
                                                            }
                                                            result = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            len += result.len;
                                                            enrollmentSummary.eventState = result.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 2) {
                                                              return void 0;
                                                            }
                                                            result = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += result.len;
                                                            enrollmentSummary.priority = result.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 2) {
                                                              return void 0;
                                                            }
                                                            result = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += result.len;
                                                            enrollmentSummary.notificationClass = result.value;
                                                            enrollmentSummaries.push(enrollmentSummary);
                                                          }
                                                          return {
                                                            enrollmentSummaries,
                                                            len
                                                          };
                                                        };
                                                        var get_event_information_exports22222222222222 = {};
                                                        __export22222222222222(get_event_information_exports22222222222222, {
                                                          decode: () => decode1422222222222222,
                                                          decodeAcknowledge: () => decodeAcknowledge422222222222222,
                                                          encode: () => encode1422222222222222,
                                                          encodeAcknowledge: () => encodeAcknowledge522222222222222
                                                        });
                                                        var encode1422222222222222 = (buffer, lastReceivedObjectId) => {
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            0,
                                                            lastReceivedObjectId.type,
                                                            lastReceivedObjectId.instance
                                                          );
                                                        };
                                                        var decode1422222222222222 = (buffer, offset) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let value = {};
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          value.lastReceivedObjectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var encodeAcknowledge522222222222222 = (buffer, events, moreEvents) => {
                                                          encodeOpeningTag22222222222222(buffer, 0);
                                                          events.forEach((eventData) => {
                                                            encodeContextObjectId22222222222222(
                                                              buffer,
                                                              0,
                                                              eventData.objectId.type,
                                                              eventData.objectId.instance
                                                            );
                                                            encodeContextEnumerated22222222222222(buffer, 1, eventData.eventState);
                                                            encodeContextBitstring22222222222222(buffer, 2, eventData.acknowledgedTransitions);
                                                            encodeOpeningTag22222222222222(buffer, 3);
                                                            for (let i = 0; i < 3; i++) {
                                                              bacappEncodeTimestamp22222222222222(buffer, eventData.eventTimeStamps[i]);
                                                            }
                                                            encodeClosingTag22222222222222(buffer, 3);
                                                            encodeContextEnumerated22222222222222(buffer, 4, eventData.notifyType);
                                                            encodeContextBitstring22222222222222(buffer, 5, eventData.eventEnable);
                                                            encodeOpeningTag22222222222222(buffer, 6);
                                                            for (let i = 0; i < 3; i++) {
                                                              encodeApplicationUnsigned22222222222222(buffer, eventData.eventPriorities[i]);
                                                            }
                                                            encodeClosingTag22222222222222(buffer, 6);
                                                          });
                                                          encodeClosingTag22222222222222(buffer, 0);
                                                          encodeContextBoolean22222222222222(buffer, 1, moreEvents);
                                                        };
                                                        var decodeAcknowledge422222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let value = {};
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          value.events = [];
                                                          while (apduLen - len > 3) {
                                                            let event = {};
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            event.objectId = {
                                                              type: decodedValue.objectType,
                                                              instance: decodedValue.instance
                                                            };
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            event.eventState = decodedValue.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeBitstring22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            event.acknowledgedTransitions = decodedValue.value;
                                                            if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 3)) {
                                                              return void 0;
                                                            }
                                                            len++;
                                                            event.eventTimeStamps = [];
                                                            for (let i = 0; i < 3; i++) {
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              if (result.tagNumber === 0) {
                                                                decodedValue = decodeBacnetTime22222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  result.value
                                                                );
                                                                len += decodedValue.len;
                                                                event.eventTimeStamps[i] = {
                                                                  value: decodedValue.value,
                                                                  type: 0
                                                                  /* TIME */
                                                                };
                                                              } else if (result.tagNumber === 1) {
                                                                decodedValue = decodeUnsigned22222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  result.value
                                                                );
                                                                len += decodedValue.len;
                                                                event.eventTimeStamps[i] = {
                                                                  value: decodedValue.value,
                                                                  type: 1
                                                                  /* SEQUENCE_NUMBER */
                                                                };
                                                              } else if (result.tagNumber === 2) {
                                                                let date = decodeApplicationDate22222222222222(
                                                                  buffer,
                                                                  offset + len
                                                                );
                                                                len += date.len;
                                                                date = date.value.value;
                                                                let time = decodeApplicationTime22222222222222(
                                                                  buffer,
                                                                  offset + len
                                                                );
                                                                len += time.len;
                                                                time = time.value.value;
                                                                event.eventTimeStamps[i] = {
                                                                  value: new Date(
                                                                    date.getFullYear(),
                                                                    date.getMonth(),
                                                                    date.getDate(),
                                                                    time.getHours(),
                                                                    time.getMinutes(),
                                                                    time.getSeconds(),
                                                                    time.getMilliseconds()
                                                                  ),
                                                                  type: 2
                                                                  /* DATETIME */
                                                                };
                                                                len++;
                                                              }
                                                            }
                                                            if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 3)) {
                                                              return void 0;
                                                            }
                                                            len++;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            event.notifyType = decodedValue.value;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeBitstring22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            event.eventEnable = decodedValue.value;
                                                            if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 6)) {
                                                              return void 0;
                                                            }
                                                            len++;
                                                            event.eventPriorities = [];
                                                            for (let i = 0; i < 3; i++) {
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              event.eventPriorities[i] = decodedValue.value;
                                                            }
                                                            if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 6)) {
                                                              return void 0;
                                                            }
                                                            len++;
                                                            value.events.push(event);
                                                          }
                                                          if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          value.moreEvents = buffer[offset + len] > 0;
                                                          len++;
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var i_am_exports22222222222222 = {};
                                                        __export22222222222222(i_am_exports22222222222222, {
                                                          decode: () => decode1522222222222222,
                                                          encode: () => encode1522222222222222
                                                        });
                                                        var encode1522222222222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                                                          encodeApplicationObjectId22222222222222(buffer, 8, deviceId);
                                                          encodeApplicationUnsigned22222222222222(buffer, maxApdu);
                                                          encodeApplicationEnumerated22222222222222(buffer, segmentation);
                                                          encodeApplicationUnsigned22222222222222(buffer, vendorId);
                                                        };
                                                        var decode1522222222222222 = (buffer, offset) => {
                                                          let result;
                                                          let apduLen = 0;
                                                          const orgOffset = offset;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + apduLen);
                                                          apduLen += result.len;
                                                          if (result.tagNumber !== 12) {
                                                            return void 0;
                                                          }
                                                          result = decodeObjectId22222222222222(buffer, offset + apduLen);
                                                          apduLen += result.len;
                                                          if (result.objectType !== 8) {
                                                            return void 0;
                                                          }
                                                          const deviceId = result.instance;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + apduLen);
                                                          apduLen += result.len;
                                                          if (result.tagNumber !== 2) {
                                                            return void 0;
                                                          }
                                                          result = decodeUnsigned22222222222222(buffer, offset + apduLen, result.value);
                                                          apduLen += result.len;
                                                          const maxApdu = result.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + apduLen);
                                                          apduLen += result.len;
                                                          if (result.tagNumber !== 9) {
                                                            return void 0;
                                                          }
                                                          result = decodeEnumerated22222222222222(buffer, offset + apduLen, result.value);
                                                          apduLen += result.len;
                                                          if (result.value > 3) {
                                                            return void 0;
                                                          }
                                                          const segmentation = result.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + apduLen);
                                                          apduLen += result.len;
                                                          if (result.tagNumber !== 2) {
                                                            return void 0;
                                                          }
                                                          result = decodeUnsigned22222222222222(buffer, offset + apduLen, result.value);
                                                          apduLen += result.len;
                                                          if (result.value > 65535) {
                                                            return void 0;
                                                          }
                                                          const vendorId = result.value;
                                                          return {
                                                            len: offset - orgOffset,
                                                            deviceId,
                                                            maxApdu,
                                                            segmentation,
                                                            vendorId
                                                          };
                                                        };
                                                        var i_have_exports22222222222222 = {};
                                                        __export22222222222222(i_have_exports22222222222222, {
                                                          decode: () => decode1622222222222222,
                                                          encode: () => encode1622222222222222
                                                        });
                                                        var encode1622222222222222 = (buffer, deviceId, objectId, objectName) => {
                                                          encodeApplicationObjectId22222222222222(buffer, deviceId.type, deviceId.instance);
                                                          encodeApplicationObjectId22222222222222(buffer, objectId.type, objectId.instance);
                                                          encodeApplicationCharacterString22222222222222(buffer, objectName);
                                                        };
                                                        var decode1622222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let value = {};
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          value.deviceId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          value.objectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeCharacterString22222222222222(
                                                            buffer,
                                                            offset + len,
                                                            apduLen - (offset + len),
                                                            result.value
                                                          );
                                                          len += decodedValue.len;
                                                          value.objectName = decodedValue.value;
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var life_safety_operation_exports22222222222222 = {};
                                                        __export22222222222222(life_safety_operation_exports22222222222222, {
                                                          decode: () => decode1722222222222222,
                                                          encode: () => encode1722222222222222
                                                        });
                                                        var encode1722222222222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                                                          encodeContextUnsigned22222222222222(buffer, 0, processId);
                                                          encodeContextCharacterString22222222222222(buffer, 1, requestingSource);
                                                          encodeContextEnumerated22222222222222(buffer, 2, operation);
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            3,
                                                            targetObjectId.type,
                                                            targetObjectId.instance
                                                          );
                                                        };
                                                        var decode1722222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let value = {};
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.processId = decodedValue.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeCharacterString22222222222222(
                                                            buffer,
                                                            offset + len,
                                                            apduLen - (offset + len),
                                                            result.value
                                                          );
                                                          len += decodedValue.len;
                                                          value.requestingSource = decodedValue.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.operation = decodedValue.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          value.targetObjectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var private_transfer_exports22222222222222 = {};
                                                        __export22222222222222(private_transfer_exports22222222222222, {
                                                          decode: () => decode1822222222222222,
                                                          encode: () => encode1822222222222222
                                                        });
                                                        var encode1822222222222222 = (buffer, vendorId, serviceNumber, data) => {
                                                          encodeContextUnsigned22222222222222(buffer, 0, vendorId);
                                                          encodeContextUnsigned22222222222222(buffer, 1, serviceNumber);
                                                          encodeOpeningTag22222222222222(buffer, 2);
                                                          for (let i = 0; i < data.length; i++) {
                                                            buffer.buffer[buffer.offset++] = data[i];
                                                          }
                                                          encodeClosingTag22222222222222(buffer, 2);
                                                        };
                                                        var decode1822222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let value = {};
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.vendorId = decodedValue.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.serviceNumber = decodedValue.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          const size = apduLen - (offset + len + 1);
                                                          const data = [];
                                                          for (let i = 0; i < size; i++) {
                                                            data.push(buffer[offset + len++]);
                                                          }
                                                          value.data = data;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var read_property_exports22222222222222 = {};
                                                        __export22222222222222(read_property_exports22222222222222, {
                                                          decode: () => decode1922222222222222,
                                                          decodeAcknowledge: () => decodeAcknowledge522222222222222,
                                                          encode: () => encode1922222222222222,
                                                          encodeAcknowledge: () => encodeAcknowledge622222222222222
                                                        });
                                                        var encode1922222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                                                          if (objectType <= ASN1_MAX_OBJECT22222222222222) {
                                                            encodeContextObjectId22222222222222(buffer, 0, objectType, objectInstance);
                                                          }
                                                          if (propertyId <= ASN1_MAX_PROPERTY_ID22222222222222) {
                                                            encodeContextEnumerated22222222222222(buffer, 1, propertyId);
                                                          }
                                                          if (arrayIndex !== ASN1_ARRAY_ALL22222222222222) {
                                                            encodeContextUnsigned22222222222222(
                                                              buffer,
                                                              2,
                                                              arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL22222222222222
                                                            );
                                                          }
                                                        };
                                                        var decode1922222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          if (apduLen < 7) {
                                                            return void 0;
                                                          }
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          let objectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          let property = {};
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 1) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          property.id = decodedValue.value;
                                                          property.index = ASN1_ARRAY_ALL22222222222222;
                                                          if (len < apduLen) {
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber === 2 && len < apduLen) {
                                                              decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              property.index = decodedValue.value;
                                                            } else {
                                                              return void 0;
                                                            }
                                                          }
                                                          if (len < apduLen) {
                                                            return void 0;
                                                          }
                                                          return {
                                                            len,
                                                            objectId,
                                                            property
                                                          };
                                                        };
                                                        var encodeAcknowledge622222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                          encodeContextObjectId22222222222222(buffer, 0, objectId.type, objectId.instance);
                                                          encodeContextEnumerated22222222222222(buffer, 1, propertyId);
                                                          if (arrayIndex !== ASN1_ARRAY_ALL22222222222222) {
                                                            encodeContextUnsigned22222222222222(buffer, 2, arrayIndex);
                                                          }
                                                          encodeOpeningTag22222222222222(buffer, 3);
                                                          values.forEach((value) => {
                                                            bacappEncodeApplicationData22222222222222(buffer, value);
                                                          });
                                                          encodeClosingTag22222222222222(buffer, 3);
                                                        };
                                                        var decodeAcknowledge522222222222222 = (buffer, offset, apduLen) => {
                                                          let result;
                                                          let decodedValue;
                                                          let objectId = {};
                                                          let property = {};
                                                          if (!decodeIsContextTag22222222222222(buffer, offset, 0)) {
                                                            return void 0;
                                                          }
                                                          let len = 1;
                                                          result = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          objectId.type = result.objectType;
                                                          objectId.instance = result.instance;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 1) {
                                                            return void 0;
                                                          }
                                                          result = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += result.len;
                                                          property.id = result.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          if (result.tagNumber === 2) {
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            property.index = decodedValue.value;
                                                          } else {
                                                            property.index = ASN1_ARRAY_ALL22222222222222;
                                                          }
                                                          const values = [];
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 3)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          while (apduLen - len > 1) {
                                                            result = bacappDecodeApplicationData22222222222222(
                                                              buffer,
                                                              offset + len,
                                                              apduLen + offset,
                                                              objectId.type,
                                                              property.id
                                                            );
                                                            if (!result) {
                                                              return void 0;
                                                            }
                                                            len += result.len;
                                                            delete result.len;
                                                            values.push(result);
                                                          }
                                                          if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 3)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          return {
                                                            len,
                                                            objectId,
                                                            property,
                                                            values
                                                          };
                                                        };
                                                        var read_property_multiple_exports22222222222222 = {};
                                                        __export22222222222222(read_property_multiple_exports22222222222222, {
                                                          decode: () => decode2022222222222222,
                                                          decodeAcknowledge: () => decodeAcknowledge622222222222222,
                                                          encode: () => encode2022222222222222,
                                                          encodeAcknowledge: () => encodeAcknowledge722222222222222
                                                        });
                                                        var encode2022222222222222 = (buffer, properties) => {
                                                          properties.forEach((value) => {
                                                            encodeReadAccessSpecification22222222222222(buffer, value);
                                                          });
                                                        };
                                                        var decode2022222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          const values = [];
                                                          while (apduLen - len > 0) {
                                                            const decodedValue = decodeReadAccessSpecification22222222222222(
                                                              buffer,
                                                              offset + len,
                                                              apduLen - len
                                                            );
                                                            if (!decodedValue) {
                                                              return void 0;
                                                            }
                                                            len += decodedValue.len;
                                                            values.push(decodedValue.value);
                                                          }
                                                          return {
                                                            len,
                                                            properties: values
                                                          };
                                                        };
                                                        var encodeAcknowledge722222222222222 = (buffer, values) => {
                                                          values.forEach((value) => {
                                                            encodeReadAccessResult22222222222222(buffer, value);
                                                          });
                                                        };
                                                        var decodeAcknowledge622222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          const values = [];
                                                          while (apduLen - len > 0) {
                                                            const result = decodeReadAccessResult22222222222222(
                                                              buffer,
                                                              offset + len,
                                                              apduLen - len
                                                            );
                                                            if (!result || result === -1) {
                                                              return void 0;
                                                            }
                                                            len += result.len;
                                                            values.push(result.value);
                                                          }
                                                          return {
                                                            len,
                                                            values
                                                          };
                                                        };
                                                        var read_range_exports22222222222222 = {};
                                                        __export22222222222222(read_range_exports22222222222222, {
                                                          decode: () => decode2122222222222222,
                                                          decodeAcknowledge: () => decodeAcknowledge722222222222222,
                                                          encode: () => encode2122222222222222,
                                                          encodeAcknowledge: () => encodeAcknowledge822222222222222
                                                        });
                                                        var encode2122222222222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                                                          encodeContextObjectId22222222222222(buffer, 0, objectId.type, objectId.instance);
                                                          encodeContextEnumerated22222222222222(buffer, 1, propertyId);
                                                          if (arrayIndex !== ASN1_ARRAY_ALL22222222222222) {
                                                            encodeContextUnsigned22222222222222(buffer, 2, arrayIndex);
                                                          }
                                                          switch (requestType) {
                                                            case 0:
                                                              encodeOpeningTag22222222222222(buffer, 3);
                                                              encodeApplicationUnsigned22222222222222(buffer, position);
                                                              encodeApplicationSigned22222222222222(buffer, count);
                                                              encodeClosingTag22222222222222(buffer, 3);
                                                              break;
                                                            case 1:
                                                              encodeOpeningTag22222222222222(buffer, 6);
                                                              encodeApplicationUnsigned22222222222222(buffer, position);
                                                              encodeApplicationSigned22222222222222(buffer, count);
                                                              encodeClosingTag22222222222222(buffer, 6);
                                                              break;
                                                            case 2:
                                                              encodeOpeningTag22222222222222(buffer, 7);
                                                              encodeApplicationDate22222222222222(buffer, time);
                                                              encodeApplicationTime22222222222222(buffer, time);
                                                              encodeApplicationSigned22222222222222(buffer, count);
                                                              encodeClosingTag22222222222222(buffer, 7);
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                        };
                                                        var decode2122222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let requestType;
                                                          let position;
                                                          let time;
                                                          let count;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len, 0);
                                                          len += decodedValue.len;
                                                          let objectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          let property = {};
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 1) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          property.id = decodedValue.value;
                                                          if (len < apduLen && decodeIsContextTag22222222222222(buffer, offset + len, 2)) {
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            property.index = decodedValue.value;
                                                          } else {
                                                            property.index = ASN1_ARRAY_ALL22222222222222;
                                                          }
                                                          if (len < apduLen) {
                                                            result = decodeTagNumber22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            switch (result.tagNumber) {
                                                              case 3:
                                                                requestType = 0;
                                                                result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned22222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  result.value
                                                                );
                                                                len += decodedValue.len;
                                                                position = decodedValue.value;
                                                                result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeSigned22222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                count = decodedValue.value;
                                                                break;
                                                              case 6:
                                                                requestType = 1;
                                                                result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeUnsigned22222222222222(
                                                                  buffer,
                                                                  offset + len,
                                                                  result.value
                                                                );
                                                                len += decodedValue.len;
                                                                position = decodedValue.value;
                                                                result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeSigned22222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                count = decodedValue.value;
                                                                break;
                                                              case 7:
                                                                requestType = 2;
                                                                decodedValue = decodeApplicationDate22222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                const tmpDate = decodedValue.value.value;
                                                                decodedValue = decodeApplicationTime22222222222222(buffer, offset + len);
                                                                len += decodedValue.len;
                                                                const tmpTime = decodedValue.value.value;
                                                                time = new Date(
                                                                  tmpDate.getYear(),
                                                                  tmpDate.getMonth(),
                                                                  tmpDate.getDate(),
                                                                  tmpTime.getHours(),
                                                                  tmpTime.getMinutes(),
                                                                  tmpTime.getSeconds(),
                                                                  tmpTime.getMilliseconds()
                                                                );
                                                                result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                                len += result.len;
                                                                decodedValue = decodeSigned22222222222222(buffer, offset + len, result.value);
                                                                len += decodedValue.len;
                                                                count = decodedValue.value;
                                                                break;
                                                              default:
                                                                return void 0;
                                                            }
                                                            result = decodeTagNumber22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                          }
                                                          return {
                                                            len,
                                                            objectId,
                                                            property,
                                                            requestType,
                                                            position,
                                                            time,
                                                            count
                                                          };
                                                        };
                                                        var encodeAcknowledge822222222222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                                                          encodeContextObjectId22222222222222(buffer, 0, objectId.type, objectId.instance);
                                                          encodeContextEnumerated22222222222222(buffer, 1, propertyId);
                                                          if (arrayIndex !== ASN1_ARRAY_ALL22222222222222) {
                                                            encodeContextUnsigned22222222222222(buffer, 2, arrayIndex);
                                                          }
                                                          encodeContextBitstring22222222222222(buffer, 3, resultFlags);
                                                          encodeContextUnsigned22222222222222(buffer, 4, itemCount);
                                                          encodeOpeningTag22222222222222(buffer, 5);
                                                          if (itemCount !== 0) {
                                                            applicationData.copy(
                                                              buffer.buffer,
                                                              buffer.offset,
                                                              0,
                                                              applicationData.length
                                                            );
                                                            buffer.offset += applicationData.length;
                                                          }
                                                          encodeClosingTag22222222222222(buffer, 5);
                                                          if (itemCount !== 0 && requestType && requestType !== 0) {
                                                            encodeContextUnsigned22222222222222(buffer, 6, firstSequence);
                                                          }
                                                        };
                                                        var decodeAcknowledge722222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          const objectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          const property = { index: ASN1_ARRAY_ALL22222222222222 };
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 1) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          property.id = decodedValue.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          if (result.tagNumber === 2 && len < apduLen) {
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            property.index = decodedValue.value;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeBitstring22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          const resultFlag = decodedValue.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          const itemCount = decodedValue.value;
                                                          if (!decodeIsOpeningTag22222222222222(buffer, offset + len)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                                                          return {
                                                            objectId,
                                                            property,
                                                            resultFlag,
                                                            itemCount,
                                                            rangeBuffer,
                                                            len
                                                          };
                                                        };
                                                        var register_foreign_device_exports22222222222222 = {};
                                                        __export22222222222222(register_foreign_device_exports22222222222222, {
                                                          decode: () => decode2222222222222222,
                                                          encode: () => encode2222222222222222
                                                        });
                                                        var encode2222222222222222 = (buffer, ttl, length = 2) => {
                                                          encodeUnsigned22222222222222(buffer, ttl, length);
                                                        };
                                                        var decode2222222222222222 = (buffer, offset, length = 2) => {
                                                          let len = 0;
                                                          let result = decodeUnsigned22222222222222(buffer, offset + len, length);
                                                          len += result.len;
                                                          return {
                                                            len,
                                                            ttl: result.value
                                                          };
                                                        };
                                                        var reinitialize_device_exports22222222222222 = {};
                                                        __export22222222222222(reinitialize_device_exports22222222222222, {
                                                          decode: () => decode2322222222222222,
                                                          encode: () => encode2322222222222222
                                                        });
                                                        var encode2322222222222222 = (buffer, state, password) => {
                                                          encodeContextEnumerated22222222222222(buffer, 0, state);
                                                          if (password && password !== "") {
                                                            encodeContextCharacterString22222222222222(buffer, 1, password);
                                                          }
                                                        };
                                                        var decode2322222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let value = {};
                                                          let result;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          let decodedValue = decodeEnumerated22222222222222(
                                                            buffer,
                                                            offset + len,
                                                            result.value
                                                          );
                                                          value.state = decodedValue.value;
                                                          len += decodedValue.len;
                                                          if (len < apduLen) {
                                                            if (!decodeIsContextTag22222222222222(buffer, offset + len, 1)) {
                                                              return void 0;
                                                            }
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeCharacterString22222222222222(
                                                              buffer,
                                                              offset + len,
                                                              apduLen - (offset + len),
                                                              result.value
                                                            );
                                                            value.password = decodedValue.value;
                                                            len += decodedValue.len;
                                                          }
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var subscribe_cov_exports22222222222222 = {};
                                                        __export22222222222222(subscribe_cov_exports22222222222222, {
                                                          decode: () => decode2422222222222222,
                                                          encode: () => encode2422222222222222
                                                        });
                                                        var encode2422222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                                                          encodeContextUnsigned22222222222222(buffer, 0, subscriberProcessId);
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            1,
                                                            monitoredObjectId.type,
                                                            monitoredObjectId.instance
                                                          );
                                                          if (!cancellationRequest) {
                                                            encodeContextBoolean22222222222222(buffer, 2, issueConfirmedNotifications);
                                                            encodeContextUnsigned22222222222222(buffer, 3, lifetime);
                                                          }
                                                        };
                                                        var decode2422222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let value = {};
                                                          let result;
                                                          let decodedValue;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.subscriberProcessId = decodedValue.value;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          value.monitoredObjectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          value.cancellationRequest = true;
                                                          if (len < apduLen) {
                                                            value.issueConfirmedNotifications = false;
                                                            if (decodeIsContextTag22222222222222(buffer, offset + len, 2)) {
                                                              value.cancellationRequest = false;
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                              len++;
                                                            }
                                                            value.lifetime = 0;
                                                            if (decodeIsContextTag22222222222222(buffer, offset + len, 3)) {
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              value.lifetime = decodedValue.value;
                                                            }
                                                          }
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var subscribe_property_exports22222222222222 = {};
                                                        __export22222222222222(subscribe_property_exports22222222222222, {
                                                          decode: () => decode2522222222222222,
                                                          encode: () => encode2522222222222222
                                                        });
                                                        var encode2522222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                                                          encodeContextUnsigned22222222222222(buffer, 0, subscriberProcessId);
                                                          encodeContextObjectId22222222222222(
                                                            buffer,
                                                            1,
                                                            monitoredObjectId.type,
                                                            monitoredObjectId.instance
                                                          );
                                                          if (!cancellationRequest) {
                                                            encodeContextBoolean22222222222222(buffer, 2, issueConfirmedNotifications);
                                                            encodeContextUnsigned22222222222222(buffer, 3, lifetime);
                                                          }
                                                          encodeOpeningTag22222222222222(buffer, 4);
                                                          encodeContextEnumerated22222222222222(buffer, 0, monitoredProperty.id);
                                                          if (monitoredProperty.index !== ASN1_ARRAY_ALL22222222222222) {
                                                            encodeContextUnsigned22222222222222(buffer, 1, monitoredProperty.index);
                                                          }
                                                          encodeClosingTag22222222222222(buffer, 4);
                                                          if (covIncrementPresent) {
                                                            encodeContextReal22222222222222(buffer, 5, covIncrement);
                                                          }
                                                        };
                                                        var decode2522222222222222 = (buffer, offset) => {
                                                          let len = 0;
                                                          let value = {};
                                                          let result;
                                                          let decodedValue;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.subscriberProcessId = decodedValue.value;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          value.monitoredObjectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          value.cancellationRequest = true;
                                                          value.issueConfirmedNotifications = false;
                                                          if (decodeIsContextTag22222222222222(buffer, offset + len, 2)) {
                                                            value.cancellationRequest = false;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                            len++;
                                                          }
                                                          value.lifetime = 0;
                                                          if (decodeIsContextTag22222222222222(buffer, offset + len, 3)) {
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.lifetime = decodedValue.value;
                                                          }
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 4)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          value.monitoredProperty = {};
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.monitoredProperty.id = decodedValue.value;
                                                          value.monitoredProperty.index = ASN1_ARRAY_ALL22222222222222;
                                                          if (decodeIsContextTag22222222222222(buffer, offset + len, 1)) {
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.monitoredProperty.index = decodedValue.value;
                                                          }
                                                          if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 4)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          value.covIncrement = 0;
                                                          if (decodeIsContextTag22222222222222(buffer, offset + len, 5)) {
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeReal22222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            value.covIncrement = decodedValue.value;
                                                          }
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var time_sync_exports22222222222222 = {};
                                                        __export22222222222222(time_sync_exports22222222222222, {
                                                          decode: () => decode2622222222222222,
                                                          encode: () => encode2622222222222222
                                                        });
                                                        var encode2622222222222222 = (buffer, time) => {
                                                          encodeApplicationDate22222222222222(buffer, time);
                                                          encodeApplicationTime22222222222222(buffer, time);
                                                        };
                                                        var decode2622222222222222 = (buffer, offset, length) => {
                                                          let len = 0;
                                                          let result;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 10) {
                                                            return void 0;
                                                          }
                                                          const date = decodeDate22222222222222(buffer, offset + len);
                                                          len += date.len;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 11) {
                                                            return void 0;
                                                          }
                                                          const time = decodeBacnetTime22222222222222(buffer, offset + len);
                                                          len += time.len;
                                                          return {
                                                            len,
                                                            value: new Date(
                                                              date.value.getFullYear(),
                                                              date.value.getMonth(),
                                                              date.value.getDate(),
                                                              time.value.getHours(),
                                                              time.value.getMinutes(),
                                                              time.value.getSeconds(),
                                                              time.value.getMilliseconds()
                                                            )
                                                          };
                                                        };
                                                        var who_has_exports22222222222222 = {};
                                                        __export22222222222222(who_has_exports22222222222222, {
                                                          decode: () => decode2722222222222222,
                                                          encode: () => encode2722222222222222
                                                        });
                                                        var encode2722222222222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                                                          if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE22222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE22222222222222) {
                                                            encodeContextUnsigned22222222222222(buffer, 0, lowLimit);
                                                            encodeContextUnsigned22222222222222(buffer, 1, highLimit);
                                                          }
                                                          if (objectName && objectName !== "") {
                                                            encodeContextCharacterString22222222222222(buffer, 3, objectName);
                                                          } else {
                                                            encodeContextObjectId22222222222222(buffer, 2, objectId.type, objectId.instance);
                                                          }
                                                        };
                                                        var decode2722222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let value = {};
                                                          let decodedValue;
                                                          let result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber === 0) {
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            if (decodedValue.value <= ASN1_MAX_INSTANCE22222222222222) {
                                                              value.lowLimit = decodedValue.value;
                                                            }
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                          }
                                                          if (result.tagNumber === 1) {
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            if (decodedValue.value <= ASN1_MAX_INSTANCE22222222222222) {
                                                              value.highLimit = decodedValue.value;
                                                            }
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                          }
                                                          if (result.tagNumber === 2) {
                                                            decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            value.objectId = {
                                                              type: decodedValue.objectType,
                                                              instance: decodedValue.instance
                                                            };
                                                          }
                                                          if (result.tagNumber === 3) {
                                                            decodedValue = decodeCharacterString22222222222222(
                                                              buffer,
                                                              offset + len,
                                                              apduLen - (offset + len),
                                                              result.value
                                                            );
                                                            len += decodedValue.len;
                                                            value.objectName = decodedValue.value;
                                                          }
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var who_is_exports22222222222222 = {};
                                                        __export22222222222222(who_is_exports22222222222222, {
                                                          decode: () => decode2822222222222222,
                                                          encode: () => encode2822222222222222
                                                        });
                                                        var encode2822222222222222 = (buffer, lowLimit, highLimit) => {
                                                          if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE22222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE22222222222222) {
                                                            encodeContextUnsigned22222222222222(buffer, 0, lowLimit);
                                                            encodeContextUnsigned22222222222222(buffer, 1, highLimit);
                                                          }
                                                        };
                                                        var decode2822222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let value = {};
                                                          if (apduLen <= 0) {
                                                            return {};
                                                          }
                                                          let result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 0) {
                                                            return void 0;
                                                          }
                                                          if (apduLen <= len) {
                                                            return void 0;
                                                          }
                                                          let decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          if (decodedValue.value <= ASN1_MAX_INSTANCE22222222222222) {
                                                            value.lowLimit = decodedValue.value;
                                                          }
                                                          if (apduLen <= len) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 1) {
                                                            return void 0;
                                                          }
                                                          if (apduLen <= len) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          if (decodedValue.value <= ASN1_MAX_INSTANCE22222222222222) {
                                                            value.highLimit = decodedValue.value;
                                                          }
                                                          value.len = len;
                                                          return value;
                                                        };
                                                        var write_property_exports22222222222222 = {};
                                                        __export22222222222222(write_property_exports22222222222222, {
                                                          decode: () => decode2922222222222222,
                                                          encode: () => encode2922222222222222
                                                        });
                                                        var encode2922222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                                                          encodeContextObjectId22222222222222(buffer, 0, objectType, objectInstance);
                                                          encodeContextEnumerated22222222222222(buffer, 1, propertyId);
                                                          if (arrayIndex !== ASN1_ARRAY_ALL22222222222222) {
                                                            encodeContextUnsigned22222222222222(buffer, 2, arrayIndex);
                                                          }
                                                          encodeOpeningTag22222222222222(buffer, 3);
                                                          values.forEach((value) => {
                                                            bacappEncodeApplicationData22222222222222(buffer, value);
                                                          });
                                                          encodeClosingTag22222222222222(buffer, 3);
                                                          if (priority !== ASN1_NO_PRIORITY22222222222222) {
                                                            encodeContextUnsigned22222222222222(buffer, 4, priority);
                                                          }
                                                        };
                                                        var decode2922222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let value = {
                                                            property: {}
                                                          };
                                                          let decodedValue;
                                                          let result;
                                                          if (!decodeIsContextTag22222222222222(buffer, offset + len, 0)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          let objectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          len += decodedValue.len;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 1) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.property.id = decodedValue.value;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          if (result.tagNumber === 2) {
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            value.property.index = decodedValue.value;
                                                          } else {
                                                            value.property.index = ASN1_ARRAY_ALL22222222222222;
                                                          }
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 3)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          const values = [];
                                                          while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222222222(buffer, offset + len, 3)) {
                                                            decodedValue = bacappDecodeApplicationData22222222222222(
                                                              buffer,
                                                              offset + len,
                                                              apduLen + offset,
                                                              objectId.type,
                                                              value.property.id
                                                            );
                                                            if (!decodedValue) {
                                                              return void 0;
                                                            }
                                                            len += decodedValue.len;
                                                            delete decodedValue.len;
                                                            values.push(decodedValue);
                                                          }
                                                          value.value = values;
                                                          if (!decodeIsClosingTagNumber22222222222222(buffer, offset + len, 3)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          value.priority = ASN1_MAX_PRIORITY22222222222222;
                                                          if (len < apduLen) {
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            if (result.tagNumber === 4) {
                                                              len += result.len;
                                                              decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue;
                                                              if (decodedValue.value >= ASN1_MIN_PRIORITY22222222222222 && decodedValue.value <= ASN1_MAX_PRIORITY22222222222222) {
                                                                value.priority = decodedValue.value;
                                                              } else {
                                                                return void 0;
                                                              }
                                                            }
                                                          }
                                                          return {
                                                            len,
                                                            objectId,
                                                            value
                                                          };
                                                        };
                                                        var write_property_multiple_exports22222222222222 = {};
                                                        __export22222222222222(write_property_multiple_exports22222222222222, {
                                                          decode: () => decode3022222222222222,
                                                          encode: () => encode3022222222222222,
                                                          encodeObject: () => encodeObject22222222222222
                                                        });
                                                        var encode3022222222222222 = (buffer, objectId, values) => {
                                                          encodeContextObjectId22222222222222(buffer, 0, objectId.type, objectId.instance);
                                                          encodeOpeningTag22222222222222(buffer, 1);
                                                          values.forEach((pValue) => {
                                                            encodeContextEnumerated22222222222222(buffer, 0, pValue.property.id);
                                                            if (pValue.property.index !== ASN1_ARRAY_ALL22222222222222) {
                                                              encodeContextUnsigned22222222222222(buffer, 1, pValue.property.index);
                                                            }
                                                            encodeOpeningTag22222222222222(buffer, 2);
                                                            pValue.value.forEach((value) => {
                                                              bacappEncodeApplicationData22222222222222(buffer, value);
                                                            });
                                                            encodeClosingTag22222222222222(buffer, 2);
                                                            if (pValue.priority !== ASN1_NO_PRIORITY22222222222222) {
                                                              encodeContextUnsigned22222222222222(buffer, 3, pValue.priority);
                                                            }
                                                          });
                                                          encodeClosingTag22222222222222(buffer, 1);
                                                        };
                                                        var decode3022222222222222 = (buffer, offset, apduLen) => {
                                                          let len = 0;
                                                          let result;
                                                          let decodedValue;
                                                          let objectId;
                                                          result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 0 || apduLen <= len) {
                                                            return void 0;
                                                          }
                                                          apduLen -= len;
                                                          if (apduLen < 4) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeObjectId22222222222222(buffer, offset + len);
                                                          len += decodedValue.len;
                                                          objectId = {
                                                            type: decodedValue.objectType,
                                                            instance: decodedValue.instance
                                                          };
                                                          if (!decodeIsOpeningTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          const _values = [];
                                                          while (apduLen - len > 1) {
                                                            let newEntry = {};
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber !== 0) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeEnumerated22222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            let propertyId = decodedValue.value;
                                                            let arrayIndex = ASN1_ARRAY_ALL22222222222222;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber === 1) {
                                                              decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              arrayIndex = decodedValue.value;
                                                              result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                              len += result.len;
                                                            }
                                                            newEntry.property = { id: propertyId, index: arrayIndex };
                                                            if (result.tagNumber !== 2 || !decodeIsOpeningTag22222222222222(buffer, offset + len - 1)) {
                                                              return void 0;
                                                            }
                                                            const values = [];
                                                            while (len + offset <= buffer.length && !decodeIsClosingTag22222222222222(buffer, offset + len)) {
                                                              let value = bacappDecodeApplicationData22222222222222(
                                                                buffer,
                                                                offset + len,
                                                                apduLen + offset,
                                                                objectId.type,
                                                                propertyId
                                                              );
                                                              if (!value) {
                                                                return void 0;
                                                              }
                                                              len += value.len;
                                                              delete value.len;
                                                              values.push(value);
                                                            }
                                                            len++;
                                                            newEntry.value = values;
                                                            let priority = ASN1_NO_PRIORITY22222222222222;
                                                            result = decodeTagNumberAndValue22222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            if (result.tagNumber === 3) {
                                                              decodedValue = decodeUnsigned22222222222222(buffer, offset + len, result.value);
                                                              len += decodedValue.len;
                                                              priority = decodedValue.value;
                                                            } else {
                                                              len--;
                                                            }
                                                            newEntry.priority = priority;
                                                            _values.push(newEntry);
                                                            if (decodeIsClosingTagNumber22222222222222(buffer, offset + len, 1)) {
                                                              len++;
                                                            }
                                                          }
                                                          if (decodeIsClosingTagNumber22222222222222(buffer, offset + len, 1)) {
                                                            len++;
                                                          }
                                                          return {
                                                            len,
                                                            objectId,
                                                            values: _values
                                                          };
                                                        };
                                                        var encodeObject22222222222222 = (buffer, values) => {
                                                          values.forEach((object) => {
                                                            encode3022222222222222(buffer, object.objectId, object.values);
                                                          });
                                                        };
                                                        var getDecodedType22222222222222 = (buffer, offset) => {
                                                          return buffer[offset];
                                                        };
                                                        var encodeConfirmedServiceRequest22222222222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                                                          buffer.buffer[buffer.offset++] = type;
                                                          buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                                                          buffer.buffer[buffer.offset++] = invokeId;
                                                          if ((type & 8) > 0) {
                                                            buffer.buffer[buffer.offset++] = sequencenumber;
                                                            buffer.buffer[buffer.offset++] = proposedWindowSize;
                                                          }
                                                          buffer.buffer[buffer.offset++] = service;
                                                        };
                                                        var decodeConfirmedServiceRequest22222222222222 = (buffer, offset) => {
                                                          const orgOffset = offset;
                                                          const type = buffer[offset++];
                                                          const maxSegments = buffer[offset] & 240;
                                                          const maxApdu = buffer[offset++] & 15;
                                                          const invokeId = buffer[offset++];
                                                          let sequencenumber = 0;
                                                          let proposedWindowNumber = 0;
                                                          if ((type & 8) > 0) {
                                                            sequencenumber = buffer[offset++];
                                                            proposedWindowNumber = buffer[offset++];
                                                          }
                                                          const service = buffer[offset++];
                                                          return {
                                                            len: offset - orgOffset,
                                                            type,
                                                            service,
                                                            maxSegments,
                                                            maxApdu,
                                                            invokeId,
                                                            sequencenumber,
                                                            proposedWindowNumber
                                                          };
                                                        };
                                                        var encodeUnconfirmedServiceRequest22222222222222 = (buffer, type, service) => {
                                                          buffer.buffer[buffer.offset++] = type;
                                                          buffer.buffer[buffer.offset++] = service;
                                                        };
                                                        var decodeUnconfirmedServiceRequest22222222222222 = (buffer, offset) => {
                                                          const orgOffset = offset;
                                                          const type = buffer[offset++];
                                                          const service = buffer[offset++];
                                                          return {
                                                            len: offset - orgOffset,
                                                            type,
                                                            service
                                                          };
                                                        };
                                                        var encodeSimpleAck22222222222222 = (buffer, type, service, invokeId) => {
                                                          buffer.buffer[buffer.offset++] = type;
                                                          buffer.buffer[buffer.offset++] = invokeId;
                                                          buffer.buffer[buffer.offset++] = service;
                                                        };
                                                        var decodeSimpleAck22222222222222 = (buffer, offset) => {
                                                          const orgOffset = offset;
                                                          const type = buffer[offset++];
                                                          const invokeId = buffer[offset++];
                                                          const service = buffer[offset++];
                                                          return {
                                                            len: offset - orgOffset,
                                                            type,
                                                            service,
                                                            invokeId
                                                          };
                                                        };
                                                        var encodeComplexAck22222222222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                                                          let len = 3;
                                                          buffer.buffer[buffer.offset++] = type;
                                                          buffer.buffer[buffer.offset++] = invokeId;
                                                          if ((type & 8) > 0) {
                                                            buffer.buffer[buffer.offset++] = sequencenumber;
                                                            buffer.buffer[buffer.offset++] = proposedWindowNumber;
                                                            len += 2;
                                                          }
                                                          buffer.buffer[buffer.offset++] = service;
                                                          return len;
                                                        };
                                                        var decodeComplexAck22222222222222 = (buffer, offset) => {
                                                          const orgOffset = offset;
                                                          const type = buffer[offset++];
                                                          const invokeId = buffer[offset++];
                                                          let sequencenumber = 0;
                                                          let proposedWindowNumber = 0;
                                                          if ((type & 8) > 0) {
                                                            sequencenumber = buffer[offset++];
                                                            proposedWindowNumber = buffer[offset++];
                                                          }
                                                          const service = buffer[offset++];
                                                          return {
                                                            len: offset - orgOffset,
                                                            type,
                                                            service,
                                                            invokeId,
                                                            sequencenumber,
                                                            proposedWindowNumber
                                                          };
                                                        };
                                                        var encodeSegmentAck22222222222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                                                          buffer.buffer[buffer.offset++] = type;
                                                          buffer.buffer[buffer.offset++] = originalInvokeId;
                                                          buffer.buffer[buffer.offset++] = sequencenumber;
                                                          buffer.buffer[buffer.offset++] = actualWindowSize;
                                                        };
                                                        var decodeSegmentAck22222222222222 = (buffer, offset) => {
                                                          const orgOffset = offset;
                                                          const type = buffer[offset++];
                                                          const originalInvokeId = buffer[offset++];
                                                          const sequencenumber = buffer[offset++];
                                                          const actualWindowSize = buffer[offset++];
                                                          return {
                                                            len: offset - orgOffset,
                                                            type,
                                                            originalInvokeId,
                                                            sequencenumber,
                                                            actualWindowSize
                                                          };
                                                        };
                                                        var encodeResult22222222222222 = (buffer, resultCode) => {
                                                          encodeUnsigned22222222222222(buffer, resultCode, 2);
                                                        };
                                                        var encodeError22222222222222 = (buffer, type, service, invokeId) => {
                                                          buffer.buffer[buffer.offset++] = type;
                                                          buffer.buffer[buffer.offset++] = invokeId;
                                                          buffer.buffer[buffer.offset++] = service;
                                                        };
                                                        var decodeError22222222222222 = (buffer, offset) => {
                                                          const orgOffset = offset;
                                                          const type = buffer[offset++];
                                                          const invokeId = buffer[offset++];
                                                          const service = buffer[offset++];
                                                          return {
                                                            len: offset - orgOffset,
                                                            type,
                                                            service,
                                                            invokeId
                                                          };
                                                        };
                                                        var decodeAbort22222222222222 = (buffer, offset) => {
                                                          const orgOffset = offset;
                                                          const type = buffer[offset++];
                                                          const invokeId = buffer[offset++];
                                                          const reason = buffer[offset++];
                                                          return {
                                                            len: offset - orgOffset,
                                                            type,
                                                            invokeId,
                                                            reason
                                                          };
                                                        };
                                                        var DEFAULT_HOP_COUNT32222222222222 = 255;
                                                        var BACNET_PROTOCOL_VERSION22222222222222 = 1;
                                                        var BACNET_ADDRESS_TYPES22222222222222 = {
                                                          NONE: 0,
                                                          IP: 1
                                                        };
                                                        var decodeTarget22222222222222 = (buffer, offset) => {
                                                          let len = 0;
                                                          const target = {
                                                            type: BACNET_ADDRESS_TYPES22222222222222.NONE,
                                                            net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                                                          };
                                                          const adrLen = buffer[offset + len++];
                                                          if (adrLen > 0) {
                                                            target.adr = [];
                                                            for (let i = 0; i < adrLen; i++) {
                                                              target.adr.push(buffer[offset + len++]);
                                                            }
                                                          }
                                                          return {
                                                            target,
                                                            len
                                                          };
                                                        };
                                                        var encodeTarget22222222222222 = (buffer, target) => {
                                                          buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                                                          buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                                                          if (target.net === 65535 || !target.adr) {
                                                            buffer.buffer[buffer.offset++] = 0;
                                                          } else {
                                                            buffer.buffer[buffer.offset++] = target.adr.length;
                                                            if (target.adr.length > 0) {
                                                              for (let i = 0; i < target.adr.length; i++) {
                                                                buffer.buffer[buffer.offset++] = target.adr[i];
                                                              }
                                                            }
                                                          }
                                                        };
                                                        var decode3122222222222222 = (buffer, offset) => {
                                                          let adrLen;
                                                          const orgOffset = offset;
                                                          offset++;
                                                          const funct = buffer[offset++];
                                                          let destination;
                                                          if (funct & 32) {
                                                            const tmpDestination = decodeTarget22222222222222(buffer, offset);
                                                            offset += tmpDestination.len;
                                                            destination = tmpDestination.target;
                                                          }
                                                          let source;
                                                          if (funct & 8) {
                                                            const tmpSource = decodeTarget22222222222222(buffer, offset);
                                                            offset += tmpSource.len;
                                                            source = tmpSource.target;
                                                          }
                                                          let hopCount = 0;
                                                          if (funct & 32) {
                                                            hopCount = buffer[offset++];
                                                          }
                                                          let networkMsgType = 0;
                                                          let vendorId = 0;
                                                          if (funct & 128) {
                                                            networkMsgType = buffer[offset++];
                                                            if (networkMsgType >= 128) {
                                                              vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                                                            } else if (networkMsgType === 0) {
                                                              offset += 2;
                                                            }
                                                          }
                                                          if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION22222222222222) {
                                                            return void 0;
                                                          }
                                                          return {
                                                            len: offset - orgOffset,
                                                            funct,
                                                            destination,
                                                            source,
                                                            hopCount,
                                                            networkMsgType,
                                                            vendorId
                                                          };
                                                        };
                                                        var encode3122222222222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                                                          const hasDestination = destination && destination.net > 0;
                                                          const hasSource = source && source.net > 0 && source.net !== 65535;
                                                          buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION22222222222222;
                                                          buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                                                          if (hasDestination) {
                                                            encodeTarget22222222222222(buffer, destination);
                                                          }
                                                          if (hasSource) {
                                                            encodeTarget22222222222222(buffer, source);
                                                          }
                                                          if (hasDestination) {
                                                            buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT32222222222222;
                                                          }
                                                          if ((funct & 128) > 0) {
                                                            buffer.buffer[buffer.offset++] = networkMsgType;
                                                            if (networkMsgType >= 128) {
                                                              buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                                                              buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                                                            }
                                                          }
                                                        };
                                                        var DEFAULT_BACNET_PORT222222222222222 = 47808;
                                                        var encode3222222222222222 = (buffer, func, msgLength, originatingIP) => {
                                                          buffer[0] = BVLL_TYPE_BACNET_IP22222222222222;
                                                          buffer[1] = func;
                                                          buffer[2] = (msgLength & 65280) >> 8;
                                                          buffer[3] = (msgLength & 255) >> 0;
                                                          if (originatingIP) {
                                                            if (func !== 4) {
                                                              throw new Error(
                                                                "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                                                              );
                                                            }
                                                            const [ipstr, portstr] = originatingIP.split(":");
                                                            const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT222222222222222;
                                                            const ip = ipstr.split(".");
                                                            buffer[4] = parseInt(ip[0], 10);
                                                            buffer[5] = parseInt(ip[1], 10);
                                                            buffer[6] = parseInt(ip[2], 10);
                                                            buffer[7] = parseInt(ip[3], 10);
                                                            buffer[8] = (port & 65280) >> 8;
                                                            buffer[9] = (port & 255) >> 0;
                                                            return 6 + BVLC_HEADER_LENGTH32222222222222;
                                                          } else {
                                                            if (func === 4) {
                                                              throw new Error(
                                                                "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                                                              );
                                                            }
                                                          }
                                                          return BVLC_HEADER_LENGTH32222222222222;
                                                        };
                                                        var decode3222222222222222 = (buffer, _offset) => {
                                                          let len;
                                                          const func = buffer[1];
                                                          const msgLength = buffer[2] << 8 | buffer[3] << 0;
                                                          if (buffer[0] !== BVLL_TYPE_BACNET_IP22222222222222 || buffer.length !== msgLength) {
                                                            return void 0;
                                                          }
                                                          let originatingIP = null;
                                                          switch (func) {
                                                            case 0:
                                                            case 10:
                                                            case 11:
                                                            case 9:
                                                            case 5:
                                                            case 6:
                                                            case 8:
                                                            case 2:
                                                            case 1:
                                                            case 3:
                                                            case 7:
                                                              len = 4;
                                                              break;
                                                            case 4:
                                                              const port = buffer[8] << 8 | buffer[9];
                                                              originatingIP = buffer.slice(4, 8).join(".");
                                                              if (port !== DEFAULT_BACNET_PORT222222222222222) {
                                                                originatingIP += ":" + port;
                                                              }
                                                              len = 10;
                                                              break;
                                                            case 12:
                                                              return void 0;
                                                            default:
                                                              return void 0;
                                                          }
                                                          return {
                                                            len,
                                                            func,
                                                            msgLength,
                                                            // Originating IP is set to the IP address of the node that originally
                                                            // sent the packet, when it has been forwarded to us by a BBMD (since the
                                                            // BBMD's IP address will be in the sender field.
                                                            originatingIP
                                                          };
                                                        };
                                                        var EventEmitter222222222222222 = import_events222222222222222.default.EventEmitter;
                                                        var debug322222222222222 = (0, import_debug322222222222222.default)("bacnet:client:debug");
                                                        var trace222222222222222 = (0, import_debug322222222222222.default)("bacnet:client:trace");
                                                        var ALL_INTERFACES22222222222222 = "0.0.0.0";
                                                        var LOCALHOST_INTERFACES_IPV422222222222222 = "127.0.0.1";
                                                        var BROADCAST_ADDRESS22222222222222 = "255.255.255.255";
                                                        var DEFAULT_HOP_COUNT222222222222222 = 255;
                                                        var BVLC_HEADER_LENGTH222222222222222 = 4;
                                                        var BVLC_FWD_HEADER_LENGTH22222222222222 = 10;
                                                        var beU22222222222222 = UnconfirmedServiceChoice22222222222222;
                                                        var unconfirmedServiceMap22222222222222 = {
                                                          [beU22222222222222.I_AM]: "iAm",
                                                          [beU22222222222222.WHO_IS]: "whoIs",
                                                          [beU22222222222222.WHO_HAS]: "whoHas",
                                                          [beU22222222222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                                                          [beU22222222222222.TIME_SYNCHRONIZATION]: "timeSync",
                                                          [beU22222222222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                                                          [beU22222222222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                          [beU22222222222222.I_HAVE]: "iHave",
                                                          [beU22222222222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                        };
                                                        var beC22222222222222 = ConfirmedServiceChoice22222222222222;
                                                        var confirmedServiceMap22222222222222 = {
                                                          [beC22222222222222.READ_PROPERTY]: "readProperty",
                                                          [beC22222222222222.WRITE_PROPERTY]: "writeProperty",
                                                          [beC22222222222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                                                          [beC22222222222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                                                          [beC22222222222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                                                          [beC22222222222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                                                          [beC22222222222222.ATOMIC_READ_FILE]: "atomicReadFile",
                                                          [beC22222222222222.SUBSCRIBE_COV]: "subscribeCov",
                                                          [beC22222222222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                                                          [beC22222222222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                                                          [beC22222222222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                                                          [beC22222222222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                          [beC22222222222222.READ_RANGE]: "readRange",
                                                          [beC22222222222222.CREATE_OBJECT]: "createObject",
                                                          [beC22222222222222.DELETE_OBJECT]: "deleteObject",
                                                          [beC22222222222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                                                          [beC22222222222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                                                          [beC22222222222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                                                          [beC22222222222222.GET_EVENT_INFORMATION]: "getEventInformation",
                                                          [beC22222222222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                                                          [beC22222222222222.ADD_LIST_ELEMENT]: "addListElement",
                                                          [beC22222222222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                                                          [beC22222222222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                        };
                                                        var errorReasonEnums22222222222222 = {
                                                          BacnetAbort: RejectReason22222222222222
                                                        };
                                                        var BacnetError22222222222222 = class extends Error {
                                                          constructor(message, bacnetErrorClass, bacnetErrorCode) {
                                                            super(message);
                                                            this.bacnetErrorClass = bacnetErrorClass;
                                                            this.bacnetErrorCode = bacnetErrorCode;
                                                          }
                                                        };
                                                        function bacnetErrorToString22222222222222(err) {
                                                          var _a;
                                                          const isError = err instanceof Error || err instanceof BacnetError22222222222222;
                                                          if (!isError)
                                                            return;
                                                          const message = err.message;
                                                          const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                                                          const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                                                          if (!errorReasonEnums22222222222222[reasonClass])
                                                            return;
                                                          const reasonString = errorReasonEnums22222222222222[reasonClass][reason];
                                                          return reasonClass + ": " + reasonString;
                                                        }
                                                        var Client22222222222222 = class extends EventEmitter222222222222222 {
                                                          /**
                                                           *
                                                           * @param options
                                                           */
                                                          constructor(options) {
                                                            super();
                                                            options = options || {};
                                                            this._invokeCounter = 1;
                                                            this._invokeStore = {};
                                                            this._lastSequenceNumber = 0;
                                                            this._segmentStore = [];
                                                            this._settings = {
                                                              port: options.port || 47808,
                                                              interface: options.interface || ALL_INTERFACES22222222222222,
                                                              transport: options.transport,
                                                              broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS22222222222222,
                                                              apduTimeout: options.apduTimeout || 3e3
                                                            };
                                                            options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                                                            this._transport = this._settings.transport || new Transport22222222222222({
                                                              port: this._settings.port,
                                                              interface: this._settings.interface,
                                                              broadcastAddress: this._settings.broadcastAddress,
                                                              reuseAddr: options.reuseAddr
                                                            });
                                                            this._transport.on("message", this._receiveData.bind(this));
                                                            this._transport.on("error", this._receiveError.bind(this));
                                                            this._transport.on("listening", () => this.emit("listening"));
                                                            this._transport.open();
                                                          }
                                                          /**
                                                           *
                                                           * @returns {number}
                                                           * @private
                                                           */
                                                          _getInvokeId() {
                                                            const id = this._invokeCounter++;
                                                            if (id >= 256)
                                                              this._invokeCounter = 1;
                                                            return id - 1;
                                                          }
                                                          /**
                                                           *
                                                           * @param id
                                                           * @param err
                                                           * @param result
                                                           * @returns {*}
                                                           * @private
                                                           */
                                                          _invokeCallback(id, err, result) {
                                                            const callback = this._invokeStore[id];
                                                            if (callback) {
                                                              return void callback(err, result);
                                                            }
                                                            debug322222222222222("InvokeId", id, "not found -> drop package");
                                                          }
                                                          /**
                                                           *
                                                           * @param id
                                                           * @param callback
                                                           * @private
                                                           */
                                                          _addCallback(id, callback) {
                                                            const timeout = setTimeout(() => {
                                                              delete this._invokeStore[id];
                                                              callback(new Error("ERR_TIMEOUT"));
                                                            }, this._settings.apduTimeout);
                                                            this._invokeStore[id] = (err, data) => {
                                                              clearTimeout(timeout);
                                                              delete this._invokeStore[id];
                                                              callback(err, data);
                                                            };
                                                          }
                                                          /**
                                                           *
                                                           * @param isForwarded
                                                           * @returns {{offset: (number), buffer: *}}
                                                           * @private
                                                           */
                                                          _getBuffer(isForwarded) {
                                                            return Object.assign(
                                                              {},
                                                              {
                                                                buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                                                offset: isForwarded ? BVLC_FWD_HEADER_LENGTH22222222222222 : BVLC_HEADER_LENGTH222222222222222
                                                              }
                                                            );
                                                          }
                                                          /**
                                                           *
                                                           * @param invokeId
                                                           * @param buffer
                                                           * @param offset
                                                           * @param length
                                                           * @returns {*}
                                                           * @private
                                                           */
                                                          _processError(invokeId, buffer, offset, length) {
                                                            const result = error_exports22222222222222.decode(buffer, offset);
                                                            trace222222222222222("Received error:", result);
                                                            if (!result) {
                                                              return debug322222222222222("Couldn`t decode Error");
                                                            }
                                                            const err = new BacnetError22222222222222(error_exports22222222222222.buildMessage(result));
                                                            err.bacnetErrorClass = result.class;
                                                            err.bacnetErrorCode = result.code;
                                                            this._invokeCallback(invokeId, err);
                                                          }
                                                          /**
                                                           *
                                                           * @param invokeId
                                                           * @param reason
                                                           * @private
                                                           */
                                                          _processAbort(invokeId, reason) {
                                                            const err = new BacnetError22222222222222("BacnetAbort - Reason:" + reason);
                                                            err.bacnetAbortReason = reason;
                                                            err.bacnetErrorClass = AbortReason22222222222222;
                                                            this._invokeCallback(invokeId, err);
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param negative
                                                           * @param server
                                                           * @param originalInvokeId
                                                           * @param sequencenumber
                                                           * @param actualWindowSize
                                                           * @private
                                                           */
                                                          _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                                                            const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                            encode3122222222222222(
                                                              buffer,
                                                              0,
                                                              receiver,
                                                              null,
                                                              DEFAULT_HOP_COUNT222222222222222,
                                                              0,
                                                              0
                                                            );
                                                            encodeSegmentAck22222222222222(
                                                              buffer,
                                                              64 | (negative ? 2 : 0) | (server ? 1 : 0),
                                                              originalInvokeId,
                                                              sequencenumber,
                                                              actualWindowSize
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                          }
                                                          /**
                                                           *
                                                           * @param msg
                                                           * @param first
                                                           * @param moreFollows
                                                           * @param buffer
                                                           * @param offset
                                                           * @param length
                                                           * @private
                                                           */
                                                          _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                                                            if (first) {
                                                              this._segmentStore = [];
                                                              msg.type &= ~8;
                                                              let apduHeaderLen = 3;
                                                              if ((msg.type & PDU_TYPE_MASK22222222222222) === 0) {
                                                                apduHeaderLen = 4;
                                                              }
                                                              const apdubuffer = this._getBuffer();
                                                              apdubuffer.offset = 0;
                                                              buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                                                              if ((msg.type & PDU_TYPE_MASK22222222222222) === 0) {
                                                                encodeConfirmedServiceRequest22222222222222(
                                                                  apdubuffer,
                                                                  msg.type,
                                                                  msg.service,
                                                                  msg.maxSegments,
                                                                  msg.maxApdu,
                                                                  msg.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                              } else {
                                                                encodeComplexAck22222222222222(
                                                                  apdubuffer,
                                                                  msg.type,
                                                                  msg.service,
                                                                  msg.invokeId,
                                                                  0,
                                                                  0
                                                                );
                                                              }
                                                              this._segmentStore.push(
                                                                //@ts-ignore
                                                                apdubuffer.buffer.slice(0, length + apduHeaderLen)
                                                              );
                                                            } else {
                                                              this._segmentStore.push(buffer.slice(offset, offset + length));
                                                            }
                                                            if (!moreFollows) {
                                                              const apduBuffer = Buffer.concat(this._segmentStore);
                                                              this._segmentStore = [];
                                                              msg.type &= ~8;
                                                              this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                                                            }
                                                          }
                                                          /**
                                                           *
                                                           * @param msg
                                                           * @param server
                                                           * @param buffer
                                                           * @param offset
                                                           * @param length
                                                           * @private
                                                           */
                                                          _processSegment(msg, server, buffer, offset, length) {
                                                            let first = false;
                                                            if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                                                              first = true;
                                                            } else {
                                                              if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                                                return this._segmentAckResponse(
                                                                  msg.header.address,
                                                                  true,
                                                                  server,
                                                                  msg.invokeId,
                                                                  this._lastSequenceNumber,
                                                                  msg.proposedWindowNumber
                                                                );
                                                              }
                                                            }
                                                            this._lastSequenceNumber = msg.sequencenumber;
                                                            const moreFollows = msg.type & 4;
                                                            if (!moreFollows) {
                                                              this._lastSequenceNumber = 0;
                                                            }
                                                            if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                                                              this._segmentAckResponse(
                                                                msg.header.address,
                                                                false,
                                                                server,
                                                                msg.invokeId,
                                                                msg.sequencenumber,
                                                                msg.proposedWindowNumber
                                                              );
                                                            }
                                                            this._performDefaultSegmentHandling(
                                                              msg,
                                                              first,
                                                              moreFollows,
                                                              buffer,
                                                              offset,
                                                              length
                                                            );
                                                          }
                                                          /**
                                                           *
                                                           * @param serviceMap
                                                           * @param content
                                                           * @param buffer
                                                           * @param offset
                                                           * @param length
                                                           * @returns {*}
                                                           * @private
                                                           */
                                                          _processServiceRequest(serviceMap, content, buffer, offset, length) {
                                                            let result;
                                                            const sender = content.header.sender;
                                                            if (sender.address === LOCALHOST_INTERFACES_IPV422222222222222) {
                                                              debug322222222222222("Received and skipped localhost service request:", content.service);
                                                              return;
                                                            }
                                                            const name = serviceMap[content.service];
                                                            if (!name) {
                                                              debug322222222222222("Received unsupported service request:", content.service);
                                                              return;
                                                            }
                                                            const id = content.invokeId ? "@" + content.invokeId : "";
                                                            trace222222222222222(`Received service request${id}:`, name);
                                                            const serviceHandler = services_exports22222222222222[name];
                                                            if (serviceHandler) {
                                                              try {
                                                                content.payload = serviceHandler.decode(buffer, offset, length);
                                                                trace222222222222222(`Handled service request${id}:`, name, JSON.stringify(content));
                                                              } catch (e) {
                                                                debug322222222222222("Exception thrown when processing message:", e);
                                                                debug322222222222222("Original message was", name + ":", content);
                                                                return;
                                                              }
                                                              if (!content.payload) {
                                                                return debug322222222222222("Received invalid", name, "message");
                                                              }
                                                            } else {
                                                              debug322222222222222("No serviceHandler defined for:", name);
                                                            }
                                                            if (this.listenerCount(name)) {
                                                              trace222222222222222("listener count by name emits " + name + " with content");
                                                              this.emit(name, content);
                                                            } else {
                                                              if (this.listenerCount("unhandledEvent")) {
                                                                trace222222222222222("unhandled event emiting with content");
                                                                this.emit("unhandledEvent", content);
                                                              } else {
                                                                trace222222222222222(
                                                                  "no unhandled event handler with header: " + JSON.stringify(content.header)
                                                                );
                                                                if (content.header.expectingReply) {
                                                                  debug322222222222222("Replying with error for unhandled service:", name);
                                                                  content.header.sender.forwardedFrom = null;
                                                                  this.errorResponse(
                                                                    content.header.sender,
                                                                    content.service,
                                                                    content.invokeId,
                                                                    5,
                                                                    67
                                                                    /* REJECT_UNRECOGNIZED_SERVICE */
                                                                  );
                                                                }
                                                              }
                                                            }
                                                          }
                                                          /**
                                                           *
                                                           * @param buffer
                                                           * @param offset
                                                           * @param length
                                                           * @param header
                                                           * @private
                                                           */
                                                          _handlePdu(buffer, offset, length, header) {
                                                            let msg;
                                                            trace222222222222222("handlePdu Header: ", header);
                                                            switch (header.apduType & PDU_TYPE_MASK22222222222222) {
                                                              case 16:
                                                                msg = decodeUnconfirmedServiceRequest22222222222222(buffer, offset);
                                                                msg.header = header;
                                                                msg.header.confirmedService = false;
                                                                this._processServiceRequest(
                                                                  unconfirmedServiceMap22222222222222,
                                                                  msg,
                                                                  buffer,
                                                                  offset + msg.len,
                                                                  length - msg.len
                                                                );
                                                                break;
                                                              case 32:
                                                                msg = decodeSimpleAck22222222222222(buffer, offset);
                                                                offset += msg.len;
                                                                length -= msg.len;
                                                                this._invokeCallback(msg.invokeId, null, {
                                                                  msg,
                                                                  buffer,
                                                                  offset: offset + msg.len,
                                                                  length: length - msg.len
                                                                });
                                                                break;
                                                              case 48:
                                                                msg = decodeComplexAck22222222222222(buffer, offset);
                                                                msg.header = header;
                                                                if ((header.apduType & 8) === 0) {
                                                                  this._invokeCallback(msg.invokeId, null, {
                                                                    msg,
                                                                    buffer,
                                                                    offset: offset + msg.len,
                                                                    length: length - msg.len
                                                                  });
                                                                } else {
                                                                  this._processSegment(
                                                                    msg,
                                                                    true,
                                                                    buffer,
                                                                    offset + msg.len,
                                                                    length - msg.len
                                                                  );
                                                                }
                                                                break;
                                                              case 64:
                                                                msg = decodeSegmentAck22222222222222(buffer, offset);
                                                                msg.header = header;
                                                                this._processSegment(
                                                                  msg,
                                                                  true,
                                                                  buffer,
                                                                  offset + msg.len,
                                                                  length - msg.len
                                                                );
                                                                break;
                                                              case 80:
                                                                msg = decodeError22222222222222(buffer, offset);
                                                                this._processError(
                                                                  msg.invokeId,
                                                                  buffer,
                                                                  offset + msg.len,
                                                                  length - msg.len
                                                                );
                                                                break;
                                                              case 96:
                                                              case 112:
                                                                msg = decodeAbort22222222222222(buffer, offset);
                                                                this._processAbort(msg.invokeId, msg.reason);
                                                                break;
                                                              case 0:
                                                                msg = decodeConfirmedServiceRequest22222222222222(buffer, offset);
                                                                msg.header = header;
                                                                msg.header.confirmedService = true;
                                                                if ((header.apduType & 8) === 0) {
                                                                  this._processServiceRequest(
                                                                    confirmedServiceMap22222222222222,
                                                                    msg,
                                                                    buffer,
                                                                    offset + msg.len,
                                                                    length - msg.len
                                                                  );
                                                                } else {
                                                                  this._processSegment(
                                                                    msg,
                                                                    true,
                                                                    buffer,
                                                                    offset + msg.len,
                                                                    length - msg.len
                                                                  );
                                                                }
                                                                break;
                                                              default:
                                                                debug322222222222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                                                break;
                                                            }
                                                          }
                                                          /**
                                                           *
                                                           * @param buffer
                                                           * @param offset
                                                           * @param msgLength
                                                           * @param header
                                                           * @returns {*}
                                                           * @private
                                                           */
                                                          _handleNpdu(buffer, offset, msgLength, header) {
                                                            if (msgLength <= 0) {
                                                              return trace222222222222222("No NPDU data -> Drop package");
                                                            }
                                                            const result = decode3122222222222222(buffer, offset);
                                                            if (!result) {
                                                              return trace222222222222222("Received invalid NPDU header -> Drop package");
                                                            }
                                                            if (result.funct & 128) {
                                                              return trace222222222222222("Received network layer message -> Drop package");
                                                            }
                                                            offset += result.len;
                                                            msgLength -= result.len;
                                                            if (msgLength <= 0) {
                                                              return trace222222222222222("No APDU data -> Drop package");
                                                            }
                                                            header.apduType = getDecodedType22222222222222(buffer, offset);
                                                            header.expectingReply = !!(result.funct & 4);
                                                            this._handlePdu(buffer, offset, msgLength, header);
                                                          }
                                                          /**
                                                           *
                                                           * @param buffer
                                                           * @param remoteAddress
                                                           * @returns {*}
                                                           * @private
                                                           */
                                                          _receiveData(buffer, remoteAddress) {
                                                            if (buffer.length < BVLC_HEADER_LENGTH32222222222222) {
                                                              return trace222222222222222("Received invalid data -> Drop package");
                                                            }
                                                            const result = decode3222222222222222(buffer, 0);
                                                            if (!result) {
                                                              return trace222222222222222("Received invalid BVLC header -> Drop package");
                                                            }
                                                            let header = {
                                                              // Which function the packet came in on, so later code can distinguish
                                                              // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                                                              func: result.func,
                                                              sender: {
                                                                // Address of the host we are directly connected to. String, IP:port.
                                                                address: remoteAddress,
                                                                // If the host is a BBMD passing messages along to another node, this
                                                                // is the address of the distant BACnet node.  String, IP:port.
                                                                // Typically we won't have network connectivity to this address, but
                                                                // we have to include it in replies so the host we are connect to knows
                                                                // where to forward the messages.
                                                                forwardedFrom: null
                                                              }
                                                            };
                                                            switch (result.func) {
                                                              case 10:
                                                              case 11:
                                                                this._handleNpdu(
                                                                  buffer,
                                                                  result.len,
                                                                  buffer.length - result.len,
                                                                  header
                                                                );
                                                                break;
                                                              case 4:
                                                                header.sender.forwardedFrom = result.originatingIP;
                                                                this._handleNpdu(
                                                                  buffer,
                                                                  result.len,
                                                                  buffer.length - result.len,
                                                                  header
                                                                );
                                                                break;
                                                              case 5:
                                                                let decodeResult = register_foreign_device_exports22222222222222.decode(
                                                                  buffer,
                                                                  result.len,
                                                                  buffer.length - result.len
                                                                );
                                                                if (!decodeResult) {
                                                                  return trace222222222222222("Received invalid registerForeignDevice message");
                                                                }
                                                                this.emit("registerForeignDevice", {
                                                                  header,
                                                                  payload: decodeResult
                                                                });
                                                                break;
                                                              case 9:
                                                                this._handleNpdu(
                                                                  buffer,
                                                                  result.len,
                                                                  buffer.length - result.len,
                                                                  header
                                                                );
                                                                break;
                                                              default:
                                                                debug322222222222222(
                                                                  "Received unknown BVLC function " + result.func + " -> Drop package"
                                                                );
                                                                break;
                                                            }
                                                          }
                                                          /**
                                                           * @event bacnet.error
                                                           * @param {error} err - The error object thrown by the underlying transport layer.
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * client.on('error', (err) => {
                                                           *   console.log('Error occurred: ', err);
                                                           *   client.close();
                                                           * });
                                                           */
                                                          _receiveError(err) {
                                                            this.emit("error", err);
                                                          }
                                                          /**
                                                           * The whoIs command discovers all BACNET devices in a network.
                                                           * @function bacnet.whoIs
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {object=} options
                                                           * @param {number=} options.lowLimit - Minimal device instance number to search for.
                                                           * @param {number=} options.highLimit - Maximal device instance number to search for.
                                                           * @fires bacnet.iAm
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * client.whoIs();
                                                           */
                                                          whoIs(receiver, options) {
                                                            if (!options) {
                                                              if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                                                options = receiver;
                                                                receiver = void 0;
                                                              }
                                                            }
                                                            options = options || {};
                                                            const settings = {
                                                              lowLimit: options.lowLimit,
                                                              highLimit: options.highLimit
                                                            };
                                                            const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                            encode3122222222222222(
                                                              buffer,
                                                              0,
                                                              //@ts-ignore
                                                              receiver,
                                                              null,
                                                              DEFAULT_HOP_COUNT222222222222222,
                                                              0,
                                                              0
                                                            );
                                                            encodeUnconfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              16,
                                                              8
                                                              /* WHO_IS */
                                                            );
                                                            who_is_exports22222222222222.encode(buffer, settings.lowLimit, settings.highLimit);
                                                            this.sendBvlc(receiver, buffer);
                                                          }
                                                          /**
                                                           * The timeSync command sets the time of a target device.
                                                           * @function bacnet.timeSync
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {date} dateTime - The date and time to set on the target device.
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * client.timeSync('192.168.1.43', new Date());
                                                           */
                                                          timeSync(receiver, dateTime) {
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(buffer, 0, receiver);
                                                            encodeUnconfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              16,
                                                              6
                                                              /* TIME_SYNCHRONIZATION */
                                                            );
                                                            time_sync_exports22222222222222.encode(buffer, dateTime);
                                                            this.sendBvlc(receiver, buffer);
                                                          }
                                                          /**
                                                           * The timeSyncUTC command sets the UTC time of a target device.
                                                           * @function bacnet.timeSyncUTC
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {date} dateTime - The date and time to set on the target device.
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * client.timeSyncUTC('192.168.1.43', new Date());
                                                           */
                                                          timeSyncUTC(receiver, dateTime) {
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(buffer, 0, receiver);
                                                            encodeUnconfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              16,
                                                              9
                                                              /* UTC_TIME_SYNCHRONIZATION */
                                                            );
                                                            time_sync_exports22222222222222.encode(buffer, dateTime);
                                                            this.sendBvlc(receiver, buffer);
                                                          }
                                                          /**
                                                           * The readProperty command reads a single property of an object from a device.
                                                           * @function bacnet.readProperty
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {object} objectId - The BACNET object ID to read.
                                                           * @param {number} objectId.type - The BACNET object type to read.
                                                           * @param {number} objectId.instance - The BACNET object instance to read.
                                                           * @param {number} propertyId - The BACNET property id in the specified object to read.
                                                           * @param {object=} options
                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                           * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                                                           *   console.log('value: ', value);
                                                           * });
                                                           */
                                                          readProperty(receiver, objectId, propertyId, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId(),
                                                              arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL22222222222222
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              //@ts-ignore
                                                              receiver,
                                                              null,
                                                              DEFAULT_HOP_COUNT222222222222222,
                                                              0,
                                                              0
                                                            );
                                                            const type = 0 | //@ts-ignore
                                                            (settings.maxSegments !== 0 ? 2 : 0);
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              type,
                                                              12,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            read_property_exports22222222222222.encode(
                                                              buffer,
                                                              objectId.type,
                                                              objectId.instance,
                                                              propertyId,
                                                              settings.arrayIndex
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              const result = read_property_exports22222222222222.decodeAcknowledge(
                                                                data.buffer,
                                                                data.offset,
                                                                data.length
                                                              );
                                                              if (!result) {
                                                                return void next(new Error("INVALID_DECODING"));
                                                              }
                                                              next(null, result);
                                                            });
                                                          }
                                                          /**
                                                           * The writeProperty command writes a single property of an object to a device.
                                                           * @function bacnet.writeProperty
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {object} objectId - The BACNET object ID to write.
                                                           * @param {number} objectId.type - The BACNET object type to write.
                                                           * @param {number} objectId.instance - The BACNET object instance to write.
                                                           * @param {number} propertyId - The BACNET property id in the specified object to write.
                                                           * @param {object[]} values - A list of values to be written to the specified property.
                                                           * @param {ApplicationTag} values.type - The data-type of the value to be written.
                                                           * @param {number} values.value - The actual value to be written.
                                                           * @param {object=} options
                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                           * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                           * @param {number=} options.priority - The priority of the value to be written.
                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                                                           *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                                                           * ], (err, value) => {
                                                           *   console.log('value: ', value);
                                                           * });
                                                           */
                                                          writeProperty(receiver, objectId, propertyId, values, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId(),
                                                              arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL22222222222222,
                                                              priority: options.priority || ASN1_NO_PRIORITY22222222222222
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              //@ts-ignore Todo somehow types do not match at all
                                                              receiver,
                                                              null,
                                                              DEFAULT_HOP_COUNT222222222222222,
                                                              0,
                                                              0
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              15,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            write_property_exports22222222222222.encode(
                                                              buffer,
                                                              objectId.type,
                                                              objectId.instance,
                                                              propertyId,
                                                              settings.arrayIndex,
                                                              settings.priority,
                                                              values
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              next(err);
                                                            });
                                                          }
                                                          /**
                                                           * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                                                           * @function bacnet.readPropertyMultiple
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {object[]} propertiesArray - List of object and property specifications to be read.
                                                           * @param {object} propertiesArray.objectId - Specifies which object to read.
                                                           * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                                                           * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                                                           * @param {object[]} propertiesArray.properties - List of properties to be read.
                                                           * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                                                           * @param {object=} options
                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * const requestArray = [
                                                           *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                                                           * ];
                                                           * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                                                           *   console.log('value: ', value);
                                                           * });
                                                           */
                                                          readPropertyMultiple(receiver, propertiesArray, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                                                            const buffer = this._getBuffer(!!isForwarded);
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              //@ts-ignore Todo somehow types do not match at all
                                                              receiver,
                                                              null,
                                                              DEFAULT_HOP_COUNT222222222222222,
                                                              0,
                                                              0
                                                            );
                                                            const type = 0 | //@ts-ignore
                                                            (settings.maxSegments !== 0 ? 2 : 0);
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              type,
                                                              14,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            read_property_multiple_exports22222222222222.encode(buffer, propertiesArray);
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return next(err);
                                                              }
                                                              const result = read_property_multiple_exports22222222222222.decodeAcknowledge(
                                                                data.buffer,
                                                                data.offset,
                                                                data.length
                                                              );
                                                              if (!result) {
                                                                return next(new Error("INVALID_DECODING"));
                                                              }
                                                              next(null, result);
                                                            });
                                                          }
                                                          /**
                                                           * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                                                           * @function bacnet.writePropertyMultiple
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {object[]} values - List of object and property specifications to be written.
                                                           * @param {object} values.objectId - Specifies which object to read.
                                                           * @param {number} values.objectId.type - The BACNET object type to read.
                                                           * @param {number} values.objectId.instance - The BACNET object instance to read.
                                                           * @param {object[]} values.values - List of properties to be written.
                                                           * @param {object} values.values.property - Property specifications to be written.
                                                           * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                                                           * @param {number} values.values.property.index - The array index of the property to be written.
                                                           * @param {object[]} values.values.value - A list of values to be written to the specified property.
                                                           * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                                                           * @param {object} values.values.value.value - The actual value to be written.
                                                           * @param {number} values.values.priority - The priority to be used for writing to the property.
                                                           * @param {object=} options
                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * const values = [
                                                           *   {objectId: {type: 8, instance: 44301}, values: [
                                                           *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                                                           *   ]}
                                                           * ];
                                                           * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                                                           *   console.log('value: ', value);
                                                           * });
                                                           */
                                                          writePropertyMultiple(receiver, values, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              //@ts-ignore
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              16,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId
                                                            );
                                                            write_property_multiple_exports22222222222222.encodeObject(buffer, values);
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              next(err);
                                                            });
                                                          }
                                                          /**
                                                           * The confirmedCOVNotification command is used to push notifications to other
                                                           * systems that have registered with us via a subscribeCOV message.
                                                           * @function bacnet.confirmedCOVNotification
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                                                           * @param {number} monitoredObject.type - Object type.
                                                           * @param {number} monitoredObject.instance - Object instance.
                                                           * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                                                           * @param {number} initiatingDeviceId - Our BACnet device ID.
                                                           * @param {number} lifetime - Number of seconds left until the subscription expires.
                                                           * @param {array} values - values for the monitored object.  See example.
                                                           * @param {object=} options
                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * const settings = {deviceId: 123}; // our BACnet device
                                                           *
                                                           * // Items saved from subscribeCOV message
                                                           * const monitoredObject = {type: 1, instance: 1};
                                                           * const subscriberProcessId = 123;
                                                           *
                                                           * client.confirmedCOVNotification(
                                                           *   '192.168.1.43',
                                                           *   monitoredObject,
                                                           *   subscriberProcessId,
                                                           *   settings.deviceId,
                                                           *   30, // should be lifetime of subscription really
                                                           *   [
                                                           *     {
                                                           *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                                                           *       value: [
                                                           *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                                                           *       ],
                                                           *     },
                                                           *   ],
                                                           *   (err) => {
                                                           *     console.log('error: ', err);
                                                           *   }
                                                           * );
                                                           */
                                                          confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer();
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              1,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            cov_notify_exports22222222222222.encode(
                                                              buffer,
                                                              subscribeId,
                                                              initiatingDeviceId,
                                                              monitoredObject,
                                                              lifetime,
                                                              values
                                                            );
                                                            encode3222222222222222(
                                                              buffer.buffer,
                                                              10,
                                                              buffer.offset
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              next();
                                                            });
                                                          }
                                                          /**
                                                           * The deviceCommunicationControl command enables or disables network communication of the target device.
                                                           * @function bacnet.deviceCommunicationControl
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                                                           * @param {EnableDisable} enableDisable - The network communication state to set.
                                                           * @param {object=} options
                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                           * @param {string=} options.password - The optional password used to set the network communication state.
                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                                                           *   console.log('error: ', err);
                                                           * });
                                                           */
                                                          deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId(),
                                                              password: options.password
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              17,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            device_communication_control_exports22222222222222.encode(
                                                              buffer,
                                                              timeDuration,
                                                              enableDisable,
                                                              settings.password
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              next(err);
                                                            });
                                                          }
                                                          /**
                                                           * The reinitializeDevice command initiates a restart of the target device.
                                                           * @function bacnet.reinitializeDevice
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {ReinitializedState} state - The type of restart to be initiated.
                                                           * @param {object=} options
                                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                           * @param {string=} options.password - The optional password used to restart the device.
                                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                                                           *   console.log('value: ', value);
                                                           * });
                                                           */
                                                          reinitializeDevice(receiver, state, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId(),
                                                              password: options.password
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              20,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            reinitialize_device_exports22222222222222.encode(buffer, state, settings.password);
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              next(err);
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param objectId
                                                           * @param position
                                                           * @param fileBuffer
                                                           * @param options
                                                           * @param next
                                                           */
                                                          writeFile(receiver, objectId, position, fileBuffer, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              7,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            atomic_write_file_exports22222222222222.encode(
                                                              buffer,
                                                              false,
                                                              objectId,
                                                              position,
                                                              fileBuffer
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              const result = atomic_write_file_exports22222222222222.decodeAcknowledge(
                                                                data.buffer,
                                                                data.offset,
                                                                data.length
                                                              );
                                                              if (!result) {
                                                                return void next(new Error("INVALID_DECODING"));
                                                              }
                                                              next(null, result);
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param objectId
                                                           * @param position
                                                           * @param count
                                                           * @param options
                                                           * @param next
                                                           */
                                                          readFile(receiver, objectId, position, count, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              6,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            atomic_read_file_exports22222222222222.encode(buffer, true, objectId, position, count);
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              const result = atomic_read_file_exports22222222222222.decodeAcknowledge(
                                                                data.buffer,
                                                                data.offset,
                                                                data.length
                                                              );
                                                              if (!result) {
                                                                return void next(new Error("INVALID_DECODING"));
                                                              }
                                                              next(null, result);
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param objectId
                                                           * @param idxBegin
                                                           * @param quantity
                                                           * @param options
                                                           * @param next
                                                           */
                                                          readRange(receiver, objectId, idxBegin, quantity, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              26,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            read_range_exports22222222222222.encode(
                                                              buffer,
                                                              objectId,
                                                              131,
                                                              ASN1_ARRAY_ALL22222222222222,
                                                              0,
                                                              idxBegin,
                                                              /* @__PURE__ */ new Date(),
                                                              quantity
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              const result = read_range_exports22222222222222.decodeAcknowledge(
                                                                data.buffer,
                                                                data.offset,
                                                                data.length
                                                              );
                                                              if (!result) {
                                                                return void next(new Error("INVALID_DECODING"));
                                                              }
                                                              next(null, result);
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param objectId
                                                           * @param subscribeId
                                                           * @param cancel
                                                           * @param issueConfirmedNotifications
                                                           * @param lifetime
                                                           * @param options
                                                           * @param next
                                                           */
                                                          subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                                                            const next = nextFunc || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              // @ts-ignore TODO types not matching with documentation and code
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              5,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            subscribe_cov_exports22222222222222.encode(
                                                              buffer,
                                                              subscribeId,
                                                              objectId,
                                                              cancel,
                                                              issueConfirmedNotifications,
                                                              lifetime
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              next();
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param objectId
                                                           * @param monitoredProperty
                                                           * @param subscribeId
                                                           * @param cancel
                                                           * @param issueConfirmedNotifications
                                                           * @param options
                                                           * @param next
                                                           */
                                                          subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              28,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            subscribe_property_exports22222222222222.encode(
                                                              buffer,
                                                              subscribeId,
                                                              objectId,
                                                              cancel,
                                                              issueConfirmedNotifications,
                                                              0,
                                                              monitoredProperty,
                                                              false,
                                                              15
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              next();
                                                            });
                                                          }
                                                          /**
                                                           * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                                                           * @function bacnet.unconfirmedCOVNotification
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                                                           * @param {number} initiatingDeviceId - The id of this device.
                                                           * @param {object} monitoredObjectId - Specifies about which object the notification is.
                                                           * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                                                           * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                                                           * @param {number} timeRemaining - How long the subscription is still active in seconds.
                                                           * @param {object[]} values - List of properties with updated values.
                                                           * @param {object} values.property - Property specifications.
                                                           * @param {number} values.property.id - The updated BACNET property id.
                                                           * @param {number} values.property.index - The array index of the updated property.
                                                           * @param {object[]} values.value - A list of updated values.
                                                           * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                                                           * @param {object} values.value.value - The actual updated value.
                                                           * @param {number} values.priority - The priority of the updated property.
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * client.unconfirmedCOVNotification(
                                                           *            '127.0.0.1',
                                                           *            3,
                                                           *            433,
                                                           *            {type: 2, instance: 122},
                                                           *            120,
                                                           *            [
                                                           *              {
                                                           *                property: {id: 85},
                                                           *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                                                           *              },
                                                           *              {
                                                           *                property: {id: 111},
                                                           *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                                                           *              }
                                                           *            ]);
                                                           */
                                                          unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                                                            const buffer = this._getBuffer();
                                                            encode3122222222222222(buffer, 0, receiver);
                                                            encodeUnconfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              16,
                                                              2
                                                              /* UNCONFIRMED_COV_NOTIFICATION */
                                                            );
                                                            cov_notify_exports22222222222222.encode(
                                                              buffer,
                                                              subscriberProcessId,
                                                              initiatingDeviceId,
                                                              monitoredObjectId,
                                                              timeRemaining,
                                                              values
                                                            );
                                                            encode3222222222222222(
                                                              buffer.buffer,
                                                              10,
                                                              buffer.offset
                                                            );
                                                            this._transport.send(buffer.buffer, buffer.offset, receiver);
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param objectId
                                                           * @param values
                                                           * @param options
                                                           * @param next
                                                           */
                                                          createObject(receiver, objectId, values, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              10,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            create_object_exports22222222222222.encode(buffer, objectId, values);
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              next();
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param objectId
                                                           * @param options
                                                           * @param next
                                                           */
                                                          deleteObject(receiver, objectId, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              11,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            delete_object_exports22222222222222.encode(buffer, objectId);
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              next();
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param objectId
                                                           * @param reference
                                                           * @param values
                                                           * @param options
                                                           * @param next
                                                           */
                                                          removeListElement(receiver, objectId, reference, values, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              9,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            add_list_element_exports22222222222222.encode(
                                                              buffer,
                                                              objectId,
                                                              reference.id,
                                                              reference.index,
                                                              values
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              next();
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param objectId
                                                           * @param reference
                                                           * @param values
                                                           * @param options
                                                           * @param next
                                                           */
                                                          addListElement(receiver, objectId, reference, values, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              8,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            add_list_element_exports22222222222222.encode(
                                                              buffer,
                                                              objectId,
                                                              reference.id,
                                                              reference.index,
                                                              values
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              next();
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param options
                                                           * @param next
                                                           */
                                                          getAlarmSummary(receiver, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              3,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              const result = alarm_summary_exports22222222222222.decode(
                                                                data.buffer,
                                                                data.offset,
                                                                data.length
                                                              );
                                                              if (!result) {
                                                                return void next(new Error("INVALID_DECODING"));
                                                              }
                                                              next(null, result);
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param objectId
                                                           * @param options
                                                           * @param next
                                                           */
                                                          getEventInformation(receiver, objectId, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              29,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            encodeContextObjectId22222222222222(buffer, 0, objectId.type, objectId.instance);
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              const result = event_information_exports22222222222222.decode(
                                                                data.buffer,
                                                                data.offset,
                                                                data.length
                                                              );
                                                              if (!result) {
                                                                return void next(new Error("INVALID_DECODING"));
                                                              }
                                                              next(null, result);
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param objectId
                                                           * @param eventState
                                                           * @param ackText
                                                           * @param evTimeStamp
                                                           * @param ackTimeStamp
                                                           * @param options
                                                           * @param next
                                                           */
                                                          acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              0,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            alarm_acknowledge_exports22222222222222.encode(
                                                              buffer,
                                                              57,
                                                              objectId,
                                                              eventState,
                                                              ackText,
                                                              evTimeStamp,
                                                              ackTimeStamp
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              next();
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param vendorId
                                                           * @param serviceNumber
                                                           * @param data
                                                           * @param options
                                                           * @param next
                                                           */
                                                          confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              18,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            private_transfer_exports22222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data2) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              next();
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param vendorId
                                                           * @param serviceNumber
                                                           * @param data
                                                           */
                                                          unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(buffer, 0, receiver);
                                                            encodeUnconfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              16,
                                                              4
                                                              /* UNCONFIRMED_PRIVATE_TRANSFER */
                                                            );
                                                            private_transfer_exports22222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                            this.sendBvlc(receiver, buffer);
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param acknowledgmentFilter
                                                           * @param options
                                                           * @param next
                                                           */
                                                          getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              4,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            get_enrollment_summary_exports22222222222222.encode(
                                                              buffer,
                                                              acknowledgmentFilter,
                                                              options.enrollmentFilter,
                                                              options.eventStateFilter,
                                                              options.eventTypeFilter,
                                                              options.priorityFilter,
                                                              options.notificationClassFilter
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              const result = get_enrollment_summary_exports22222222222222.decodeAcknowledge(
                                                                data.buffer,
                                                                data.offset,
                                                                data.length
                                                              );
                                                              if (!result) {
                                                                return void next(new Error("INVALID_DECODING"));
                                                              }
                                                              next(null, result);
                                                            });
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param eventNotification
                                                           */
                                                          unconfirmedEventNotification(receiver, eventNotification) {
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(buffer, 0, receiver);
                                                            encodeUnconfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              16,
                                                              3
                                                              /* UNCONFIRMED_EVENT_NOTIFICATION */
                                                            );
                                                            event_notify_data_exports22222222222222.encode(buffer, eventNotification);
                                                            this.sendBvlc(receiver, buffer);
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param eventNotification
                                                           * @param options
                                                           * @param next
                                                           */
                                                          confirmedEventNotification(receiver, eventNotification, options, next) {
                                                            next = next || options;
                                                            const settings = {
                                                              maxSegments: options.maxSegments || 112,
                                                              maxApdu: options.maxApdu || 5,
                                                              invokeId: options.invokeId || this._getInvokeId()
                                                            };
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(
                                                              buffer,
                                                              0 | 4,
                                                              receiver
                                                            );
                                                            encodeConfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              0,
                                                              2,
                                                              settings.maxSegments,
                                                              settings.maxApdu,
                                                              settings.invokeId,
                                                              0,
                                                              0
                                                            );
                                                            event_notify_data_exports22222222222222.encode(buffer, eventNotification);
                                                            this.sendBvlc(receiver, buffer);
                                                            this._addCallback(settings.invokeId, (err, data) => {
                                                              if (err) {
                                                                return void next(err);
                                                              }
                                                              next();
                                                            });
                                                          }
                                                          /**
                                                           * The readPropertyResponse call sends a response with information about one of our properties.
                                                           * @function bacnet.readPropertyResponse
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {number} invokeId - ID of the original readProperty request.
                                                           * @param {object} objectId - objectId from the original request,
                                                           * @param {object} property - property being read, taken from the original request.
                                                           * @param {object=} options varying behaviour for special circumstances
                                                           * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                                                           */
                                                          readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(buffer, 0, receiver);
                                                            encodeComplexAck22222222222222(
                                                              buffer,
                                                              48,
                                                              12,
                                                              invokeId
                                                            );
                                                            read_property_exports22222222222222.encodeAcknowledge(
                                                              buffer,
                                                              objectId,
                                                              property.id,
                                                              property.index,
                                                              value
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                          }
                                                          readPropertyMultipleResponse(receiver, invokeId, values) {
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(buffer, 0, receiver);
                                                            encodeComplexAck22222222222222(
                                                              buffer,
                                                              48,
                                                              14,
                                                              invokeId
                                                            );
                                                            read_property_multiple_exports22222222222222.encodeAcknowledge(buffer, values);
                                                            this.sendBvlc(receiver, buffer);
                                                          }
                                                          /**
                                                           * The iAmResponse command is sent as a reply to a whoIs request.
                                                           * @function bacnet.iAmResponse
                                                           * @param {object} receiver - address to send packet to, null for local broadcast.
                                                           * @param {number} deviceId - Our device ID.
                                                           * @param {number} segmentation - an enum.Segmentation value.
                                                           * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                                                           */
                                                          iAmResponse(receiver, deviceId, segmentation, vendorId) {
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(buffer, 0, receiver);
                                                            encodeUnconfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              16,
                                                              0
                                                              /* I_AM */
                                                            );
                                                            i_am_exports22222222222222.encode(
                                                              buffer,
                                                              deviceId,
                                                              this._transport.getMaxPayload(),
                                                              segmentation,
                                                              vendorId
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param deviceId
                                                           * @param objectId
                                                           * @param objectName
                                                           */
                                                          iHaveResponse(receiver, deviceId, objectId, objectName) {
                                                            const buffer = this._getBuffer(
                                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                            );
                                                            encode3122222222222222(buffer, 0, receiver);
                                                            encodeUnconfirmedServiceRequest22222222222222(
                                                              buffer,
                                                              16,
                                                              1
                                                              /* I_HAVE */
                                                            );
                                                            i_have_exports22222222222222.encode(buffer, deviceId, objectId, objectName);
                                                            this.sendBvlc(receiver, buffer);
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param service
                                                           * @param invokeId
                                                           */
                                                          simpleAckResponse(receiver, service, invokeId) {
                                                            if (typeof receiver === "string")
                                                              return;
                                                            const buffer = this._getBuffer(!!receiver.forwardedFrom);
                                                            encode3122222222222222(buffer, 0, receiver);
                                                            encodeSimpleAck22222222222222(
                                                              buffer,
                                                              32,
                                                              service,
                                                              invokeId
                                                            );
                                                            this.sendBvlc(receiver, buffer);
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param service
                                                           * @param invokeId
                                                           * @param errorClass
                                                           * @param errorCode
                                                           */
                                                          errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                                                            trace222222222222222(
                                                              `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                                                service
                                                              )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                                                            );
                                                            trace222222222222222(
                                                              `error message ${error_exports22222222222222.buildMessage({
                                                                class: errorClass,
                                                                code: errorCode
                                                              })}`
                                                            );
                                                            const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                                                            if (typeof receiver === "string")
                                                              throw new Error("receiver must be object");
                                                            const buffer = this._getBuffer(hasSource);
                                                            encode3122222222222222(buffer, 0, receiver);
                                                            encodeError22222222222222(buffer, 80, service, invokeId);
                                                            error_exports22222222222222.encode(buffer, errorClass, errorCode);
                                                            this.sendBvlc(receiver, buffer);
                                                          }
                                                          /**
                                                           *
                                                           * @param receiver
                                                           * @param buffer
                                                           */
                                                          sendBvlc(receiver, buffer) {
                                                            if (typeof receiver === "string") {
                                                              receiver = {
                                                                address: receiver
                                                              };
                                                            }
                                                            if (receiver && receiver.forwardedFrom) {
                                                              encode3222222222222222(
                                                                buffer.buffer,
                                                                4,
                                                                buffer.offset,
                                                                receiver.forwardedFrom
                                                              );
                                                            } else if (receiver && receiver.address) {
                                                              encode3222222222222222(
                                                                buffer.buffer,
                                                                10,
                                                                buffer.offset
                                                              );
                                                            } else {
                                                              encode3222222222222222(
                                                                buffer.buffer,
                                                                11,
                                                                buffer.offset
                                                              );
                                                            }
                                                            this._transport.send(
                                                              buffer.buffer,
                                                              buffer.offset,
                                                              receiver && receiver.address || null
                                                            );
                                                          }
                                                          /**
                                                           * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                                                           * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                                                           * @function bacnet.resultResponse
                                                           * @param {string} receiver - IP address of the target device.
                                                           * @param {number} resultCode - Single value from BvlcResultFormat enum.
                                                           */
                                                          resultResponse(receiver, resultCode) {
                                                            const buffer = this._getBuffer();
                                                            encodeResult22222222222222(buffer, resultCode);
                                                            encode3222222222222222(
                                                              buffer.buffer,
                                                              0,
                                                              buffer.offset
                                                            );
                                                            this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                                                          }
                                                          /**
                                                           * Unloads the current bacnet instance and closes the underlying UDP socket.
                                                           * @function bacnet.close
                                                           * @example
                                                           * const bacnet = require('node-bacnet');
                                                           * const client = new bacnet();
                                                           *
                                                           * client.close();
                                                           */
                                                          close() {
                                                            this._transport.close();
                                                          }
                                                          /**
                                                           * Helper function to take an array of enums and produce a bitstring suitable
                                                           * for inclusion as a property.
                                                           *
                                                           * @example
                                                           * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                                                           *   {value: bacnet.createBitstring([
                                                           *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                                                           *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                                                           *   ]),
                                                           *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                                                           * ],
                                                           */
                                                          static createBitstring(items) {
                                                            let offset = 0;
                                                            let bytes = [];
                                                            let bitsUsed = 0;
                                                            while (items.length) {
                                                              let value = 0;
                                                              items = items.filter((i) => {
                                                                if (i >= offset + 8) {
                                                                  return true;
                                                                }
                                                                value |= 1 << i - offset;
                                                                bitsUsed = Math.max(bitsUsed, i);
                                                                return false;
                                                              });
                                                              bytes.push(value);
                                                              offset += 8;
                                                            }
                                                            bitsUsed++;
                                                            return {
                                                              value: bytes,
                                                              bitsUsed
                                                            };
                                                          }
                                                        };
                                                        var import_underscore22222222222222 = __toESM22222222222222(require("underscore"));
                                                        var import_process22222222222222 = __toESM22222222222222(require("process"));
                                                        var import__22222222222222 = __toESM22222222222222(require_dist22222222222222());
                                                        var PropertyIdentifierToEnumMap22222222222222 = {};
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.OBJECT_TYPE] = import__22222222222222.enums.ObjectType;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__22222222222222.enums.Segmentation;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.EVENT_STATE] = import__22222222222222.enums.EventState;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.UNITS] = import__22222222222222.enums.EngineeringUnits;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.RELIABILITY] = import__22222222222222.enums.Reliability;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__22222222222222.enums.NotifyType;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.POLARITY] = import__22222222222222.enums.Polarity;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__22222222222222.enums.ServicesSupported;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__22222222222222.enums.ObjectTypesSupported;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.STATUS_FLAGS] = import__22222222222222.enums.StatusFlags;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__22222222222222.enums.LimitEnable;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.EVENT_ENABLE] = import__22222222222222.enums.EventTransitionBits;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__22222222222222.enums.EventTransitionBits;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__22222222222222.enums.DeviceStatus;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__22222222222222.enums.DeviceStatus;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.ACK_REQUIRED] = import__22222222222222.enums.EventTransitionBits;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.LOGGING_TYPE] = import__22222222222222.enums.LoggingType;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__22222222222222.enums.FileAccessMethod;
                                                        PropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.PropertyIdentifier.NODE_TYPE] = import__22222222222222.enums.NodeType;
                                                        var ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222 = {};
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BINARY_INPUT] = {};
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BINARY_INPUT][import__22222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222.enums.BinaryPV;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BINARY_INPUT][import__22222222222222.enums.PropertyIdentifier.MODE] = import__22222222222222.enums.BinaryPV;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.ANALOG_INPUT] = {};
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.ANALOG_INPUT][import__22222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222.enums.BinaryPV;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.ANALOG_OUTPUT] = {};
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.ANALOG_OUTPUT][import__22222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222.enums.BinaryPV;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BINARY_OUTPUT] = {};
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BINARY_OUTPUT][import__22222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222.enums.BinaryPV;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BINARY_OUTPUT][import__22222222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__22222222222222.enums.BinaryPV;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BINARY_VALUE] = {};
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BINARY_VALUE][import__22222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222.enums.BinaryPV;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BINARY_VALUE][import__22222222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__22222222222222.enums.BinaryPV;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__22222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222.enums.BinaryLightingPV;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BITSTRING_VALUE] = {};
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.BINARY_VALUE][import__22222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222.enums.BinaryPV;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222.enums.LifeSafetyState;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222222.enums.PropertyIdentifier.TRACKING_VALUE] = import__22222222222222.enums.LifeSafetyState;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222222.enums.PropertyIdentifier.MODE] = import__22222222222222.enums.LifeSafetyMode;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__22222222222222.enums.LifeSafetyMode;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222222.enums.PropertyIdentifier.SILENCED] = import__22222222222222.enums.LifeSafetyState;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__22222222222222.enums.LifeSafetyOperation;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__22222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222.enums.LifeSafetyState;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__22222222222222.enums.PropertyIdentifier.MODE] = import__22222222222222.enums.LifeSafetyMode;
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.LOAD_CONTROL] = {};
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[import__22222222222222.enums.ObjectType.LOAD_CONTROL][import__22222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222222.enums.ShedState;
                                                        var propSubSet22222222222222 = import_process22222222222222.default.argv.includes("--all") ? Object.values(import__22222222222222.enums.PropertyIdentifier) : [
                                                          /* normally supported from all devices */
                                                          import__22222222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                                                          import__22222222222222.enums.PropertyIdentifier.OBJECT_NAME,
                                                          import__22222222222222.enums.PropertyIdentifier.OBJECT_TYPE,
                                                          import__22222222222222.enums.PropertyIdentifier.PRESENT_VALUE,
                                                          import__22222222222222.enums.PropertyIdentifier.STATUS_FLAGS,
                                                          import__22222222222222.enums.PropertyIdentifier.EVENT_STATE,
                                                          import__22222222222222.enums.PropertyIdentifier.RELIABILITY,
                                                          import__22222222222222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                                                          import__22222222222222.enums.PropertyIdentifier.UNITS,
                                                          /* other properties */
                                                          import__22222222222222.enums.PropertyIdentifier.DESCRIPTION,
                                                          import__22222222222222.enums.PropertyIdentifier.SYSTEM_STATUS,
                                                          import__22222222222222.enums.PropertyIdentifier.VENDOR_NAME,
                                                          import__22222222222222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                                                          import__22222222222222.enums.PropertyIdentifier.MODEL_NAME,
                                                          import__22222222222222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                                                          import__22222222222222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                                                          import__22222222222222.enums.PropertyIdentifier.LOCATION,
                                                          import__22222222222222.enums.PropertyIdentifier.LOCAL_DATE,
                                                          import__22222222222222.enums.PropertyIdentifier.LOCAL_TIME,
                                                          import__22222222222222.enums.PropertyIdentifier.UTC_OFFSET,
                                                          import__22222222222222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                                                          import__22222222222222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                                                          import__22222222222222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                                                          import__22222222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                                                          import__22222222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                                                          import__22222222222222.enums.PropertyIdentifier.OBJECT_LIST,
                                                          import__22222222222222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                                                          import__22222222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                                                          import__22222222222222.enums.PropertyIdentifier.APDU_TIMEOUT,
                                                          import__22222222222222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                                                          import__22222222222222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                                                          import__22222222222222.enums.PropertyIdentifier.DATABASE_REVISION,
                                                          import__22222222222222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                                                          import__22222222222222.enums.PropertyIdentifier.MAX_MASTER,
                                                          import__22222222222222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                                                          import__22222222222222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                                                        ];
                                                        var debug422222222222222 = import_process22222222222222.default.argv.includes("--debug");
                                                        function getAllPropertiesManually22222222222222(address, objectId, callback, propList, result) {
                                                          if (!propList) {
                                                            propList = propSubSet22222222222222.map((x) => x);
                                                          }
                                                          if (!result) {
                                                            result = [];
                                                          }
                                                          if (!propList.length) {
                                                            return callback({
                                                              values: [
                                                                {
                                                                  objectId,
                                                                  values: result
                                                                }
                                                              ]
                                                            });
                                                          }
                                                          const prop = propList.shift();
                                                          bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                                                            if (!err) {
                                                              if (debug422222222222222) {
                                                                console.log("Handle value " + prop + ": ", JSON.stringify(value));
                                                              }
                                                              const objRes = value.property;
                                                              objRes.value = value.values;
                                                              result.push(objRes);
                                                            } else {
                                                            }
                                                            getAllPropertiesManually22222222222222(address, objectId, callback, propList, result);
                                                          });
                                                        }
                                                        function readBit22222222222222(buffer, i, bit) {
                                                          return (buffer[i] >> bit) % 2;
                                                        }
                                                        function handleBitString22222222222222(buffer, bitsUsed, usedEnum) {
                                                          const res = [];
                                                          for (let i = 0; i < bitsUsed; i++) {
                                                            const bufferIndex = Math.floor(i / 8);
                                                            if (readBit22222222222222(buffer, bufferIndex, i % 8)) {
                                                              res.push(import__22222222222222.enums.getEnumName(usedEnum, i));
                                                            }
                                                          }
                                                          return res;
                                                        }
                                                        function parseValue22222222222222(address, objId2, parentType, value, supportsMultiple, callback) {
                                                          let resValue = null;
                                                          if (value && value.type && value.value !== null && value.value !== void 0) {
                                                            switch (value.type) {
                                                              case import__22222222222222.enums.ApplicationTag.NULL:
                                                                resValue = null;
                                                                break;
                                                              case import__22222222222222.enums.ApplicationTag.BOOLEAN:
                                                                resValue = !!value.value;
                                                                break;
                                                              case import__22222222222222.enums.ApplicationTag.UNSIGNED_INTEGER:
                                                              case import__22222222222222.enums.ApplicationTag.SIGNED_INTEGER:
                                                              case import__22222222222222.enums.ApplicationTag.REAL:
                                                              case import__22222222222222.enums.ApplicationTag.DOUBLE:
                                                              case import__22222222222222.enums.ApplicationTag.CHARACTER_STRING:
                                                                resValue = value.value;
                                                                break;
                                                              case import__22222222222222.enums.ApplicationTag.DATE:
                                                              case import__22222222222222.enums.ApplicationTag.TIME:
                                                              case import__22222222222222.enums.ApplicationTag.TIMESTAMP:
                                                                resValue = value.value;
                                                                break;
                                                              case import__22222222222222.enums.ApplicationTag.BIT_STRING:
                                                                if (ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[parentType][objId2]) {
                                                                  resValue = handleBitString22222222222222(
                                                                    value.value.value,
                                                                    value.value.bitsUsed,
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[parentType][objId2]
                                                                  );
                                                                } else if (PropertyIdentifierToEnumMap22222222222222[objId2]) {
                                                                  resValue = handleBitString22222222222222(
                                                                    value.value.value,
                                                                    value.value.bitsUsed,
                                                                    PropertyIdentifierToEnumMap22222222222222[objId2]
                                                                  );
                                                                } else {
                                                                  if (parentType !== import__22222222222222.enums.ObjectType.BITSTRING_VALUE) {
                                                                    console.log(
                                                                      "Unknown value for BIT_STRING type for objId " + import__22222222222222.enums.getEnumName(import__22222222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__22222222222222.enums.getEnumName(import__22222222222222.enums.ObjectType, parentType)
                                                                    );
                                                                  }
                                                                  resValue = value.value;
                                                                }
                                                                break;
                                                              case import__22222222222222.enums.ApplicationTag.ENUMERATED:
                                                                if (ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[parentType][objId2]) {
                                                                  resValue = import__22222222222222.enums.getEnumName(
                                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222222[parentType][objId2],
                                                                    value.value
                                                                  );
                                                                } else if (PropertyIdentifierToEnumMap22222222222222[objId2]) {
                                                                  resValue = import__22222222222222.enums.getEnumName(
                                                                    PropertyIdentifierToEnumMap22222222222222[objId2],
                                                                    value.value
                                                                  );
                                                                } else {
                                                                  console.log(
                                                                    "Unknown value for ENUMERATED type for objId " + import__22222222222222.enums.getEnumName(import__22222222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__22222222222222.enums.getEnumName(import__22222222222222.enums.ObjectType, parentType)
                                                                  );
                                                                  resValue = value.value;
                                                                }
                                                                break;
                                                              case import__22222222222222.enums.ApplicationTag.OBJECTIDENTIFIER:
                                                                if (objId2 === import__22222222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__22222222222222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__22222222222222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                                                                  resValue = value.value;
                                                                } else if (supportsMultiple) {
                                                                  const requestArray = [
                                                                    {
                                                                      objectId: value.value,
                                                                      properties: [{ id: 8 }]
                                                                    }
                                                                  ];
                                                                  bacnetClient.readPropertyMultiple(
                                                                    address,
                                                                    requestArray,
                                                                    (err, resValue2) => {
                                                                      parseDeviceObject22222222222222(address, resValue2, value.value, true, callback);
                                                                    }
                                                                  );
                                                                  return;
                                                                } else {
                                                                  getAllPropertiesManually22222222222222(address, value.value, (result) => {
                                                                    parseDeviceObject22222222222222(address, result, value.value, false, callback);
                                                                  });
                                                                  return;
                                                                }
                                                                break;
                                                              case import__22222222222222.enums.ApplicationTag.OCTET_STRING:
                                                                resValue = value.value;
                                                                break;
                                                              case import__22222222222222.enums.ApplicationTag.ERROR:
                                                                resValue = {
                                                                  errorClass: import__22222222222222.enums.getEnumName(
                                                                    import__22222222222222.enums.ErrorClass,
                                                                    value.value.errorClass
                                                                  ),
                                                                  errorCode: import__22222222222222.enums.getEnumName(import__22222222222222.enums.ErrorCode, value.value.errorCode)
                                                                };
                                                                break;
                                                              case import__22222222222222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                                                              case import__22222222222222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                                                              case import__22222222222222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                                                              case import__22222222222222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                                resValue = value.value;
                                                                break;
                                                              case import__22222222222222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                                                parseValue22222222222222(
                                                                  address,
                                                                  objId2,
                                                                  parentType,
                                                                  value.value,
                                                                  supportsMultiple,
                                                                  callback
                                                                );
                                                                return;
                                                              case import__22222222222222.enums.ApplicationTag.READ_ACCESS_RESULT:
                                                                resValue = value.value;
                                                                break;
                                                              default:
                                                                console.log(
                                                                  "unknown type " + value.type + ": " + JSON.stringify(value)
                                                                );
                                                                resValue = value;
                                                            }
                                                          }
                                                          setImmediate(() => callback(resValue));
                                                        }
                                                        function parseDeviceObject22222222222222(address, obj, parent, supportsMultiple, callback) {
                                                          if (debug422222222222222) {
                                                            console.log(
                                                              "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                                                            );
                                                          }
                                                          if (!obj) {
                                                            console.log("object not valid on parse device object");
                                                            return;
                                                          }
                                                          if (!obj.values || !Array.isArray(obj.values)) {
                                                            console.log("No device or invalid response");
                                                            callback({ ERROR: "No device or invalid response" });
                                                            return;
                                                          }
                                                          let cbCount = 0;
                                                          let objDef = {};
                                                          const finalize = () => {
                                                            Object.keys(objDef).forEach((devId) => {
                                                              Object.keys(objDef[devId]).forEach((objId2) => {
                                                                if (objDef[devId][objId2].length === 1) {
                                                                  objDef[devId][objId2] = objDef[devId][objId2][0];
                                                                }
                                                              });
                                                            });
                                                            if (obj.values.length === 1) {
                                                              objDef = objDef[obj.values[0].objectId.instance];
                                                            }
                                                            if (debug422222222222222) {
                                                              console.log(
                                                                "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                                                              );
                                                            }
                                                            callback(objDef);
                                                          };
                                                          obj.values.forEach((devBaseObj) => {
                                                            if (!devBaseObj.objectId) {
                                                              console.log("No device Id found in object data");
                                                              return;
                                                            }
                                                            if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                                                              console.log("No device type or instance found in object data");
                                                              return;
                                                            }
                                                            if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                                                              console.log("No device values response");
                                                              return;
                                                            }
                                                            const deviceId = devBaseObj.objectId.instance;
                                                            objDef[deviceId] = {};
                                                            devBaseObj.values.forEach((devObj) => {
                                                              let objId2 = import__22222222222222.enums.getEnumName(import__22222222222222.enums.PropertyIdentifier, devObj.id);
                                                              if (devObj.index !== 4294967295) {
                                                                objId2 += "-" + devObj.index;
                                                              }
                                                              if (debug422222222222222) {
                                                                console.log("Handle Object property:", deviceId, objId2, devObj.value);
                                                              }
                                                              devObj.value.forEach((val) => {
                                                                if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                                                  objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                                  objDef[deviceId][objId2].push(val.value);
                                                                  return;
                                                                }
                                                                cbCount++;
                                                                parseValue22222222222222(
                                                                  address,
                                                                  devObj.id,
                                                                  parent.type,
                                                                  val,
                                                                  supportsMultiple,
                                                                  (parsedValue) => {
                                                                    if (debug422222222222222) {
                                                                      console.log(
                                                                        "RETURN parsedValue",
                                                                        deviceId,
                                                                        objId2,
                                                                        devObj.value,
                                                                        parsedValue
                                                                      );
                                                                    }
                                                                    objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                                    objDef[deviceId][objId2].push(parsedValue);
                                                                    if (!--cbCount) {
                                                                      finalize();
                                                                    }
                                                                  }
                                                                );
                                                              });
                                                            });
                                                          });
                                                          if (cbCount === 0) {
                                                            finalize();
                                                          }
                                                        }
                                                        var limitToDevice22222222222222 = null;
                                                        if (import_process22222222222222.default.argv.length === 3) {
                                                          limitToDevice22222222222222 = parseInt(import_process22222222222222.default.argv[2]);
                                                          if (isNaN(limitToDevice22222222222222)) {
                                                            limitToDevice22222222222222 = null;
                                                          }
                                                        }
                                                        var node_bacnet_default22222222222222 = Client22222222222222;
                                                      }
                                                    });
                                                    var node_bacnet_exports2222222222222 = {};
                                                    __export2222222222222(node_bacnet_exports2222222222222, {
                                                      _: () => import_underscore2222222222222.default,
                                                      bacnetErrorToString: () => bacnetErrorToString2222222222222,
                                                      default: () => node_bacnet_default2222222222222,
                                                      enums: () => enum_exports2222222222222,
                                                      parseValue: () => parseValue2222222222222
                                                    });
                                                    module2222222222222.exports = __toCommonJS2222222222222(node_bacnet_exports2222222222222);
                                                    var enum_exports2222222222222 = {};
                                                    __export2222222222222(enum_exports2222222222222, {
                                                      ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL2222222222222,
                                                      ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS2222222222222,
                                                      ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG2222222222222,
                                                      ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES2222222222222,
                                                      ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE2222222222222,
                                                      ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT2222222222222,
                                                      ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE2222222222222,
                                                      ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY2222222222222,
                                                      ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID2222222222222,
                                                      ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY2222222222222,
                                                      ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY2222222222222,
                                                      AbortReason: () => AbortReason2222222222222,
                                                      AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable2222222222222,
                                                      AccessCredentialDisable: () => AccessCredentialDisable2222222222222,
                                                      AccessCredentialDisableReason: () => AccessCredentialDisableReason2222222222222,
                                                      AccessEvent: () => AccessEvent2222222222222,
                                                      AccessPassbackMode: () => AccessPassbackMode2222222222222,
                                                      AccessUserType: () => AccessUserType2222222222222,
                                                      AccessZoneOccupancyState: () => AccessZoneOccupancyState2222222222222,
                                                      Action: () => Action2222222222222,
                                                      ApplicationTag: () => ApplicationTag2222222222222,
                                                      ApplicationTagName: () => ApplicationTagName2222222222222,
                                                      AuthenticationFactorType: () => AuthenticationFactorType2222222222222,
                                                      AuthenticationStatus: () => AuthenticationStatus2222222222222,
                                                      AuthorizationExemption: () => AuthorizationExemption2222222222222,
                                                      AuthorizationMode: () => AuthorizationMode2222222222222,
                                                      BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH3222222222222,
                                                      BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP2222222222222,
                                                      BackupState: () => BackupState2222222222222,
                                                      BinaryLightingPV: () => BinaryLightingPV2222222222222,
                                                      BinaryPV: () => BinaryPV2222222222222,
                                                      BvlcResultFormat: () => BvlcResultFormat2222222222222,
                                                      BvlcResultPurpose: () => BvlcResultPurpose2222222222222,
                                                      CharacterStringEncoding: () => CharacterStringEncoding2222222222222,
                                                      ConfirmedServiceChoice: () => ConfirmedServiceChoice2222222222222,
                                                      CovType: () => CovType2222222222222,
                                                      DaysOfWeek: () => DaysOfWeek2222222222222,
                                                      DeviceStatus: () => DeviceStatus2222222222222,
                                                      DoorAlarmState: () => DoorAlarmState2222222222222,
                                                      DoorSecuredStatus: () => DoorSecuredStatus2222222222222,
                                                      DoorStatus: () => DoorStatus2222222222222,
                                                      DoorValue: () => DoorValue2222222222222,
                                                      EnableDisable: () => EnableDisable2222222222222,
                                                      EngineeringUnits: () => EngineeringUnits2222222222222,
                                                      ErrorClass: () => ErrorClass2222222222222,
                                                      ErrorClassName: () => ErrorClassName2222222222222,
                                                      ErrorCode: () => ErrorCode2222222222222,
                                                      ErrorCodeName: () => ErrorCodeName2222222222222,
                                                      EscalatorFault: () => EscalatorFault2222222222222,
                                                      EscalatorMode: () => EscalatorMode2222222222222,
                                                      EscalatorOperationDirection: () => EscalatorOperationDirection2222222222222,
                                                      EventState: () => EventState2222222222222,
                                                      EventTransitionBits: () => EventTransitionBits2222222222222,
                                                      EventType: () => EventType2222222222222,
                                                      FaultType: () => FaultType2222222222222,
                                                      FileAccessMethod: () => FileAccessMethod2222222222222,
                                                      IPMode: () => IPMode2222222222222,
                                                      LifeSafetyMode: () => LifeSafetyMode2222222222222,
                                                      LifeSafetyOperation: () => LifeSafetyOperation2222222222222,
                                                      LifeSafetyState: () => LifeSafetyState2222222222222,
                                                      LiftCarDirection: () => LiftCarDirection2222222222222,
                                                      LiftCarDoorCommand: () => LiftCarDoorCommand2222222222222,
                                                      LiftCarDriveStatus: () => LiftCarDriveStatus2222222222222,
                                                      LiftCarMode: () => LiftCarMode2222222222222,
                                                      LiftFault: () => LiftFault2222222222222,
                                                      LiftGroupMode: () => LiftGroupMode2222222222222,
                                                      LightingInProgress: () => LightingInProgress2222222222222,
                                                      LightingOperation: () => LightingOperation2222222222222,
                                                      LightingTransition: () => LightingTransition2222222222222,
                                                      LimitEnable: () => LimitEnable2222222222222,
                                                      LockStatus: () => LockStatus2222222222222,
                                                      LogStatus: () => LogStatus2222222222222,
                                                      LoggingType: () => LoggingType2222222222222,
                                                      Maintenance: () => Maintenance2222222222222,
                                                      MaxApduLengthAccepted: () => MaxApduLengthAccepted2222222222222,
                                                      MaxSegmentsAccepted: () => MaxSegmentsAccepted2222222222222,
                                                      NetworkLayerMessageType: () => NetworkLayerMessageType2222222222222,
                                                      NetworkNumberQuality: () => NetworkNumberQuality2222222222222,
                                                      NetworkPortCommand: () => NetworkPortCommand2222222222222,
                                                      NetworkType: () => NetworkType2222222222222,
                                                      NodeType: () => NodeType2222222222222,
                                                      NotifyType: () => NotifyType2222222222222,
                                                      NpduControlBit: () => NpduControlBit2222222222222,
                                                      NpduControlPriority: () => NpduControlPriority2222222222222,
                                                      ObjectType: () => ObjectType2222222222222,
                                                      ObjectTypesSupported: () => ObjectTypesSupported2222222222222,
                                                      PDU_TYPE_MASK: () => PDU_TYPE_MASK2222222222222,
                                                      PduConReqBit: () => PduConReqBit2222222222222,
                                                      PduSegAckBit: () => PduSegAckBit2222222222222,
                                                      PduType: () => PduType2222222222222,
                                                      Polarity: () => Polarity2222222222222,
                                                      ProgramError: () => ProgramError2222222222222,
                                                      ProgramRequest: () => ProgramRequest2222222222222,
                                                      ProgramState: () => ProgramState2222222222222,
                                                      PropertyIdentifier: () => PropertyIdentifier2222222222222,
                                                      PropertyStates: () => PropertyStates2222222222222,
                                                      ProtocolLevel: () => ProtocolLevel2222222222222,
                                                      ReadRangeType: () => ReadRangeType2222222222222,
                                                      ReinitializedState: () => ReinitializedState2222222222222,
                                                      RejectReason: () => RejectReason2222222222222,
                                                      Relationship: () => Relationship2222222222222,
                                                      Reliability: () => Reliability2222222222222,
                                                      RestartReason: () => RestartReason2222222222222,
                                                      ResultFlags: () => ResultFlags2222222222222,
                                                      SecurityLevel: () => SecurityLevel2222222222222,
                                                      SecurityPolicy: () => SecurityPolicy2222222222222,
                                                      Segmentation: () => Segmentation2222222222222,
                                                      ServicesSupported: () => ServicesSupported2222222222222,
                                                      ShedState: () => ShedState2222222222222,
                                                      SilencedState: () => SilencedState2222222222222,
                                                      StatusFlags: () => StatusFlags2222222222222,
                                                      TimeStamp: () => TimeStamp2222222222222,
                                                      TimerState: () => TimerState2222222222222,
                                                      TimerTransition: () => TimerTransition2222222222222,
                                                      UnconfirmedServiceChoice: () => UnconfirmedServiceChoice2222222222222,
                                                      VTClass: () => VTClass2222222222222,
                                                      WriteStatus: () => WriteStatus2222222222222,
                                                      getEnumName: () => getEnumName2222222222222
                                                    });
                                                    var import_debug4222222222222 = __toESM2222222222222(require("debug"));
                                                    var debug5222222222222 = (0, import_debug4222222222222.default)("bacnet=enum=debug");
                                                    var trace3222222222222 = (0, import_debug4222222222222.default)("bacnet=enum=trace");
                                                    function invertEnum2222222222222(enumToInvert) {
                                                      const invertedEnum = {};
                                                      Object.keys(enumToInvert).forEach((key) => {
                                                        invertedEnum[enumToInvert[key]] = key;
                                                      });
                                                      return invertedEnum;
                                                    }
                                                    function getEnumName2222222222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                                                      if (!Number.isInteger(value)) {
                                                        throw new Error(
                                                          'getEnumName() can only be passed an integer value, was given "' + value + '"'
                                                        );
                                                      }
                                                      let foundEntry;
                                                      try {
                                                        const invertedGroup = invertEnum2222222222222(group);
                                                        foundEntry = invertedGroup[value];
                                                        if (foundEntry === void 0 && undefinedFallbackValue) {
                                                          foundEntry = undefinedFallbackValue;
                                                        }
                                                        if (foundEntry === void 0) {
                                                          foundEntry = value.toString();
                                                        } else if (addNumberValue) {
                                                          foundEntry += "(" + value + ")";
                                                        }
                                                      } catch (e) {
                                                        trace3222222222222(e.message);
                                                        foundEntry = null;
                                                      }
                                                      return foundEntry;
                                                    }
                                                    var PDU_TYPE_MASK2222222222222 = 240;
                                                    var ASN1_MAX_OBJECT2222222222222 = 1023;
                                                    var ASN1_INSTANCE_BITS2222222222222 = 22;
                                                    var ASN1_MAX_INSTANCE2222222222222 = 4194303;
                                                    var ASN1_MAX_BITSTRING_BYTES2222222222222 = 15;
                                                    var ASN1_ARRAY_ALL2222222222222 = 4294967295;
                                                    var ASN1_NO_PRIORITY2222222222222 = 0;
                                                    var ASN1_MIN_PRIORITY2222222222222 = 1;
                                                    var ASN1_MAX_PRIORITY2222222222222 = 16;
                                                    var ASN1_MAX_APPLICATION_TAG2222222222222 = 16;
                                                    var ASN1_MAX_OBJECT_TYPE2222222222222 = 1024;
                                                    var ASN1_MAX_PROPERTY_ID2222222222222 = 4194303;
                                                    var BVLL_TYPE_BACNET_IP2222222222222 = 129;
                                                    var BVLC_HEADER_LENGTH3222222222222 = 4;
                                                    var ConfirmedServiceChoice2222222222222 = /* @__PURE__ */ ((ConfirmedServiceChoice22222222222222) => {
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["READ_RANGE"] = 26] = "READ_RANGE";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                      ConfirmedServiceChoice22222222222222[ConfirmedServiceChoice22222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                      return ConfirmedServiceChoice22222222222222;
                                                    })(ConfirmedServiceChoice2222222222222 || {});
                                                    var UnconfirmedServiceChoice2222222222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice22222222222222) => {
                                                      UnconfirmedServiceChoice22222222222222[UnconfirmedServiceChoice22222222222222["I_AM"] = 0] = "I_AM";
                                                      UnconfirmedServiceChoice22222222222222[UnconfirmedServiceChoice22222222222222["I_HAVE"] = 1] = "I_HAVE";
                                                      UnconfirmedServiceChoice22222222222222[UnconfirmedServiceChoice22222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                                                      UnconfirmedServiceChoice22222222222222[UnconfirmedServiceChoice22222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                      UnconfirmedServiceChoice22222222222222[UnconfirmedServiceChoice22222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                      UnconfirmedServiceChoice22222222222222[UnconfirmedServiceChoice22222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                                                      UnconfirmedServiceChoice22222222222222[UnconfirmedServiceChoice22222222222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                                                      UnconfirmedServiceChoice22222222222222[UnconfirmedServiceChoice22222222222222["WHO_HAS"] = 7] = "WHO_HAS";
                                                      UnconfirmedServiceChoice22222222222222[UnconfirmedServiceChoice22222222222222["WHO_IS"] = 8] = "WHO_IS";
                                                      UnconfirmedServiceChoice22222222222222[UnconfirmedServiceChoice22222222222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                                                      UnconfirmedServiceChoice22222222222222[UnconfirmedServiceChoice22222222222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                                                      UnconfirmedServiceChoice22222222222222[UnconfirmedServiceChoice22222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                      return UnconfirmedServiceChoice22222222222222;
                                                    })(UnconfirmedServiceChoice2222222222222 || {});
                                                    var AbortReason2222222222222 = /* @__PURE__ */ ((AbortReason22222222222222) => {
                                                      AbortReason22222222222222[AbortReason22222222222222["OTHER"] = 0] = "OTHER";
                                                      AbortReason22222222222222[AbortReason22222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                      AbortReason22222222222222[AbortReason22222222222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                                                      AbortReason22222222222222[AbortReason22222222222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                      AbortReason22222222222222[AbortReason22222222222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                                                      AbortReason22222222222222[AbortReason22222222222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                                                      AbortReason22222222222222[AbortReason22222222222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                                                      AbortReason22222222222222[AbortReason22222222222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                                                      AbortReason22222222222222[AbortReason22222222222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                                                      AbortReason22222222222222[AbortReason22222222222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                                                      AbortReason22222222222222[AbortReason22222222222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                                                      AbortReason22222222222222[AbortReason22222222222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                                                      return AbortReason22222222222222;
                                                    })(AbortReason2222222222222 || {});
                                                    var RejectReason2222222222222 = /* @__PURE__ */ ((RejectReason22222222222222) => {
                                                      RejectReason22222222222222[RejectReason22222222222222["OTHER"] = 0] = "OTHER";
                                                      RejectReason22222222222222[RejectReason22222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                      RejectReason22222222222222[RejectReason22222222222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                                                      RejectReason22222222222222[RejectReason22222222222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                                                      RejectReason22222222222222[RejectReason22222222222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                                                      RejectReason22222222222222[RejectReason22222222222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                                                      RejectReason22222222222222[RejectReason22222222222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                                                      RejectReason22222222222222[RejectReason22222222222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                                                      RejectReason22222222222222[RejectReason22222222222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                                                      RejectReason22222222222222[RejectReason22222222222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                                                      return RejectReason22222222222222;
                                                    })(RejectReason2222222222222 || {});
                                                    var ErrorClass2222222222222 = /* @__PURE__ */ ((ErrorClass22222222222222) => {
                                                      ErrorClass22222222222222[ErrorClass22222222222222["DEVICE"] = 0] = "DEVICE";
                                                      ErrorClass22222222222222[ErrorClass22222222222222["OBJECT"] = 1] = "OBJECT";
                                                      ErrorClass22222222222222[ErrorClass22222222222222["PROPERTY"] = 2] = "PROPERTY";
                                                      ErrorClass22222222222222[ErrorClass22222222222222["RESOURCES"] = 3] = "RESOURCES";
                                                      ErrorClass22222222222222[ErrorClass22222222222222["SECURITY"] = 4] = "SECURITY";
                                                      ErrorClass22222222222222[ErrorClass22222222222222["SERVICES"] = 5] = "SERVICES";
                                                      ErrorClass22222222222222[ErrorClass22222222222222["VT"] = 6] = "VT";
                                                      ErrorClass22222222222222[ErrorClass22222222222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                                                      return ErrorClass22222222222222;
                                                    })(ErrorClass2222222222222 || {});
                                                    var ErrorClassName2222222222222 = invertEnum2222222222222(
                                                      ErrorClass2222222222222
                                                    );
                                                    var ErrorCode2222222222222 = /* @__PURE__ */ ((ErrorCode22222222222222) => {
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["BUSY"] = 82] = "BUSY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["FILE_FULL"] = 128] = "FILE_FULL";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["OTHER"] = 0] = "OTHER";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["SUCCESS"] = 84] = "SUCCESS";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["TIMEOUT"] = 30] = "TIMEOUT";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                                                      ErrorCode22222222222222[ErrorCode22222222222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                                                      return ErrorCode22222222222222;
                                                    })(ErrorCode2222222222222 || {});
                                                    var ErrorCodeName2222222222222 = invertEnum2222222222222(
                                                      ErrorCode2222222222222
                                                    );
                                                    var AccessAuthenticationFactorDisable2222222222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable22222222222222) => {
                                                      AccessAuthenticationFactorDisable22222222222222[AccessAuthenticationFactorDisable22222222222222["NONE"] = 0] = "NONE";
                                                      AccessAuthenticationFactorDisable22222222222222[AccessAuthenticationFactorDisable22222222222222["DISABLED"] = 1] = "DISABLED";
                                                      AccessAuthenticationFactorDisable22222222222222[AccessAuthenticationFactorDisable22222222222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                                                      AccessAuthenticationFactorDisable22222222222222[AccessAuthenticationFactorDisable22222222222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                                                      AccessAuthenticationFactorDisable22222222222222[AccessAuthenticationFactorDisable22222222222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                                                      AccessAuthenticationFactorDisable22222222222222[AccessAuthenticationFactorDisable22222222222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                                                      return AccessAuthenticationFactorDisable22222222222222;
                                                    })(AccessAuthenticationFactorDisable2222222222222 || {});
                                                    var AccessCredentialDisable2222222222222 = /* @__PURE__ */ ((AccessCredentialDisable22222222222222) => {
                                                      AccessCredentialDisable22222222222222[AccessCredentialDisable22222222222222["NONE"] = 0] = "NONE";
                                                      AccessCredentialDisable22222222222222[AccessCredentialDisable22222222222222["DISABLE"] = 1] = "DISABLE";
                                                      AccessCredentialDisable22222222222222[AccessCredentialDisable22222222222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                                                      AccessCredentialDisable22222222222222[AccessCredentialDisable22222222222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                                                      return AccessCredentialDisable22222222222222;
                                                    })(AccessCredentialDisable2222222222222 || {});
                                                    var AccessCredentialDisableReason2222222222222 = /* @__PURE__ */ ((AccessCredentialDisableReason22222222222222) => {
                                                      AccessCredentialDisableReason22222222222222[AccessCredentialDisableReason22222222222222["DISABLED"] = 0] = "DISABLED";
                                                      AccessCredentialDisableReason22222222222222[AccessCredentialDisableReason22222222222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                                                      AccessCredentialDisableReason22222222222222[AccessCredentialDisableReason22222222222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                                                      AccessCredentialDisableReason22222222222222[AccessCredentialDisableReason22222222222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                                                      AccessCredentialDisableReason22222222222222[AccessCredentialDisableReason22222222222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                                                      AccessCredentialDisableReason22222222222222[AccessCredentialDisableReason22222222222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                                                      AccessCredentialDisableReason22222222222222[AccessCredentialDisableReason22222222222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                                                      AccessCredentialDisableReason22222222222222[AccessCredentialDisableReason22222222222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                                                      AccessCredentialDisableReason22222222222222[AccessCredentialDisableReason22222222222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                                                      AccessCredentialDisableReason22222222222222[AccessCredentialDisableReason22222222222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                                                      return AccessCredentialDisableReason22222222222222;
                                                    })(AccessCredentialDisableReason2222222222222 || {});
                                                    var AccessEvent2222222222222 = /* @__PURE__ */ ((AccessEvent22222222222222) => {
                                                      AccessEvent22222222222222[AccessEvent22222222222222["NONE"] = 0] = "NONE";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["GRANTED"] = 1] = "GRANTED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["MUSTER"] = 2] = "MUSTER";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DURESS"] = 4] = "DURESS";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["TRACE"] = 5] = "TRACE";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                                                      AccessEvent22222222222222[AccessEvent22222222222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                                                      return AccessEvent22222222222222;
                                                    })(AccessEvent2222222222222 || {});
                                                    var AccessPassbackMode2222222222222 = /* @__PURE__ */ ((AccessPassbackMode22222222222222) => {
                                                      AccessPassbackMode22222222222222[AccessPassbackMode22222222222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                                                      AccessPassbackMode22222222222222[AccessPassbackMode22222222222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                                                      AccessPassbackMode22222222222222[AccessPassbackMode22222222222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                                                      return AccessPassbackMode22222222222222;
                                                    })(AccessPassbackMode2222222222222 || {});
                                                    var AccessUserType2222222222222 = /* @__PURE__ */ ((AccessUserType22222222222222) => {
                                                      AccessUserType22222222222222[AccessUserType22222222222222["ASSET"] = 0] = "ASSET";
                                                      AccessUserType22222222222222[AccessUserType22222222222222["GROUP"] = 1] = "GROUP";
                                                      AccessUserType22222222222222[AccessUserType22222222222222["PERSON"] = 2] = "PERSON";
                                                      return AccessUserType22222222222222;
                                                    })(AccessUserType2222222222222 || {});
                                                    var AccessZoneOccupancyState2222222222222 = /* @__PURE__ */ ((AccessZoneOccupancyState22222222222222) => {
                                                      AccessZoneOccupancyState22222222222222[AccessZoneOccupancyState22222222222222["NORMAL"] = 0] = "NORMAL";
                                                      AccessZoneOccupancyState22222222222222[AccessZoneOccupancyState22222222222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                                                      AccessZoneOccupancyState22222222222222[AccessZoneOccupancyState22222222222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                                                      AccessZoneOccupancyState22222222222222[AccessZoneOccupancyState22222222222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                                                      AccessZoneOccupancyState22222222222222[AccessZoneOccupancyState22222222222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                                                      AccessZoneOccupancyState22222222222222[AccessZoneOccupancyState22222222222222["DISABLED"] = 5] = "DISABLED";
                                                      AccessZoneOccupancyState22222222222222[AccessZoneOccupancyState22222222222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                                                      return AccessZoneOccupancyState22222222222222;
                                                    })(AccessZoneOccupancyState2222222222222 || {});
                                                    var Action2222222222222 = /* @__PURE__ */ ((Action22222222222222) => {
                                                      Action22222222222222[Action22222222222222["DIRECT"] = 0] = "DIRECT";
                                                      Action22222222222222[Action22222222222222["REVERSE"] = 1] = "REVERSE";
                                                      return Action22222222222222;
                                                    })(Action2222222222222 || {});
                                                    var AuthenticationFactorType2222222222222 = /* @__PURE__ */ ((AuthenticationFactorType22222222222222) => {
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["UNDEFINED"] = 0] = "UNDEFINED";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["ERROR"] = 1] = "ERROR";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["CUSTOM"] = 2] = "CUSTOM";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["WIEGAND26"] = 8] = "WIEGAND26";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["WIEGAND37"] = 9] = "WIEGAND37";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["FASC_N"] = 13] = "FASC_N";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["GSA75"] = 17] = "GSA75";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["CHUID"] = 18] = "CHUID";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["GUID"] = 20] = "GUID";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["CBEFF_A"] = 21] = "CBEFF_A";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["CBEFF_B"] = 22] = "CBEFF_B";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["CBEFF_C"] = 23] = "CBEFF_C";
                                                      AuthenticationFactorType22222222222222[AuthenticationFactorType22222222222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                                                      return AuthenticationFactorType22222222222222;
                                                    })(AuthenticationFactorType2222222222222 || {});
                                                    var AuthenticationStatus2222222222222 = /* @__PURE__ */ ((AuthenticationStatus22222222222222) => {
                                                      AuthenticationStatus22222222222222[AuthenticationStatus22222222222222["NOT_READY"] = 0] = "NOT_READY";
                                                      AuthenticationStatus22222222222222[AuthenticationStatus22222222222222["READY"] = 1] = "READY";
                                                      AuthenticationStatus22222222222222[AuthenticationStatus22222222222222["DISABLED"] = 2] = "DISABLED";
                                                      AuthenticationStatus22222222222222[AuthenticationStatus22222222222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                                                      AuthenticationStatus22222222222222[AuthenticationStatus22222222222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                                                      AuthenticationStatus22222222222222[AuthenticationStatus22222222222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                                                      AuthenticationStatus22222222222222[AuthenticationStatus22222222222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                                                      return AuthenticationStatus22222222222222;
                                                    })(AuthenticationStatus2222222222222 || {});
                                                    var AuthorizationExemption2222222222222 = /* @__PURE__ */ ((AuthorizationExemption22222222222222) => {
                                                      AuthorizationExemption22222222222222[AuthorizationExemption22222222222222["PASSBACK"] = 0] = "PASSBACK";
                                                      AuthorizationExemption22222222222222[AuthorizationExemption22222222222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                                                      AuthorizationExemption22222222222222[AuthorizationExemption22222222222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                                                      AuthorizationExemption22222222222222[AuthorizationExemption22222222222222["LOCKOUT"] = 3] = "LOCKOUT";
                                                      AuthorizationExemption22222222222222[AuthorizationExemption22222222222222["DENY"] = 4] = "DENY";
                                                      AuthorizationExemption22222222222222[AuthorizationExemption22222222222222["VERIFICATION"] = 5] = "VERIFICATION";
                                                      AuthorizationExemption22222222222222[AuthorizationExemption22222222222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                                                      return AuthorizationExemption22222222222222;
                                                    })(AuthorizationExemption2222222222222 || {});
                                                    var AuthorizationMode2222222222222 = /* @__PURE__ */ ((AuthorizationMode22222222222222) => {
                                                      AuthorizationMode22222222222222[AuthorizationMode22222222222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                                                      AuthorizationMode22222222222222[AuthorizationMode22222222222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                                                      AuthorizationMode22222222222222[AuthorizationMode22222222222222["DENY_ALL"] = 2] = "DENY_ALL";
                                                      AuthorizationMode22222222222222[AuthorizationMode22222222222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                                                      AuthorizationMode22222222222222[AuthorizationMode22222222222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                                                      AuthorizationMode22222222222222[AuthorizationMode22222222222222["NONE"] = 5] = "NONE";
                                                      return AuthorizationMode22222222222222;
                                                    })(AuthorizationMode2222222222222 || {});
                                                    var BackupState2222222222222 = /* @__PURE__ */ ((BackupState22222222222222) => {
                                                      BackupState22222222222222[BackupState22222222222222["IDLE"] = 0] = "IDLE";
                                                      BackupState22222222222222[BackupState22222222222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                                                      BackupState22222222222222[BackupState22222222222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                                                      BackupState22222222222222[BackupState22222222222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                                                      BackupState22222222222222[BackupState22222222222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                                                      BackupState22222222222222[BackupState22222222222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                                                      BackupState22222222222222[BackupState22222222222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                                                      return BackupState22222222222222;
                                                    })(BackupState2222222222222 || {});
                                                    var BinaryLightingPV2222222222222 = /* @__PURE__ */ ((BinaryLightingPV22222222222222) => {
                                                      BinaryLightingPV22222222222222[BinaryLightingPV22222222222222["OFF"] = 0] = "OFF";
                                                      BinaryLightingPV22222222222222[BinaryLightingPV22222222222222["ON"] = 1] = "ON";
                                                      BinaryLightingPV22222222222222[BinaryLightingPV22222222222222["WARN"] = 2] = "WARN";
                                                      BinaryLightingPV22222222222222[BinaryLightingPV22222222222222["WARN_OFF"] = 3] = "WARN_OFF";
                                                      BinaryLightingPV22222222222222[BinaryLightingPV22222222222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                                                      BinaryLightingPV22222222222222[BinaryLightingPV22222222222222["STOP"] = 5] = "STOP";
                                                      return BinaryLightingPV22222222222222;
                                                    })(BinaryLightingPV2222222222222 || {});
                                                    var BinaryPV2222222222222 = /* @__PURE__ */ ((BinaryPV22222222222222) => {
                                                      BinaryPV22222222222222[BinaryPV22222222222222["INACTIVE"] = 0] = "INACTIVE";
                                                      BinaryPV22222222222222[BinaryPV22222222222222["ACTIVE"] = 1] = "ACTIVE";
                                                      return BinaryPV22222222222222;
                                                    })(BinaryPV2222222222222 || {});
                                                    var DeviceStatus2222222222222 = /* @__PURE__ */ ((DeviceStatus22222222222222) => {
                                                      DeviceStatus22222222222222[DeviceStatus22222222222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                                                      DeviceStatus22222222222222[DeviceStatus22222222222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                                                      DeviceStatus22222222222222[DeviceStatus22222222222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                                                      DeviceStatus22222222222222[DeviceStatus22222222222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                                                      DeviceStatus22222222222222[DeviceStatus22222222222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                                                      DeviceStatus22222222222222[DeviceStatus22222222222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                                                      return DeviceStatus22222222222222;
                                                    })(DeviceStatus2222222222222 || {});
                                                    var DoorAlarmState2222222222222 = /* @__PURE__ */ ((DoorAlarmState22222222222222) => {
                                                      DoorAlarmState22222222222222[DoorAlarmState22222222222222["NORMAL"] = 0] = "NORMAL";
                                                      DoorAlarmState22222222222222[DoorAlarmState22222222222222["ALARM"] = 1] = "ALARM";
                                                      DoorAlarmState22222222222222[DoorAlarmState22222222222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                                                      DoorAlarmState22222222222222[DoorAlarmState22222222222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                                                      DoorAlarmState22222222222222[DoorAlarmState22222222222222["TAMPER"] = 4] = "TAMPER";
                                                      DoorAlarmState22222222222222[DoorAlarmState22222222222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                                                      DoorAlarmState22222222222222[DoorAlarmState22222222222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                                                      DoorAlarmState22222222222222[DoorAlarmState22222222222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                                                      DoorAlarmState22222222222222[DoorAlarmState22222222222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                                                      return DoorAlarmState22222222222222;
                                                    })(DoorAlarmState2222222222222 || {});
                                                    var DoorSecuredStatus2222222222222 = /* @__PURE__ */ ((DoorSecuredStatus22222222222222) => {
                                                      DoorSecuredStatus22222222222222[DoorSecuredStatus22222222222222["SECURED"] = 0] = "SECURED";
                                                      DoorSecuredStatus22222222222222[DoorSecuredStatus22222222222222["UNSECURED"] = 1] = "UNSECURED";
                                                      DoorSecuredStatus22222222222222[DoorSecuredStatus22222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                      return DoorSecuredStatus22222222222222;
                                                    })(DoorSecuredStatus2222222222222 || {});
                                                    var DoorStatus2222222222222 = /* @__PURE__ */ ((DoorStatus22222222222222) => {
                                                      DoorStatus22222222222222[DoorStatus22222222222222["CLOSED"] = 0] = "CLOSED";
                                                      DoorStatus22222222222222[DoorStatus22222222222222["OPENED"] = 1] = "OPENED";
                                                      DoorStatus22222222222222[DoorStatus22222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                      DoorStatus22222222222222[DoorStatus22222222222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                                                      DoorStatus22222222222222[DoorStatus22222222222222["UNUSED"] = 4] = "UNUSED";
                                                      DoorStatus22222222222222[DoorStatus22222222222222["NONE"] = 5] = "NONE";
                                                      DoorStatus22222222222222[DoorStatus22222222222222["CLOSING"] = 6] = "CLOSING";
                                                      DoorStatus22222222222222[DoorStatus22222222222222["OPENING"] = 7] = "OPENING";
                                                      DoorStatus22222222222222[DoorStatus22222222222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                                                      DoorStatus22222222222222[DoorStatus22222222222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                                                      return DoorStatus22222222222222;
                                                    })(DoorStatus2222222222222 || {});
                                                    var DoorValue2222222222222 = /* @__PURE__ */ ((DoorValue22222222222222) => {
                                                      DoorValue22222222222222[DoorValue22222222222222["LOCK"] = 0] = "LOCK";
                                                      DoorValue22222222222222[DoorValue22222222222222["UNLOCK"] = 1] = "UNLOCK";
                                                      DoorValue22222222222222[DoorValue22222222222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                                                      DoorValue22222222222222[DoorValue22222222222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                                                      return DoorValue22222222222222;
                                                    })(DoorValue2222222222222 || {});
                                                    var EngineeringUnits2222222222222 = /* @__PURE__ */ ((EngineeringUnits22222222222222) => {
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CURRENCY1"] = 105] = "CURRENCY1";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CURRENCY2"] = 106] = "CURRENCY2";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CURRENCY3"] = 107] = "CURRENCY3";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CURRENCY4"] = 108] = "CURRENCY4";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CURRENCY5"] = 109] = "CURRENCY5";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CURRENCY6"] = 110] = "CURRENCY6";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CURRENCY7"] = 111] = "CURRENCY7";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CURRENCY8"] = 112] = "CURRENCY8";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CURRENCY9"] = 113] = "CURRENCY9";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CURRENCY10"] = 114] = "CURRENCY10";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["AMPERES"] = 3] = "AMPERES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DECIBELS"] = 199] = "DECIBELS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["FARADS"] = 170] = "FARADS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["HENRYS"] = 171] = "HENRYS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["OHMS"] = 4] = "OHMS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["OHM_METERS"] = 172] = "OHM_METERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOHMS"] = 122] = "KILOHMS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGOHMS"] = 123] = "MEGOHMS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["SIEMENS"] = 173] = "SIEMENS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["TESLAS"] = 175] = "TESLAS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["VOLTS"] = 5] = "VOLTS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["WEBERS"] = 178] = "WEBERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["JOULES"] = 16] = "JOULES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOJOULES"] = 17] = "KILOJOULES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["BTUS"] = 20] = "BTUS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["THERMS"] = 21] = "THERMS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["TON_HOURS"] = 22] = "TON_HOURS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["NEWTON"] = 153] = "NEWTON";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["HERTZ"] = 27] = "HERTZ";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PER_HOUR"] = 131] = "PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MICROMETERS"] = 194] = "MICROMETERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOMETERS"] = 193] = "KILOMETERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["METERS"] = 31] = "METERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["INCHES"] = 32] = "INCHES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["FEET"] = 33] = "FEET";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CANDELAS"] = 179] = "CANDELAS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["LUMENS"] = 36] = "LUMENS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["LUXES"] = 37] = "LUXES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["GRAMS"] = 195] = "GRAMS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["TONS"] = 41] = "TONS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["WATTS"] = 47] = "WATTS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOWATTS"] = 48] = "KILOWATTS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PASCALS"] = 53] = "PASCALS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIBARS"] = 134] = "MILLIBARS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["BARS"] = 55] = "BARS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["YEARS"] = 67] = "YEARS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MONTHS"] = 68] = "MONTHS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["WEEKS"] = 69] = "WEEKS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DAYS"] = 70] = "DAYS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["HOURS"] = 71] = "HOURS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MINUTES"] = 72] = "MINUTES";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["SECONDS"] = 73] = "SECONDS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLILITERS"] = 197] = "MILLILITERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["LITERS"] = 82] = "LITERS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["US_GALLONS"] = 83] = "US_GALLONS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["NO_UNITS"] = 95] = "NO_UNITS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PERCENT"] = 98] = "PERCENT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PER_SECOND"] = 101] = "PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["RADIANS"] = 103] = "RADIANS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PER_MILLE"] = 207] = "PER_MILLE";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["BECQUERELS"] = 222] = "BECQUERELS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["GRAY"] = 225] = "GRAY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MICROGRAY"] = 227] = "MICROGRAY";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["SIEVERTS"] = 228] = "SIEVERTS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIREMS"] = 47814] = "MILLIREMS";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["PH"] = 234] = "PH";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                                                      EngineeringUnits22222222222222[EngineeringUnits22222222222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                                                      return EngineeringUnits22222222222222;
                                                    })(EngineeringUnits2222222222222 || {});
                                                    var EscalatorFault2222222222222 = /* @__PURE__ */ ((EscalatorFault22222222222222) => {
                                                      EscalatorFault22222222222222[EscalatorFault22222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                      EscalatorFault22222222222222[EscalatorFault22222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                      EscalatorFault22222222222222[EscalatorFault22222222222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                                                      EscalatorFault22222222222222[EscalatorFault22222222222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                                                      EscalatorFault22222222222222[EscalatorFault22222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                      EscalatorFault22222222222222[EscalatorFault22222222222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                                                      EscalatorFault22222222222222[EscalatorFault22222222222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                                                      EscalatorFault22222222222222[EscalatorFault22222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                      EscalatorFault22222222222222[EscalatorFault22222222222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                                                      return EscalatorFault22222222222222;
                                                    })(EscalatorFault2222222222222 || {});
                                                    var EscalatorMode2222222222222 = /* @__PURE__ */ ((EscalatorMode22222222222222) => {
                                                      EscalatorMode22222222222222[EscalatorMode22222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                      EscalatorMode22222222222222[EscalatorMode22222222222222["STOP"] = 1] = "STOP";
                                                      EscalatorMode22222222222222[EscalatorMode22222222222222["UP"] = 2] = "UP";
                                                      EscalatorMode22222222222222[EscalatorMode22222222222222["DOWN"] = 3] = "DOWN";
                                                      EscalatorMode22222222222222[EscalatorMode22222222222222["INSPECTION"] = 4] = "INSPECTION";
                                                      EscalatorMode22222222222222[EscalatorMode22222222222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                                                      return EscalatorMode22222222222222;
                                                    })(EscalatorMode2222222222222 || {});
                                                    var EscalatorOperationDirection2222222222222 = /* @__PURE__ */ ((EscalatorOperationDirection22222222222222) => {
                                                      EscalatorOperationDirection22222222222222[EscalatorOperationDirection22222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                      EscalatorOperationDirection22222222222222[EscalatorOperationDirection22222222222222["STOPPED"] = 1] = "STOPPED";
                                                      EscalatorOperationDirection22222222222222[EscalatorOperationDirection22222222222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                                                      EscalatorOperationDirection22222222222222[EscalatorOperationDirection22222222222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                                                      EscalatorOperationDirection22222222222222[EscalatorOperationDirection22222222222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                                                      EscalatorOperationDirection22222222222222[EscalatorOperationDirection22222222222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                                                      return EscalatorOperationDirection22222222222222;
                                                    })(EscalatorOperationDirection2222222222222 || {});
                                                    var EventState2222222222222 = /* @__PURE__ */ ((EventState22222222222222) => {
                                                      EventState22222222222222[EventState22222222222222["NORMAL"] = 0] = "NORMAL";
                                                      EventState22222222222222[EventState22222222222222["FAULT"] = 1] = "FAULT";
                                                      EventState22222222222222[EventState22222222222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                                                      EventState22222222222222[EventState22222222222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                                                      EventState22222222222222[EventState22222222222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                                                      EventState22222222222222[EventState22222222222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                                                      return EventState22222222222222;
                                                    })(EventState2222222222222 || {});
                                                    var EventType2222222222222 = /* @__PURE__ */ ((EventType22222222222222) => {
                                                      EventType22222222222222[EventType22222222222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                                                      EventType22222222222222[EventType22222222222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                                                      EventType22222222222222[EventType22222222222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                                                      EventType22222222222222[EventType22222222222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                                                      EventType22222222222222[EventType22222222222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                                                      EventType22222222222222[EventType22222222222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                                                      EventType22222222222222[EventType22222222222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                                                      EventType22222222222222[EventType22222222222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                                                      EventType22222222222222[EventType22222222222222["EXTENDED"] = 9] = "EXTENDED";
                                                      EventType22222222222222[EventType22222222222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                                                      EventType22222222222222[EventType22222222222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                                                      EventType22222222222222[EventType22222222222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                                                      EventType22222222222222[EventType22222222222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                                                      EventType22222222222222[EventType22222222222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                                                      EventType22222222222222[EventType22222222222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                                                      EventType22222222222222[EventType22222222222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                                                      EventType22222222222222[EventType22222222222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                                                      EventType22222222222222[EventType22222222222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                                                      EventType22222222222222[EventType22222222222222["NONE"] = 20] = "NONE";
                                                      EventType22222222222222[EventType22222222222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                                                      EventType22222222222222[EventType22222222222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                                                      return EventType22222222222222;
                                                    })(EventType2222222222222 || {});
                                                    var FaultType2222222222222 = /* @__PURE__ */ ((FaultType22222222222222) => {
                                                      FaultType22222222222222[FaultType22222222222222["NONE"] = 0] = "NONE";
                                                      FaultType22222222222222[FaultType22222222222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                                                      FaultType22222222222222[FaultType22222222222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                                                      FaultType22222222222222[FaultType22222222222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                                                      FaultType22222222222222[FaultType22222222222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                                                      FaultType22222222222222[FaultType22222222222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                                                      FaultType22222222222222[FaultType22222222222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                                                      FaultType22222222222222[FaultType22222222222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                                                      return FaultType22222222222222;
                                                    })(FaultType2222222222222 || {});
                                                    var FileAccessMethod2222222222222 = /* @__PURE__ */ ((FileAccessMethod22222222222222) => {
                                                      FileAccessMethod22222222222222[FileAccessMethod22222222222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                                                      FileAccessMethod22222222222222[FileAccessMethod22222222222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                                                      return FileAccessMethod22222222222222;
                                                    })(FileAccessMethod2222222222222 || {});
                                                    var IPMode2222222222222 = /* @__PURE__ */ ((IPMode22222222222222) => {
                                                      IPMode22222222222222[IPMode22222222222222["NORMAL"] = 0] = "NORMAL";
                                                      IPMode22222222222222[IPMode22222222222222["FOREIGN"] = 1] = "FOREIGN";
                                                      IPMode22222222222222[IPMode22222222222222["BBMD"] = 2] = "BBMD";
                                                      return IPMode22222222222222;
                                                    })(IPMode2222222222222 || {});
                                                    var LifeSafetyMode2222222222222 = /* @__PURE__ */ ((LifeSafetyMode22222222222222) => {
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["OFF"] = 0] = "OFF";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["ON"] = 1] = "ON";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["TEST"] = 2] = "TEST";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["MANNED"] = 3] = "MANNED";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["UNMANNED"] = 4] = "UNMANNED";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["ARMED"] = 5] = "ARMED";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["DISARMED"] = 6] = "DISARMED";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["PREARMED"] = 7] = "PREARMED";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["SLOW"] = 8] = "SLOW";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["FAST"] = 9] = "FAST";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["ENABLED"] = 11] = "ENABLED";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["DISABLED"] = 12] = "DISABLED";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                                                      LifeSafetyMode22222222222222[LifeSafetyMode22222222222222["DEFAULT"] = 14] = "DEFAULT";
                                                      return LifeSafetyMode22222222222222;
                                                    })(LifeSafetyMode2222222222222 || {});
                                                    var LifeSafetyOperation2222222222222 = /* @__PURE__ */ ((LifeSafetyOperation22222222222222) => {
                                                      LifeSafetyOperation22222222222222[LifeSafetyOperation22222222222222["NONE"] = 0] = "NONE";
                                                      LifeSafetyOperation22222222222222[LifeSafetyOperation22222222222222["SILENCE"] = 1] = "SILENCE";
                                                      LifeSafetyOperation22222222222222[LifeSafetyOperation22222222222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                                                      LifeSafetyOperation22222222222222[LifeSafetyOperation22222222222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                                                      LifeSafetyOperation22222222222222[LifeSafetyOperation22222222222222["RESET"] = 4] = "RESET";
                                                      LifeSafetyOperation22222222222222[LifeSafetyOperation22222222222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                                                      LifeSafetyOperation22222222222222[LifeSafetyOperation22222222222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                                                      LifeSafetyOperation22222222222222[LifeSafetyOperation22222222222222["UNSILENCE"] = 7] = "UNSILENCE";
                                                      LifeSafetyOperation22222222222222[LifeSafetyOperation22222222222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                                                      LifeSafetyOperation22222222222222[LifeSafetyOperation22222222222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                                                      return LifeSafetyOperation22222222222222;
                                                    })(LifeSafetyOperation2222222222222 || {});
                                                    var LifeSafetyState2222222222222 = /* @__PURE__ */ ((LifeSafetyState22222222222222) => {
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["QUIET"] = 0] = "QUIET";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["ALARM"] = 2] = "ALARM";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["FAULT"] = 3] = "FAULT";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["NOT_READY"] = 6] = "NOT_READY";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["ACTIVE"] = 7] = "ACTIVE";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["TAMPER"] = 8] = "TAMPER";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["HOLDUP"] = 13] = "HOLDUP";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["DURESS"] = 14] = "DURESS";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["ABNORMAL"] = 16] = "ABNORMAL";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["DELAYED"] = 18] = "DELAYED";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["BLOCKED"] = 19] = "BLOCKED";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                                                      LifeSafetyState22222222222222[LifeSafetyState22222222222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                                                      return LifeSafetyState22222222222222;
                                                    })(LifeSafetyState2222222222222 || {});
                                                    var LiftCarDirection2222222222222 = /* @__PURE__ */ ((LiftCarDirection22222222222222) => {
                                                      LiftCarDirection22222222222222[LiftCarDirection22222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                      LiftCarDirection22222222222222[LiftCarDirection22222222222222["NONE"] = 1] = "NONE";
                                                      LiftCarDirection22222222222222[LiftCarDirection22222222222222["STOPPED"] = 2] = "STOPPED";
                                                      LiftCarDirection22222222222222[LiftCarDirection22222222222222["UP"] = 3] = "UP";
                                                      LiftCarDirection22222222222222[LiftCarDirection22222222222222["DOWN"] = 4] = "DOWN";
                                                      LiftCarDirection22222222222222[LiftCarDirection22222222222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                                                      return LiftCarDirection22222222222222;
                                                    })(LiftCarDirection2222222222222 || {});
                                                    var LiftCarDoorCommand2222222222222 = /* @__PURE__ */ ((LiftCarDoorCommand22222222222222) => {
                                                      LiftCarDoorCommand22222222222222[LiftCarDoorCommand22222222222222["NONE"] = 0] = "NONE";
                                                      LiftCarDoorCommand22222222222222[LiftCarDoorCommand22222222222222["OPEN"] = 1] = "OPEN";
                                                      LiftCarDoorCommand22222222222222[LiftCarDoorCommand22222222222222["CLOSE"] = 2] = "CLOSE";
                                                      return LiftCarDoorCommand22222222222222;
                                                    })(LiftCarDoorCommand2222222222222 || {});
                                                    var LiftCarDriveStatus2222222222222 = /* @__PURE__ */ ((LiftCarDriveStatus22222222222222) => {
                                                      LiftCarDriveStatus22222222222222[LiftCarDriveStatus22222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                      LiftCarDriveStatus22222222222222[LiftCarDriveStatus22222222222222["STATIONARY"] = 1] = "STATIONARY";
                                                      LiftCarDriveStatus22222222222222[LiftCarDriveStatus22222222222222["BRAKING"] = 2] = "BRAKING";
                                                      LiftCarDriveStatus22222222222222[LiftCarDriveStatus22222222222222["ACCELERATE"] = 3] = "ACCELERATE";
                                                      LiftCarDriveStatus22222222222222[LiftCarDriveStatus22222222222222["DECELERATE"] = 4] = "DECELERATE";
                                                      LiftCarDriveStatus22222222222222[LiftCarDriveStatus22222222222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                                                      LiftCarDriveStatus22222222222222[LiftCarDriveStatus22222222222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                                                      LiftCarDriveStatus22222222222222[LiftCarDriveStatus22222222222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                                                      LiftCarDriveStatus22222222222222[LiftCarDriveStatus22222222222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                                                      LiftCarDriveStatus22222222222222[LiftCarDriveStatus22222222222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                                                      return LiftCarDriveStatus22222222222222;
                                                    })(LiftCarDriveStatus2222222222222 || {});
                                                    var LiftCarMode2222222222222 = /* @__PURE__ */ ((LiftCarMode22222222222222) => {
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["NORMAL"] = 1] = "NORMAL";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["VIP"] = 2] = "VIP";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["HOMING"] = 3] = "HOMING";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["PARKING"] = 4] = "PARKING";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["INSPECTION"] = 8] = "INSPECTION";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                                                      LiftCarMode22222222222222[LiftCarMode22222222222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                                                      return LiftCarMode22222222222222;
                                                    })(LiftCarMode2222222222222 || {});
                                                    var LiftFault2222222222222 = /* @__PURE__ */ ((LiftFault22222222222222) => {
                                                      LiftFault22222222222222[LiftFault22222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                      LiftFault22222222222222[LiftFault22222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                      LiftFault22222222222222[LiftFault22222222222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                                                      LiftFault22222222222222[LiftFault22222222222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                                                      LiftFault22222222222222[LiftFault22222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                      LiftFault22222222222222[LiftFault22222222222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                                                      LiftFault22222222222222[LiftFault22222222222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                                                      LiftFault22222222222222[LiftFault22222222222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                                                      LiftFault22222222222222[LiftFault22222222222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                                                      LiftFault22222222222222[LiftFault22222222222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                                                      LiftFault22222222222222[LiftFault22222222222222["START_FAILURE"] = 10] = "START_FAILURE";
                                                      LiftFault22222222222222[LiftFault22222222222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                                                      LiftFault22222222222222[LiftFault22222222222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                                                      LiftFault22222222222222[LiftFault22222222222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                                                      LiftFault22222222222222[LiftFault22222222222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                                                      LiftFault22222222222222[LiftFault22222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                      LiftFault22222222222222[LiftFault22222222222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                                                      return LiftFault22222222222222;
                                                    })(LiftFault2222222222222 || {});
                                                    var LiftGroupMode2222222222222 = /* @__PURE__ */ ((LiftGroupMode22222222222222) => {
                                                      LiftGroupMode22222222222222[LiftGroupMode22222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                      LiftGroupMode22222222222222[LiftGroupMode22222222222222["NORMAL"] = 1] = "NORMAL";
                                                      LiftGroupMode22222222222222[LiftGroupMode22222222222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                                                      LiftGroupMode22222222222222[LiftGroupMode22222222222222["TWO_WAY"] = 3] = "TWO_WAY";
                                                      LiftGroupMode22222222222222[LiftGroupMode22222222222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                                                      LiftGroupMode22222222222222[LiftGroupMode22222222222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                                                      LiftGroupMode22222222222222[LiftGroupMode22222222222222["UP_PEAK"] = 6] = "UP_PEAK";
                                                      return LiftGroupMode22222222222222;
                                                    })(LiftGroupMode2222222222222 || {});
                                                    var LightingInProgress2222222222222 = /* @__PURE__ */ ((LightingInProgress22222222222222) => {
                                                      LightingInProgress22222222222222[LightingInProgress22222222222222["IDLE"] = 0] = "IDLE";
                                                      LightingInProgress22222222222222[LightingInProgress22222222222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                                                      LightingInProgress22222222222222[LightingInProgress22222222222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                                                      LightingInProgress22222222222222[LightingInProgress22222222222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                                                      LightingInProgress22222222222222[LightingInProgress22222222222222["OTHER"] = 4] = "OTHER";
                                                      return LightingInProgress22222222222222;
                                                    })(LightingInProgress2222222222222 || {});
                                                    var LightingOperation2222222222222 = /* @__PURE__ */ ((LightingOperation22222222222222) => {
                                                      LightingOperation22222222222222[LightingOperation22222222222222["NONE"] = 0] = "NONE";
                                                      LightingOperation22222222222222[LightingOperation22222222222222["FADE_TO"] = 1] = "FADE_TO";
                                                      LightingOperation22222222222222[LightingOperation22222222222222["RAMP_TO"] = 2] = "RAMP_TO";
                                                      LightingOperation22222222222222[LightingOperation22222222222222["STEP_UP"] = 3] = "STEP_UP";
                                                      LightingOperation22222222222222[LightingOperation22222222222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                                                      LightingOperation22222222222222[LightingOperation22222222222222["STEP_ON"] = 5] = "STEP_ON";
                                                      LightingOperation22222222222222[LightingOperation22222222222222["STEP_OFF"] = 6] = "STEP_OFF";
                                                      LightingOperation22222222222222[LightingOperation22222222222222["WARN"] = 7] = "WARN";
                                                      LightingOperation22222222222222[LightingOperation22222222222222["WARN_OFF"] = 8] = "WARN_OFF";
                                                      LightingOperation22222222222222[LightingOperation22222222222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                                                      LightingOperation22222222222222[LightingOperation22222222222222["STOP"] = 10] = "STOP";
                                                      return LightingOperation22222222222222;
                                                    })(LightingOperation2222222222222 || {});
                                                    var LightingTransition2222222222222 = /* @__PURE__ */ ((LightingTransition22222222222222) => {
                                                      LightingTransition22222222222222[LightingTransition22222222222222["NONE"] = 0] = "NONE";
                                                      LightingTransition22222222222222[LightingTransition22222222222222["FADE"] = 1] = "FADE";
                                                      LightingTransition22222222222222[LightingTransition22222222222222["RAMP"] = 2] = "RAMP";
                                                      return LightingTransition22222222222222;
                                                    })(LightingTransition2222222222222 || {});
                                                    var LockStatus2222222222222 = /* @__PURE__ */ ((LockStatus22222222222222) => {
                                                      LockStatus22222222222222[LockStatus22222222222222["LOCKED"] = 0] = "LOCKED";
                                                      LockStatus22222222222222[LockStatus22222222222222["UNLOCKED"] = 1] = "UNLOCKED";
                                                      LockStatus22222222222222[LockStatus22222222222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                                                      LockStatus22222222222222[LockStatus22222222222222["UNUSED"] = 3] = "UNUSED";
                                                      LockStatus22222222222222[LockStatus22222222222222["UNKNOWN"] = 4] = "UNKNOWN";
                                                      return LockStatus22222222222222;
                                                    })(LockStatus2222222222222 || {});
                                                    var LoggingType2222222222222 = /* @__PURE__ */ ((LoggingType22222222222222) => {
                                                      LoggingType22222222222222[LoggingType22222222222222["POLLED"] = 0] = "POLLED";
                                                      LoggingType22222222222222[LoggingType22222222222222["COV"] = 1] = "COV";
                                                      LoggingType22222222222222[LoggingType22222222222222["TRIGGERED"] = 2] = "TRIGGERED";
                                                      return LoggingType22222222222222;
                                                    })(LoggingType2222222222222 || {});
                                                    var Maintenance2222222222222 = /* @__PURE__ */ ((Maintenance22222222222222) => {
                                                      Maintenance22222222222222[Maintenance22222222222222["NONE"] = 0] = "NONE";
                                                      Maintenance22222222222222[Maintenance22222222222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                                                      Maintenance22222222222222[Maintenance22222222222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                                                      Maintenance22222222222222[Maintenance22222222222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                                                      return Maintenance22222222222222;
                                                    })(Maintenance2222222222222 || {});
                                                    var NetworkNumberQuality2222222222222 = /* @__PURE__ */ ((NetworkNumberQuality22222222222222) => {
                                                      NetworkNumberQuality22222222222222[NetworkNumberQuality22222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                      NetworkNumberQuality22222222222222[NetworkNumberQuality22222222222222["LEARNED"] = 1] = "LEARNED";
                                                      NetworkNumberQuality22222222222222[NetworkNumberQuality22222222222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                                                      NetworkNumberQuality22222222222222[NetworkNumberQuality22222222222222["CONFIGURED"] = 3] = "CONFIGURED";
                                                      return NetworkNumberQuality22222222222222;
                                                    })(NetworkNumberQuality2222222222222 || {});
                                                    var NetworkPortCommand2222222222222 = /* @__PURE__ */ ((NetworkPortCommand22222222222222) => {
                                                      NetworkPortCommand22222222222222[NetworkPortCommand22222222222222["IDLE"] = 0] = "IDLE";
                                                      NetworkPortCommand22222222222222[NetworkPortCommand22222222222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                                                      NetworkPortCommand22222222222222[NetworkPortCommand22222222222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                                                      NetworkPortCommand22222222222222[NetworkPortCommand22222222222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                                                      NetworkPortCommand22222222222222[NetworkPortCommand22222222222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                                                      NetworkPortCommand22222222222222[NetworkPortCommand22222222222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                                                      NetworkPortCommand22222222222222[NetworkPortCommand22222222222222["DISCONNECT"] = 6] = "DISCONNECT";
                                                      NetworkPortCommand22222222222222[NetworkPortCommand22222222222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                                                      return NetworkPortCommand22222222222222;
                                                    })(NetworkPortCommand2222222222222 || {});
                                                    var NetworkType2222222222222 = /* @__PURE__ */ ((NetworkType22222222222222) => {
                                                      NetworkType22222222222222[NetworkType22222222222222["ETHERNET"] = 0] = "ETHERNET";
                                                      NetworkType22222222222222[NetworkType22222222222222["ARCNET"] = 1] = "ARCNET";
                                                      NetworkType22222222222222[NetworkType22222222222222["MSTP"] = 2] = "MSTP";
                                                      NetworkType22222222222222[NetworkType22222222222222["PTP"] = 3] = "PTP";
                                                      NetworkType22222222222222[NetworkType22222222222222["LONTALK"] = 4] = "LONTALK";
                                                      NetworkType22222222222222[NetworkType22222222222222["IPV4"] = 5] = "IPV4";
                                                      NetworkType22222222222222[NetworkType22222222222222["ZIGBEE"] = 6] = "ZIGBEE";
                                                      NetworkType22222222222222[NetworkType22222222222222["VIRTUAL"] = 7] = "VIRTUAL";
                                                      NetworkType22222222222222[NetworkType22222222222222["IPV6"] = 9] = "IPV6";
                                                      NetworkType22222222222222[NetworkType22222222222222["SERIAL"] = 10] = "SERIAL";
                                                      return NetworkType22222222222222;
                                                    })(NetworkType2222222222222 || {});
                                                    var NodeType2222222222222 = /* @__PURE__ */ ((NodeType22222222222222) => {
                                                      NodeType22222222222222[NodeType22222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                      NodeType22222222222222[NodeType22222222222222["SYSTEM"] = 1] = "SYSTEM";
                                                      NodeType22222222222222[NodeType22222222222222["NETWORK"] = 2] = "NETWORK";
                                                      NodeType22222222222222[NodeType22222222222222["DEVICE"] = 3] = "DEVICE";
                                                      NodeType22222222222222[NodeType22222222222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                                                      NodeType22222222222222[NodeType22222222222222["AREA"] = 5] = "AREA";
                                                      NodeType22222222222222[NodeType22222222222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                                                      NodeType22222222222222[NodeType22222222222222["POINT"] = 7] = "POINT";
                                                      NodeType22222222222222[NodeType22222222222222["COLLECTION"] = 8] = "COLLECTION";
                                                      NodeType22222222222222[NodeType22222222222222["PROPERTY"] = 9] = "PROPERTY";
                                                      NodeType22222222222222[NodeType22222222222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                                                      NodeType22222222222222[NodeType22222222222222["OTHER"] = 11] = "OTHER";
                                                      NodeType22222222222222[NodeType22222222222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                                                      NodeType22222222222222[NodeType22222222222222["BUILDING"] = 13] = "BUILDING";
                                                      NodeType22222222222222[NodeType22222222222222["FLOOR"] = 14] = "FLOOR";
                                                      NodeType22222222222222[NodeType22222222222222["SECTION"] = 15] = "SECTION";
                                                      NodeType22222222222222[NodeType22222222222222["MODULE"] = 16] = "MODULE";
                                                      NodeType22222222222222[NodeType22222222222222["TREE"] = 17] = "TREE";
                                                      NodeType22222222222222[NodeType22222222222222["MEMBER"] = 18] = "MEMBER";
                                                      NodeType22222222222222[NodeType22222222222222["PROTOCOL"] = 19] = "PROTOCOL";
                                                      NodeType22222222222222[NodeType22222222222222["ROOM"] = 20] = "ROOM";
                                                      NodeType22222222222222[NodeType22222222222222["ZONE"] = 21] = "ZONE";
                                                      return NodeType22222222222222;
                                                    })(NodeType2222222222222 || {});
                                                    var NotifyType2222222222222 = /* @__PURE__ */ ((NotifyType22222222222222) => {
                                                      NotifyType22222222222222[NotifyType22222222222222["ALARM"] = 0] = "ALARM";
                                                      NotifyType22222222222222[NotifyType22222222222222["EVENT"] = 1] = "EVENT";
                                                      NotifyType22222222222222[NotifyType22222222222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                                                      return NotifyType22222222222222;
                                                    })(NotifyType2222222222222 || {});
                                                    var ObjectType2222222222222 = /* @__PURE__ */ ((ObjectType22222222222222) => {
                                                      ObjectType22222222222222[ObjectType22222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                      ObjectType22222222222222[ObjectType22222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                      ObjectType22222222222222[ObjectType22222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                      ObjectType22222222222222[ObjectType22222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                      ObjectType22222222222222[ObjectType22222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                      ObjectType22222222222222[ObjectType22222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                      ObjectType22222222222222[ObjectType22222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                      ObjectType22222222222222[ObjectType22222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                      ObjectType22222222222222[ObjectType22222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                      ObjectType22222222222222[ObjectType22222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                      ObjectType22222222222222[ObjectType22222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                      ObjectType22222222222222[ObjectType22222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                      ObjectType22222222222222[ObjectType22222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                      ObjectType22222222222222[ObjectType22222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                      ObjectType22222222222222[ObjectType22222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                      ObjectType22222222222222[ObjectType22222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                      ObjectType22222222222222[ObjectType22222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["COMMAND"] = 7] = "COMMAND";
                                                      ObjectType22222222222222[ObjectType22222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                      ObjectType22222222222222[ObjectType22222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["DEVICE"] = 8] = "DEVICE";
                                                      ObjectType22222222222222[ObjectType22222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                      ObjectType22222222222222[ObjectType22222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                      ObjectType22222222222222[ObjectType22222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                      ObjectType22222222222222[ObjectType22222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                      ObjectType22222222222222[ObjectType22222222222222["FILE"] = 10] = "FILE";
                                                      ObjectType22222222222222[ObjectType22222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                      ObjectType22222222222222[ObjectType22222222222222["GROUP"] = 11] = "GROUP";
                                                      ObjectType22222222222222[ObjectType22222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                      ObjectType22222222222222[ObjectType22222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                      ObjectType22222222222222[ObjectType22222222222222["LIFT"] = 59] = "LIFT";
                                                      ObjectType22222222222222[ObjectType22222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                      ObjectType22222222222222[ObjectType22222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                      ObjectType22222222222222[ObjectType22222222222222["LOOP"] = 12] = "LOOP";
                                                      ObjectType22222222222222[ObjectType22222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                      ObjectType22222222222222[ObjectType22222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                      ObjectType22222222222222[ObjectType22222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                      ObjectType22222222222222[ObjectType22222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                      ObjectType22222222222222[ObjectType22222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                      ObjectType22222222222222[ObjectType22222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                      ObjectType22222222222222[ObjectType22222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                      ObjectType22222222222222[ObjectType22222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                      ObjectType22222222222222[ObjectType22222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                      ObjectType22222222222222[ObjectType22222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                      ObjectType22222222222222[ObjectType22222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                      ObjectType22222222222222[ObjectType22222222222222["TIMER"] = 31] = "TIMER";
                                                      ObjectType22222222222222[ObjectType22222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                      ObjectType22222222222222[ObjectType22222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                      return ObjectType22222222222222;
                                                    })(ObjectType2222222222222 || {});
                                                    var Polarity2222222222222 = /* @__PURE__ */ ((Polarity22222222222222) => {
                                                      Polarity22222222222222[Polarity22222222222222["NORMAL"] = 0] = "NORMAL";
                                                      Polarity22222222222222[Polarity22222222222222["REVERSE"] = 1] = "REVERSE";
                                                      return Polarity22222222222222;
                                                    })(Polarity2222222222222 || {});
                                                    var ProgramError2222222222222 = /* @__PURE__ */ ((ProgramError22222222222222) => {
                                                      ProgramError22222222222222[ProgramError22222222222222["NORMAL"] = 0] = "NORMAL";
                                                      ProgramError22222222222222[ProgramError22222222222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                                                      ProgramError22222222222222[ProgramError22222222222222["INTERNAL"] = 2] = "INTERNAL";
                                                      ProgramError22222222222222[ProgramError22222222222222["PROGRAM"] = 3] = "PROGRAM";
                                                      ProgramError22222222222222[ProgramError22222222222222["OTHER"] = 4] = "OTHER";
                                                      return ProgramError22222222222222;
                                                    })(ProgramError2222222222222 || {});
                                                    var ProgramRequest2222222222222 = /* @__PURE__ */ ((ProgramRequest22222222222222) => {
                                                      ProgramRequest22222222222222[ProgramRequest22222222222222["READY"] = 0] = "READY";
                                                      ProgramRequest22222222222222[ProgramRequest22222222222222["LOAD"] = 1] = "LOAD";
                                                      ProgramRequest22222222222222[ProgramRequest22222222222222["RUN"] = 2] = "RUN";
                                                      ProgramRequest22222222222222[ProgramRequest22222222222222["HALT"] = 3] = "HALT";
                                                      ProgramRequest22222222222222[ProgramRequest22222222222222["RESTART"] = 4] = "RESTART";
                                                      ProgramRequest22222222222222[ProgramRequest22222222222222["UNLOAD"] = 5] = "UNLOAD";
                                                      return ProgramRequest22222222222222;
                                                    })(ProgramRequest2222222222222 || {});
                                                    var ProgramState2222222222222 = /* @__PURE__ */ ((ProgramState22222222222222) => {
                                                      ProgramState22222222222222[ProgramState22222222222222["IDLE"] = 0] = "IDLE";
                                                      ProgramState22222222222222[ProgramState22222222222222["LOADING"] = 1] = "LOADING";
                                                      ProgramState22222222222222[ProgramState22222222222222["RUNNING"] = 2] = "RUNNING";
                                                      ProgramState22222222222222[ProgramState22222222222222["WAITING"] = 3] = "WAITING";
                                                      ProgramState22222222222222[ProgramState22222222222222["HALTED"] = 4] = "HALTED";
                                                      ProgramState22222222222222[ProgramState22222222222222["UNLOADING"] = 5] = "UNLOADING";
                                                      return ProgramState22222222222222;
                                                    })(ProgramState2222222222222 || {});
                                                    var PropertyIdentifier2222222222222 = /* @__PURE__ */ ((PropertyIdentifier22222222222222) => {
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACTION"] = 2] = "ACTION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ALL"] = 8] = "ALL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ARCHIVE"] = 13] = "ARCHIVE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BIAS"] = 14] = "BIAS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BIT_MASK"] = 342] = "BIT_MASK";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CAR_MODE"] = 456] = "CAR_MODE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["COMMAND"] = 417] = "COMMAND";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["COUNT"] = 177] = "COUNT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DATE_LIST"] = 23] = "DATE_LIST";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DEADBAND"] = 25] = "DEADBAND";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ENABLE"] = 133] = "ENABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["GROUP_ID"] = 465] = "GROUP_ID";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["IS_UTC"] = 344] = "IS_UTC";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["KEY_SETS"] = 330] = "KEY_SETS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOCATION"] = 58] = "LOCATION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOCKOUT"] = 282] = "LOCKOUT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MEMBERS"] = 286] = "MEMBERS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MODE"] = 160] = "MODE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OPTIONAL"] = 80] = "OPTIONAL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["POLARITY"] = 84] = "POLARITY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["POWER"] = 384] = "POWER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["POWER_MODE"] = 479] = "POWER_MODE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PRESCALE"] = 185] = "PRESCALE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PRIORITY"] = 86] = "PRIORITY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["READ_ONLY"] = 99] = "READ_ONLY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["RELIABILITY"] = 103] = "RELIABILITY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["REPRESENTS"] = 491] = "REPRESENTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["REQUIRED"] = 105] = "REQUIRED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["RESOLUTION"] = 106] = "RESOLUTION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SCALE"] = 187] = "SCALE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SETPOINT"] = 108] = "SETPOINT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SETTING"] = 162] = "SETTING";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SILENCED"] = 163] = "SILENCED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["START_TIME"] = 142] = "START_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["STOP_TIME"] = 143] = "STOP_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TAGS"] = 486] = "TAGS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TRANSITION"] = 385] = "TRANSITION";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["TRIGGER"] = 205] = "TRIGGER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["UNITS"] = 117] = "UNITS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["USER_NAME"] = 317] = "USER_NAME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["USER_TYPE"] = 318] = "USER_TYPE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["VALUE_SET"] = 191] = "VALUE_SET";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                                                      PropertyIdentifier22222222222222[PropertyIdentifier22222222222222["ZONE_TO"] = 321] = "ZONE_TO";
                                                      return PropertyIdentifier22222222222222;
                                                    })(PropertyIdentifier2222222222222 || {});
                                                    var ProtocolLevel2222222222222 = /* @__PURE__ */ ((ProtocolLevel22222222222222) => {
                                                      ProtocolLevel22222222222222[ProtocolLevel22222222222222["PHYSICAL"] = 0] = "PHYSICAL";
                                                      ProtocolLevel22222222222222[ProtocolLevel22222222222222["PROTOCOL"] = 1] = "PROTOCOL";
                                                      ProtocolLevel22222222222222[ProtocolLevel22222222222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                                                      ProtocolLevel22222222222222[ProtocolLevel22222222222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                                                      return ProtocolLevel22222222222222;
                                                    })(ProtocolLevel2222222222222 || {});
                                                    var Relationship2222222222222 = /* @__PURE__ */ ((Relationship22222222222222) => {
                                                      Relationship22222222222222[Relationship22222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                      Relationship22222222222222[Relationship22222222222222["DEFAULT"] = 1] = "DEFAULT";
                                                      Relationship22222222222222[Relationship22222222222222["CONTAINS"] = 2] = "CONTAINS";
                                                      Relationship22222222222222[Relationship22222222222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                                                      Relationship22222222222222[Relationship22222222222222["USES"] = 4] = "USES";
                                                      Relationship22222222222222[Relationship22222222222222["USED_BY"] = 5] = "USED_BY";
                                                      Relationship22222222222222[Relationship22222222222222["COMMANDS"] = 6] = "COMMANDS";
                                                      Relationship22222222222222[Relationship22222222222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                                                      Relationship22222222222222[Relationship22222222222222["ADJUSTS"] = 8] = "ADJUSTS";
                                                      Relationship22222222222222[Relationship22222222222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                                                      Relationship22222222222222[Relationship22222222222222["INGRESS"] = 10] = "INGRESS";
                                                      Relationship22222222222222[Relationship22222222222222["EGRESS"] = 11] = "EGRESS";
                                                      Relationship22222222222222[Relationship22222222222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                                                      Relationship22222222222222[Relationship22222222222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                                                      Relationship22222222222222[Relationship22222222222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                                                      Relationship22222222222222[Relationship22222222222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                                                      Relationship22222222222222[Relationship22222222222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                                                      Relationship22222222222222[Relationship22222222222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                                                      Relationship22222222222222[Relationship22222222222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                                                      Relationship22222222222222[Relationship22222222222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                                                      Relationship22222222222222[Relationship22222222222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                                                      Relationship22222222222222[Relationship22222222222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                                                      Relationship22222222222222[Relationship22222222222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                                                      Relationship22222222222222[Relationship22222222222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                                                      Relationship22222222222222[Relationship22222222222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                                                      Relationship22222222222222[Relationship22222222222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                                                      Relationship22222222222222[Relationship22222222222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                                                      Relationship22222222222222[Relationship22222222222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                                                      Relationship22222222222222[Relationship22222222222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                                                      Relationship22222222222222[Relationship22222222222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                                                      return Relationship22222222222222;
                                                    })(Relationship2222222222222 || {});
                                                    var Reliability2222222222222 = /* @__PURE__ */ ((Reliability22222222222222) => {
                                                      Reliability22222222222222[Reliability22222222222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                                                      Reliability22222222222222[Reliability22222222222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                                                      Reliability22222222222222[Reliability22222222222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                                                      Reliability22222222222222[Reliability22222222222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                                                      Reliability22222222222222[Reliability22222222222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                                                      Reliability22222222222222[Reliability22222222222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                                                      Reliability22222222222222[Reliability22222222222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                                                      Reliability22222222222222[Reliability22222222222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                                                      Reliability22222222222222[Reliability22222222222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                                                      Reliability22222222222222[Reliability22222222222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                                                      Reliability22222222222222[Reliability22222222222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                                                      Reliability22222222222222[Reliability22222222222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                                                      Reliability22222222222222[Reliability22222222222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                                                      Reliability22222222222222[Reliability22222222222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                                                      Reliability22222222222222[Reliability22222222222222["TRIPPED"] = 15] = "TRIPPED";
                                                      Reliability22222222222222[Reliability22222222222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                                                      Reliability22222222222222[Reliability22222222222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                                                      Reliability22222222222222[Reliability22222222222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                                                      Reliability22222222222222[Reliability22222222222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                                                      Reliability22222222222222[Reliability22222222222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                                                      Reliability22222222222222[Reliability22222222222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                                                      Reliability22222222222222[Reliability22222222222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                                                      Reliability22222222222222[Reliability22222222222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                                                      Reliability22222222222222[Reliability22222222222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                                                      return Reliability22222222222222;
                                                    })(Reliability2222222222222 || {});
                                                    var RestartReason2222222222222 = /* @__PURE__ */ ((RestartReason22222222222222) => {
                                                      RestartReason22222222222222[RestartReason22222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                      RestartReason22222222222222[RestartReason22222222222222["COLDSTART"] = 1] = "COLDSTART";
                                                      RestartReason22222222222222[RestartReason22222222222222["WARMSTART"] = 2] = "WARMSTART";
                                                      RestartReason22222222222222[RestartReason22222222222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                                                      RestartReason22222222222222[RestartReason22222222222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                                                      RestartReason22222222222222[RestartReason22222222222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                                                      RestartReason22222222222222[RestartReason22222222222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                                                      RestartReason22222222222222[RestartReason22222222222222["SUSPENDED"] = 7] = "SUSPENDED";
                                                      RestartReason22222222222222[RestartReason22222222222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                                                      return RestartReason22222222222222;
                                                    })(RestartReason2222222222222 || {});
                                                    var SecurityLevel2222222222222 = /* @__PURE__ */ ((SecurityLevel22222222222222) => {
                                                      SecurityLevel22222222222222[SecurityLevel22222222222222["INCAPABLE"] = 0] = "INCAPABLE";
                                                      SecurityLevel22222222222222[SecurityLevel22222222222222["PLAIN"] = 1] = "PLAIN";
                                                      SecurityLevel22222222222222[SecurityLevel22222222222222["SIGNED"] = 2] = "SIGNED";
                                                      SecurityLevel22222222222222[SecurityLevel22222222222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                                                      SecurityLevel22222222222222[SecurityLevel22222222222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                                                      SecurityLevel22222222222222[SecurityLevel22222222222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                                                      return SecurityLevel22222222222222;
                                                    })(SecurityLevel2222222222222 || {});
                                                    var SecurityPolicy2222222222222 = /* @__PURE__ */ ((SecurityPolicy22222222222222) => {
                                                      SecurityPolicy22222222222222[SecurityPolicy22222222222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                                                      SecurityPolicy22222222222222[SecurityPolicy22222222222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                                                      SecurityPolicy22222222222222[SecurityPolicy22222222222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                                                      SecurityPolicy22222222222222[SecurityPolicy22222222222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                                                      return SecurityPolicy22222222222222;
                                                    })(SecurityPolicy2222222222222 || {});
                                                    var Segmentation2222222222222 = /* @__PURE__ */ ((Segmentation22222222222222) => {
                                                      Segmentation22222222222222[Segmentation22222222222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                                                      Segmentation22222222222222[Segmentation22222222222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                                                      Segmentation22222222222222[Segmentation22222222222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                                                      Segmentation22222222222222[Segmentation22222222222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                                                      return Segmentation22222222222222;
                                                    })(Segmentation2222222222222 || {});
                                                    var ShedState2222222222222 = /* @__PURE__ */ ((ShedState22222222222222) => {
                                                      ShedState22222222222222[ShedState22222222222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                                                      ShedState22222222222222[ShedState22222222222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                                                      ShedState22222222222222[ShedState22222222222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                                                      ShedState22222222222222[ShedState22222222222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                                                      return ShedState22222222222222;
                                                    })(ShedState2222222222222 || {});
                                                    var SilencedState2222222222222 = /* @__PURE__ */ ((SilencedState22222222222222) => {
                                                      SilencedState22222222222222[SilencedState22222222222222["UNSILENCED"] = 0] = "UNSILENCED";
                                                      SilencedState22222222222222[SilencedState22222222222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                                                      SilencedState22222222222222[SilencedState22222222222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                                                      SilencedState22222222222222[SilencedState22222222222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                                                      return SilencedState22222222222222;
                                                    })(SilencedState2222222222222 || {});
                                                    var TimerState2222222222222 = /* @__PURE__ */ ((TimerState22222222222222) => {
                                                      TimerState22222222222222[TimerState22222222222222["IDLE"] = 0] = "IDLE";
                                                      TimerState22222222222222[TimerState22222222222222["RUNNING"] = 1] = "RUNNING";
                                                      TimerState22222222222222[TimerState22222222222222["EXPIRED"] = 2] = "EXPIRED";
                                                      return TimerState22222222222222;
                                                    })(TimerState2222222222222 || {});
                                                    var TimerTransition2222222222222 = /* @__PURE__ */ ((TimerTransition22222222222222) => {
                                                      TimerTransition22222222222222[TimerTransition22222222222222["NONE"] = 0] = "NONE";
                                                      TimerTransition22222222222222[TimerTransition22222222222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                                                      TimerTransition22222222222222[TimerTransition22222222222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                                                      TimerTransition22222222222222[TimerTransition22222222222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                                                      TimerTransition22222222222222[TimerTransition22222222222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                                                      TimerTransition22222222222222[TimerTransition22222222222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                                                      TimerTransition22222222222222[TimerTransition22222222222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                                                      TimerTransition22222222222222[TimerTransition22222222222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                                                      return TimerTransition22222222222222;
                                                    })(TimerTransition2222222222222 || {});
                                                    var VTClass2222222222222 = /* @__PURE__ */ ((VTClass22222222222222) => {
                                                      VTClass22222222222222[VTClass22222222222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                                                      VTClass22222222222222[VTClass22222222222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                                                      VTClass22222222222222[VTClass22222222222222["DEC_VT52"] = 2] = "DEC_VT52";
                                                      VTClass22222222222222[VTClass22222222222222["DEC_VT100"] = 3] = "DEC_VT100";
                                                      VTClass22222222222222[VTClass22222222222222["DEC_VT220"] = 4] = "DEC_VT220";
                                                      VTClass22222222222222[VTClass22222222222222["HP_700_94"] = 5] = "HP_700_94";
                                                      VTClass22222222222222[VTClass22222222222222["IBM_3130"] = 6] = "IBM_3130";
                                                      return VTClass22222222222222;
                                                    })(VTClass2222222222222 || {});
                                                    var WriteStatus2222222222222 = /* @__PURE__ */ ((WriteStatus22222222222222) => {
                                                      WriteStatus22222222222222[WriteStatus22222222222222["IDLE"] = 0] = "IDLE";
                                                      WriteStatus22222222222222[WriteStatus22222222222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                                                      WriteStatus22222222222222[WriteStatus22222222222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                                                      WriteStatus22222222222222[WriteStatus22222222222222["FAILED"] = 3] = "FAILED";
                                                      return WriteStatus22222222222222;
                                                    })(WriteStatus2222222222222 || {});
                                                    var DaysOfWeek2222222222222 = /* @__PURE__ */ ((DaysOfWeek22222222222222) => {
                                                      DaysOfWeek22222222222222[DaysOfWeek22222222222222["MONDAY"] = 0] = "MONDAY";
                                                      DaysOfWeek22222222222222[DaysOfWeek22222222222222["TUESDAY"] = 1] = "TUESDAY";
                                                      DaysOfWeek22222222222222[DaysOfWeek22222222222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                                                      DaysOfWeek22222222222222[DaysOfWeek22222222222222["THURSDAY"] = 3] = "THURSDAY";
                                                      DaysOfWeek22222222222222[DaysOfWeek22222222222222["FRIDAY"] = 4] = "FRIDAY";
                                                      DaysOfWeek22222222222222[DaysOfWeek22222222222222["SATURDAY"] = 5] = "SATURDAY";
                                                      DaysOfWeek22222222222222[DaysOfWeek22222222222222["SUNDAY"] = 6] = "SUNDAY";
                                                      return DaysOfWeek22222222222222;
                                                    })(DaysOfWeek2222222222222 || {});
                                                    var EventTransitionBits2222222222222 = /* @__PURE__ */ ((EventTransitionBits22222222222222) => {
                                                      EventTransitionBits22222222222222[EventTransitionBits22222222222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                                                      EventTransitionBits22222222222222[EventTransitionBits22222222222222["TO_FAULT"] = 1] = "TO_FAULT";
                                                      EventTransitionBits22222222222222[EventTransitionBits22222222222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                                                      return EventTransitionBits22222222222222;
                                                    })(EventTransitionBits2222222222222 || {});
                                                    var LimitEnable2222222222222 = /* @__PURE__ */ ((LimitEnable22222222222222) => {
                                                      LimitEnable22222222222222[LimitEnable22222222222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                                                      LimitEnable22222222222222[LimitEnable22222222222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                                                      return LimitEnable22222222222222;
                                                    })(LimitEnable2222222222222 || {});
                                                    var LogStatus2222222222222 = /* @__PURE__ */ ((LogStatus22222222222222) => {
                                                      LogStatus22222222222222[LogStatus22222222222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                                                      LogStatus22222222222222[LogStatus22222222222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                                                      LogStatus22222222222222[LogStatus22222222222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                                                      return LogStatus22222222222222;
                                                    })(LogStatus2222222222222 || {});
                                                    var ObjectTypesSupported2222222222222 = /* @__PURE__ */ ((ObjectTypesSupported22222222222222) => {
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["COMMAND"] = 7] = "COMMAND";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["DEVICE"] = 8] = "DEVICE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["FILE"] = 10] = "FILE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["GROUP"] = 11] = "GROUP";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["LOOP"] = 12] = "LOOP";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["TIMER"] = 31] = "TIMER";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                      ObjectTypesSupported22222222222222[ObjectTypesSupported22222222222222["LIFT"] = 59] = "LIFT";
                                                      return ObjectTypesSupported22222222222222;
                                                    })(ObjectTypesSupported2222222222222 || {});
                                                    var ResultFlags2222222222222 = /* @__PURE__ */ ((ResultFlags22222222222222) => {
                                                      ResultFlags22222222222222[ResultFlags22222222222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                                                      ResultFlags22222222222222[ResultFlags22222222222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                                                      ResultFlags22222222222222[ResultFlags22222222222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                                                      return ResultFlags22222222222222;
                                                    })(ResultFlags2222222222222 || {});
                                                    var ServicesSupported2222222222222 = /* @__PURE__ */ ((ServicesSupported22222222222222) => {
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["I_AM"] = 26] = "I_AM";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["I_HAVE"] = 27] = "I_HAVE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["WHO_HAS"] = 33] = "WHO_HAS";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["WHO_IS"] = 34] = "WHO_IS";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["READ_RANGE"] = 35] = "READ_RANGE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                      ServicesSupported22222222222222[ServicesSupported22222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                      return ServicesSupported22222222222222;
                                                    })(ServicesSupported2222222222222 || {});
                                                    var StatusFlags2222222222222 = /* @__PURE__ */ ((StatusFlags22222222222222) => {
                                                      StatusFlags22222222222222[StatusFlags22222222222222["IN_ALARM"] = 0] = "IN_ALARM";
                                                      StatusFlags22222222222222[StatusFlags22222222222222["FAULT"] = 1] = "FAULT";
                                                      StatusFlags22222222222222[StatusFlags22222222222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                                                      StatusFlags22222222222222[StatusFlags22222222222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                                                      return StatusFlags22222222222222;
                                                    })(StatusFlags2222222222222 || {});
                                                    var ApplicationTag2222222222222 = /* @__PURE__ */ ((ApplicationTag22222222222222) => {
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["NULL"] = 0] = "NULL";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["BOOLEAN"] = 1] = "BOOLEAN";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["REAL"] = 4] = "REAL";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["DOUBLE"] = 5] = "DOUBLE";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["BIT_STRING"] = 8] = "BIT_STRING";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["ENUMERATED"] = 9] = "ENUMERATED";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["DATE"] = 10] = "DATE";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["TIME"] = 11] = "TIME";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["DATERANGE"] = 102] = "DATERANGE";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["DATETIME"] = 103] = "DATETIME";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["ERROR"] = 105] = "ERROR";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["DESTINATION"] = 109] = "DESTINATION";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["RECIPIENT"] = 110] = "RECIPIENT";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                                                      ApplicationTag22222222222222[ApplicationTag22222222222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                                                      return ApplicationTag22222222222222;
                                                    })(ApplicationTag2222222222222 || {});
                                                    var ApplicationTagName2222222222222 = invertEnum2222222222222(
                                                      ApplicationTag2222222222222
                                                    );
                                                    var BvlcResultFormat2222222222222 = /* @__PURE__ */ ((BvlcResultFormat22222222222222) => {
                                                      BvlcResultFormat22222222222222[BvlcResultFormat22222222222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                                                      BvlcResultFormat22222222222222[BvlcResultFormat22222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                      BvlcResultFormat22222222222222[BvlcResultFormat22222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                      BvlcResultFormat22222222222222[BvlcResultFormat22222222222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                                                      BvlcResultFormat22222222222222[BvlcResultFormat22222222222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                                                      BvlcResultFormat22222222222222[BvlcResultFormat22222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                                                      BvlcResultFormat22222222222222[BvlcResultFormat22222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                                                      return BvlcResultFormat22222222222222;
                                                    })(BvlcResultFormat2222222222222 || {});
                                                    var BvlcResultPurpose2222222222222 = /* @__PURE__ */ ((BvlcResultPurpose22222222222222) => {
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                                                      BvlcResultPurpose22222222222222[BvlcResultPurpose22222222222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                                                      return BvlcResultPurpose22222222222222;
                                                    })(BvlcResultPurpose2222222222222 || {});
                                                    var CharacterStringEncoding2222222222222 = /* @__PURE__ */ ((CharacterStringEncoding22222222222222) => {
                                                      CharacterStringEncoding22222222222222[CharacterStringEncoding22222222222222["UTF_8"] = 0] = "UTF_8";
                                                      CharacterStringEncoding22222222222222[CharacterStringEncoding22222222222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                                                      CharacterStringEncoding22222222222222[CharacterStringEncoding22222222222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                                                      CharacterStringEncoding22222222222222[CharacterStringEncoding22222222222222["UCS_4"] = 3] = "UCS_4";
                                                      CharacterStringEncoding22222222222222[CharacterStringEncoding22222222222222["UCS_2"] = 4] = "UCS_2";
                                                      CharacterStringEncoding22222222222222[CharacterStringEncoding22222222222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                                                      return CharacterStringEncoding22222222222222;
                                                    })(CharacterStringEncoding2222222222222 || {});
                                                    var CovType2222222222222 = /* @__PURE__ */ ((CovType22222222222222) => {
                                                      CovType22222222222222[CovType22222222222222["REAL"] = 0] = "REAL";
                                                      CovType22222222222222[CovType22222222222222["BIT_STRING"] = 1] = "BIT_STRING";
                                                      return CovType22222222222222;
                                                    })(CovType2222222222222 || {});
                                                    var EnableDisable2222222222222 = /* @__PURE__ */ ((EnableDisable22222222222222) => {
                                                      EnableDisable22222222222222[EnableDisable22222222222222["ENABLE"] = 0] = "ENABLE";
                                                      EnableDisable22222222222222[EnableDisable22222222222222["DISABLE"] = 1] = "DISABLE";
                                                      EnableDisable22222222222222[EnableDisable22222222222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                                                      return EnableDisable22222222222222;
                                                    })(EnableDisable2222222222222 || {});
                                                    var MaxApduLengthAccepted2222222222222 = /* @__PURE__ */ ((MaxApduLengthAccepted22222222222222) => {
                                                      MaxApduLengthAccepted22222222222222[MaxApduLengthAccepted22222222222222["OCTETS_50"] = 0] = "OCTETS_50";
                                                      MaxApduLengthAccepted22222222222222[MaxApduLengthAccepted22222222222222["OCTETS_128"] = 1] = "OCTETS_128";
                                                      MaxApduLengthAccepted22222222222222[MaxApduLengthAccepted22222222222222["OCTETS_206"] = 2] = "OCTETS_206";
                                                      MaxApduLengthAccepted22222222222222[MaxApduLengthAccepted22222222222222["OCTETS_480"] = 3] = "OCTETS_480";
                                                      MaxApduLengthAccepted22222222222222[MaxApduLengthAccepted22222222222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                                                      MaxApduLengthAccepted22222222222222[MaxApduLengthAccepted22222222222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                                                      return MaxApduLengthAccepted22222222222222;
                                                    })(MaxApduLengthAccepted2222222222222 || {});
                                                    var MaxSegmentsAccepted2222222222222 = /* @__PURE__ */ ((MaxSegmentsAccepted22222222222222) => {
                                                      MaxSegmentsAccepted22222222222222[MaxSegmentsAccepted22222222222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                                                      MaxSegmentsAccepted22222222222222[MaxSegmentsAccepted22222222222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                                                      MaxSegmentsAccepted22222222222222[MaxSegmentsAccepted22222222222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                                                      MaxSegmentsAccepted22222222222222[MaxSegmentsAccepted22222222222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                                                      MaxSegmentsAccepted22222222222222[MaxSegmentsAccepted22222222222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                                                      MaxSegmentsAccepted22222222222222[MaxSegmentsAccepted22222222222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                                                      MaxSegmentsAccepted22222222222222[MaxSegmentsAccepted22222222222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                                                      MaxSegmentsAccepted22222222222222[MaxSegmentsAccepted22222222222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                                                      return MaxSegmentsAccepted22222222222222;
                                                    })(MaxSegmentsAccepted2222222222222 || {});
                                                    var NetworkLayerMessageType2222222222222 = /* @__PURE__ */ ((NetworkLayerMessageType22222222222222) => {
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                                                      NetworkLayerMessageType22222222222222[NetworkLayerMessageType22222222222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                                                      return NetworkLayerMessageType22222222222222;
                                                    })(NetworkLayerMessageType2222222222222 || {});
                                                    var NpduControlBit2222222222222 = /* @__PURE__ */ ((NpduControlBit22222222222222) => {
                                                      NpduControlBit22222222222222[NpduControlBit22222222222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                                                      NpduControlBit22222222222222[NpduControlBit22222222222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                                                      NpduControlBit22222222222222[NpduControlBit22222222222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                                                      NpduControlBit22222222222222[NpduControlBit22222222222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                                                      return NpduControlBit22222222222222;
                                                    })(NpduControlBit2222222222222 || {});
                                                    var NpduControlPriority2222222222222 = /* @__PURE__ */ ((NpduControlPriority22222222222222) => {
                                                      NpduControlPriority22222222222222[NpduControlPriority22222222222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                                                      NpduControlPriority22222222222222[NpduControlPriority22222222222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                                                      NpduControlPriority22222222222222[NpduControlPriority22222222222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                                                      NpduControlPriority22222222222222[NpduControlPriority22222222222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                                                      return NpduControlPriority22222222222222;
                                                    })(NpduControlPriority2222222222222 || {});
                                                    var PduConReqBit2222222222222 = /* @__PURE__ */ ((PduConReqBit22222222222222) => {
                                                      PduConReqBit22222222222222[PduConReqBit22222222222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                                                      PduConReqBit22222222222222[PduConReqBit22222222222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                                                      PduConReqBit22222222222222[PduConReqBit22222222222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                                                      return PduConReqBit22222222222222;
                                                    })(PduConReqBit2222222222222 || {});
                                                    var PduSegAckBit2222222222222 = /* @__PURE__ */ ((PduSegAckBit22222222222222) => {
                                                      PduSegAckBit22222222222222[PduSegAckBit22222222222222["SERVER"] = 1] = "SERVER";
                                                      PduSegAckBit22222222222222[PduSegAckBit22222222222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                                                      return PduSegAckBit22222222222222;
                                                    })(PduSegAckBit2222222222222 || {});
                                                    var PduType2222222222222 = /* @__PURE__ */ ((PduType22222222222222) => {
                                                      PduType22222222222222[PduType22222222222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                                                      PduType22222222222222[PduType22222222222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                                                      PduType22222222222222[PduType22222222222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                                                      PduType22222222222222[PduType22222222222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                                                      PduType22222222222222[PduType22222222222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                                                      PduType22222222222222[PduType22222222222222["ERROR"] = 80] = "ERROR";
                                                      PduType22222222222222[PduType22222222222222["REJECT"] = 96] = "REJECT";
                                                      PduType22222222222222[PduType22222222222222["ABORT"] = 112] = "ABORT";
                                                      return PduType22222222222222;
                                                    })(PduType2222222222222 || {});
                                                    var PropertyStates2222222222222 = /* @__PURE__ */ ((PropertyStates22222222222222) => {
                                                      PropertyStates22222222222222[PropertyStates22222222222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["POLARITY"] = 3] = "POLARITY";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["RELIABILITY"] = 7] = "RELIABILITY";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["STATE"] = 8] = "STATE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["UNITS"] = 10] = "UNITS";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["ACTION"] = 16] = "ACTION";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["SHED_STATE"] = 27] = "SHED_STATE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                                                      PropertyStates22222222222222[PropertyStates22222222222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                                                      return PropertyStates22222222222222;
                                                    })(PropertyStates2222222222222 || {});
                                                    var ReadRangeType2222222222222 = /* @__PURE__ */ ((ReadRangeType22222222222222) => {
                                                      ReadRangeType22222222222222[ReadRangeType22222222222222["BY_POSITION"] = 0] = "BY_POSITION";
                                                      ReadRangeType22222222222222[ReadRangeType22222222222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                                                      ReadRangeType22222222222222[ReadRangeType22222222222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                                                      return ReadRangeType22222222222222;
                                                    })(ReadRangeType2222222222222 || {});
                                                    var ReinitializedState2222222222222 = /* @__PURE__ */ ((ReinitializedState22222222222222) => {
                                                      ReinitializedState22222222222222[ReinitializedState22222222222222["COLDSTART"] = 0] = "COLDSTART";
                                                      ReinitializedState22222222222222[ReinitializedState22222222222222["WARMSTART"] = 1] = "WARMSTART";
                                                      ReinitializedState22222222222222[ReinitializedState22222222222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                                                      ReinitializedState22222222222222[ReinitializedState22222222222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                                                      ReinitializedState22222222222222[ReinitializedState22222222222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                                                      ReinitializedState22222222222222[ReinitializedState22222222222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                                                      ReinitializedState22222222222222[ReinitializedState22222222222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                                                      ReinitializedState22222222222222[ReinitializedState22222222222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                                                      return ReinitializedState22222222222222;
                                                    })(ReinitializedState2222222222222 || {});
                                                    var TimeStamp2222222222222 = /* @__PURE__ */ ((TimeStamp22222222222222) => {
                                                      TimeStamp22222222222222[TimeStamp22222222222222["TIME"] = 0] = "TIME";
                                                      TimeStamp22222222222222[TimeStamp22222222222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                                                      TimeStamp22222222222222[TimeStamp22222222222222["DATETIME"] = 2] = "DATETIME";
                                                      return TimeStamp22222222222222;
                                                    })(TimeStamp2222222222222 || {});
                                                    var import_events22222222222222 = __toESM2222222222222(require("events"));
                                                    var import_debug32222222222222 = __toESM2222222222222(require("debug"));
                                                    var import_dgram2222222222222 = require("dgram");
                                                    var import_events3222222222222 = __toESM2222222222222(require("events"));
                                                    var import_debug22222222222222 = __toESM2222222222222(require("debug"));
                                                    var EventEmitter3222222222222 = import_events3222222222222.default.EventEmitter;
                                                    var debug22222222222222 = (0, import_debug22222222222222.default)("bacnet:client:debug");
                                                    var DEFAULT_BACNET_PORT3222222222222 = 47808;
                                                    var Transport2222222222222 = class extends EventEmitter3222222222222 {
                                                      constructor(settings) {
                                                        super();
                                                        this._lastSendMessages = {};
                                                        this._settings = settings;
                                                        this._server = (0, import_dgram2222222222222.createSocket)({
                                                          type: "udp4",
                                                          reuseAddr: settings.reuseAddr
                                                        });
                                                        this._server.on("message", (msg, rinfo) => {
                                                          if (this.ownAddress.port === rinfo.port) {
                                                            for (let [messageKey, earlierSentBuffer] of Object.entries(
                                                              this._lastSendMessages
                                                            )) {
                                                              if (msg.equals(earlierSentBuffer)) {
                                                                debug22222222222222(
                                                                  `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                                                );
                                                                return;
                                                              }
                                                            }
                                                          }
                                                          debug22222222222222(
                                                            `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                                              "hex"
                                                            )}`
                                                          );
                                                          this.emit(
                                                            "message",
                                                            msg,
                                                            rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT3222222222222 ? "" : ":" + rinfo.port)
                                                          );
                                                        });
                                                        this._server.on("listening", () => {
                                                          this.ownAddress = this._server.address();
                                                          debug22222222222222(
                                                            `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                                                          );
                                                          this.emit("listening", this.ownAddress);
                                                        });
                                                        this._server.on("error", (err) => {
                                                          debug22222222222222("transport error", err.message);
                                                          this.emit("error", err);
                                                        });
                                                        this._server.on("close", () => {
                                                          debug22222222222222("transport closed");
                                                          this.emit("close");
                                                        });
                                                      }
                                                      getBroadcastAddress() {
                                                        return this._settings.broadcastAddress;
                                                      }
                                                      getMaxPayload() {
                                                        return 1482;
                                                      }
                                                      send(buffer, offset, receiver) {
                                                        if (!receiver) {
                                                          receiver = this.getBroadcastAddress();
                                                          const dataToSend = Buffer.alloc(offset);
                                                          const hrTime = process.hrtime();
                                                          const messageKey = hrTime[0] * 1e9 + hrTime[1];
                                                          buffer.copy(dataToSend, 0, 0, offset);
                                                          this._lastSendMessages[messageKey] = dataToSend;
                                                          setTimeout(() => {
                                                            delete this._lastSendMessages[messageKey];
                                                          }, 1e4);
                                                        }
                                                        const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                                                        const [address, port] = receiverAddress.split(":");
                                                        debug22222222222222(
                                                          "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                                                        );
                                                        this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT3222222222222, address);
                                                      }
                                                      open() {
                                                        this._server.bind(this._settings.port, this._settings.interface, () => {
                                                          this._server.setBroadcast(true);
                                                        });
                                                      }
                                                      close() {
                                                        this._server.close();
                                                      }
                                                    };
                                                    var services_exports2222222222222 = {};
                                                    __export2222222222222(services_exports2222222222222, {
                                                      addListElement: () => add_list_element_exports2222222222222,
                                                      alarmAcknowledge: () => alarm_acknowledge_exports2222222222222,
                                                      alarmSummary: () => alarm_summary_exports2222222222222,
                                                      atomicReadFile: () => atomic_read_file_exports2222222222222,
                                                      atomicWriteFile: () => atomic_write_file_exports2222222222222,
                                                      covNotify: () => cov_notify_exports2222222222222,
                                                      covNotifyUnconfirmed: () => cov_notify_exports2222222222222,
                                                      createObject: () => create_object_exports2222222222222,
                                                      deleteObject: () => delete_object_exports2222222222222,
                                                      deviceCommunicationControl: () => device_communication_control_exports2222222222222,
                                                      error: () => error_exports2222222222222,
                                                      eventInformation: () => event_information_exports2222222222222,
                                                      eventNotifyData: () => event_notify_data_exports2222222222222,
                                                      getEnrollmentSummary: () => get_enrollment_summary_exports2222222222222,
                                                      getEventInformation: () => get_event_information_exports2222222222222,
                                                      iAm: () => i_am_exports2222222222222,
                                                      iHave: () => i_have_exports2222222222222,
                                                      lifeSafetyOperation: () => life_safety_operation_exports2222222222222,
                                                      privateTransfer: () => private_transfer_exports2222222222222,
                                                      readProperty: () => read_property_exports2222222222222,
                                                      readPropertyMultiple: () => read_property_multiple_exports2222222222222,
                                                      readRange: () => read_range_exports2222222222222,
                                                      registerForeignDevice: () => register_foreign_device_exports2222222222222,
                                                      reinitializeDevice: () => reinitialize_device_exports2222222222222,
                                                      subscribeCov: () => subscribe_cov_exports2222222222222,
                                                      subscribeProperty: () => subscribe_property_exports2222222222222,
                                                      timeSync: () => time_sync_exports2222222222222,
                                                      timeSyncUTC: () => time_sync_exports2222222222222,
                                                      whoHas: () => who_has_exports2222222222222,
                                                      whoIs: () => who_is_exports2222222222222,
                                                      writeProperty: () => write_property_exports2222222222222,
                                                      writePropertyMultiple: () => write_property_multiple_exports2222222222222
                                                    });
                                                    var add_list_element_exports2222222222222 = {};
                                                    __export2222222222222(add_list_element_exports2222222222222, {
                                                      decode: () => decode33222222222222,
                                                      encode: () => encode33222222222222
                                                    });
                                                    var import_iconv_lite2222222222222 = __toESM2222222222222(require("iconv-lite"));
                                                    var enums_default2222222222222 = enum_exports2222222222222;
                                                    var START_YEAR2222222222222 = 1900;
                                                    var MAX_YEARS2222222222222 = 256;
                                                    var getBuffer2222222222222 = () => {
                                                      return {
                                                        buffer: Buffer.alloc(1472),
                                                        offset: 0
                                                      };
                                                    };
                                                    var getSignedLength2222222222222 = (value) => {
                                                      if (value >= -128 && value < 128)
                                                        return 1;
                                                      else if (value >= -32768 && value < 32768)
                                                        return 2;
                                                      else if (value > -8388608 && value < 8388608)
                                                        return 3;
                                                      else
                                                        return 4;
                                                    };
                                                    var getUnsignedLength2222222222222 = (value) => {
                                                      if (value < 256)
                                                        return 1;
                                                      else if (value < 65536)
                                                        return 2;
                                                      else if (value < 16777216)
                                                        return 3;
                                                      else
                                                        return 4;
                                                    };
                                                    var getEncodingType2222222222222 = (encoding, decodingBuffer, decodingOffset) => {
                                                      switch (encoding) {
                                                        case enums_default2222222222222.CharacterStringEncoding.UCS_2:
                                                          if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                                            return "ucs2";
                                                          }
                                                          return "UTF-16BE";
                                                        case enums_default2222222222222.CharacterStringEncoding.ISO_8859_1:
                                                          return "latin1";
                                                        case enums_default2222222222222.CharacterStringEncoding.MICROSOFT_DBCS:
                                                          return "cp850";
                                                        case enums_default2222222222222.CharacterStringEncoding.JIS_X_0208:
                                                          return "Shift_JIS";
                                                        default:
                                                          return "utf8";
                                                      }
                                                    };
                                                    var encodeUnsigned2222222222222 = (buffer, value, length) => {
                                                      buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                                                      buffer.offset += length;
                                                    };
                                                    var encodeBacnetUnsigned2222222222222 = (buffer, value) => {
                                                      encodeUnsigned2222222222222(buffer, value, getUnsignedLength2222222222222(value));
                                                    };
                                                    var encodeSigned2222222222222 = (buffer, value, length) => {
                                                      buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                                                      buffer.offset += length;
                                                    };
                                                    var encodeBacnetSigned2222222222222 = (buffer, value) => {
                                                      encodeSigned2222222222222(buffer, value, getSignedLength2222222222222(value));
                                                    };
                                                    var encodeBacnetReal2222222222222 = (buffer, value) => {
                                                      buffer.buffer.writeFloatBE(value, buffer.offset, true);
                                                      buffer.offset += 4;
                                                    };
                                                    var encodeBacnetDouble2222222222222 = (buffer, value) => {
                                                      buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                                                      buffer.offset += 8;
                                                    };
                                                    var decodeUnsigned2222222222222 = (buffer, offset, length) => {
                                                      if (length === 0) {
                                                        return {
                                                          len: 0,
                                                          value: 0
                                                        };
                                                      }
                                                      return {
                                                        len: length,
                                                        //@ts-ignore
                                                        value: buffer.readUIntBE(offset, length)
                                                      };
                                                    };
                                                    var decodeEnumerated2222222222222 = (buffer, offset, length) => {
                                                      return decodeUnsigned2222222222222(buffer, offset, length);
                                                    };
                                                    var encodeBacnetObjectId2222222222222 = (buffer, objectType, instance) => {
                                                      const value = ((objectType & enums_default2222222222222.ASN1_MAX_OBJECT) << enums_default2222222222222.ASN1_INSTANCE_BITS | instance & enums_default2222222222222.ASN1_MAX_INSTANCE) >>> 0;
                                                      encodeUnsigned2222222222222(buffer, value, 4);
                                                    };
                                                    var encodeTag2222222222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                                                      let len = 1;
                                                      const tmp = new Array(3);
                                                      tmp[0] = 0;
                                                      if (contextSpecific) {
                                                        tmp[0] |= 8;
                                                      }
                                                      if (tagNumber <= 14) {
                                                        tmp[0] |= tagNumber << 4;
                                                      } else {
                                                        tmp[0] |= 240;
                                                        tmp[1] = tagNumber;
                                                        len++;
                                                      }
                                                      if (lenValueType <= 4) {
                                                        tmp[0] |= lenValueType;
                                                        Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                        buffer.offset += len;
                                                      } else {
                                                        tmp[0] |= 5;
                                                        if (lenValueType <= 253) {
                                                          tmp[len++] = lenValueType;
                                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                          buffer.offset += len;
                                                        } else if (lenValueType <= 65535) {
                                                          tmp[len++] = 254;
                                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                          buffer.offset += len;
                                                          encodeUnsigned2222222222222(buffer, lenValueType, 2);
                                                        } else {
                                                          tmp[len++] = 255;
                                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                          buffer.offset += len;
                                                          encodeUnsigned2222222222222(buffer, lenValueType, 4);
                                                        }
                                                      }
                                                    };
                                                    var encodeBacnetEnumerated2222222222222 = (buffer, value) => {
                                                      encodeBacnetUnsigned2222222222222(buffer, value);
                                                    };
                                                    var isExtendedTagNumber2222222222222 = (x) => {
                                                      return (x & 240) === 240;
                                                    };
                                                    var isExtendedValue2222222222222 = (x) => {
                                                      return (x & 7) === 5;
                                                    };
                                                    var isContextSpecific2222222222222 = (x) => {
                                                      return (x & 8) === 8;
                                                    };
                                                    var isOpeningTag2222222222222 = (x) => {
                                                      return (x & 7) === 6;
                                                    };
                                                    var isClosingTag2222222222222 = (x) => {
                                                      return (x & 7) === 7;
                                                    };
                                                    var encodeContextReal2222222222222 = (buffer, tagNumber, value) => {
                                                      encodeTag2222222222222(buffer, tagNumber, true, 4);
                                                      encodeBacnetReal2222222222222(buffer, value);
                                                    };
                                                    var encodeContextUnsigned2222222222222 = (buffer, tagNumber, value) => {
                                                      encodeTag2222222222222(buffer, tagNumber, true, getUnsignedLength2222222222222(value));
                                                      encodeBacnetUnsigned2222222222222(buffer, value);
                                                    };
                                                    var encodeContextEnumerated2222222222222 = (buffer, tagNumber, value) => {
                                                      encodeContextUnsigned2222222222222(buffer, tagNumber, value);
                                                    };
                                                    var encodeOctetString2222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                      if (octetString) {
                                                        for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                                                          buffer.buffer[buffer.offset++] = octetString[i];
                                                        }
                                                      }
                                                    };
                                                    var encodeApplicationOctetString2222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                      encodeTag2222222222222(buffer, enums_default2222222222222.ApplicationTag.OCTET_STRING, false, octetCount);
                                                      encodeOctetString2222222222222(buffer, octetString, octetOffset, octetCount);
                                                    };
                                                    var encodeApplicationNull2222222222222 = (buffer) => {
                                                      buffer.buffer[buffer.offset++] = enums_default2222222222222.ApplicationTag.NULL;
                                                    };
                                                    var encodeApplicationBoolean2222222222222 = (buffer, booleanValue) => {
                                                      encodeTag2222222222222(buffer, enums_default2222222222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                                                    };
                                                    var encodeApplicationReal2222222222222 = (buffer, value) => {
                                                      encodeTag2222222222222(buffer, enums_default2222222222222.ApplicationTag.REAL, false, 4);
                                                      encodeBacnetReal2222222222222(buffer, value);
                                                    };
                                                    var encodeApplicationDouble2222222222222 = (buffer, value) => {
                                                      encodeTag2222222222222(buffer, enums_default2222222222222.ApplicationTag.DOUBLE, false, 8);
                                                      encodeBacnetDouble2222222222222(buffer, value);
                                                    };
                                                    var bitstringBytesUsed2222222222222 = (bitString) => {
                                                      let len = 0;
                                                      if (bitString.bitsUsed > 0) {
                                                        const lastBit = bitString.bitsUsed - 1;
                                                        const usedBytes = lastBit / 8 + 1;
                                                        len = Math.floor(usedBytes);
                                                      }
                                                      return len;
                                                    };
                                                    var encodeApplicationObjectId2222222222222 = (buffer, objectType, instance) => {
                                                      const tmp = getBuffer2222222222222();
                                                      encodeBacnetObjectId2222222222222(tmp, objectType, instance);
                                                      encodeTag2222222222222(buffer, enums_default2222222222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                      buffer.offset += tmp.offset;
                                                    };
                                                    var encodeApplicationUnsigned2222222222222 = (buffer, value) => {
                                                      const tmp = getBuffer2222222222222();
                                                      encodeBacnetUnsigned2222222222222(tmp, value);
                                                      encodeTag2222222222222(buffer, enums_default2222222222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                      buffer.offset += tmp.offset;
                                                    };
                                                    var encodeApplicationEnumerated2222222222222 = (buffer, value) => {
                                                      const tmp = getBuffer2222222222222();
                                                      encodeBacnetEnumerated2222222222222(tmp, value);
                                                      encodeTag2222222222222(buffer, enums_default2222222222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                      buffer.offset += tmp.offset;
                                                    };
                                                    var encodeApplicationSigned2222222222222 = (buffer, value) => {
                                                      const tmp = getBuffer2222222222222();
                                                      encodeBacnetSigned2222222222222(tmp, value);
                                                      encodeTag2222222222222(buffer, enums_default2222222222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                      buffer.offset += tmp.offset;
                                                    };
                                                    var byteReverseBits2222222222222 = (inByte) => {
                                                      let outByte = 0;
                                                      if ((inByte & 1) > 0) {
                                                        outByte |= 128;
                                                      }
                                                      if ((inByte & 2) > 0) {
                                                        outByte |= 64;
                                                      }
                                                      if ((inByte & 4) > 0) {
                                                        outByte |= 32;
                                                      }
                                                      if ((inByte & 8) > 0) {
                                                        outByte |= 16;
                                                      }
                                                      if ((inByte & 16) > 0) {
                                                        outByte |= 8;
                                                      }
                                                      if ((inByte & 32) > 0) {
                                                        outByte |= 4;
                                                      }
                                                      if ((inByte & 64) > 0) {
                                                        outByte |= 2;
                                                      }
                                                      if ((inByte & 128) > 0) {
                                                        outByte |= 1;
                                                      }
                                                      return outByte;
                                                    };
                                                    var bitstringOctet2222222222222 = (bitString, octetIndex) => {
                                                      let octet = 0;
                                                      if (bitString.value && octetIndex < enums_default2222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                        octet = bitString.value[octetIndex];
                                                      }
                                                      return octet;
                                                    };
                                                    var encodeBitstring2222222222222 = (buffer, bitString) => {
                                                      if (bitString.bitsUsed === 0) {
                                                        buffer.buffer[buffer.offset++] = 0;
                                                      } else {
                                                        const usedBytes = bitstringBytesUsed2222222222222(bitString);
                                                        const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                                                        buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                                                        for (let i = 0; i < usedBytes; i++) {
                                                          buffer.buffer[buffer.offset++] = byteReverseBits2222222222222(
                                                            bitstringOctet2222222222222(bitString, i)
                                                          );
                                                        }
                                                      }
                                                    };
                                                    var encodeApplicationBitstring2222222222222 = (buffer, bitString) => {
                                                      let bitStringEncodedLength = 1;
                                                      bitStringEncodedLength += bitstringBytesUsed2222222222222(bitString);
                                                      encodeTag2222222222222(
                                                        buffer,
                                                        enums_default2222222222222.ApplicationTag.BIT_STRING,
                                                        false,
                                                        bitStringEncodedLength
                                                      );
                                                      encodeBitstring2222222222222(buffer, bitString);
                                                    };
                                                    var encodeBacnetDate2222222222222 = (buffer, value) => {
                                                      if (value === new Date(1, 1, 1)) {
                                                        buffer.buffer[buffer.offset++] = 255;
                                                        buffer.buffer[buffer.offset++] = 255;
                                                        buffer.buffer[buffer.offset++] = 255;
                                                        buffer.buffer[buffer.offset++] = 255;
                                                        return;
                                                      }
                                                      if (value.getFullYear() >= START_YEAR2222222222222) {
                                                        buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR2222222222222;
                                                      } else if (value.getFullYear() < MAX_YEARS2222222222222) {
                                                        buffer.buffer[buffer.offset++] = value.getFullYear();
                                                      } else {
                                                        throw new Error("invaide year: " + value.getFullYear());
                                                      }
                                                      buffer.buffer[buffer.offset++] = value.getMonth();
                                                      buffer.buffer[buffer.offset++] = value.getDate();
                                                      buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                                                    };
                                                    var encodeApplicationDate2222222222222 = (buffer, value) => {
                                                      encodeTag2222222222222(buffer, enums_default2222222222222.ApplicationTag.DATE, false, 4);
                                                      encodeBacnetDate2222222222222(buffer, value);
                                                    };
                                                    var encodeBacnetTime2222222222222 = (buffer, value) => {
                                                      buffer.buffer[buffer.offset++] = value.getHours();
                                                      buffer.buffer[buffer.offset++] = value.getMinutes();
                                                      buffer.buffer[buffer.offset++] = value.getSeconds();
                                                      buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                                                    };
                                                    var encodeApplicationTime2222222222222 = (buffer, value) => {
                                                      encodeTag2222222222222(buffer, enums_default2222222222222.ApplicationTag.TIME, false, 4);
                                                      encodeBacnetTime2222222222222(buffer, value);
                                                    };
                                                    var bacappEncodeDatetime2222222222222 = (buffer, value) => {
                                                      if (value !== new Date(1, 1, 1)) {
                                                        encodeApplicationDate2222222222222(buffer, value);
                                                        encodeApplicationTime2222222222222(buffer, value);
                                                      }
                                                    };
                                                    var encodeContextObjectId2222222222222 = (buffer, tagNumber, objectType, instance) => {
                                                      encodeTag2222222222222(buffer, tagNumber, true, 4);
                                                      encodeBacnetObjectId2222222222222(buffer, objectType, instance);
                                                    };
                                                    var encodeOpeningTag2222222222222 = (buffer, tagNumber) => {
                                                      let len = 1;
                                                      const tmp = new Array(2);
                                                      tmp[0] = 8;
                                                      if (tagNumber <= 14) {
                                                        tmp[0] |= tagNumber << 4;
                                                      } else {
                                                        tmp[0] |= 240;
                                                        tmp[1] = tagNumber;
                                                        len++;
                                                      }
                                                      tmp[0] |= 6;
                                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                      buffer.offset += len;
                                                    };
                                                    var encodeClosingTag2222222222222 = (buffer, tagNumber) => {
                                                      let len = 1;
                                                      const tmp = new Array(2);
                                                      tmp[0] = 8;
                                                      if (tagNumber <= 14) {
                                                        tmp[0] |= tagNumber << 4;
                                                      } else {
                                                        tmp[0] |= 240;
                                                        tmp[1] = tagNumber;
                                                        len++;
                                                      }
                                                      tmp[0] |= 7;
                                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                      buffer.offset += len;
                                                    };
                                                    var encodeReadAccessSpecification2222222222222 = (buffer, value) => {
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        0,
                                                        value.objectId.type,
                                                        value.objectId.instance
                                                      );
                                                      encodeOpeningTag2222222222222(buffer, 1);
                                                      value.properties.forEach((p) => {
                                                        encodeContextEnumerated2222222222222(buffer, 0, p.id);
                                                        if (p.index && p.index !== enums_default2222222222222.ASN1_ARRAY_ALL) {
                                                          encodeContextUnsigned2222222222222(buffer, 1, p.index);
                                                        }
                                                      });
                                                      encodeClosingTag2222222222222(buffer, 1);
                                                    };
                                                    var encodeContextBoolean2222222222222 = (buffer, tagNumber, booleanValue) => {
                                                      encodeTag2222222222222(buffer, tagNumber, true, 1);
                                                      buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                                                      buffer.offset += 1;
                                                    };
                                                    var encodeCovSubscription2222222222222 = (buffer, value) => {
                                                      encodeOpeningTag2222222222222(buffer, 0);
                                                      encodeOpeningTag2222222222222(buffer, 0);
                                                      encodeOpeningTag2222222222222(buffer, 1);
                                                      encodeApplicationUnsigned2222222222222(buffer, value.recipient.network);
                                                      if (value.recipient.network === 65535) {
                                                        encodeApplicationOctetString2222222222222(buffer, 0, 0, 0);
                                                      } else {
                                                        encodeApplicationOctetString2222222222222(
                                                          buffer,
                                                          value.recipient.address,
                                                          0,
                                                          value.recipient.address.length
                                                        );
                                                      }
                                                      encodeClosingTag2222222222222(buffer, 1);
                                                      encodeClosingTag2222222222222(buffer, 0);
                                                      encodeContextUnsigned2222222222222(buffer, 1, value.subscriptionProcessId);
                                                      encodeClosingTag2222222222222(buffer, 0);
                                                      encodeOpeningTag2222222222222(buffer, 1);
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        0,
                                                        value.monitoredObjectId.type,
                                                        value.monitoredObjectId.instance
                                                      );
                                                      encodeContextEnumerated2222222222222(buffer, 1, value.monitoredProperty.id);
                                                      if (value.monitoredProperty.index !== enums_default2222222222222.ASN1_ARRAY_ALL) {
                                                        encodeContextUnsigned2222222222222(buffer, 2, value.monitoredProperty.index);
                                                      }
                                                      encodeClosingTag2222222222222(buffer, 1);
                                                      encodeContextBoolean2222222222222(buffer, 2, value.issueConfirmedNotifications);
                                                      encodeContextUnsigned2222222222222(buffer, 3, value.timeRemaining);
                                                      if (value.covIncrement > 0) {
                                                        encodeContextReal2222222222222(buffer, 4, value.covIncrement);
                                                      }
                                                    };
                                                    var bacappEncodeApplicationData2222222222222 = (buffer, value) => {
                                                      if (value.value === null) {
                                                        value.type = enums_default2222222222222.ApplicationTag.NULL;
                                                      }
                                                      switch (value.type) {
                                                        case enums_default2222222222222.ApplicationTag.NULL:
                                                          encodeApplicationNull2222222222222(buffer);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.BOOLEAN:
                                                          encodeApplicationBoolean2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                          encodeApplicationUnsigned2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.SIGNED_INTEGER:
                                                          encodeApplicationSigned2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.REAL:
                                                          encodeApplicationReal2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.DOUBLE:
                                                          encodeApplicationDouble2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.OCTET_STRING:
                                                          encodeApplicationOctetString2222222222222(buffer, value.value, 0, value.value.length);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.CHARACTER_STRING:
                                                          encodeApplicationCharacterString2222222222222(buffer, value.value, value.encoding);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.BIT_STRING:
                                                          encodeApplicationBitstring2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.ENUMERATED:
                                                          encodeApplicationEnumerated2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.DATE:
                                                          encodeApplicationDate2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.TIME:
                                                          encodeApplicationTime2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.TIMESTAMP:
                                                          bacappEncodeTimestamp2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.DATETIME:
                                                          bacappEncodeDatetime2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                          encodeApplicationObjectId2222222222222(buffer, value.value.type, value.value.instance);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.COV_SUBSCRIPTION:
                                                          encodeCovSubscription2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.READ_ACCESS_RESULT:
                                                          encodeReadAccessResult2222222222222(buffer, value.value);
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                          encodeReadAccessSpecification2222222222222(buffer, value.value);
                                                          break;
                                                        case void 0:
                                                          throw new Error(
                                                            "Cannot encode a value if the type has not been specified"
                                                          );
                                                        default:
                                                          throw "No encode for ApplicationTag type: " + enums_default2222222222222.getEnumName(
                                                            enums_default2222222222222.ApplicationTag,
                                                            value.type
                                                          );
                                                      }
                                                    };
                                                    var bacappEncodeDeviceObjPropertyRef2222222222222 = (buffer, value) => {
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        0,
                                                        value.objectId.type,
                                                        value.objectId.instance
                                                      );
                                                      encodeContextEnumerated2222222222222(buffer, 1, value.id);
                                                      if (value.arrayIndex !== enums_default2222222222222.ASN1_ARRAY_ALL) {
                                                        encodeContextUnsigned2222222222222(buffer, 2, value.arrayIndex);
                                                      }
                                                      if (value.deviceIndentifier.type === enums_default2222222222222.ObjectType.DEVICE) {
                                                        encodeContextObjectId2222222222222(
                                                          buffer,
                                                          3,
                                                          value.deviceIndentifier.type,
                                                          value.deviceIndentifier.instance
                                                        );
                                                      }
                                                    };
                                                    var bacappEncodeContextDeviceObjPropertyRef2222222222222 = (buffer, tagNumber, value) => {
                                                      encodeOpeningTag2222222222222(buffer, tagNumber);
                                                      bacappEncodeDeviceObjPropertyRef2222222222222(buffer, value);
                                                      encodeClosingTag2222222222222(buffer, tagNumber);
                                                    };
                                                    var bacappEncodePropertyState2222222222222 = (buffer, value) => {
                                                      switch (value.type) {
                                                        case enums_default2222222222222.PropertyStates.BOOLEAN_VALUE:
                                                          encodeContextBoolean2222222222222(buffer, 0, value.state === 1);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.BINARY_VALUE:
                                                          encodeContextEnumerated2222222222222(buffer, 1, value.state);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.EVENT_TYPE:
                                                          encodeContextEnumerated2222222222222(buffer, 2, value.state);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.POLARITY:
                                                          encodeContextEnumerated2222222222222(buffer, 3, value.state);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.PROGRAM_CHANGE:
                                                          encodeContextEnumerated2222222222222(buffer, 4, value.state);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.PROGRAM_STATE:
                                                          encodeContextEnumerated2222222222222(buffer, 5, value.state);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.REASON_FOR_HALT:
                                                          encodeContextEnumerated2222222222222(buffer, 6, value.state);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.RELIABILITY:
                                                          encodeContextEnumerated2222222222222(buffer, 7, value.state);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.STATE:
                                                          encodeContextEnumerated2222222222222(buffer, 8, value.state);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.SYSTEM_STATUS:
                                                          encodeContextEnumerated2222222222222(buffer, 9, value.state);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.UNITS:
                                                          encodeContextEnumerated2222222222222(buffer, 10, value.state);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.UNSIGNED_VALUE:
                                                          encodeContextUnsigned2222222222222(buffer, 11, value.state);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.LIFE_SAFETY_MODE:
                                                          encodeContextEnumerated2222222222222(buffer, 12, value.state);
                                                          break;
                                                        case enums_default2222222222222.PropertyStates.LIFE_SAFETY_STATE:
                                                          encodeContextEnumerated2222222222222(buffer, 13, value.state);
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                    };
                                                    var encodeContextBitstring2222222222222 = (buffer, tagNumber, bitString) => {
                                                      let bitStringEncodedLength = 1;
                                                      bitStringEncodedLength += bitstringBytesUsed2222222222222(bitString);
                                                      encodeTag2222222222222(buffer, tagNumber, true, bitStringEncodedLength);
                                                      encodeBitstring2222222222222(buffer, bitString);
                                                    };
                                                    var encodeContextSigned2222222222222 = (buffer, tagNumber, value) => {
                                                      encodeTag2222222222222(buffer, tagNumber, true, getSignedLength2222222222222(value));
                                                      encodeBacnetSigned2222222222222(buffer, value);
                                                    };
                                                    var encodeContextTime2222222222222 = (buffer, tagNumber, value) => {
                                                      encodeTag2222222222222(buffer, tagNumber, true, 4);
                                                      encodeBacnetTime2222222222222(buffer, value);
                                                    };
                                                    var bacappEncodeContextDatetime2222222222222 = (buffer, tagNumber, value) => {
                                                      if (value !== new Date(1, 1, 1)) {
                                                        encodeOpeningTag2222222222222(buffer, tagNumber);
                                                        bacappEncodeDatetime2222222222222(buffer, value);
                                                        encodeClosingTag2222222222222(buffer, tagNumber);
                                                      } else {
                                                        throw new Error("wrong Datetime while bacapp encoding context");
                                                      }
                                                    };
                                                    var decodeTagNumber2222222222222 = (buffer, offset) => {
                                                      let len = 1;
                                                      let tagNumber;
                                                      if (isExtendedTagNumber2222222222222(buffer[offset])) {
                                                        tagNumber = buffer[offset + 1];
                                                        len++;
                                                      } else {
                                                        tagNumber = buffer[offset] >> 4;
                                                      }
                                                      return {
                                                        len,
                                                        tagNumber
                                                      };
                                                    };
                                                    var decodeIsContextTag2222222222222 = (buffer, offset, tagNumber) => {
                                                      const result = decodeTagNumber2222222222222(buffer, offset);
                                                      return isContextSpecific2222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                    };
                                                    var decodeIsOpeningTagNumber2222222222222 = (buffer, offset, tagNumber) => {
                                                      const result = decodeTagNumber2222222222222(buffer, offset);
                                                      return isOpeningTag2222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                    };
                                                    var decodeIsClosingTagNumber2222222222222 = (buffer, offset, tagNumber) => {
                                                      const result = decodeTagNumber2222222222222(buffer, offset);
                                                      return isClosingTag2222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                    };
                                                    var decodeIsClosingTag2222222222222 = (buffer, offset) => {
                                                      return (buffer[offset] & 7) === 7;
                                                    };
                                                    var decodeIsOpeningTag2222222222222 = (buffer, offset) => {
                                                      return (buffer[offset] & 7) === 6;
                                                    };
                                                    var decodeObjectId2222222222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                                                      const result = decodeUnsigned2222222222222(buffer, offset, 4);
                                                      const objectType = result.value >> enums_default2222222222222.ASN1_INSTANCE_BITS & enums_default2222222222222.ASN1_MAX_OBJECT;
                                                      const instance = result.value & enums_default2222222222222.ASN1_MAX_INSTANCE;
                                                      return {
                                                        len: result.len,
                                                        objectType,
                                                        instance
                                                      };
                                                    };
                                                    var decodeObjectIdSafe2222222222222 = (buffer, offset, lenValue) => {
                                                      if (lenValue !== 4) {
                                                        return {
                                                          len: 0,
                                                          objectType: 0,
                                                          instance: 0
                                                        };
                                                      } else {
                                                        return decodeObjectId2222222222222(buffer, offset);
                                                      }
                                                    };
                                                    var decodeTagNumberAndValue2222222222222 = (buffer, offset) => {
                                                      let value;
                                                      let result = decodeTagNumber2222222222222(buffer, offset);
                                                      let len = result.len;
                                                      if (isExtendedValue2222222222222(buffer[offset])) {
                                                        if (buffer[offset + len] === 255) {
                                                          len++;
                                                          result = decodeUnsigned2222222222222(buffer, offset + len, 4);
                                                          len += result.len;
                                                          value = result.value;
                                                        } else if (buffer[offset + len] === 254) {
                                                          len++;
                                                          result = decodeUnsigned2222222222222(buffer, offset + len, 2);
                                                          len += result.len;
                                                          value = result.value;
                                                        } else {
                                                          value = buffer[offset + len];
                                                          len++;
                                                        }
                                                      } else if (isOpeningTag2222222222222(buffer[offset])) {
                                                        value = 0;
                                                      } else if (isClosingTag2222222222222(buffer[offset])) {
                                                        value = 0;
                                                      } else {
                                                        value = buffer[offset] & 7;
                                                      }
                                                      return {
                                                        len,
                                                        tagNumber: result.tagNumber,
                                                        value
                                                      };
                                                    };
                                                    var bacappDecodeApplicationData2222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                      if (!isContextSpecific2222222222222(buffer[offset])) {
                                                        let result = decodeTagNumberAndValue2222222222222(buffer, offset);
                                                        if (result) {
                                                          let len = result.len;
                                                          result = bacappDecodeData2222222222222(
                                                            buffer,
                                                            offset + len,
                                                            maxOffset,
                                                            result.tagNumber,
                                                            result.value
                                                          );
                                                          if (!result) {
                                                            return void 0;
                                                          }
                                                          let resObj = {
                                                            len: len + result.len,
                                                            type: result.type,
                                                            value: result.value
                                                          };
                                                          if (result.encoding !== void 0)
                                                            resObj.encoding = result.encoding;
                                                          return resObj;
                                                        }
                                                      } else {
                                                        return bacappDecodeContextApplicationData2222222222222(
                                                          buffer,
                                                          offset,
                                                          maxOffset,
                                                          objectType,
                                                          propertyId
                                                        );
                                                      }
                                                    };
                                                    var encodeReadAccessResult2222222222222 = (buffer, value) => {
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        0,
                                                        value.objectId.type,
                                                        value.objectId.instance
                                                      );
                                                      encodeOpeningTag2222222222222(buffer, 1);
                                                      value.values.forEach((item) => {
                                                        encodeContextEnumerated2222222222222(buffer, 2, item.property.id);
                                                        if (item.property.index !== enums_default2222222222222.ASN1_ARRAY_ALL) {
                                                          encodeContextUnsigned2222222222222(buffer, 3, item.property.index);
                                                        }
                                                        if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                                                          encodeOpeningTag2222222222222(buffer, 5);
                                                          encodeApplicationEnumerated2222222222222(buffer, item.value[0].value.errorClass);
                                                          encodeApplicationEnumerated2222222222222(buffer, item.value[0].value.errorCode);
                                                          encodeClosingTag2222222222222(buffer, 5);
                                                        } else {
                                                          if (!item.value)
                                                            throw new Error("No value in item");
                                                          encodeOpeningTag2222222222222(buffer, 4);
                                                          item.value.forEach((subItem) => {
                                                            bacappEncodeApplicationData2222222222222(buffer, subItem);
                                                          });
                                                          encodeClosingTag2222222222222(buffer, 4);
                                                        }
                                                      });
                                                      encodeClosingTag2222222222222(buffer, 1);
                                                    };
                                                    var decodeReadAccessResult2222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let value = {};
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      let result = decodeObjectId2222222222222(buffer, offset + len);
                                                      value.objectId = {
                                                        type: result.objectType,
                                                        instance: result.instance
                                                      };
                                                      len += result.len;
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        return -1;
                                                      }
                                                      len++;
                                                      const values = [];
                                                      while (apduLen - len > 0) {
                                                        let newEntry = {};
                                                        if (decodeIsClosingTagNumber2222222222222(buffer, offset + len, 1)) {
                                                          len++;
                                                          break;
                                                        }
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 2) {
                                                          return void 0;
                                                        }
                                                        result = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        newEntry.id = result.value;
                                                        len += result.len;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        if (result.tagNumber === 3) {
                                                          len += result.len;
                                                          result = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                          newEntry.index = result.value;
                                                          len += result.len;
                                                        } else {
                                                          newEntry.index = enums_default2222222222222.ASN1_ARRAY_ALL;
                                                        }
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber === 4) {
                                                          const localValues = [];
                                                          while (len + offset <= buffer.length && !decodeIsClosingTagNumber2222222222222(buffer, offset + len, 4)) {
                                                            let localResult = bacappDecodeApplicationData2222222222222(
                                                              buffer,
                                                              offset + len,
                                                              apduLen + offset - 1,
                                                              value.objectId.type,
                                                              newEntry.id
                                                            );
                                                            if (!localResult) {
                                                              return void 0;
                                                            }
                                                            len += localResult.len;
                                                            let resObj = {
                                                              value: localResult.value,
                                                              type: localResult.type
                                                            };
                                                            if (localResult.encoding !== void 0)
                                                              resObj.encoding = localResult.encoding;
                                                            localValues.push(resObj);
                                                          }
                                                          if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 4)) {
                                                            return void 0;
                                                          }
                                                          if (localValues.count === 2 && localValues[0].type === enums_default2222222222222.ApplicationTag.DATE && localValues[1].type === enums_default2222222222222.ApplicationTag.TIME) {
                                                            const date = localValues[0].value;
                                                            const time = localValues[1].value;
                                                            const bdatetime = new Date(
                                                              date.year,
                                                              date.month,
                                                              date.day,
                                                              time.hour,
                                                              time.minute,
                                                              time.second,
                                                              time.millisecond
                                                            );
                                                            newEntry.value = [
                                                              { type: enums_default2222222222222.ApplicationTag.DATETIME, value: bdatetime }
                                                            ];
                                                          } else {
                                                            newEntry.value = localValues;
                                                          }
                                                          len++;
                                                        } else if (result.tagNumber === 5) {
                                                          let err = {};
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          result = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                          len += result.len;
                                                          err.errorClass = result.value;
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          result = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                          len += result.len;
                                                          err.errorCode = result.value;
                                                          if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 5)) {
                                                            return void 0;
                                                          }
                                                          len++;
                                                          newEntry.value = [
                                                            {
                                                              type: enums_default2222222222222.ApplicationTag.ERROR,
                                                              value: err
                                                            }
                                                          ];
                                                        }
                                                        values.push(newEntry);
                                                      }
                                                      value.values = values;
                                                      return {
                                                        len,
                                                        value
                                                      };
                                                    };
                                                    var decodeSigned2222222222222 = (buffer, offset, length) => {
                                                      return {
                                                        len: length,
                                                        value: buffer.readIntBE(offset, length, true)
                                                      };
                                                    };
                                                    var decodeReal2222222222222 = (buffer, offset) => {
                                                      return {
                                                        len: 4,
                                                        value: buffer.readFloatBE(offset, true)
                                                      };
                                                    };
                                                    var decodeRealSafe2222222222222 = (buffer, offset, lenValue) => {
                                                      if (lenValue !== 4) {
                                                        return {
                                                          len: lenValue,
                                                          value: 0
                                                        };
                                                      } else {
                                                        return decodeReal2222222222222(buffer, offset);
                                                      }
                                                    };
                                                    var decodeDouble2222222222222 = (buffer, offset) => {
                                                      return {
                                                        len: 8,
                                                        value: buffer.readDoubleBE(offset, true)
                                                      };
                                                    };
                                                    var decodeDoubleSafe2222222222222 = (buffer, offset, lenValue) => {
                                                      if (lenValue !== 8) {
                                                        return {
                                                          len: lenValue,
                                                          value: 0
                                                        };
                                                      } else {
                                                        return decodeDouble2222222222222(buffer, offset);
                                                      }
                                                    };
                                                    var decodeOctetString2222222222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                                                      const octetString = [];
                                                      for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                                                        octetString.push(buffer[offset + i]);
                                                      }
                                                      return {
                                                        len: octetStringLength,
                                                        value: octetString
                                                      };
                                                    };
                                                    var multiCharsetCharacterstringDecode2222222222222 = (buffer, offset, maxLength, encoding, length) => {
                                                      const stringBuf = Buffer.alloc(length);
                                                      buffer.copy(stringBuf, 0, offset, offset + length);
                                                      return {
                                                        value: import_iconv_lite2222222222222.default.decode(stringBuf, getEncodingType2222222222222(encoding, buffer, offset)),
                                                        len: length + 1,
                                                        encoding
                                                      };
                                                    };
                                                    var decodeCharacterString2222222222222 = (buffer, offset, maxLength, lenValue) => {
                                                      return multiCharsetCharacterstringDecode2222222222222(
                                                        buffer,
                                                        offset + 1,
                                                        maxLength,
                                                        buffer[offset],
                                                        lenValue - 1
                                                      );
                                                    };
                                                    var bitstringSetBitsUsed2222222222222 = (bitString, bytesUsed, unusedBits) => {
                                                      bitString.bitsUsed = bytesUsed * 8;
                                                      bitString.bitsUsed -= unusedBits;
                                                    };
                                                    var decodeBitstring2222222222222 = (buffer, offset, lenValue) => {
                                                      let len = 0;
                                                      let bitString = {};
                                                      bitString.value = [];
                                                      if (lenValue > 0) {
                                                        const bytesUsed = lenValue - 1;
                                                        if (bytesUsed <= enums_default2222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                          len = 1;
                                                          for (let i = 0; i < bytesUsed; i++) {
                                                            bitString.value.push(byteReverseBits2222222222222(buffer[offset + len++]));
                                                          }
                                                          const unusedBits = buffer[offset] & 7;
                                                          bitstringSetBitsUsed2222222222222(bitString, bytesUsed, unusedBits);
                                                        }
                                                      }
                                                      return {
                                                        len,
                                                        value: bitString
                                                      };
                                                    };
                                                    var decodeDate2222222222222 = (buffer, offset) => {
                                                      let date;
                                                      const year = buffer[offset] + 1900;
                                                      const month = buffer[offset + 1];
                                                      const day = buffer[offset + 2];
                                                      const wday = buffer[offset + 3];
                                                      if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                                                        date = new Date(1, 1, 1);
                                                      } else {
                                                        date = new Date(year, month, day);
                                                      }
                                                      return {
                                                        len: 4,
                                                        value: date
                                                      };
                                                    };
                                                    var decodeDateSafe2222222222222 = (buffer, offset, lenValue) => {
                                                      if (lenValue !== 4) {
                                                        return {
                                                          len: lenValue,
                                                          value: new Date(1, 1, 1)
                                                        };
                                                      } else {
                                                        return decodeDate2222222222222(buffer, offset);
                                                      }
                                                    };
                                                    var decodeApplicationDate2222222222222 = (buffer, offset) => {
                                                      const result = decodeTagNumber2222222222222(buffer, offset);
                                                      if (result.tagNumber === enums_default2222222222222.ApplicationTag.DATE) {
                                                        const value = decodeDate2222222222222(buffer, offset + 1);
                                                        return {
                                                          len: value.len + 1,
                                                          value
                                                        };
                                                      }
                                                      return void 0;
                                                    };
                                                    var decodeBacnetTime2222222222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                                                      const hour = buffer[offset + 0];
                                                      const min = buffer[offset + 1];
                                                      const sec = buffer[offset + 2];
                                                      let hundredths = buffer[offset + 3];
                                                      if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                                                        value = new Date(1, 1, 1);
                                                      } else {
                                                        if (hundredths > 100)
                                                          hundredths = 0;
                                                        value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                                                      }
                                                      return {
                                                        len: 4,
                                                        value
                                                      };
                                                    };
                                                    var decodeBacnetTimeSafe2222222222222 = (buffer, offset, lenValue) => {
                                                      if (lenValue !== 4) {
                                                        return {
                                                          len: lenValue,
                                                          value: new Date(1, 1, 1)
                                                        };
                                                      } else {
                                                        return decodeBacnetTime2222222222222(buffer, offset);
                                                      }
                                                    };
                                                    var decodeApplicationTime2222222222222 = (buffer, offset) => {
                                                      const result = decodeTagNumber2222222222222(buffer, offset);
                                                      if (result.tagNumber === enums_default2222222222222.ApplicationTag.TIME) {
                                                        const value = decodeBacnetTime2222222222222(buffer, offset + 1);
                                                        return {
                                                          len: value.len + 1,
                                                          value
                                                        };
                                                      }
                                                      return void 0;
                                                    };
                                                    var decodeBacnetDatetime2222222222222 = (buffer, offset) => {
                                                      let len = 0;
                                                      const date = decodeApplicationDate2222222222222(buffer, offset + len);
                                                      len += date.len;
                                                      const time = decodeApplicationTime2222222222222(buffer, offset + len);
                                                      len += time.len;
                                                      return {
                                                        len,
                                                        value: new Date(
                                                          date.year,
                                                          date.month,
                                                          date.day,
                                                          time.hour,
                                                          time.minute,
                                                          time.second,
                                                          time.millisecond
                                                        )
                                                      };
                                                    };
                                                    var bacappDecodeData2222222222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                                                      let result;
                                                      let value = {
                                                        len: 0,
                                                        type: tagDataType
                                                      };
                                                      switch (tagDataType) {
                                                        case enums_default2222222222222.ApplicationTag.NULL:
                                                          value.value = null;
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.BOOLEAN:
                                                          value.value = lenValueType > 0;
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                          result = decodeUnsigned2222222222222(buffer, offset, lenValueType);
                                                          value.len += result.len;
                                                          value.value = result.value;
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.SIGNED_INTEGER:
                                                          result = decodeSigned2222222222222(buffer, offset, lenValueType);
                                                          value.len += result.len;
                                                          value.value = result.value;
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.REAL:
                                                          result = decodeRealSafe2222222222222(buffer, offset, lenValueType);
                                                          value.len += result.len;
                                                          value.value = result.value;
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.DOUBLE:
                                                          result = decodeDoubleSafe2222222222222(buffer, offset, lenValueType);
                                                          value.len += result.len;
                                                          value.value = result.value;
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.OCTET_STRING:
                                                          result = decodeOctetString2222222222222(buffer, offset, maxLength, 0, lenValueType);
                                                          value.len += result.len;
                                                          value.value = result.value;
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.CHARACTER_STRING:
                                                          result = decodeCharacterString2222222222222(buffer, offset, maxLength, lenValueType);
                                                          value.len += result.len;
                                                          value.value = result.value;
                                                          value.encoding = result.encoding;
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.BIT_STRING:
                                                          result = decodeBitstring2222222222222(buffer, offset, lenValueType);
                                                          value.len += result.len;
                                                          value.value = result.value;
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.ENUMERATED:
                                                          result = decodeEnumerated2222222222222(buffer, offset, lenValueType);
                                                          value.len += result.len;
                                                          value.value = result.value;
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.DATE:
                                                          result = decodeDateSafe2222222222222(buffer, offset, lenValueType);
                                                          value.len += result.len;
                                                          value.value = result.value;
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.TIME:
                                                          result = decodeBacnetTimeSafe2222222222222(buffer, offset, lenValueType);
                                                          value.len += result.len;
                                                          value.value = result.value;
                                                          break;
                                                        case enums_default2222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                          result = decodeObjectIdSafe2222222222222(buffer, offset, lenValueType);
                                                          value.len += result.len;
                                                          value.value = { type: result.objectType, instance: result.instance };
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                      return value;
                                                    };
                                                    var bacappContextTagType2222222222222 = (property, tagNumber) => {
                                                      let tag = 0;
                                                      switch (property) {
                                                        case enums_default2222222222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                                                        case enums_default2222222222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                                                        case enums_default2222222222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                                                          switch (tagNumber) {
                                                            case 0:
                                                            case 1:
                                                              tag = enums_default2222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                              break;
                                                            case 2:
                                                              tag = enums_default2222222222222.ApplicationTag.REAL;
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                          break;
                                                        case enums_default2222222222222.PropertyIdentifier.ACTION:
                                                          switch (tagNumber) {
                                                            case 0:
                                                            case 1:
                                                              tag = enums_default2222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                              break;
                                                            case 2:
                                                              tag = enums_default2222222222222.ApplicationTag.ENUMERATED;
                                                              break;
                                                            case 3:
                                                            case 5:
                                                            case 6:
                                                              tag = enums_default2222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                              break;
                                                            case 7:
                                                            case 8:
                                                              tag = enums_default2222222222222.ApplicationTag.BOOLEAN;
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                          break;
                                                        case enums_default2222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                                                          switch (tagNumber) {
                                                            case 0:
                                                              tag = enums_default2222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                          break;
                                                        case enums_default2222222222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                                                          switch (tagNumber) {
                                                            case 1:
                                                              tag = enums_default2222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                              break;
                                                            case 3:
                                                              tag = enums_default2222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                          break;
                                                        case enums_default2222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                                                          switch (tagNumber) {
                                                            case 0:
                                                            case 3:
                                                              tag = enums_default2222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                              break;
                                                            case 1:
                                                              tag = enums_default2222222222222.ApplicationTag.ENUMERATED;
                                                              break;
                                                            case 2:
                                                              tag = enums_default2222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                          break;
                                                        case enums_default2222222222222.PropertyIdentifier.SUBORDINATE_LIST:
                                                          switch (tagNumber) {
                                                            case 0:
                                                            case 1:
                                                              tag = enums_default2222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                          break;
                                                        case enums_default2222222222222.PropertyIdentifier.RECIPIENT_LIST:
                                                          switch (tagNumber) {
                                                            case 0:
                                                              tag = enums_default2222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                          break;
                                                        case enums_default2222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                                                          switch (tagNumber) {
                                                            case 0:
                                                            case 1:
                                                              break;
                                                            case 2:
                                                              tag = enums_default2222222222222.ApplicationTag.BOOLEAN;
                                                              break;
                                                            case 3:
                                                              tag = enums_default2222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                              break;
                                                            case 4:
                                                              tag = enums_default2222222222222.ApplicationTag.REAL;
                                                              break;
                                                            default:
                                                              break;
                                                          }
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                      return tag;
                                                    };
                                                    var decodeDeviceObjPropertyRef2222222222222 = (buffer, offset, NOTUSEDARG = 0) => {
                                                      let len = 0;
                                                      let arrayIndex = enums_default2222222222222.ASN1_ARRAY_ALL;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      let objectId = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += objectId.len;
                                                      let result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 1) {
                                                        return void 0;
                                                      }
                                                      let id = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += id.len;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      if (result.tagNumber === 2) {
                                                        len += result.len;
                                                        arrayIndex = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += arrayIndex.len;
                                                      }
                                                      if (decodeIsContextTag2222222222222(buffer, offset + len, 3)) {
                                                        if (!isClosingTag2222222222222(buffer[offset + len])) {
                                                          len++;
                                                          objectId = decodeObjectId2222222222222(buffer, offset + len);
                                                          len += objectId.len;
                                                        }
                                                      }
                                                      return {
                                                        len,
                                                        value: {
                                                          objectId,
                                                          id
                                                        }
                                                      };
                                                    };
                                                    var decodeReadAccessSpecification2222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let value = {};
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      let decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      value.objectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      len += decodedValue.len;
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      const propertyIdAndArrayIndex = [];
                                                      while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        let propertyRef = {};
                                                        if (!isContextSpecific2222222222222(buffer[offset + len])) {
                                                          return void 0;
                                                        }
                                                        let result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 0) {
                                                          return void 0;
                                                        }
                                                        if (len + result.value >= apduLen) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        propertyRef.id = decodedValue.value;
                                                        len += decodedValue.len;
                                                        propertyRef.index = enums_default2222222222222.ASN1_ARRAY_ALL;
                                                        if (isContextSpecific2222222222222(buffer[offset + len]) && !isClosingTag2222222222222(buffer[offset + len])) {
                                                          const tmp = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          if (tmp.tagNumber === 1) {
                                                            len += tmp.len;
                                                            if (len + tmp.value >= apduLen) {
                                                              return void 0;
                                                            }
                                                            decodedValue = decodeUnsigned2222222222222(buffer, offset + len, tmp.value);
                                                            propertyRef.index = decodedValue.value;
                                                            len += decodedValue.len;
                                                          }
                                                        }
                                                        propertyIdAndArrayIndex.push(propertyRef);
                                                      }
                                                      if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      value.properties = propertyIdAndArrayIndex;
                                                      return {
                                                        len,
                                                        value
                                                      };
                                                    };
                                                    var decodeCovSubscription2222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let value = {};
                                                      let result;
                                                      let decodedValue;
                                                      value.recipient = {};
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== enums_default2222222222222.ApplicationTag.UNSIGNED_INTEGER) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.recipient.net = decodedValue.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== enums_default2222222222222.ApplicationTag.OCTET_STRING) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeOctetString2222222222222(
                                                        buffer,
                                                        offset + len,
                                                        apduLen,
                                                        0,
                                                        result.value
                                                      );
                                                      len += decodedValue.len;
                                                      value.recipient.adr = decodedValue.value;
                                                      if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 1) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.subscriptionProcessId = decodedValue.value;
                                                      if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 0) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      value.monitoredObjectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 1) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.monitoredProperty = {};
                                                      value.monitoredProperty.id = decodedValue.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      if (result.tagNumber === 2) {
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.monitoredProperty.index = decodedValue.value;
                                                      } else {
                                                        value.monitoredProperty.index = enums_default2222222222222.ASN1_ARRAY_ALL;
                                                      }
                                                      if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 2) {
                                                        return void 0;
                                                      }
                                                      value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                      len++;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 3) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.timeRemaining = decodedValue.value;
                                                      if (len < apduLen && !isClosingTag2222222222222(buffer[offset + len])) {
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 4) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeReal2222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        value.covIncrement = decodedValue.value;
                                                      }
                                                      return {
                                                        len,
                                                        value
                                                      };
                                                    };
                                                    var decodeCalendarDate2222222222222 = (buffer, offset) => {
                                                      return {
                                                        len: 4,
                                                        year: buffer[offset],
                                                        month: buffer[offset + 1],
                                                        day: buffer[offset + 2],
                                                        wday: buffer[offset + 3]
                                                      };
                                                    };
                                                    var decodeCalendarDateRange2222222222222 = (buffer, offset) => {
                                                      let len = 1;
                                                      const startDate = decodeDate2222222222222(buffer, offset + len);
                                                      len += startDate.len + 1;
                                                      const endDate = decodeDate2222222222222(buffer, offset + len);
                                                      len += endDate.len + 1;
                                                      return {
                                                        len,
                                                        startDate,
                                                        endDate
                                                      };
                                                    };
                                                    var decodeCalendarWeekDay2222222222222 = (buffer, offset) => {
                                                      return {
                                                        len: 3,
                                                        month: buffer[offset],
                                                        week: buffer[offset + 1],
                                                        wday: buffer[offset + 2]
                                                      };
                                                    };
                                                    var decodeCalendar2222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      const entries = [];
                                                      let decodedValue;
                                                      while (len < apduLen) {
                                                        const result = decodeTagNumber2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        switch (result.tagNumber) {
                                                          case 0:
                                                            decodedValue = decodeCalendarDate2222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            entries.push(decodedValue);
                                                            break;
                                                          case 1:
                                                            decodedValue = decodeCalendarDateRange2222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            entries.push(decodedValue);
                                                            break;
                                                          case 2:
                                                            decodedValue = decodeCalendarWeekDay2222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            entries.push(decodedValue);
                                                            break;
                                                          default:
                                                            return {
                                                              len: len - 1,
                                                              value: entries
                                                            };
                                                        }
                                                      }
                                                    };
                                                    var bacappDecodeContextApplicationData2222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                      let len = 0;
                                                      let result;
                                                      if (isContextSpecific2222222222222(buffer[offset])) {
                                                        if (propertyId === enums_default2222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                                                          result = decodeReadAccessSpecification2222222222222(buffer, offset, maxOffset);
                                                          if (!result) {
                                                            return void 0;
                                                          }
                                                          return {
                                                            type: enums_default2222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                                            value: result.value,
                                                            len: result.len
                                                          };
                                                        } else if (propertyId === enums_default2222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                                                          result = decodeCovSubscription2222222222222(buffer, offset, maxOffset);
                                                          if (!result) {
                                                            return void 0;
                                                          }
                                                          return {
                                                            type: enums_default2222222222222.ApplicationTag.COV_SUBSCRIPTION,
                                                            value: result.value,
                                                            len: result.len
                                                          };
                                                        } else if (objectType === enums_default2222222222222.ObjectType.GROUP && propertyId === enums_default2222222222222.PropertyIdentifier.PRESENT_VALUE) {
                                                          result = decodeReadAccessResult2222222222222(buffer, offset, maxOffset);
                                                          if (!result) {
                                                            return void 0;
                                                          }
                                                          return {
                                                            type: enums_default2222222222222.ApplicationTag.READ_ACCESS_RESULT,
                                                            value: result.value,
                                                            len: result.len
                                                          };
                                                        } else if (propertyId === enums_default2222222222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default2222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default2222222222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                                                          result = decodeDeviceObjPropertyRef2222222222222(buffer, offset, maxOffset);
                                                          if (!result) {
                                                            return void 0;
                                                          }
                                                          return {
                                                            type: enums_default2222222222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                                            value: result.value,
                                                            len: result.len
                                                          };
                                                        } else if (propertyId === enums_default2222222222222.PropertyIdentifier.DATE_LIST) {
                                                          result = decodeCalendar2222222222222(buffer, offset, maxOffset);
                                                          if (!result) {
                                                            return void 0;
                                                          }
                                                          return {
                                                            type: enums_default2222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                                            value: result.value,
                                                            len: result.len
                                                          };
                                                        } else if (propertyId === enums_default2222222222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                                                          let subEvtResult;
                                                          let evtResult = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += 1;
                                                          if (evtResult.tagNumber === 0) {
                                                            subEvtResult = decodeBacnetTime2222222222222(buffer, offset + 1);
                                                            return {
                                                              type: enums_default2222222222222.ApplicationTag.TIMESTAMP,
                                                              value: subEvtResult.value,
                                                              len: subEvtResult.len + 1
                                                            };
                                                          } else if (evtResult.tagNumber === 1) {
                                                            subEvtResult = decodeUnsigned2222222222222(buffer, offset + len, evtResult.value);
                                                            return {
                                                              type: enums_default2222222222222.ApplicationTag.UNSIGNED_INTEGER,
                                                              value: subEvtResult.value,
                                                              len: subEvtResult.len + 1
                                                            };
                                                          } else if (evtResult.tagNumber === 2) {
                                                            subEvtResult = decodeBacnetDatetime2222222222222(buffer, offset + len);
                                                            return {
                                                              type: enums_default2222222222222.ApplicationTag.TIMESTAMP,
                                                              value: subEvtResult.value,
                                                              len: subEvtResult.len + 2
                                                            };
                                                          } else {
                                                            return void 0;
                                                          }
                                                        }
                                                        const list = [];
                                                        let tagResult = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        let multipleValues = isOpeningTag2222222222222(buffer[offset + len]);
                                                        while (len + offset <= maxOffset && !isClosingTag2222222222222(buffer[offset + len])) {
                                                          let subResult = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          if (!subResult) {
                                                            return void 0;
                                                          }
                                                          if (subResult.value === 0) {
                                                            len += subResult.len;
                                                            result = bacappDecodeApplicationData2222222222222(
                                                              buffer,
                                                              offset + len,
                                                              maxOffset,
                                                              enums_default2222222222222.ASN1_MAX_OBJECT_TYPE,
                                                              enums_default2222222222222.ASN1_MAX_PROPERTY_ID
                                                            );
                                                            if (!result) {
                                                              return void 0;
                                                            }
                                                            list.push(result);
                                                            len += result.len;
                                                          } else {
                                                            const overrideTagNumber = bacappContextTagType2222222222222(
                                                              propertyId,
                                                              subResult.tagNumber
                                                            );
                                                            if (overrideTagNumber !== enums_default2222222222222.ASN1_MAX_APPLICATION_TAG) {
                                                              subResult.tagNumber = overrideTagNumber;
                                                            }
                                                            let bacappResult = bacappDecodeData2222222222222(
                                                              buffer,
                                                              offset + len + subResult.len,
                                                              maxOffset,
                                                              subResult.tagNumber,
                                                              subResult.value
                                                            );
                                                            if (!bacappResult) {
                                                              return void 0;
                                                            }
                                                            if (bacappResult.len === subResult.value) {
                                                              let resObj = {
                                                                value: bacappResult.value,
                                                                type: bacappResult.type
                                                              };
                                                              if (bacappResult.encoding !== void 0)
                                                                resObj.encoding = bacappResult.encoding;
                                                              list.push(resObj);
                                                              len += subResult.len + subResult.value;
                                                            } else {
                                                              list.push({
                                                                value: buffer.slice(
                                                                  offset + len + subResult.len,
                                                                  offset + len + subResult.len + subResult.value
                                                                ),
                                                                type: enums_default2222222222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                                              });
                                                              len += subResult.len + subResult.value;
                                                            }
                                                          }
                                                          if (multipleValues === false) {
                                                            return {
                                                              len,
                                                              value: list[0],
                                                              type: enums_default2222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                            };
                                                          }
                                                        }
                                                        if (len + offset > maxOffset) {
                                                          return void 0;
                                                        }
                                                        if (decodeIsClosingTagNumber2222222222222(buffer, offset + len, tagResult.tagNumber)) {
                                                          len++;
                                                        }
                                                        return {
                                                          len,
                                                          value: list,
                                                          type: enums_default2222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                        };
                                                      }
                                                      return void 0;
                                                    };
                                                    var bacappEncodeTimestamp2222222222222 = (buffer, value) => {
                                                      switch (value.type) {
                                                        case enums_default2222222222222.TimeStamp.TIME:
                                                          encodeContextTime2222222222222(buffer, 0, value.value);
                                                          break;
                                                        case enums_default2222222222222.TimeStamp.SEQUENCE_NUMBER:
                                                          encodeContextUnsigned2222222222222(buffer, 1, value.value);
                                                          break;
                                                        case enums_default2222222222222.TimeStamp.DATETIME:
                                                          bacappEncodeContextDatetime2222222222222(buffer, 2, value.value);
                                                          break;
                                                        default:
                                                          throw new Error("NOT_IMPLEMENTED");
                                                      }
                                                    };
                                                    var bacappEncodeContextTimestamp2222222222222 = (buffer, tagNumber, value) => {
                                                      encodeOpeningTag2222222222222(buffer, tagNumber);
                                                      bacappEncodeTimestamp2222222222222(buffer, value);
                                                      encodeClosingTag2222222222222(buffer, tagNumber);
                                                    };
                                                    var decodeContextCharacterString2222222222222 = (buffer, offset, maxLength, tagNumber) => {
                                                      let len = 0;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, tagNumber)) {
                                                        return void 0;
                                                      }
                                                      const result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      const decodedValue = multiCharsetCharacterstringDecode2222222222222(
                                                        buffer,
                                                        offset + 1 + len,
                                                        maxLength,
                                                        buffer[offset + len],
                                                        result.value - 1
                                                      );
                                                      if (!decodedValue) {
                                                        return void 0;
                                                      }
                                                      len += result.value;
                                                      return {
                                                        len,
                                                        value: decodedValue.value,
                                                        encoding: decodedValue.encoding
                                                      };
                                                    };
                                                    var decodeIsContextTagWithLength2222222222222 = (buffer, offset, tagNumber) => {
                                                      const result = decodeTagNumber2222222222222(buffer, offset);
                                                      return {
                                                        len: result.len,
                                                        value: isContextSpecific2222222222222(buffer[offset]) && result.tagNumber === tagNumber
                                                      };
                                                    };
                                                    var decodeContextObjectId2222222222222 = (buffer, offset, tagNumber) => {
                                                      const result = decodeIsContextTagWithLength2222222222222(buffer, offset, tagNumber);
                                                      if (!result.value) {
                                                        return void 0;
                                                      }
                                                      const decodedValue = decodeObjectId2222222222222(buffer, offset + result.len);
                                                      decodedValue.len = decodedValue.len + result.len;
                                                      return decodedValue;
                                                    };
                                                    var encodeBacnetCharacterString2222222222222 = (buffer, value, encoding) => {
                                                      encoding = encoding || enums_default2222222222222.CharacterStringEncoding.UTF_8;
                                                      buffer.buffer[buffer.offset++] = encoding;
                                                      const bufEncoded = import_iconv_lite2222222222222.default.encode(value, getEncodingType2222222222222(encoding));
                                                      buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                                                    };
                                                    var encodeApplicationCharacterString2222222222222 = (buffer, value, encoding) => {
                                                      const tmp = getBuffer2222222222222();
                                                      encodeBacnetCharacterString2222222222222(tmp, value, encoding);
                                                      encodeTag2222222222222(buffer, enums_default2222222222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                      buffer.offset += tmp.offset;
                                                    };
                                                    var encodeContextCharacterString2222222222222 = (buffer, tagNumber, value, encoding) => {
                                                      const tmp = getBuffer2222222222222();
                                                      encodeBacnetCharacterString2222222222222(tmp, value, encoding);
                                                      encodeTag2222222222222(buffer, tagNumber, true, tmp.offset);
                                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                      buffer.offset += tmp.offset;
                                                    };
                                                    var encode33222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                      encodeContextObjectId2222222222222(buffer, 0, objectId.type, objectId.instance);
                                                      encodeContextEnumerated2222222222222(buffer, 1, propertyId);
                                                      if (arrayIndex !== ASN1_ARRAY_ALL2222222222222) {
                                                        encodeContextUnsigned2222222222222(buffer, 2, arrayIndex);
                                                      }
                                                      encodeOpeningTag2222222222222(buffer, 3);
                                                      values.forEach((value) => {
                                                        bacappEncodeApplicationData2222222222222(buffer, value);
                                                      });
                                                      encodeClosingTag2222222222222(buffer, 3);
                                                    };
                                                    var decode33222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let value = {};
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      value.objectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.property = { id: decodedValue.value };
                                                      if (len < apduLen && decodeIsContextTag2222222222222(buffer, offset + len, 2)) {
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.property.index = decodedValue.value;
                                                      } else {
                                                        value.property.index = ASN1_ARRAY_ALL2222222222222;
                                                      }
                                                      const values = [];
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 3)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      while (apduLen - len > 1) {
                                                        result = bacappDecodeApplicationData2222222222222(
                                                          buffer,
                                                          offset + len,
                                                          apduLen + offset,
                                                          value.objectId.type,
                                                          value.property.id
                                                        );
                                                        if (!result) {
                                                          return void 0;
                                                        }
                                                        len += result.len;
                                                        delete result.len;
                                                        values.push(result);
                                                      }
                                                      value.values = values;
                                                      if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 3)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var alarm_acknowledge_exports2222222222222 = {};
                                                    __export2222222222222(alarm_acknowledge_exports2222222222222, {
                                                      decode: () => decode210222222222222,
                                                      encode: () => encode210222222222222
                                                    });
                                                    var encode210222222222222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                                                      encodeContextUnsigned2222222222222(buffer, 0, ackProcessId);
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        1,
                                                        eventObjectId.type,
                                                        eventObjectId.instance
                                                      );
                                                      encodeContextEnumerated2222222222222(buffer, 2, eventStateAcknowledged);
                                                      bacappEncodeContextTimestamp2222222222222(buffer, 3, eventTimeStamp);
                                                      encodeContextCharacterString2222222222222(buffer, 4, ackSource);
                                                      bacappEncodeContextTimestamp2222222222222(buffer, 5, ackTimeStamp);
                                                    };
                                                    var decode210222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let value = {};
                                                      let result;
                                                      let decodedValue;
                                                      let date;
                                                      let time;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.acknowledgedProcessId = decodedValue.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      value.eventObjectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.eventStateAcknowledged = decodedValue.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber === 0) {
                                                        decodedValue = decodeBacnetTime2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.eventTimeStamp = decodedValue.value;
                                                      } else if (result.tagNumber === 1) {
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.eventTimeStamp = decodedValue.value;
                                                      } else if (result.tagNumber === 2) {
                                                        date = decodeApplicationDate2222222222222(buffer, offset + len);
                                                        len += date.len;
                                                        date = date.value.value;
                                                        time = decodeApplicationTime2222222222222(buffer, offset + len);
                                                        len += time.len;
                                                        time = time.value.value;
                                                        value.eventTimeStamp = new Date(
                                                          date.getFullYear(),
                                                          date.getMonth(),
                                                          date.getDate(),
                                                          time.getHours(),
                                                          time.getMinutes(),
                                                          time.getSeconds(),
                                                          time.getMilliseconds()
                                                        );
                                                        len++;
                                                      }
                                                      len++;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeCharacterString2222222222222(
                                                        buffer,
                                                        offset + len,
                                                        apduLen - (offset + len),
                                                        result.value
                                                      );
                                                      value.acknowledgeSource = decodedValue.value;
                                                      len += decodedValue.len;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber === 0) {
                                                        decodedValue = decodeBacnetTime2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.acknowledgeTimeStamp = decodedValue.value;
                                                      } else if (result.tagNumber === 1) {
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.acknowledgeTimeStamp = decodedValue.value;
                                                      } else if (result.tagNumber === 2) {
                                                        date = decodeApplicationDate2222222222222(buffer, offset + len);
                                                        len += date.len;
                                                        date = date.value.value;
                                                        time = decodeApplicationTime2222222222222(buffer, offset + len);
                                                        len += time.len;
                                                        time = time.value.value;
                                                        value.acknowledgeTimeStamp = new Date(
                                                          date.getFullYear(),
                                                          date.getMonth(),
                                                          date.getDate(),
                                                          time.getHours(),
                                                          time.getMinutes(),
                                                          time.getSeconds(),
                                                          time.getMilliseconds()
                                                        );
                                                        len++;
                                                      }
                                                      len++;
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var alarm_summary_exports2222222222222 = {};
                                                    __export2222222222222(alarm_summary_exports2222222222222, {
                                                      decode: () => decode34222222222222,
                                                      encode: () => encode34222222222222
                                                    });
                                                    var encode34222222222222 = (buffer, alarms) => {
                                                      alarms.forEach((alarm) => {
                                                        encodeContextObjectId2222222222222(
                                                          buffer,
                                                          12,
                                                          alarm.objectId.type,
                                                          alarm.objectId.instance
                                                        );
                                                        encodeContextEnumerated2222222222222(buffer, 9, alarm.alarmState);
                                                        encodeContextBitstring2222222222222(buffer, 8, alarm.acknowledgedTransitions);
                                                      });
                                                    };
                                                    var decode34222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      const alarms = [];
                                                      while (apduLen - 3 - len > 0) {
                                                        let value = {};
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        value.objectId = {
                                                          type: decodedValue.objectType,
                                                          instance: decodedValue.instance
                                                        };
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.alarmState = decodedValue.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeBitstring2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.acknowledgedTransitions = decodedValue.value;
                                                        alarms.push(value);
                                                      }
                                                      return {
                                                        len,
                                                        alarms
                                                      };
                                                    };
                                                    var atomic_read_file_exports2222222222222 = {};
                                                    __export2222222222222(atomic_read_file_exports2222222222222, {
                                                      decode: () => decode42222222222222,
                                                      decodeAcknowledge: () => decodeAcknowledge8222222222222,
                                                      encode: () => encode42222222222222,
                                                      encodeAcknowledge: () => encodeAcknowledge9222222222222
                                                    });
                                                    var encode42222222222222 = (buffer, isStream, objectId, position, count) => {
                                                      encodeApplicationObjectId2222222222222(buffer, objectId.type, objectId.instance);
                                                      if (isStream) {
                                                        encodeOpeningTag2222222222222(buffer, 0);
                                                        encodeApplicationSigned2222222222222(buffer, position);
                                                        encodeApplicationUnsigned2222222222222(buffer, count);
                                                        encodeClosingTag2222222222222(buffer, 0);
                                                      } else {
                                                        encodeOpeningTag2222222222222(buffer, 1);
                                                        encodeApplicationSigned2222222222222(buffer, position);
                                                        encodeApplicationUnsigned2222222222222(buffer, count);
                                                        encodeClosingTag2222222222222(buffer, 1);
                                                      }
                                                    };
                                                    var decode42222222222222 = (buffer, offset) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let isStream = true;
                                                      let objectId = {};
                                                      let position = -1;
                                                      let count = 0;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 12) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                                                      if (decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 0)) {
                                                        isStream = true;
                                                        len++;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 3) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeSigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        position = decodedValue.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 2) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        count = decodedValue.value;
                                                        if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 0)) {
                                                          return void 0;
                                                        }
                                                        len++;
                                                      } else if (decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        isStream = false;
                                                        len++;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 3) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeSigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        position = decodedValue.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 2) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        count = decodedValue.value;
                                                        if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 1)) {
                                                          return void 0;
                                                        }
                                                        len++;
                                                      } else {
                                                        return void 0;
                                                      }
                                                      return {
                                                        len,
                                                        isStream,
                                                        objectId,
                                                        position,
                                                        count
                                                      };
                                                    };
                                                    var encodeAcknowledge9222222222222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                                                      encodeApplicationBoolean2222222222222(buffer, endOfFile);
                                                      if (isStream) {
                                                        encodeOpeningTag2222222222222(buffer, 0);
                                                        encodeApplicationSigned2222222222222(buffer, position);
                                                        encodeApplicationOctetString2222222222222(buffer, blocks[0], 0, counts[0]);
                                                        encodeClosingTag2222222222222(buffer, 0);
                                                      } else {
                                                        encodeOpeningTag2222222222222(buffer, 1);
                                                        encodeApplicationSigned2222222222222(buffer, position);
                                                        encodeApplicationUnsigned2222222222222(buffer, blockCount);
                                                        for (let i = 0; i < blockCount; i++) {
                                                          encodeApplicationOctetString2222222222222(buffer, blocks[i], 0, counts[i]);
                                                        }
                                                        encodeClosingTag2222222222222(buffer, 1);
                                                      }
                                                    };
                                                    var decodeAcknowledge8222222222222 = (buffer, offset, length = 0) => {
                                                      let len = length;
                                                      let result;
                                                      let decodedValue;
                                                      let endOfFile;
                                                      let isStream;
                                                      let position;
                                                      let targetBuffer;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 1) {
                                                        return void 0;
                                                      }
                                                      endOfFile = result.value > 0;
                                                      if (decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 0)) {
                                                        isStream = true;
                                                        len++;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 3) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeSigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        position = decodedValue.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 6) {
                                                          return void 0;
                                                        }
                                                        targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                                                        len += result.value;
                                                        if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 0)) {
                                                          return void 0;
                                                        }
                                                        len++;
                                                      } else if (decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        isStream = false;
                                                        throw new Error("NotImplemented");
                                                      } else {
                                                        return void 0;
                                                      }
                                                      return {
                                                        len,
                                                        endOfFile,
                                                        isStream,
                                                        position,
                                                        buffer: targetBuffer
                                                      };
                                                    };
                                                    var atomic_write_file_exports2222222222222 = {};
                                                    __export2222222222222(atomic_write_file_exports2222222222222, {
                                                      decode: () => decode52222222222222,
                                                      decodeAcknowledge: () => decodeAcknowledge22222222222222,
                                                      encode: () => encode52222222222222,
                                                      encodeAcknowledge: () => encodeAcknowledge22222222222222
                                                    });
                                                    var encode52222222222222 = (buffer, isStream, objectId, position, blocks) => {
                                                      encodeApplicationObjectId2222222222222(buffer, objectId.type, objectId.instance);
                                                      if (isStream) {
                                                        encodeOpeningTag2222222222222(buffer, 0);
                                                        encodeApplicationSigned2222222222222(buffer, position);
                                                        encodeApplicationOctetString2222222222222(buffer, blocks[0], 0, blocks[0].length);
                                                        encodeClosingTag2222222222222(buffer, 0);
                                                      } else {
                                                        encodeOpeningTag2222222222222(buffer, 1);
                                                        encodeApplicationSigned2222222222222(buffer, position);
                                                        encodeApplicationUnsigned2222222222222(buffer, blocks.length);
                                                        for (let i = 0; i < blocks.length; i++) {
                                                          encodeApplicationOctetString2222222222222(
                                                            buffer,
                                                            blocks[i],
                                                            0,
                                                            blocks[i].length
                                                          );
                                                        }
                                                        encodeClosingTag2222222222222(buffer, 1);
                                                      }
                                                    };
                                                    var decode52222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let isStream;
                                                      let position;
                                                      let blocks = [];
                                                      let blockCount;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 12) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      let objectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      if (decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 0)) {
                                                        isStream = true;
                                                        len++;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 3) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeSigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        position = decodedValue.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 6) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeOctetString2222222222222(
                                                          buffer,
                                                          offset + len,
                                                          apduLen,
                                                          0,
                                                          result.value
                                                        );
                                                        len += decodedValue.len;
                                                        blocks.push(decodedValue.value);
                                                        if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 0)) {
                                                          return void 0;
                                                        }
                                                        len++;
                                                      } else if (decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        isStream = false;
                                                        len++;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 3) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeSigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        position = decodedValue.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 2) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        blockCount = decodedValue.value;
                                                        for (let i = 0; i < blockCount; i++) {
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber !== 6) {
                                                            return void 0;
                                                          }
                                                          decodedValue = decodeOctetString2222222222222(
                                                            buffer,
                                                            offset + len,
                                                            apduLen,
                                                            0,
                                                            result.value
                                                          );
                                                          len += decodedValue.len;
                                                          blocks.push(decodedValue.value);
                                                        }
                                                        if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 1)) {
                                                          return void 0;
                                                        }
                                                        len++;
                                                      } else {
                                                        return void 0;
                                                      }
                                                      return {
                                                        len,
                                                        isStream,
                                                        objectId,
                                                        position,
                                                        blocks
                                                      };
                                                    };
                                                    var encodeAcknowledge22222222222222 = (buffer, isStream, position) => {
                                                      if (isStream) {
                                                        encodeContextSigned2222222222222(buffer, 0, position);
                                                      } else {
                                                        encodeContextSigned2222222222222(buffer, 1, position);
                                                      }
                                                    };
                                                    var decodeAcknowledge22222222222222 = (buffer, offset, length = 0) => {
                                                      let len = length;
                                                      let isStream = false;
                                                      let position = 0;
                                                      let decodedValue;
                                                      const result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber === 0) {
                                                        isStream = true;
                                                      } else if (result.tagNumber === 1) {
                                                        isStream = false;
                                                      } else {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeSigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      position = decodedValue.value;
                                                      return {
                                                        len,
                                                        isStream,
                                                        position
                                                      };
                                                    };
                                                    var cov_notify_exports2222222222222 = {};
                                                    __export2222222222222(cov_notify_exports2222222222222, {
                                                      decode: () => decode62222222222222,
                                                      encode: () => encode62222222222222
                                                    });
                                                    var encode62222222222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                                                      encodeContextUnsigned2222222222222(buffer, 0, subscriberProcessId);
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        1,
                                                        8,
                                                        initiatingDeviceId
                                                      );
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        2,
                                                        monitoredObjectId.type,
                                                        monitoredObjectId.instance
                                                      );
                                                      encodeContextUnsigned2222222222222(buffer, 3, timeRemaining);
                                                      encodeOpeningTag2222222222222(buffer, 4);
                                                      values.forEach((value) => {
                                                        encodeContextEnumerated2222222222222(buffer, 0, value.property.id);
                                                        if (value.property.index === ASN1_ARRAY_ALL2222222222222) {
                                                          encodeContextUnsigned2222222222222(buffer, 1, value.property.index);
                                                        }
                                                        encodeOpeningTag2222222222222(buffer, 2);
                                                        value.value.forEach((v) => {
                                                          bacappEncodeApplicationData2222222222222(buffer, v);
                                                        });
                                                        encodeClosingTag2222222222222(buffer, 2);
                                                        if (value.priority === ASN1_NO_PRIORITY2222222222222) {
                                                          encodeContextUnsigned2222222222222(buffer, 3, value.priority);
                                                        }
                                                      });
                                                      encodeClosingTag2222222222222(buffer, 4);
                                                    };
                                                    var decode62222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      const subscriberProcessId = decodedValue.value;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      const initiatingDeviceId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 2)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      const monitoredObjectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 3)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      const timeRemaining = decodedValue.value;
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 4)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      const values = [];
                                                      while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222222222(buffer, offset + len, 4)) {
                                                        let newEntry = {};
                                                        newEntry.property = {};
                                                        if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                          return void 0;
                                                        }
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        newEntry.property.id = decodedValue.value;
                                                        if (decodeIsContextTag2222222222222(buffer, offset + len, 1)) {
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          newEntry.property.index = decodedValue.value;
                                                        } else {
                                                          newEntry.property.index = ASN1_ARRAY_ALL2222222222222;
                                                        }
                                                        if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 2)) {
                                                          return void 0;
                                                        }
                                                        len++;
                                                        const properties = [];
                                                        while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222222222(buffer, offset + len, 2)) {
                                                          decodedValue = bacappDecodeApplicationData2222222222222(
                                                            buffer,
                                                            offset + len,
                                                            apduLen + offset,
                                                            monitoredObjectId.type,
                                                            newEntry.property.id
                                                          );
                                                          if (!decodedValue) {
                                                            return void 0;
                                                          }
                                                          len += decodedValue.len;
                                                          delete decodedValue.len;
                                                          properties.push(decodedValue);
                                                        }
                                                        newEntry.value = properties;
                                                        len++;
                                                        if (decodeIsContextTag2222222222222(buffer, offset + len, 3)) {
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          newEntry.priority = decodedValue.value;
                                                        } else {
                                                          newEntry.priority = ASN1_NO_PRIORITY2222222222222;
                                                        }
                                                        values.push(newEntry);
                                                      }
                                                      return {
                                                        len,
                                                        subscriberProcessId,
                                                        initiatingDeviceId,
                                                        monitoredObjectId,
                                                        timeRemaining,
                                                        values
                                                      };
                                                    };
                                                    var create_object_exports2222222222222 = {};
                                                    __export2222222222222(create_object_exports2222222222222, {
                                                      decode: () => decode72222222222222,
                                                      encode: () => encode72222222222222,
                                                      encodeAcknowledge: () => encodeAcknowledge32222222222222
                                                    });
                                                    var encode72222222222222 = (buffer, objectId, values) => {
                                                      encodeOpeningTag2222222222222(buffer, 0);
                                                      encodeContextObjectId2222222222222(buffer, 1, objectId.type, objectId.instance);
                                                      encodeClosingTag2222222222222(buffer, 0);
                                                      encodeOpeningTag2222222222222(buffer, 1);
                                                      values.forEach((propertyValue) => {
                                                        encodeContextEnumerated2222222222222(buffer, 0, propertyValue.property.id);
                                                        if (propertyValue.property.index !== ASN1_ARRAY_ALL2222222222222) {
                                                          encodeContextUnsigned2222222222222(buffer, 1, propertyValue.property.index);
                                                        }
                                                        encodeOpeningTag2222222222222(buffer, 2);
                                                        propertyValue.value.forEach((value) => {
                                                          bacappEncodeApplicationData2222222222222(buffer, value);
                                                        });
                                                        encodeClosingTag2222222222222(buffer, 2);
                                                        if (propertyValue.priority !== ASN1_NO_PRIORITY2222222222222) {
                                                          encodeContextUnsigned2222222222222(buffer, 3, propertyValue.priority);
                                                        }
                                                      });
                                                      encodeClosingTag2222222222222(buffer, 1);
                                                    };
                                                    var decode72222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let objectId;
                                                      const valueList = [];
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber === 0 && apduLen > len) {
                                                        apduLen -= len;
                                                        if (apduLen < 4) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeContextObjectId2222222222222(buffer, offset + len, 1);
                                                        len += decodedValue.len;
                                                        objectId = {
                                                          type: decodedValue.objectType,
                                                          instance: decodedValue.instance
                                                        };
                                                      } else {
                                                        return void 0;
                                                      }
                                                      if (decodeIsClosingTag2222222222222(buffer, offset + len)) {
                                                        len++;
                                                      }
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      while (apduLen - len > 1) {
                                                        let newEntry = {};
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 0) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        let propertyId = decodedValue.value;
                                                        let arraIndex = ASN1_ARRAY_ALL2222222222222;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber === 1) {
                                                          decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          arraIndex += decodedValue.value;
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                        }
                                                        newEntry.property = { id: propertyId, index: arraIndex };
                                                        if (result.tagNumber === 2 && decodeIsOpeningTag2222222222222(buffer, offset + len - 1)) {
                                                          const values = [];
                                                          while (!decodeIsClosingTag2222222222222(buffer, offset + len)) {
                                                            decodedValue = bacappDecodeApplicationData2222222222222(
                                                              buffer,
                                                              offset + len,
                                                              apduLen + offset,
                                                              objectId.type,
                                                              propertyId
                                                            );
                                                            if (!decodedValue) {
                                                              return void 0;
                                                            }
                                                            len += decodedValue.len;
                                                            delete decodedValue.len;
                                                            values.push(decodedValue);
                                                          }
                                                          len++;
                                                          newEntry.value = values;
                                                        } else {
                                                          return void 0;
                                                        }
                                                        valueList.push(newEntry);
                                                      }
                                                      if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      return {
                                                        len,
                                                        objectId,
                                                        values: valueList
                                                      };
                                                    };
                                                    var encodeAcknowledge32222222222222 = (buffer, objectId) => {
                                                      encodeApplicationObjectId2222222222222(buffer, objectId.type, objectId.instance);
                                                    };
                                                    var delete_object_exports2222222222222 = {};
                                                    __export2222222222222(delete_object_exports2222222222222, {
                                                      decode: () => decode82222222222222,
                                                      encode: () => encode82222222222222
                                                    });
                                                    var decode82222222222222 = (buffer, offset, apduLen) => {
                                                      const result = decodeTagNumberAndValue2222222222222(buffer, offset);
                                                      if (result.tagNumber !== 12) {
                                                        return void 0;
                                                      }
                                                      let len = 1;
                                                      const value = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += value.len;
                                                      if (len !== apduLen) {
                                                        return void 0;
                                                      }
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var encode82222222222222 = (buffer, objectId) => {
                                                      encodeApplicationObjectId2222222222222(buffer, objectId.type, objectId.instance);
                                                    };
                                                    var device_communication_control_exports2222222222222 = {};
                                                    __export2222222222222(device_communication_control_exports2222222222222, {
                                                      decode: () => decode92222222222222,
                                                      encode: () => encode92222222222222
                                                    });
                                                    var encode92222222222222 = (buffer, timeDuration, enableDisable, password) => {
                                                      if (timeDuration > 0) {
                                                        encodeContextUnsigned2222222222222(buffer, 0, timeDuration);
                                                      }
                                                      encodeContextEnumerated2222222222222(buffer, 1, enableDisable);
                                                      if (password && password !== "") {
                                                        encodeContextCharacterString2222222222222(buffer, 2, password);
                                                      }
                                                    };
                                                    var decode92222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let value = {};
                                                      let decodedValue;
                                                      let result;
                                                      if (decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        value.timeDuration = decodedValue.value;
                                                        len += decodedValue.len;
                                                      }
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      value.enableDisable = decodedValue.value;
                                                      len += decodedValue.len;
                                                      if (len < apduLen) {
                                                        if (!decodeIsContextTag2222222222222(buffer, offset + len, 2)) {
                                                          return void 0;
                                                        }
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeCharacterString2222222222222(
                                                          buffer,
                                                          offset + len,
                                                          apduLen - (offset + len),
                                                          result.value
                                                        );
                                                        value.password = decodedValue.value;
                                                        len += decodedValue.len;
                                                      }
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var error_exports2222222222222 = {};
                                                    __export2222222222222(error_exports2222222222222, {
                                                      buildMessage: () => buildMessage2222222222222,
                                                      decode: () => decode102222222222222,
                                                      encode: () => encode102222222222222
                                                    });
                                                    var encode102222222222222 = (buffer, errorClass, errorCode) => {
                                                      encodeApplicationEnumerated2222222222222(buffer, errorClass);
                                                      encodeApplicationEnumerated2222222222222(buffer, errorCode);
                                                    };
                                                    var decode102222222222222 = (buffer, offset) => {
                                                      const orgOffset = offset;
                                                      let result;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset);
                                                      offset += result.len;
                                                      const errorClass = decodeEnumerated2222222222222(buffer, offset, result.value);
                                                      offset += errorClass.len;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset);
                                                      offset += result.len;
                                                      const errorCode = decodeEnumerated2222222222222(buffer, offset, result.value);
                                                      offset += errorClass.len;
                                                      return {
                                                        len: offset - orgOffset,
                                                        class: errorClass.value,
                                                        code: errorCode.value
                                                      };
                                                    };
                                                    var buildMessage2222222222222 = function(result) {
                                                      return "BacnetError Class: " + ErrorClassName2222222222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName2222222222222[result.code] + " (" + result.code + ")";
                                                    };
                                                    var event_information_exports2222222222222 = {};
                                                    __export2222222222222(event_information_exports2222222222222, {
                                                      decode: () => decode112222222222222,
                                                      encode: () => encode112222222222222
                                                    });
                                                    var encode112222222222222 = (buffer, events, moreEvents) => {
                                                      encodeOpeningTag2222222222222(buffer, 0);
                                                      events.forEach((event) => {
                                                        encodeContextObjectId2222222222222(
                                                          buffer,
                                                          0,
                                                          event.objectId.type,
                                                          event.objectId.instance
                                                        );
                                                        encodeContextEnumerated2222222222222(buffer, 1, event.eventState);
                                                        encodeContextBitstring2222222222222(buffer, 2, event.acknowledgedTransitions);
                                                        encodeOpeningTag2222222222222(buffer, 3);
                                                        for (let i = 0; i < 3; i++) {
                                                          encodeApplicationDate2222222222222(buffer, event.eventTimeStamps[i]);
                                                          encodeApplicationTime2222222222222(buffer, event.eventTimeStamps[i]);
                                                        }
                                                        encodeClosingTag2222222222222(buffer, 3);
                                                        encodeContextEnumerated2222222222222(buffer, 4, event.notifyType);
                                                        encodeContextBitstring2222222222222(buffer, 5, event.eventEnable);
                                                        encodeOpeningTag2222222222222(buffer, 6);
                                                        for (let i = 0; i < 3; i++) {
                                                          encodeApplicationUnsigned2222222222222(buffer, event.eventPriorities[i]);
                                                        }
                                                        encodeClosingTag2222222222222(buffer, 6);
                                                      });
                                                      encodeClosingTag2222222222222(buffer, 0);
                                                      encodeContextBoolean2222222222222(buffer, 1, moreEvents);
                                                    };
                                                    var decode112222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      len++;
                                                      const alarms = [];
                                                      let moreEvents;
                                                      while (apduLen - 3 - len > 0) {
                                                        let value = {};
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        value.objectId = {
                                                          type: decodedValue.objectType,
                                                          instance: decodedValue.instance
                                                        };
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.eventState = decodedValue.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeBitstring2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.acknowledgedTransitions = decodedValue.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        value.eventTimeStamps = [];
                                                        for (let i = 0; i < 3; i++) {
                                                          if (result.tagNumber !== 0) {
                                                            decodedValue = decodeApplicationDate2222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            const date = decodedValue.value.value;
                                                            decodedValue = decodeApplicationTime2222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            const time = decodedValue.value.value;
                                                            value.eventTimeStamps[i] = new Date(
                                                              date.getFullYear(),
                                                              date.getMonth(),
                                                              date.getDate(),
                                                              time.getHours(),
                                                              time.getMinutes(),
                                                              time.getSeconds(),
                                                              time.getMilliseconds()
                                                            );
                                                          } else {
                                                            len += result.value;
                                                          }
                                                        }
                                                        len++;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.notifyType = decodedValue.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeBitstring2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.eventEnable = decodedValue.value;
                                                        len++;
                                                        value.eventPriorities = [];
                                                        for (let i = 0; i < 3; i++) {
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.eventPriorities[i] = decodedValue.value;
                                                        }
                                                        len++;
                                                        alarms.push(value);
                                                      }
                                                      moreEvents = buffer[apduLen - 1] === 1;
                                                      return {
                                                        len,
                                                        alarms,
                                                        moreEvents
                                                      };
                                                    };
                                                    var event_notify_data_exports2222222222222 = {};
                                                    __export2222222222222(event_notify_data_exports2222222222222, {
                                                      decode: () => decode122222222222222,
                                                      encode: () => encode122222222222222
                                                    });
                                                    var encode122222222222222 = (buffer, data) => {
                                                      encodeContextUnsigned2222222222222(buffer, 0, data.processId);
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        1,
                                                        data.initiatingObjectId.type,
                                                        data.initiatingObjectId.instance
                                                      );
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        2,
                                                        data.eventObjectId.type,
                                                        data.eventObjectId.instance
                                                      );
                                                      bacappEncodeContextTimestamp2222222222222(buffer, 3, data.timeStamp);
                                                      encodeContextUnsigned2222222222222(buffer, 4, data.notificationClass);
                                                      encodeContextUnsigned2222222222222(buffer, 5, data.priority);
                                                      encodeContextEnumerated2222222222222(buffer, 6, data.eventType);
                                                      if (data.messageText && data.messageText !== "") {
                                                        encodeContextCharacterString2222222222222(buffer, 7, data.messageText);
                                                      }
                                                      encodeContextEnumerated2222222222222(buffer, 8, data.notifyType);
                                                      switch (data.notifyType) {
                                                        case 0:
                                                        case 1:
                                                          encodeContextBoolean2222222222222(buffer, 9, data.ackRequired);
                                                          encodeContextEnumerated2222222222222(buffer, 10, data.fromState);
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                      encodeContextEnumerated2222222222222(buffer, 11, data.toState);
                                                      switch (data.notifyType) {
                                                        case 0:
                                                        case 1:
                                                          encodeOpeningTag2222222222222(buffer, 12);
                                                          switch (data.eventType) {
                                                            case 0:
                                                              encodeOpeningTag2222222222222(buffer, 0);
                                                              encodeContextBitstring2222222222222(
                                                                buffer,
                                                                0,
                                                                data.changeOfBitstringReferencedBitString
                                                              );
                                                              encodeContextBitstring2222222222222(
                                                                buffer,
                                                                1,
                                                                data.changeOfBitstringStatusFlags
                                                              );
                                                              encodeClosingTag2222222222222(buffer, 0);
                                                              break;
                                                            case 1:
                                                              encodeOpeningTag2222222222222(buffer, 1);
                                                              encodeOpeningTag2222222222222(buffer, 0);
                                                              bacappEncodePropertyState2222222222222(buffer, data.changeOfStateNewState);
                                                              encodeClosingTag2222222222222(buffer, 0);
                                                              encodeContextBitstring2222222222222(
                                                                buffer,
                                                                1,
                                                                data.changeOfStateStatusFlags
                                                              );
                                                              encodeClosingTag2222222222222(buffer, 1);
                                                              break;
                                                            case 2:
                                                              encodeOpeningTag2222222222222(buffer, 2);
                                                              encodeOpeningTag2222222222222(buffer, 0);
                                                              switch (data.changeOfValueTag) {
                                                                case 0:
                                                                  encodeContextReal2222222222222(
                                                                    buffer,
                                                                    1,
                                                                    data.changeOfValueChangeValue
                                                                  );
                                                                  break;
                                                                case 1:
                                                                  encodeContextBitstring2222222222222(
                                                                    buffer,
                                                                    0,
                                                                    data.changeOfValueChangedBits
                                                                  );
                                                                  break;
                                                                default:
                                                                  throw new Error("NotImplemented");
                                                              }
                                                              encodeClosingTag2222222222222(buffer, 0);
                                                              encodeContextBitstring2222222222222(
                                                                buffer,
                                                                1,
                                                                data.changeOfValueStatusFlags
                                                              );
                                                              encodeClosingTag2222222222222(buffer, 2);
                                                              break;
                                                            case 4:
                                                              encodeOpeningTag2222222222222(buffer, 4);
                                                              encodeContextReal2222222222222(buffer, 0, data.floatingLimitReferenceValue);
                                                              encodeContextBitstring2222222222222(
                                                                buffer,
                                                                1,
                                                                data.floatingLimitStatusFlags
                                                              );
                                                              encodeContextReal2222222222222(buffer, 2, data.floatingLimitSetPointValue);
                                                              encodeContextReal2222222222222(buffer, 3, data.floatingLimitErrorLimit);
                                                              encodeClosingTag2222222222222(buffer, 4);
                                                              break;
                                                            case 5:
                                                              encodeOpeningTag2222222222222(buffer, 5);
                                                              encodeContextReal2222222222222(buffer, 0, data.outOfRangeExceedingValue);
                                                              encodeContextBitstring2222222222222(buffer, 1, data.outOfRangeStatusFlags);
                                                              encodeContextReal2222222222222(buffer, 2, data.outOfRangeDeadband);
                                                              encodeContextReal2222222222222(buffer, 3, data.outOfRangeExceededLimit);
                                                              encodeClosingTag2222222222222(buffer, 5);
                                                              break;
                                                            case 8:
                                                              encodeOpeningTag2222222222222(buffer, 8);
                                                              encodeContextEnumerated2222222222222(
                                                                buffer,
                                                                0,
                                                                data.changeOfLifeSafetyNewState
                                                              );
                                                              encodeContextEnumerated2222222222222(
                                                                buffer,
                                                                1,
                                                                data.changeOfLifeSafetyNewMode
                                                              );
                                                              encodeContextBitstring2222222222222(
                                                                buffer,
                                                                2,
                                                                data.changeOfLifeSafetyStatusFlags
                                                              );
                                                              encodeContextEnumerated2222222222222(
                                                                buffer,
                                                                3,
                                                                data.changeOfLifeSafetyOperationExpected
                                                              );
                                                              encodeClosingTag2222222222222(buffer, 8);
                                                              break;
                                                            case 10:
                                                              encodeOpeningTag2222222222222(buffer, 10);
                                                              bacappEncodeContextDeviceObjPropertyRef2222222222222(
                                                                buffer,
                                                                0,
                                                                data.bufferReadyBufferProperty
                                                              );
                                                              encodeContextUnsigned2222222222222(
                                                                buffer,
                                                                1,
                                                                data.bufferReadyPreviousNotification
                                                              );
                                                              encodeContextUnsigned2222222222222(
                                                                buffer,
                                                                2,
                                                                data.bufferReadyCurrentNotification
                                                              );
                                                              encodeClosingTag2222222222222(buffer, 10);
                                                              break;
                                                            case 11:
                                                              encodeOpeningTag2222222222222(buffer, 11);
                                                              encodeContextUnsigned2222222222222(
                                                                buffer,
                                                                0,
                                                                data.unsignedRangeExceedingValue
                                                              );
                                                              encodeContextBitstring2222222222222(
                                                                buffer,
                                                                1,
                                                                data.unsignedRangeStatusFlags
                                                              );
                                                              encodeContextUnsigned2222222222222(
                                                                buffer,
                                                                2,
                                                                data.unsignedRangeExceededLimit
                                                              );
                                                              encodeClosingTag2222222222222(buffer, 11);
                                                              break;
                                                            case 9:
                                                            case 3:
                                                              throw new Error("NotImplemented");
                                                            default:
                                                              throw new Error("NotImplemented");
                                                          }
                                                          encodeClosingTag2222222222222(buffer, 12);
                                                          break;
                                                        case 2:
                                                          throw new Error("NotImplemented");
                                                        default:
                                                          break;
                                                      }
                                                    };
                                                    var decode122222222222222 = (buffer, offset) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let eventData = {};
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      eventData.processId = decodedValue.value;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      eventData.initiatingObjectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 2)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      eventData.eventObjectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 3)) {
                                                        return void 0;
                                                      }
                                                      len += 2;
                                                      decodedValue = decodeApplicationDate2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      const date = decodedValue.value.value;
                                                      decodedValue = decodeApplicationTime2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      const time = decodedValue.value.value;
                                                      eventData.timeStamp = new Date(
                                                        date.getFullYear(),
                                                        date.getMonth(),
                                                        date.getDate(),
                                                        time.getHours(),
                                                        time.getMinutes(),
                                                        time.getSeconds(),
                                                        time.getMilliseconds()
                                                      );
                                                      len += 2;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 4)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      eventData.notificationClass = decodedValue.value;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 5)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      eventData.priority = decodedValue.value;
                                                      if (eventData.priority > 255) {
                                                        return void 0;
                                                      }
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 6)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      eventData.eventType = decodedValue.value;
                                                      if (decodeIsContextTag2222222222222(buffer, offset + len, 7)) {
                                                        decodedValue = decodeContextCharacterString2222222222222(
                                                          buffer,
                                                          offset + len,
                                                          2e4,
                                                          7
                                                        );
                                                        len += decodedValue.len;
                                                        eventData.messageText = decodedValue.value;
                                                      }
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 8)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      eventData.notifyType = decodedValue.value;
                                                      switch (eventData.notifyType) {
                                                        case 0:
                                                        case 1:
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned2222222222222(buffer, offset + len, 1);
                                                          len += decodedValue.len;
                                                          eventData.ackRequired = decodedValue.value > 0;
                                                          if (!decodeIsContextTag2222222222222(buffer, offset + len, 10)) {
                                                            return void 0;
                                                          }
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeEnumerated2222222222222(
                                                            buffer,
                                                            offset + len,
                                                            result.value
                                                          );
                                                          len += decodedValue.len;
                                                          eventData.fromState = decodedValue.value;
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 11)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      eventData.toState = decodedValue.value;
                                                      eventData.len = len;
                                                      return eventData;
                                                    };
                                                    var get_enrollment_summary_exports2222222222222 = {};
                                                    __export2222222222222(get_enrollment_summary_exports2222222222222, {
                                                      decode: () => decode132222222222222,
                                                      decodeAcknowledge: () => decodeAcknowledge32222222222222,
                                                      encode: () => encode132222222222222,
                                                      encodeAcknowledge: () => encodeAcknowledge42222222222222
                                                    });
                                                    var encode132222222222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                                                      encodeContextEnumerated2222222222222(buffer, 0, acknowledgmentFilter);
                                                      if (enrollmentFilter) {
                                                        encodeOpeningTag2222222222222(buffer, 1);
                                                        encodeOpeningTag2222222222222(buffer, 0);
                                                        encodeContextObjectId2222222222222(
                                                          buffer,
                                                          0,
                                                          enrollmentFilter.objectId.type,
                                                          enrollmentFilter.objectId.instance
                                                        );
                                                        encodeClosingTag2222222222222(buffer, 0);
                                                        encodeContextUnsigned2222222222222(buffer, 1, enrollmentFilter.processId);
                                                        encodeClosingTag2222222222222(buffer, 1);
                                                      }
                                                      if (eventStateFilter) {
                                                        encodeOpeningTag2222222222222(buffer, 2);
                                                        encodeContextEnumerated2222222222222(buffer, 0, eventStateFilter);
                                                        encodeClosingTag2222222222222(buffer, 2);
                                                      }
                                                      if (eventTypeFilter) {
                                                        encodeOpeningTag2222222222222(buffer, 3);
                                                        encodeContextEnumerated2222222222222(buffer, 0, eventTypeFilter);
                                                        encodeClosingTag2222222222222(buffer, 3);
                                                      }
                                                      if (priorityFilter) {
                                                        encodeOpeningTag2222222222222(buffer, 4);
                                                        encodeContextUnsigned2222222222222(buffer, 0, priorityFilter.min);
                                                        encodeContextUnsigned2222222222222(buffer, 1, priorityFilter.max);
                                                        encodeClosingTag2222222222222(buffer, 4);
                                                      }
                                                      if (notificationClassFilter) {
                                                        encodeOpeningTag2222222222222(buffer, 5);
                                                        encodeContextUnsigned2222222222222(buffer, 0, notificationClassFilter);
                                                        encodeClosingTag2222222222222(buffer, 5);
                                                      }
                                                    };
                                                    var decode132222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let value = {};
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.acknowledgmentFilter = decodedValue.value;
                                                      if (decodeIsContextTag2222222222222(buffer, offset + len, 1)) {
                                                        len++;
                                                        value.enrollmentFilter = {};
                                                        if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                          return void 0;
                                                        }
                                                        len++;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        value.enrollmentFilter.objectId = {
                                                          type: decodedValue.objectType,
                                                          instance: decodedValue.instance
                                                        };
                                                        len++;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.enrollmentFilter.processId = decodedValue.value;
                                                        len++;
                                                      }
                                                      if (decodeIsContextTag2222222222222(buffer, offset + len, 2)) {
                                                        len++;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.eventStateFilter = decodedValue.value;
                                                        len++;
                                                      }
                                                      if (decodeIsContextTag2222222222222(buffer, offset + len, 3)) {
                                                        len++;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.eventTypeFilter = decodedValue.value;
                                                        len++;
                                                      }
                                                      if (decodeIsContextTag2222222222222(buffer, offset + len, 4)) {
                                                        len++;
                                                        value.priorityFilter = {};
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.priorityFilter.min = decodedValue.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.priorityFilter.max = decodedValue.value;
                                                        len++;
                                                      }
                                                      if (decodeIsContextTag2222222222222(buffer, offset + len, 5)) {
                                                        len++;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.notificationClassFilter = decodedValue.value;
                                                        len++;
                                                      }
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var encodeAcknowledge42222222222222 = (buffer, enrollmentSummaries) => {
                                                      enrollmentSummaries.forEach((enrollmentSummary) => {
                                                        encodeApplicationObjectId2222222222222(
                                                          buffer,
                                                          enrollmentSummary.objectId.type,
                                                          enrollmentSummary.objectId.instance
                                                        );
                                                        encodeApplicationEnumerated2222222222222(buffer, enrollmentSummary.eventType);
                                                        encodeApplicationEnumerated2222222222222(buffer, enrollmentSummary.eventState);
                                                        encodeApplicationUnsigned2222222222222(buffer, enrollmentSummary.priority);
                                                        encodeApplicationUnsigned2222222222222(
                                                          buffer,
                                                          enrollmentSummary.notificationClass
                                                        );
                                                      });
                                                    };
                                                    var decodeAcknowledge32222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      const enrollmentSummaries = [];
                                                      while (apduLen - len > 0) {
                                                        const enrollmentSummary = {};
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 12) {
                                                          return void 0;
                                                        }
                                                        result = decodeObjectId2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        enrollmentSummary.objectId = {
                                                          type: result.objectType,
                                                          instance: result.instance
                                                        };
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 9) {
                                                          return void 0;
                                                        }
                                                        result = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        len += result.len;
                                                        enrollmentSummary.eventType = result.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 9) {
                                                          return void 0;
                                                        }
                                                        result = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        len += result.len;
                                                        enrollmentSummary.eventState = result.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 2) {
                                                          return void 0;
                                                        }
                                                        result = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += result.len;
                                                        enrollmentSummary.priority = result.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 2) {
                                                          return void 0;
                                                        }
                                                        result = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += result.len;
                                                        enrollmentSummary.notificationClass = result.value;
                                                        enrollmentSummaries.push(enrollmentSummary);
                                                      }
                                                      return {
                                                        enrollmentSummaries,
                                                        len
                                                      };
                                                    };
                                                    var get_event_information_exports2222222222222 = {};
                                                    __export2222222222222(get_event_information_exports2222222222222, {
                                                      decode: () => decode142222222222222,
                                                      decodeAcknowledge: () => decodeAcknowledge42222222222222,
                                                      encode: () => encode142222222222222,
                                                      encodeAcknowledge: () => encodeAcknowledge52222222222222
                                                    });
                                                    var encode142222222222222 = (buffer, lastReceivedObjectId) => {
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        0,
                                                        lastReceivedObjectId.type,
                                                        lastReceivedObjectId.instance
                                                      );
                                                    };
                                                    var decode142222222222222 = (buffer, offset) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let value = {};
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      value.lastReceivedObjectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var encodeAcknowledge52222222222222 = (buffer, events, moreEvents) => {
                                                      encodeOpeningTag2222222222222(buffer, 0);
                                                      events.forEach((eventData) => {
                                                        encodeContextObjectId2222222222222(
                                                          buffer,
                                                          0,
                                                          eventData.objectId.type,
                                                          eventData.objectId.instance
                                                        );
                                                        encodeContextEnumerated2222222222222(buffer, 1, eventData.eventState);
                                                        encodeContextBitstring2222222222222(buffer, 2, eventData.acknowledgedTransitions);
                                                        encodeOpeningTag2222222222222(buffer, 3);
                                                        for (let i = 0; i < 3; i++) {
                                                          bacappEncodeTimestamp2222222222222(buffer, eventData.eventTimeStamps[i]);
                                                        }
                                                        encodeClosingTag2222222222222(buffer, 3);
                                                        encodeContextEnumerated2222222222222(buffer, 4, eventData.notifyType);
                                                        encodeContextBitstring2222222222222(buffer, 5, eventData.eventEnable);
                                                        encodeOpeningTag2222222222222(buffer, 6);
                                                        for (let i = 0; i < 3; i++) {
                                                          encodeApplicationUnsigned2222222222222(buffer, eventData.eventPriorities[i]);
                                                        }
                                                        encodeClosingTag2222222222222(buffer, 6);
                                                      });
                                                      encodeClosingTag2222222222222(buffer, 0);
                                                      encodeContextBoolean2222222222222(buffer, 1, moreEvents);
                                                    };
                                                    var decodeAcknowledge42222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let value = {};
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      value.events = [];
                                                      while (apduLen - len > 3) {
                                                        let event = {};
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        event.objectId = {
                                                          type: decodedValue.objectType,
                                                          instance: decodedValue.instance
                                                        };
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        event.eventState = decodedValue.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeBitstring2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        event.acknowledgedTransitions = decodedValue.value;
                                                        if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 3)) {
                                                          return void 0;
                                                        }
                                                        len++;
                                                        event.eventTimeStamps = [];
                                                        for (let i = 0; i < 3; i++) {
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          if (result.tagNumber === 0) {
                                                            decodedValue = decodeBacnetTime2222222222222(
                                                              buffer,
                                                              offset + len,
                                                              result.value
                                                            );
                                                            len += decodedValue.len;
                                                            event.eventTimeStamps[i] = {
                                                              value: decodedValue.value,
                                                              type: 0
                                                              /* TIME */
                                                            };
                                                          } else if (result.tagNumber === 1) {
                                                            decodedValue = decodeUnsigned2222222222222(
                                                              buffer,
                                                              offset + len,
                                                              result.value
                                                            );
                                                            len += decodedValue.len;
                                                            event.eventTimeStamps[i] = {
                                                              value: decodedValue.value,
                                                              type: 1
                                                              /* SEQUENCE_NUMBER */
                                                            };
                                                          } else if (result.tagNumber === 2) {
                                                            let date = decodeApplicationDate2222222222222(
                                                              buffer,
                                                              offset + len
                                                            );
                                                            len += date.len;
                                                            date = date.value.value;
                                                            let time = decodeApplicationTime2222222222222(
                                                              buffer,
                                                              offset + len
                                                            );
                                                            len += time.len;
                                                            time = time.value.value;
                                                            event.eventTimeStamps[i] = {
                                                              value: new Date(
                                                                date.getFullYear(),
                                                                date.getMonth(),
                                                                date.getDate(),
                                                                time.getHours(),
                                                                time.getMinutes(),
                                                                time.getSeconds(),
                                                                time.getMilliseconds()
                                                              ),
                                                              type: 2
                                                              /* DATETIME */
                                                            };
                                                            len++;
                                                          }
                                                        }
                                                        if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 3)) {
                                                          return void 0;
                                                        }
                                                        len++;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        event.notifyType = decodedValue.value;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeBitstring2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        event.eventEnable = decodedValue.value;
                                                        if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 6)) {
                                                          return void 0;
                                                        }
                                                        len++;
                                                        event.eventPriorities = [];
                                                        for (let i = 0; i < 3; i++) {
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          event.eventPriorities[i] = decodedValue.value;
                                                        }
                                                        if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 6)) {
                                                          return void 0;
                                                        }
                                                        len++;
                                                        value.events.push(event);
                                                      }
                                                      if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      value.moreEvents = buffer[offset + len] > 0;
                                                      len++;
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var i_am_exports2222222222222 = {};
                                                    __export2222222222222(i_am_exports2222222222222, {
                                                      decode: () => decode152222222222222,
                                                      encode: () => encode152222222222222
                                                    });
                                                    var encode152222222222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                                                      encodeApplicationObjectId2222222222222(buffer, 8, deviceId);
                                                      encodeApplicationUnsigned2222222222222(buffer, maxApdu);
                                                      encodeApplicationEnumerated2222222222222(buffer, segmentation);
                                                      encodeApplicationUnsigned2222222222222(buffer, vendorId);
                                                    };
                                                    var decode152222222222222 = (buffer, offset) => {
                                                      let result;
                                                      let apduLen = 0;
                                                      const orgOffset = offset;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + apduLen);
                                                      apduLen += result.len;
                                                      if (result.tagNumber !== 12) {
                                                        return void 0;
                                                      }
                                                      result = decodeObjectId2222222222222(buffer, offset + apduLen);
                                                      apduLen += result.len;
                                                      if (result.objectType !== 8) {
                                                        return void 0;
                                                      }
                                                      const deviceId = result.instance;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + apduLen);
                                                      apduLen += result.len;
                                                      if (result.tagNumber !== 2) {
                                                        return void 0;
                                                      }
                                                      result = decodeUnsigned2222222222222(buffer, offset + apduLen, result.value);
                                                      apduLen += result.len;
                                                      const maxApdu = result.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + apduLen);
                                                      apduLen += result.len;
                                                      if (result.tagNumber !== 9) {
                                                        return void 0;
                                                      }
                                                      result = decodeEnumerated2222222222222(buffer, offset + apduLen, result.value);
                                                      apduLen += result.len;
                                                      if (result.value > 3) {
                                                        return void 0;
                                                      }
                                                      const segmentation = result.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + apduLen);
                                                      apduLen += result.len;
                                                      if (result.tagNumber !== 2) {
                                                        return void 0;
                                                      }
                                                      result = decodeUnsigned2222222222222(buffer, offset + apduLen, result.value);
                                                      apduLen += result.len;
                                                      if (result.value > 65535) {
                                                        return void 0;
                                                      }
                                                      const vendorId = result.value;
                                                      return {
                                                        len: offset - orgOffset,
                                                        deviceId,
                                                        maxApdu,
                                                        segmentation,
                                                        vendorId
                                                      };
                                                    };
                                                    var i_have_exports2222222222222 = {};
                                                    __export2222222222222(i_have_exports2222222222222, {
                                                      decode: () => decode162222222222222,
                                                      encode: () => encode162222222222222
                                                    });
                                                    var encode162222222222222 = (buffer, deviceId, objectId, objectName) => {
                                                      encodeApplicationObjectId2222222222222(buffer, deviceId.type, deviceId.instance);
                                                      encodeApplicationObjectId2222222222222(buffer, objectId.type, objectId.instance);
                                                      encodeApplicationCharacterString2222222222222(buffer, objectName);
                                                    };
                                                    var decode162222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let value = {};
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      value.deviceId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      value.objectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeCharacterString2222222222222(
                                                        buffer,
                                                        offset + len,
                                                        apduLen - (offset + len),
                                                        result.value
                                                      );
                                                      len += decodedValue.len;
                                                      value.objectName = decodedValue.value;
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var life_safety_operation_exports2222222222222 = {};
                                                    __export2222222222222(life_safety_operation_exports2222222222222, {
                                                      decode: () => decode172222222222222,
                                                      encode: () => encode172222222222222
                                                    });
                                                    var encode172222222222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                                                      encodeContextUnsigned2222222222222(buffer, 0, processId);
                                                      encodeContextCharacterString2222222222222(buffer, 1, requestingSource);
                                                      encodeContextEnumerated2222222222222(buffer, 2, operation);
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        3,
                                                        targetObjectId.type,
                                                        targetObjectId.instance
                                                      );
                                                    };
                                                    var decode172222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let value = {};
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.processId = decodedValue.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeCharacterString2222222222222(
                                                        buffer,
                                                        offset + len,
                                                        apduLen - (offset + len),
                                                        result.value
                                                      );
                                                      len += decodedValue.len;
                                                      value.requestingSource = decodedValue.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.operation = decodedValue.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      value.targetObjectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var private_transfer_exports2222222222222 = {};
                                                    __export2222222222222(private_transfer_exports2222222222222, {
                                                      decode: () => decode182222222222222,
                                                      encode: () => encode182222222222222
                                                    });
                                                    var encode182222222222222 = (buffer, vendorId, serviceNumber, data) => {
                                                      encodeContextUnsigned2222222222222(buffer, 0, vendorId);
                                                      encodeContextUnsigned2222222222222(buffer, 1, serviceNumber);
                                                      encodeOpeningTag2222222222222(buffer, 2);
                                                      for (let i = 0; i < data.length; i++) {
                                                        buffer.buffer[buffer.offset++] = data[i];
                                                      }
                                                      encodeClosingTag2222222222222(buffer, 2);
                                                    };
                                                    var decode182222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let value = {};
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.vendorId = decodedValue.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.serviceNumber = decodedValue.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      const size = apduLen - (offset + len + 1);
                                                      const data = [];
                                                      for (let i = 0; i < size; i++) {
                                                        data.push(buffer[offset + len++]);
                                                      }
                                                      value.data = data;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var read_property_exports2222222222222 = {};
                                                    __export2222222222222(read_property_exports2222222222222, {
                                                      decode: () => decode192222222222222,
                                                      decodeAcknowledge: () => decodeAcknowledge52222222222222,
                                                      encode: () => encode192222222222222,
                                                      encodeAcknowledge: () => encodeAcknowledge62222222222222
                                                    });
                                                    var encode192222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                                                      if (objectType <= ASN1_MAX_OBJECT2222222222222) {
                                                        encodeContextObjectId2222222222222(buffer, 0, objectType, objectInstance);
                                                      }
                                                      if (propertyId <= ASN1_MAX_PROPERTY_ID2222222222222) {
                                                        encodeContextEnumerated2222222222222(buffer, 1, propertyId);
                                                      }
                                                      if (arrayIndex !== ASN1_ARRAY_ALL2222222222222) {
                                                        encodeContextUnsigned2222222222222(
                                                          buffer,
                                                          2,
                                                          arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL2222222222222
                                                        );
                                                      }
                                                    };
                                                    var decode192222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      if (apduLen < 7) {
                                                        return void 0;
                                                      }
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      let objectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      let property = {};
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 1) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      property.id = decodedValue.value;
                                                      property.index = ASN1_ARRAY_ALL2222222222222;
                                                      if (len < apduLen) {
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber === 2 && len < apduLen) {
                                                          decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          property.index = decodedValue.value;
                                                        } else {
                                                          return void 0;
                                                        }
                                                      }
                                                      if (len < apduLen) {
                                                        return void 0;
                                                      }
                                                      return {
                                                        len,
                                                        objectId,
                                                        property
                                                      };
                                                    };
                                                    var encodeAcknowledge62222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                      encodeContextObjectId2222222222222(buffer, 0, objectId.type, objectId.instance);
                                                      encodeContextEnumerated2222222222222(buffer, 1, propertyId);
                                                      if (arrayIndex !== ASN1_ARRAY_ALL2222222222222) {
                                                        encodeContextUnsigned2222222222222(buffer, 2, arrayIndex);
                                                      }
                                                      encodeOpeningTag2222222222222(buffer, 3);
                                                      values.forEach((value) => {
                                                        bacappEncodeApplicationData2222222222222(buffer, value);
                                                      });
                                                      encodeClosingTag2222222222222(buffer, 3);
                                                    };
                                                    var decodeAcknowledge52222222222222 = (buffer, offset, apduLen) => {
                                                      let result;
                                                      let decodedValue;
                                                      let objectId = {};
                                                      let property = {};
                                                      if (!decodeIsContextTag2222222222222(buffer, offset, 0)) {
                                                        return void 0;
                                                      }
                                                      let len = 1;
                                                      result = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      objectId.type = result.objectType;
                                                      objectId.instance = result.instance;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 1) {
                                                        return void 0;
                                                      }
                                                      result = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += result.len;
                                                      property.id = result.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      if (result.tagNumber === 2) {
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        property.index = decodedValue.value;
                                                      } else {
                                                        property.index = ASN1_ARRAY_ALL2222222222222;
                                                      }
                                                      const values = [];
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 3)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      while (apduLen - len > 1) {
                                                        result = bacappDecodeApplicationData2222222222222(
                                                          buffer,
                                                          offset + len,
                                                          apduLen + offset,
                                                          objectId.type,
                                                          property.id
                                                        );
                                                        if (!result) {
                                                          return void 0;
                                                        }
                                                        len += result.len;
                                                        delete result.len;
                                                        values.push(result);
                                                      }
                                                      if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 3)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      return {
                                                        len,
                                                        objectId,
                                                        property,
                                                        values
                                                      };
                                                    };
                                                    var read_property_multiple_exports2222222222222 = {};
                                                    __export2222222222222(read_property_multiple_exports2222222222222, {
                                                      decode: () => decode202222222222222,
                                                      decodeAcknowledge: () => decodeAcknowledge62222222222222,
                                                      encode: () => encode202222222222222,
                                                      encodeAcknowledge: () => encodeAcknowledge72222222222222
                                                    });
                                                    var encode202222222222222 = (buffer, properties) => {
                                                      properties.forEach((value) => {
                                                        encodeReadAccessSpecification2222222222222(buffer, value);
                                                      });
                                                    };
                                                    var decode202222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      const values = [];
                                                      while (apduLen - len > 0) {
                                                        const decodedValue = decodeReadAccessSpecification2222222222222(
                                                          buffer,
                                                          offset + len,
                                                          apduLen - len
                                                        );
                                                        if (!decodedValue) {
                                                          return void 0;
                                                        }
                                                        len += decodedValue.len;
                                                        values.push(decodedValue.value);
                                                      }
                                                      return {
                                                        len,
                                                        properties: values
                                                      };
                                                    };
                                                    var encodeAcknowledge72222222222222 = (buffer, values) => {
                                                      values.forEach((value) => {
                                                        encodeReadAccessResult2222222222222(buffer, value);
                                                      });
                                                    };
                                                    var decodeAcknowledge62222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      const values = [];
                                                      while (apduLen - len > 0) {
                                                        const result = decodeReadAccessResult2222222222222(
                                                          buffer,
                                                          offset + len,
                                                          apduLen - len
                                                        );
                                                        if (!result || result === -1) {
                                                          return void 0;
                                                        }
                                                        len += result.len;
                                                        values.push(result.value);
                                                      }
                                                      return {
                                                        len,
                                                        values
                                                      };
                                                    };
                                                    var read_range_exports2222222222222 = {};
                                                    __export2222222222222(read_range_exports2222222222222, {
                                                      decode: () => decode212222222222222,
                                                      decodeAcknowledge: () => decodeAcknowledge72222222222222,
                                                      encode: () => encode212222222222222,
                                                      encodeAcknowledge: () => encodeAcknowledge82222222222222
                                                    });
                                                    var encode212222222222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                                                      encodeContextObjectId2222222222222(buffer, 0, objectId.type, objectId.instance);
                                                      encodeContextEnumerated2222222222222(buffer, 1, propertyId);
                                                      if (arrayIndex !== ASN1_ARRAY_ALL2222222222222) {
                                                        encodeContextUnsigned2222222222222(buffer, 2, arrayIndex);
                                                      }
                                                      switch (requestType) {
                                                        case 0:
                                                          encodeOpeningTag2222222222222(buffer, 3);
                                                          encodeApplicationUnsigned2222222222222(buffer, position);
                                                          encodeApplicationSigned2222222222222(buffer, count);
                                                          encodeClosingTag2222222222222(buffer, 3);
                                                          break;
                                                        case 1:
                                                          encodeOpeningTag2222222222222(buffer, 6);
                                                          encodeApplicationUnsigned2222222222222(buffer, position);
                                                          encodeApplicationSigned2222222222222(buffer, count);
                                                          encodeClosingTag2222222222222(buffer, 6);
                                                          break;
                                                        case 2:
                                                          encodeOpeningTag2222222222222(buffer, 7);
                                                          encodeApplicationDate2222222222222(buffer, time);
                                                          encodeApplicationTime2222222222222(buffer, time);
                                                          encodeApplicationSigned2222222222222(buffer, count);
                                                          encodeClosingTag2222222222222(buffer, 7);
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                    };
                                                    var decode212222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let requestType;
                                                      let position;
                                                      let time;
                                                      let count;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len, 0);
                                                      len += decodedValue.len;
                                                      let objectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      let property = {};
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 1) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      property.id = decodedValue.value;
                                                      if (len < apduLen && decodeIsContextTag2222222222222(buffer, offset + len, 2)) {
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        property.index = decodedValue.value;
                                                      } else {
                                                        property.index = ASN1_ARRAY_ALL2222222222222;
                                                      }
                                                      if (len < apduLen) {
                                                        result = decodeTagNumber2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        switch (result.tagNumber) {
                                                          case 3:
                                                            requestType = 0;
                                                            result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned2222222222222(
                                                              buffer,
                                                              offset + len,
                                                              result.value
                                                            );
                                                            len += decodedValue.len;
                                                            position = decodedValue.value;
                                                            result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeSigned2222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            count = decodedValue.value;
                                                            break;
                                                          case 6:
                                                            requestType = 1;
                                                            result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeUnsigned2222222222222(
                                                              buffer,
                                                              offset + len,
                                                              result.value
                                                            );
                                                            len += decodedValue.len;
                                                            position = decodedValue.value;
                                                            result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeSigned2222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            count = decodedValue.value;
                                                            break;
                                                          case 7:
                                                            requestType = 2;
                                                            decodedValue = decodeApplicationDate2222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            const tmpDate = decodedValue.value.value;
                                                            decodedValue = decodeApplicationTime2222222222222(buffer, offset + len);
                                                            len += decodedValue.len;
                                                            const tmpTime = decodedValue.value.value;
                                                            time = new Date(
                                                              tmpDate.getYear(),
                                                              tmpDate.getMonth(),
                                                              tmpDate.getDate(),
                                                              tmpTime.getHours(),
                                                              tmpTime.getMinutes(),
                                                              tmpTime.getSeconds(),
                                                              tmpTime.getMilliseconds()
                                                            );
                                                            result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                            len += result.len;
                                                            decodedValue = decodeSigned2222222222222(buffer, offset + len, result.value);
                                                            len += decodedValue.len;
                                                            count = decodedValue.value;
                                                            break;
                                                          default:
                                                            return void 0;
                                                        }
                                                        result = decodeTagNumber2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                      }
                                                      return {
                                                        len,
                                                        objectId,
                                                        property,
                                                        requestType,
                                                        position,
                                                        time,
                                                        count
                                                      };
                                                    };
                                                    var encodeAcknowledge82222222222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                                                      encodeContextObjectId2222222222222(buffer, 0, objectId.type, objectId.instance);
                                                      encodeContextEnumerated2222222222222(buffer, 1, propertyId);
                                                      if (arrayIndex !== ASN1_ARRAY_ALL2222222222222) {
                                                        encodeContextUnsigned2222222222222(buffer, 2, arrayIndex);
                                                      }
                                                      encodeContextBitstring2222222222222(buffer, 3, resultFlags);
                                                      encodeContextUnsigned2222222222222(buffer, 4, itemCount);
                                                      encodeOpeningTag2222222222222(buffer, 5);
                                                      if (itemCount !== 0) {
                                                        applicationData.copy(
                                                          buffer.buffer,
                                                          buffer.offset,
                                                          0,
                                                          applicationData.length
                                                        );
                                                        buffer.offset += applicationData.length;
                                                      }
                                                      encodeClosingTag2222222222222(buffer, 5);
                                                      if (itemCount !== 0 && requestType && requestType !== 0) {
                                                        encodeContextUnsigned2222222222222(buffer, 6, firstSequence);
                                                      }
                                                    };
                                                    var decodeAcknowledge72222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      const objectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      const property = { index: ASN1_ARRAY_ALL2222222222222 };
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 1) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      property.id = decodedValue.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      if (result.tagNumber === 2 && len < apduLen) {
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        property.index = decodedValue.value;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeBitstring2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      const resultFlag = decodedValue.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      const itemCount = decodedValue.value;
                                                      if (!decodeIsOpeningTag2222222222222(buffer, offset + len)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                                                      return {
                                                        objectId,
                                                        property,
                                                        resultFlag,
                                                        itemCount,
                                                        rangeBuffer,
                                                        len
                                                      };
                                                    };
                                                    var register_foreign_device_exports2222222222222 = {};
                                                    __export2222222222222(register_foreign_device_exports2222222222222, {
                                                      decode: () => decode222222222222222,
                                                      encode: () => encode222222222222222
                                                    });
                                                    var encode222222222222222 = (buffer, ttl, length = 2) => {
                                                      encodeUnsigned2222222222222(buffer, ttl, length);
                                                    };
                                                    var decode222222222222222 = (buffer, offset, length = 2) => {
                                                      let len = 0;
                                                      let result = decodeUnsigned2222222222222(buffer, offset + len, length);
                                                      len += result.len;
                                                      return {
                                                        len,
                                                        ttl: result.value
                                                      };
                                                    };
                                                    var reinitialize_device_exports2222222222222 = {};
                                                    __export2222222222222(reinitialize_device_exports2222222222222, {
                                                      decode: () => decode232222222222222,
                                                      encode: () => encode232222222222222
                                                    });
                                                    var encode232222222222222 = (buffer, state, password) => {
                                                      encodeContextEnumerated2222222222222(buffer, 0, state);
                                                      if (password && password !== "") {
                                                        encodeContextCharacterString2222222222222(buffer, 1, password);
                                                      }
                                                    };
                                                    var decode232222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let value = {};
                                                      let result;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      let decodedValue = decodeEnumerated2222222222222(
                                                        buffer,
                                                        offset + len,
                                                        result.value
                                                      );
                                                      value.state = decodedValue.value;
                                                      len += decodedValue.len;
                                                      if (len < apduLen) {
                                                        if (!decodeIsContextTag2222222222222(buffer, offset + len, 1)) {
                                                          return void 0;
                                                        }
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeCharacterString2222222222222(
                                                          buffer,
                                                          offset + len,
                                                          apduLen - (offset + len),
                                                          result.value
                                                        );
                                                        value.password = decodedValue.value;
                                                        len += decodedValue.len;
                                                      }
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var subscribe_cov_exports2222222222222 = {};
                                                    __export2222222222222(subscribe_cov_exports2222222222222, {
                                                      decode: () => decode242222222222222,
                                                      encode: () => encode242222222222222
                                                    });
                                                    var encode242222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                                                      encodeContextUnsigned2222222222222(buffer, 0, subscriberProcessId);
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        1,
                                                        monitoredObjectId.type,
                                                        monitoredObjectId.instance
                                                      );
                                                      if (!cancellationRequest) {
                                                        encodeContextBoolean2222222222222(buffer, 2, issueConfirmedNotifications);
                                                        encodeContextUnsigned2222222222222(buffer, 3, lifetime);
                                                      }
                                                    };
                                                    var decode242222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let value = {};
                                                      let result;
                                                      let decodedValue;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.subscriberProcessId = decodedValue.value;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      value.monitoredObjectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      value.cancellationRequest = true;
                                                      if (len < apduLen) {
                                                        value.issueConfirmedNotifications = false;
                                                        if (decodeIsContextTag2222222222222(buffer, offset + len, 2)) {
                                                          value.cancellationRequest = false;
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                          len++;
                                                        }
                                                        value.lifetime = 0;
                                                        if (decodeIsContextTag2222222222222(buffer, offset + len, 3)) {
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          value.lifetime = decodedValue.value;
                                                        }
                                                      }
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var subscribe_property_exports2222222222222 = {};
                                                    __export2222222222222(subscribe_property_exports2222222222222, {
                                                      decode: () => decode252222222222222,
                                                      encode: () => encode252222222222222
                                                    });
                                                    var encode252222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                                                      encodeContextUnsigned2222222222222(buffer, 0, subscriberProcessId);
                                                      encodeContextObjectId2222222222222(
                                                        buffer,
                                                        1,
                                                        monitoredObjectId.type,
                                                        monitoredObjectId.instance
                                                      );
                                                      if (!cancellationRequest) {
                                                        encodeContextBoolean2222222222222(buffer, 2, issueConfirmedNotifications);
                                                        encodeContextUnsigned2222222222222(buffer, 3, lifetime);
                                                      }
                                                      encodeOpeningTag2222222222222(buffer, 4);
                                                      encodeContextEnumerated2222222222222(buffer, 0, monitoredProperty.id);
                                                      if (monitoredProperty.index !== ASN1_ARRAY_ALL2222222222222) {
                                                        encodeContextUnsigned2222222222222(buffer, 1, monitoredProperty.index);
                                                      }
                                                      encodeClosingTag2222222222222(buffer, 4);
                                                      if (covIncrementPresent) {
                                                        encodeContextReal2222222222222(buffer, 5, covIncrement);
                                                      }
                                                    };
                                                    var decode252222222222222 = (buffer, offset) => {
                                                      let len = 0;
                                                      let value = {};
                                                      let result;
                                                      let decodedValue;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.subscriberProcessId = decodedValue.value;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      value.monitoredObjectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      value.cancellationRequest = true;
                                                      value.issueConfirmedNotifications = false;
                                                      if (decodeIsContextTag2222222222222(buffer, offset + len, 2)) {
                                                        value.cancellationRequest = false;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                        len++;
                                                      }
                                                      value.lifetime = 0;
                                                      if (decodeIsContextTag2222222222222(buffer, offset + len, 3)) {
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.lifetime = decodedValue.value;
                                                      }
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 4)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      value.monitoredProperty = {};
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.monitoredProperty.id = decodedValue.value;
                                                      value.monitoredProperty.index = ASN1_ARRAY_ALL2222222222222;
                                                      if (decodeIsContextTag2222222222222(buffer, offset + len, 1)) {
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.monitoredProperty.index = decodedValue.value;
                                                      }
                                                      if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 4)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      value.covIncrement = 0;
                                                      if (decodeIsContextTag2222222222222(buffer, offset + len, 5)) {
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeReal2222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        value.covIncrement = decodedValue.value;
                                                      }
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var time_sync_exports2222222222222 = {};
                                                    __export2222222222222(time_sync_exports2222222222222, {
                                                      decode: () => decode262222222222222,
                                                      encode: () => encode262222222222222
                                                    });
                                                    var encode262222222222222 = (buffer, time) => {
                                                      encodeApplicationDate2222222222222(buffer, time);
                                                      encodeApplicationTime2222222222222(buffer, time);
                                                    };
                                                    var decode262222222222222 = (buffer, offset, length) => {
                                                      let len = 0;
                                                      let result;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 10) {
                                                        return void 0;
                                                      }
                                                      const date = decodeDate2222222222222(buffer, offset + len);
                                                      len += date.len;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 11) {
                                                        return void 0;
                                                      }
                                                      const time = decodeBacnetTime2222222222222(buffer, offset + len);
                                                      len += time.len;
                                                      return {
                                                        len,
                                                        value: new Date(
                                                          date.value.getFullYear(),
                                                          date.value.getMonth(),
                                                          date.value.getDate(),
                                                          time.value.getHours(),
                                                          time.value.getMinutes(),
                                                          time.value.getSeconds(),
                                                          time.value.getMilliseconds()
                                                        )
                                                      };
                                                    };
                                                    var who_has_exports2222222222222 = {};
                                                    __export2222222222222(who_has_exports2222222222222, {
                                                      decode: () => decode272222222222222,
                                                      encode: () => encode272222222222222
                                                    });
                                                    var encode272222222222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                                                      if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE2222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE2222222222222) {
                                                        encodeContextUnsigned2222222222222(buffer, 0, lowLimit);
                                                        encodeContextUnsigned2222222222222(buffer, 1, highLimit);
                                                      }
                                                      if (objectName && objectName !== "") {
                                                        encodeContextCharacterString2222222222222(buffer, 3, objectName);
                                                      } else {
                                                        encodeContextObjectId2222222222222(buffer, 2, objectId.type, objectId.instance);
                                                      }
                                                    };
                                                    var decode272222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let value = {};
                                                      let decodedValue;
                                                      let result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber === 0) {
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        if (decodedValue.value <= ASN1_MAX_INSTANCE2222222222222) {
                                                          value.lowLimit = decodedValue.value;
                                                        }
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                      }
                                                      if (result.tagNumber === 1) {
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        if (decodedValue.value <= ASN1_MAX_INSTANCE2222222222222) {
                                                          value.highLimit = decodedValue.value;
                                                        }
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                      }
                                                      if (result.tagNumber === 2) {
                                                        decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        value.objectId = {
                                                          type: decodedValue.objectType,
                                                          instance: decodedValue.instance
                                                        };
                                                      }
                                                      if (result.tagNumber === 3) {
                                                        decodedValue = decodeCharacterString2222222222222(
                                                          buffer,
                                                          offset + len,
                                                          apduLen - (offset + len),
                                                          result.value
                                                        );
                                                        len += decodedValue.len;
                                                        value.objectName = decodedValue.value;
                                                      }
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var who_is_exports2222222222222 = {};
                                                    __export2222222222222(who_is_exports2222222222222, {
                                                      decode: () => decode282222222222222,
                                                      encode: () => encode282222222222222
                                                    });
                                                    var encode282222222222222 = (buffer, lowLimit, highLimit) => {
                                                      if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE2222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE2222222222222) {
                                                        encodeContextUnsigned2222222222222(buffer, 0, lowLimit);
                                                        encodeContextUnsigned2222222222222(buffer, 1, highLimit);
                                                      }
                                                    };
                                                    var decode282222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let value = {};
                                                      if (apduLen <= 0) {
                                                        return {};
                                                      }
                                                      let result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 0) {
                                                        return void 0;
                                                      }
                                                      if (apduLen <= len) {
                                                        return void 0;
                                                      }
                                                      let decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      if (decodedValue.value <= ASN1_MAX_INSTANCE2222222222222) {
                                                        value.lowLimit = decodedValue.value;
                                                      }
                                                      if (apduLen <= len) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 1) {
                                                        return void 0;
                                                      }
                                                      if (apduLen <= len) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      if (decodedValue.value <= ASN1_MAX_INSTANCE2222222222222) {
                                                        value.highLimit = decodedValue.value;
                                                      }
                                                      value.len = len;
                                                      return value;
                                                    };
                                                    var write_property_exports2222222222222 = {};
                                                    __export2222222222222(write_property_exports2222222222222, {
                                                      decode: () => decode292222222222222,
                                                      encode: () => encode292222222222222
                                                    });
                                                    var encode292222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                                                      encodeContextObjectId2222222222222(buffer, 0, objectType, objectInstance);
                                                      encodeContextEnumerated2222222222222(buffer, 1, propertyId);
                                                      if (arrayIndex !== ASN1_ARRAY_ALL2222222222222) {
                                                        encodeContextUnsigned2222222222222(buffer, 2, arrayIndex);
                                                      }
                                                      encodeOpeningTag2222222222222(buffer, 3);
                                                      values.forEach((value) => {
                                                        bacappEncodeApplicationData2222222222222(buffer, value);
                                                      });
                                                      encodeClosingTag2222222222222(buffer, 3);
                                                      if (priority !== ASN1_NO_PRIORITY2222222222222) {
                                                        encodeContextUnsigned2222222222222(buffer, 4, priority);
                                                      }
                                                    };
                                                    var decode292222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let value = {
                                                        property: {}
                                                      };
                                                      let decodedValue;
                                                      let result;
                                                      if (!decodeIsContextTag2222222222222(buffer, offset + len, 0)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      let objectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      len += decodedValue.len;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 1) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.property.id = decodedValue.value;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      if (result.tagNumber === 2) {
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        value.property.index = decodedValue.value;
                                                      } else {
                                                        value.property.index = ASN1_ARRAY_ALL2222222222222;
                                                      }
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 3)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      const values = [];
                                                      while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222222222(buffer, offset + len, 3)) {
                                                        decodedValue = bacappDecodeApplicationData2222222222222(
                                                          buffer,
                                                          offset + len,
                                                          apduLen + offset,
                                                          objectId.type,
                                                          value.property.id
                                                        );
                                                        if (!decodedValue) {
                                                          return void 0;
                                                        }
                                                        len += decodedValue.len;
                                                        delete decodedValue.len;
                                                        values.push(decodedValue);
                                                      }
                                                      value.value = values;
                                                      if (!decodeIsClosingTagNumber2222222222222(buffer, offset + len, 3)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      value.priority = ASN1_MAX_PRIORITY2222222222222;
                                                      if (len < apduLen) {
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        if (result.tagNumber === 4) {
                                                          len += result.len;
                                                          decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue;
                                                          if (decodedValue.value >= ASN1_MIN_PRIORITY2222222222222 && decodedValue.value <= ASN1_MAX_PRIORITY2222222222222) {
                                                            value.priority = decodedValue.value;
                                                          } else {
                                                            return void 0;
                                                          }
                                                        }
                                                      }
                                                      return {
                                                        len,
                                                        objectId,
                                                        value
                                                      };
                                                    };
                                                    var write_property_multiple_exports2222222222222 = {};
                                                    __export2222222222222(write_property_multiple_exports2222222222222, {
                                                      decode: () => decode302222222222222,
                                                      encode: () => encode302222222222222,
                                                      encodeObject: () => encodeObject2222222222222
                                                    });
                                                    var encode302222222222222 = (buffer, objectId, values) => {
                                                      encodeContextObjectId2222222222222(buffer, 0, objectId.type, objectId.instance);
                                                      encodeOpeningTag2222222222222(buffer, 1);
                                                      values.forEach((pValue) => {
                                                        encodeContextEnumerated2222222222222(buffer, 0, pValue.property.id);
                                                        if (pValue.property.index !== ASN1_ARRAY_ALL2222222222222) {
                                                          encodeContextUnsigned2222222222222(buffer, 1, pValue.property.index);
                                                        }
                                                        encodeOpeningTag2222222222222(buffer, 2);
                                                        pValue.value.forEach((value) => {
                                                          bacappEncodeApplicationData2222222222222(buffer, value);
                                                        });
                                                        encodeClosingTag2222222222222(buffer, 2);
                                                        if (pValue.priority !== ASN1_NO_PRIORITY2222222222222) {
                                                          encodeContextUnsigned2222222222222(buffer, 3, pValue.priority);
                                                        }
                                                      });
                                                      encodeClosingTag2222222222222(buffer, 1);
                                                    };
                                                    var decode302222222222222 = (buffer, offset, apduLen) => {
                                                      let len = 0;
                                                      let result;
                                                      let decodedValue;
                                                      let objectId;
                                                      result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 0 || apduLen <= len) {
                                                        return void 0;
                                                      }
                                                      apduLen -= len;
                                                      if (apduLen < 4) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeObjectId2222222222222(buffer, offset + len);
                                                      len += decodedValue.len;
                                                      objectId = {
                                                        type: decodedValue.objectType,
                                                        instance: decodedValue.instance
                                                      };
                                                      if (!decodeIsOpeningTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      const _values = [];
                                                      while (apduLen - len > 1) {
                                                        let newEntry = {};
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber !== 0) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeEnumerated2222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        let propertyId = decodedValue.value;
                                                        let arrayIndex = ASN1_ARRAY_ALL2222222222222;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber === 1) {
                                                          decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          arrayIndex = decodedValue.value;
                                                          result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                          len += result.len;
                                                        }
                                                        newEntry.property = { id: propertyId, index: arrayIndex };
                                                        if (result.tagNumber !== 2 || !decodeIsOpeningTag2222222222222(buffer, offset + len - 1)) {
                                                          return void 0;
                                                        }
                                                        const values = [];
                                                        while (len + offset <= buffer.length && !decodeIsClosingTag2222222222222(buffer, offset + len)) {
                                                          let value = bacappDecodeApplicationData2222222222222(
                                                            buffer,
                                                            offset + len,
                                                            apduLen + offset,
                                                            objectId.type,
                                                            propertyId
                                                          );
                                                          if (!value) {
                                                            return void 0;
                                                          }
                                                          len += value.len;
                                                          delete value.len;
                                                          values.push(value);
                                                        }
                                                        len++;
                                                        newEntry.value = values;
                                                        let priority = ASN1_NO_PRIORITY2222222222222;
                                                        result = decodeTagNumberAndValue2222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        if (result.tagNumber === 3) {
                                                          decodedValue = decodeUnsigned2222222222222(buffer, offset + len, result.value);
                                                          len += decodedValue.len;
                                                          priority = decodedValue.value;
                                                        } else {
                                                          len--;
                                                        }
                                                        newEntry.priority = priority;
                                                        _values.push(newEntry);
                                                        if (decodeIsClosingTagNumber2222222222222(buffer, offset + len, 1)) {
                                                          len++;
                                                        }
                                                      }
                                                      if (decodeIsClosingTagNumber2222222222222(buffer, offset + len, 1)) {
                                                        len++;
                                                      }
                                                      return {
                                                        len,
                                                        objectId,
                                                        values: _values
                                                      };
                                                    };
                                                    var encodeObject2222222222222 = (buffer, values) => {
                                                      values.forEach((object) => {
                                                        encode302222222222222(buffer, object.objectId, object.values);
                                                      });
                                                    };
                                                    var getDecodedType2222222222222 = (buffer, offset) => {
                                                      return buffer[offset];
                                                    };
                                                    var encodeConfirmedServiceRequest2222222222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                                                      buffer.buffer[buffer.offset++] = type;
                                                      buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                                                      buffer.buffer[buffer.offset++] = invokeId;
                                                      if ((type & 8) > 0) {
                                                        buffer.buffer[buffer.offset++] = sequencenumber;
                                                        buffer.buffer[buffer.offset++] = proposedWindowSize;
                                                      }
                                                      buffer.buffer[buffer.offset++] = service;
                                                    };
                                                    var decodeConfirmedServiceRequest2222222222222 = (buffer, offset) => {
                                                      const orgOffset = offset;
                                                      const type = buffer[offset++];
                                                      const maxSegments = buffer[offset] & 240;
                                                      const maxApdu = buffer[offset++] & 15;
                                                      const invokeId = buffer[offset++];
                                                      let sequencenumber = 0;
                                                      let proposedWindowNumber = 0;
                                                      if ((type & 8) > 0) {
                                                        sequencenumber = buffer[offset++];
                                                        proposedWindowNumber = buffer[offset++];
                                                      }
                                                      const service = buffer[offset++];
                                                      return {
                                                        len: offset - orgOffset,
                                                        type,
                                                        service,
                                                        maxSegments,
                                                        maxApdu,
                                                        invokeId,
                                                        sequencenumber,
                                                        proposedWindowNumber
                                                      };
                                                    };
                                                    var encodeUnconfirmedServiceRequest2222222222222 = (buffer, type, service) => {
                                                      buffer.buffer[buffer.offset++] = type;
                                                      buffer.buffer[buffer.offset++] = service;
                                                    };
                                                    var decodeUnconfirmedServiceRequest2222222222222 = (buffer, offset) => {
                                                      const orgOffset = offset;
                                                      const type = buffer[offset++];
                                                      const service = buffer[offset++];
                                                      return {
                                                        len: offset - orgOffset,
                                                        type,
                                                        service
                                                      };
                                                    };
                                                    var encodeSimpleAck2222222222222 = (buffer, type, service, invokeId) => {
                                                      buffer.buffer[buffer.offset++] = type;
                                                      buffer.buffer[buffer.offset++] = invokeId;
                                                      buffer.buffer[buffer.offset++] = service;
                                                    };
                                                    var decodeSimpleAck2222222222222 = (buffer, offset) => {
                                                      const orgOffset = offset;
                                                      const type = buffer[offset++];
                                                      const invokeId = buffer[offset++];
                                                      const service = buffer[offset++];
                                                      return {
                                                        len: offset - orgOffset,
                                                        type,
                                                        service,
                                                        invokeId
                                                      };
                                                    };
                                                    var encodeComplexAck2222222222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                                                      let len = 3;
                                                      buffer.buffer[buffer.offset++] = type;
                                                      buffer.buffer[buffer.offset++] = invokeId;
                                                      if ((type & 8) > 0) {
                                                        buffer.buffer[buffer.offset++] = sequencenumber;
                                                        buffer.buffer[buffer.offset++] = proposedWindowNumber;
                                                        len += 2;
                                                      }
                                                      buffer.buffer[buffer.offset++] = service;
                                                      return len;
                                                    };
                                                    var decodeComplexAck2222222222222 = (buffer, offset) => {
                                                      const orgOffset = offset;
                                                      const type = buffer[offset++];
                                                      const invokeId = buffer[offset++];
                                                      let sequencenumber = 0;
                                                      let proposedWindowNumber = 0;
                                                      if ((type & 8) > 0) {
                                                        sequencenumber = buffer[offset++];
                                                        proposedWindowNumber = buffer[offset++];
                                                      }
                                                      const service = buffer[offset++];
                                                      return {
                                                        len: offset - orgOffset,
                                                        type,
                                                        service,
                                                        invokeId,
                                                        sequencenumber,
                                                        proposedWindowNumber
                                                      };
                                                    };
                                                    var encodeSegmentAck2222222222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                                                      buffer.buffer[buffer.offset++] = type;
                                                      buffer.buffer[buffer.offset++] = originalInvokeId;
                                                      buffer.buffer[buffer.offset++] = sequencenumber;
                                                      buffer.buffer[buffer.offset++] = actualWindowSize;
                                                    };
                                                    var decodeSegmentAck2222222222222 = (buffer, offset) => {
                                                      const orgOffset = offset;
                                                      const type = buffer[offset++];
                                                      const originalInvokeId = buffer[offset++];
                                                      const sequencenumber = buffer[offset++];
                                                      const actualWindowSize = buffer[offset++];
                                                      return {
                                                        len: offset - orgOffset,
                                                        type,
                                                        originalInvokeId,
                                                        sequencenumber,
                                                        actualWindowSize
                                                      };
                                                    };
                                                    var encodeResult2222222222222 = (buffer, resultCode) => {
                                                      encodeUnsigned2222222222222(buffer, resultCode, 2);
                                                    };
                                                    var encodeError2222222222222 = (buffer, type, service, invokeId) => {
                                                      buffer.buffer[buffer.offset++] = type;
                                                      buffer.buffer[buffer.offset++] = invokeId;
                                                      buffer.buffer[buffer.offset++] = service;
                                                    };
                                                    var decodeError2222222222222 = (buffer, offset) => {
                                                      const orgOffset = offset;
                                                      const type = buffer[offset++];
                                                      const invokeId = buffer[offset++];
                                                      const service = buffer[offset++];
                                                      return {
                                                        len: offset - orgOffset,
                                                        type,
                                                        service,
                                                        invokeId
                                                      };
                                                    };
                                                    var decodeAbort2222222222222 = (buffer, offset) => {
                                                      const orgOffset = offset;
                                                      const type = buffer[offset++];
                                                      const invokeId = buffer[offset++];
                                                      const reason = buffer[offset++];
                                                      return {
                                                        len: offset - orgOffset,
                                                        type,
                                                        invokeId,
                                                        reason
                                                      };
                                                    };
                                                    var DEFAULT_HOP_COUNT3222222222222 = 255;
                                                    var BACNET_PROTOCOL_VERSION2222222222222 = 1;
                                                    var BACNET_ADDRESS_TYPES2222222222222 = {
                                                      NONE: 0,
                                                      IP: 1
                                                    };
                                                    var decodeTarget2222222222222 = (buffer, offset) => {
                                                      let len = 0;
                                                      const target = {
                                                        type: BACNET_ADDRESS_TYPES2222222222222.NONE,
                                                        net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                                                      };
                                                      const adrLen = buffer[offset + len++];
                                                      if (adrLen > 0) {
                                                        target.adr = [];
                                                        for (let i = 0; i < adrLen; i++) {
                                                          target.adr.push(buffer[offset + len++]);
                                                        }
                                                      }
                                                      return {
                                                        target,
                                                        len
                                                      };
                                                    };
                                                    var encodeTarget2222222222222 = (buffer, target) => {
                                                      buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                                                      buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                                                      if (target.net === 65535 || !target.adr) {
                                                        buffer.buffer[buffer.offset++] = 0;
                                                      } else {
                                                        buffer.buffer[buffer.offset++] = target.adr.length;
                                                        if (target.adr.length > 0) {
                                                          for (let i = 0; i < target.adr.length; i++) {
                                                            buffer.buffer[buffer.offset++] = target.adr[i];
                                                          }
                                                        }
                                                      }
                                                    };
                                                    var decode312222222222222 = (buffer, offset) => {
                                                      let adrLen;
                                                      const orgOffset = offset;
                                                      offset++;
                                                      const funct = buffer[offset++];
                                                      let destination;
                                                      if (funct & 32) {
                                                        const tmpDestination = decodeTarget2222222222222(buffer, offset);
                                                        offset += tmpDestination.len;
                                                        destination = tmpDestination.target;
                                                      }
                                                      let source;
                                                      if (funct & 8) {
                                                        const tmpSource = decodeTarget2222222222222(buffer, offset);
                                                        offset += tmpSource.len;
                                                        source = tmpSource.target;
                                                      }
                                                      let hopCount = 0;
                                                      if (funct & 32) {
                                                        hopCount = buffer[offset++];
                                                      }
                                                      let networkMsgType = 0;
                                                      let vendorId = 0;
                                                      if (funct & 128) {
                                                        networkMsgType = buffer[offset++];
                                                        if (networkMsgType >= 128) {
                                                          vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                                                        } else if (networkMsgType === 0) {
                                                          offset += 2;
                                                        }
                                                      }
                                                      if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION2222222222222) {
                                                        return void 0;
                                                      }
                                                      return {
                                                        len: offset - orgOffset,
                                                        funct,
                                                        destination,
                                                        source,
                                                        hopCount,
                                                        networkMsgType,
                                                        vendorId
                                                      };
                                                    };
                                                    var encode312222222222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                                                      const hasDestination = destination && destination.net > 0;
                                                      const hasSource = source && source.net > 0 && source.net !== 65535;
                                                      buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION2222222222222;
                                                      buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                                                      if (hasDestination) {
                                                        encodeTarget2222222222222(buffer, destination);
                                                      }
                                                      if (hasSource) {
                                                        encodeTarget2222222222222(buffer, source);
                                                      }
                                                      if (hasDestination) {
                                                        buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT3222222222222;
                                                      }
                                                      if ((funct & 128) > 0) {
                                                        buffer.buffer[buffer.offset++] = networkMsgType;
                                                        if (networkMsgType >= 128) {
                                                          buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                                                          buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                                                        }
                                                      }
                                                    };
                                                    var DEFAULT_BACNET_PORT22222222222222 = 47808;
                                                    var encode322222222222222 = (buffer, func, msgLength, originatingIP) => {
                                                      buffer[0] = BVLL_TYPE_BACNET_IP2222222222222;
                                                      buffer[1] = func;
                                                      buffer[2] = (msgLength & 65280) >> 8;
                                                      buffer[3] = (msgLength & 255) >> 0;
                                                      if (originatingIP) {
                                                        if (func !== 4) {
                                                          throw new Error(
                                                            "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                                                          );
                                                        }
                                                        const [ipstr, portstr] = originatingIP.split(":");
                                                        const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT22222222222222;
                                                        const ip = ipstr.split(".");
                                                        buffer[4] = parseInt(ip[0], 10);
                                                        buffer[5] = parseInt(ip[1], 10);
                                                        buffer[6] = parseInt(ip[2], 10);
                                                        buffer[7] = parseInt(ip[3], 10);
                                                        buffer[8] = (port & 65280) >> 8;
                                                        buffer[9] = (port & 255) >> 0;
                                                        return 6 + BVLC_HEADER_LENGTH3222222222222;
                                                      } else {
                                                        if (func === 4) {
                                                          throw new Error(
                                                            "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                                                          );
                                                        }
                                                      }
                                                      return BVLC_HEADER_LENGTH3222222222222;
                                                    };
                                                    var decode322222222222222 = (buffer, _offset) => {
                                                      let len;
                                                      const func = buffer[1];
                                                      const msgLength = buffer[2] << 8 | buffer[3] << 0;
                                                      if (buffer[0] !== BVLL_TYPE_BACNET_IP2222222222222 || buffer.length !== msgLength) {
                                                        return void 0;
                                                      }
                                                      let originatingIP = null;
                                                      switch (func) {
                                                        case 0:
                                                        case 10:
                                                        case 11:
                                                        case 9:
                                                        case 5:
                                                        case 6:
                                                        case 8:
                                                        case 2:
                                                        case 1:
                                                        case 3:
                                                        case 7:
                                                          len = 4;
                                                          break;
                                                        case 4:
                                                          const port = buffer[8] << 8 | buffer[9];
                                                          originatingIP = buffer.slice(4, 8).join(".");
                                                          if (port !== DEFAULT_BACNET_PORT22222222222222) {
                                                            originatingIP += ":" + port;
                                                          }
                                                          len = 10;
                                                          break;
                                                        case 12:
                                                          return void 0;
                                                        default:
                                                          return void 0;
                                                      }
                                                      return {
                                                        len,
                                                        func,
                                                        msgLength,
                                                        // Originating IP is set to the IP address of the node that originally
                                                        // sent the packet, when it has been forwarded to us by a BBMD (since the
                                                        // BBMD's IP address will be in the sender field.
                                                        originatingIP
                                                      };
                                                    };
                                                    var EventEmitter22222222222222 = import_events22222222222222.default.EventEmitter;
                                                    var debug32222222222222 = (0, import_debug32222222222222.default)("bacnet:client:debug");
                                                    var trace22222222222222 = (0, import_debug32222222222222.default)("bacnet:client:trace");
                                                    var ALL_INTERFACES2222222222222 = "0.0.0.0";
                                                    var LOCALHOST_INTERFACES_IPV42222222222222 = "127.0.0.1";
                                                    var BROADCAST_ADDRESS2222222222222 = "255.255.255.255";
                                                    var DEFAULT_HOP_COUNT22222222222222 = 255;
                                                    var BVLC_HEADER_LENGTH22222222222222 = 4;
                                                    var BVLC_FWD_HEADER_LENGTH2222222222222 = 10;
                                                    var beU2222222222222 = UnconfirmedServiceChoice2222222222222;
                                                    var unconfirmedServiceMap2222222222222 = {
                                                      [beU2222222222222.I_AM]: "iAm",
                                                      [beU2222222222222.WHO_IS]: "whoIs",
                                                      [beU2222222222222.WHO_HAS]: "whoHas",
                                                      [beU2222222222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                                                      [beU2222222222222.TIME_SYNCHRONIZATION]: "timeSync",
                                                      [beU2222222222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                                                      [beU2222222222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                      [beU2222222222222.I_HAVE]: "iHave",
                                                      [beU2222222222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                    };
                                                    var beC2222222222222 = ConfirmedServiceChoice2222222222222;
                                                    var confirmedServiceMap2222222222222 = {
                                                      [beC2222222222222.READ_PROPERTY]: "readProperty",
                                                      [beC2222222222222.WRITE_PROPERTY]: "writeProperty",
                                                      [beC2222222222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                                                      [beC2222222222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                                                      [beC2222222222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                                                      [beC2222222222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                                                      [beC2222222222222.ATOMIC_READ_FILE]: "atomicReadFile",
                                                      [beC2222222222222.SUBSCRIBE_COV]: "subscribeCov",
                                                      [beC2222222222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                                                      [beC2222222222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                                                      [beC2222222222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                                                      [beC2222222222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                      [beC2222222222222.READ_RANGE]: "readRange",
                                                      [beC2222222222222.CREATE_OBJECT]: "createObject",
                                                      [beC2222222222222.DELETE_OBJECT]: "deleteObject",
                                                      [beC2222222222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                                                      [beC2222222222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                                                      [beC2222222222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                                                      [beC2222222222222.GET_EVENT_INFORMATION]: "getEventInformation",
                                                      [beC2222222222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                                                      [beC2222222222222.ADD_LIST_ELEMENT]: "addListElement",
                                                      [beC2222222222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                                                      [beC2222222222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                    };
                                                    var errorReasonEnums2222222222222 = {
                                                      BacnetAbort: RejectReason2222222222222
                                                    };
                                                    var BacnetError2222222222222 = class extends Error {
                                                      constructor(message, bacnetErrorClass, bacnetErrorCode) {
                                                        super(message);
                                                        this.bacnetErrorClass = bacnetErrorClass;
                                                        this.bacnetErrorCode = bacnetErrorCode;
                                                      }
                                                    };
                                                    function bacnetErrorToString2222222222222(err) {
                                                      var _a;
                                                      const isError = err instanceof Error || err instanceof BacnetError2222222222222;
                                                      if (!isError)
                                                        return;
                                                      const message = err.message;
                                                      const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                                                      const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                                                      if (!errorReasonEnums2222222222222[reasonClass])
                                                        return;
                                                      const reasonString = errorReasonEnums2222222222222[reasonClass][reason];
                                                      return reasonClass + ": " + reasonString;
                                                    }
                                                    var Client2222222222222 = class extends EventEmitter22222222222222 {
                                                      /**
                                                       *
                                                       * @param options
                                                       */
                                                      constructor(options) {
                                                        super();
                                                        options = options || {};
                                                        this._invokeCounter = 1;
                                                        this._invokeStore = {};
                                                        this._lastSequenceNumber = 0;
                                                        this._segmentStore = [];
                                                        this._settings = {
                                                          port: options.port || 47808,
                                                          interface: options.interface || ALL_INTERFACES2222222222222,
                                                          transport: options.transport,
                                                          broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS2222222222222,
                                                          apduTimeout: options.apduTimeout || 3e3
                                                        };
                                                        options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                                                        this._transport = this._settings.transport || new Transport2222222222222({
                                                          port: this._settings.port,
                                                          interface: this._settings.interface,
                                                          broadcastAddress: this._settings.broadcastAddress,
                                                          reuseAddr: options.reuseAddr
                                                        });
                                                        this._transport.on("message", this._receiveData.bind(this));
                                                        this._transport.on("error", this._receiveError.bind(this));
                                                        this._transport.on("listening", () => this.emit("listening"));
                                                        this._transport.open();
                                                      }
                                                      /**
                                                       *
                                                       * @returns {number}
                                                       * @private
                                                       */
                                                      _getInvokeId() {
                                                        const id = this._invokeCounter++;
                                                        if (id >= 256)
                                                          this._invokeCounter = 1;
                                                        return id - 1;
                                                      }
                                                      /**
                                                       *
                                                       * @param id
                                                       * @param err
                                                       * @param result
                                                       * @returns {*}
                                                       * @private
                                                       */
                                                      _invokeCallback(id, err, result) {
                                                        const callback = this._invokeStore[id];
                                                        if (callback) {
                                                          return void callback(err, result);
                                                        }
                                                        debug32222222222222("InvokeId", id, "not found -> drop package");
                                                      }
                                                      /**
                                                       *
                                                       * @param id
                                                       * @param callback
                                                       * @private
                                                       */
                                                      _addCallback(id, callback) {
                                                        const timeout = setTimeout(() => {
                                                          delete this._invokeStore[id];
                                                          callback(new Error("ERR_TIMEOUT"));
                                                        }, this._settings.apduTimeout);
                                                        this._invokeStore[id] = (err, data) => {
                                                          clearTimeout(timeout);
                                                          delete this._invokeStore[id];
                                                          callback(err, data);
                                                        };
                                                      }
                                                      /**
                                                       *
                                                       * @param isForwarded
                                                       * @returns {{offset: (number), buffer: *}}
                                                       * @private
                                                       */
                                                      _getBuffer(isForwarded) {
                                                        return Object.assign(
                                                          {},
                                                          {
                                                            buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                                            offset: isForwarded ? BVLC_FWD_HEADER_LENGTH2222222222222 : BVLC_HEADER_LENGTH22222222222222
                                                          }
                                                        );
                                                      }
                                                      /**
                                                       *
                                                       * @param invokeId
                                                       * @param buffer
                                                       * @param offset
                                                       * @param length
                                                       * @returns {*}
                                                       * @private
                                                       */
                                                      _processError(invokeId, buffer, offset, length) {
                                                        const result = error_exports2222222222222.decode(buffer, offset);
                                                        trace22222222222222("Received error:", result);
                                                        if (!result) {
                                                          return debug32222222222222("Couldn`t decode Error");
                                                        }
                                                        const err = new BacnetError2222222222222(error_exports2222222222222.buildMessage(result));
                                                        err.bacnetErrorClass = result.class;
                                                        err.bacnetErrorCode = result.code;
                                                        this._invokeCallback(invokeId, err);
                                                      }
                                                      /**
                                                       *
                                                       * @param invokeId
                                                       * @param reason
                                                       * @private
                                                       */
                                                      _processAbort(invokeId, reason) {
                                                        const err = new BacnetError2222222222222("BacnetAbort - Reason:" + reason);
                                                        err.bacnetAbortReason = reason;
                                                        err.bacnetErrorClass = AbortReason2222222222222;
                                                        this._invokeCallback(invokeId, err);
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param negative
                                                       * @param server
                                                       * @param originalInvokeId
                                                       * @param sequencenumber
                                                       * @param actualWindowSize
                                                       * @private
                                                       */
                                                      _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                                                        const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                        encode312222222222222(
                                                          buffer,
                                                          0,
                                                          receiver,
                                                          null,
                                                          DEFAULT_HOP_COUNT22222222222222,
                                                          0,
                                                          0
                                                        );
                                                        encodeSegmentAck2222222222222(
                                                          buffer,
                                                          64 | (negative ? 2 : 0) | (server ? 1 : 0),
                                                          originalInvokeId,
                                                          sequencenumber,
                                                          actualWindowSize
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                      }
                                                      /**
                                                       *
                                                       * @param msg
                                                       * @param first
                                                       * @param moreFollows
                                                       * @param buffer
                                                       * @param offset
                                                       * @param length
                                                       * @private
                                                       */
                                                      _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                                                        if (first) {
                                                          this._segmentStore = [];
                                                          msg.type &= ~8;
                                                          let apduHeaderLen = 3;
                                                          if ((msg.type & PDU_TYPE_MASK2222222222222) === 0) {
                                                            apduHeaderLen = 4;
                                                          }
                                                          const apdubuffer = this._getBuffer();
                                                          apdubuffer.offset = 0;
                                                          buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                                                          if ((msg.type & PDU_TYPE_MASK2222222222222) === 0) {
                                                            encodeConfirmedServiceRequest2222222222222(
                                                              apdubuffer,
                                                              msg.type,
                                                              msg.service,
                                                              msg.maxSegments,
                                                              msg.maxApdu,
                                                              msg.invokeId,
                                                              0,
                                                              0
                                                            );
                                                          } else {
                                                            encodeComplexAck2222222222222(
                                                              apdubuffer,
                                                              msg.type,
                                                              msg.service,
                                                              msg.invokeId,
                                                              0,
                                                              0
                                                            );
                                                          }
                                                          this._segmentStore.push(
                                                            //@ts-ignore
                                                            apdubuffer.buffer.slice(0, length + apduHeaderLen)
                                                          );
                                                        } else {
                                                          this._segmentStore.push(buffer.slice(offset, offset + length));
                                                        }
                                                        if (!moreFollows) {
                                                          const apduBuffer = Buffer.concat(this._segmentStore);
                                                          this._segmentStore = [];
                                                          msg.type &= ~8;
                                                          this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                                                        }
                                                      }
                                                      /**
                                                       *
                                                       * @param msg
                                                       * @param server
                                                       * @param buffer
                                                       * @param offset
                                                       * @param length
                                                       * @private
                                                       */
                                                      _processSegment(msg, server, buffer, offset, length) {
                                                        let first = false;
                                                        if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                                                          first = true;
                                                        } else {
                                                          if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                                            return this._segmentAckResponse(
                                                              msg.header.address,
                                                              true,
                                                              server,
                                                              msg.invokeId,
                                                              this._lastSequenceNumber,
                                                              msg.proposedWindowNumber
                                                            );
                                                          }
                                                        }
                                                        this._lastSequenceNumber = msg.sequencenumber;
                                                        const moreFollows = msg.type & 4;
                                                        if (!moreFollows) {
                                                          this._lastSequenceNumber = 0;
                                                        }
                                                        if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                                                          this._segmentAckResponse(
                                                            msg.header.address,
                                                            false,
                                                            server,
                                                            msg.invokeId,
                                                            msg.sequencenumber,
                                                            msg.proposedWindowNumber
                                                          );
                                                        }
                                                        this._performDefaultSegmentHandling(
                                                          msg,
                                                          first,
                                                          moreFollows,
                                                          buffer,
                                                          offset,
                                                          length
                                                        );
                                                      }
                                                      /**
                                                       *
                                                       * @param serviceMap
                                                       * @param content
                                                       * @param buffer
                                                       * @param offset
                                                       * @param length
                                                       * @returns {*}
                                                       * @private
                                                       */
                                                      _processServiceRequest(serviceMap, content, buffer, offset, length) {
                                                        let result;
                                                        const sender = content.header.sender;
                                                        if (sender.address === LOCALHOST_INTERFACES_IPV42222222222222) {
                                                          debug32222222222222("Received and skipped localhost service request:", content.service);
                                                          return;
                                                        }
                                                        const name = serviceMap[content.service];
                                                        if (!name) {
                                                          debug32222222222222("Received unsupported service request:", content.service);
                                                          return;
                                                        }
                                                        const id = content.invokeId ? "@" + content.invokeId : "";
                                                        trace22222222222222(`Received service request${id}:`, name);
                                                        const serviceHandler = services_exports2222222222222[name];
                                                        if (serviceHandler) {
                                                          try {
                                                            content.payload = serviceHandler.decode(buffer, offset, length);
                                                            trace22222222222222(`Handled service request${id}:`, name, JSON.stringify(content));
                                                          } catch (e) {
                                                            debug32222222222222("Exception thrown when processing message:", e);
                                                            debug32222222222222("Original message was", name + ":", content);
                                                            return;
                                                          }
                                                          if (!content.payload) {
                                                            return debug32222222222222("Received invalid", name, "message");
                                                          }
                                                        } else {
                                                          debug32222222222222("No serviceHandler defined for:", name);
                                                        }
                                                        if (this.listenerCount(name)) {
                                                          trace22222222222222("listener count by name emits " + name + " with content");
                                                          this.emit(name, content);
                                                        } else {
                                                          if (this.listenerCount("unhandledEvent")) {
                                                            trace22222222222222("unhandled event emiting with content");
                                                            this.emit("unhandledEvent", content);
                                                          } else {
                                                            trace22222222222222(
                                                              "no unhandled event handler with header: " + JSON.stringify(content.header)
                                                            );
                                                            if (content.header.expectingReply) {
                                                              debug32222222222222("Replying with error for unhandled service:", name);
                                                              content.header.sender.forwardedFrom = null;
                                                              this.errorResponse(
                                                                content.header.sender,
                                                                content.service,
                                                                content.invokeId,
                                                                5,
                                                                67
                                                                /* REJECT_UNRECOGNIZED_SERVICE */
                                                              );
                                                            }
                                                          }
                                                        }
                                                      }
                                                      /**
                                                       *
                                                       * @param buffer
                                                       * @param offset
                                                       * @param length
                                                       * @param header
                                                       * @private
                                                       */
                                                      _handlePdu(buffer, offset, length, header) {
                                                        let msg;
                                                        trace22222222222222("handlePdu Header: ", header);
                                                        switch (header.apduType & PDU_TYPE_MASK2222222222222) {
                                                          case 16:
                                                            msg = decodeUnconfirmedServiceRequest2222222222222(buffer, offset);
                                                            msg.header = header;
                                                            msg.header.confirmedService = false;
                                                            this._processServiceRequest(
                                                              unconfirmedServiceMap2222222222222,
                                                              msg,
                                                              buffer,
                                                              offset + msg.len,
                                                              length - msg.len
                                                            );
                                                            break;
                                                          case 32:
                                                            msg = decodeSimpleAck2222222222222(buffer, offset);
                                                            offset += msg.len;
                                                            length -= msg.len;
                                                            this._invokeCallback(msg.invokeId, null, {
                                                              msg,
                                                              buffer,
                                                              offset: offset + msg.len,
                                                              length: length - msg.len
                                                            });
                                                            break;
                                                          case 48:
                                                            msg = decodeComplexAck2222222222222(buffer, offset);
                                                            msg.header = header;
                                                            if ((header.apduType & 8) === 0) {
                                                              this._invokeCallback(msg.invokeId, null, {
                                                                msg,
                                                                buffer,
                                                                offset: offset + msg.len,
                                                                length: length - msg.len
                                                              });
                                                            } else {
                                                              this._processSegment(
                                                                msg,
                                                                true,
                                                                buffer,
                                                                offset + msg.len,
                                                                length - msg.len
                                                              );
                                                            }
                                                            break;
                                                          case 64:
                                                            msg = decodeSegmentAck2222222222222(buffer, offset);
                                                            msg.header = header;
                                                            this._processSegment(
                                                              msg,
                                                              true,
                                                              buffer,
                                                              offset + msg.len,
                                                              length - msg.len
                                                            );
                                                            break;
                                                          case 80:
                                                            msg = decodeError2222222222222(buffer, offset);
                                                            this._processError(
                                                              msg.invokeId,
                                                              buffer,
                                                              offset + msg.len,
                                                              length - msg.len
                                                            );
                                                            break;
                                                          case 96:
                                                          case 112:
                                                            msg = decodeAbort2222222222222(buffer, offset);
                                                            this._processAbort(msg.invokeId, msg.reason);
                                                            break;
                                                          case 0:
                                                            msg = decodeConfirmedServiceRequest2222222222222(buffer, offset);
                                                            msg.header = header;
                                                            msg.header.confirmedService = true;
                                                            if ((header.apduType & 8) === 0) {
                                                              this._processServiceRequest(
                                                                confirmedServiceMap2222222222222,
                                                                msg,
                                                                buffer,
                                                                offset + msg.len,
                                                                length - msg.len
                                                              );
                                                            } else {
                                                              this._processSegment(
                                                                msg,
                                                                true,
                                                                buffer,
                                                                offset + msg.len,
                                                                length - msg.len
                                                              );
                                                            }
                                                            break;
                                                          default:
                                                            debug32222222222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                                            break;
                                                        }
                                                      }
                                                      /**
                                                       *
                                                       * @param buffer
                                                       * @param offset
                                                       * @param msgLength
                                                       * @param header
                                                       * @returns {*}
                                                       * @private
                                                       */
                                                      _handleNpdu(buffer, offset, msgLength, header) {
                                                        if (msgLength <= 0) {
                                                          return trace22222222222222("No NPDU data -> Drop package");
                                                        }
                                                        const result = decode312222222222222(buffer, offset);
                                                        if (!result) {
                                                          return trace22222222222222("Received invalid NPDU header -> Drop package");
                                                        }
                                                        if (result.funct & 128) {
                                                          return trace22222222222222("Received network layer message -> Drop package");
                                                        }
                                                        offset += result.len;
                                                        msgLength -= result.len;
                                                        if (msgLength <= 0) {
                                                          return trace22222222222222("No APDU data -> Drop package");
                                                        }
                                                        header.apduType = getDecodedType2222222222222(buffer, offset);
                                                        header.expectingReply = !!(result.funct & 4);
                                                        this._handlePdu(buffer, offset, msgLength, header);
                                                      }
                                                      /**
                                                       *
                                                       * @param buffer
                                                       * @param remoteAddress
                                                       * @returns {*}
                                                       * @private
                                                       */
                                                      _receiveData(buffer, remoteAddress) {
                                                        if (buffer.length < BVLC_HEADER_LENGTH3222222222222) {
                                                          return trace22222222222222("Received invalid data -> Drop package");
                                                        }
                                                        const result = decode322222222222222(buffer, 0);
                                                        if (!result) {
                                                          return trace22222222222222("Received invalid BVLC header -> Drop package");
                                                        }
                                                        let header = {
                                                          // Which function the packet came in on, so later code can distinguish
                                                          // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                                                          func: result.func,
                                                          sender: {
                                                            // Address of the host we are directly connected to. String, IP:port.
                                                            address: remoteAddress,
                                                            // If the host is a BBMD passing messages along to another node, this
                                                            // is the address of the distant BACnet node.  String, IP:port.
                                                            // Typically we won't have network connectivity to this address, but
                                                            // we have to include it in replies so the host we are connect to knows
                                                            // where to forward the messages.
                                                            forwardedFrom: null
                                                          }
                                                        };
                                                        switch (result.func) {
                                                          case 10:
                                                          case 11:
                                                            this._handleNpdu(
                                                              buffer,
                                                              result.len,
                                                              buffer.length - result.len,
                                                              header
                                                            );
                                                            break;
                                                          case 4:
                                                            header.sender.forwardedFrom = result.originatingIP;
                                                            this._handleNpdu(
                                                              buffer,
                                                              result.len,
                                                              buffer.length - result.len,
                                                              header
                                                            );
                                                            break;
                                                          case 5:
                                                            let decodeResult = register_foreign_device_exports2222222222222.decode(
                                                              buffer,
                                                              result.len,
                                                              buffer.length - result.len
                                                            );
                                                            if (!decodeResult) {
                                                              return trace22222222222222("Received invalid registerForeignDevice message");
                                                            }
                                                            this.emit("registerForeignDevice", {
                                                              header,
                                                              payload: decodeResult
                                                            });
                                                            break;
                                                          case 9:
                                                            this._handleNpdu(
                                                              buffer,
                                                              result.len,
                                                              buffer.length - result.len,
                                                              header
                                                            );
                                                            break;
                                                          default:
                                                            debug32222222222222(
                                                              "Received unknown BVLC function " + result.func + " -> Drop package"
                                                            );
                                                            break;
                                                        }
                                                      }
                                                      /**
                                                       * @event bacnet.error
                                                       * @param {error} err - The error object thrown by the underlying transport layer.
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * client.on('error', (err) => {
                                                       *   console.log('Error occurred: ', err);
                                                       *   client.close();
                                                       * });
                                                       */
                                                      _receiveError(err) {
                                                        this.emit("error", err);
                                                      }
                                                      /**
                                                       * The whoIs command discovers all BACNET devices in a network.
                                                       * @function bacnet.whoIs
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {object=} options
                                                       * @param {number=} options.lowLimit - Minimal device instance number to search for.
                                                       * @param {number=} options.highLimit - Maximal device instance number to search for.
                                                       * @fires bacnet.iAm
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * client.whoIs();
                                                       */
                                                      whoIs(receiver, options) {
                                                        if (!options) {
                                                          if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                                            options = receiver;
                                                            receiver = void 0;
                                                          }
                                                        }
                                                        options = options || {};
                                                        const settings = {
                                                          lowLimit: options.lowLimit,
                                                          highLimit: options.highLimit
                                                        };
                                                        const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                        encode312222222222222(
                                                          buffer,
                                                          0,
                                                          //@ts-ignore
                                                          receiver,
                                                          null,
                                                          DEFAULT_HOP_COUNT22222222222222,
                                                          0,
                                                          0
                                                        );
                                                        encodeUnconfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          16,
                                                          8
                                                          /* WHO_IS */
                                                        );
                                                        who_is_exports2222222222222.encode(buffer, settings.lowLimit, settings.highLimit);
                                                        this.sendBvlc(receiver, buffer);
                                                      }
                                                      /**
                                                       * The timeSync command sets the time of a target device.
                                                       * @function bacnet.timeSync
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {date} dateTime - The date and time to set on the target device.
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * client.timeSync('192.168.1.43', new Date());
                                                       */
                                                      timeSync(receiver, dateTime) {
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(buffer, 0, receiver);
                                                        encodeUnconfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          16,
                                                          6
                                                          /* TIME_SYNCHRONIZATION */
                                                        );
                                                        time_sync_exports2222222222222.encode(buffer, dateTime);
                                                        this.sendBvlc(receiver, buffer);
                                                      }
                                                      /**
                                                       * The timeSyncUTC command sets the UTC time of a target device.
                                                       * @function bacnet.timeSyncUTC
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {date} dateTime - The date and time to set on the target device.
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * client.timeSyncUTC('192.168.1.43', new Date());
                                                       */
                                                      timeSyncUTC(receiver, dateTime) {
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(buffer, 0, receiver);
                                                        encodeUnconfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          16,
                                                          9
                                                          /* UTC_TIME_SYNCHRONIZATION */
                                                        );
                                                        time_sync_exports2222222222222.encode(buffer, dateTime);
                                                        this.sendBvlc(receiver, buffer);
                                                      }
                                                      /**
                                                       * The readProperty command reads a single property of an object from a device.
                                                       * @function bacnet.readProperty
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {object} objectId - The BACNET object ID to read.
                                                       * @param {number} objectId.type - The BACNET object type to read.
                                                       * @param {number} objectId.instance - The BACNET object instance to read.
                                                       * @param {number} propertyId - The BACNET property id in the specified object to read.
                                                       * @param {object=} options
                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                       * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                                                       *   console.log('value: ', value);
                                                       * });
                                                       */
                                                      readProperty(receiver, objectId, propertyId, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId(),
                                                          arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL2222222222222
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          //@ts-ignore
                                                          receiver,
                                                          null,
                                                          DEFAULT_HOP_COUNT22222222222222,
                                                          0,
                                                          0
                                                        );
                                                        const type = 0 | //@ts-ignore
                                                        (settings.maxSegments !== 0 ? 2 : 0);
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          type,
                                                          12,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        read_property_exports2222222222222.encode(
                                                          buffer,
                                                          objectId.type,
                                                          objectId.instance,
                                                          propertyId,
                                                          settings.arrayIndex
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          const result = read_property_exports2222222222222.decodeAcknowledge(
                                                            data.buffer,
                                                            data.offset,
                                                            data.length
                                                          );
                                                          if (!result) {
                                                            return void next(new Error("INVALID_DECODING"));
                                                          }
                                                          next(null, result);
                                                        });
                                                      }
                                                      /**
                                                       * The writeProperty command writes a single property of an object to a device.
                                                       * @function bacnet.writeProperty
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {object} objectId - The BACNET object ID to write.
                                                       * @param {number} objectId.type - The BACNET object type to write.
                                                       * @param {number} objectId.instance - The BACNET object instance to write.
                                                       * @param {number} propertyId - The BACNET property id in the specified object to write.
                                                       * @param {object[]} values - A list of values to be written to the specified property.
                                                       * @param {ApplicationTag} values.type - The data-type of the value to be written.
                                                       * @param {number} values.value - The actual value to be written.
                                                       * @param {object=} options
                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                       * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                       * @param {number=} options.priority - The priority of the value to be written.
                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                                                       *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                                                       * ], (err, value) => {
                                                       *   console.log('value: ', value);
                                                       * });
                                                       */
                                                      writeProperty(receiver, objectId, propertyId, values, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId(),
                                                          arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL2222222222222,
                                                          priority: options.priority || ASN1_NO_PRIORITY2222222222222
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          //@ts-ignore Todo somehow types do not match at all
                                                          receiver,
                                                          null,
                                                          DEFAULT_HOP_COUNT22222222222222,
                                                          0,
                                                          0
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          15,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        write_property_exports2222222222222.encode(
                                                          buffer,
                                                          objectId.type,
                                                          objectId.instance,
                                                          propertyId,
                                                          settings.arrayIndex,
                                                          settings.priority,
                                                          values
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          next(err);
                                                        });
                                                      }
                                                      /**
                                                       * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                                                       * @function bacnet.readPropertyMultiple
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {object[]} propertiesArray - List of object and property specifications to be read.
                                                       * @param {object} propertiesArray.objectId - Specifies which object to read.
                                                       * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                                                       * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                                                       * @param {object[]} propertiesArray.properties - List of properties to be read.
                                                       * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                                                       * @param {object=} options
                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * const requestArray = [
                                                       *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                                                       * ];
                                                       * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                                                       *   console.log('value: ', value);
                                                       * });
                                                       */
                                                      readPropertyMultiple(receiver, propertiesArray, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                                                        const buffer = this._getBuffer(!!isForwarded);
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          //@ts-ignore Todo somehow types do not match at all
                                                          receiver,
                                                          null,
                                                          DEFAULT_HOP_COUNT22222222222222,
                                                          0,
                                                          0
                                                        );
                                                        const type = 0 | //@ts-ignore
                                                        (settings.maxSegments !== 0 ? 2 : 0);
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          type,
                                                          14,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        read_property_multiple_exports2222222222222.encode(buffer, propertiesArray);
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return next(err);
                                                          }
                                                          const result = read_property_multiple_exports2222222222222.decodeAcknowledge(
                                                            data.buffer,
                                                            data.offset,
                                                            data.length
                                                          );
                                                          if (!result) {
                                                            return next(new Error("INVALID_DECODING"));
                                                          }
                                                          next(null, result);
                                                        });
                                                      }
                                                      /**
                                                       * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                                                       * @function bacnet.writePropertyMultiple
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {object[]} values - List of object and property specifications to be written.
                                                       * @param {object} values.objectId - Specifies which object to read.
                                                       * @param {number} values.objectId.type - The BACNET object type to read.
                                                       * @param {number} values.objectId.instance - The BACNET object instance to read.
                                                       * @param {object[]} values.values - List of properties to be written.
                                                       * @param {object} values.values.property - Property specifications to be written.
                                                       * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                                                       * @param {number} values.values.property.index - The array index of the property to be written.
                                                       * @param {object[]} values.values.value - A list of values to be written to the specified property.
                                                       * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                                                       * @param {object} values.values.value.value - The actual value to be written.
                                                       * @param {number} values.values.priority - The priority to be used for writing to the property.
                                                       * @param {object=} options
                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * const values = [
                                                       *   {objectId: {type: 8, instance: 44301}, values: [
                                                       *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                                                       *   ]}
                                                       * ];
                                                       * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                                                       *   console.log('value: ', value);
                                                       * });
                                                       */
                                                      writePropertyMultiple(receiver, values, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          //@ts-ignore
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          16,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId
                                                        );
                                                        write_property_multiple_exports2222222222222.encodeObject(buffer, values);
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          next(err);
                                                        });
                                                      }
                                                      /**
                                                       * The confirmedCOVNotification command is used to push notifications to other
                                                       * systems that have registered with us via a subscribeCOV message.
                                                       * @function bacnet.confirmedCOVNotification
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                                                       * @param {number} monitoredObject.type - Object type.
                                                       * @param {number} monitoredObject.instance - Object instance.
                                                       * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                                                       * @param {number} initiatingDeviceId - Our BACnet device ID.
                                                       * @param {number} lifetime - Number of seconds left until the subscription expires.
                                                       * @param {array} values - values for the monitored object.  See example.
                                                       * @param {object=} options
                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * const settings = {deviceId: 123}; // our BACnet device
                                                       *
                                                       * // Items saved from subscribeCOV message
                                                       * const monitoredObject = {type: 1, instance: 1};
                                                       * const subscriberProcessId = 123;
                                                       *
                                                       * client.confirmedCOVNotification(
                                                       *   '192.168.1.43',
                                                       *   monitoredObject,
                                                       *   subscriberProcessId,
                                                       *   settings.deviceId,
                                                       *   30, // should be lifetime of subscription really
                                                       *   [
                                                       *     {
                                                       *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                                                       *       value: [
                                                       *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                                                       *       ],
                                                       *     },
                                                       *   ],
                                                       *   (err) => {
                                                       *     console.log('error: ', err);
                                                       *   }
                                                       * );
                                                       */
                                                      confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer();
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          1,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        cov_notify_exports2222222222222.encode(
                                                          buffer,
                                                          subscribeId,
                                                          initiatingDeviceId,
                                                          monitoredObject,
                                                          lifetime,
                                                          values
                                                        );
                                                        encode322222222222222(
                                                          buffer.buffer,
                                                          10,
                                                          buffer.offset
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          next();
                                                        });
                                                      }
                                                      /**
                                                       * The deviceCommunicationControl command enables or disables network communication of the target device.
                                                       * @function bacnet.deviceCommunicationControl
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                                                       * @param {EnableDisable} enableDisable - The network communication state to set.
                                                       * @param {object=} options
                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                       * @param {string=} options.password - The optional password used to set the network communication state.
                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                                                       *   console.log('error: ', err);
                                                       * });
                                                       */
                                                      deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId(),
                                                          password: options.password
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          17,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        device_communication_control_exports2222222222222.encode(
                                                          buffer,
                                                          timeDuration,
                                                          enableDisable,
                                                          settings.password
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          next(err);
                                                        });
                                                      }
                                                      /**
                                                       * The reinitializeDevice command initiates a restart of the target device.
                                                       * @function bacnet.reinitializeDevice
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {ReinitializedState} state - The type of restart to be initiated.
                                                       * @param {object=} options
                                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                       * @param {string=} options.password - The optional password used to restart the device.
                                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                                                       *   console.log('value: ', value);
                                                       * });
                                                       */
                                                      reinitializeDevice(receiver, state, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId(),
                                                          password: options.password
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          20,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        reinitialize_device_exports2222222222222.encode(buffer, state, settings.password);
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          next(err);
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param objectId
                                                       * @param position
                                                       * @param fileBuffer
                                                       * @param options
                                                       * @param next
                                                       */
                                                      writeFile(receiver, objectId, position, fileBuffer, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          7,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        atomic_write_file_exports2222222222222.encode(
                                                          buffer,
                                                          false,
                                                          objectId,
                                                          position,
                                                          fileBuffer
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          const result = atomic_write_file_exports2222222222222.decodeAcknowledge(
                                                            data.buffer,
                                                            data.offset,
                                                            data.length
                                                          );
                                                          if (!result) {
                                                            return void next(new Error("INVALID_DECODING"));
                                                          }
                                                          next(null, result);
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param objectId
                                                       * @param position
                                                       * @param count
                                                       * @param options
                                                       * @param next
                                                       */
                                                      readFile(receiver, objectId, position, count, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          6,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        atomic_read_file_exports2222222222222.encode(buffer, true, objectId, position, count);
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          const result = atomic_read_file_exports2222222222222.decodeAcknowledge(
                                                            data.buffer,
                                                            data.offset,
                                                            data.length
                                                          );
                                                          if (!result) {
                                                            return void next(new Error("INVALID_DECODING"));
                                                          }
                                                          next(null, result);
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param objectId
                                                       * @param idxBegin
                                                       * @param quantity
                                                       * @param options
                                                       * @param next
                                                       */
                                                      readRange(receiver, objectId, idxBegin, quantity, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          26,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        read_range_exports2222222222222.encode(
                                                          buffer,
                                                          objectId,
                                                          131,
                                                          ASN1_ARRAY_ALL2222222222222,
                                                          0,
                                                          idxBegin,
                                                          /* @__PURE__ */ new Date(),
                                                          quantity
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          const result = read_range_exports2222222222222.decodeAcknowledge(
                                                            data.buffer,
                                                            data.offset,
                                                            data.length
                                                          );
                                                          if (!result) {
                                                            return void next(new Error("INVALID_DECODING"));
                                                          }
                                                          next(null, result);
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param objectId
                                                       * @param subscribeId
                                                       * @param cancel
                                                       * @param issueConfirmedNotifications
                                                       * @param lifetime
                                                       * @param options
                                                       * @param next
                                                       */
                                                      subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                                                        const next = nextFunc || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          // @ts-ignore TODO types not matching with documentation and code
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          5,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        subscribe_cov_exports2222222222222.encode(
                                                          buffer,
                                                          subscribeId,
                                                          objectId,
                                                          cancel,
                                                          issueConfirmedNotifications,
                                                          lifetime
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          next();
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param objectId
                                                       * @param monitoredProperty
                                                       * @param subscribeId
                                                       * @param cancel
                                                       * @param issueConfirmedNotifications
                                                       * @param options
                                                       * @param next
                                                       */
                                                      subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          28,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        subscribe_property_exports2222222222222.encode(
                                                          buffer,
                                                          subscribeId,
                                                          objectId,
                                                          cancel,
                                                          issueConfirmedNotifications,
                                                          0,
                                                          monitoredProperty,
                                                          false,
                                                          15
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          next();
                                                        });
                                                      }
                                                      /**
                                                       * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                                                       * @function bacnet.unconfirmedCOVNotification
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                                                       * @param {number} initiatingDeviceId - The id of this device.
                                                       * @param {object} monitoredObjectId - Specifies about which object the notification is.
                                                       * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                                                       * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                                                       * @param {number} timeRemaining - How long the subscription is still active in seconds.
                                                       * @param {object[]} values - List of properties with updated values.
                                                       * @param {object} values.property - Property specifications.
                                                       * @param {number} values.property.id - The updated BACNET property id.
                                                       * @param {number} values.property.index - The array index of the updated property.
                                                       * @param {object[]} values.value - A list of updated values.
                                                       * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                                                       * @param {object} values.value.value - The actual updated value.
                                                       * @param {number} values.priority - The priority of the updated property.
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * client.unconfirmedCOVNotification(
                                                       *            '127.0.0.1',
                                                       *            3,
                                                       *            433,
                                                       *            {type: 2, instance: 122},
                                                       *            120,
                                                       *            [
                                                       *              {
                                                       *                property: {id: 85},
                                                       *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                                                       *              },
                                                       *              {
                                                       *                property: {id: 111},
                                                       *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                                                       *              }
                                                       *            ]);
                                                       */
                                                      unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                                                        const buffer = this._getBuffer();
                                                        encode312222222222222(buffer, 0, receiver);
                                                        encodeUnconfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          16,
                                                          2
                                                          /* UNCONFIRMED_COV_NOTIFICATION */
                                                        );
                                                        cov_notify_exports2222222222222.encode(
                                                          buffer,
                                                          subscriberProcessId,
                                                          initiatingDeviceId,
                                                          monitoredObjectId,
                                                          timeRemaining,
                                                          values
                                                        );
                                                        encode322222222222222(
                                                          buffer.buffer,
                                                          10,
                                                          buffer.offset
                                                        );
                                                        this._transport.send(buffer.buffer, buffer.offset, receiver);
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param objectId
                                                       * @param values
                                                       * @param options
                                                       * @param next
                                                       */
                                                      createObject(receiver, objectId, values, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          10,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        create_object_exports2222222222222.encode(buffer, objectId, values);
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          next();
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param objectId
                                                       * @param options
                                                       * @param next
                                                       */
                                                      deleteObject(receiver, objectId, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          11,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        delete_object_exports2222222222222.encode(buffer, objectId);
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          next();
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param objectId
                                                       * @param reference
                                                       * @param values
                                                       * @param options
                                                       * @param next
                                                       */
                                                      removeListElement(receiver, objectId, reference, values, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          9,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        add_list_element_exports2222222222222.encode(
                                                          buffer,
                                                          objectId,
                                                          reference.id,
                                                          reference.index,
                                                          values
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          next();
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param objectId
                                                       * @param reference
                                                       * @param values
                                                       * @param options
                                                       * @param next
                                                       */
                                                      addListElement(receiver, objectId, reference, values, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          8,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        add_list_element_exports2222222222222.encode(
                                                          buffer,
                                                          objectId,
                                                          reference.id,
                                                          reference.index,
                                                          values
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          next();
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param options
                                                       * @param next
                                                       */
                                                      getAlarmSummary(receiver, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          3,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          const result = alarm_summary_exports2222222222222.decode(
                                                            data.buffer,
                                                            data.offset,
                                                            data.length
                                                          );
                                                          if (!result) {
                                                            return void next(new Error("INVALID_DECODING"));
                                                          }
                                                          next(null, result);
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param objectId
                                                       * @param options
                                                       * @param next
                                                       */
                                                      getEventInformation(receiver, objectId, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          29,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        encodeContextObjectId2222222222222(buffer, 0, objectId.type, objectId.instance);
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          const result = event_information_exports2222222222222.decode(
                                                            data.buffer,
                                                            data.offset,
                                                            data.length
                                                          );
                                                          if (!result) {
                                                            return void next(new Error("INVALID_DECODING"));
                                                          }
                                                          next(null, result);
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param objectId
                                                       * @param eventState
                                                       * @param ackText
                                                       * @param evTimeStamp
                                                       * @param ackTimeStamp
                                                       * @param options
                                                       * @param next
                                                       */
                                                      acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          0,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        alarm_acknowledge_exports2222222222222.encode(
                                                          buffer,
                                                          57,
                                                          objectId,
                                                          eventState,
                                                          ackText,
                                                          evTimeStamp,
                                                          ackTimeStamp
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          next();
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param vendorId
                                                       * @param serviceNumber
                                                       * @param data
                                                       * @param options
                                                       * @param next
                                                       */
                                                      confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          18,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        private_transfer_exports2222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data2) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          next();
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param vendorId
                                                       * @param serviceNumber
                                                       * @param data
                                                       */
                                                      unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(buffer, 0, receiver);
                                                        encodeUnconfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          16,
                                                          4
                                                          /* UNCONFIRMED_PRIVATE_TRANSFER */
                                                        );
                                                        private_transfer_exports2222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                        this.sendBvlc(receiver, buffer);
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param acknowledgmentFilter
                                                       * @param options
                                                       * @param next
                                                       */
                                                      getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          4,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        get_enrollment_summary_exports2222222222222.encode(
                                                          buffer,
                                                          acknowledgmentFilter,
                                                          options.enrollmentFilter,
                                                          options.eventStateFilter,
                                                          options.eventTypeFilter,
                                                          options.priorityFilter,
                                                          options.notificationClassFilter
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          const result = get_enrollment_summary_exports2222222222222.decodeAcknowledge(
                                                            data.buffer,
                                                            data.offset,
                                                            data.length
                                                          );
                                                          if (!result) {
                                                            return void next(new Error("INVALID_DECODING"));
                                                          }
                                                          next(null, result);
                                                        });
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param eventNotification
                                                       */
                                                      unconfirmedEventNotification(receiver, eventNotification) {
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(buffer, 0, receiver);
                                                        encodeUnconfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          16,
                                                          3
                                                          /* UNCONFIRMED_EVENT_NOTIFICATION */
                                                        );
                                                        event_notify_data_exports2222222222222.encode(buffer, eventNotification);
                                                        this.sendBvlc(receiver, buffer);
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param eventNotification
                                                       * @param options
                                                       * @param next
                                                       */
                                                      confirmedEventNotification(receiver, eventNotification, options, next) {
                                                        next = next || options;
                                                        const settings = {
                                                          maxSegments: options.maxSegments || 112,
                                                          maxApdu: options.maxApdu || 5,
                                                          invokeId: options.invokeId || this._getInvokeId()
                                                        };
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(
                                                          buffer,
                                                          0 | 4,
                                                          receiver
                                                        );
                                                        encodeConfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          0,
                                                          2,
                                                          settings.maxSegments,
                                                          settings.maxApdu,
                                                          settings.invokeId,
                                                          0,
                                                          0
                                                        );
                                                        event_notify_data_exports2222222222222.encode(buffer, eventNotification);
                                                        this.sendBvlc(receiver, buffer);
                                                        this._addCallback(settings.invokeId, (err, data) => {
                                                          if (err) {
                                                            return void next(err);
                                                          }
                                                          next();
                                                        });
                                                      }
                                                      /**
                                                       * The readPropertyResponse call sends a response with information about one of our properties.
                                                       * @function bacnet.readPropertyResponse
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {number} invokeId - ID of the original readProperty request.
                                                       * @param {object} objectId - objectId from the original request,
                                                       * @param {object} property - property being read, taken from the original request.
                                                       * @param {object=} options varying behaviour for special circumstances
                                                       * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                                                       */
                                                      readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(buffer, 0, receiver);
                                                        encodeComplexAck2222222222222(
                                                          buffer,
                                                          48,
                                                          12,
                                                          invokeId
                                                        );
                                                        read_property_exports2222222222222.encodeAcknowledge(
                                                          buffer,
                                                          objectId,
                                                          property.id,
                                                          property.index,
                                                          value
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                      }
                                                      readPropertyMultipleResponse(receiver, invokeId, values) {
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(buffer, 0, receiver);
                                                        encodeComplexAck2222222222222(
                                                          buffer,
                                                          48,
                                                          14,
                                                          invokeId
                                                        );
                                                        read_property_multiple_exports2222222222222.encodeAcknowledge(buffer, values);
                                                        this.sendBvlc(receiver, buffer);
                                                      }
                                                      /**
                                                       * The iAmResponse command is sent as a reply to a whoIs request.
                                                       * @function bacnet.iAmResponse
                                                       * @param {object} receiver - address to send packet to, null for local broadcast.
                                                       * @param {number} deviceId - Our device ID.
                                                       * @param {number} segmentation - an enum.Segmentation value.
                                                       * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                                                       */
                                                      iAmResponse(receiver, deviceId, segmentation, vendorId) {
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(buffer, 0, receiver);
                                                        encodeUnconfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          16,
                                                          0
                                                          /* I_AM */
                                                        );
                                                        i_am_exports2222222222222.encode(
                                                          buffer,
                                                          deviceId,
                                                          this._transport.getMaxPayload(),
                                                          segmentation,
                                                          vendorId
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param deviceId
                                                       * @param objectId
                                                       * @param objectName
                                                       */
                                                      iHaveResponse(receiver, deviceId, objectId, objectName) {
                                                        const buffer = this._getBuffer(
                                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                        );
                                                        encode312222222222222(buffer, 0, receiver);
                                                        encodeUnconfirmedServiceRequest2222222222222(
                                                          buffer,
                                                          16,
                                                          1
                                                          /* I_HAVE */
                                                        );
                                                        i_have_exports2222222222222.encode(buffer, deviceId, objectId, objectName);
                                                        this.sendBvlc(receiver, buffer);
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param service
                                                       * @param invokeId
                                                       */
                                                      simpleAckResponse(receiver, service, invokeId) {
                                                        if (typeof receiver === "string")
                                                          return;
                                                        const buffer = this._getBuffer(!!receiver.forwardedFrom);
                                                        encode312222222222222(buffer, 0, receiver);
                                                        encodeSimpleAck2222222222222(
                                                          buffer,
                                                          32,
                                                          service,
                                                          invokeId
                                                        );
                                                        this.sendBvlc(receiver, buffer);
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param service
                                                       * @param invokeId
                                                       * @param errorClass
                                                       * @param errorCode
                                                       */
                                                      errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                                                        trace22222222222222(
                                                          `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                                            service
                                                          )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                                                        );
                                                        trace22222222222222(
                                                          `error message ${error_exports2222222222222.buildMessage({
                                                            class: errorClass,
                                                            code: errorCode
                                                          })}`
                                                        );
                                                        const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                                                        if (typeof receiver === "string")
                                                          throw new Error("receiver must be object");
                                                        const buffer = this._getBuffer(hasSource);
                                                        encode312222222222222(buffer, 0, receiver);
                                                        encodeError2222222222222(buffer, 80, service, invokeId);
                                                        error_exports2222222222222.encode(buffer, errorClass, errorCode);
                                                        this.sendBvlc(receiver, buffer);
                                                      }
                                                      /**
                                                       *
                                                       * @param receiver
                                                       * @param buffer
                                                       */
                                                      sendBvlc(receiver, buffer) {
                                                        if (typeof receiver === "string") {
                                                          receiver = {
                                                            address: receiver
                                                          };
                                                        }
                                                        if (receiver && receiver.forwardedFrom) {
                                                          encode322222222222222(
                                                            buffer.buffer,
                                                            4,
                                                            buffer.offset,
                                                            receiver.forwardedFrom
                                                          );
                                                        } else if (receiver && receiver.address) {
                                                          encode322222222222222(
                                                            buffer.buffer,
                                                            10,
                                                            buffer.offset
                                                          );
                                                        } else {
                                                          encode322222222222222(
                                                            buffer.buffer,
                                                            11,
                                                            buffer.offset
                                                          );
                                                        }
                                                        this._transport.send(
                                                          buffer.buffer,
                                                          buffer.offset,
                                                          receiver && receiver.address || null
                                                        );
                                                      }
                                                      /**
                                                       * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                                                       * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                                                       * @function bacnet.resultResponse
                                                       * @param {string} receiver - IP address of the target device.
                                                       * @param {number} resultCode - Single value from BvlcResultFormat enum.
                                                       */
                                                      resultResponse(receiver, resultCode) {
                                                        const buffer = this._getBuffer();
                                                        encodeResult2222222222222(buffer, resultCode);
                                                        encode322222222222222(
                                                          buffer.buffer,
                                                          0,
                                                          buffer.offset
                                                        );
                                                        this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                                                      }
                                                      /**
                                                       * Unloads the current bacnet instance and closes the underlying UDP socket.
                                                       * @function bacnet.close
                                                       * @example
                                                       * const bacnet = require('node-bacnet');
                                                       * const client = new bacnet();
                                                       *
                                                       * client.close();
                                                       */
                                                      close() {
                                                        this._transport.close();
                                                      }
                                                      /**
                                                       * Helper function to take an array of enums and produce a bitstring suitable
                                                       * for inclusion as a property.
                                                       *
                                                       * @example
                                                       * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                                                       *   {value: bacnet.createBitstring([
                                                       *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                                                       *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                                                       *   ]),
                                                       *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                                                       * ],
                                                       */
                                                      static createBitstring(items) {
                                                        let offset = 0;
                                                        let bytes = [];
                                                        let bitsUsed = 0;
                                                        while (items.length) {
                                                          let value = 0;
                                                          items = items.filter((i) => {
                                                            if (i >= offset + 8) {
                                                              return true;
                                                            }
                                                            value |= 1 << i - offset;
                                                            bitsUsed = Math.max(bitsUsed, i);
                                                            return false;
                                                          });
                                                          bytes.push(value);
                                                          offset += 8;
                                                        }
                                                        bitsUsed++;
                                                        return {
                                                          value: bytes,
                                                          bitsUsed
                                                        };
                                                      }
                                                    };
                                                    var import_underscore2222222222222 = __toESM2222222222222(require("underscore"));
                                                    var import_process2222222222222 = __toESM2222222222222(require("process"));
                                                    var import__2222222222222 = __toESM2222222222222(require_dist2222222222222());
                                                    var PropertyIdentifierToEnumMap2222222222222 = {};
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.OBJECT_TYPE] = import__2222222222222.enums.ObjectType;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__2222222222222.enums.Segmentation;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.EVENT_STATE] = import__2222222222222.enums.EventState;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.UNITS] = import__2222222222222.enums.EngineeringUnits;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.RELIABILITY] = import__2222222222222.enums.Reliability;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__2222222222222.enums.NotifyType;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.POLARITY] = import__2222222222222.enums.Polarity;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__2222222222222.enums.ServicesSupported;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__2222222222222.enums.ObjectTypesSupported;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.STATUS_FLAGS] = import__2222222222222.enums.StatusFlags;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__2222222222222.enums.LimitEnable;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.EVENT_ENABLE] = import__2222222222222.enums.EventTransitionBits;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__2222222222222.enums.EventTransitionBits;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__2222222222222.enums.DeviceStatus;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__2222222222222.enums.DeviceStatus;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.ACK_REQUIRED] = import__2222222222222.enums.EventTransitionBits;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.LOGGING_TYPE] = import__2222222222222.enums.LoggingType;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__2222222222222.enums.FileAccessMethod;
                                                    PropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.PropertyIdentifier.NODE_TYPE] = import__2222222222222.enums.NodeType;
                                                    var ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222 = {};
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BINARY_INPUT] = {};
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BINARY_INPUT][import__2222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222.enums.BinaryPV;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BINARY_INPUT][import__2222222222222.enums.PropertyIdentifier.MODE] = import__2222222222222.enums.BinaryPV;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.ANALOG_INPUT] = {};
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.ANALOG_INPUT][import__2222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222.enums.BinaryPV;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.ANALOG_OUTPUT] = {};
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.ANALOG_OUTPUT][import__2222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222.enums.BinaryPV;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BINARY_OUTPUT] = {};
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BINARY_OUTPUT][import__2222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222.enums.BinaryPV;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BINARY_OUTPUT][import__2222222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__2222222222222.enums.BinaryPV;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BINARY_VALUE] = {};
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BINARY_VALUE][import__2222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222.enums.BinaryPV;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BINARY_VALUE][import__2222222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__2222222222222.enums.BinaryPV;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__2222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222.enums.BinaryLightingPV;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BITSTRING_VALUE] = {};
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.BINARY_VALUE][import__2222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222.enums.BinaryPV;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222.enums.LifeSafetyState;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222222.enums.PropertyIdentifier.TRACKING_VALUE] = import__2222222222222.enums.LifeSafetyState;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222222.enums.PropertyIdentifier.MODE] = import__2222222222222.enums.LifeSafetyMode;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__2222222222222.enums.LifeSafetyMode;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222222.enums.PropertyIdentifier.SILENCED] = import__2222222222222.enums.LifeSafetyState;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__2222222222222.enums.LifeSafetyOperation;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__2222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222.enums.LifeSafetyState;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__2222222222222.enums.PropertyIdentifier.MODE] = import__2222222222222.enums.LifeSafetyMode;
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.LOAD_CONTROL] = {};
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[import__2222222222222.enums.ObjectType.LOAD_CONTROL][import__2222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222222.enums.ShedState;
                                                    var propSubSet2222222222222 = import_process2222222222222.default.argv.includes("--all") ? Object.values(import__2222222222222.enums.PropertyIdentifier) : [
                                                      /* normally supported from all devices */
                                                      import__2222222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                                                      import__2222222222222.enums.PropertyIdentifier.OBJECT_NAME,
                                                      import__2222222222222.enums.PropertyIdentifier.OBJECT_TYPE,
                                                      import__2222222222222.enums.PropertyIdentifier.PRESENT_VALUE,
                                                      import__2222222222222.enums.PropertyIdentifier.STATUS_FLAGS,
                                                      import__2222222222222.enums.PropertyIdentifier.EVENT_STATE,
                                                      import__2222222222222.enums.PropertyIdentifier.RELIABILITY,
                                                      import__2222222222222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                                                      import__2222222222222.enums.PropertyIdentifier.UNITS,
                                                      /* other properties */
                                                      import__2222222222222.enums.PropertyIdentifier.DESCRIPTION,
                                                      import__2222222222222.enums.PropertyIdentifier.SYSTEM_STATUS,
                                                      import__2222222222222.enums.PropertyIdentifier.VENDOR_NAME,
                                                      import__2222222222222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                                                      import__2222222222222.enums.PropertyIdentifier.MODEL_NAME,
                                                      import__2222222222222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                                                      import__2222222222222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                                                      import__2222222222222.enums.PropertyIdentifier.LOCATION,
                                                      import__2222222222222.enums.PropertyIdentifier.LOCAL_DATE,
                                                      import__2222222222222.enums.PropertyIdentifier.LOCAL_TIME,
                                                      import__2222222222222.enums.PropertyIdentifier.UTC_OFFSET,
                                                      import__2222222222222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                                                      import__2222222222222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                                                      import__2222222222222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                                                      import__2222222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                                                      import__2222222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                                                      import__2222222222222.enums.PropertyIdentifier.OBJECT_LIST,
                                                      import__2222222222222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                                                      import__2222222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                                                      import__2222222222222.enums.PropertyIdentifier.APDU_TIMEOUT,
                                                      import__2222222222222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                                                      import__2222222222222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                                                      import__2222222222222.enums.PropertyIdentifier.DATABASE_REVISION,
                                                      import__2222222222222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                                                      import__2222222222222.enums.PropertyIdentifier.MAX_MASTER,
                                                      import__2222222222222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                                                      import__2222222222222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                                                    ];
                                                    var debug42222222222222 = import_process2222222222222.default.argv.includes("--debug");
                                                    function getAllPropertiesManually2222222222222(address, objectId, callback, propList, result) {
                                                      if (!propList) {
                                                        propList = propSubSet2222222222222.map((x) => x);
                                                      }
                                                      if (!result) {
                                                        result = [];
                                                      }
                                                      if (!propList.length) {
                                                        return callback({
                                                          values: [
                                                            {
                                                              objectId,
                                                              values: result
                                                            }
                                                          ]
                                                        });
                                                      }
                                                      const prop = propList.shift();
                                                      bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                                                        if (!err) {
                                                          if (debug42222222222222) {
                                                            console.log("Handle value " + prop + ": ", JSON.stringify(value));
                                                          }
                                                          const objRes = value.property;
                                                          objRes.value = value.values;
                                                          result.push(objRes);
                                                        } else {
                                                        }
                                                        getAllPropertiesManually2222222222222(address, objectId, callback, propList, result);
                                                      });
                                                    }
                                                    function readBit2222222222222(buffer, i, bit) {
                                                      return (buffer[i] >> bit) % 2;
                                                    }
                                                    function handleBitString2222222222222(buffer, bitsUsed, usedEnum) {
                                                      const res = [];
                                                      for (let i = 0; i < bitsUsed; i++) {
                                                        const bufferIndex = Math.floor(i / 8);
                                                        if (readBit2222222222222(buffer, bufferIndex, i % 8)) {
                                                          res.push(import__2222222222222.enums.getEnumName(usedEnum, i));
                                                        }
                                                      }
                                                      return res;
                                                    }
                                                    function parseValue2222222222222(address, objId2, parentType, value, supportsMultiple, callback) {
                                                      let resValue = null;
                                                      if (value && value.type && value.value !== null && value.value !== void 0) {
                                                        switch (value.type) {
                                                          case import__2222222222222.enums.ApplicationTag.NULL:
                                                            resValue = null;
                                                            break;
                                                          case import__2222222222222.enums.ApplicationTag.BOOLEAN:
                                                            resValue = !!value.value;
                                                            break;
                                                          case import__2222222222222.enums.ApplicationTag.UNSIGNED_INTEGER:
                                                          case import__2222222222222.enums.ApplicationTag.SIGNED_INTEGER:
                                                          case import__2222222222222.enums.ApplicationTag.REAL:
                                                          case import__2222222222222.enums.ApplicationTag.DOUBLE:
                                                          case import__2222222222222.enums.ApplicationTag.CHARACTER_STRING:
                                                            resValue = value.value;
                                                            break;
                                                          case import__2222222222222.enums.ApplicationTag.DATE:
                                                          case import__2222222222222.enums.ApplicationTag.TIME:
                                                          case import__2222222222222.enums.ApplicationTag.TIMESTAMP:
                                                            resValue = value.value;
                                                            break;
                                                          case import__2222222222222.enums.ApplicationTag.BIT_STRING:
                                                            if (ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[parentType][objId2]) {
                                                              resValue = handleBitString2222222222222(
                                                                value.value.value,
                                                                value.value.bitsUsed,
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[parentType][objId2]
                                                              );
                                                            } else if (PropertyIdentifierToEnumMap2222222222222[objId2]) {
                                                              resValue = handleBitString2222222222222(
                                                                value.value.value,
                                                                value.value.bitsUsed,
                                                                PropertyIdentifierToEnumMap2222222222222[objId2]
                                                              );
                                                            } else {
                                                              if (parentType !== import__2222222222222.enums.ObjectType.BITSTRING_VALUE) {
                                                                console.log(
                                                                  "Unknown value for BIT_STRING type for objId " + import__2222222222222.enums.getEnumName(import__2222222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__2222222222222.enums.getEnumName(import__2222222222222.enums.ObjectType, parentType)
                                                                );
                                                              }
                                                              resValue = value.value;
                                                            }
                                                            break;
                                                          case import__2222222222222.enums.ApplicationTag.ENUMERATED:
                                                            if (ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[parentType][objId2]) {
                                                              resValue = import__2222222222222.enums.getEnumName(
                                                                ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222222[parentType][objId2],
                                                                value.value
                                                              );
                                                            } else if (PropertyIdentifierToEnumMap2222222222222[objId2]) {
                                                              resValue = import__2222222222222.enums.getEnumName(
                                                                PropertyIdentifierToEnumMap2222222222222[objId2],
                                                                value.value
                                                              );
                                                            } else {
                                                              console.log(
                                                                "Unknown value for ENUMERATED type for objId " + import__2222222222222.enums.getEnumName(import__2222222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__2222222222222.enums.getEnumName(import__2222222222222.enums.ObjectType, parentType)
                                                              );
                                                              resValue = value.value;
                                                            }
                                                            break;
                                                          case import__2222222222222.enums.ApplicationTag.OBJECTIDENTIFIER:
                                                            if (objId2 === import__2222222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__2222222222222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__2222222222222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                                                              resValue = value.value;
                                                            } else if (supportsMultiple) {
                                                              const requestArray = [
                                                                {
                                                                  objectId: value.value,
                                                                  properties: [{ id: 8 }]
                                                                }
                                                              ];
                                                              bacnetClient.readPropertyMultiple(
                                                                address,
                                                                requestArray,
                                                                (err, resValue2) => {
                                                                  parseDeviceObject2222222222222(address, resValue2, value.value, true, callback);
                                                                }
                                                              );
                                                              return;
                                                            } else {
                                                              getAllPropertiesManually2222222222222(address, value.value, (result) => {
                                                                parseDeviceObject2222222222222(address, result, value.value, false, callback);
                                                              });
                                                              return;
                                                            }
                                                            break;
                                                          case import__2222222222222.enums.ApplicationTag.OCTET_STRING:
                                                            resValue = value.value;
                                                            break;
                                                          case import__2222222222222.enums.ApplicationTag.ERROR:
                                                            resValue = {
                                                              errorClass: import__2222222222222.enums.getEnumName(
                                                                import__2222222222222.enums.ErrorClass,
                                                                value.value.errorClass
                                                              ),
                                                              errorCode: import__2222222222222.enums.getEnumName(import__2222222222222.enums.ErrorCode, value.value.errorCode)
                                                            };
                                                            break;
                                                          case import__2222222222222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                                                          case import__2222222222222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                                                          case import__2222222222222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                                                          case import__2222222222222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                            resValue = value.value;
                                                            break;
                                                          case import__2222222222222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                                            parseValue2222222222222(
                                                              address,
                                                              objId2,
                                                              parentType,
                                                              value.value,
                                                              supportsMultiple,
                                                              callback
                                                            );
                                                            return;
                                                          case import__2222222222222.enums.ApplicationTag.READ_ACCESS_RESULT:
                                                            resValue = value.value;
                                                            break;
                                                          default:
                                                            console.log(
                                                              "unknown type " + value.type + ": " + JSON.stringify(value)
                                                            );
                                                            resValue = value;
                                                        }
                                                      }
                                                      setImmediate(() => callback(resValue));
                                                    }
                                                    function parseDeviceObject2222222222222(address, obj, parent, supportsMultiple, callback) {
                                                      if (debug42222222222222) {
                                                        console.log(
                                                          "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                                                        );
                                                      }
                                                      if (!obj) {
                                                        console.log("object not valid on parse device object");
                                                        return;
                                                      }
                                                      if (!obj.values || !Array.isArray(obj.values)) {
                                                        console.log("No device or invalid response");
                                                        callback({ ERROR: "No device or invalid response" });
                                                        return;
                                                      }
                                                      let cbCount = 0;
                                                      let objDef = {};
                                                      const finalize = () => {
                                                        Object.keys(objDef).forEach((devId) => {
                                                          Object.keys(objDef[devId]).forEach((objId2) => {
                                                            if (objDef[devId][objId2].length === 1) {
                                                              objDef[devId][objId2] = objDef[devId][objId2][0];
                                                            }
                                                          });
                                                        });
                                                        if (obj.values.length === 1) {
                                                          objDef = objDef[obj.values[0].objectId.instance];
                                                        }
                                                        if (debug42222222222222) {
                                                          console.log(
                                                            "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                                                          );
                                                        }
                                                        callback(objDef);
                                                      };
                                                      obj.values.forEach((devBaseObj) => {
                                                        if (!devBaseObj.objectId) {
                                                          console.log("No device Id found in object data");
                                                          return;
                                                        }
                                                        if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                                                          console.log("No device type or instance found in object data");
                                                          return;
                                                        }
                                                        if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                                                          console.log("No device values response");
                                                          return;
                                                        }
                                                        const deviceId = devBaseObj.objectId.instance;
                                                        objDef[deviceId] = {};
                                                        devBaseObj.values.forEach((devObj) => {
                                                          let objId2 = import__2222222222222.enums.getEnumName(import__2222222222222.enums.PropertyIdentifier, devObj.id);
                                                          if (devObj.index !== 4294967295) {
                                                            objId2 += "-" + devObj.index;
                                                          }
                                                          if (debug42222222222222) {
                                                            console.log("Handle Object property:", deviceId, objId2, devObj.value);
                                                          }
                                                          devObj.value.forEach((val) => {
                                                            if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                                              objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                              objDef[deviceId][objId2].push(val.value);
                                                              return;
                                                            }
                                                            cbCount++;
                                                            parseValue2222222222222(
                                                              address,
                                                              devObj.id,
                                                              parent.type,
                                                              val,
                                                              supportsMultiple,
                                                              (parsedValue) => {
                                                                if (debug42222222222222) {
                                                                  console.log(
                                                                    "RETURN parsedValue",
                                                                    deviceId,
                                                                    objId2,
                                                                    devObj.value,
                                                                    parsedValue
                                                                  );
                                                                }
                                                                objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                                objDef[deviceId][objId2].push(parsedValue);
                                                                if (!--cbCount) {
                                                                  finalize();
                                                                }
                                                              }
                                                            );
                                                          });
                                                        });
                                                      });
                                                      if (cbCount === 0) {
                                                        finalize();
                                                      }
                                                    }
                                                    var limitToDevice2222222222222 = null;
                                                    if (import_process2222222222222.default.argv.length === 3) {
                                                      limitToDevice2222222222222 = parseInt(import_process2222222222222.default.argv[2]);
                                                      if (isNaN(limitToDevice2222222222222)) {
                                                        limitToDevice2222222222222 = null;
                                                      }
                                                    }
                                                    var node_bacnet_default2222222222222 = Client2222222222222;
                                                  }
                                                });
                                                var node_bacnet_exports222222222222 = {};
                                                __export222222222222(node_bacnet_exports222222222222, {
                                                  _: () => import_underscore222222222222.default,
                                                  bacnetErrorToString: () => bacnetErrorToString222222222222,
                                                  default: () => node_bacnet_default222222222222,
                                                  enums: () => enum_exports222222222222,
                                                  parseValue: () => parseValue222222222222
                                                });
                                                module222222222222.exports = __toCommonJS222222222222(node_bacnet_exports222222222222);
                                                var enum_exports222222222222 = {};
                                                __export222222222222(enum_exports222222222222, {
                                                  ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL222222222222,
                                                  ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS222222222222,
                                                  ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG222222222222,
                                                  ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES222222222222,
                                                  ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE222222222222,
                                                  ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT222222222222,
                                                  ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE222222222222,
                                                  ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY222222222222,
                                                  ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID222222222222,
                                                  ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY222222222222,
                                                  ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY222222222222,
                                                  AbortReason: () => AbortReason222222222222,
                                                  AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable222222222222,
                                                  AccessCredentialDisable: () => AccessCredentialDisable222222222222,
                                                  AccessCredentialDisableReason: () => AccessCredentialDisableReason222222222222,
                                                  AccessEvent: () => AccessEvent222222222222,
                                                  AccessPassbackMode: () => AccessPassbackMode222222222222,
                                                  AccessUserType: () => AccessUserType222222222222,
                                                  AccessZoneOccupancyState: () => AccessZoneOccupancyState222222222222,
                                                  Action: () => Action222222222222,
                                                  ApplicationTag: () => ApplicationTag222222222222,
                                                  ApplicationTagName: () => ApplicationTagName222222222222,
                                                  AuthenticationFactorType: () => AuthenticationFactorType222222222222,
                                                  AuthenticationStatus: () => AuthenticationStatus222222222222,
                                                  AuthorizationExemption: () => AuthorizationExemption222222222222,
                                                  AuthorizationMode: () => AuthorizationMode222222222222,
                                                  BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH322222222222,
                                                  BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP222222222222,
                                                  BackupState: () => BackupState222222222222,
                                                  BinaryLightingPV: () => BinaryLightingPV222222222222,
                                                  BinaryPV: () => BinaryPV222222222222,
                                                  BvlcResultFormat: () => BvlcResultFormat222222222222,
                                                  BvlcResultPurpose: () => BvlcResultPurpose222222222222,
                                                  CharacterStringEncoding: () => CharacterStringEncoding222222222222,
                                                  ConfirmedServiceChoice: () => ConfirmedServiceChoice222222222222,
                                                  CovType: () => CovType222222222222,
                                                  DaysOfWeek: () => DaysOfWeek222222222222,
                                                  DeviceStatus: () => DeviceStatus222222222222,
                                                  DoorAlarmState: () => DoorAlarmState222222222222,
                                                  DoorSecuredStatus: () => DoorSecuredStatus222222222222,
                                                  DoorStatus: () => DoorStatus222222222222,
                                                  DoorValue: () => DoorValue222222222222,
                                                  EnableDisable: () => EnableDisable222222222222,
                                                  EngineeringUnits: () => EngineeringUnits222222222222,
                                                  ErrorClass: () => ErrorClass222222222222,
                                                  ErrorClassName: () => ErrorClassName222222222222,
                                                  ErrorCode: () => ErrorCode222222222222,
                                                  ErrorCodeName: () => ErrorCodeName222222222222,
                                                  EscalatorFault: () => EscalatorFault222222222222,
                                                  EscalatorMode: () => EscalatorMode222222222222,
                                                  EscalatorOperationDirection: () => EscalatorOperationDirection222222222222,
                                                  EventState: () => EventState222222222222,
                                                  EventTransitionBits: () => EventTransitionBits222222222222,
                                                  EventType: () => EventType222222222222,
                                                  FaultType: () => FaultType222222222222,
                                                  FileAccessMethod: () => FileAccessMethod222222222222,
                                                  IPMode: () => IPMode222222222222,
                                                  LifeSafetyMode: () => LifeSafetyMode222222222222,
                                                  LifeSafetyOperation: () => LifeSafetyOperation222222222222,
                                                  LifeSafetyState: () => LifeSafetyState222222222222,
                                                  LiftCarDirection: () => LiftCarDirection222222222222,
                                                  LiftCarDoorCommand: () => LiftCarDoorCommand222222222222,
                                                  LiftCarDriveStatus: () => LiftCarDriveStatus222222222222,
                                                  LiftCarMode: () => LiftCarMode222222222222,
                                                  LiftFault: () => LiftFault222222222222,
                                                  LiftGroupMode: () => LiftGroupMode222222222222,
                                                  LightingInProgress: () => LightingInProgress222222222222,
                                                  LightingOperation: () => LightingOperation222222222222,
                                                  LightingTransition: () => LightingTransition222222222222,
                                                  LimitEnable: () => LimitEnable222222222222,
                                                  LockStatus: () => LockStatus222222222222,
                                                  LogStatus: () => LogStatus222222222222,
                                                  LoggingType: () => LoggingType222222222222,
                                                  Maintenance: () => Maintenance222222222222,
                                                  MaxApduLengthAccepted: () => MaxApduLengthAccepted222222222222,
                                                  MaxSegmentsAccepted: () => MaxSegmentsAccepted222222222222,
                                                  NetworkLayerMessageType: () => NetworkLayerMessageType222222222222,
                                                  NetworkNumberQuality: () => NetworkNumberQuality222222222222,
                                                  NetworkPortCommand: () => NetworkPortCommand222222222222,
                                                  NetworkType: () => NetworkType222222222222,
                                                  NodeType: () => NodeType222222222222,
                                                  NotifyType: () => NotifyType222222222222,
                                                  NpduControlBit: () => NpduControlBit222222222222,
                                                  NpduControlPriority: () => NpduControlPriority222222222222,
                                                  ObjectType: () => ObjectType222222222222,
                                                  ObjectTypesSupported: () => ObjectTypesSupported222222222222,
                                                  PDU_TYPE_MASK: () => PDU_TYPE_MASK222222222222,
                                                  PduConReqBit: () => PduConReqBit222222222222,
                                                  PduSegAckBit: () => PduSegAckBit222222222222,
                                                  PduType: () => PduType222222222222,
                                                  Polarity: () => Polarity222222222222,
                                                  ProgramError: () => ProgramError222222222222,
                                                  ProgramRequest: () => ProgramRequest222222222222,
                                                  ProgramState: () => ProgramState222222222222,
                                                  PropertyIdentifier: () => PropertyIdentifier222222222222,
                                                  PropertyStates: () => PropertyStates222222222222,
                                                  ProtocolLevel: () => ProtocolLevel222222222222,
                                                  ReadRangeType: () => ReadRangeType222222222222,
                                                  ReinitializedState: () => ReinitializedState222222222222,
                                                  RejectReason: () => RejectReason222222222222,
                                                  Relationship: () => Relationship222222222222,
                                                  Reliability: () => Reliability222222222222,
                                                  RestartReason: () => RestartReason222222222222,
                                                  ResultFlags: () => ResultFlags222222222222,
                                                  SecurityLevel: () => SecurityLevel222222222222,
                                                  SecurityPolicy: () => SecurityPolicy222222222222,
                                                  Segmentation: () => Segmentation222222222222,
                                                  ServicesSupported: () => ServicesSupported222222222222,
                                                  ShedState: () => ShedState222222222222,
                                                  SilencedState: () => SilencedState222222222222,
                                                  StatusFlags: () => StatusFlags222222222222,
                                                  TimeStamp: () => TimeStamp222222222222,
                                                  TimerState: () => TimerState222222222222,
                                                  TimerTransition: () => TimerTransition222222222222,
                                                  UnconfirmedServiceChoice: () => UnconfirmedServiceChoice222222222222,
                                                  VTClass: () => VTClass222222222222,
                                                  WriteStatus: () => WriteStatus222222222222,
                                                  getEnumName: () => getEnumName222222222222
                                                });
                                                var import_debug422222222222 = __toESM222222222222(require("debug"));
                                                var debug522222222222 = (0, import_debug422222222222.default)("bacnet=enum=debug");
                                                var trace322222222222 = (0, import_debug422222222222.default)("bacnet=enum=trace");
                                                function invertEnum222222222222(enumToInvert) {
                                                  const invertedEnum = {};
                                                  Object.keys(enumToInvert).forEach((key) => {
                                                    invertedEnum[enumToInvert[key]] = key;
                                                  });
                                                  return invertedEnum;
                                                }
                                                function getEnumName222222222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                                                  if (!Number.isInteger(value)) {
                                                    throw new Error(
                                                      'getEnumName() can only be passed an integer value, was given "' + value + '"'
                                                    );
                                                  }
                                                  let foundEntry;
                                                  try {
                                                    const invertedGroup = invertEnum222222222222(group);
                                                    foundEntry = invertedGroup[value];
                                                    if (foundEntry === void 0 && undefinedFallbackValue) {
                                                      foundEntry = undefinedFallbackValue;
                                                    }
                                                    if (foundEntry === void 0) {
                                                      foundEntry = value.toString();
                                                    } else if (addNumberValue) {
                                                      foundEntry += "(" + value + ")";
                                                    }
                                                  } catch (e) {
                                                    trace322222222222(e.message);
                                                    foundEntry = null;
                                                  }
                                                  return foundEntry;
                                                }
                                                var PDU_TYPE_MASK222222222222 = 240;
                                                var ASN1_MAX_OBJECT222222222222 = 1023;
                                                var ASN1_INSTANCE_BITS222222222222 = 22;
                                                var ASN1_MAX_INSTANCE222222222222 = 4194303;
                                                var ASN1_MAX_BITSTRING_BYTES222222222222 = 15;
                                                var ASN1_ARRAY_ALL222222222222 = 4294967295;
                                                var ASN1_NO_PRIORITY222222222222 = 0;
                                                var ASN1_MIN_PRIORITY222222222222 = 1;
                                                var ASN1_MAX_PRIORITY222222222222 = 16;
                                                var ASN1_MAX_APPLICATION_TAG222222222222 = 16;
                                                var ASN1_MAX_OBJECT_TYPE222222222222 = 1024;
                                                var ASN1_MAX_PROPERTY_ID222222222222 = 4194303;
                                                var BVLL_TYPE_BACNET_IP222222222222 = 129;
                                                var BVLC_HEADER_LENGTH322222222222 = 4;
                                                var ConfirmedServiceChoice222222222222 = /* @__PURE__ */ ((ConfirmedServiceChoice2222222222222) => {
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["READ_RANGE"] = 26] = "READ_RANGE";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                  ConfirmedServiceChoice2222222222222[ConfirmedServiceChoice2222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                  return ConfirmedServiceChoice2222222222222;
                                                })(ConfirmedServiceChoice222222222222 || {});
                                                var UnconfirmedServiceChoice222222222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice2222222222222) => {
                                                  UnconfirmedServiceChoice2222222222222[UnconfirmedServiceChoice2222222222222["I_AM"] = 0] = "I_AM";
                                                  UnconfirmedServiceChoice2222222222222[UnconfirmedServiceChoice2222222222222["I_HAVE"] = 1] = "I_HAVE";
                                                  UnconfirmedServiceChoice2222222222222[UnconfirmedServiceChoice2222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                                                  UnconfirmedServiceChoice2222222222222[UnconfirmedServiceChoice2222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                  UnconfirmedServiceChoice2222222222222[UnconfirmedServiceChoice2222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                  UnconfirmedServiceChoice2222222222222[UnconfirmedServiceChoice2222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                                                  UnconfirmedServiceChoice2222222222222[UnconfirmedServiceChoice2222222222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                                                  UnconfirmedServiceChoice2222222222222[UnconfirmedServiceChoice2222222222222["WHO_HAS"] = 7] = "WHO_HAS";
                                                  UnconfirmedServiceChoice2222222222222[UnconfirmedServiceChoice2222222222222["WHO_IS"] = 8] = "WHO_IS";
                                                  UnconfirmedServiceChoice2222222222222[UnconfirmedServiceChoice2222222222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                                                  UnconfirmedServiceChoice2222222222222[UnconfirmedServiceChoice2222222222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                                                  UnconfirmedServiceChoice2222222222222[UnconfirmedServiceChoice2222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                  return UnconfirmedServiceChoice2222222222222;
                                                })(UnconfirmedServiceChoice222222222222 || {});
                                                var AbortReason222222222222 = /* @__PURE__ */ ((AbortReason2222222222222) => {
                                                  AbortReason2222222222222[AbortReason2222222222222["OTHER"] = 0] = "OTHER";
                                                  AbortReason2222222222222[AbortReason2222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                  AbortReason2222222222222[AbortReason2222222222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                                                  AbortReason2222222222222[AbortReason2222222222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                  AbortReason2222222222222[AbortReason2222222222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                                                  AbortReason2222222222222[AbortReason2222222222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                                                  AbortReason2222222222222[AbortReason2222222222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                                                  AbortReason2222222222222[AbortReason2222222222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                                                  AbortReason2222222222222[AbortReason2222222222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                                                  AbortReason2222222222222[AbortReason2222222222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                                                  AbortReason2222222222222[AbortReason2222222222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                                                  AbortReason2222222222222[AbortReason2222222222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                                                  return AbortReason2222222222222;
                                                })(AbortReason222222222222 || {});
                                                var RejectReason222222222222 = /* @__PURE__ */ ((RejectReason2222222222222) => {
                                                  RejectReason2222222222222[RejectReason2222222222222["OTHER"] = 0] = "OTHER";
                                                  RejectReason2222222222222[RejectReason2222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                                  RejectReason2222222222222[RejectReason2222222222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                                                  RejectReason2222222222222[RejectReason2222222222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                                                  RejectReason2222222222222[RejectReason2222222222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                                                  RejectReason2222222222222[RejectReason2222222222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                                                  RejectReason2222222222222[RejectReason2222222222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                                                  RejectReason2222222222222[RejectReason2222222222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                                                  RejectReason2222222222222[RejectReason2222222222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                                                  RejectReason2222222222222[RejectReason2222222222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                                                  return RejectReason2222222222222;
                                                })(RejectReason222222222222 || {});
                                                var ErrorClass222222222222 = /* @__PURE__ */ ((ErrorClass2222222222222) => {
                                                  ErrorClass2222222222222[ErrorClass2222222222222["DEVICE"] = 0] = "DEVICE";
                                                  ErrorClass2222222222222[ErrorClass2222222222222["OBJECT"] = 1] = "OBJECT";
                                                  ErrorClass2222222222222[ErrorClass2222222222222["PROPERTY"] = 2] = "PROPERTY";
                                                  ErrorClass2222222222222[ErrorClass2222222222222["RESOURCES"] = 3] = "RESOURCES";
                                                  ErrorClass2222222222222[ErrorClass2222222222222["SECURITY"] = 4] = "SECURITY";
                                                  ErrorClass2222222222222[ErrorClass2222222222222["SERVICES"] = 5] = "SERVICES";
                                                  ErrorClass2222222222222[ErrorClass2222222222222["VT"] = 6] = "VT";
                                                  ErrorClass2222222222222[ErrorClass2222222222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                                                  return ErrorClass2222222222222;
                                                })(ErrorClass222222222222 || {});
                                                var ErrorClassName222222222222 = invertEnum222222222222(
                                                  ErrorClass222222222222
                                                );
                                                var ErrorCode222222222222 = /* @__PURE__ */ ((ErrorCode2222222222222) => {
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["BUSY"] = 82] = "BUSY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["FILE_FULL"] = 128] = "FILE_FULL";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["OTHER"] = 0] = "OTHER";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["SUCCESS"] = 84] = "SUCCESS";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["TIMEOUT"] = 30] = "TIMEOUT";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                                                  ErrorCode2222222222222[ErrorCode2222222222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                                                  return ErrorCode2222222222222;
                                                })(ErrorCode222222222222 || {});
                                                var ErrorCodeName222222222222 = invertEnum222222222222(
                                                  ErrorCode222222222222
                                                );
                                                var AccessAuthenticationFactorDisable222222222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable2222222222222) => {
                                                  AccessAuthenticationFactorDisable2222222222222[AccessAuthenticationFactorDisable2222222222222["NONE"] = 0] = "NONE";
                                                  AccessAuthenticationFactorDisable2222222222222[AccessAuthenticationFactorDisable2222222222222["DISABLED"] = 1] = "DISABLED";
                                                  AccessAuthenticationFactorDisable2222222222222[AccessAuthenticationFactorDisable2222222222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                                                  AccessAuthenticationFactorDisable2222222222222[AccessAuthenticationFactorDisable2222222222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                                                  AccessAuthenticationFactorDisable2222222222222[AccessAuthenticationFactorDisable2222222222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                                                  AccessAuthenticationFactorDisable2222222222222[AccessAuthenticationFactorDisable2222222222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                                                  return AccessAuthenticationFactorDisable2222222222222;
                                                })(AccessAuthenticationFactorDisable222222222222 || {});
                                                var AccessCredentialDisable222222222222 = /* @__PURE__ */ ((AccessCredentialDisable2222222222222) => {
                                                  AccessCredentialDisable2222222222222[AccessCredentialDisable2222222222222["NONE"] = 0] = "NONE";
                                                  AccessCredentialDisable2222222222222[AccessCredentialDisable2222222222222["DISABLE"] = 1] = "DISABLE";
                                                  AccessCredentialDisable2222222222222[AccessCredentialDisable2222222222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                                                  AccessCredentialDisable2222222222222[AccessCredentialDisable2222222222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                                                  return AccessCredentialDisable2222222222222;
                                                })(AccessCredentialDisable222222222222 || {});
                                                var AccessCredentialDisableReason222222222222 = /* @__PURE__ */ ((AccessCredentialDisableReason2222222222222) => {
                                                  AccessCredentialDisableReason2222222222222[AccessCredentialDisableReason2222222222222["DISABLED"] = 0] = "DISABLED";
                                                  AccessCredentialDisableReason2222222222222[AccessCredentialDisableReason2222222222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                                                  AccessCredentialDisableReason2222222222222[AccessCredentialDisableReason2222222222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                                                  AccessCredentialDisableReason2222222222222[AccessCredentialDisableReason2222222222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                                                  AccessCredentialDisableReason2222222222222[AccessCredentialDisableReason2222222222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                                                  AccessCredentialDisableReason2222222222222[AccessCredentialDisableReason2222222222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                                                  AccessCredentialDisableReason2222222222222[AccessCredentialDisableReason2222222222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                                                  AccessCredentialDisableReason2222222222222[AccessCredentialDisableReason2222222222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                                                  AccessCredentialDisableReason2222222222222[AccessCredentialDisableReason2222222222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                                                  AccessCredentialDisableReason2222222222222[AccessCredentialDisableReason2222222222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                                                  return AccessCredentialDisableReason2222222222222;
                                                })(AccessCredentialDisableReason222222222222 || {});
                                                var AccessEvent222222222222 = /* @__PURE__ */ ((AccessEvent2222222222222) => {
                                                  AccessEvent2222222222222[AccessEvent2222222222222["NONE"] = 0] = "NONE";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["GRANTED"] = 1] = "GRANTED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["MUSTER"] = 2] = "MUSTER";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DURESS"] = 4] = "DURESS";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["TRACE"] = 5] = "TRACE";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                                                  AccessEvent2222222222222[AccessEvent2222222222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                                                  return AccessEvent2222222222222;
                                                })(AccessEvent222222222222 || {});
                                                var AccessPassbackMode222222222222 = /* @__PURE__ */ ((AccessPassbackMode2222222222222) => {
                                                  AccessPassbackMode2222222222222[AccessPassbackMode2222222222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                                                  AccessPassbackMode2222222222222[AccessPassbackMode2222222222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                                                  AccessPassbackMode2222222222222[AccessPassbackMode2222222222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                                                  return AccessPassbackMode2222222222222;
                                                })(AccessPassbackMode222222222222 || {});
                                                var AccessUserType222222222222 = /* @__PURE__ */ ((AccessUserType2222222222222) => {
                                                  AccessUserType2222222222222[AccessUserType2222222222222["ASSET"] = 0] = "ASSET";
                                                  AccessUserType2222222222222[AccessUserType2222222222222["GROUP"] = 1] = "GROUP";
                                                  AccessUserType2222222222222[AccessUserType2222222222222["PERSON"] = 2] = "PERSON";
                                                  return AccessUserType2222222222222;
                                                })(AccessUserType222222222222 || {});
                                                var AccessZoneOccupancyState222222222222 = /* @__PURE__ */ ((AccessZoneOccupancyState2222222222222) => {
                                                  AccessZoneOccupancyState2222222222222[AccessZoneOccupancyState2222222222222["NORMAL"] = 0] = "NORMAL";
                                                  AccessZoneOccupancyState2222222222222[AccessZoneOccupancyState2222222222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                                                  AccessZoneOccupancyState2222222222222[AccessZoneOccupancyState2222222222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                                                  AccessZoneOccupancyState2222222222222[AccessZoneOccupancyState2222222222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                                                  AccessZoneOccupancyState2222222222222[AccessZoneOccupancyState2222222222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                                                  AccessZoneOccupancyState2222222222222[AccessZoneOccupancyState2222222222222["DISABLED"] = 5] = "DISABLED";
                                                  AccessZoneOccupancyState2222222222222[AccessZoneOccupancyState2222222222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                                                  return AccessZoneOccupancyState2222222222222;
                                                })(AccessZoneOccupancyState222222222222 || {});
                                                var Action222222222222 = /* @__PURE__ */ ((Action2222222222222) => {
                                                  Action2222222222222[Action2222222222222["DIRECT"] = 0] = "DIRECT";
                                                  Action2222222222222[Action2222222222222["REVERSE"] = 1] = "REVERSE";
                                                  return Action2222222222222;
                                                })(Action222222222222 || {});
                                                var AuthenticationFactorType222222222222 = /* @__PURE__ */ ((AuthenticationFactorType2222222222222) => {
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["UNDEFINED"] = 0] = "UNDEFINED";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["ERROR"] = 1] = "ERROR";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["CUSTOM"] = 2] = "CUSTOM";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["WIEGAND26"] = 8] = "WIEGAND26";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["WIEGAND37"] = 9] = "WIEGAND37";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["FASC_N"] = 13] = "FASC_N";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["GSA75"] = 17] = "GSA75";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["CHUID"] = 18] = "CHUID";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["GUID"] = 20] = "GUID";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["CBEFF_A"] = 21] = "CBEFF_A";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["CBEFF_B"] = 22] = "CBEFF_B";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["CBEFF_C"] = 23] = "CBEFF_C";
                                                  AuthenticationFactorType2222222222222[AuthenticationFactorType2222222222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                                                  return AuthenticationFactorType2222222222222;
                                                })(AuthenticationFactorType222222222222 || {});
                                                var AuthenticationStatus222222222222 = /* @__PURE__ */ ((AuthenticationStatus2222222222222) => {
                                                  AuthenticationStatus2222222222222[AuthenticationStatus2222222222222["NOT_READY"] = 0] = "NOT_READY";
                                                  AuthenticationStatus2222222222222[AuthenticationStatus2222222222222["READY"] = 1] = "READY";
                                                  AuthenticationStatus2222222222222[AuthenticationStatus2222222222222["DISABLED"] = 2] = "DISABLED";
                                                  AuthenticationStatus2222222222222[AuthenticationStatus2222222222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                                                  AuthenticationStatus2222222222222[AuthenticationStatus2222222222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                                                  AuthenticationStatus2222222222222[AuthenticationStatus2222222222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                                                  AuthenticationStatus2222222222222[AuthenticationStatus2222222222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                                                  return AuthenticationStatus2222222222222;
                                                })(AuthenticationStatus222222222222 || {});
                                                var AuthorizationExemption222222222222 = /* @__PURE__ */ ((AuthorizationExemption2222222222222) => {
                                                  AuthorizationExemption2222222222222[AuthorizationExemption2222222222222["PASSBACK"] = 0] = "PASSBACK";
                                                  AuthorizationExemption2222222222222[AuthorizationExemption2222222222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                                                  AuthorizationExemption2222222222222[AuthorizationExemption2222222222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                                                  AuthorizationExemption2222222222222[AuthorizationExemption2222222222222["LOCKOUT"] = 3] = "LOCKOUT";
                                                  AuthorizationExemption2222222222222[AuthorizationExemption2222222222222["DENY"] = 4] = "DENY";
                                                  AuthorizationExemption2222222222222[AuthorizationExemption2222222222222["VERIFICATION"] = 5] = "VERIFICATION";
                                                  AuthorizationExemption2222222222222[AuthorizationExemption2222222222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                                                  return AuthorizationExemption2222222222222;
                                                })(AuthorizationExemption222222222222 || {});
                                                var AuthorizationMode222222222222 = /* @__PURE__ */ ((AuthorizationMode2222222222222) => {
                                                  AuthorizationMode2222222222222[AuthorizationMode2222222222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                                                  AuthorizationMode2222222222222[AuthorizationMode2222222222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                                                  AuthorizationMode2222222222222[AuthorizationMode2222222222222["DENY_ALL"] = 2] = "DENY_ALL";
                                                  AuthorizationMode2222222222222[AuthorizationMode2222222222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                                                  AuthorizationMode2222222222222[AuthorizationMode2222222222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                                                  AuthorizationMode2222222222222[AuthorizationMode2222222222222["NONE"] = 5] = "NONE";
                                                  return AuthorizationMode2222222222222;
                                                })(AuthorizationMode222222222222 || {});
                                                var BackupState222222222222 = /* @__PURE__ */ ((BackupState2222222222222) => {
                                                  BackupState2222222222222[BackupState2222222222222["IDLE"] = 0] = "IDLE";
                                                  BackupState2222222222222[BackupState2222222222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                                                  BackupState2222222222222[BackupState2222222222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                                                  BackupState2222222222222[BackupState2222222222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                                                  BackupState2222222222222[BackupState2222222222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                                                  BackupState2222222222222[BackupState2222222222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                                                  BackupState2222222222222[BackupState2222222222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                                                  return BackupState2222222222222;
                                                })(BackupState222222222222 || {});
                                                var BinaryLightingPV222222222222 = /* @__PURE__ */ ((BinaryLightingPV2222222222222) => {
                                                  BinaryLightingPV2222222222222[BinaryLightingPV2222222222222["OFF"] = 0] = "OFF";
                                                  BinaryLightingPV2222222222222[BinaryLightingPV2222222222222["ON"] = 1] = "ON";
                                                  BinaryLightingPV2222222222222[BinaryLightingPV2222222222222["WARN"] = 2] = "WARN";
                                                  BinaryLightingPV2222222222222[BinaryLightingPV2222222222222["WARN_OFF"] = 3] = "WARN_OFF";
                                                  BinaryLightingPV2222222222222[BinaryLightingPV2222222222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                                                  BinaryLightingPV2222222222222[BinaryLightingPV2222222222222["STOP"] = 5] = "STOP";
                                                  return BinaryLightingPV2222222222222;
                                                })(BinaryLightingPV222222222222 || {});
                                                var BinaryPV222222222222 = /* @__PURE__ */ ((BinaryPV2222222222222) => {
                                                  BinaryPV2222222222222[BinaryPV2222222222222["INACTIVE"] = 0] = "INACTIVE";
                                                  BinaryPV2222222222222[BinaryPV2222222222222["ACTIVE"] = 1] = "ACTIVE";
                                                  return BinaryPV2222222222222;
                                                })(BinaryPV222222222222 || {});
                                                var DeviceStatus222222222222 = /* @__PURE__ */ ((DeviceStatus2222222222222) => {
                                                  DeviceStatus2222222222222[DeviceStatus2222222222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                                                  DeviceStatus2222222222222[DeviceStatus2222222222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                                                  DeviceStatus2222222222222[DeviceStatus2222222222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                                                  DeviceStatus2222222222222[DeviceStatus2222222222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                                                  DeviceStatus2222222222222[DeviceStatus2222222222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                                                  DeviceStatus2222222222222[DeviceStatus2222222222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                                                  return DeviceStatus2222222222222;
                                                })(DeviceStatus222222222222 || {});
                                                var DoorAlarmState222222222222 = /* @__PURE__ */ ((DoorAlarmState2222222222222) => {
                                                  DoorAlarmState2222222222222[DoorAlarmState2222222222222["NORMAL"] = 0] = "NORMAL";
                                                  DoorAlarmState2222222222222[DoorAlarmState2222222222222["ALARM"] = 1] = "ALARM";
                                                  DoorAlarmState2222222222222[DoorAlarmState2222222222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                                                  DoorAlarmState2222222222222[DoorAlarmState2222222222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                                                  DoorAlarmState2222222222222[DoorAlarmState2222222222222["TAMPER"] = 4] = "TAMPER";
                                                  DoorAlarmState2222222222222[DoorAlarmState2222222222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                                                  DoorAlarmState2222222222222[DoorAlarmState2222222222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                                                  DoorAlarmState2222222222222[DoorAlarmState2222222222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                                                  DoorAlarmState2222222222222[DoorAlarmState2222222222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                                                  return DoorAlarmState2222222222222;
                                                })(DoorAlarmState222222222222 || {});
                                                var DoorSecuredStatus222222222222 = /* @__PURE__ */ ((DoorSecuredStatus2222222222222) => {
                                                  DoorSecuredStatus2222222222222[DoorSecuredStatus2222222222222["SECURED"] = 0] = "SECURED";
                                                  DoorSecuredStatus2222222222222[DoorSecuredStatus2222222222222["UNSECURED"] = 1] = "UNSECURED";
                                                  DoorSecuredStatus2222222222222[DoorSecuredStatus2222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                  return DoorSecuredStatus2222222222222;
                                                })(DoorSecuredStatus222222222222 || {});
                                                var DoorStatus222222222222 = /* @__PURE__ */ ((DoorStatus2222222222222) => {
                                                  DoorStatus2222222222222[DoorStatus2222222222222["CLOSED"] = 0] = "CLOSED";
                                                  DoorStatus2222222222222[DoorStatus2222222222222["OPENED"] = 1] = "OPENED";
                                                  DoorStatus2222222222222[DoorStatus2222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                                  DoorStatus2222222222222[DoorStatus2222222222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                                                  DoorStatus2222222222222[DoorStatus2222222222222["UNUSED"] = 4] = "UNUSED";
                                                  DoorStatus2222222222222[DoorStatus2222222222222["NONE"] = 5] = "NONE";
                                                  DoorStatus2222222222222[DoorStatus2222222222222["CLOSING"] = 6] = "CLOSING";
                                                  DoorStatus2222222222222[DoorStatus2222222222222["OPENING"] = 7] = "OPENING";
                                                  DoorStatus2222222222222[DoorStatus2222222222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                                                  DoorStatus2222222222222[DoorStatus2222222222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                                                  return DoorStatus2222222222222;
                                                })(DoorStatus222222222222 || {});
                                                var DoorValue222222222222 = /* @__PURE__ */ ((DoorValue2222222222222) => {
                                                  DoorValue2222222222222[DoorValue2222222222222["LOCK"] = 0] = "LOCK";
                                                  DoorValue2222222222222[DoorValue2222222222222["UNLOCK"] = 1] = "UNLOCK";
                                                  DoorValue2222222222222[DoorValue2222222222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                                                  DoorValue2222222222222[DoorValue2222222222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                                                  return DoorValue2222222222222;
                                                })(DoorValue222222222222 || {});
                                                var EngineeringUnits222222222222 = /* @__PURE__ */ ((EngineeringUnits2222222222222) => {
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CURRENCY1"] = 105] = "CURRENCY1";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CURRENCY2"] = 106] = "CURRENCY2";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CURRENCY3"] = 107] = "CURRENCY3";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CURRENCY4"] = 108] = "CURRENCY4";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CURRENCY5"] = 109] = "CURRENCY5";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CURRENCY6"] = 110] = "CURRENCY6";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CURRENCY7"] = 111] = "CURRENCY7";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CURRENCY8"] = 112] = "CURRENCY8";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CURRENCY9"] = 113] = "CURRENCY9";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CURRENCY10"] = 114] = "CURRENCY10";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["AMPERES"] = 3] = "AMPERES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DECIBELS"] = 199] = "DECIBELS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["FARADS"] = 170] = "FARADS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["HENRYS"] = 171] = "HENRYS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["OHMS"] = 4] = "OHMS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["OHM_METERS"] = 172] = "OHM_METERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOHMS"] = 122] = "KILOHMS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGOHMS"] = 123] = "MEGOHMS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["SIEMENS"] = 173] = "SIEMENS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["TESLAS"] = 175] = "TESLAS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["VOLTS"] = 5] = "VOLTS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["WEBERS"] = 178] = "WEBERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["JOULES"] = 16] = "JOULES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOJOULES"] = 17] = "KILOJOULES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["BTUS"] = 20] = "BTUS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["THERMS"] = 21] = "THERMS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["TON_HOURS"] = 22] = "TON_HOURS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["NEWTON"] = 153] = "NEWTON";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["HERTZ"] = 27] = "HERTZ";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PER_HOUR"] = 131] = "PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MICROMETERS"] = 194] = "MICROMETERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOMETERS"] = 193] = "KILOMETERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["METERS"] = 31] = "METERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["INCHES"] = 32] = "INCHES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["FEET"] = 33] = "FEET";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CANDELAS"] = 179] = "CANDELAS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["LUMENS"] = 36] = "LUMENS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["LUXES"] = 37] = "LUXES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["GRAMS"] = 195] = "GRAMS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["TONS"] = 41] = "TONS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["WATTS"] = 47] = "WATTS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOWATTS"] = 48] = "KILOWATTS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PASCALS"] = 53] = "PASCALS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIBARS"] = 134] = "MILLIBARS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["BARS"] = 55] = "BARS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["YEARS"] = 67] = "YEARS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MONTHS"] = 68] = "MONTHS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["WEEKS"] = 69] = "WEEKS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DAYS"] = 70] = "DAYS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["HOURS"] = 71] = "HOURS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MINUTES"] = 72] = "MINUTES";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["SECONDS"] = 73] = "SECONDS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLILITERS"] = 197] = "MILLILITERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["LITERS"] = 82] = "LITERS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["US_GALLONS"] = 83] = "US_GALLONS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["NO_UNITS"] = 95] = "NO_UNITS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PERCENT"] = 98] = "PERCENT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PER_SECOND"] = 101] = "PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["RADIANS"] = 103] = "RADIANS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PER_MILLE"] = 207] = "PER_MILLE";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["BECQUERELS"] = 222] = "BECQUERELS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["GRAY"] = 225] = "GRAY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MICROGRAY"] = 227] = "MICROGRAY";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["SIEVERTS"] = 228] = "SIEVERTS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIREMS"] = 47814] = "MILLIREMS";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["PH"] = 234] = "PH";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                                                  EngineeringUnits2222222222222[EngineeringUnits2222222222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                                                  return EngineeringUnits2222222222222;
                                                })(EngineeringUnits222222222222 || {});
                                                var EscalatorFault222222222222 = /* @__PURE__ */ ((EscalatorFault2222222222222) => {
                                                  EscalatorFault2222222222222[EscalatorFault2222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                  EscalatorFault2222222222222[EscalatorFault2222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                  EscalatorFault2222222222222[EscalatorFault2222222222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                                                  EscalatorFault2222222222222[EscalatorFault2222222222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                                                  EscalatorFault2222222222222[EscalatorFault2222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                  EscalatorFault2222222222222[EscalatorFault2222222222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                                                  EscalatorFault2222222222222[EscalatorFault2222222222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                                                  EscalatorFault2222222222222[EscalatorFault2222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                  EscalatorFault2222222222222[EscalatorFault2222222222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                                                  return EscalatorFault2222222222222;
                                                })(EscalatorFault222222222222 || {});
                                                var EscalatorMode222222222222 = /* @__PURE__ */ ((EscalatorMode2222222222222) => {
                                                  EscalatorMode2222222222222[EscalatorMode2222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                  EscalatorMode2222222222222[EscalatorMode2222222222222["STOP"] = 1] = "STOP";
                                                  EscalatorMode2222222222222[EscalatorMode2222222222222["UP"] = 2] = "UP";
                                                  EscalatorMode2222222222222[EscalatorMode2222222222222["DOWN"] = 3] = "DOWN";
                                                  EscalatorMode2222222222222[EscalatorMode2222222222222["INSPECTION"] = 4] = "INSPECTION";
                                                  EscalatorMode2222222222222[EscalatorMode2222222222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                                                  return EscalatorMode2222222222222;
                                                })(EscalatorMode222222222222 || {});
                                                var EscalatorOperationDirection222222222222 = /* @__PURE__ */ ((EscalatorOperationDirection2222222222222) => {
                                                  EscalatorOperationDirection2222222222222[EscalatorOperationDirection2222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                  EscalatorOperationDirection2222222222222[EscalatorOperationDirection2222222222222["STOPPED"] = 1] = "STOPPED";
                                                  EscalatorOperationDirection2222222222222[EscalatorOperationDirection2222222222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                                                  EscalatorOperationDirection2222222222222[EscalatorOperationDirection2222222222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                                                  EscalatorOperationDirection2222222222222[EscalatorOperationDirection2222222222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                                                  EscalatorOperationDirection2222222222222[EscalatorOperationDirection2222222222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                                                  return EscalatorOperationDirection2222222222222;
                                                })(EscalatorOperationDirection222222222222 || {});
                                                var EventState222222222222 = /* @__PURE__ */ ((EventState2222222222222) => {
                                                  EventState2222222222222[EventState2222222222222["NORMAL"] = 0] = "NORMAL";
                                                  EventState2222222222222[EventState2222222222222["FAULT"] = 1] = "FAULT";
                                                  EventState2222222222222[EventState2222222222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                                                  EventState2222222222222[EventState2222222222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                                                  EventState2222222222222[EventState2222222222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                                                  EventState2222222222222[EventState2222222222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                                                  return EventState2222222222222;
                                                })(EventState222222222222 || {});
                                                var EventType222222222222 = /* @__PURE__ */ ((EventType2222222222222) => {
                                                  EventType2222222222222[EventType2222222222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                                                  EventType2222222222222[EventType2222222222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                                                  EventType2222222222222[EventType2222222222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                                                  EventType2222222222222[EventType2222222222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                                                  EventType2222222222222[EventType2222222222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                                                  EventType2222222222222[EventType2222222222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                                                  EventType2222222222222[EventType2222222222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                                                  EventType2222222222222[EventType2222222222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                                                  EventType2222222222222[EventType2222222222222["EXTENDED"] = 9] = "EXTENDED";
                                                  EventType2222222222222[EventType2222222222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                                                  EventType2222222222222[EventType2222222222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                                                  EventType2222222222222[EventType2222222222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                                                  EventType2222222222222[EventType2222222222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                                                  EventType2222222222222[EventType2222222222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                                                  EventType2222222222222[EventType2222222222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                                                  EventType2222222222222[EventType2222222222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                                                  EventType2222222222222[EventType2222222222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                                                  EventType2222222222222[EventType2222222222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                                                  EventType2222222222222[EventType2222222222222["NONE"] = 20] = "NONE";
                                                  EventType2222222222222[EventType2222222222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                                                  EventType2222222222222[EventType2222222222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                                                  return EventType2222222222222;
                                                })(EventType222222222222 || {});
                                                var FaultType222222222222 = /* @__PURE__ */ ((FaultType2222222222222) => {
                                                  FaultType2222222222222[FaultType2222222222222["NONE"] = 0] = "NONE";
                                                  FaultType2222222222222[FaultType2222222222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                                                  FaultType2222222222222[FaultType2222222222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                                                  FaultType2222222222222[FaultType2222222222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                                                  FaultType2222222222222[FaultType2222222222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                                                  FaultType2222222222222[FaultType2222222222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                                                  FaultType2222222222222[FaultType2222222222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                                                  FaultType2222222222222[FaultType2222222222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                                                  return FaultType2222222222222;
                                                })(FaultType222222222222 || {});
                                                var FileAccessMethod222222222222 = /* @__PURE__ */ ((FileAccessMethod2222222222222) => {
                                                  FileAccessMethod2222222222222[FileAccessMethod2222222222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                                                  FileAccessMethod2222222222222[FileAccessMethod2222222222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                                                  return FileAccessMethod2222222222222;
                                                })(FileAccessMethod222222222222 || {});
                                                var IPMode222222222222 = /* @__PURE__ */ ((IPMode2222222222222) => {
                                                  IPMode2222222222222[IPMode2222222222222["NORMAL"] = 0] = "NORMAL";
                                                  IPMode2222222222222[IPMode2222222222222["FOREIGN"] = 1] = "FOREIGN";
                                                  IPMode2222222222222[IPMode2222222222222["BBMD"] = 2] = "BBMD";
                                                  return IPMode2222222222222;
                                                })(IPMode222222222222 || {});
                                                var LifeSafetyMode222222222222 = /* @__PURE__ */ ((LifeSafetyMode2222222222222) => {
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["OFF"] = 0] = "OFF";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["ON"] = 1] = "ON";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["TEST"] = 2] = "TEST";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["MANNED"] = 3] = "MANNED";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["UNMANNED"] = 4] = "UNMANNED";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["ARMED"] = 5] = "ARMED";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["DISARMED"] = 6] = "DISARMED";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["PREARMED"] = 7] = "PREARMED";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["SLOW"] = 8] = "SLOW";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["FAST"] = 9] = "FAST";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["ENABLED"] = 11] = "ENABLED";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["DISABLED"] = 12] = "DISABLED";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                                                  LifeSafetyMode2222222222222[LifeSafetyMode2222222222222["DEFAULT"] = 14] = "DEFAULT";
                                                  return LifeSafetyMode2222222222222;
                                                })(LifeSafetyMode222222222222 || {});
                                                var LifeSafetyOperation222222222222 = /* @__PURE__ */ ((LifeSafetyOperation2222222222222) => {
                                                  LifeSafetyOperation2222222222222[LifeSafetyOperation2222222222222["NONE"] = 0] = "NONE";
                                                  LifeSafetyOperation2222222222222[LifeSafetyOperation2222222222222["SILENCE"] = 1] = "SILENCE";
                                                  LifeSafetyOperation2222222222222[LifeSafetyOperation2222222222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                                                  LifeSafetyOperation2222222222222[LifeSafetyOperation2222222222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                                                  LifeSafetyOperation2222222222222[LifeSafetyOperation2222222222222["RESET"] = 4] = "RESET";
                                                  LifeSafetyOperation2222222222222[LifeSafetyOperation2222222222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                                                  LifeSafetyOperation2222222222222[LifeSafetyOperation2222222222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                                                  LifeSafetyOperation2222222222222[LifeSafetyOperation2222222222222["UNSILENCE"] = 7] = "UNSILENCE";
                                                  LifeSafetyOperation2222222222222[LifeSafetyOperation2222222222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                                                  LifeSafetyOperation2222222222222[LifeSafetyOperation2222222222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                                                  return LifeSafetyOperation2222222222222;
                                                })(LifeSafetyOperation222222222222 || {});
                                                var LifeSafetyState222222222222 = /* @__PURE__ */ ((LifeSafetyState2222222222222) => {
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["QUIET"] = 0] = "QUIET";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["ALARM"] = 2] = "ALARM";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["FAULT"] = 3] = "FAULT";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["NOT_READY"] = 6] = "NOT_READY";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["ACTIVE"] = 7] = "ACTIVE";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["TAMPER"] = 8] = "TAMPER";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["HOLDUP"] = 13] = "HOLDUP";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["DURESS"] = 14] = "DURESS";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["ABNORMAL"] = 16] = "ABNORMAL";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["DELAYED"] = 18] = "DELAYED";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["BLOCKED"] = 19] = "BLOCKED";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                                                  LifeSafetyState2222222222222[LifeSafetyState2222222222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                                                  return LifeSafetyState2222222222222;
                                                })(LifeSafetyState222222222222 || {});
                                                var LiftCarDirection222222222222 = /* @__PURE__ */ ((LiftCarDirection2222222222222) => {
                                                  LiftCarDirection2222222222222[LiftCarDirection2222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                  LiftCarDirection2222222222222[LiftCarDirection2222222222222["NONE"] = 1] = "NONE";
                                                  LiftCarDirection2222222222222[LiftCarDirection2222222222222["STOPPED"] = 2] = "STOPPED";
                                                  LiftCarDirection2222222222222[LiftCarDirection2222222222222["UP"] = 3] = "UP";
                                                  LiftCarDirection2222222222222[LiftCarDirection2222222222222["DOWN"] = 4] = "DOWN";
                                                  LiftCarDirection2222222222222[LiftCarDirection2222222222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                                                  return LiftCarDirection2222222222222;
                                                })(LiftCarDirection222222222222 || {});
                                                var LiftCarDoorCommand222222222222 = /* @__PURE__ */ ((LiftCarDoorCommand2222222222222) => {
                                                  LiftCarDoorCommand2222222222222[LiftCarDoorCommand2222222222222["NONE"] = 0] = "NONE";
                                                  LiftCarDoorCommand2222222222222[LiftCarDoorCommand2222222222222["OPEN"] = 1] = "OPEN";
                                                  LiftCarDoorCommand2222222222222[LiftCarDoorCommand2222222222222["CLOSE"] = 2] = "CLOSE";
                                                  return LiftCarDoorCommand2222222222222;
                                                })(LiftCarDoorCommand222222222222 || {});
                                                var LiftCarDriveStatus222222222222 = /* @__PURE__ */ ((LiftCarDriveStatus2222222222222) => {
                                                  LiftCarDriveStatus2222222222222[LiftCarDriveStatus2222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                  LiftCarDriveStatus2222222222222[LiftCarDriveStatus2222222222222["STATIONARY"] = 1] = "STATIONARY";
                                                  LiftCarDriveStatus2222222222222[LiftCarDriveStatus2222222222222["BRAKING"] = 2] = "BRAKING";
                                                  LiftCarDriveStatus2222222222222[LiftCarDriveStatus2222222222222["ACCELERATE"] = 3] = "ACCELERATE";
                                                  LiftCarDriveStatus2222222222222[LiftCarDriveStatus2222222222222["DECELERATE"] = 4] = "DECELERATE";
                                                  LiftCarDriveStatus2222222222222[LiftCarDriveStatus2222222222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                                                  LiftCarDriveStatus2222222222222[LiftCarDriveStatus2222222222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                                                  LiftCarDriveStatus2222222222222[LiftCarDriveStatus2222222222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                                                  LiftCarDriveStatus2222222222222[LiftCarDriveStatus2222222222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                                                  LiftCarDriveStatus2222222222222[LiftCarDriveStatus2222222222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                                                  return LiftCarDriveStatus2222222222222;
                                                })(LiftCarDriveStatus222222222222 || {});
                                                var LiftCarMode222222222222 = /* @__PURE__ */ ((LiftCarMode2222222222222) => {
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["NORMAL"] = 1] = "NORMAL";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["VIP"] = 2] = "VIP";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["HOMING"] = 3] = "HOMING";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["PARKING"] = 4] = "PARKING";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["INSPECTION"] = 8] = "INSPECTION";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                                                  LiftCarMode2222222222222[LiftCarMode2222222222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                                                  return LiftCarMode2222222222222;
                                                })(LiftCarMode222222222222 || {});
                                                var LiftFault222222222222 = /* @__PURE__ */ ((LiftFault2222222222222) => {
                                                  LiftFault2222222222222[LiftFault2222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                                  LiftFault2222222222222[LiftFault2222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                                  LiftFault2222222222222[LiftFault2222222222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                                                  LiftFault2222222222222[LiftFault2222222222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                                                  LiftFault2222222222222[LiftFault2222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                                  LiftFault2222222222222[LiftFault2222222222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                                                  LiftFault2222222222222[LiftFault2222222222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                                                  LiftFault2222222222222[LiftFault2222222222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                                                  LiftFault2222222222222[LiftFault2222222222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                                                  LiftFault2222222222222[LiftFault2222222222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                                                  LiftFault2222222222222[LiftFault2222222222222["START_FAILURE"] = 10] = "START_FAILURE";
                                                  LiftFault2222222222222[LiftFault2222222222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                                                  LiftFault2222222222222[LiftFault2222222222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                                                  LiftFault2222222222222[LiftFault2222222222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                                                  LiftFault2222222222222[LiftFault2222222222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                                                  LiftFault2222222222222[LiftFault2222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                                                  LiftFault2222222222222[LiftFault2222222222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                                                  return LiftFault2222222222222;
                                                })(LiftFault222222222222 || {});
                                                var LiftGroupMode222222222222 = /* @__PURE__ */ ((LiftGroupMode2222222222222) => {
                                                  LiftGroupMode2222222222222[LiftGroupMode2222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                  LiftGroupMode2222222222222[LiftGroupMode2222222222222["NORMAL"] = 1] = "NORMAL";
                                                  LiftGroupMode2222222222222[LiftGroupMode2222222222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                                                  LiftGroupMode2222222222222[LiftGroupMode2222222222222["TWO_WAY"] = 3] = "TWO_WAY";
                                                  LiftGroupMode2222222222222[LiftGroupMode2222222222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                                                  LiftGroupMode2222222222222[LiftGroupMode2222222222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                                                  LiftGroupMode2222222222222[LiftGroupMode2222222222222["UP_PEAK"] = 6] = "UP_PEAK";
                                                  return LiftGroupMode2222222222222;
                                                })(LiftGroupMode222222222222 || {});
                                                var LightingInProgress222222222222 = /* @__PURE__ */ ((LightingInProgress2222222222222) => {
                                                  LightingInProgress2222222222222[LightingInProgress2222222222222["IDLE"] = 0] = "IDLE";
                                                  LightingInProgress2222222222222[LightingInProgress2222222222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                                                  LightingInProgress2222222222222[LightingInProgress2222222222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                                                  LightingInProgress2222222222222[LightingInProgress2222222222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                                                  LightingInProgress2222222222222[LightingInProgress2222222222222["OTHER"] = 4] = "OTHER";
                                                  return LightingInProgress2222222222222;
                                                })(LightingInProgress222222222222 || {});
                                                var LightingOperation222222222222 = /* @__PURE__ */ ((LightingOperation2222222222222) => {
                                                  LightingOperation2222222222222[LightingOperation2222222222222["NONE"] = 0] = "NONE";
                                                  LightingOperation2222222222222[LightingOperation2222222222222["FADE_TO"] = 1] = "FADE_TO";
                                                  LightingOperation2222222222222[LightingOperation2222222222222["RAMP_TO"] = 2] = "RAMP_TO";
                                                  LightingOperation2222222222222[LightingOperation2222222222222["STEP_UP"] = 3] = "STEP_UP";
                                                  LightingOperation2222222222222[LightingOperation2222222222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                                                  LightingOperation2222222222222[LightingOperation2222222222222["STEP_ON"] = 5] = "STEP_ON";
                                                  LightingOperation2222222222222[LightingOperation2222222222222["STEP_OFF"] = 6] = "STEP_OFF";
                                                  LightingOperation2222222222222[LightingOperation2222222222222["WARN"] = 7] = "WARN";
                                                  LightingOperation2222222222222[LightingOperation2222222222222["WARN_OFF"] = 8] = "WARN_OFF";
                                                  LightingOperation2222222222222[LightingOperation2222222222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                                                  LightingOperation2222222222222[LightingOperation2222222222222["STOP"] = 10] = "STOP";
                                                  return LightingOperation2222222222222;
                                                })(LightingOperation222222222222 || {});
                                                var LightingTransition222222222222 = /* @__PURE__ */ ((LightingTransition2222222222222) => {
                                                  LightingTransition2222222222222[LightingTransition2222222222222["NONE"] = 0] = "NONE";
                                                  LightingTransition2222222222222[LightingTransition2222222222222["FADE"] = 1] = "FADE";
                                                  LightingTransition2222222222222[LightingTransition2222222222222["RAMP"] = 2] = "RAMP";
                                                  return LightingTransition2222222222222;
                                                })(LightingTransition222222222222 || {});
                                                var LockStatus222222222222 = /* @__PURE__ */ ((LockStatus2222222222222) => {
                                                  LockStatus2222222222222[LockStatus2222222222222["LOCKED"] = 0] = "LOCKED";
                                                  LockStatus2222222222222[LockStatus2222222222222["UNLOCKED"] = 1] = "UNLOCKED";
                                                  LockStatus2222222222222[LockStatus2222222222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                                                  LockStatus2222222222222[LockStatus2222222222222["UNUSED"] = 3] = "UNUSED";
                                                  LockStatus2222222222222[LockStatus2222222222222["UNKNOWN"] = 4] = "UNKNOWN";
                                                  return LockStatus2222222222222;
                                                })(LockStatus222222222222 || {});
                                                var LoggingType222222222222 = /* @__PURE__ */ ((LoggingType2222222222222) => {
                                                  LoggingType2222222222222[LoggingType2222222222222["POLLED"] = 0] = "POLLED";
                                                  LoggingType2222222222222[LoggingType2222222222222["COV"] = 1] = "COV";
                                                  LoggingType2222222222222[LoggingType2222222222222["TRIGGERED"] = 2] = "TRIGGERED";
                                                  return LoggingType2222222222222;
                                                })(LoggingType222222222222 || {});
                                                var Maintenance222222222222 = /* @__PURE__ */ ((Maintenance2222222222222) => {
                                                  Maintenance2222222222222[Maintenance2222222222222["NONE"] = 0] = "NONE";
                                                  Maintenance2222222222222[Maintenance2222222222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                                                  Maintenance2222222222222[Maintenance2222222222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                                                  Maintenance2222222222222[Maintenance2222222222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                                                  return Maintenance2222222222222;
                                                })(Maintenance222222222222 || {});
                                                var NetworkNumberQuality222222222222 = /* @__PURE__ */ ((NetworkNumberQuality2222222222222) => {
                                                  NetworkNumberQuality2222222222222[NetworkNumberQuality2222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                  NetworkNumberQuality2222222222222[NetworkNumberQuality2222222222222["LEARNED"] = 1] = "LEARNED";
                                                  NetworkNumberQuality2222222222222[NetworkNumberQuality2222222222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                                                  NetworkNumberQuality2222222222222[NetworkNumberQuality2222222222222["CONFIGURED"] = 3] = "CONFIGURED";
                                                  return NetworkNumberQuality2222222222222;
                                                })(NetworkNumberQuality222222222222 || {});
                                                var NetworkPortCommand222222222222 = /* @__PURE__ */ ((NetworkPortCommand2222222222222) => {
                                                  NetworkPortCommand2222222222222[NetworkPortCommand2222222222222["IDLE"] = 0] = "IDLE";
                                                  NetworkPortCommand2222222222222[NetworkPortCommand2222222222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                                                  NetworkPortCommand2222222222222[NetworkPortCommand2222222222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                                                  NetworkPortCommand2222222222222[NetworkPortCommand2222222222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                                                  NetworkPortCommand2222222222222[NetworkPortCommand2222222222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                                                  NetworkPortCommand2222222222222[NetworkPortCommand2222222222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                                                  NetworkPortCommand2222222222222[NetworkPortCommand2222222222222["DISCONNECT"] = 6] = "DISCONNECT";
                                                  NetworkPortCommand2222222222222[NetworkPortCommand2222222222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                                                  return NetworkPortCommand2222222222222;
                                                })(NetworkPortCommand222222222222 || {});
                                                var NetworkType222222222222 = /* @__PURE__ */ ((NetworkType2222222222222) => {
                                                  NetworkType2222222222222[NetworkType2222222222222["ETHERNET"] = 0] = "ETHERNET";
                                                  NetworkType2222222222222[NetworkType2222222222222["ARCNET"] = 1] = "ARCNET";
                                                  NetworkType2222222222222[NetworkType2222222222222["MSTP"] = 2] = "MSTP";
                                                  NetworkType2222222222222[NetworkType2222222222222["PTP"] = 3] = "PTP";
                                                  NetworkType2222222222222[NetworkType2222222222222["LONTALK"] = 4] = "LONTALK";
                                                  NetworkType2222222222222[NetworkType2222222222222["IPV4"] = 5] = "IPV4";
                                                  NetworkType2222222222222[NetworkType2222222222222["ZIGBEE"] = 6] = "ZIGBEE";
                                                  NetworkType2222222222222[NetworkType2222222222222["VIRTUAL"] = 7] = "VIRTUAL";
                                                  NetworkType2222222222222[NetworkType2222222222222["IPV6"] = 9] = "IPV6";
                                                  NetworkType2222222222222[NetworkType2222222222222["SERIAL"] = 10] = "SERIAL";
                                                  return NetworkType2222222222222;
                                                })(NetworkType222222222222 || {});
                                                var NodeType222222222222 = /* @__PURE__ */ ((NodeType2222222222222) => {
                                                  NodeType2222222222222[NodeType2222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                  NodeType2222222222222[NodeType2222222222222["SYSTEM"] = 1] = "SYSTEM";
                                                  NodeType2222222222222[NodeType2222222222222["NETWORK"] = 2] = "NETWORK";
                                                  NodeType2222222222222[NodeType2222222222222["DEVICE"] = 3] = "DEVICE";
                                                  NodeType2222222222222[NodeType2222222222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                                                  NodeType2222222222222[NodeType2222222222222["AREA"] = 5] = "AREA";
                                                  NodeType2222222222222[NodeType2222222222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                                                  NodeType2222222222222[NodeType2222222222222["POINT"] = 7] = "POINT";
                                                  NodeType2222222222222[NodeType2222222222222["COLLECTION"] = 8] = "COLLECTION";
                                                  NodeType2222222222222[NodeType2222222222222["PROPERTY"] = 9] = "PROPERTY";
                                                  NodeType2222222222222[NodeType2222222222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                                                  NodeType2222222222222[NodeType2222222222222["OTHER"] = 11] = "OTHER";
                                                  NodeType2222222222222[NodeType2222222222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                                                  NodeType2222222222222[NodeType2222222222222["BUILDING"] = 13] = "BUILDING";
                                                  NodeType2222222222222[NodeType2222222222222["FLOOR"] = 14] = "FLOOR";
                                                  NodeType2222222222222[NodeType2222222222222["SECTION"] = 15] = "SECTION";
                                                  NodeType2222222222222[NodeType2222222222222["MODULE"] = 16] = "MODULE";
                                                  NodeType2222222222222[NodeType2222222222222["TREE"] = 17] = "TREE";
                                                  NodeType2222222222222[NodeType2222222222222["MEMBER"] = 18] = "MEMBER";
                                                  NodeType2222222222222[NodeType2222222222222["PROTOCOL"] = 19] = "PROTOCOL";
                                                  NodeType2222222222222[NodeType2222222222222["ROOM"] = 20] = "ROOM";
                                                  NodeType2222222222222[NodeType2222222222222["ZONE"] = 21] = "ZONE";
                                                  return NodeType2222222222222;
                                                })(NodeType222222222222 || {});
                                                var NotifyType222222222222 = /* @__PURE__ */ ((NotifyType2222222222222) => {
                                                  NotifyType2222222222222[NotifyType2222222222222["ALARM"] = 0] = "ALARM";
                                                  NotifyType2222222222222[NotifyType2222222222222["EVENT"] = 1] = "EVENT";
                                                  NotifyType2222222222222[NotifyType2222222222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                                                  return NotifyType2222222222222;
                                                })(NotifyType222222222222 || {});
                                                var ObjectType222222222222 = /* @__PURE__ */ ((ObjectType2222222222222) => {
                                                  ObjectType2222222222222[ObjectType2222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                  ObjectType2222222222222[ObjectType2222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                  ObjectType2222222222222[ObjectType2222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                  ObjectType2222222222222[ObjectType2222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                  ObjectType2222222222222[ObjectType2222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                  ObjectType2222222222222[ObjectType2222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                  ObjectType2222222222222[ObjectType2222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                  ObjectType2222222222222[ObjectType2222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                  ObjectType2222222222222[ObjectType2222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                  ObjectType2222222222222[ObjectType2222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                  ObjectType2222222222222[ObjectType2222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                  ObjectType2222222222222[ObjectType2222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                  ObjectType2222222222222[ObjectType2222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                  ObjectType2222222222222[ObjectType2222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                  ObjectType2222222222222[ObjectType2222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                  ObjectType2222222222222[ObjectType2222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                  ObjectType2222222222222[ObjectType2222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["COMMAND"] = 7] = "COMMAND";
                                                  ObjectType2222222222222[ObjectType2222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                  ObjectType2222222222222[ObjectType2222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["DEVICE"] = 8] = "DEVICE";
                                                  ObjectType2222222222222[ObjectType2222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                  ObjectType2222222222222[ObjectType2222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                  ObjectType2222222222222[ObjectType2222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                  ObjectType2222222222222[ObjectType2222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                  ObjectType2222222222222[ObjectType2222222222222["FILE"] = 10] = "FILE";
                                                  ObjectType2222222222222[ObjectType2222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                  ObjectType2222222222222[ObjectType2222222222222["GROUP"] = 11] = "GROUP";
                                                  ObjectType2222222222222[ObjectType2222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                  ObjectType2222222222222[ObjectType2222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                  ObjectType2222222222222[ObjectType2222222222222["LIFT"] = 59] = "LIFT";
                                                  ObjectType2222222222222[ObjectType2222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                  ObjectType2222222222222[ObjectType2222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                  ObjectType2222222222222[ObjectType2222222222222["LOOP"] = 12] = "LOOP";
                                                  ObjectType2222222222222[ObjectType2222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                  ObjectType2222222222222[ObjectType2222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                  ObjectType2222222222222[ObjectType2222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                  ObjectType2222222222222[ObjectType2222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                  ObjectType2222222222222[ObjectType2222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                  ObjectType2222222222222[ObjectType2222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                  ObjectType2222222222222[ObjectType2222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                  ObjectType2222222222222[ObjectType2222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                  ObjectType2222222222222[ObjectType2222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                  ObjectType2222222222222[ObjectType2222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                  ObjectType2222222222222[ObjectType2222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                  ObjectType2222222222222[ObjectType2222222222222["TIMER"] = 31] = "TIMER";
                                                  ObjectType2222222222222[ObjectType2222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                  ObjectType2222222222222[ObjectType2222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                  return ObjectType2222222222222;
                                                })(ObjectType222222222222 || {});
                                                var Polarity222222222222 = /* @__PURE__ */ ((Polarity2222222222222) => {
                                                  Polarity2222222222222[Polarity2222222222222["NORMAL"] = 0] = "NORMAL";
                                                  Polarity2222222222222[Polarity2222222222222["REVERSE"] = 1] = "REVERSE";
                                                  return Polarity2222222222222;
                                                })(Polarity222222222222 || {});
                                                var ProgramError222222222222 = /* @__PURE__ */ ((ProgramError2222222222222) => {
                                                  ProgramError2222222222222[ProgramError2222222222222["NORMAL"] = 0] = "NORMAL";
                                                  ProgramError2222222222222[ProgramError2222222222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                                                  ProgramError2222222222222[ProgramError2222222222222["INTERNAL"] = 2] = "INTERNAL";
                                                  ProgramError2222222222222[ProgramError2222222222222["PROGRAM"] = 3] = "PROGRAM";
                                                  ProgramError2222222222222[ProgramError2222222222222["OTHER"] = 4] = "OTHER";
                                                  return ProgramError2222222222222;
                                                })(ProgramError222222222222 || {});
                                                var ProgramRequest222222222222 = /* @__PURE__ */ ((ProgramRequest2222222222222) => {
                                                  ProgramRequest2222222222222[ProgramRequest2222222222222["READY"] = 0] = "READY";
                                                  ProgramRequest2222222222222[ProgramRequest2222222222222["LOAD"] = 1] = "LOAD";
                                                  ProgramRequest2222222222222[ProgramRequest2222222222222["RUN"] = 2] = "RUN";
                                                  ProgramRequest2222222222222[ProgramRequest2222222222222["HALT"] = 3] = "HALT";
                                                  ProgramRequest2222222222222[ProgramRequest2222222222222["RESTART"] = 4] = "RESTART";
                                                  ProgramRequest2222222222222[ProgramRequest2222222222222["UNLOAD"] = 5] = "UNLOAD";
                                                  return ProgramRequest2222222222222;
                                                })(ProgramRequest222222222222 || {});
                                                var ProgramState222222222222 = /* @__PURE__ */ ((ProgramState2222222222222) => {
                                                  ProgramState2222222222222[ProgramState2222222222222["IDLE"] = 0] = "IDLE";
                                                  ProgramState2222222222222[ProgramState2222222222222["LOADING"] = 1] = "LOADING";
                                                  ProgramState2222222222222[ProgramState2222222222222["RUNNING"] = 2] = "RUNNING";
                                                  ProgramState2222222222222[ProgramState2222222222222["WAITING"] = 3] = "WAITING";
                                                  ProgramState2222222222222[ProgramState2222222222222["HALTED"] = 4] = "HALTED";
                                                  ProgramState2222222222222[ProgramState2222222222222["UNLOADING"] = 5] = "UNLOADING";
                                                  return ProgramState2222222222222;
                                                })(ProgramState222222222222 || {});
                                                var PropertyIdentifier222222222222 = /* @__PURE__ */ ((PropertyIdentifier2222222222222) => {
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACTION"] = 2] = "ACTION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ALL"] = 8] = "ALL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ARCHIVE"] = 13] = "ARCHIVE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BIAS"] = 14] = "BIAS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BIT_MASK"] = 342] = "BIT_MASK";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CAR_MODE"] = 456] = "CAR_MODE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["COMMAND"] = 417] = "COMMAND";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["COUNT"] = 177] = "COUNT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DATE_LIST"] = 23] = "DATE_LIST";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DEADBAND"] = 25] = "DEADBAND";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ENABLE"] = 133] = "ENABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["GROUP_ID"] = 465] = "GROUP_ID";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["IS_UTC"] = 344] = "IS_UTC";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["KEY_SETS"] = 330] = "KEY_SETS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOCATION"] = 58] = "LOCATION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOCKOUT"] = 282] = "LOCKOUT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MEMBERS"] = 286] = "MEMBERS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MODE"] = 160] = "MODE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OPTIONAL"] = 80] = "OPTIONAL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["POLARITY"] = 84] = "POLARITY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["POWER"] = 384] = "POWER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["POWER_MODE"] = 479] = "POWER_MODE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PRESCALE"] = 185] = "PRESCALE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PRIORITY"] = 86] = "PRIORITY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["READ_ONLY"] = 99] = "READ_ONLY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["RELIABILITY"] = 103] = "RELIABILITY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["REPRESENTS"] = 491] = "REPRESENTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["REQUIRED"] = 105] = "REQUIRED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["RESOLUTION"] = 106] = "RESOLUTION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SCALE"] = 187] = "SCALE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SETPOINT"] = 108] = "SETPOINT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SETTING"] = 162] = "SETTING";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SILENCED"] = 163] = "SILENCED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["START_TIME"] = 142] = "START_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["STOP_TIME"] = 143] = "STOP_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TAGS"] = 486] = "TAGS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TRANSITION"] = 385] = "TRANSITION";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["TRIGGER"] = 205] = "TRIGGER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["UNITS"] = 117] = "UNITS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["USER_NAME"] = 317] = "USER_NAME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["USER_TYPE"] = 318] = "USER_TYPE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["VALUE_SET"] = 191] = "VALUE_SET";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                                                  PropertyIdentifier2222222222222[PropertyIdentifier2222222222222["ZONE_TO"] = 321] = "ZONE_TO";
                                                  return PropertyIdentifier2222222222222;
                                                })(PropertyIdentifier222222222222 || {});
                                                var ProtocolLevel222222222222 = /* @__PURE__ */ ((ProtocolLevel2222222222222) => {
                                                  ProtocolLevel2222222222222[ProtocolLevel2222222222222["PHYSICAL"] = 0] = "PHYSICAL";
                                                  ProtocolLevel2222222222222[ProtocolLevel2222222222222["PROTOCOL"] = 1] = "PROTOCOL";
                                                  ProtocolLevel2222222222222[ProtocolLevel2222222222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                                                  ProtocolLevel2222222222222[ProtocolLevel2222222222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                                                  return ProtocolLevel2222222222222;
                                                })(ProtocolLevel222222222222 || {});
                                                var Relationship222222222222 = /* @__PURE__ */ ((Relationship2222222222222) => {
                                                  Relationship2222222222222[Relationship2222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                  Relationship2222222222222[Relationship2222222222222["DEFAULT"] = 1] = "DEFAULT";
                                                  Relationship2222222222222[Relationship2222222222222["CONTAINS"] = 2] = "CONTAINS";
                                                  Relationship2222222222222[Relationship2222222222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                                                  Relationship2222222222222[Relationship2222222222222["USES"] = 4] = "USES";
                                                  Relationship2222222222222[Relationship2222222222222["USED_BY"] = 5] = "USED_BY";
                                                  Relationship2222222222222[Relationship2222222222222["COMMANDS"] = 6] = "COMMANDS";
                                                  Relationship2222222222222[Relationship2222222222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                                                  Relationship2222222222222[Relationship2222222222222["ADJUSTS"] = 8] = "ADJUSTS";
                                                  Relationship2222222222222[Relationship2222222222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                                                  Relationship2222222222222[Relationship2222222222222["INGRESS"] = 10] = "INGRESS";
                                                  Relationship2222222222222[Relationship2222222222222["EGRESS"] = 11] = "EGRESS";
                                                  Relationship2222222222222[Relationship2222222222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                                                  Relationship2222222222222[Relationship2222222222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                                                  Relationship2222222222222[Relationship2222222222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                                                  Relationship2222222222222[Relationship2222222222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                                                  Relationship2222222222222[Relationship2222222222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                                                  Relationship2222222222222[Relationship2222222222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                                                  Relationship2222222222222[Relationship2222222222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                                                  Relationship2222222222222[Relationship2222222222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                                                  Relationship2222222222222[Relationship2222222222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                                                  Relationship2222222222222[Relationship2222222222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                                                  Relationship2222222222222[Relationship2222222222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                                                  Relationship2222222222222[Relationship2222222222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                                                  Relationship2222222222222[Relationship2222222222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                                                  Relationship2222222222222[Relationship2222222222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                                                  Relationship2222222222222[Relationship2222222222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                                                  Relationship2222222222222[Relationship2222222222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                                                  Relationship2222222222222[Relationship2222222222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                                                  Relationship2222222222222[Relationship2222222222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                                                  return Relationship2222222222222;
                                                })(Relationship222222222222 || {});
                                                var Reliability222222222222 = /* @__PURE__ */ ((Reliability2222222222222) => {
                                                  Reliability2222222222222[Reliability2222222222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                                                  Reliability2222222222222[Reliability2222222222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                                                  Reliability2222222222222[Reliability2222222222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                                                  Reliability2222222222222[Reliability2222222222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                                                  Reliability2222222222222[Reliability2222222222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                                                  Reliability2222222222222[Reliability2222222222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                                                  Reliability2222222222222[Reliability2222222222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                                                  Reliability2222222222222[Reliability2222222222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                                                  Reliability2222222222222[Reliability2222222222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                                                  Reliability2222222222222[Reliability2222222222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                                                  Reliability2222222222222[Reliability2222222222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                                                  Reliability2222222222222[Reliability2222222222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                                                  Reliability2222222222222[Reliability2222222222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                                                  Reliability2222222222222[Reliability2222222222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                                                  Reliability2222222222222[Reliability2222222222222["TRIPPED"] = 15] = "TRIPPED";
                                                  Reliability2222222222222[Reliability2222222222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                                                  Reliability2222222222222[Reliability2222222222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                                                  Reliability2222222222222[Reliability2222222222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                                                  Reliability2222222222222[Reliability2222222222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                                                  Reliability2222222222222[Reliability2222222222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                                                  Reliability2222222222222[Reliability2222222222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                                                  Reliability2222222222222[Reliability2222222222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                                                  Reliability2222222222222[Reliability2222222222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                                                  Reliability2222222222222[Reliability2222222222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                                                  return Reliability2222222222222;
                                                })(Reliability222222222222 || {});
                                                var RestartReason222222222222 = /* @__PURE__ */ ((RestartReason2222222222222) => {
                                                  RestartReason2222222222222[RestartReason2222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                                  RestartReason2222222222222[RestartReason2222222222222["COLDSTART"] = 1] = "COLDSTART";
                                                  RestartReason2222222222222[RestartReason2222222222222["WARMSTART"] = 2] = "WARMSTART";
                                                  RestartReason2222222222222[RestartReason2222222222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                                                  RestartReason2222222222222[RestartReason2222222222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                                                  RestartReason2222222222222[RestartReason2222222222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                                                  RestartReason2222222222222[RestartReason2222222222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                                                  RestartReason2222222222222[RestartReason2222222222222["SUSPENDED"] = 7] = "SUSPENDED";
                                                  RestartReason2222222222222[RestartReason2222222222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                                                  return RestartReason2222222222222;
                                                })(RestartReason222222222222 || {});
                                                var SecurityLevel222222222222 = /* @__PURE__ */ ((SecurityLevel2222222222222) => {
                                                  SecurityLevel2222222222222[SecurityLevel2222222222222["INCAPABLE"] = 0] = "INCAPABLE";
                                                  SecurityLevel2222222222222[SecurityLevel2222222222222["PLAIN"] = 1] = "PLAIN";
                                                  SecurityLevel2222222222222[SecurityLevel2222222222222["SIGNED"] = 2] = "SIGNED";
                                                  SecurityLevel2222222222222[SecurityLevel2222222222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                                                  SecurityLevel2222222222222[SecurityLevel2222222222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                                                  SecurityLevel2222222222222[SecurityLevel2222222222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                                                  return SecurityLevel2222222222222;
                                                })(SecurityLevel222222222222 || {});
                                                var SecurityPolicy222222222222 = /* @__PURE__ */ ((SecurityPolicy2222222222222) => {
                                                  SecurityPolicy2222222222222[SecurityPolicy2222222222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                                                  SecurityPolicy2222222222222[SecurityPolicy2222222222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                                                  SecurityPolicy2222222222222[SecurityPolicy2222222222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                                                  SecurityPolicy2222222222222[SecurityPolicy2222222222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                                                  return SecurityPolicy2222222222222;
                                                })(SecurityPolicy222222222222 || {});
                                                var Segmentation222222222222 = /* @__PURE__ */ ((Segmentation2222222222222) => {
                                                  Segmentation2222222222222[Segmentation2222222222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                                                  Segmentation2222222222222[Segmentation2222222222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                                                  Segmentation2222222222222[Segmentation2222222222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                                                  Segmentation2222222222222[Segmentation2222222222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                                                  return Segmentation2222222222222;
                                                })(Segmentation222222222222 || {});
                                                var ShedState222222222222 = /* @__PURE__ */ ((ShedState2222222222222) => {
                                                  ShedState2222222222222[ShedState2222222222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                                                  ShedState2222222222222[ShedState2222222222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                                                  ShedState2222222222222[ShedState2222222222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                                                  ShedState2222222222222[ShedState2222222222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                                                  return ShedState2222222222222;
                                                })(ShedState222222222222 || {});
                                                var SilencedState222222222222 = /* @__PURE__ */ ((SilencedState2222222222222) => {
                                                  SilencedState2222222222222[SilencedState2222222222222["UNSILENCED"] = 0] = "UNSILENCED";
                                                  SilencedState2222222222222[SilencedState2222222222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                                                  SilencedState2222222222222[SilencedState2222222222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                                                  SilencedState2222222222222[SilencedState2222222222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                                                  return SilencedState2222222222222;
                                                })(SilencedState222222222222 || {});
                                                var TimerState222222222222 = /* @__PURE__ */ ((TimerState2222222222222) => {
                                                  TimerState2222222222222[TimerState2222222222222["IDLE"] = 0] = "IDLE";
                                                  TimerState2222222222222[TimerState2222222222222["RUNNING"] = 1] = "RUNNING";
                                                  TimerState2222222222222[TimerState2222222222222["EXPIRED"] = 2] = "EXPIRED";
                                                  return TimerState2222222222222;
                                                })(TimerState222222222222 || {});
                                                var TimerTransition222222222222 = /* @__PURE__ */ ((TimerTransition2222222222222) => {
                                                  TimerTransition2222222222222[TimerTransition2222222222222["NONE"] = 0] = "NONE";
                                                  TimerTransition2222222222222[TimerTransition2222222222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                                                  TimerTransition2222222222222[TimerTransition2222222222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                                                  TimerTransition2222222222222[TimerTransition2222222222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                                                  TimerTransition2222222222222[TimerTransition2222222222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                                                  TimerTransition2222222222222[TimerTransition2222222222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                                                  TimerTransition2222222222222[TimerTransition2222222222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                                                  TimerTransition2222222222222[TimerTransition2222222222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                                                  return TimerTransition2222222222222;
                                                })(TimerTransition222222222222 || {});
                                                var VTClass222222222222 = /* @__PURE__ */ ((VTClass2222222222222) => {
                                                  VTClass2222222222222[VTClass2222222222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                                                  VTClass2222222222222[VTClass2222222222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                                                  VTClass2222222222222[VTClass2222222222222["DEC_VT52"] = 2] = "DEC_VT52";
                                                  VTClass2222222222222[VTClass2222222222222["DEC_VT100"] = 3] = "DEC_VT100";
                                                  VTClass2222222222222[VTClass2222222222222["DEC_VT220"] = 4] = "DEC_VT220";
                                                  VTClass2222222222222[VTClass2222222222222["HP_700_94"] = 5] = "HP_700_94";
                                                  VTClass2222222222222[VTClass2222222222222["IBM_3130"] = 6] = "IBM_3130";
                                                  return VTClass2222222222222;
                                                })(VTClass222222222222 || {});
                                                var WriteStatus222222222222 = /* @__PURE__ */ ((WriteStatus2222222222222) => {
                                                  WriteStatus2222222222222[WriteStatus2222222222222["IDLE"] = 0] = "IDLE";
                                                  WriteStatus2222222222222[WriteStatus2222222222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                                                  WriteStatus2222222222222[WriteStatus2222222222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                                                  WriteStatus2222222222222[WriteStatus2222222222222["FAILED"] = 3] = "FAILED";
                                                  return WriteStatus2222222222222;
                                                })(WriteStatus222222222222 || {});
                                                var DaysOfWeek222222222222 = /* @__PURE__ */ ((DaysOfWeek2222222222222) => {
                                                  DaysOfWeek2222222222222[DaysOfWeek2222222222222["MONDAY"] = 0] = "MONDAY";
                                                  DaysOfWeek2222222222222[DaysOfWeek2222222222222["TUESDAY"] = 1] = "TUESDAY";
                                                  DaysOfWeek2222222222222[DaysOfWeek2222222222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                                                  DaysOfWeek2222222222222[DaysOfWeek2222222222222["THURSDAY"] = 3] = "THURSDAY";
                                                  DaysOfWeek2222222222222[DaysOfWeek2222222222222["FRIDAY"] = 4] = "FRIDAY";
                                                  DaysOfWeek2222222222222[DaysOfWeek2222222222222["SATURDAY"] = 5] = "SATURDAY";
                                                  DaysOfWeek2222222222222[DaysOfWeek2222222222222["SUNDAY"] = 6] = "SUNDAY";
                                                  return DaysOfWeek2222222222222;
                                                })(DaysOfWeek222222222222 || {});
                                                var EventTransitionBits222222222222 = /* @__PURE__ */ ((EventTransitionBits2222222222222) => {
                                                  EventTransitionBits2222222222222[EventTransitionBits2222222222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                                                  EventTransitionBits2222222222222[EventTransitionBits2222222222222["TO_FAULT"] = 1] = "TO_FAULT";
                                                  EventTransitionBits2222222222222[EventTransitionBits2222222222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                                                  return EventTransitionBits2222222222222;
                                                })(EventTransitionBits222222222222 || {});
                                                var LimitEnable222222222222 = /* @__PURE__ */ ((LimitEnable2222222222222) => {
                                                  LimitEnable2222222222222[LimitEnable2222222222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                                                  LimitEnable2222222222222[LimitEnable2222222222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                                                  return LimitEnable2222222222222;
                                                })(LimitEnable222222222222 || {});
                                                var LogStatus222222222222 = /* @__PURE__ */ ((LogStatus2222222222222) => {
                                                  LogStatus2222222222222[LogStatus2222222222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                                                  LogStatus2222222222222[LogStatus2222222222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                                                  LogStatus2222222222222[LogStatus2222222222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                                                  return LogStatus2222222222222;
                                                })(LogStatus222222222222 || {});
                                                var ObjectTypesSupported222222222222 = /* @__PURE__ */ ((ObjectTypesSupported2222222222222) => {
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["CALENDAR"] = 6] = "CALENDAR";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["COMMAND"] = 7] = "COMMAND";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["DEVICE"] = 8] = "DEVICE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["FILE"] = 10] = "FILE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["GROUP"] = 11] = "GROUP";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["LOOP"] = 12] = "LOOP";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["PROGRAM"] = 16] = "PROGRAM";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["AVERAGING"] = 18] = "AVERAGING";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["TIMER"] = 31] = "TIMER";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["CHANNEL"] = 53] = "CHANNEL";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                                  ObjectTypesSupported2222222222222[ObjectTypesSupported2222222222222["LIFT"] = 59] = "LIFT";
                                                  return ObjectTypesSupported2222222222222;
                                                })(ObjectTypesSupported222222222222 || {});
                                                var ResultFlags222222222222 = /* @__PURE__ */ ((ResultFlags2222222222222) => {
                                                  ResultFlags2222222222222[ResultFlags2222222222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                                                  ResultFlags2222222222222[ResultFlags2222222222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                                                  ResultFlags2222222222222[ResultFlags2222222222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                                                  return ResultFlags2222222222222;
                                                })(ResultFlags222222222222 || {});
                                                var ServicesSupported222222222222 = /* @__PURE__ */ ((ServicesSupported2222222222222) => {
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["VT_DATA"] = 23] = "VT_DATA";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["I_AM"] = 26] = "I_AM";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["I_HAVE"] = 27] = "I_HAVE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["WHO_HAS"] = 33] = "WHO_HAS";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["WHO_IS"] = 34] = "WHO_IS";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["READ_RANGE"] = 35] = "READ_RANGE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                  ServicesSupported2222222222222[ServicesSupported2222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                                  return ServicesSupported2222222222222;
                                                })(ServicesSupported222222222222 || {});
                                                var StatusFlags222222222222 = /* @__PURE__ */ ((StatusFlags2222222222222) => {
                                                  StatusFlags2222222222222[StatusFlags2222222222222["IN_ALARM"] = 0] = "IN_ALARM";
                                                  StatusFlags2222222222222[StatusFlags2222222222222["FAULT"] = 1] = "FAULT";
                                                  StatusFlags2222222222222[StatusFlags2222222222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                                                  StatusFlags2222222222222[StatusFlags2222222222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                                                  return StatusFlags2222222222222;
                                                })(StatusFlags222222222222 || {});
                                                var ApplicationTag222222222222 = /* @__PURE__ */ ((ApplicationTag2222222222222) => {
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["NULL"] = 0] = "NULL";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["BOOLEAN"] = 1] = "BOOLEAN";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["REAL"] = 4] = "REAL";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["DOUBLE"] = 5] = "DOUBLE";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["BIT_STRING"] = 8] = "BIT_STRING";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["ENUMERATED"] = 9] = "ENUMERATED";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["DATE"] = 10] = "DATE";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["TIME"] = 11] = "TIME";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["DATERANGE"] = 102] = "DATERANGE";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["DATETIME"] = 103] = "DATETIME";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["ERROR"] = 105] = "ERROR";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["DESTINATION"] = 109] = "DESTINATION";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["RECIPIENT"] = 110] = "RECIPIENT";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                                                  ApplicationTag2222222222222[ApplicationTag2222222222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                                                  return ApplicationTag2222222222222;
                                                })(ApplicationTag222222222222 || {});
                                                var ApplicationTagName222222222222 = invertEnum222222222222(
                                                  ApplicationTag222222222222
                                                );
                                                var BvlcResultFormat222222222222 = /* @__PURE__ */ ((BvlcResultFormat2222222222222) => {
                                                  BvlcResultFormat2222222222222[BvlcResultFormat2222222222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                                                  BvlcResultFormat2222222222222[BvlcResultFormat2222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                  BvlcResultFormat2222222222222[BvlcResultFormat2222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                                  BvlcResultFormat2222222222222[BvlcResultFormat2222222222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                                                  BvlcResultFormat2222222222222[BvlcResultFormat2222222222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                                                  BvlcResultFormat2222222222222[BvlcResultFormat2222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                                                  BvlcResultFormat2222222222222[BvlcResultFormat2222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                                                  return BvlcResultFormat2222222222222;
                                                })(BvlcResultFormat222222222222 || {});
                                                var BvlcResultPurpose222222222222 = /* @__PURE__ */ ((BvlcResultPurpose2222222222222) => {
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                                                  BvlcResultPurpose2222222222222[BvlcResultPurpose2222222222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                                                  return BvlcResultPurpose2222222222222;
                                                })(BvlcResultPurpose222222222222 || {});
                                                var CharacterStringEncoding222222222222 = /* @__PURE__ */ ((CharacterStringEncoding2222222222222) => {
                                                  CharacterStringEncoding2222222222222[CharacterStringEncoding2222222222222["UTF_8"] = 0] = "UTF_8";
                                                  CharacterStringEncoding2222222222222[CharacterStringEncoding2222222222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                                                  CharacterStringEncoding2222222222222[CharacterStringEncoding2222222222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                                                  CharacterStringEncoding2222222222222[CharacterStringEncoding2222222222222["UCS_4"] = 3] = "UCS_4";
                                                  CharacterStringEncoding2222222222222[CharacterStringEncoding2222222222222["UCS_2"] = 4] = "UCS_2";
                                                  CharacterStringEncoding2222222222222[CharacterStringEncoding2222222222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                                                  return CharacterStringEncoding2222222222222;
                                                })(CharacterStringEncoding222222222222 || {});
                                                var CovType222222222222 = /* @__PURE__ */ ((CovType2222222222222) => {
                                                  CovType2222222222222[CovType2222222222222["REAL"] = 0] = "REAL";
                                                  CovType2222222222222[CovType2222222222222["BIT_STRING"] = 1] = "BIT_STRING";
                                                  return CovType2222222222222;
                                                })(CovType222222222222 || {});
                                                var EnableDisable222222222222 = /* @__PURE__ */ ((EnableDisable2222222222222) => {
                                                  EnableDisable2222222222222[EnableDisable2222222222222["ENABLE"] = 0] = "ENABLE";
                                                  EnableDisable2222222222222[EnableDisable2222222222222["DISABLE"] = 1] = "DISABLE";
                                                  EnableDisable2222222222222[EnableDisable2222222222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                                                  return EnableDisable2222222222222;
                                                })(EnableDisable222222222222 || {});
                                                var MaxApduLengthAccepted222222222222 = /* @__PURE__ */ ((MaxApduLengthAccepted2222222222222) => {
                                                  MaxApduLengthAccepted2222222222222[MaxApduLengthAccepted2222222222222["OCTETS_50"] = 0] = "OCTETS_50";
                                                  MaxApduLengthAccepted2222222222222[MaxApduLengthAccepted2222222222222["OCTETS_128"] = 1] = "OCTETS_128";
                                                  MaxApduLengthAccepted2222222222222[MaxApduLengthAccepted2222222222222["OCTETS_206"] = 2] = "OCTETS_206";
                                                  MaxApduLengthAccepted2222222222222[MaxApduLengthAccepted2222222222222["OCTETS_480"] = 3] = "OCTETS_480";
                                                  MaxApduLengthAccepted2222222222222[MaxApduLengthAccepted2222222222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                                                  MaxApduLengthAccepted2222222222222[MaxApduLengthAccepted2222222222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                                                  return MaxApduLengthAccepted2222222222222;
                                                })(MaxApduLengthAccepted222222222222 || {});
                                                var MaxSegmentsAccepted222222222222 = /* @__PURE__ */ ((MaxSegmentsAccepted2222222222222) => {
                                                  MaxSegmentsAccepted2222222222222[MaxSegmentsAccepted2222222222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                                                  MaxSegmentsAccepted2222222222222[MaxSegmentsAccepted2222222222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                                                  MaxSegmentsAccepted2222222222222[MaxSegmentsAccepted2222222222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                                                  MaxSegmentsAccepted2222222222222[MaxSegmentsAccepted2222222222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                                                  MaxSegmentsAccepted2222222222222[MaxSegmentsAccepted2222222222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                                                  MaxSegmentsAccepted2222222222222[MaxSegmentsAccepted2222222222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                                                  MaxSegmentsAccepted2222222222222[MaxSegmentsAccepted2222222222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                                                  MaxSegmentsAccepted2222222222222[MaxSegmentsAccepted2222222222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                                                  return MaxSegmentsAccepted2222222222222;
                                                })(MaxSegmentsAccepted222222222222 || {});
                                                var NetworkLayerMessageType222222222222 = /* @__PURE__ */ ((NetworkLayerMessageType2222222222222) => {
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                                                  NetworkLayerMessageType2222222222222[NetworkLayerMessageType2222222222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                                                  return NetworkLayerMessageType2222222222222;
                                                })(NetworkLayerMessageType222222222222 || {});
                                                var NpduControlBit222222222222 = /* @__PURE__ */ ((NpduControlBit2222222222222) => {
                                                  NpduControlBit2222222222222[NpduControlBit2222222222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                                                  NpduControlBit2222222222222[NpduControlBit2222222222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                                                  NpduControlBit2222222222222[NpduControlBit2222222222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                                                  NpduControlBit2222222222222[NpduControlBit2222222222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                                                  return NpduControlBit2222222222222;
                                                })(NpduControlBit222222222222 || {});
                                                var NpduControlPriority222222222222 = /* @__PURE__ */ ((NpduControlPriority2222222222222) => {
                                                  NpduControlPriority2222222222222[NpduControlPriority2222222222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                                                  NpduControlPriority2222222222222[NpduControlPriority2222222222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                                                  NpduControlPriority2222222222222[NpduControlPriority2222222222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                                                  NpduControlPriority2222222222222[NpduControlPriority2222222222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                                                  return NpduControlPriority2222222222222;
                                                })(NpduControlPriority222222222222 || {});
                                                var PduConReqBit222222222222 = /* @__PURE__ */ ((PduConReqBit2222222222222) => {
                                                  PduConReqBit2222222222222[PduConReqBit2222222222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                                                  PduConReqBit2222222222222[PduConReqBit2222222222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                                                  PduConReqBit2222222222222[PduConReqBit2222222222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                                                  return PduConReqBit2222222222222;
                                                })(PduConReqBit222222222222 || {});
                                                var PduSegAckBit222222222222 = /* @__PURE__ */ ((PduSegAckBit2222222222222) => {
                                                  PduSegAckBit2222222222222[PduSegAckBit2222222222222["SERVER"] = 1] = "SERVER";
                                                  PduSegAckBit2222222222222[PduSegAckBit2222222222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                                                  return PduSegAckBit2222222222222;
                                                })(PduSegAckBit222222222222 || {});
                                                var PduType222222222222 = /* @__PURE__ */ ((PduType2222222222222) => {
                                                  PduType2222222222222[PduType2222222222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                                                  PduType2222222222222[PduType2222222222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                                                  PduType2222222222222[PduType2222222222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                                                  PduType2222222222222[PduType2222222222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                                                  PduType2222222222222[PduType2222222222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                                                  PduType2222222222222[PduType2222222222222["ERROR"] = 80] = "ERROR";
                                                  PduType2222222222222[PduType2222222222222["REJECT"] = 96] = "REJECT";
                                                  PduType2222222222222[PduType2222222222222["ABORT"] = 112] = "ABORT";
                                                  return PduType2222222222222;
                                                })(PduType222222222222 || {});
                                                var PropertyStates222222222222 = /* @__PURE__ */ ((PropertyStates2222222222222) => {
                                                  PropertyStates2222222222222[PropertyStates2222222222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["POLARITY"] = 3] = "POLARITY";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["RELIABILITY"] = 7] = "RELIABILITY";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["STATE"] = 8] = "STATE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["UNITS"] = 10] = "UNITS";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["ACTION"] = 16] = "ACTION";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["SHED_STATE"] = 27] = "SHED_STATE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                                                  PropertyStates2222222222222[PropertyStates2222222222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                                                  return PropertyStates2222222222222;
                                                })(PropertyStates222222222222 || {});
                                                var ReadRangeType222222222222 = /* @__PURE__ */ ((ReadRangeType2222222222222) => {
                                                  ReadRangeType2222222222222[ReadRangeType2222222222222["BY_POSITION"] = 0] = "BY_POSITION";
                                                  ReadRangeType2222222222222[ReadRangeType2222222222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                                                  ReadRangeType2222222222222[ReadRangeType2222222222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                                                  return ReadRangeType2222222222222;
                                                })(ReadRangeType222222222222 || {});
                                                var ReinitializedState222222222222 = /* @__PURE__ */ ((ReinitializedState2222222222222) => {
                                                  ReinitializedState2222222222222[ReinitializedState2222222222222["COLDSTART"] = 0] = "COLDSTART";
                                                  ReinitializedState2222222222222[ReinitializedState2222222222222["WARMSTART"] = 1] = "WARMSTART";
                                                  ReinitializedState2222222222222[ReinitializedState2222222222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                                                  ReinitializedState2222222222222[ReinitializedState2222222222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                                                  ReinitializedState2222222222222[ReinitializedState2222222222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                                                  ReinitializedState2222222222222[ReinitializedState2222222222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                                                  ReinitializedState2222222222222[ReinitializedState2222222222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                                                  ReinitializedState2222222222222[ReinitializedState2222222222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                                                  return ReinitializedState2222222222222;
                                                })(ReinitializedState222222222222 || {});
                                                var TimeStamp222222222222 = /* @__PURE__ */ ((TimeStamp2222222222222) => {
                                                  TimeStamp2222222222222[TimeStamp2222222222222["TIME"] = 0] = "TIME";
                                                  TimeStamp2222222222222[TimeStamp2222222222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                                                  TimeStamp2222222222222[TimeStamp2222222222222["DATETIME"] = 2] = "DATETIME";
                                                  return TimeStamp2222222222222;
                                                })(TimeStamp222222222222 || {});
                                                var import_events2222222222222 = __toESM222222222222(require("events"));
                                                var import_debug3222222222222 = __toESM222222222222(require("debug"));
                                                var import_dgram222222222222 = require("dgram");
                                                var import_events322222222222 = __toESM222222222222(require("events"));
                                                var import_debug2222222222222 = __toESM222222222222(require("debug"));
                                                var EventEmitter322222222222 = import_events322222222222.default.EventEmitter;
                                                var debug2222222222222 = (0, import_debug2222222222222.default)("bacnet:client:debug");
                                                var DEFAULT_BACNET_PORT322222222222 = 47808;
                                                var Transport222222222222 = class extends EventEmitter322222222222 {
                                                  constructor(settings) {
                                                    super();
                                                    this._lastSendMessages = {};
                                                    this._settings = settings;
                                                    this._server = (0, import_dgram222222222222.createSocket)({
                                                      type: "udp4",
                                                      reuseAddr: settings.reuseAddr
                                                    });
                                                    this._server.on("message", (msg, rinfo) => {
                                                      if (this.ownAddress.port === rinfo.port) {
                                                        for (let [messageKey, earlierSentBuffer] of Object.entries(
                                                          this._lastSendMessages
                                                        )) {
                                                          if (msg.equals(earlierSentBuffer)) {
                                                            debug2222222222222(
                                                              `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                                            );
                                                            return;
                                                          }
                                                        }
                                                      }
                                                      debug2222222222222(
                                                        `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                                          "hex"
                                                        )}`
                                                      );
                                                      this.emit(
                                                        "message",
                                                        msg,
                                                        rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT322222222222 ? "" : ":" + rinfo.port)
                                                      );
                                                    });
                                                    this._server.on("listening", () => {
                                                      this.ownAddress = this._server.address();
                                                      debug2222222222222(
                                                        `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                                                      );
                                                      this.emit("listening", this.ownAddress);
                                                    });
                                                    this._server.on("error", (err) => {
                                                      debug2222222222222("transport error", err.message);
                                                      this.emit("error", err);
                                                    });
                                                    this._server.on("close", () => {
                                                      debug2222222222222("transport closed");
                                                      this.emit("close");
                                                    });
                                                  }
                                                  getBroadcastAddress() {
                                                    return this._settings.broadcastAddress;
                                                  }
                                                  getMaxPayload() {
                                                    return 1482;
                                                  }
                                                  send(buffer, offset, receiver) {
                                                    if (!receiver) {
                                                      receiver = this.getBroadcastAddress();
                                                      const dataToSend = Buffer.alloc(offset);
                                                      const hrTime = process.hrtime();
                                                      const messageKey = hrTime[0] * 1e9 + hrTime[1];
                                                      buffer.copy(dataToSend, 0, 0, offset);
                                                      this._lastSendMessages[messageKey] = dataToSend;
                                                      setTimeout(() => {
                                                        delete this._lastSendMessages[messageKey];
                                                      }, 1e4);
                                                    }
                                                    const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                                                    const [address, port] = receiverAddress.split(":");
                                                    debug2222222222222(
                                                      "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                                                    );
                                                    this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT322222222222, address);
                                                  }
                                                  open() {
                                                    this._server.bind(this._settings.port, this._settings.interface, () => {
                                                      this._server.setBroadcast(true);
                                                    });
                                                  }
                                                  close() {
                                                    this._server.close();
                                                  }
                                                };
                                                var services_exports222222222222 = {};
                                                __export222222222222(services_exports222222222222, {
                                                  addListElement: () => add_list_element_exports222222222222,
                                                  alarmAcknowledge: () => alarm_acknowledge_exports222222222222,
                                                  alarmSummary: () => alarm_summary_exports222222222222,
                                                  atomicReadFile: () => atomic_read_file_exports222222222222,
                                                  atomicWriteFile: () => atomic_write_file_exports222222222222,
                                                  covNotify: () => cov_notify_exports222222222222,
                                                  covNotifyUnconfirmed: () => cov_notify_exports222222222222,
                                                  createObject: () => create_object_exports222222222222,
                                                  deleteObject: () => delete_object_exports222222222222,
                                                  deviceCommunicationControl: () => device_communication_control_exports222222222222,
                                                  error: () => error_exports222222222222,
                                                  eventInformation: () => event_information_exports222222222222,
                                                  eventNotifyData: () => event_notify_data_exports222222222222,
                                                  getEnrollmentSummary: () => get_enrollment_summary_exports222222222222,
                                                  getEventInformation: () => get_event_information_exports222222222222,
                                                  iAm: () => i_am_exports222222222222,
                                                  iHave: () => i_have_exports222222222222,
                                                  lifeSafetyOperation: () => life_safety_operation_exports222222222222,
                                                  privateTransfer: () => private_transfer_exports222222222222,
                                                  readProperty: () => read_property_exports222222222222,
                                                  readPropertyMultiple: () => read_property_multiple_exports222222222222,
                                                  readRange: () => read_range_exports222222222222,
                                                  registerForeignDevice: () => register_foreign_device_exports222222222222,
                                                  reinitializeDevice: () => reinitialize_device_exports222222222222,
                                                  subscribeCov: () => subscribe_cov_exports222222222222,
                                                  subscribeProperty: () => subscribe_property_exports222222222222,
                                                  timeSync: () => time_sync_exports222222222222,
                                                  timeSyncUTC: () => time_sync_exports222222222222,
                                                  whoHas: () => who_has_exports222222222222,
                                                  whoIs: () => who_is_exports222222222222,
                                                  writeProperty: () => write_property_exports222222222222,
                                                  writePropertyMultiple: () => write_property_multiple_exports222222222222
                                                });
                                                var add_list_element_exports222222222222 = {};
                                                __export222222222222(add_list_element_exports222222222222, {
                                                  decode: () => decode3322222222222,
                                                  encode: () => encode3322222222222
                                                });
                                                var import_iconv_lite222222222222 = __toESM222222222222(require("iconv-lite"));
                                                var enums_default222222222222 = enum_exports222222222222;
                                                var START_YEAR222222222222 = 1900;
                                                var MAX_YEARS222222222222 = 256;
                                                var getBuffer222222222222 = () => {
                                                  return {
                                                    buffer: Buffer.alloc(1472),
                                                    offset: 0
                                                  };
                                                };
                                                var getSignedLength222222222222 = (value) => {
                                                  if (value >= -128 && value < 128)
                                                    return 1;
                                                  else if (value >= -32768 && value < 32768)
                                                    return 2;
                                                  else if (value > -8388608 && value < 8388608)
                                                    return 3;
                                                  else
                                                    return 4;
                                                };
                                                var getUnsignedLength222222222222 = (value) => {
                                                  if (value < 256)
                                                    return 1;
                                                  else if (value < 65536)
                                                    return 2;
                                                  else if (value < 16777216)
                                                    return 3;
                                                  else
                                                    return 4;
                                                };
                                                var getEncodingType222222222222 = (encoding, decodingBuffer, decodingOffset) => {
                                                  switch (encoding) {
                                                    case enums_default222222222222.CharacterStringEncoding.UCS_2:
                                                      if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                                        return "ucs2";
                                                      }
                                                      return "UTF-16BE";
                                                    case enums_default222222222222.CharacterStringEncoding.ISO_8859_1:
                                                      return "latin1";
                                                    case enums_default222222222222.CharacterStringEncoding.MICROSOFT_DBCS:
                                                      return "cp850";
                                                    case enums_default222222222222.CharacterStringEncoding.JIS_X_0208:
                                                      return "Shift_JIS";
                                                    default:
                                                      return "utf8";
                                                  }
                                                };
                                                var encodeUnsigned222222222222 = (buffer, value, length) => {
                                                  buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                                                  buffer.offset += length;
                                                };
                                                var encodeBacnetUnsigned222222222222 = (buffer, value) => {
                                                  encodeUnsigned222222222222(buffer, value, getUnsignedLength222222222222(value));
                                                };
                                                var encodeSigned222222222222 = (buffer, value, length) => {
                                                  buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                                                  buffer.offset += length;
                                                };
                                                var encodeBacnetSigned222222222222 = (buffer, value) => {
                                                  encodeSigned222222222222(buffer, value, getSignedLength222222222222(value));
                                                };
                                                var encodeBacnetReal222222222222 = (buffer, value) => {
                                                  buffer.buffer.writeFloatBE(value, buffer.offset, true);
                                                  buffer.offset += 4;
                                                };
                                                var encodeBacnetDouble222222222222 = (buffer, value) => {
                                                  buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                                                  buffer.offset += 8;
                                                };
                                                var decodeUnsigned222222222222 = (buffer, offset, length) => {
                                                  if (length === 0) {
                                                    return {
                                                      len: 0,
                                                      value: 0
                                                    };
                                                  }
                                                  return {
                                                    len: length,
                                                    //@ts-ignore
                                                    value: buffer.readUIntBE(offset, length)
                                                  };
                                                };
                                                var decodeEnumerated222222222222 = (buffer, offset, length) => {
                                                  return decodeUnsigned222222222222(buffer, offset, length);
                                                };
                                                var encodeBacnetObjectId222222222222 = (buffer, objectType, instance) => {
                                                  const value = ((objectType & enums_default222222222222.ASN1_MAX_OBJECT) << enums_default222222222222.ASN1_INSTANCE_BITS | instance & enums_default222222222222.ASN1_MAX_INSTANCE) >>> 0;
                                                  encodeUnsigned222222222222(buffer, value, 4);
                                                };
                                                var encodeTag222222222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                                                  let len = 1;
                                                  const tmp = new Array(3);
                                                  tmp[0] = 0;
                                                  if (contextSpecific) {
                                                    tmp[0] |= 8;
                                                  }
                                                  if (tagNumber <= 14) {
                                                    tmp[0] |= tagNumber << 4;
                                                  } else {
                                                    tmp[0] |= 240;
                                                    tmp[1] = tagNumber;
                                                    len++;
                                                  }
                                                  if (lenValueType <= 4) {
                                                    tmp[0] |= lenValueType;
                                                    Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                    buffer.offset += len;
                                                  } else {
                                                    tmp[0] |= 5;
                                                    if (lenValueType <= 253) {
                                                      tmp[len++] = lenValueType;
                                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                      buffer.offset += len;
                                                    } else if (lenValueType <= 65535) {
                                                      tmp[len++] = 254;
                                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                      buffer.offset += len;
                                                      encodeUnsigned222222222222(buffer, lenValueType, 2);
                                                    } else {
                                                      tmp[len++] = 255;
                                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                      buffer.offset += len;
                                                      encodeUnsigned222222222222(buffer, lenValueType, 4);
                                                    }
                                                  }
                                                };
                                                var encodeBacnetEnumerated222222222222 = (buffer, value) => {
                                                  encodeBacnetUnsigned222222222222(buffer, value);
                                                };
                                                var isExtendedTagNumber222222222222 = (x) => {
                                                  return (x & 240) === 240;
                                                };
                                                var isExtendedValue222222222222 = (x) => {
                                                  return (x & 7) === 5;
                                                };
                                                var isContextSpecific222222222222 = (x) => {
                                                  return (x & 8) === 8;
                                                };
                                                var isOpeningTag222222222222 = (x) => {
                                                  return (x & 7) === 6;
                                                };
                                                var isClosingTag222222222222 = (x) => {
                                                  return (x & 7) === 7;
                                                };
                                                var encodeContextReal222222222222 = (buffer, tagNumber, value) => {
                                                  encodeTag222222222222(buffer, tagNumber, true, 4);
                                                  encodeBacnetReal222222222222(buffer, value);
                                                };
                                                var encodeContextUnsigned222222222222 = (buffer, tagNumber, value) => {
                                                  encodeTag222222222222(buffer, tagNumber, true, getUnsignedLength222222222222(value));
                                                  encodeBacnetUnsigned222222222222(buffer, value);
                                                };
                                                var encodeContextEnumerated222222222222 = (buffer, tagNumber, value) => {
                                                  encodeContextUnsigned222222222222(buffer, tagNumber, value);
                                                };
                                                var encodeOctetString222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                  if (octetString) {
                                                    for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                                                      buffer.buffer[buffer.offset++] = octetString[i];
                                                    }
                                                  }
                                                };
                                                var encodeApplicationOctetString222222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                                  encodeTag222222222222(buffer, enums_default222222222222.ApplicationTag.OCTET_STRING, false, octetCount);
                                                  encodeOctetString222222222222(buffer, octetString, octetOffset, octetCount);
                                                };
                                                var encodeApplicationNull222222222222 = (buffer) => {
                                                  buffer.buffer[buffer.offset++] = enums_default222222222222.ApplicationTag.NULL;
                                                };
                                                var encodeApplicationBoolean222222222222 = (buffer, booleanValue) => {
                                                  encodeTag222222222222(buffer, enums_default222222222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                                                };
                                                var encodeApplicationReal222222222222 = (buffer, value) => {
                                                  encodeTag222222222222(buffer, enums_default222222222222.ApplicationTag.REAL, false, 4);
                                                  encodeBacnetReal222222222222(buffer, value);
                                                };
                                                var encodeApplicationDouble222222222222 = (buffer, value) => {
                                                  encodeTag222222222222(buffer, enums_default222222222222.ApplicationTag.DOUBLE, false, 8);
                                                  encodeBacnetDouble222222222222(buffer, value);
                                                };
                                                var bitstringBytesUsed222222222222 = (bitString) => {
                                                  let len = 0;
                                                  if (bitString.bitsUsed > 0) {
                                                    const lastBit = bitString.bitsUsed - 1;
                                                    const usedBytes = lastBit / 8 + 1;
                                                    len = Math.floor(usedBytes);
                                                  }
                                                  return len;
                                                };
                                                var encodeApplicationObjectId222222222222 = (buffer, objectType, instance) => {
                                                  const tmp = getBuffer222222222222();
                                                  encodeBacnetObjectId222222222222(tmp, objectType, instance);
                                                  encodeTag222222222222(buffer, enums_default222222222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                  buffer.offset += tmp.offset;
                                                };
                                                var encodeApplicationUnsigned222222222222 = (buffer, value) => {
                                                  const tmp = getBuffer222222222222();
                                                  encodeBacnetUnsigned222222222222(tmp, value);
                                                  encodeTag222222222222(buffer, enums_default222222222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                  buffer.offset += tmp.offset;
                                                };
                                                var encodeApplicationEnumerated222222222222 = (buffer, value) => {
                                                  const tmp = getBuffer222222222222();
                                                  encodeBacnetEnumerated222222222222(tmp, value);
                                                  encodeTag222222222222(buffer, enums_default222222222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                  buffer.offset += tmp.offset;
                                                };
                                                var encodeApplicationSigned222222222222 = (buffer, value) => {
                                                  const tmp = getBuffer222222222222();
                                                  encodeBacnetSigned222222222222(tmp, value);
                                                  encodeTag222222222222(buffer, enums_default222222222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                  buffer.offset += tmp.offset;
                                                };
                                                var byteReverseBits222222222222 = (inByte) => {
                                                  let outByte = 0;
                                                  if ((inByte & 1) > 0) {
                                                    outByte |= 128;
                                                  }
                                                  if ((inByte & 2) > 0) {
                                                    outByte |= 64;
                                                  }
                                                  if ((inByte & 4) > 0) {
                                                    outByte |= 32;
                                                  }
                                                  if ((inByte & 8) > 0) {
                                                    outByte |= 16;
                                                  }
                                                  if ((inByte & 16) > 0) {
                                                    outByte |= 8;
                                                  }
                                                  if ((inByte & 32) > 0) {
                                                    outByte |= 4;
                                                  }
                                                  if ((inByte & 64) > 0) {
                                                    outByte |= 2;
                                                  }
                                                  if ((inByte & 128) > 0) {
                                                    outByte |= 1;
                                                  }
                                                  return outByte;
                                                };
                                                var bitstringOctet222222222222 = (bitString, octetIndex) => {
                                                  let octet = 0;
                                                  if (bitString.value && octetIndex < enums_default222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                    octet = bitString.value[octetIndex];
                                                  }
                                                  return octet;
                                                };
                                                var encodeBitstring222222222222 = (buffer, bitString) => {
                                                  if (bitString.bitsUsed === 0) {
                                                    buffer.buffer[buffer.offset++] = 0;
                                                  } else {
                                                    const usedBytes = bitstringBytesUsed222222222222(bitString);
                                                    const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                                                    buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                                                    for (let i = 0; i < usedBytes; i++) {
                                                      buffer.buffer[buffer.offset++] = byteReverseBits222222222222(
                                                        bitstringOctet222222222222(bitString, i)
                                                      );
                                                    }
                                                  }
                                                };
                                                var encodeApplicationBitstring222222222222 = (buffer, bitString) => {
                                                  let bitStringEncodedLength = 1;
                                                  bitStringEncodedLength += bitstringBytesUsed222222222222(bitString);
                                                  encodeTag222222222222(
                                                    buffer,
                                                    enums_default222222222222.ApplicationTag.BIT_STRING,
                                                    false,
                                                    bitStringEncodedLength
                                                  );
                                                  encodeBitstring222222222222(buffer, bitString);
                                                };
                                                var encodeBacnetDate222222222222 = (buffer, value) => {
                                                  if (value === new Date(1, 1, 1)) {
                                                    buffer.buffer[buffer.offset++] = 255;
                                                    buffer.buffer[buffer.offset++] = 255;
                                                    buffer.buffer[buffer.offset++] = 255;
                                                    buffer.buffer[buffer.offset++] = 255;
                                                    return;
                                                  }
                                                  if (value.getFullYear() >= START_YEAR222222222222) {
                                                    buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR222222222222;
                                                  } else if (value.getFullYear() < MAX_YEARS222222222222) {
                                                    buffer.buffer[buffer.offset++] = value.getFullYear();
                                                  } else {
                                                    throw new Error("invaide year: " + value.getFullYear());
                                                  }
                                                  buffer.buffer[buffer.offset++] = value.getMonth();
                                                  buffer.buffer[buffer.offset++] = value.getDate();
                                                  buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                                                };
                                                var encodeApplicationDate222222222222 = (buffer, value) => {
                                                  encodeTag222222222222(buffer, enums_default222222222222.ApplicationTag.DATE, false, 4);
                                                  encodeBacnetDate222222222222(buffer, value);
                                                };
                                                var encodeBacnetTime222222222222 = (buffer, value) => {
                                                  buffer.buffer[buffer.offset++] = value.getHours();
                                                  buffer.buffer[buffer.offset++] = value.getMinutes();
                                                  buffer.buffer[buffer.offset++] = value.getSeconds();
                                                  buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                                                };
                                                var encodeApplicationTime222222222222 = (buffer, value) => {
                                                  encodeTag222222222222(buffer, enums_default222222222222.ApplicationTag.TIME, false, 4);
                                                  encodeBacnetTime222222222222(buffer, value);
                                                };
                                                var bacappEncodeDatetime222222222222 = (buffer, value) => {
                                                  if (value !== new Date(1, 1, 1)) {
                                                    encodeApplicationDate222222222222(buffer, value);
                                                    encodeApplicationTime222222222222(buffer, value);
                                                  }
                                                };
                                                var encodeContextObjectId222222222222 = (buffer, tagNumber, objectType, instance) => {
                                                  encodeTag222222222222(buffer, tagNumber, true, 4);
                                                  encodeBacnetObjectId222222222222(buffer, objectType, instance);
                                                };
                                                var encodeOpeningTag222222222222 = (buffer, tagNumber) => {
                                                  let len = 1;
                                                  const tmp = new Array(2);
                                                  tmp[0] = 8;
                                                  if (tagNumber <= 14) {
                                                    tmp[0] |= tagNumber << 4;
                                                  } else {
                                                    tmp[0] |= 240;
                                                    tmp[1] = tagNumber;
                                                    len++;
                                                  }
                                                  tmp[0] |= 6;
                                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                  buffer.offset += len;
                                                };
                                                var encodeClosingTag222222222222 = (buffer, tagNumber) => {
                                                  let len = 1;
                                                  const tmp = new Array(2);
                                                  tmp[0] = 8;
                                                  if (tagNumber <= 14) {
                                                    tmp[0] |= tagNumber << 4;
                                                  } else {
                                                    tmp[0] |= 240;
                                                    tmp[1] = tagNumber;
                                                    len++;
                                                  }
                                                  tmp[0] |= 7;
                                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                  buffer.offset += len;
                                                };
                                                var encodeReadAccessSpecification222222222222 = (buffer, value) => {
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    0,
                                                    value.objectId.type,
                                                    value.objectId.instance
                                                  );
                                                  encodeOpeningTag222222222222(buffer, 1);
                                                  value.properties.forEach((p) => {
                                                    encodeContextEnumerated222222222222(buffer, 0, p.id);
                                                    if (p.index && p.index !== enums_default222222222222.ASN1_ARRAY_ALL) {
                                                      encodeContextUnsigned222222222222(buffer, 1, p.index);
                                                    }
                                                  });
                                                  encodeClosingTag222222222222(buffer, 1);
                                                };
                                                var encodeContextBoolean222222222222 = (buffer, tagNumber, booleanValue) => {
                                                  encodeTag222222222222(buffer, tagNumber, true, 1);
                                                  buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                                                  buffer.offset += 1;
                                                };
                                                var encodeCovSubscription222222222222 = (buffer, value) => {
                                                  encodeOpeningTag222222222222(buffer, 0);
                                                  encodeOpeningTag222222222222(buffer, 0);
                                                  encodeOpeningTag222222222222(buffer, 1);
                                                  encodeApplicationUnsigned222222222222(buffer, value.recipient.network);
                                                  if (value.recipient.network === 65535) {
                                                    encodeApplicationOctetString222222222222(buffer, 0, 0, 0);
                                                  } else {
                                                    encodeApplicationOctetString222222222222(
                                                      buffer,
                                                      value.recipient.address,
                                                      0,
                                                      value.recipient.address.length
                                                    );
                                                  }
                                                  encodeClosingTag222222222222(buffer, 1);
                                                  encodeClosingTag222222222222(buffer, 0);
                                                  encodeContextUnsigned222222222222(buffer, 1, value.subscriptionProcessId);
                                                  encodeClosingTag222222222222(buffer, 0);
                                                  encodeOpeningTag222222222222(buffer, 1);
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    0,
                                                    value.monitoredObjectId.type,
                                                    value.monitoredObjectId.instance
                                                  );
                                                  encodeContextEnumerated222222222222(buffer, 1, value.monitoredProperty.id);
                                                  if (value.monitoredProperty.index !== enums_default222222222222.ASN1_ARRAY_ALL) {
                                                    encodeContextUnsigned222222222222(buffer, 2, value.monitoredProperty.index);
                                                  }
                                                  encodeClosingTag222222222222(buffer, 1);
                                                  encodeContextBoolean222222222222(buffer, 2, value.issueConfirmedNotifications);
                                                  encodeContextUnsigned222222222222(buffer, 3, value.timeRemaining);
                                                  if (value.covIncrement > 0) {
                                                    encodeContextReal222222222222(buffer, 4, value.covIncrement);
                                                  }
                                                };
                                                var bacappEncodeApplicationData222222222222 = (buffer, value) => {
                                                  if (value.value === null) {
                                                    value.type = enums_default222222222222.ApplicationTag.NULL;
                                                  }
                                                  switch (value.type) {
                                                    case enums_default222222222222.ApplicationTag.NULL:
                                                      encodeApplicationNull222222222222(buffer);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.BOOLEAN:
                                                      encodeApplicationBoolean222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                      encodeApplicationUnsigned222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.SIGNED_INTEGER:
                                                      encodeApplicationSigned222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.REAL:
                                                      encodeApplicationReal222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.DOUBLE:
                                                      encodeApplicationDouble222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.OCTET_STRING:
                                                      encodeApplicationOctetString222222222222(buffer, value.value, 0, value.value.length);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.CHARACTER_STRING:
                                                      encodeApplicationCharacterString222222222222(buffer, value.value, value.encoding);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.BIT_STRING:
                                                      encodeApplicationBitstring222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.ENUMERATED:
                                                      encodeApplicationEnumerated222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.DATE:
                                                      encodeApplicationDate222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.TIME:
                                                      encodeApplicationTime222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.TIMESTAMP:
                                                      bacappEncodeTimestamp222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.DATETIME:
                                                      bacappEncodeDatetime222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                      encodeApplicationObjectId222222222222(buffer, value.value.type, value.value.instance);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.COV_SUBSCRIPTION:
                                                      encodeCovSubscription222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.READ_ACCESS_RESULT:
                                                      encodeReadAccessResult222222222222(buffer, value.value);
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                      encodeReadAccessSpecification222222222222(buffer, value.value);
                                                      break;
                                                    case void 0:
                                                      throw new Error(
                                                        "Cannot encode a value if the type has not been specified"
                                                      );
                                                    default:
                                                      throw "No encode for ApplicationTag type: " + enums_default222222222222.getEnumName(
                                                        enums_default222222222222.ApplicationTag,
                                                        value.type
                                                      );
                                                  }
                                                };
                                                var bacappEncodeDeviceObjPropertyRef222222222222 = (buffer, value) => {
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    0,
                                                    value.objectId.type,
                                                    value.objectId.instance
                                                  );
                                                  encodeContextEnumerated222222222222(buffer, 1, value.id);
                                                  if (value.arrayIndex !== enums_default222222222222.ASN1_ARRAY_ALL) {
                                                    encodeContextUnsigned222222222222(buffer, 2, value.arrayIndex);
                                                  }
                                                  if (value.deviceIndentifier.type === enums_default222222222222.ObjectType.DEVICE) {
                                                    encodeContextObjectId222222222222(
                                                      buffer,
                                                      3,
                                                      value.deviceIndentifier.type,
                                                      value.deviceIndentifier.instance
                                                    );
                                                  }
                                                };
                                                var bacappEncodeContextDeviceObjPropertyRef222222222222 = (buffer, tagNumber, value) => {
                                                  encodeOpeningTag222222222222(buffer, tagNumber);
                                                  bacappEncodeDeviceObjPropertyRef222222222222(buffer, value);
                                                  encodeClosingTag222222222222(buffer, tagNumber);
                                                };
                                                var bacappEncodePropertyState222222222222 = (buffer, value) => {
                                                  switch (value.type) {
                                                    case enums_default222222222222.PropertyStates.BOOLEAN_VALUE:
                                                      encodeContextBoolean222222222222(buffer, 0, value.state === 1);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.BINARY_VALUE:
                                                      encodeContextEnumerated222222222222(buffer, 1, value.state);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.EVENT_TYPE:
                                                      encodeContextEnumerated222222222222(buffer, 2, value.state);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.POLARITY:
                                                      encodeContextEnumerated222222222222(buffer, 3, value.state);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.PROGRAM_CHANGE:
                                                      encodeContextEnumerated222222222222(buffer, 4, value.state);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.PROGRAM_STATE:
                                                      encodeContextEnumerated222222222222(buffer, 5, value.state);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.REASON_FOR_HALT:
                                                      encodeContextEnumerated222222222222(buffer, 6, value.state);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.RELIABILITY:
                                                      encodeContextEnumerated222222222222(buffer, 7, value.state);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.STATE:
                                                      encodeContextEnumerated222222222222(buffer, 8, value.state);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.SYSTEM_STATUS:
                                                      encodeContextEnumerated222222222222(buffer, 9, value.state);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.UNITS:
                                                      encodeContextEnumerated222222222222(buffer, 10, value.state);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.UNSIGNED_VALUE:
                                                      encodeContextUnsigned222222222222(buffer, 11, value.state);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.LIFE_SAFETY_MODE:
                                                      encodeContextEnumerated222222222222(buffer, 12, value.state);
                                                      break;
                                                    case enums_default222222222222.PropertyStates.LIFE_SAFETY_STATE:
                                                      encodeContextEnumerated222222222222(buffer, 13, value.state);
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                };
                                                var encodeContextBitstring222222222222 = (buffer, tagNumber, bitString) => {
                                                  let bitStringEncodedLength = 1;
                                                  bitStringEncodedLength += bitstringBytesUsed222222222222(bitString);
                                                  encodeTag222222222222(buffer, tagNumber, true, bitStringEncodedLength);
                                                  encodeBitstring222222222222(buffer, bitString);
                                                };
                                                var encodeContextSigned222222222222 = (buffer, tagNumber, value) => {
                                                  encodeTag222222222222(buffer, tagNumber, true, getSignedLength222222222222(value));
                                                  encodeBacnetSigned222222222222(buffer, value);
                                                };
                                                var encodeContextTime222222222222 = (buffer, tagNumber, value) => {
                                                  encodeTag222222222222(buffer, tagNumber, true, 4);
                                                  encodeBacnetTime222222222222(buffer, value);
                                                };
                                                var bacappEncodeContextDatetime222222222222 = (buffer, tagNumber, value) => {
                                                  if (value !== new Date(1, 1, 1)) {
                                                    encodeOpeningTag222222222222(buffer, tagNumber);
                                                    bacappEncodeDatetime222222222222(buffer, value);
                                                    encodeClosingTag222222222222(buffer, tagNumber);
                                                  } else {
                                                    throw new Error("wrong Datetime while bacapp encoding context");
                                                  }
                                                };
                                                var decodeTagNumber222222222222 = (buffer, offset) => {
                                                  let len = 1;
                                                  let tagNumber;
                                                  if (isExtendedTagNumber222222222222(buffer[offset])) {
                                                    tagNumber = buffer[offset + 1];
                                                    len++;
                                                  } else {
                                                    tagNumber = buffer[offset] >> 4;
                                                  }
                                                  return {
                                                    len,
                                                    tagNumber
                                                  };
                                                };
                                                var decodeIsContextTag222222222222 = (buffer, offset, tagNumber) => {
                                                  const result = decodeTagNumber222222222222(buffer, offset);
                                                  return isContextSpecific222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                };
                                                var decodeIsOpeningTagNumber222222222222 = (buffer, offset, tagNumber) => {
                                                  const result = decodeTagNumber222222222222(buffer, offset);
                                                  return isOpeningTag222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                };
                                                var decodeIsClosingTagNumber222222222222 = (buffer, offset, tagNumber) => {
                                                  const result = decodeTagNumber222222222222(buffer, offset);
                                                  return isClosingTag222222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                                };
                                                var decodeIsClosingTag222222222222 = (buffer, offset) => {
                                                  return (buffer[offset] & 7) === 7;
                                                };
                                                var decodeIsOpeningTag222222222222 = (buffer, offset) => {
                                                  return (buffer[offset] & 7) === 6;
                                                };
                                                var decodeObjectId222222222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                                                  const result = decodeUnsigned222222222222(buffer, offset, 4);
                                                  const objectType = result.value >> enums_default222222222222.ASN1_INSTANCE_BITS & enums_default222222222222.ASN1_MAX_OBJECT;
                                                  const instance = result.value & enums_default222222222222.ASN1_MAX_INSTANCE;
                                                  return {
                                                    len: result.len,
                                                    objectType,
                                                    instance
                                                  };
                                                };
                                                var decodeObjectIdSafe222222222222 = (buffer, offset, lenValue) => {
                                                  if (lenValue !== 4) {
                                                    return {
                                                      len: 0,
                                                      objectType: 0,
                                                      instance: 0
                                                    };
                                                  } else {
                                                    return decodeObjectId222222222222(buffer, offset);
                                                  }
                                                };
                                                var decodeTagNumberAndValue222222222222 = (buffer, offset) => {
                                                  let value;
                                                  let result = decodeTagNumber222222222222(buffer, offset);
                                                  let len = result.len;
                                                  if (isExtendedValue222222222222(buffer[offset])) {
                                                    if (buffer[offset + len] === 255) {
                                                      len++;
                                                      result = decodeUnsigned222222222222(buffer, offset + len, 4);
                                                      len += result.len;
                                                      value = result.value;
                                                    } else if (buffer[offset + len] === 254) {
                                                      len++;
                                                      result = decodeUnsigned222222222222(buffer, offset + len, 2);
                                                      len += result.len;
                                                      value = result.value;
                                                    } else {
                                                      value = buffer[offset + len];
                                                      len++;
                                                    }
                                                  } else if (isOpeningTag222222222222(buffer[offset])) {
                                                    value = 0;
                                                  } else if (isClosingTag222222222222(buffer[offset])) {
                                                    value = 0;
                                                  } else {
                                                    value = buffer[offset] & 7;
                                                  }
                                                  return {
                                                    len,
                                                    tagNumber: result.tagNumber,
                                                    value
                                                  };
                                                };
                                                var bacappDecodeApplicationData222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                  if (!isContextSpecific222222222222(buffer[offset])) {
                                                    let result = decodeTagNumberAndValue222222222222(buffer, offset);
                                                    if (result) {
                                                      let len = result.len;
                                                      result = bacappDecodeData222222222222(
                                                        buffer,
                                                        offset + len,
                                                        maxOffset,
                                                        result.tagNumber,
                                                        result.value
                                                      );
                                                      if (!result) {
                                                        return void 0;
                                                      }
                                                      let resObj = {
                                                        len: len + result.len,
                                                        type: result.type,
                                                        value: result.value
                                                      };
                                                      if (result.encoding !== void 0)
                                                        resObj.encoding = result.encoding;
                                                      return resObj;
                                                    }
                                                  } else {
                                                    return bacappDecodeContextApplicationData222222222222(
                                                      buffer,
                                                      offset,
                                                      maxOffset,
                                                      objectType,
                                                      propertyId
                                                    );
                                                  }
                                                };
                                                var encodeReadAccessResult222222222222 = (buffer, value) => {
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    0,
                                                    value.objectId.type,
                                                    value.objectId.instance
                                                  );
                                                  encodeOpeningTag222222222222(buffer, 1);
                                                  value.values.forEach((item) => {
                                                    encodeContextEnumerated222222222222(buffer, 2, item.property.id);
                                                    if (item.property.index !== enums_default222222222222.ASN1_ARRAY_ALL) {
                                                      encodeContextUnsigned222222222222(buffer, 3, item.property.index);
                                                    }
                                                    if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                                                      encodeOpeningTag222222222222(buffer, 5);
                                                      encodeApplicationEnumerated222222222222(buffer, item.value[0].value.errorClass);
                                                      encodeApplicationEnumerated222222222222(buffer, item.value[0].value.errorCode);
                                                      encodeClosingTag222222222222(buffer, 5);
                                                    } else {
                                                      if (!item.value)
                                                        throw new Error("No value in item");
                                                      encodeOpeningTag222222222222(buffer, 4);
                                                      item.value.forEach((subItem) => {
                                                        bacappEncodeApplicationData222222222222(buffer, subItem);
                                                      });
                                                      encodeClosingTag222222222222(buffer, 4);
                                                    }
                                                  });
                                                  encodeClosingTag222222222222(buffer, 1);
                                                };
                                                var decodeReadAccessResult222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let value = {};
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  let result = decodeObjectId222222222222(buffer, offset + len);
                                                  value.objectId = {
                                                    type: result.objectType,
                                                    instance: result.instance
                                                  };
                                                  len += result.len;
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 1)) {
                                                    return -1;
                                                  }
                                                  len++;
                                                  const values = [];
                                                  while (apduLen - len > 0) {
                                                    let newEntry = {};
                                                    if (decodeIsClosingTagNumber222222222222(buffer, offset + len, 1)) {
                                                      len++;
                                                      break;
                                                    }
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 2) {
                                                      return void 0;
                                                    }
                                                    result = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    newEntry.id = result.value;
                                                    len += result.len;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    if (result.tagNumber === 3) {
                                                      len += result.len;
                                                      result = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                      newEntry.index = result.value;
                                                      len += result.len;
                                                    } else {
                                                      newEntry.index = enums_default222222222222.ASN1_ARRAY_ALL;
                                                    }
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber === 4) {
                                                      const localValues = [];
                                                      while (len + offset <= buffer.length && !decodeIsClosingTagNumber222222222222(buffer, offset + len, 4)) {
                                                        let localResult = bacappDecodeApplicationData222222222222(
                                                          buffer,
                                                          offset + len,
                                                          apduLen + offset - 1,
                                                          value.objectId.type,
                                                          newEntry.id
                                                        );
                                                        if (!localResult) {
                                                          return void 0;
                                                        }
                                                        len += localResult.len;
                                                        let resObj = {
                                                          value: localResult.value,
                                                          type: localResult.type
                                                        };
                                                        if (localResult.encoding !== void 0)
                                                          resObj.encoding = localResult.encoding;
                                                        localValues.push(resObj);
                                                      }
                                                      if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 4)) {
                                                        return void 0;
                                                      }
                                                      if (localValues.count === 2 && localValues[0].type === enums_default222222222222.ApplicationTag.DATE && localValues[1].type === enums_default222222222222.ApplicationTag.TIME) {
                                                        const date = localValues[0].value;
                                                        const time = localValues[1].value;
                                                        const bdatetime = new Date(
                                                          date.year,
                                                          date.month,
                                                          date.day,
                                                          time.hour,
                                                          time.minute,
                                                          time.second,
                                                          time.millisecond
                                                        );
                                                        newEntry.value = [
                                                          { type: enums_default222222222222.ApplicationTag.DATETIME, value: bdatetime }
                                                        ];
                                                      } else {
                                                        newEntry.value = localValues;
                                                      }
                                                      len++;
                                                    } else if (result.tagNumber === 5) {
                                                      let err = {};
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      result = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                      len += result.len;
                                                      err.errorClass = result.value;
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      result = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                      len += result.len;
                                                      err.errorCode = result.value;
                                                      if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 5)) {
                                                        return void 0;
                                                      }
                                                      len++;
                                                      newEntry.value = [
                                                        {
                                                          type: enums_default222222222222.ApplicationTag.ERROR,
                                                          value: err
                                                        }
                                                      ];
                                                    }
                                                    values.push(newEntry);
                                                  }
                                                  value.values = values;
                                                  return {
                                                    len,
                                                    value
                                                  };
                                                };
                                                var decodeSigned222222222222 = (buffer, offset, length) => {
                                                  return {
                                                    len: length,
                                                    value: buffer.readIntBE(offset, length, true)
                                                  };
                                                };
                                                var decodeReal222222222222 = (buffer, offset) => {
                                                  return {
                                                    len: 4,
                                                    value: buffer.readFloatBE(offset, true)
                                                  };
                                                };
                                                var decodeRealSafe222222222222 = (buffer, offset, lenValue) => {
                                                  if (lenValue !== 4) {
                                                    return {
                                                      len: lenValue,
                                                      value: 0
                                                    };
                                                  } else {
                                                    return decodeReal222222222222(buffer, offset);
                                                  }
                                                };
                                                var decodeDouble222222222222 = (buffer, offset) => {
                                                  return {
                                                    len: 8,
                                                    value: buffer.readDoubleBE(offset, true)
                                                  };
                                                };
                                                var decodeDoubleSafe222222222222 = (buffer, offset, lenValue) => {
                                                  if (lenValue !== 8) {
                                                    return {
                                                      len: lenValue,
                                                      value: 0
                                                    };
                                                  } else {
                                                    return decodeDouble222222222222(buffer, offset);
                                                  }
                                                };
                                                var decodeOctetString222222222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                                                  const octetString = [];
                                                  for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                                                    octetString.push(buffer[offset + i]);
                                                  }
                                                  return {
                                                    len: octetStringLength,
                                                    value: octetString
                                                  };
                                                };
                                                var multiCharsetCharacterstringDecode222222222222 = (buffer, offset, maxLength, encoding, length) => {
                                                  const stringBuf = Buffer.alloc(length);
                                                  buffer.copy(stringBuf, 0, offset, offset + length);
                                                  return {
                                                    value: import_iconv_lite222222222222.default.decode(stringBuf, getEncodingType222222222222(encoding, buffer, offset)),
                                                    len: length + 1,
                                                    encoding
                                                  };
                                                };
                                                var decodeCharacterString222222222222 = (buffer, offset, maxLength, lenValue) => {
                                                  return multiCharsetCharacterstringDecode222222222222(
                                                    buffer,
                                                    offset + 1,
                                                    maxLength,
                                                    buffer[offset],
                                                    lenValue - 1
                                                  );
                                                };
                                                var bitstringSetBitsUsed222222222222 = (bitString, bytesUsed, unusedBits) => {
                                                  bitString.bitsUsed = bytesUsed * 8;
                                                  bitString.bitsUsed -= unusedBits;
                                                };
                                                var decodeBitstring222222222222 = (buffer, offset, lenValue) => {
                                                  let len = 0;
                                                  let bitString = {};
                                                  bitString.value = [];
                                                  if (lenValue > 0) {
                                                    const bytesUsed = lenValue - 1;
                                                    if (bytesUsed <= enums_default222222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                      len = 1;
                                                      for (let i = 0; i < bytesUsed; i++) {
                                                        bitString.value.push(byteReverseBits222222222222(buffer[offset + len++]));
                                                      }
                                                      const unusedBits = buffer[offset] & 7;
                                                      bitstringSetBitsUsed222222222222(bitString, bytesUsed, unusedBits);
                                                    }
                                                  }
                                                  return {
                                                    len,
                                                    value: bitString
                                                  };
                                                };
                                                var decodeDate222222222222 = (buffer, offset) => {
                                                  let date;
                                                  const year = buffer[offset] + 1900;
                                                  const month = buffer[offset + 1];
                                                  const day = buffer[offset + 2];
                                                  const wday = buffer[offset + 3];
                                                  if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                                                    date = new Date(1, 1, 1);
                                                  } else {
                                                    date = new Date(year, month, day);
                                                  }
                                                  return {
                                                    len: 4,
                                                    value: date
                                                  };
                                                };
                                                var decodeDateSafe222222222222 = (buffer, offset, lenValue) => {
                                                  if (lenValue !== 4) {
                                                    return {
                                                      len: lenValue,
                                                      value: new Date(1, 1, 1)
                                                    };
                                                  } else {
                                                    return decodeDate222222222222(buffer, offset);
                                                  }
                                                };
                                                var decodeApplicationDate222222222222 = (buffer, offset) => {
                                                  const result = decodeTagNumber222222222222(buffer, offset);
                                                  if (result.tagNumber === enums_default222222222222.ApplicationTag.DATE) {
                                                    const value = decodeDate222222222222(buffer, offset + 1);
                                                    return {
                                                      len: value.len + 1,
                                                      value
                                                    };
                                                  }
                                                  return void 0;
                                                };
                                                var decodeBacnetTime222222222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                                                  const hour = buffer[offset + 0];
                                                  const min = buffer[offset + 1];
                                                  const sec = buffer[offset + 2];
                                                  let hundredths = buffer[offset + 3];
                                                  if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                                                    value = new Date(1, 1, 1);
                                                  } else {
                                                    if (hundredths > 100)
                                                      hundredths = 0;
                                                    value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                                                  }
                                                  return {
                                                    len: 4,
                                                    value
                                                  };
                                                };
                                                var decodeBacnetTimeSafe222222222222 = (buffer, offset, lenValue) => {
                                                  if (lenValue !== 4) {
                                                    return {
                                                      len: lenValue,
                                                      value: new Date(1, 1, 1)
                                                    };
                                                  } else {
                                                    return decodeBacnetTime222222222222(buffer, offset);
                                                  }
                                                };
                                                var decodeApplicationTime222222222222 = (buffer, offset) => {
                                                  const result = decodeTagNumber222222222222(buffer, offset);
                                                  if (result.tagNumber === enums_default222222222222.ApplicationTag.TIME) {
                                                    const value = decodeBacnetTime222222222222(buffer, offset + 1);
                                                    return {
                                                      len: value.len + 1,
                                                      value
                                                    };
                                                  }
                                                  return void 0;
                                                };
                                                var decodeBacnetDatetime222222222222 = (buffer, offset) => {
                                                  let len = 0;
                                                  const date = decodeApplicationDate222222222222(buffer, offset + len);
                                                  len += date.len;
                                                  const time = decodeApplicationTime222222222222(buffer, offset + len);
                                                  len += time.len;
                                                  return {
                                                    len,
                                                    value: new Date(
                                                      date.year,
                                                      date.month,
                                                      date.day,
                                                      time.hour,
                                                      time.minute,
                                                      time.second,
                                                      time.millisecond
                                                    )
                                                  };
                                                };
                                                var bacappDecodeData222222222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                                                  let result;
                                                  let value = {
                                                    len: 0,
                                                    type: tagDataType
                                                  };
                                                  switch (tagDataType) {
                                                    case enums_default222222222222.ApplicationTag.NULL:
                                                      value.value = null;
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.BOOLEAN:
                                                      value.value = lenValueType > 0;
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                      result = decodeUnsigned222222222222(buffer, offset, lenValueType);
                                                      value.len += result.len;
                                                      value.value = result.value;
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.SIGNED_INTEGER:
                                                      result = decodeSigned222222222222(buffer, offset, lenValueType);
                                                      value.len += result.len;
                                                      value.value = result.value;
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.REAL:
                                                      result = decodeRealSafe222222222222(buffer, offset, lenValueType);
                                                      value.len += result.len;
                                                      value.value = result.value;
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.DOUBLE:
                                                      result = decodeDoubleSafe222222222222(buffer, offset, lenValueType);
                                                      value.len += result.len;
                                                      value.value = result.value;
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.OCTET_STRING:
                                                      result = decodeOctetString222222222222(buffer, offset, maxLength, 0, lenValueType);
                                                      value.len += result.len;
                                                      value.value = result.value;
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.CHARACTER_STRING:
                                                      result = decodeCharacterString222222222222(buffer, offset, maxLength, lenValueType);
                                                      value.len += result.len;
                                                      value.value = result.value;
                                                      value.encoding = result.encoding;
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.BIT_STRING:
                                                      result = decodeBitstring222222222222(buffer, offset, lenValueType);
                                                      value.len += result.len;
                                                      value.value = result.value;
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.ENUMERATED:
                                                      result = decodeEnumerated222222222222(buffer, offset, lenValueType);
                                                      value.len += result.len;
                                                      value.value = result.value;
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.DATE:
                                                      result = decodeDateSafe222222222222(buffer, offset, lenValueType);
                                                      value.len += result.len;
                                                      value.value = result.value;
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.TIME:
                                                      result = decodeBacnetTimeSafe222222222222(buffer, offset, lenValueType);
                                                      value.len += result.len;
                                                      value.value = result.value;
                                                      break;
                                                    case enums_default222222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                      result = decodeObjectIdSafe222222222222(buffer, offset, lenValueType);
                                                      value.len += result.len;
                                                      value.value = { type: result.objectType, instance: result.instance };
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                  return value;
                                                };
                                                var bacappContextTagType222222222222 = (property, tagNumber) => {
                                                  let tag = 0;
                                                  switch (property) {
                                                    case enums_default222222222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                                                    case enums_default222222222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                                                    case enums_default222222222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                                                      switch (tagNumber) {
                                                        case 0:
                                                        case 1:
                                                          tag = enums_default222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                          break;
                                                        case 2:
                                                          tag = enums_default222222222222.ApplicationTag.REAL;
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                      break;
                                                    case enums_default222222222222.PropertyIdentifier.ACTION:
                                                      switch (tagNumber) {
                                                        case 0:
                                                        case 1:
                                                          tag = enums_default222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                          break;
                                                        case 2:
                                                          tag = enums_default222222222222.ApplicationTag.ENUMERATED;
                                                          break;
                                                        case 3:
                                                        case 5:
                                                        case 6:
                                                          tag = enums_default222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                          break;
                                                        case 7:
                                                        case 8:
                                                          tag = enums_default222222222222.ApplicationTag.BOOLEAN;
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                      break;
                                                    case enums_default222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                                                      switch (tagNumber) {
                                                        case 0:
                                                          tag = enums_default222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                      break;
                                                    case enums_default222222222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                                                      switch (tagNumber) {
                                                        case 1:
                                                          tag = enums_default222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                          break;
                                                        case 3:
                                                          tag = enums_default222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                      break;
                                                    case enums_default222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                                                      switch (tagNumber) {
                                                        case 0:
                                                        case 3:
                                                          tag = enums_default222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                          break;
                                                        case 1:
                                                          tag = enums_default222222222222.ApplicationTag.ENUMERATED;
                                                          break;
                                                        case 2:
                                                          tag = enums_default222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                      break;
                                                    case enums_default222222222222.PropertyIdentifier.SUBORDINATE_LIST:
                                                      switch (tagNumber) {
                                                        case 0:
                                                        case 1:
                                                          tag = enums_default222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                      break;
                                                    case enums_default222222222222.PropertyIdentifier.RECIPIENT_LIST:
                                                      switch (tagNumber) {
                                                        case 0:
                                                          tag = enums_default222222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                      break;
                                                    case enums_default222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                                                      switch (tagNumber) {
                                                        case 0:
                                                        case 1:
                                                          break;
                                                        case 2:
                                                          tag = enums_default222222222222.ApplicationTag.BOOLEAN;
                                                          break;
                                                        case 3:
                                                          tag = enums_default222222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                          break;
                                                        case 4:
                                                          tag = enums_default222222222222.ApplicationTag.REAL;
                                                          break;
                                                        default:
                                                          break;
                                                      }
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                  return tag;
                                                };
                                                var decodeDeviceObjPropertyRef222222222222 = (buffer, offset, NOTUSEDARG = 0) => {
                                                  let len = 0;
                                                  let arrayIndex = enums_default222222222222.ASN1_ARRAY_ALL;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  let objectId = decodeObjectId222222222222(buffer, offset + len);
                                                  len += objectId.len;
                                                  let result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 1) {
                                                    return void 0;
                                                  }
                                                  let id = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += id.len;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  if (result.tagNumber === 2) {
                                                    len += result.len;
                                                    arrayIndex = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += arrayIndex.len;
                                                  }
                                                  if (decodeIsContextTag222222222222(buffer, offset + len, 3)) {
                                                    if (!isClosingTag222222222222(buffer[offset + len])) {
                                                      len++;
                                                      objectId = decodeObjectId222222222222(buffer, offset + len);
                                                      len += objectId.len;
                                                    }
                                                  }
                                                  return {
                                                    len,
                                                    value: {
                                                      objectId,
                                                      id
                                                    }
                                                  };
                                                };
                                                var decodeReadAccessSpecification222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let value = {};
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  let decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  value.objectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  len += decodedValue.len;
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  const propertyIdAndArrayIndex = [];
                                                  while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222222(buffer, offset + len, 1)) {
                                                    let propertyRef = {};
                                                    if (!isContextSpecific222222222222(buffer[offset + len])) {
                                                      return void 0;
                                                    }
                                                    let result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 0) {
                                                      return void 0;
                                                    }
                                                    if (len + result.value >= apduLen) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    propertyRef.id = decodedValue.value;
                                                    len += decodedValue.len;
                                                    propertyRef.index = enums_default222222222222.ASN1_ARRAY_ALL;
                                                    if (isContextSpecific222222222222(buffer[offset + len]) && !isClosingTag222222222222(buffer[offset + len])) {
                                                      const tmp = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      if (tmp.tagNumber === 1) {
                                                        len += tmp.len;
                                                        if (len + tmp.value >= apduLen) {
                                                          return void 0;
                                                        }
                                                        decodedValue = decodeUnsigned222222222222(buffer, offset + len, tmp.value);
                                                        propertyRef.index = decodedValue.value;
                                                        len += decodedValue.len;
                                                      }
                                                    }
                                                    propertyIdAndArrayIndex.push(propertyRef);
                                                  }
                                                  if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  value.properties = propertyIdAndArrayIndex;
                                                  return {
                                                    len,
                                                    value
                                                  };
                                                };
                                                var decodeCovSubscription222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let value = {};
                                                  let result;
                                                  let decodedValue;
                                                  value.recipient = {};
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== enums_default222222222222.ApplicationTag.UNSIGNED_INTEGER) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.recipient.net = decodedValue.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== enums_default222222222222.ApplicationTag.OCTET_STRING) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeOctetString222222222222(
                                                    buffer,
                                                    offset + len,
                                                    apduLen,
                                                    0,
                                                    result.value
                                                  );
                                                  len += decodedValue.len;
                                                  value.recipient.adr = decodedValue.value;
                                                  if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 1) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.subscriptionProcessId = decodedValue.value;
                                                  if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 0) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  value.monitoredObjectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 1) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.monitoredProperty = {};
                                                  value.monitoredProperty.id = decodedValue.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  if (result.tagNumber === 2) {
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.monitoredProperty.index = decodedValue.value;
                                                  } else {
                                                    value.monitoredProperty.index = enums_default222222222222.ASN1_ARRAY_ALL;
                                                  }
                                                  if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 2) {
                                                    return void 0;
                                                  }
                                                  value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                  len++;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 3) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.timeRemaining = decodedValue.value;
                                                  if (len < apduLen && !isClosingTag222222222222(buffer[offset + len])) {
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 4) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeReal222222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    value.covIncrement = decodedValue.value;
                                                  }
                                                  return {
                                                    len,
                                                    value
                                                  };
                                                };
                                                var decodeCalendarDate222222222222 = (buffer, offset) => {
                                                  return {
                                                    len: 4,
                                                    year: buffer[offset],
                                                    month: buffer[offset + 1],
                                                    day: buffer[offset + 2],
                                                    wday: buffer[offset + 3]
                                                  };
                                                };
                                                var decodeCalendarDateRange222222222222 = (buffer, offset) => {
                                                  let len = 1;
                                                  const startDate = decodeDate222222222222(buffer, offset + len);
                                                  len += startDate.len + 1;
                                                  const endDate = decodeDate222222222222(buffer, offset + len);
                                                  len += endDate.len + 1;
                                                  return {
                                                    len,
                                                    startDate,
                                                    endDate
                                                  };
                                                };
                                                var decodeCalendarWeekDay222222222222 = (buffer, offset) => {
                                                  return {
                                                    len: 3,
                                                    month: buffer[offset],
                                                    week: buffer[offset + 1],
                                                    wday: buffer[offset + 2]
                                                  };
                                                };
                                                var decodeCalendar222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  const entries = [];
                                                  let decodedValue;
                                                  while (len < apduLen) {
                                                    const result = decodeTagNumber222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    switch (result.tagNumber) {
                                                      case 0:
                                                        decodedValue = decodeCalendarDate222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        entries.push(decodedValue);
                                                        break;
                                                      case 1:
                                                        decodedValue = decodeCalendarDateRange222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        entries.push(decodedValue);
                                                        break;
                                                      case 2:
                                                        decodedValue = decodeCalendarWeekDay222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        entries.push(decodedValue);
                                                        break;
                                                      default:
                                                        return {
                                                          len: len - 1,
                                                          value: entries
                                                        };
                                                    }
                                                  }
                                                };
                                                var bacappDecodeContextApplicationData222222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                                  let len = 0;
                                                  let result;
                                                  if (isContextSpecific222222222222(buffer[offset])) {
                                                    if (propertyId === enums_default222222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                                                      result = decodeReadAccessSpecification222222222222(buffer, offset, maxOffset);
                                                      if (!result) {
                                                        return void 0;
                                                      }
                                                      return {
                                                        type: enums_default222222222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                                        value: result.value,
                                                        len: result.len
                                                      };
                                                    } else if (propertyId === enums_default222222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                                                      result = decodeCovSubscription222222222222(buffer, offset, maxOffset);
                                                      if (!result) {
                                                        return void 0;
                                                      }
                                                      return {
                                                        type: enums_default222222222222.ApplicationTag.COV_SUBSCRIPTION,
                                                        value: result.value,
                                                        len: result.len
                                                      };
                                                    } else if (objectType === enums_default222222222222.ObjectType.GROUP && propertyId === enums_default222222222222.PropertyIdentifier.PRESENT_VALUE) {
                                                      result = decodeReadAccessResult222222222222(buffer, offset, maxOffset);
                                                      if (!result) {
                                                        return void 0;
                                                      }
                                                      return {
                                                        type: enums_default222222222222.ApplicationTag.READ_ACCESS_RESULT,
                                                        value: result.value,
                                                        len: result.len
                                                      };
                                                    } else if (propertyId === enums_default222222222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default222222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default222222222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                                                      result = decodeDeviceObjPropertyRef222222222222(buffer, offset, maxOffset);
                                                      if (!result) {
                                                        return void 0;
                                                      }
                                                      return {
                                                        type: enums_default222222222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                                        value: result.value,
                                                        len: result.len
                                                      };
                                                    } else if (propertyId === enums_default222222222222.PropertyIdentifier.DATE_LIST) {
                                                      result = decodeCalendar222222222222(buffer, offset, maxOffset);
                                                      if (!result) {
                                                        return void 0;
                                                      }
                                                      return {
                                                        type: enums_default222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                                        value: result.value,
                                                        len: result.len
                                                      };
                                                    } else if (propertyId === enums_default222222222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                                                      let subEvtResult;
                                                      let evtResult = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += 1;
                                                      if (evtResult.tagNumber === 0) {
                                                        subEvtResult = decodeBacnetTime222222222222(buffer, offset + 1);
                                                        return {
                                                          type: enums_default222222222222.ApplicationTag.TIMESTAMP,
                                                          value: subEvtResult.value,
                                                          len: subEvtResult.len + 1
                                                        };
                                                      } else if (evtResult.tagNumber === 1) {
                                                        subEvtResult = decodeUnsigned222222222222(buffer, offset + len, evtResult.value);
                                                        return {
                                                          type: enums_default222222222222.ApplicationTag.UNSIGNED_INTEGER,
                                                          value: subEvtResult.value,
                                                          len: subEvtResult.len + 1
                                                        };
                                                      } else if (evtResult.tagNumber === 2) {
                                                        subEvtResult = decodeBacnetDatetime222222222222(buffer, offset + len);
                                                        return {
                                                          type: enums_default222222222222.ApplicationTag.TIMESTAMP,
                                                          value: subEvtResult.value,
                                                          len: subEvtResult.len + 2
                                                        };
                                                      } else {
                                                        return void 0;
                                                      }
                                                    }
                                                    const list = [];
                                                    let tagResult = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    let multipleValues = isOpeningTag222222222222(buffer[offset + len]);
                                                    while (len + offset <= maxOffset && !isClosingTag222222222222(buffer[offset + len])) {
                                                      let subResult = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      if (!subResult) {
                                                        return void 0;
                                                      }
                                                      if (subResult.value === 0) {
                                                        len += subResult.len;
                                                        result = bacappDecodeApplicationData222222222222(
                                                          buffer,
                                                          offset + len,
                                                          maxOffset,
                                                          enums_default222222222222.ASN1_MAX_OBJECT_TYPE,
                                                          enums_default222222222222.ASN1_MAX_PROPERTY_ID
                                                        );
                                                        if (!result) {
                                                          return void 0;
                                                        }
                                                        list.push(result);
                                                        len += result.len;
                                                      } else {
                                                        const overrideTagNumber = bacappContextTagType222222222222(
                                                          propertyId,
                                                          subResult.tagNumber
                                                        );
                                                        if (overrideTagNumber !== enums_default222222222222.ASN1_MAX_APPLICATION_TAG) {
                                                          subResult.tagNumber = overrideTagNumber;
                                                        }
                                                        let bacappResult = bacappDecodeData222222222222(
                                                          buffer,
                                                          offset + len + subResult.len,
                                                          maxOffset,
                                                          subResult.tagNumber,
                                                          subResult.value
                                                        );
                                                        if (!bacappResult) {
                                                          return void 0;
                                                        }
                                                        if (bacappResult.len === subResult.value) {
                                                          let resObj = {
                                                            value: bacappResult.value,
                                                            type: bacappResult.type
                                                          };
                                                          if (bacappResult.encoding !== void 0)
                                                            resObj.encoding = bacappResult.encoding;
                                                          list.push(resObj);
                                                          len += subResult.len + subResult.value;
                                                        } else {
                                                          list.push({
                                                            value: buffer.slice(
                                                              offset + len + subResult.len,
                                                              offset + len + subResult.len + subResult.value
                                                            ),
                                                            type: enums_default222222222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                                          });
                                                          len += subResult.len + subResult.value;
                                                        }
                                                      }
                                                      if (multipleValues === false) {
                                                        return {
                                                          len,
                                                          value: list[0],
                                                          type: enums_default222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                        };
                                                      }
                                                    }
                                                    if (len + offset > maxOffset) {
                                                      return void 0;
                                                    }
                                                    if (decodeIsClosingTagNumber222222222222(buffer, offset + len, tagResult.tagNumber)) {
                                                      len++;
                                                    }
                                                    return {
                                                      len,
                                                      value: list,
                                                      type: enums_default222222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                    };
                                                  }
                                                  return void 0;
                                                };
                                                var bacappEncodeTimestamp222222222222 = (buffer, value) => {
                                                  switch (value.type) {
                                                    case enums_default222222222222.TimeStamp.TIME:
                                                      encodeContextTime222222222222(buffer, 0, value.value);
                                                      break;
                                                    case enums_default222222222222.TimeStamp.SEQUENCE_NUMBER:
                                                      encodeContextUnsigned222222222222(buffer, 1, value.value);
                                                      break;
                                                    case enums_default222222222222.TimeStamp.DATETIME:
                                                      bacappEncodeContextDatetime222222222222(buffer, 2, value.value);
                                                      break;
                                                    default:
                                                      throw new Error("NOT_IMPLEMENTED");
                                                  }
                                                };
                                                var bacappEncodeContextTimestamp222222222222 = (buffer, tagNumber, value) => {
                                                  encodeOpeningTag222222222222(buffer, tagNumber);
                                                  bacappEncodeTimestamp222222222222(buffer, value);
                                                  encodeClosingTag222222222222(buffer, tagNumber);
                                                };
                                                var decodeContextCharacterString222222222222 = (buffer, offset, maxLength, tagNumber) => {
                                                  let len = 0;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, tagNumber)) {
                                                    return void 0;
                                                  }
                                                  const result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  const decodedValue = multiCharsetCharacterstringDecode222222222222(
                                                    buffer,
                                                    offset + 1 + len,
                                                    maxLength,
                                                    buffer[offset + len],
                                                    result.value - 1
                                                  );
                                                  if (!decodedValue) {
                                                    return void 0;
                                                  }
                                                  len += result.value;
                                                  return {
                                                    len,
                                                    value: decodedValue.value,
                                                    encoding: decodedValue.encoding
                                                  };
                                                };
                                                var decodeIsContextTagWithLength222222222222 = (buffer, offset, tagNumber) => {
                                                  const result = decodeTagNumber222222222222(buffer, offset);
                                                  return {
                                                    len: result.len,
                                                    value: isContextSpecific222222222222(buffer[offset]) && result.tagNumber === tagNumber
                                                  };
                                                };
                                                var decodeContextObjectId222222222222 = (buffer, offset, tagNumber) => {
                                                  const result = decodeIsContextTagWithLength222222222222(buffer, offset, tagNumber);
                                                  if (!result.value) {
                                                    return void 0;
                                                  }
                                                  const decodedValue = decodeObjectId222222222222(buffer, offset + result.len);
                                                  decodedValue.len = decodedValue.len + result.len;
                                                  return decodedValue;
                                                };
                                                var encodeBacnetCharacterString222222222222 = (buffer, value, encoding) => {
                                                  encoding = encoding || enums_default222222222222.CharacterStringEncoding.UTF_8;
                                                  buffer.buffer[buffer.offset++] = encoding;
                                                  const bufEncoded = import_iconv_lite222222222222.default.encode(value, getEncodingType222222222222(encoding));
                                                  buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                                                };
                                                var encodeApplicationCharacterString222222222222 = (buffer, value, encoding) => {
                                                  const tmp = getBuffer222222222222();
                                                  encodeBacnetCharacterString222222222222(tmp, value, encoding);
                                                  encodeTag222222222222(buffer, enums_default222222222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                  buffer.offset += tmp.offset;
                                                };
                                                var encodeContextCharacterString222222222222 = (buffer, tagNumber, value, encoding) => {
                                                  const tmp = getBuffer222222222222();
                                                  encodeBacnetCharacterString222222222222(tmp, value, encoding);
                                                  encodeTag222222222222(buffer, tagNumber, true, tmp.offset);
                                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                                  buffer.offset += tmp.offset;
                                                };
                                                var encode3322222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                  encodeContextObjectId222222222222(buffer, 0, objectId.type, objectId.instance);
                                                  encodeContextEnumerated222222222222(buffer, 1, propertyId);
                                                  if (arrayIndex !== ASN1_ARRAY_ALL222222222222) {
                                                    encodeContextUnsigned222222222222(buffer, 2, arrayIndex);
                                                  }
                                                  encodeOpeningTag222222222222(buffer, 3);
                                                  values.forEach((value) => {
                                                    bacappEncodeApplicationData222222222222(buffer, value);
                                                  });
                                                  encodeClosingTag222222222222(buffer, 3);
                                                };
                                                var decode3322222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let value = {};
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  value.objectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.property = { id: decodedValue.value };
                                                  if (len < apduLen && decodeIsContextTag222222222222(buffer, offset + len, 2)) {
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.property.index = decodedValue.value;
                                                  } else {
                                                    value.property.index = ASN1_ARRAY_ALL222222222222;
                                                  }
                                                  const values = [];
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 3)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  while (apduLen - len > 1) {
                                                    result = bacappDecodeApplicationData222222222222(
                                                      buffer,
                                                      offset + len,
                                                      apduLen + offset,
                                                      value.objectId.type,
                                                      value.property.id
                                                    );
                                                    if (!result) {
                                                      return void 0;
                                                    }
                                                    len += result.len;
                                                    delete result.len;
                                                    values.push(result);
                                                  }
                                                  value.values = values;
                                                  if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 3)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  value.len = len;
                                                  return value;
                                                };
                                                var alarm_acknowledge_exports222222222222 = {};
                                                __export222222222222(alarm_acknowledge_exports222222222222, {
                                                  decode: () => decode21022222222222,
                                                  encode: () => encode21022222222222
                                                });
                                                var encode21022222222222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                                                  encodeContextUnsigned222222222222(buffer, 0, ackProcessId);
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    1,
                                                    eventObjectId.type,
                                                    eventObjectId.instance
                                                  );
                                                  encodeContextEnumerated222222222222(buffer, 2, eventStateAcknowledged);
                                                  bacappEncodeContextTimestamp222222222222(buffer, 3, eventTimeStamp);
                                                  encodeContextCharacterString222222222222(buffer, 4, ackSource);
                                                  bacappEncodeContextTimestamp222222222222(buffer, 5, ackTimeStamp);
                                                };
                                                var decode21022222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let value = {};
                                                  let result;
                                                  let decodedValue;
                                                  let date;
                                                  let time;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.acknowledgedProcessId = decodedValue.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  value.eventObjectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.eventStateAcknowledged = decodedValue.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber === 0) {
                                                    decodedValue = decodeBacnetTime222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.eventTimeStamp = decodedValue.value;
                                                  } else if (result.tagNumber === 1) {
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.eventTimeStamp = decodedValue.value;
                                                  } else if (result.tagNumber === 2) {
                                                    date = decodeApplicationDate222222222222(buffer, offset + len);
                                                    len += date.len;
                                                    date = date.value.value;
                                                    time = decodeApplicationTime222222222222(buffer, offset + len);
                                                    len += time.len;
                                                    time = time.value.value;
                                                    value.eventTimeStamp = new Date(
                                                      date.getFullYear(),
                                                      date.getMonth(),
                                                      date.getDate(),
                                                      time.getHours(),
                                                      time.getMinutes(),
                                                      time.getSeconds(),
                                                      time.getMilliseconds()
                                                    );
                                                    len++;
                                                  }
                                                  len++;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeCharacterString222222222222(
                                                    buffer,
                                                    offset + len,
                                                    apduLen - (offset + len),
                                                    result.value
                                                  );
                                                  value.acknowledgeSource = decodedValue.value;
                                                  len += decodedValue.len;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber === 0) {
                                                    decodedValue = decodeBacnetTime222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.acknowledgeTimeStamp = decodedValue.value;
                                                  } else if (result.tagNumber === 1) {
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.acknowledgeTimeStamp = decodedValue.value;
                                                  } else if (result.tagNumber === 2) {
                                                    date = decodeApplicationDate222222222222(buffer, offset + len);
                                                    len += date.len;
                                                    date = date.value.value;
                                                    time = decodeApplicationTime222222222222(buffer, offset + len);
                                                    len += time.len;
                                                    time = time.value.value;
                                                    value.acknowledgeTimeStamp = new Date(
                                                      date.getFullYear(),
                                                      date.getMonth(),
                                                      date.getDate(),
                                                      time.getHours(),
                                                      time.getMinutes(),
                                                      time.getSeconds(),
                                                      time.getMilliseconds()
                                                    );
                                                    len++;
                                                  }
                                                  len++;
                                                  value.len = len;
                                                  return value;
                                                };
                                                var alarm_summary_exports222222222222 = {};
                                                __export222222222222(alarm_summary_exports222222222222, {
                                                  decode: () => decode3422222222222,
                                                  encode: () => encode3422222222222
                                                });
                                                var encode3422222222222 = (buffer, alarms) => {
                                                  alarms.forEach((alarm) => {
                                                    encodeContextObjectId222222222222(
                                                      buffer,
                                                      12,
                                                      alarm.objectId.type,
                                                      alarm.objectId.instance
                                                    );
                                                    encodeContextEnumerated222222222222(buffer, 9, alarm.alarmState);
                                                    encodeContextBitstring222222222222(buffer, 8, alarm.acknowledgedTransitions);
                                                  });
                                                };
                                                var decode3422222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  const alarms = [];
                                                  while (apduLen - 3 - len > 0) {
                                                    let value = {};
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    value.objectId = {
                                                      type: decodedValue.objectType,
                                                      instance: decodedValue.instance
                                                    };
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.alarmState = decodedValue.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeBitstring222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.acknowledgedTransitions = decodedValue.value;
                                                    alarms.push(value);
                                                  }
                                                  return {
                                                    len,
                                                    alarms
                                                  };
                                                };
                                                var atomic_read_file_exports222222222222 = {};
                                                __export222222222222(atomic_read_file_exports222222222222, {
                                                  decode: () => decode4222222222222,
                                                  decodeAcknowledge: () => decodeAcknowledge822222222222,
                                                  encode: () => encode4222222222222,
                                                  encodeAcknowledge: () => encodeAcknowledge922222222222
                                                });
                                                var encode4222222222222 = (buffer, isStream, objectId, position, count) => {
                                                  encodeApplicationObjectId222222222222(buffer, objectId.type, objectId.instance);
                                                  if (isStream) {
                                                    encodeOpeningTag222222222222(buffer, 0);
                                                    encodeApplicationSigned222222222222(buffer, position);
                                                    encodeApplicationUnsigned222222222222(buffer, count);
                                                    encodeClosingTag222222222222(buffer, 0);
                                                  } else {
                                                    encodeOpeningTag222222222222(buffer, 1);
                                                    encodeApplicationSigned222222222222(buffer, position);
                                                    encodeApplicationUnsigned222222222222(buffer, count);
                                                    encodeClosingTag222222222222(buffer, 1);
                                                  }
                                                };
                                                var decode4222222222222 = (buffer, offset) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let isStream = true;
                                                  let objectId = {};
                                                  let position = -1;
                                                  let count = 0;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 12) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                                                  if (decodeIsOpeningTagNumber222222222222(buffer, offset + len, 0)) {
                                                    isStream = true;
                                                    len++;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 3) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeSigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    position = decodedValue.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 2) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    count = decodedValue.value;
                                                    if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 0)) {
                                                      return void 0;
                                                    }
                                                    len++;
                                                  } else if (decodeIsOpeningTagNumber222222222222(buffer, offset + len, 1)) {
                                                    isStream = false;
                                                    len++;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 3) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeSigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    position = decodedValue.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 2) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    count = decodedValue.value;
                                                    if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 1)) {
                                                      return void 0;
                                                    }
                                                    len++;
                                                  } else {
                                                    return void 0;
                                                  }
                                                  return {
                                                    len,
                                                    isStream,
                                                    objectId,
                                                    position,
                                                    count
                                                  };
                                                };
                                                var encodeAcknowledge922222222222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                                                  encodeApplicationBoolean222222222222(buffer, endOfFile);
                                                  if (isStream) {
                                                    encodeOpeningTag222222222222(buffer, 0);
                                                    encodeApplicationSigned222222222222(buffer, position);
                                                    encodeApplicationOctetString222222222222(buffer, blocks[0], 0, counts[0]);
                                                    encodeClosingTag222222222222(buffer, 0);
                                                  } else {
                                                    encodeOpeningTag222222222222(buffer, 1);
                                                    encodeApplicationSigned222222222222(buffer, position);
                                                    encodeApplicationUnsigned222222222222(buffer, blockCount);
                                                    for (let i = 0; i < blockCount; i++) {
                                                      encodeApplicationOctetString222222222222(buffer, blocks[i], 0, counts[i]);
                                                    }
                                                    encodeClosingTag222222222222(buffer, 1);
                                                  }
                                                };
                                                var decodeAcknowledge822222222222 = (buffer, offset, length = 0) => {
                                                  let len = length;
                                                  let result;
                                                  let decodedValue;
                                                  let endOfFile;
                                                  let isStream;
                                                  let position;
                                                  let targetBuffer;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 1) {
                                                    return void 0;
                                                  }
                                                  endOfFile = result.value > 0;
                                                  if (decodeIsOpeningTagNumber222222222222(buffer, offset + len, 0)) {
                                                    isStream = true;
                                                    len++;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 3) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeSigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    position = decodedValue.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 6) {
                                                      return void 0;
                                                    }
                                                    targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                                                    len += result.value;
                                                    if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 0)) {
                                                      return void 0;
                                                    }
                                                    len++;
                                                  } else if (decodeIsOpeningTagNumber222222222222(buffer, offset + len, 1)) {
                                                    isStream = false;
                                                    throw new Error("NotImplemented");
                                                  } else {
                                                    return void 0;
                                                  }
                                                  return {
                                                    len,
                                                    endOfFile,
                                                    isStream,
                                                    position,
                                                    buffer: targetBuffer
                                                  };
                                                };
                                                var atomic_write_file_exports222222222222 = {};
                                                __export222222222222(atomic_write_file_exports222222222222, {
                                                  decode: () => decode5222222222222,
                                                  decodeAcknowledge: () => decodeAcknowledge2222222222222,
                                                  encode: () => encode5222222222222,
                                                  encodeAcknowledge: () => encodeAcknowledge2222222222222
                                                });
                                                var encode5222222222222 = (buffer, isStream, objectId, position, blocks) => {
                                                  encodeApplicationObjectId222222222222(buffer, objectId.type, objectId.instance);
                                                  if (isStream) {
                                                    encodeOpeningTag222222222222(buffer, 0);
                                                    encodeApplicationSigned222222222222(buffer, position);
                                                    encodeApplicationOctetString222222222222(buffer, blocks[0], 0, blocks[0].length);
                                                    encodeClosingTag222222222222(buffer, 0);
                                                  } else {
                                                    encodeOpeningTag222222222222(buffer, 1);
                                                    encodeApplicationSigned222222222222(buffer, position);
                                                    encodeApplicationUnsigned222222222222(buffer, blocks.length);
                                                    for (let i = 0; i < blocks.length; i++) {
                                                      encodeApplicationOctetString222222222222(
                                                        buffer,
                                                        blocks[i],
                                                        0,
                                                        blocks[i].length
                                                      );
                                                    }
                                                    encodeClosingTag222222222222(buffer, 1);
                                                  }
                                                };
                                                var decode5222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let isStream;
                                                  let position;
                                                  let blocks = [];
                                                  let blockCount;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 12) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  let objectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  if (decodeIsOpeningTagNumber222222222222(buffer, offset + len, 0)) {
                                                    isStream = true;
                                                    len++;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 3) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeSigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    position = decodedValue.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 6) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeOctetString222222222222(
                                                      buffer,
                                                      offset + len,
                                                      apduLen,
                                                      0,
                                                      result.value
                                                    );
                                                    len += decodedValue.len;
                                                    blocks.push(decodedValue.value);
                                                    if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 0)) {
                                                      return void 0;
                                                    }
                                                    len++;
                                                  } else if (decodeIsOpeningTagNumber222222222222(buffer, offset + len, 1)) {
                                                    isStream = false;
                                                    len++;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 3) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeSigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    position = decodedValue.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 2) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    blockCount = decodedValue.value;
                                                    for (let i = 0; i < blockCount; i++) {
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber !== 6) {
                                                        return void 0;
                                                      }
                                                      decodedValue = decodeOctetString222222222222(
                                                        buffer,
                                                        offset + len,
                                                        apduLen,
                                                        0,
                                                        result.value
                                                      );
                                                      len += decodedValue.len;
                                                      blocks.push(decodedValue.value);
                                                    }
                                                    if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 1)) {
                                                      return void 0;
                                                    }
                                                    len++;
                                                  } else {
                                                    return void 0;
                                                  }
                                                  return {
                                                    len,
                                                    isStream,
                                                    objectId,
                                                    position,
                                                    blocks
                                                  };
                                                };
                                                var encodeAcknowledge2222222222222 = (buffer, isStream, position) => {
                                                  if (isStream) {
                                                    encodeContextSigned222222222222(buffer, 0, position);
                                                  } else {
                                                    encodeContextSigned222222222222(buffer, 1, position);
                                                  }
                                                };
                                                var decodeAcknowledge2222222222222 = (buffer, offset, length = 0) => {
                                                  let len = length;
                                                  let isStream = false;
                                                  let position = 0;
                                                  let decodedValue;
                                                  const result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber === 0) {
                                                    isStream = true;
                                                  } else if (result.tagNumber === 1) {
                                                    isStream = false;
                                                  } else {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeSigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  position = decodedValue.value;
                                                  return {
                                                    len,
                                                    isStream,
                                                    position
                                                  };
                                                };
                                                var cov_notify_exports222222222222 = {};
                                                __export222222222222(cov_notify_exports222222222222, {
                                                  decode: () => decode6222222222222,
                                                  encode: () => encode6222222222222
                                                });
                                                var encode6222222222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                                                  encodeContextUnsigned222222222222(buffer, 0, subscriberProcessId);
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    1,
                                                    8,
                                                    initiatingDeviceId
                                                  );
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    2,
                                                    monitoredObjectId.type,
                                                    monitoredObjectId.instance
                                                  );
                                                  encodeContextUnsigned222222222222(buffer, 3, timeRemaining);
                                                  encodeOpeningTag222222222222(buffer, 4);
                                                  values.forEach((value) => {
                                                    encodeContextEnumerated222222222222(buffer, 0, value.property.id);
                                                    if (value.property.index === ASN1_ARRAY_ALL222222222222) {
                                                      encodeContextUnsigned222222222222(buffer, 1, value.property.index);
                                                    }
                                                    encodeOpeningTag222222222222(buffer, 2);
                                                    value.value.forEach((v) => {
                                                      bacappEncodeApplicationData222222222222(buffer, v);
                                                    });
                                                    encodeClosingTag222222222222(buffer, 2);
                                                    if (value.priority === ASN1_NO_PRIORITY222222222222) {
                                                      encodeContextUnsigned222222222222(buffer, 3, value.priority);
                                                    }
                                                  });
                                                  encodeClosingTag222222222222(buffer, 4);
                                                };
                                                var decode6222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  const subscriberProcessId = decodedValue.value;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  const initiatingDeviceId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 2)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  const monitoredObjectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 3)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  const timeRemaining = decodedValue.value;
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 4)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  const values = [];
                                                  while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222222(buffer, offset + len, 4)) {
                                                    let newEntry = {};
                                                    newEntry.property = {};
                                                    if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                      return void 0;
                                                    }
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    newEntry.property.id = decodedValue.value;
                                                    if (decodeIsContextTag222222222222(buffer, offset + len, 1)) {
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      newEntry.property.index = decodedValue.value;
                                                    } else {
                                                      newEntry.property.index = ASN1_ARRAY_ALL222222222222;
                                                    }
                                                    if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 2)) {
                                                      return void 0;
                                                    }
                                                    len++;
                                                    const properties = [];
                                                    while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222222(buffer, offset + len, 2)) {
                                                      decodedValue = bacappDecodeApplicationData222222222222(
                                                        buffer,
                                                        offset + len,
                                                        apduLen + offset,
                                                        monitoredObjectId.type,
                                                        newEntry.property.id
                                                      );
                                                      if (!decodedValue) {
                                                        return void 0;
                                                      }
                                                      len += decodedValue.len;
                                                      delete decodedValue.len;
                                                      properties.push(decodedValue);
                                                    }
                                                    newEntry.value = properties;
                                                    len++;
                                                    if (decodeIsContextTag222222222222(buffer, offset + len, 3)) {
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      newEntry.priority = decodedValue.value;
                                                    } else {
                                                      newEntry.priority = ASN1_NO_PRIORITY222222222222;
                                                    }
                                                    values.push(newEntry);
                                                  }
                                                  return {
                                                    len,
                                                    subscriberProcessId,
                                                    initiatingDeviceId,
                                                    monitoredObjectId,
                                                    timeRemaining,
                                                    values
                                                  };
                                                };
                                                var create_object_exports222222222222 = {};
                                                __export222222222222(create_object_exports222222222222, {
                                                  decode: () => decode7222222222222,
                                                  encode: () => encode7222222222222,
                                                  encodeAcknowledge: () => encodeAcknowledge3222222222222
                                                });
                                                var encode7222222222222 = (buffer, objectId, values) => {
                                                  encodeOpeningTag222222222222(buffer, 0);
                                                  encodeContextObjectId222222222222(buffer, 1, objectId.type, objectId.instance);
                                                  encodeClosingTag222222222222(buffer, 0);
                                                  encodeOpeningTag222222222222(buffer, 1);
                                                  values.forEach((propertyValue) => {
                                                    encodeContextEnumerated222222222222(buffer, 0, propertyValue.property.id);
                                                    if (propertyValue.property.index !== ASN1_ARRAY_ALL222222222222) {
                                                      encodeContextUnsigned222222222222(buffer, 1, propertyValue.property.index);
                                                    }
                                                    encodeOpeningTag222222222222(buffer, 2);
                                                    propertyValue.value.forEach((value) => {
                                                      bacappEncodeApplicationData222222222222(buffer, value);
                                                    });
                                                    encodeClosingTag222222222222(buffer, 2);
                                                    if (propertyValue.priority !== ASN1_NO_PRIORITY222222222222) {
                                                      encodeContextUnsigned222222222222(buffer, 3, propertyValue.priority);
                                                    }
                                                  });
                                                  encodeClosingTag222222222222(buffer, 1);
                                                };
                                                var decode7222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let objectId;
                                                  const valueList = [];
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber === 0 && apduLen > len) {
                                                    apduLen -= len;
                                                    if (apduLen < 4) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeContextObjectId222222222222(buffer, offset + len, 1);
                                                    len += decodedValue.len;
                                                    objectId = {
                                                      type: decodedValue.objectType,
                                                      instance: decodedValue.instance
                                                    };
                                                  } else {
                                                    return void 0;
                                                  }
                                                  if (decodeIsClosingTag222222222222(buffer, offset + len)) {
                                                    len++;
                                                  }
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  while (apduLen - len > 1) {
                                                    let newEntry = {};
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 0) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    let propertyId = decodedValue.value;
                                                    let arraIndex = ASN1_ARRAY_ALL222222222222;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber === 1) {
                                                      decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      arraIndex += decodedValue.value;
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                    }
                                                    newEntry.property = { id: propertyId, index: arraIndex };
                                                    if (result.tagNumber === 2 && decodeIsOpeningTag222222222222(buffer, offset + len - 1)) {
                                                      const values = [];
                                                      while (!decodeIsClosingTag222222222222(buffer, offset + len)) {
                                                        decodedValue = bacappDecodeApplicationData222222222222(
                                                          buffer,
                                                          offset + len,
                                                          apduLen + offset,
                                                          objectId.type,
                                                          propertyId
                                                        );
                                                        if (!decodedValue) {
                                                          return void 0;
                                                        }
                                                        len += decodedValue.len;
                                                        delete decodedValue.len;
                                                        values.push(decodedValue);
                                                      }
                                                      len++;
                                                      newEntry.value = values;
                                                    } else {
                                                      return void 0;
                                                    }
                                                    valueList.push(newEntry);
                                                  }
                                                  if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  return {
                                                    len,
                                                    objectId,
                                                    values: valueList
                                                  };
                                                };
                                                var encodeAcknowledge3222222222222 = (buffer, objectId) => {
                                                  encodeApplicationObjectId222222222222(buffer, objectId.type, objectId.instance);
                                                };
                                                var delete_object_exports222222222222 = {};
                                                __export222222222222(delete_object_exports222222222222, {
                                                  decode: () => decode8222222222222,
                                                  encode: () => encode8222222222222
                                                });
                                                var decode8222222222222 = (buffer, offset, apduLen) => {
                                                  const result = decodeTagNumberAndValue222222222222(buffer, offset);
                                                  if (result.tagNumber !== 12) {
                                                    return void 0;
                                                  }
                                                  let len = 1;
                                                  const value = decodeObjectId222222222222(buffer, offset + len);
                                                  len += value.len;
                                                  if (len !== apduLen) {
                                                    return void 0;
                                                  }
                                                  value.len = len;
                                                  return value;
                                                };
                                                var encode8222222222222 = (buffer, objectId) => {
                                                  encodeApplicationObjectId222222222222(buffer, objectId.type, objectId.instance);
                                                };
                                                var device_communication_control_exports222222222222 = {};
                                                __export222222222222(device_communication_control_exports222222222222, {
                                                  decode: () => decode9222222222222,
                                                  encode: () => encode9222222222222
                                                });
                                                var encode9222222222222 = (buffer, timeDuration, enableDisable, password) => {
                                                  if (timeDuration > 0) {
                                                    encodeContextUnsigned222222222222(buffer, 0, timeDuration);
                                                  }
                                                  encodeContextEnumerated222222222222(buffer, 1, enableDisable);
                                                  if (password && password !== "") {
                                                    encodeContextCharacterString222222222222(buffer, 2, password);
                                                  }
                                                };
                                                var decode9222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let value = {};
                                                  let decodedValue;
                                                  let result;
                                                  if (decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    value.timeDuration = decodedValue.value;
                                                    len += decodedValue.len;
                                                  }
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  value.enableDisable = decodedValue.value;
                                                  len += decodedValue.len;
                                                  if (len < apduLen) {
                                                    if (!decodeIsContextTag222222222222(buffer, offset + len, 2)) {
                                                      return void 0;
                                                    }
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeCharacterString222222222222(
                                                      buffer,
                                                      offset + len,
                                                      apduLen - (offset + len),
                                                      result.value
                                                    );
                                                    value.password = decodedValue.value;
                                                    len += decodedValue.len;
                                                  }
                                                  value.len = len;
                                                  return value;
                                                };
                                                var error_exports222222222222 = {};
                                                __export222222222222(error_exports222222222222, {
                                                  buildMessage: () => buildMessage222222222222,
                                                  decode: () => decode10222222222222,
                                                  encode: () => encode10222222222222
                                                });
                                                var encode10222222222222 = (buffer, errorClass, errorCode) => {
                                                  encodeApplicationEnumerated222222222222(buffer, errorClass);
                                                  encodeApplicationEnumerated222222222222(buffer, errorCode);
                                                };
                                                var decode10222222222222 = (buffer, offset) => {
                                                  const orgOffset = offset;
                                                  let result;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset);
                                                  offset += result.len;
                                                  const errorClass = decodeEnumerated222222222222(buffer, offset, result.value);
                                                  offset += errorClass.len;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset);
                                                  offset += result.len;
                                                  const errorCode = decodeEnumerated222222222222(buffer, offset, result.value);
                                                  offset += errorClass.len;
                                                  return {
                                                    len: offset - orgOffset,
                                                    class: errorClass.value,
                                                    code: errorCode.value
                                                  };
                                                };
                                                var buildMessage222222222222 = function(result) {
                                                  return "BacnetError Class: " + ErrorClassName222222222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName222222222222[result.code] + " (" + result.code + ")";
                                                };
                                                var event_information_exports222222222222 = {};
                                                __export222222222222(event_information_exports222222222222, {
                                                  decode: () => decode11222222222222,
                                                  encode: () => encode11222222222222
                                                });
                                                var encode11222222222222 = (buffer, events, moreEvents) => {
                                                  encodeOpeningTag222222222222(buffer, 0);
                                                  events.forEach((event) => {
                                                    encodeContextObjectId222222222222(
                                                      buffer,
                                                      0,
                                                      event.objectId.type,
                                                      event.objectId.instance
                                                    );
                                                    encodeContextEnumerated222222222222(buffer, 1, event.eventState);
                                                    encodeContextBitstring222222222222(buffer, 2, event.acknowledgedTransitions);
                                                    encodeOpeningTag222222222222(buffer, 3);
                                                    for (let i = 0; i < 3; i++) {
                                                      encodeApplicationDate222222222222(buffer, event.eventTimeStamps[i]);
                                                      encodeApplicationTime222222222222(buffer, event.eventTimeStamps[i]);
                                                    }
                                                    encodeClosingTag222222222222(buffer, 3);
                                                    encodeContextEnumerated222222222222(buffer, 4, event.notifyType);
                                                    encodeContextBitstring222222222222(buffer, 5, event.eventEnable);
                                                    encodeOpeningTag222222222222(buffer, 6);
                                                    for (let i = 0; i < 3; i++) {
                                                      encodeApplicationUnsigned222222222222(buffer, event.eventPriorities[i]);
                                                    }
                                                    encodeClosingTag222222222222(buffer, 6);
                                                  });
                                                  encodeClosingTag222222222222(buffer, 0);
                                                  encodeContextBoolean222222222222(buffer, 1, moreEvents);
                                                };
                                                var decode11222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  len++;
                                                  const alarms = [];
                                                  let moreEvents;
                                                  while (apduLen - 3 - len > 0) {
                                                    let value = {};
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    value.objectId = {
                                                      type: decodedValue.objectType,
                                                      instance: decodedValue.instance
                                                    };
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.eventState = decodedValue.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeBitstring222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.acknowledgedTransitions = decodedValue.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    value.eventTimeStamps = [];
                                                    for (let i = 0; i < 3; i++) {
                                                      if (result.tagNumber !== 0) {
                                                        decodedValue = decodeApplicationDate222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        const date = decodedValue.value.value;
                                                        decodedValue = decodeApplicationTime222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        const time = decodedValue.value.value;
                                                        value.eventTimeStamps[i] = new Date(
                                                          date.getFullYear(),
                                                          date.getMonth(),
                                                          date.getDate(),
                                                          time.getHours(),
                                                          time.getMinutes(),
                                                          time.getSeconds(),
                                                          time.getMilliseconds()
                                                        );
                                                      } else {
                                                        len += result.value;
                                                      }
                                                    }
                                                    len++;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.notifyType = decodedValue.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeBitstring222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.eventEnable = decodedValue.value;
                                                    len++;
                                                    value.eventPriorities = [];
                                                    for (let i = 0; i < 3; i++) {
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.eventPriorities[i] = decodedValue.value;
                                                    }
                                                    len++;
                                                    alarms.push(value);
                                                  }
                                                  moreEvents = buffer[apduLen - 1] === 1;
                                                  return {
                                                    len,
                                                    alarms,
                                                    moreEvents
                                                  };
                                                };
                                                var event_notify_data_exports222222222222 = {};
                                                __export222222222222(event_notify_data_exports222222222222, {
                                                  decode: () => decode12222222222222,
                                                  encode: () => encode12222222222222
                                                });
                                                var encode12222222222222 = (buffer, data) => {
                                                  encodeContextUnsigned222222222222(buffer, 0, data.processId);
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    1,
                                                    data.initiatingObjectId.type,
                                                    data.initiatingObjectId.instance
                                                  );
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    2,
                                                    data.eventObjectId.type,
                                                    data.eventObjectId.instance
                                                  );
                                                  bacappEncodeContextTimestamp222222222222(buffer, 3, data.timeStamp);
                                                  encodeContextUnsigned222222222222(buffer, 4, data.notificationClass);
                                                  encodeContextUnsigned222222222222(buffer, 5, data.priority);
                                                  encodeContextEnumerated222222222222(buffer, 6, data.eventType);
                                                  if (data.messageText && data.messageText !== "") {
                                                    encodeContextCharacterString222222222222(buffer, 7, data.messageText);
                                                  }
                                                  encodeContextEnumerated222222222222(buffer, 8, data.notifyType);
                                                  switch (data.notifyType) {
                                                    case 0:
                                                    case 1:
                                                      encodeContextBoolean222222222222(buffer, 9, data.ackRequired);
                                                      encodeContextEnumerated222222222222(buffer, 10, data.fromState);
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                  encodeContextEnumerated222222222222(buffer, 11, data.toState);
                                                  switch (data.notifyType) {
                                                    case 0:
                                                    case 1:
                                                      encodeOpeningTag222222222222(buffer, 12);
                                                      switch (data.eventType) {
                                                        case 0:
                                                          encodeOpeningTag222222222222(buffer, 0);
                                                          encodeContextBitstring222222222222(
                                                            buffer,
                                                            0,
                                                            data.changeOfBitstringReferencedBitString
                                                          );
                                                          encodeContextBitstring222222222222(
                                                            buffer,
                                                            1,
                                                            data.changeOfBitstringStatusFlags
                                                          );
                                                          encodeClosingTag222222222222(buffer, 0);
                                                          break;
                                                        case 1:
                                                          encodeOpeningTag222222222222(buffer, 1);
                                                          encodeOpeningTag222222222222(buffer, 0);
                                                          bacappEncodePropertyState222222222222(buffer, data.changeOfStateNewState);
                                                          encodeClosingTag222222222222(buffer, 0);
                                                          encodeContextBitstring222222222222(
                                                            buffer,
                                                            1,
                                                            data.changeOfStateStatusFlags
                                                          );
                                                          encodeClosingTag222222222222(buffer, 1);
                                                          break;
                                                        case 2:
                                                          encodeOpeningTag222222222222(buffer, 2);
                                                          encodeOpeningTag222222222222(buffer, 0);
                                                          switch (data.changeOfValueTag) {
                                                            case 0:
                                                              encodeContextReal222222222222(
                                                                buffer,
                                                                1,
                                                                data.changeOfValueChangeValue
                                                              );
                                                              break;
                                                            case 1:
                                                              encodeContextBitstring222222222222(
                                                                buffer,
                                                                0,
                                                                data.changeOfValueChangedBits
                                                              );
                                                              break;
                                                            default:
                                                              throw new Error("NotImplemented");
                                                          }
                                                          encodeClosingTag222222222222(buffer, 0);
                                                          encodeContextBitstring222222222222(
                                                            buffer,
                                                            1,
                                                            data.changeOfValueStatusFlags
                                                          );
                                                          encodeClosingTag222222222222(buffer, 2);
                                                          break;
                                                        case 4:
                                                          encodeOpeningTag222222222222(buffer, 4);
                                                          encodeContextReal222222222222(buffer, 0, data.floatingLimitReferenceValue);
                                                          encodeContextBitstring222222222222(
                                                            buffer,
                                                            1,
                                                            data.floatingLimitStatusFlags
                                                          );
                                                          encodeContextReal222222222222(buffer, 2, data.floatingLimitSetPointValue);
                                                          encodeContextReal222222222222(buffer, 3, data.floatingLimitErrorLimit);
                                                          encodeClosingTag222222222222(buffer, 4);
                                                          break;
                                                        case 5:
                                                          encodeOpeningTag222222222222(buffer, 5);
                                                          encodeContextReal222222222222(buffer, 0, data.outOfRangeExceedingValue);
                                                          encodeContextBitstring222222222222(buffer, 1, data.outOfRangeStatusFlags);
                                                          encodeContextReal222222222222(buffer, 2, data.outOfRangeDeadband);
                                                          encodeContextReal222222222222(buffer, 3, data.outOfRangeExceededLimit);
                                                          encodeClosingTag222222222222(buffer, 5);
                                                          break;
                                                        case 8:
                                                          encodeOpeningTag222222222222(buffer, 8);
                                                          encodeContextEnumerated222222222222(
                                                            buffer,
                                                            0,
                                                            data.changeOfLifeSafetyNewState
                                                          );
                                                          encodeContextEnumerated222222222222(
                                                            buffer,
                                                            1,
                                                            data.changeOfLifeSafetyNewMode
                                                          );
                                                          encodeContextBitstring222222222222(
                                                            buffer,
                                                            2,
                                                            data.changeOfLifeSafetyStatusFlags
                                                          );
                                                          encodeContextEnumerated222222222222(
                                                            buffer,
                                                            3,
                                                            data.changeOfLifeSafetyOperationExpected
                                                          );
                                                          encodeClosingTag222222222222(buffer, 8);
                                                          break;
                                                        case 10:
                                                          encodeOpeningTag222222222222(buffer, 10);
                                                          bacappEncodeContextDeviceObjPropertyRef222222222222(
                                                            buffer,
                                                            0,
                                                            data.bufferReadyBufferProperty
                                                          );
                                                          encodeContextUnsigned222222222222(
                                                            buffer,
                                                            1,
                                                            data.bufferReadyPreviousNotification
                                                          );
                                                          encodeContextUnsigned222222222222(
                                                            buffer,
                                                            2,
                                                            data.bufferReadyCurrentNotification
                                                          );
                                                          encodeClosingTag222222222222(buffer, 10);
                                                          break;
                                                        case 11:
                                                          encodeOpeningTag222222222222(buffer, 11);
                                                          encodeContextUnsigned222222222222(
                                                            buffer,
                                                            0,
                                                            data.unsignedRangeExceedingValue
                                                          );
                                                          encodeContextBitstring222222222222(
                                                            buffer,
                                                            1,
                                                            data.unsignedRangeStatusFlags
                                                          );
                                                          encodeContextUnsigned222222222222(
                                                            buffer,
                                                            2,
                                                            data.unsignedRangeExceededLimit
                                                          );
                                                          encodeClosingTag222222222222(buffer, 11);
                                                          break;
                                                        case 9:
                                                        case 3:
                                                          throw new Error("NotImplemented");
                                                        default:
                                                          throw new Error("NotImplemented");
                                                      }
                                                      encodeClosingTag222222222222(buffer, 12);
                                                      break;
                                                    case 2:
                                                      throw new Error("NotImplemented");
                                                    default:
                                                      break;
                                                  }
                                                };
                                                var decode12222222222222 = (buffer, offset) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let eventData = {};
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  eventData.processId = decodedValue.value;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  eventData.initiatingObjectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 2)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  eventData.eventObjectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 3)) {
                                                    return void 0;
                                                  }
                                                  len += 2;
                                                  decodedValue = decodeApplicationDate222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  const date = decodedValue.value.value;
                                                  decodedValue = decodeApplicationTime222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  const time = decodedValue.value.value;
                                                  eventData.timeStamp = new Date(
                                                    date.getFullYear(),
                                                    date.getMonth(),
                                                    date.getDate(),
                                                    time.getHours(),
                                                    time.getMinutes(),
                                                    time.getSeconds(),
                                                    time.getMilliseconds()
                                                  );
                                                  len += 2;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 4)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  eventData.notificationClass = decodedValue.value;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 5)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  eventData.priority = decodedValue.value;
                                                  if (eventData.priority > 255) {
                                                    return void 0;
                                                  }
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 6)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  eventData.eventType = decodedValue.value;
                                                  if (decodeIsContextTag222222222222(buffer, offset + len, 7)) {
                                                    decodedValue = decodeContextCharacterString222222222222(
                                                      buffer,
                                                      offset + len,
                                                      2e4,
                                                      7
                                                    );
                                                    len += decodedValue.len;
                                                    eventData.messageText = decodedValue.value;
                                                  }
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 8)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  eventData.notifyType = decodedValue.value;
                                                  switch (eventData.notifyType) {
                                                    case 0:
                                                    case 1:
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned222222222222(buffer, offset + len, 1);
                                                      len += decodedValue.len;
                                                      eventData.ackRequired = decodedValue.value > 0;
                                                      if (!decodeIsContextTag222222222222(buffer, offset + len, 10)) {
                                                        return void 0;
                                                      }
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeEnumerated222222222222(
                                                        buffer,
                                                        offset + len,
                                                        result.value
                                                      );
                                                      len += decodedValue.len;
                                                      eventData.fromState = decodedValue.value;
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 11)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  eventData.toState = decodedValue.value;
                                                  eventData.len = len;
                                                  return eventData;
                                                };
                                                var get_enrollment_summary_exports222222222222 = {};
                                                __export222222222222(get_enrollment_summary_exports222222222222, {
                                                  decode: () => decode13222222222222,
                                                  decodeAcknowledge: () => decodeAcknowledge3222222222222,
                                                  encode: () => encode13222222222222,
                                                  encodeAcknowledge: () => encodeAcknowledge4222222222222
                                                });
                                                var encode13222222222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                                                  encodeContextEnumerated222222222222(buffer, 0, acknowledgmentFilter);
                                                  if (enrollmentFilter) {
                                                    encodeOpeningTag222222222222(buffer, 1);
                                                    encodeOpeningTag222222222222(buffer, 0);
                                                    encodeContextObjectId222222222222(
                                                      buffer,
                                                      0,
                                                      enrollmentFilter.objectId.type,
                                                      enrollmentFilter.objectId.instance
                                                    );
                                                    encodeClosingTag222222222222(buffer, 0);
                                                    encodeContextUnsigned222222222222(buffer, 1, enrollmentFilter.processId);
                                                    encodeClosingTag222222222222(buffer, 1);
                                                  }
                                                  if (eventStateFilter) {
                                                    encodeOpeningTag222222222222(buffer, 2);
                                                    encodeContextEnumerated222222222222(buffer, 0, eventStateFilter);
                                                    encodeClosingTag222222222222(buffer, 2);
                                                  }
                                                  if (eventTypeFilter) {
                                                    encodeOpeningTag222222222222(buffer, 3);
                                                    encodeContextEnumerated222222222222(buffer, 0, eventTypeFilter);
                                                    encodeClosingTag222222222222(buffer, 3);
                                                  }
                                                  if (priorityFilter) {
                                                    encodeOpeningTag222222222222(buffer, 4);
                                                    encodeContextUnsigned222222222222(buffer, 0, priorityFilter.min);
                                                    encodeContextUnsigned222222222222(buffer, 1, priorityFilter.max);
                                                    encodeClosingTag222222222222(buffer, 4);
                                                  }
                                                  if (notificationClassFilter) {
                                                    encodeOpeningTag222222222222(buffer, 5);
                                                    encodeContextUnsigned222222222222(buffer, 0, notificationClassFilter);
                                                    encodeClosingTag222222222222(buffer, 5);
                                                  }
                                                };
                                                var decode13222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let value = {};
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.acknowledgmentFilter = decodedValue.value;
                                                  if (decodeIsContextTag222222222222(buffer, offset + len, 1)) {
                                                    len++;
                                                    value.enrollmentFilter = {};
                                                    if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                      return void 0;
                                                    }
                                                    len++;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    value.enrollmentFilter.objectId = {
                                                      type: decodedValue.objectType,
                                                      instance: decodedValue.instance
                                                    };
                                                    len++;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.enrollmentFilter.processId = decodedValue.value;
                                                    len++;
                                                  }
                                                  if (decodeIsContextTag222222222222(buffer, offset + len, 2)) {
                                                    len++;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.eventStateFilter = decodedValue.value;
                                                    len++;
                                                  }
                                                  if (decodeIsContextTag222222222222(buffer, offset + len, 3)) {
                                                    len++;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.eventTypeFilter = decodedValue.value;
                                                    len++;
                                                  }
                                                  if (decodeIsContextTag222222222222(buffer, offset + len, 4)) {
                                                    len++;
                                                    value.priorityFilter = {};
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.priorityFilter.min = decodedValue.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.priorityFilter.max = decodedValue.value;
                                                    len++;
                                                  }
                                                  if (decodeIsContextTag222222222222(buffer, offset + len, 5)) {
                                                    len++;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.notificationClassFilter = decodedValue.value;
                                                    len++;
                                                  }
                                                  value.len = len;
                                                  return value;
                                                };
                                                var encodeAcknowledge4222222222222 = (buffer, enrollmentSummaries) => {
                                                  enrollmentSummaries.forEach((enrollmentSummary) => {
                                                    encodeApplicationObjectId222222222222(
                                                      buffer,
                                                      enrollmentSummary.objectId.type,
                                                      enrollmentSummary.objectId.instance
                                                    );
                                                    encodeApplicationEnumerated222222222222(buffer, enrollmentSummary.eventType);
                                                    encodeApplicationEnumerated222222222222(buffer, enrollmentSummary.eventState);
                                                    encodeApplicationUnsigned222222222222(buffer, enrollmentSummary.priority);
                                                    encodeApplicationUnsigned222222222222(
                                                      buffer,
                                                      enrollmentSummary.notificationClass
                                                    );
                                                  });
                                                };
                                                var decodeAcknowledge3222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  const enrollmentSummaries = [];
                                                  while (apduLen - len > 0) {
                                                    const enrollmentSummary = {};
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 12) {
                                                      return void 0;
                                                    }
                                                    result = decodeObjectId222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    enrollmentSummary.objectId = {
                                                      type: result.objectType,
                                                      instance: result.instance
                                                    };
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 9) {
                                                      return void 0;
                                                    }
                                                    result = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    len += result.len;
                                                    enrollmentSummary.eventType = result.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 9) {
                                                      return void 0;
                                                    }
                                                    result = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    len += result.len;
                                                    enrollmentSummary.eventState = result.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 2) {
                                                      return void 0;
                                                    }
                                                    result = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += result.len;
                                                    enrollmentSummary.priority = result.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 2) {
                                                      return void 0;
                                                    }
                                                    result = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += result.len;
                                                    enrollmentSummary.notificationClass = result.value;
                                                    enrollmentSummaries.push(enrollmentSummary);
                                                  }
                                                  return {
                                                    enrollmentSummaries,
                                                    len
                                                  };
                                                };
                                                var get_event_information_exports222222222222 = {};
                                                __export222222222222(get_event_information_exports222222222222, {
                                                  decode: () => decode14222222222222,
                                                  decodeAcknowledge: () => decodeAcknowledge4222222222222,
                                                  encode: () => encode14222222222222,
                                                  encodeAcknowledge: () => encodeAcknowledge5222222222222
                                                });
                                                var encode14222222222222 = (buffer, lastReceivedObjectId) => {
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    0,
                                                    lastReceivedObjectId.type,
                                                    lastReceivedObjectId.instance
                                                  );
                                                };
                                                var decode14222222222222 = (buffer, offset) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let value = {};
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  value.lastReceivedObjectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  value.len = len;
                                                  return value;
                                                };
                                                var encodeAcknowledge5222222222222 = (buffer, events, moreEvents) => {
                                                  encodeOpeningTag222222222222(buffer, 0);
                                                  events.forEach((eventData) => {
                                                    encodeContextObjectId222222222222(
                                                      buffer,
                                                      0,
                                                      eventData.objectId.type,
                                                      eventData.objectId.instance
                                                    );
                                                    encodeContextEnumerated222222222222(buffer, 1, eventData.eventState);
                                                    encodeContextBitstring222222222222(buffer, 2, eventData.acknowledgedTransitions);
                                                    encodeOpeningTag222222222222(buffer, 3);
                                                    for (let i = 0; i < 3; i++) {
                                                      bacappEncodeTimestamp222222222222(buffer, eventData.eventTimeStamps[i]);
                                                    }
                                                    encodeClosingTag222222222222(buffer, 3);
                                                    encodeContextEnumerated222222222222(buffer, 4, eventData.notifyType);
                                                    encodeContextBitstring222222222222(buffer, 5, eventData.eventEnable);
                                                    encodeOpeningTag222222222222(buffer, 6);
                                                    for (let i = 0; i < 3; i++) {
                                                      encodeApplicationUnsigned222222222222(buffer, eventData.eventPriorities[i]);
                                                    }
                                                    encodeClosingTag222222222222(buffer, 6);
                                                  });
                                                  encodeClosingTag222222222222(buffer, 0);
                                                  encodeContextBoolean222222222222(buffer, 1, moreEvents);
                                                };
                                                var decodeAcknowledge4222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let value = {};
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  value.events = [];
                                                  while (apduLen - len > 3) {
                                                    let event = {};
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    event.objectId = {
                                                      type: decodedValue.objectType,
                                                      instance: decodedValue.instance
                                                    };
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    event.eventState = decodedValue.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeBitstring222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    event.acknowledgedTransitions = decodedValue.value;
                                                    if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 3)) {
                                                      return void 0;
                                                    }
                                                    len++;
                                                    event.eventTimeStamps = [];
                                                    for (let i = 0; i < 3; i++) {
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      if (result.tagNumber === 0) {
                                                        decodedValue = decodeBacnetTime222222222222(
                                                          buffer,
                                                          offset + len,
                                                          result.value
                                                        );
                                                        len += decodedValue.len;
                                                        event.eventTimeStamps[i] = {
                                                          value: decodedValue.value,
                                                          type: 0
                                                          /* TIME */
                                                        };
                                                      } else if (result.tagNumber === 1) {
                                                        decodedValue = decodeUnsigned222222222222(
                                                          buffer,
                                                          offset + len,
                                                          result.value
                                                        );
                                                        len += decodedValue.len;
                                                        event.eventTimeStamps[i] = {
                                                          value: decodedValue.value,
                                                          type: 1
                                                          /* SEQUENCE_NUMBER */
                                                        };
                                                      } else if (result.tagNumber === 2) {
                                                        let date = decodeApplicationDate222222222222(
                                                          buffer,
                                                          offset + len
                                                        );
                                                        len += date.len;
                                                        date = date.value.value;
                                                        let time = decodeApplicationTime222222222222(
                                                          buffer,
                                                          offset + len
                                                        );
                                                        len += time.len;
                                                        time = time.value.value;
                                                        event.eventTimeStamps[i] = {
                                                          value: new Date(
                                                            date.getFullYear(),
                                                            date.getMonth(),
                                                            date.getDate(),
                                                            time.getHours(),
                                                            time.getMinutes(),
                                                            time.getSeconds(),
                                                            time.getMilliseconds()
                                                          ),
                                                          type: 2
                                                          /* DATETIME */
                                                        };
                                                        len++;
                                                      }
                                                    }
                                                    if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 3)) {
                                                      return void 0;
                                                    }
                                                    len++;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    event.notifyType = decodedValue.value;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeBitstring222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    event.eventEnable = decodedValue.value;
                                                    if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 6)) {
                                                      return void 0;
                                                    }
                                                    len++;
                                                    event.eventPriorities = [];
                                                    for (let i = 0; i < 3; i++) {
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      event.eventPriorities[i] = decodedValue.value;
                                                    }
                                                    if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 6)) {
                                                      return void 0;
                                                    }
                                                    len++;
                                                    value.events.push(event);
                                                  }
                                                  if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  value.moreEvents = buffer[offset + len] > 0;
                                                  len++;
                                                  value.len = len;
                                                  return value;
                                                };
                                                var i_am_exports222222222222 = {};
                                                __export222222222222(i_am_exports222222222222, {
                                                  decode: () => decode15222222222222,
                                                  encode: () => encode15222222222222
                                                });
                                                var encode15222222222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                                                  encodeApplicationObjectId222222222222(buffer, 8, deviceId);
                                                  encodeApplicationUnsigned222222222222(buffer, maxApdu);
                                                  encodeApplicationEnumerated222222222222(buffer, segmentation);
                                                  encodeApplicationUnsigned222222222222(buffer, vendorId);
                                                };
                                                var decode15222222222222 = (buffer, offset) => {
                                                  let result;
                                                  let apduLen = 0;
                                                  const orgOffset = offset;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + apduLen);
                                                  apduLen += result.len;
                                                  if (result.tagNumber !== 12) {
                                                    return void 0;
                                                  }
                                                  result = decodeObjectId222222222222(buffer, offset + apduLen);
                                                  apduLen += result.len;
                                                  if (result.objectType !== 8) {
                                                    return void 0;
                                                  }
                                                  const deviceId = result.instance;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + apduLen);
                                                  apduLen += result.len;
                                                  if (result.tagNumber !== 2) {
                                                    return void 0;
                                                  }
                                                  result = decodeUnsigned222222222222(buffer, offset + apduLen, result.value);
                                                  apduLen += result.len;
                                                  const maxApdu = result.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + apduLen);
                                                  apduLen += result.len;
                                                  if (result.tagNumber !== 9) {
                                                    return void 0;
                                                  }
                                                  result = decodeEnumerated222222222222(buffer, offset + apduLen, result.value);
                                                  apduLen += result.len;
                                                  if (result.value > 3) {
                                                    return void 0;
                                                  }
                                                  const segmentation = result.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + apduLen);
                                                  apduLen += result.len;
                                                  if (result.tagNumber !== 2) {
                                                    return void 0;
                                                  }
                                                  result = decodeUnsigned222222222222(buffer, offset + apduLen, result.value);
                                                  apduLen += result.len;
                                                  if (result.value > 65535) {
                                                    return void 0;
                                                  }
                                                  const vendorId = result.value;
                                                  return {
                                                    len: offset - orgOffset,
                                                    deviceId,
                                                    maxApdu,
                                                    segmentation,
                                                    vendorId
                                                  };
                                                };
                                                var i_have_exports222222222222 = {};
                                                __export222222222222(i_have_exports222222222222, {
                                                  decode: () => decode16222222222222,
                                                  encode: () => encode16222222222222
                                                });
                                                var encode16222222222222 = (buffer, deviceId, objectId, objectName) => {
                                                  encodeApplicationObjectId222222222222(buffer, deviceId.type, deviceId.instance);
                                                  encodeApplicationObjectId222222222222(buffer, objectId.type, objectId.instance);
                                                  encodeApplicationCharacterString222222222222(buffer, objectName);
                                                };
                                                var decode16222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let value = {};
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  value.deviceId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  value.objectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeCharacterString222222222222(
                                                    buffer,
                                                    offset + len,
                                                    apduLen - (offset + len),
                                                    result.value
                                                  );
                                                  len += decodedValue.len;
                                                  value.objectName = decodedValue.value;
                                                  value.len = len;
                                                  return value;
                                                };
                                                var life_safety_operation_exports222222222222 = {};
                                                __export222222222222(life_safety_operation_exports222222222222, {
                                                  decode: () => decode17222222222222,
                                                  encode: () => encode17222222222222
                                                });
                                                var encode17222222222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                                                  encodeContextUnsigned222222222222(buffer, 0, processId);
                                                  encodeContextCharacterString222222222222(buffer, 1, requestingSource);
                                                  encodeContextEnumerated222222222222(buffer, 2, operation);
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    3,
                                                    targetObjectId.type,
                                                    targetObjectId.instance
                                                  );
                                                };
                                                var decode17222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let value = {};
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.processId = decodedValue.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeCharacterString222222222222(
                                                    buffer,
                                                    offset + len,
                                                    apduLen - (offset + len),
                                                    result.value
                                                  );
                                                  len += decodedValue.len;
                                                  value.requestingSource = decodedValue.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.operation = decodedValue.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  value.targetObjectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  value.len = len;
                                                  return value;
                                                };
                                                var private_transfer_exports222222222222 = {};
                                                __export222222222222(private_transfer_exports222222222222, {
                                                  decode: () => decode18222222222222,
                                                  encode: () => encode18222222222222
                                                });
                                                var encode18222222222222 = (buffer, vendorId, serviceNumber, data) => {
                                                  encodeContextUnsigned222222222222(buffer, 0, vendorId);
                                                  encodeContextUnsigned222222222222(buffer, 1, serviceNumber);
                                                  encodeOpeningTag222222222222(buffer, 2);
                                                  for (let i = 0; i < data.length; i++) {
                                                    buffer.buffer[buffer.offset++] = data[i];
                                                  }
                                                  encodeClosingTag222222222222(buffer, 2);
                                                };
                                                var decode18222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let value = {};
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.vendorId = decodedValue.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.serviceNumber = decodedValue.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  const size = apduLen - (offset + len + 1);
                                                  const data = [];
                                                  for (let i = 0; i < size; i++) {
                                                    data.push(buffer[offset + len++]);
                                                  }
                                                  value.data = data;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  value.len = len;
                                                  return value;
                                                };
                                                var read_property_exports222222222222 = {};
                                                __export222222222222(read_property_exports222222222222, {
                                                  decode: () => decode19222222222222,
                                                  decodeAcknowledge: () => decodeAcknowledge5222222222222,
                                                  encode: () => encode19222222222222,
                                                  encodeAcknowledge: () => encodeAcknowledge6222222222222
                                                });
                                                var encode19222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                                                  if (objectType <= ASN1_MAX_OBJECT222222222222) {
                                                    encodeContextObjectId222222222222(buffer, 0, objectType, objectInstance);
                                                  }
                                                  if (propertyId <= ASN1_MAX_PROPERTY_ID222222222222) {
                                                    encodeContextEnumerated222222222222(buffer, 1, propertyId);
                                                  }
                                                  if (arrayIndex !== ASN1_ARRAY_ALL222222222222) {
                                                    encodeContextUnsigned222222222222(
                                                      buffer,
                                                      2,
                                                      arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL222222222222
                                                    );
                                                  }
                                                };
                                                var decode19222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  if (apduLen < 7) {
                                                    return void 0;
                                                  }
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  let objectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  let property = {};
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 1) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  property.id = decodedValue.value;
                                                  property.index = ASN1_ARRAY_ALL222222222222;
                                                  if (len < apduLen) {
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber === 2 && len < apduLen) {
                                                      decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      property.index = decodedValue.value;
                                                    } else {
                                                      return void 0;
                                                    }
                                                  }
                                                  if (len < apduLen) {
                                                    return void 0;
                                                  }
                                                  return {
                                                    len,
                                                    objectId,
                                                    property
                                                  };
                                                };
                                                var encodeAcknowledge6222222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                                  encodeContextObjectId222222222222(buffer, 0, objectId.type, objectId.instance);
                                                  encodeContextEnumerated222222222222(buffer, 1, propertyId);
                                                  if (arrayIndex !== ASN1_ARRAY_ALL222222222222) {
                                                    encodeContextUnsigned222222222222(buffer, 2, arrayIndex);
                                                  }
                                                  encodeOpeningTag222222222222(buffer, 3);
                                                  values.forEach((value) => {
                                                    bacappEncodeApplicationData222222222222(buffer, value);
                                                  });
                                                  encodeClosingTag222222222222(buffer, 3);
                                                };
                                                var decodeAcknowledge5222222222222 = (buffer, offset, apduLen) => {
                                                  let result;
                                                  let decodedValue;
                                                  let objectId = {};
                                                  let property = {};
                                                  if (!decodeIsContextTag222222222222(buffer, offset, 0)) {
                                                    return void 0;
                                                  }
                                                  let len = 1;
                                                  result = decodeObjectId222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  objectId.type = result.objectType;
                                                  objectId.instance = result.instance;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 1) {
                                                    return void 0;
                                                  }
                                                  result = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += result.len;
                                                  property.id = result.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  if (result.tagNumber === 2) {
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    property.index = decodedValue.value;
                                                  } else {
                                                    property.index = ASN1_ARRAY_ALL222222222222;
                                                  }
                                                  const values = [];
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 3)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  while (apduLen - len > 1) {
                                                    result = bacappDecodeApplicationData222222222222(
                                                      buffer,
                                                      offset + len,
                                                      apduLen + offset,
                                                      objectId.type,
                                                      property.id
                                                    );
                                                    if (!result) {
                                                      return void 0;
                                                    }
                                                    len += result.len;
                                                    delete result.len;
                                                    values.push(result);
                                                  }
                                                  if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 3)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  return {
                                                    len,
                                                    objectId,
                                                    property,
                                                    values
                                                  };
                                                };
                                                var read_property_multiple_exports222222222222 = {};
                                                __export222222222222(read_property_multiple_exports222222222222, {
                                                  decode: () => decode20222222222222,
                                                  decodeAcknowledge: () => decodeAcknowledge6222222222222,
                                                  encode: () => encode20222222222222,
                                                  encodeAcknowledge: () => encodeAcknowledge7222222222222
                                                });
                                                var encode20222222222222 = (buffer, properties) => {
                                                  properties.forEach((value) => {
                                                    encodeReadAccessSpecification222222222222(buffer, value);
                                                  });
                                                };
                                                var decode20222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  const values = [];
                                                  while (apduLen - len > 0) {
                                                    const decodedValue = decodeReadAccessSpecification222222222222(
                                                      buffer,
                                                      offset + len,
                                                      apduLen - len
                                                    );
                                                    if (!decodedValue) {
                                                      return void 0;
                                                    }
                                                    len += decodedValue.len;
                                                    values.push(decodedValue.value);
                                                  }
                                                  return {
                                                    len,
                                                    properties: values
                                                  };
                                                };
                                                var encodeAcknowledge7222222222222 = (buffer, values) => {
                                                  values.forEach((value) => {
                                                    encodeReadAccessResult222222222222(buffer, value);
                                                  });
                                                };
                                                var decodeAcknowledge6222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  const values = [];
                                                  while (apduLen - len > 0) {
                                                    const result = decodeReadAccessResult222222222222(
                                                      buffer,
                                                      offset + len,
                                                      apduLen - len
                                                    );
                                                    if (!result || result === -1) {
                                                      return void 0;
                                                    }
                                                    len += result.len;
                                                    values.push(result.value);
                                                  }
                                                  return {
                                                    len,
                                                    values
                                                  };
                                                };
                                                var read_range_exports222222222222 = {};
                                                __export222222222222(read_range_exports222222222222, {
                                                  decode: () => decode21222222222222,
                                                  decodeAcknowledge: () => decodeAcknowledge7222222222222,
                                                  encode: () => encode21222222222222,
                                                  encodeAcknowledge: () => encodeAcknowledge8222222222222
                                                });
                                                var encode21222222222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                                                  encodeContextObjectId222222222222(buffer, 0, objectId.type, objectId.instance);
                                                  encodeContextEnumerated222222222222(buffer, 1, propertyId);
                                                  if (arrayIndex !== ASN1_ARRAY_ALL222222222222) {
                                                    encodeContextUnsigned222222222222(buffer, 2, arrayIndex);
                                                  }
                                                  switch (requestType) {
                                                    case 0:
                                                      encodeOpeningTag222222222222(buffer, 3);
                                                      encodeApplicationUnsigned222222222222(buffer, position);
                                                      encodeApplicationSigned222222222222(buffer, count);
                                                      encodeClosingTag222222222222(buffer, 3);
                                                      break;
                                                    case 1:
                                                      encodeOpeningTag222222222222(buffer, 6);
                                                      encodeApplicationUnsigned222222222222(buffer, position);
                                                      encodeApplicationSigned222222222222(buffer, count);
                                                      encodeClosingTag222222222222(buffer, 6);
                                                      break;
                                                    case 2:
                                                      encodeOpeningTag222222222222(buffer, 7);
                                                      encodeApplicationDate222222222222(buffer, time);
                                                      encodeApplicationTime222222222222(buffer, time);
                                                      encodeApplicationSigned222222222222(buffer, count);
                                                      encodeClosingTag222222222222(buffer, 7);
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                };
                                                var decode21222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let requestType;
                                                  let position;
                                                  let time;
                                                  let count;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len, 0);
                                                  len += decodedValue.len;
                                                  let objectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  let property = {};
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 1) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  property.id = decodedValue.value;
                                                  if (len < apduLen && decodeIsContextTag222222222222(buffer, offset + len, 2)) {
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    property.index = decodedValue.value;
                                                  } else {
                                                    property.index = ASN1_ARRAY_ALL222222222222;
                                                  }
                                                  if (len < apduLen) {
                                                    result = decodeTagNumber222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    switch (result.tagNumber) {
                                                      case 3:
                                                        requestType = 0;
                                                        result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned222222222222(
                                                          buffer,
                                                          offset + len,
                                                          result.value
                                                        );
                                                        len += decodedValue.len;
                                                        position = decodedValue.value;
                                                        result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeSigned222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        count = decodedValue.value;
                                                        break;
                                                      case 6:
                                                        requestType = 1;
                                                        result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeUnsigned222222222222(
                                                          buffer,
                                                          offset + len,
                                                          result.value
                                                        );
                                                        len += decodedValue.len;
                                                        position = decodedValue.value;
                                                        result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeSigned222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        count = decodedValue.value;
                                                        break;
                                                      case 7:
                                                        requestType = 2;
                                                        decodedValue = decodeApplicationDate222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        const tmpDate = decodedValue.value.value;
                                                        decodedValue = decodeApplicationTime222222222222(buffer, offset + len);
                                                        len += decodedValue.len;
                                                        const tmpTime = decodedValue.value.value;
                                                        time = new Date(
                                                          tmpDate.getYear(),
                                                          tmpDate.getMonth(),
                                                          tmpDate.getDate(),
                                                          tmpTime.getHours(),
                                                          tmpTime.getMinutes(),
                                                          tmpTime.getSeconds(),
                                                          tmpTime.getMilliseconds()
                                                        );
                                                        result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                        len += result.len;
                                                        decodedValue = decodeSigned222222222222(buffer, offset + len, result.value);
                                                        len += decodedValue.len;
                                                        count = decodedValue.value;
                                                        break;
                                                      default:
                                                        return void 0;
                                                    }
                                                    result = decodeTagNumber222222222222(buffer, offset + len);
                                                    len += result.len;
                                                  }
                                                  return {
                                                    len,
                                                    objectId,
                                                    property,
                                                    requestType,
                                                    position,
                                                    time,
                                                    count
                                                  };
                                                };
                                                var encodeAcknowledge8222222222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                                                  encodeContextObjectId222222222222(buffer, 0, objectId.type, objectId.instance);
                                                  encodeContextEnumerated222222222222(buffer, 1, propertyId);
                                                  if (arrayIndex !== ASN1_ARRAY_ALL222222222222) {
                                                    encodeContextUnsigned222222222222(buffer, 2, arrayIndex);
                                                  }
                                                  encodeContextBitstring222222222222(buffer, 3, resultFlags);
                                                  encodeContextUnsigned222222222222(buffer, 4, itemCount);
                                                  encodeOpeningTag222222222222(buffer, 5);
                                                  if (itemCount !== 0) {
                                                    applicationData.copy(
                                                      buffer.buffer,
                                                      buffer.offset,
                                                      0,
                                                      applicationData.length
                                                    );
                                                    buffer.offset += applicationData.length;
                                                  }
                                                  encodeClosingTag222222222222(buffer, 5);
                                                  if (itemCount !== 0 && requestType && requestType !== 0) {
                                                    encodeContextUnsigned222222222222(buffer, 6, firstSequence);
                                                  }
                                                };
                                                var decodeAcknowledge7222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  const objectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  const property = { index: ASN1_ARRAY_ALL222222222222 };
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 1) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  property.id = decodedValue.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  if (result.tagNumber === 2 && len < apduLen) {
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    property.index = decodedValue.value;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeBitstring222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  const resultFlag = decodedValue.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  const itemCount = decodedValue.value;
                                                  if (!decodeIsOpeningTag222222222222(buffer, offset + len)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                                                  return {
                                                    objectId,
                                                    property,
                                                    resultFlag,
                                                    itemCount,
                                                    rangeBuffer,
                                                    len
                                                  };
                                                };
                                                var register_foreign_device_exports222222222222 = {};
                                                __export222222222222(register_foreign_device_exports222222222222, {
                                                  decode: () => decode22222222222222,
                                                  encode: () => encode22222222222222
                                                });
                                                var encode22222222222222 = (buffer, ttl, length = 2) => {
                                                  encodeUnsigned222222222222(buffer, ttl, length);
                                                };
                                                var decode22222222222222 = (buffer, offset, length = 2) => {
                                                  let len = 0;
                                                  let result = decodeUnsigned222222222222(buffer, offset + len, length);
                                                  len += result.len;
                                                  return {
                                                    len,
                                                    ttl: result.value
                                                  };
                                                };
                                                var reinitialize_device_exports222222222222 = {};
                                                __export222222222222(reinitialize_device_exports222222222222, {
                                                  decode: () => decode23222222222222,
                                                  encode: () => encode23222222222222
                                                });
                                                var encode23222222222222 = (buffer, state, password) => {
                                                  encodeContextEnumerated222222222222(buffer, 0, state);
                                                  if (password && password !== "") {
                                                    encodeContextCharacterString222222222222(buffer, 1, password);
                                                  }
                                                };
                                                var decode23222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let value = {};
                                                  let result;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  let decodedValue = decodeEnumerated222222222222(
                                                    buffer,
                                                    offset + len,
                                                    result.value
                                                  );
                                                  value.state = decodedValue.value;
                                                  len += decodedValue.len;
                                                  if (len < apduLen) {
                                                    if (!decodeIsContextTag222222222222(buffer, offset + len, 1)) {
                                                      return void 0;
                                                    }
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeCharacterString222222222222(
                                                      buffer,
                                                      offset + len,
                                                      apduLen - (offset + len),
                                                      result.value
                                                    );
                                                    value.password = decodedValue.value;
                                                    len += decodedValue.len;
                                                  }
                                                  value.len = len;
                                                  return value;
                                                };
                                                var subscribe_cov_exports222222222222 = {};
                                                __export222222222222(subscribe_cov_exports222222222222, {
                                                  decode: () => decode24222222222222,
                                                  encode: () => encode24222222222222
                                                });
                                                var encode24222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                                                  encodeContextUnsigned222222222222(buffer, 0, subscriberProcessId);
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    1,
                                                    monitoredObjectId.type,
                                                    monitoredObjectId.instance
                                                  );
                                                  if (!cancellationRequest) {
                                                    encodeContextBoolean222222222222(buffer, 2, issueConfirmedNotifications);
                                                    encodeContextUnsigned222222222222(buffer, 3, lifetime);
                                                  }
                                                };
                                                var decode24222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let value = {};
                                                  let result;
                                                  let decodedValue;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.subscriberProcessId = decodedValue.value;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  value.monitoredObjectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  value.cancellationRequest = true;
                                                  if (len < apduLen) {
                                                    value.issueConfirmedNotifications = false;
                                                    if (decodeIsContextTag222222222222(buffer, offset + len, 2)) {
                                                      value.cancellationRequest = false;
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                      len++;
                                                    }
                                                    value.lifetime = 0;
                                                    if (decodeIsContextTag222222222222(buffer, offset + len, 3)) {
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      value.lifetime = decodedValue.value;
                                                    }
                                                  }
                                                  value.len = len;
                                                  return value;
                                                };
                                                var subscribe_property_exports222222222222 = {};
                                                __export222222222222(subscribe_property_exports222222222222, {
                                                  decode: () => decode25222222222222,
                                                  encode: () => encode25222222222222
                                                });
                                                var encode25222222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                                                  encodeContextUnsigned222222222222(buffer, 0, subscriberProcessId);
                                                  encodeContextObjectId222222222222(
                                                    buffer,
                                                    1,
                                                    monitoredObjectId.type,
                                                    monitoredObjectId.instance
                                                  );
                                                  if (!cancellationRequest) {
                                                    encodeContextBoolean222222222222(buffer, 2, issueConfirmedNotifications);
                                                    encodeContextUnsigned222222222222(buffer, 3, lifetime);
                                                  }
                                                  encodeOpeningTag222222222222(buffer, 4);
                                                  encodeContextEnumerated222222222222(buffer, 0, monitoredProperty.id);
                                                  if (monitoredProperty.index !== ASN1_ARRAY_ALL222222222222) {
                                                    encodeContextUnsigned222222222222(buffer, 1, monitoredProperty.index);
                                                  }
                                                  encodeClosingTag222222222222(buffer, 4);
                                                  if (covIncrementPresent) {
                                                    encodeContextReal222222222222(buffer, 5, covIncrement);
                                                  }
                                                };
                                                var decode25222222222222 = (buffer, offset) => {
                                                  let len = 0;
                                                  let value = {};
                                                  let result;
                                                  let decodedValue;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.subscriberProcessId = decodedValue.value;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  value.monitoredObjectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  value.cancellationRequest = true;
                                                  value.issueConfirmedNotifications = false;
                                                  if (decodeIsContextTag222222222222(buffer, offset + len, 2)) {
                                                    value.cancellationRequest = false;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                    len++;
                                                  }
                                                  value.lifetime = 0;
                                                  if (decodeIsContextTag222222222222(buffer, offset + len, 3)) {
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.lifetime = decodedValue.value;
                                                  }
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 4)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  value.monitoredProperty = {};
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.monitoredProperty.id = decodedValue.value;
                                                  value.monitoredProperty.index = ASN1_ARRAY_ALL222222222222;
                                                  if (decodeIsContextTag222222222222(buffer, offset + len, 1)) {
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.monitoredProperty.index = decodedValue.value;
                                                  }
                                                  if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 4)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  value.covIncrement = 0;
                                                  if (decodeIsContextTag222222222222(buffer, offset + len, 5)) {
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeReal222222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    value.covIncrement = decodedValue.value;
                                                  }
                                                  value.len = len;
                                                  return value;
                                                };
                                                var time_sync_exports222222222222 = {};
                                                __export222222222222(time_sync_exports222222222222, {
                                                  decode: () => decode26222222222222,
                                                  encode: () => encode26222222222222
                                                });
                                                var encode26222222222222 = (buffer, time) => {
                                                  encodeApplicationDate222222222222(buffer, time);
                                                  encodeApplicationTime222222222222(buffer, time);
                                                };
                                                var decode26222222222222 = (buffer, offset, length) => {
                                                  let len = 0;
                                                  let result;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 10) {
                                                    return void 0;
                                                  }
                                                  const date = decodeDate222222222222(buffer, offset + len);
                                                  len += date.len;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 11) {
                                                    return void 0;
                                                  }
                                                  const time = decodeBacnetTime222222222222(buffer, offset + len);
                                                  len += time.len;
                                                  return {
                                                    len,
                                                    value: new Date(
                                                      date.value.getFullYear(),
                                                      date.value.getMonth(),
                                                      date.value.getDate(),
                                                      time.value.getHours(),
                                                      time.value.getMinutes(),
                                                      time.value.getSeconds(),
                                                      time.value.getMilliseconds()
                                                    )
                                                  };
                                                };
                                                var who_has_exports222222222222 = {};
                                                __export222222222222(who_has_exports222222222222, {
                                                  decode: () => decode27222222222222,
                                                  encode: () => encode27222222222222
                                                });
                                                var encode27222222222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                                                  if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE222222222222) {
                                                    encodeContextUnsigned222222222222(buffer, 0, lowLimit);
                                                    encodeContextUnsigned222222222222(buffer, 1, highLimit);
                                                  }
                                                  if (objectName && objectName !== "") {
                                                    encodeContextCharacterString222222222222(buffer, 3, objectName);
                                                  } else {
                                                    encodeContextObjectId222222222222(buffer, 2, objectId.type, objectId.instance);
                                                  }
                                                };
                                                var decode27222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let value = {};
                                                  let decodedValue;
                                                  let result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber === 0) {
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    if (decodedValue.value <= ASN1_MAX_INSTANCE222222222222) {
                                                      value.lowLimit = decodedValue.value;
                                                    }
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                  }
                                                  if (result.tagNumber === 1) {
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    if (decodedValue.value <= ASN1_MAX_INSTANCE222222222222) {
                                                      value.highLimit = decodedValue.value;
                                                    }
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                  }
                                                  if (result.tagNumber === 2) {
                                                    decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    value.objectId = {
                                                      type: decodedValue.objectType,
                                                      instance: decodedValue.instance
                                                    };
                                                  }
                                                  if (result.tagNumber === 3) {
                                                    decodedValue = decodeCharacterString222222222222(
                                                      buffer,
                                                      offset + len,
                                                      apduLen - (offset + len),
                                                      result.value
                                                    );
                                                    len += decodedValue.len;
                                                    value.objectName = decodedValue.value;
                                                  }
                                                  value.len = len;
                                                  return value;
                                                };
                                                var who_is_exports222222222222 = {};
                                                __export222222222222(who_is_exports222222222222, {
                                                  decode: () => decode28222222222222,
                                                  encode: () => encode28222222222222
                                                });
                                                var encode28222222222222 = (buffer, lowLimit, highLimit) => {
                                                  if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE222222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE222222222222) {
                                                    encodeContextUnsigned222222222222(buffer, 0, lowLimit);
                                                    encodeContextUnsigned222222222222(buffer, 1, highLimit);
                                                  }
                                                };
                                                var decode28222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let value = {};
                                                  if (apduLen <= 0) {
                                                    return {};
                                                  }
                                                  let result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 0) {
                                                    return void 0;
                                                  }
                                                  if (apduLen <= len) {
                                                    return void 0;
                                                  }
                                                  let decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  if (decodedValue.value <= ASN1_MAX_INSTANCE222222222222) {
                                                    value.lowLimit = decodedValue.value;
                                                  }
                                                  if (apduLen <= len) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 1) {
                                                    return void 0;
                                                  }
                                                  if (apduLen <= len) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  if (decodedValue.value <= ASN1_MAX_INSTANCE222222222222) {
                                                    value.highLimit = decodedValue.value;
                                                  }
                                                  value.len = len;
                                                  return value;
                                                };
                                                var write_property_exports222222222222 = {};
                                                __export222222222222(write_property_exports222222222222, {
                                                  decode: () => decode29222222222222,
                                                  encode: () => encode29222222222222
                                                });
                                                var encode29222222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                                                  encodeContextObjectId222222222222(buffer, 0, objectType, objectInstance);
                                                  encodeContextEnumerated222222222222(buffer, 1, propertyId);
                                                  if (arrayIndex !== ASN1_ARRAY_ALL222222222222) {
                                                    encodeContextUnsigned222222222222(buffer, 2, arrayIndex);
                                                  }
                                                  encodeOpeningTag222222222222(buffer, 3);
                                                  values.forEach((value) => {
                                                    bacappEncodeApplicationData222222222222(buffer, value);
                                                  });
                                                  encodeClosingTag222222222222(buffer, 3);
                                                  if (priority !== ASN1_NO_PRIORITY222222222222) {
                                                    encodeContextUnsigned222222222222(buffer, 4, priority);
                                                  }
                                                };
                                                var decode29222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let value = {
                                                    property: {}
                                                  };
                                                  let decodedValue;
                                                  let result;
                                                  if (!decodeIsContextTag222222222222(buffer, offset + len, 0)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  let objectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  len += decodedValue.len;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 1) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.property.id = decodedValue.value;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  if (result.tagNumber === 2) {
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    value.property.index = decodedValue.value;
                                                  } else {
                                                    value.property.index = ASN1_ARRAY_ALL222222222222;
                                                  }
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 3)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  const values = [];
                                                  while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222222(buffer, offset + len, 3)) {
                                                    decodedValue = bacappDecodeApplicationData222222222222(
                                                      buffer,
                                                      offset + len,
                                                      apduLen + offset,
                                                      objectId.type,
                                                      value.property.id
                                                    );
                                                    if (!decodedValue) {
                                                      return void 0;
                                                    }
                                                    len += decodedValue.len;
                                                    delete decodedValue.len;
                                                    values.push(decodedValue);
                                                  }
                                                  value.value = values;
                                                  if (!decodeIsClosingTagNumber222222222222(buffer, offset + len, 3)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  value.priority = ASN1_MAX_PRIORITY222222222222;
                                                  if (len < apduLen) {
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    if (result.tagNumber === 4) {
                                                      len += result.len;
                                                      decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue;
                                                      if (decodedValue.value >= ASN1_MIN_PRIORITY222222222222 && decodedValue.value <= ASN1_MAX_PRIORITY222222222222) {
                                                        value.priority = decodedValue.value;
                                                      } else {
                                                        return void 0;
                                                      }
                                                    }
                                                  }
                                                  return {
                                                    len,
                                                    objectId,
                                                    value
                                                  };
                                                };
                                                var write_property_multiple_exports222222222222 = {};
                                                __export222222222222(write_property_multiple_exports222222222222, {
                                                  decode: () => decode30222222222222,
                                                  encode: () => encode30222222222222,
                                                  encodeObject: () => encodeObject222222222222
                                                });
                                                var encode30222222222222 = (buffer, objectId, values) => {
                                                  encodeContextObjectId222222222222(buffer, 0, objectId.type, objectId.instance);
                                                  encodeOpeningTag222222222222(buffer, 1);
                                                  values.forEach((pValue) => {
                                                    encodeContextEnumerated222222222222(buffer, 0, pValue.property.id);
                                                    if (pValue.property.index !== ASN1_ARRAY_ALL222222222222) {
                                                      encodeContextUnsigned222222222222(buffer, 1, pValue.property.index);
                                                    }
                                                    encodeOpeningTag222222222222(buffer, 2);
                                                    pValue.value.forEach((value) => {
                                                      bacappEncodeApplicationData222222222222(buffer, value);
                                                    });
                                                    encodeClosingTag222222222222(buffer, 2);
                                                    if (pValue.priority !== ASN1_NO_PRIORITY222222222222) {
                                                      encodeContextUnsigned222222222222(buffer, 3, pValue.priority);
                                                    }
                                                  });
                                                  encodeClosingTag222222222222(buffer, 1);
                                                };
                                                var decode30222222222222 = (buffer, offset, apduLen) => {
                                                  let len = 0;
                                                  let result;
                                                  let decodedValue;
                                                  let objectId;
                                                  result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 0 || apduLen <= len) {
                                                    return void 0;
                                                  }
                                                  apduLen -= len;
                                                  if (apduLen < 4) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeObjectId222222222222(buffer, offset + len);
                                                  len += decodedValue.len;
                                                  objectId = {
                                                    type: decodedValue.objectType,
                                                    instance: decodedValue.instance
                                                  };
                                                  if (!decodeIsOpeningTagNumber222222222222(buffer, offset + len, 1)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  const _values = [];
                                                  while (apduLen - len > 1) {
                                                    let newEntry = {};
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber !== 0) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeEnumerated222222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    let propertyId = decodedValue.value;
                                                    let arrayIndex = ASN1_ARRAY_ALL222222222222;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber === 1) {
                                                      decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      arrayIndex = decodedValue.value;
                                                      result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                      len += result.len;
                                                    }
                                                    newEntry.property = { id: propertyId, index: arrayIndex };
                                                    if (result.tagNumber !== 2 || !decodeIsOpeningTag222222222222(buffer, offset + len - 1)) {
                                                      return void 0;
                                                    }
                                                    const values = [];
                                                    while (len + offset <= buffer.length && !decodeIsClosingTag222222222222(buffer, offset + len)) {
                                                      let value = bacappDecodeApplicationData222222222222(
                                                        buffer,
                                                        offset + len,
                                                        apduLen + offset,
                                                        objectId.type,
                                                        propertyId
                                                      );
                                                      if (!value) {
                                                        return void 0;
                                                      }
                                                      len += value.len;
                                                      delete value.len;
                                                      values.push(value);
                                                    }
                                                    len++;
                                                    newEntry.value = values;
                                                    let priority = ASN1_NO_PRIORITY222222222222;
                                                    result = decodeTagNumberAndValue222222222222(buffer, offset + len);
                                                    len += result.len;
                                                    if (result.tagNumber === 3) {
                                                      decodedValue = decodeUnsigned222222222222(buffer, offset + len, result.value);
                                                      len += decodedValue.len;
                                                      priority = decodedValue.value;
                                                    } else {
                                                      len--;
                                                    }
                                                    newEntry.priority = priority;
                                                    _values.push(newEntry);
                                                    if (decodeIsClosingTagNumber222222222222(buffer, offset + len, 1)) {
                                                      len++;
                                                    }
                                                  }
                                                  if (decodeIsClosingTagNumber222222222222(buffer, offset + len, 1)) {
                                                    len++;
                                                  }
                                                  return {
                                                    len,
                                                    objectId,
                                                    values: _values
                                                  };
                                                };
                                                var encodeObject222222222222 = (buffer, values) => {
                                                  values.forEach((object) => {
                                                    encode30222222222222(buffer, object.objectId, object.values);
                                                  });
                                                };
                                                var getDecodedType222222222222 = (buffer, offset) => {
                                                  return buffer[offset];
                                                };
                                                var encodeConfirmedServiceRequest222222222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                                                  buffer.buffer[buffer.offset++] = type;
                                                  buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                                                  buffer.buffer[buffer.offset++] = invokeId;
                                                  if ((type & 8) > 0) {
                                                    buffer.buffer[buffer.offset++] = sequencenumber;
                                                    buffer.buffer[buffer.offset++] = proposedWindowSize;
                                                  }
                                                  buffer.buffer[buffer.offset++] = service;
                                                };
                                                var decodeConfirmedServiceRequest222222222222 = (buffer, offset) => {
                                                  const orgOffset = offset;
                                                  const type = buffer[offset++];
                                                  const maxSegments = buffer[offset] & 240;
                                                  const maxApdu = buffer[offset++] & 15;
                                                  const invokeId = buffer[offset++];
                                                  let sequencenumber = 0;
                                                  let proposedWindowNumber = 0;
                                                  if ((type & 8) > 0) {
                                                    sequencenumber = buffer[offset++];
                                                    proposedWindowNumber = buffer[offset++];
                                                  }
                                                  const service = buffer[offset++];
                                                  return {
                                                    len: offset - orgOffset,
                                                    type,
                                                    service,
                                                    maxSegments,
                                                    maxApdu,
                                                    invokeId,
                                                    sequencenumber,
                                                    proposedWindowNumber
                                                  };
                                                };
                                                var encodeUnconfirmedServiceRequest222222222222 = (buffer, type, service) => {
                                                  buffer.buffer[buffer.offset++] = type;
                                                  buffer.buffer[buffer.offset++] = service;
                                                };
                                                var decodeUnconfirmedServiceRequest222222222222 = (buffer, offset) => {
                                                  const orgOffset = offset;
                                                  const type = buffer[offset++];
                                                  const service = buffer[offset++];
                                                  return {
                                                    len: offset - orgOffset,
                                                    type,
                                                    service
                                                  };
                                                };
                                                var encodeSimpleAck222222222222 = (buffer, type, service, invokeId) => {
                                                  buffer.buffer[buffer.offset++] = type;
                                                  buffer.buffer[buffer.offset++] = invokeId;
                                                  buffer.buffer[buffer.offset++] = service;
                                                };
                                                var decodeSimpleAck222222222222 = (buffer, offset) => {
                                                  const orgOffset = offset;
                                                  const type = buffer[offset++];
                                                  const invokeId = buffer[offset++];
                                                  const service = buffer[offset++];
                                                  return {
                                                    len: offset - orgOffset,
                                                    type,
                                                    service,
                                                    invokeId
                                                  };
                                                };
                                                var encodeComplexAck222222222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                                                  let len = 3;
                                                  buffer.buffer[buffer.offset++] = type;
                                                  buffer.buffer[buffer.offset++] = invokeId;
                                                  if ((type & 8) > 0) {
                                                    buffer.buffer[buffer.offset++] = sequencenumber;
                                                    buffer.buffer[buffer.offset++] = proposedWindowNumber;
                                                    len += 2;
                                                  }
                                                  buffer.buffer[buffer.offset++] = service;
                                                  return len;
                                                };
                                                var decodeComplexAck222222222222 = (buffer, offset) => {
                                                  const orgOffset = offset;
                                                  const type = buffer[offset++];
                                                  const invokeId = buffer[offset++];
                                                  let sequencenumber = 0;
                                                  let proposedWindowNumber = 0;
                                                  if ((type & 8) > 0) {
                                                    sequencenumber = buffer[offset++];
                                                    proposedWindowNumber = buffer[offset++];
                                                  }
                                                  const service = buffer[offset++];
                                                  return {
                                                    len: offset - orgOffset,
                                                    type,
                                                    service,
                                                    invokeId,
                                                    sequencenumber,
                                                    proposedWindowNumber
                                                  };
                                                };
                                                var encodeSegmentAck222222222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                                                  buffer.buffer[buffer.offset++] = type;
                                                  buffer.buffer[buffer.offset++] = originalInvokeId;
                                                  buffer.buffer[buffer.offset++] = sequencenumber;
                                                  buffer.buffer[buffer.offset++] = actualWindowSize;
                                                };
                                                var decodeSegmentAck222222222222 = (buffer, offset) => {
                                                  const orgOffset = offset;
                                                  const type = buffer[offset++];
                                                  const originalInvokeId = buffer[offset++];
                                                  const sequencenumber = buffer[offset++];
                                                  const actualWindowSize = buffer[offset++];
                                                  return {
                                                    len: offset - orgOffset,
                                                    type,
                                                    originalInvokeId,
                                                    sequencenumber,
                                                    actualWindowSize
                                                  };
                                                };
                                                var encodeResult222222222222 = (buffer, resultCode) => {
                                                  encodeUnsigned222222222222(buffer, resultCode, 2);
                                                };
                                                var encodeError222222222222 = (buffer, type, service, invokeId) => {
                                                  buffer.buffer[buffer.offset++] = type;
                                                  buffer.buffer[buffer.offset++] = invokeId;
                                                  buffer.buffer[buffer.offset++] = service;
                                                };
                                                var decodeError222222222222 = (buffer, offset) => {
                                                  const orgOffset = offset;
                                                  const type = buffer[offset++];
                                                  const invokeId = buffer[offset++];
                                                  const service = buffer[offset++];
                                                  return {
                                                    len: offset - orgOffset,
                                                    type,
                                                    service,
                                                    invokeId
                                                  };
                                                };
                                                var decodeAbort222222222222 = (buffer, offset) => {
                                                  const orgOffset = offset;
                                                  const type = buffer[offset++];
                                                  const invokeId = buffer[offset++];
                                                  const reason = buffer[offset++];
                                                  return {
                                                    len: offset - orgOffset,
                                                    type,
                                                    invokeId,
                                                    reason
                                                  };
                                                };
                                                var DEFAULT_HOP_COUNT322222222222 = 255;
                                                var BACNET_PROTOCOL_VERSION222222222222 = 1;
                                                var BACNET_ADDRESS_TYPES222222222222 = {
                                                  NONE: 0,
                                                  IP: 1
                                                };
                                                var decodeTarget222222222222 = (buffer, offset) => {
                                                  let len = 0;
                                                  const target = {
                                                    type: BACNET_ADDRESS_TYPES222222222222.NONE,
                                                    net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                                                  };
                                                  const adrLen = buffer[offset + len++];
                                                  if (adrLen > 0) {
                                                    target.adr = [];
                                                    for (let i = 0; i < adrLen; i++) {
                                                      target.adr.push(buffer[offset + len++]);
                                                    }
                                                  }
                                                  return {
                                                    target,
                                                    len
                                                  };
                                                };
                                                var encodeTarget222222222222 = (buffer, target) => {
                                                  buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                                                  buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                                                  if (target.net === 65535 || !target.adr) {
                                                    buffer.buffer[buffer.offset++] = 0;
                                                  } else {
                                                    buffer.buffer[buffer.offset++] = target.adr.length;
                                                    if (target.adr.length > 0) {
                                                      for (let i = 0; i < target.adr.length; i++) {
                                                        buffer.buffer[buffer.offset++] = target.adr[i];
                                                      }
                                                    }
                                                  }
                                                };
                                                var decode31222222222222 = (buffer, offset) => {
                                                  let adrLen;
                                                  const orgOffset = offset;
                                                  offset++;
                                                  const funct = buffer[offset++];
                                                  let destination;
                                                  if (funct & 32) {
                                                    const tmpDestination = decodeTarget222222222222(buffer, offset);
                                                    offset += tmpDestination.len;
                                                    destination = tmpDestination.target;
                                                  }
                                                  let source;
                                                  if (funct & 8) {
                                                    const tmpSource = decodeTarget222222222222(buffer, offset);
                                                    offset += tmpSource.len;
                                                    source = tmpSource.target;
                                                  }
                                                  let hopCount = 0;
                                                  if (funct & 32) {
                                                    hopCount = buffer[offset++];
                                                  }
                                                  let networkMsgType = 0;
                                                  let vendorId = 0;
                                                  if (funct & 128) {
                                                    networkMsgType = buffer[offset++];
                                                    if (networkMsgType >= 128) {
                                                      vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                                                    } else if (networkMsgType === 0) {
                                                      offset += 2;
                                                    }
                                                  }
                                                  if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION222222222222) {
                                                    return void 0;
                                                  }
                                                  return {
                                                    len: offset - orgOffset,
                                                    funct,
                                                    destination,
                                                    source,
                                                    hopCount,
                                                    networkMsgType,
                                                    vendorId
                                                  };
                                                };
                                                var encode31222222222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                                                  const hasDestination = destination && destination.net > 0;
                                                  const hasSource = source && source.net > 0 && source.net !== 65535;
                                                  buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION222222222222;
                                                  buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                                                  if (hasDestination) {
                                                    encodeTarget222222222222(buffer, destination);
                                                  }
                                                  if (hasSource) {
                                                    encodeTarget222222222222(buffer, source);
                                                  }
                                                  if (hasDestination) {
                                                    buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT322222222222;
                                                  }
                                                  if ((funct & 128) > 0) {
                                                    buffer.buffer[buffer.offset++] = networkMsgType;
                                                    if (networkMsgType >= 128) {
                                                      buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                                                      buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                                                    }
                                                  }
                                                };
                                                var DEFAULT_BACNET_PORT2222222222222 = 47808;
                                                var encode32222222222222 = (buffer, func, msgLength, originatingIP) => {
                                                  buffer[0] = BVLL_TYPE_BACNET_IP222222222222;
                                                  buffer[1] = func;
                                                  buffer[2] = (msgLength & 65280) >> 8;
                                                  buffer[3] = (msgLength & 255) >> 0;
                                                  if (originatingIP) {
                                                    if (func !== 4) {
                                                      throw new Error(
                                                        "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                                                      );
                                                    }
                                                    const [ipstr, portstr] = originatingIP.split(":");
                                                    const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT2222222222222;
                                                    const ip = ipstr.split(".");
                                                    buffer[4] = parseInt(ip[0], 10);
                                                    buffer[5] = parseInt(ip[1], 10);
                                                    buffer[6] = parseInt(ip[2], 10);
                                                    buffer[7] = parseInt(ip[3], 10);
                                                    buffer[8] = (port & 65280) >> 8;
                                                    buffer[9] = (port & 255) >> 0;
                                                    return 6 + BVLC_HEADER_LENGTH322222222222;
                                                  } else {
                                                    if (func === 4) {
                                                      throw new Error(
                                                        "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                                                      );
                                                    }
                                                  }
                                                  return BVLC_HEADER_LENGTH322222222222;
                                                };
                                                var decode32222222222222 = (buffer, _offset) => {
                                                  let len;
                                                  const func = buffer[1];
                                                  const msgLength = buffer[2] << 8 | buffer[3] << 0;
                                                  if (buffer[0] !== BVLL_TYPE_BACNET_IP222222222222 || buffer.length !== msgLength) {
                                                    return void 0;
                                                  }
                                                  let originatingIP = null;
                                                  switch (func) {
                                                    case 0:
                                                    case 10:
                                                    case 11:
                                                    case 9:
                                                    case 5:
                                                    case 6:
                                                    case 8:
                                                    case 2:
                                                    case 1:
                                                    case 3:
                                                    case 7:
                                                      len = 4;
                                                      break;
                                                    case 4:
                                                      const port = buffer[8] << 8 | buffer[9];
                                                      originatingIP = buffer.slice(4, 8).join(".");
                                                      if (port !== DEFAULT_BACNET_PORT2222222222222) {
                                                        originatingIP += ":" + port;
                                                      }
                                                      len = 10;
                                                      break;
                                                    case 12:
                                                      return void 0;
                                                    default:
                                                      return void 0;
                                                  }
                                                  return {
                                                    len,
                                                    func,
                                                    msgLength,
                                                    // Originating IP is set to the IP address of the node that originally
                                                    // sent the packet, when it has been forwarded to us by a BBMD (since the
                                                    // BBMD's IP address will be in the sender field.
                                                    originatingIP
                                                  };
                                                };
                                                var EventEmitter2222222222222 = import_events2222222222222.default.EventEmitter;
                                                var debug3222222222222 = (0, import_debug3222222222222.default)("bacnet:client:debug");
                                                var trace2222222222222 = (0, import_debug3222222222222.default)("bacnet:client:trace");
                                                var ALL_INTERFACES222222222222 = "0.0.0.0";
                                                var LOCALHOST_INTERFACES_IPV4222222222222 = "127.0.0.1";
                                                var BROADCAST_ADDRESS222222222222 = "255.255.255.255";
                                                var DEFAULT_HOP_COUNT2222222222222 = 255;
                                                var BVLC_HEADER_LENGTH2222222222222 = 4;
                                                var BVLC_FWD_HEADER_LENGTH222222222222 = 10;
                                                var beU222222222222 = UnconfirmedServiceChoice222222222222;
                                                var unconfirmedServiceMap222222222222 = {
                                                  [beU222222222222.I_AM]: "iAm",
                                                  [beU222222222222.WHO_IS]: "whoIs",
                                                  [beU222222222222.WHO_HAS]: "whoHas",
                                                  [beU222222222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                                                  [beU222222222222.TIME_SYNCHRONIZATION]: "timeSync",
                                                  [beU222222222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                                                  [beU222222222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                  [beU222222222222.I_HAVE]: "iHave",
                                                  [beU222222222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                };
                                                var beC222222222222 = ConfirmedServiceChoice222222222222;
                                                var confirmedServiceMap222222222222 = {
                                                  [beC222222222222.READ_PROPERTY]: "readProperty",
                                                  [beC222222222222.WRITE_PROPERTY]: "writeProperty",
                                                  [beC222222222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                                                  [beC222222222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                                                  [beC222222222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                                                  [beC222222222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                                                  [beC222222222222.ATOMIC_READ_FILE]: "atomicReadFile",
                                                  [beC222222222222.SUBSCRIBE_COV]: "subscribeCov",
                                                  [beC222222222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                                                  [beC222222222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                                                  [beC222222222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                                                  [beC222222222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                                  [beC222222222222.READ_RANGE]: "readRange",
                                                  [beC222222222222.CREATE_OBJECT]: "createObject",
                                                  [beC222222222222.DELETE_OBJECT]: "deleteObject",
                                                  [beC222222222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                                                  [beC222222222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                                                  [beC222222222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                                                  [beC222222222222.GET_EVENT_INFORMATION]: "getEventInformation",
                                                  [beC222222222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                                                  [beC222222222222.ADD_LIST_ELEMENT]: "addListElement",
                                                  [beC222222222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                                                  [beC222222222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                                };
                                                var errorReasonEnums222222222222 = {
                                                  BacnetAbort: RejectReason222222222222
                                                };
                                                var BacnetError222222222222 = class extends Error {
                                                  constructor(message, bacnetErrorClass, bacnetErrorCode) {
                                                    super(message);
                                                    this.bacnetErrorClass = bacnetErrorClass;
                                                    this.bacnetErrorCode = bacnetErrorCode;
                                                  }
                                                };
                                                function bacnetErrorToString222222222222(err) {
                                                  var _a;
                                                  const isError = err instanceof Error || err instanceof BacnetError222222222222;
                                                  if (!isError)
                                                    return;
                                                  const message = err.message;
                                                  const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                                                  const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                                                  if (!errorReasonEnums222222222222[reasonClass])
                                                    return;
                                                  const reasonString = errorReasonEnums222222222222[reasonClass][reason];
                                                  return reasonClass + ": " + reasonString;
                                                }
                                                var Client222222222222 = class extends EventEmitter2222222222222 {
                                                  /**
                                                   *
                                                   * @param options
                                                   */
                                                  constructor(options) {
                                                    super();
                                                    options = options || {};
                                                    this._invokeCounter = 1;
                                                    this._invokeStore = {};
                                                    this._lastSequenceNumber = 0;
                                                    this._segmentStore = [];
                                                    this._settings = {
                                                      port: options.port || 47808,
                                                      interface: options.interface || ALL_INTERFACES222222222222,
                                                      transport: options.transport,
                                                      broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS222222222222,
                                                      apduTimeout: options.apduTimeout || 3e3
                                                    };
                                                    options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                                                    this._transport = this._settings.transport || new Transport222222222222({
                                                      port: this._settings.port,
                                                      interface: this._settings.interface,
                                                      broadcastAddress: this._settings.broadcastAddress,
                                                      reuseAddr: options.reuseAddr
                                                    });
                                                    this._transport.on("message", this._receiveData.bind(this));
                                                    this._transport.on("error", this._receiveError.bind(this));
                                                    this._transport.on("listening", () => this.emit("listening"));
                                                    this._transport.open();
                                                  }
                                                  /**
                                                   *
                                                   * @returns {number}
                                                   * @private
                                                   */
                                                  _getInvokeId() {
                                                    const id = this._invokeCounter++;
                                                    if (id >= 256)
                                                      this._invokeCounter = 1;
                                                    return id - 1;
                                                  }
                                                  /**
                                                   *
                                                   * @param id
                                                   * @param err
                                                   * @param result
                                                   * @returns {*}
                                                   * @private
                                                   */
                                                  _invokeCallback(id, err, result) {
                                                    const callback = this._invokeStore[id];
                                                    if (callback) {
                                                      return void callback(err, result);
                                                    }
                                                    debug3222222222222("InvokeId", id, "not found -> drop package");
                                                  }
                                                  /**
                                                   *
                                                   * @param id
                                                   * @param callback
                                                   * @private
                                                   */
                                                  _addCallback(id, callback) {
                                                    const timeout = setTimeout(() => {
                                                      delete this._invokeStore[id];
                                                      callback(new Error("ERR_TIMEOUT"));
                                                    }, this._settings.apduTimeout);
                                                    this._invokeStore[id] = (err, data) => {
                                                      clearTimeout(timeout);
                                                      delete this._invokeStore[id];
                                                      callback(err, data);
                                                    };
                                                  }
                                                  /**
                                                   *
                                                   * @param isForwarded
                                                   * @returns {{offset: (number), buffer: *}}
                                                   * @private
                                                   */
                                                  _getBuffer(isForwarded) {
                                                    return Object.assign(
                                                      {},
                                                      {
                                                        buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                                        offset: isForwarded ? BVLC_FWD_HEADER_LENGTH222222222222 : BVLC_HEADER_LENGTH2222222222222
                                                      }
                                                    );
                                                  }
                                                  /**
                                                   *
                                                   * @param invokeId
                                                   * @param buffer
                                                   * @param offset
                                                   * @param length
                                                   * @returns {*}
                                                   * @private
                                                   */
                                                  _processError(invokeId, buffer, offset, length) {
                                                    const result = error_exports222222222222.decode(buffer, offset);
                                                    trace2222222222222("Received error:", result);
                                                    if (!result) {
                                                      return debug3222222222222("Couldn`t decode Error");
                                                    }
                                                    const err = new BacnetError222222222222(error_exports222222222222.buildMessage(result));
                                                    err.bacnetErrorClass = result.class;
                                                    err.bacnetErrorCode = result.code;
                                                    this._invokeCallback(invokeId, err);
                                                  }
                                                  /**
                                                   *
                                                   * @param invokeId
                                                   * @param reason
                                                   * @private
                                                   */
                                                  _processAbort(invokeId, reason) {
                                                    const err = new BacnetError222222222222("BacnetAbort - Reason:" + reason);
                                                    err.bacnetAbortReason = reason;
                                                    err.bacnetErrorClass = AbortReason222222222222;
                                                    this._invokeCallback(invokeId, err);
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param negative
                                                   * @param server
                                                   * @param originalInvokeId
                                                   * @param sequencenumber
                                                   * @param actualWindowSize
                                                   * @private
                                                   */
                                                  _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                                                    const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                    encode31222222222222(
                                                      buffer,
                                                      0,
                                                      receiver,
                                                      null,
                                                      DEFAULT_HOP_COUNT2222222222222,
                                                      0,
                                                      0
                                                    );
                                                    encodeSegmentAck222222222222(
                                                      buffer,
                                                      64 | (negative ? 2 : 0) | (server ? 1 : 0),
                                                      originalInvokeId,
                                                      sequencenumber,
                                                      actualWindowSize
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                  }
                                                  /**
                                                   *
                                                   * @param msg
                                                   * @param first
                                                   * @param moreFollows
                                                   * @param buffer
                                                   * @param offset
                                                   * @param length
                                                   * @private
                                                   */
                                                  _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                                                    if (first) {
                                                      this._segmentStore = [];
                                                      msg.type &= ~8;
                                                      let apduHeaderLen = 3;
                                                      if ((msg.type & PDU_TYPE_MASK222222222222) === 0) {
                                                        apduHeaderLen = 4;
                                                      }
                                                      const apdubuffer = this._getBuffer();
                                                      apdubuffer.offset = 0;
                                                      buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                                                      if ((msg.type & PDU_TYPE_MASK222222222222) === 0) {
                                                        encodeConfirmedServiceRequest222222222222(
                                                          apdubuffer,
                                                          msg.type,
                                                          msg.service,
                                                          msg.maxSegments,
                                                          msg.maxApdu,
                                                          msg.invokeId,
                                                          0,
                                                          0
                                                        );
                                                      } else {
                                                        encodeComplexAck222222222222(
                                                          apdubuffer,
                                                          msg.type,
                                                          msg.service,
                                                          msg.invokeId,
                                                          0,
                                                          0
                                                        );
                                                      }
                                                      this._segmentStore.push(
                                                        //@ts-ignore
                                                        apdubuffer.buffer.slice(0, length + apduHeaderLen)
                                                      );
                                                    } else {
                                                      this._segmentStore.push(buffer.slice(offset, offset + length));
                                                    }
                                                    if (!moreFollows) {
                                                      const apduBuffer = Buffer.concat(this._segmentStore);
                                                      this._segmentStore = [];
                                                      msg.type &= ~8;
                                                      this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                                                    }
                                                  }
                                                  /**
                                                   *
                                                   * @param msg
                                                   * @param server
                                                   * @param buffer
                                                   * @param offset
                                                   * @param length
                                                   * @private
                                                   */
                                                  _processSegment(msg, server, buffer, offset, length) {
                                                    let first = false;
                                                    if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                                                      first = true;
                                                    } else {
                                                      if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                                        return this._segmentAckResponse(
                                                          msg.header.address,
                                                          true,
                                                          server,
                                                          msg.invokeId,
                                                          this._lastSequenceNumber,
                                                          msg.proposedWindowNumber
                                                        );
                                                      }
                                                    }
                                                    this._lastSequenceNumber = msg.sequencenumber;
                                                    const moreFollows = msg.type & 4;
                                                    if (!moreFollows) {
                                                      this._lastSequenceNumber = 0;
                                                    }
                                                    if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                                                      this._segmentAckResponse(
                                                        msg.header.address,
                                                        false,
                                                        server,
                                                        msg.invokeId,
                                                        msg.sequencenumber,
                                                        msg.proposedWindowNumber
                                                      );
                                                    }
                                                    this._performDefaultSegmentHandling(
                                                      msg,
                                                      first,
                                                      moreFollows,
                                                      buffer,
                                                      offset,
                                                      length
                                                    );
                                                  }
                                                  /**
                                                   *
                                                   * @param serviceMap
                                                   * @param content
                                                   * @param buffer
                                                   * @param offset
                                                   * @param length
                                                   * @returns {*}
                                                   * @private
                                                   */
                                                  _processServiceRequest(serviceMap, content, buffer, offset, length) {
                                                    let result;
                                                    const sender = content.header.sender;
                                                    if (sender.address === LOCALHOST_INTERFACES_IPV4222222222222) {
                                                      debug3222222222222("Received and skipped localhost service request:", content.service);
                                                      return;
                                                    }
                                                    const name = serviceMap[content.service];
                                                    if (!name) {
                                                      debug3222222222222("Received unsupported service request:", content.service);
                                                      return;
                                                    }
                                                    const id = content.invokeId ? "@" + content.invokeId : "";
                                                    trace2222222222222(`Received service request${id}:`, name);
                                                    const serviceHandler = services_exports222222222222[name];
                                                    if (serviceHandler) {
                                                      try {
                                                        content.payload = serviceHandler.decode(buffer, offset, length);
                                                        trace2222222222222(`Handled service request${id}:`, name, JSON.stringify(content));
                                                      } catch (e) {
                                                        debug3222222222222("Exception thrown when processing message:", e);
                                                        debug3222222222222("Original message was", name + ":", content);
                                                        return;
                                                      }
                                                      if (!content.payload) {
                                                        return debug3222222222222("Received invalid", name, "message");
                                                      }
                                                    } else {
                                                      debug3222222222222("No serviceHandler defined for:", name);
                                                    }
                                                    if (this.listenerCount(name)) {
                                                      trace2222222222222("listener count by name emits " + name + " with content");
                                                      this.emit(name, content);
                                                    } else {
                                                      if (this.listenerCount("unhandledEvent")) {
                                                        trace2222222222222("unhandled event emiting with content");
                                                        this.emit("unhandledEvent", content);
                                                      } else {
                                                        trace2222222222222(
                                                          "no unhandled event handler with header: " + JSON.stringify(content.header)
                                                        );
                                                        if (content.header.expectingReply) {
                                                          debug3222222222222("Replying with error for unhandled service:", name);
                                                          content.header.sender.forwardedFrom = null;
                                                          this.errorResponse(
                                                            content.header.sender,
                                                            content.service,
                                                            content.invokeId,
                                                            5,
                                                            67
                                                            /* REJECT_UNRECOGNIZED_SERVICE */
                                                          );
                                                        }
                                                      }
                                                    }
                                                  }
                                                  /**
                                                   *
                                                   * @param buffer
                                                   * @param offset
                                                   * @param length
                                                   * @param header
                                                   * @private
                                                   */
                                                  _handlePdu(buffer, offset, length, header) {
                                                    let msg;
                                                    trace2222222222222("handlePdu Header: ", header);
                                                    switch (header.apduType & PDU_TYPE_MASK222222222222) {
                                                      case 16:
                                                        msg = decodeUnconfirmedServiceRequest222222222222(buffer, offset);
                                                        msg.header = header;
                                                        msg.header.confirmedService = false;
                                                        this._processServiceRequest(
                                                          unconfirmedServiceMap222222222222,
                                                          msg,
                                                          buffer,
                                                          offset + msg.len,
                                                          length - msg.len
                                                        );
                                                        break;
                                                      case 32:
                                                        msg = decodeSimpleAck222222222222(buffer, offset);
                                                        offset += msg.len;
                                                        length -= msg.len;
                                                        this._invokeCallback(msg.invokeId, null, {
                                                          msg,
                                                          buffer,
                                                          offset: offset + msg.len,
                                                          length: length - msg.len
                                                        });
                                                        break;
                                                      case 48:
                                                        msg = decodeComplexAck222222222222(buffer, offset);
                                                        msg.header = header;
                                                        if ((header.apduType & 8) === 0) {
                                                          this._invokeCallback(msg.invokeId, null, {
                                                            msg,
                                                            buffer,
                                                            offset: offset + msg.len,
                                                            length: length - msg.len
                                                          });
                                                        } else {
                                                          this._processSegment(
                                                            msg,
                                                            true,
                                                            buffer,
                                                            offset + msg.len,
                                                            length - msg.len
                                                          );
                                                        }
                                                        break;
                                                      case 64:
                                                        msg = decodeSegmentAck222222222222(buffer, offset);
                                                        msg.header = header;
                                                        this._processSegment(
                                                          msg,
                                                          true,
                                                          buffer,
                                                          offset + msg.len,
                                                          length - msg.len
                                                        );
                                                        break;
                                                      case 80:
                                                        msg = decodeError222222222222(buffer, offset);
                                                        this._processError(
                                                          msg.invokeId,
                                                          buffer,
                                                          offset + msg.len,
                                                          length - msg.len
                                                        );
                                                        break;
                                                      case 96:
                                                      case 112:
                                                        msg = decodeAbort222222222222(buffer, offset);
                                                        this._processAbort(msg.invokeId, msg.reason);
                                                        break;
                                                      case 0:
                                                        msg = decodeConfirmedServiceRequest222222222222(buffer, offset);
                                                        msg.header = header;
                                                        msg.header.confirmedService = true;
                                                        if ((header.apduType & 8) === 0) {
                                                          this._processServiceRequest(
                                                            confirmedServiceMap222222222222,
                                                            msg,
                                                            buffer,
                                                            offset + msg.len,
                                                            length - msg.len
                                                          );
                                                        } else {
                                                          this._processSegment(
                                                            msg,
                                                            true,
                                                            buffer,
                                                            offset + msg.len,
                                                            length - msg.len
                                                          );
                                                        }
                                                        break;
                                                      default:
                                                        debug3222222222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                                        break;
                                                    }
                                                  }
                                                  /**
                                                   *
                                                   * @param buffer
                                                   * @param offset
                                                   * @param msgLength
                                                   * @param header
                                                   * @returns {*}
                                                   * @private
                                                   */
                                                  _handleNpdu(buffer, offset, msgLength, header) {
                                                    if (msgLength <= 0) {
                                                      return trace2222222222222("No NPDU data -> Drop package");
                                                    }
                                                    const result = decode31222222222222(buffer, offset);
                                                    if (!result) {
                                                      return trace2222222222222("Received invalid NPDU header -> Drop package");
                                                    }
                                                    if (result.funct & 128) {
                                                      return trace2222222222222("Received network layer message -> Drop package");
                                                    }
                                                    offset += result.len;
                                                    msgLength -= result.len;
                                                    if (msgLength <= 0) {
                                                      return trace2222222222222("No APDU data -> Drop package");
                                                    }
                                                    header.apduType = getDecodedType222222222222(buffer, offset);
                                                    header.expectingReply = !!(result.funct & 4);
                                                    this._handlePdu(buffer, offset, msgLength, header);
                                                  }
                                                  /**
                                                   *
                                                   * @param buffer
                                                   * @param remoteAddress
                                                   * @returns {*}
                                                   * @private
                                                   */
                                                  _receiveData(buffer, remoteAddress) {
                                                    if (buffer.length < BVLC_HEADER_LENGTH322222222222) {
                                                      return trace2222222222222("Received invalid data -> Drop package");
                                                    }
                                                    const result = decode32222222222222(buffer, 0);
                                                    if (!result) {
                                                      return trace2222222222222("Received invalid BVLC header -> Drop package");
                                                    }
                                                    let header = {
                                                      // Which function the packet came in on, so later code can distinguish
                                                      // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                                                      func: result.func,
                                                      sender: {
                                                        // Address of the host we are directly connected to. String, IP:port.
                                                        address: remoteAddress,
                                                        // If the host is a BBMD passing messages along to another node, this
                                                        // is the address of the distant BACnet node.  String, IP:port.
                                                        // Typically we won't have network connectivity to this address, but
                                                        // we have to include it in replies so the host we are connect to knows
                                                        // where to forward the messages.
                                                        forwardedFrom: null
                                                      }
                                                    };
                                                    switch (result.func) {
                                                      case 10:
                                                      case 11:
                                                        this._handleNpdu(
                                                          buffer,
                                                          result.len,
                                                          buffer.length - result.len,
                                                          header
                                                        );
                                                        break;
                                                      case 4:
                                                        header.sender.forwardedFrom = result.originatingIP;
                                                        this._handleNpdu(
                                                          buffer,
                                                          result.len,
                                                          buffer.length - result.len,
                                                          header
                                                        );
                                                        break;
                                                      case 5:
                                                        let decodeResult = register_foreign_device_exports222222222222.decode(
                                                          buffer,
                                                          result.len,
                                                          buffer.length - result.len
                                                        );
                                                        if (!decodeResult) {
                                                          return trace2222222222222("Received invalid registerForeignDevice message");
                                                        }
                                                        this.emit("registerForeignDevice", {
                                                          header,
                                                          payload: decodeResult
                                                        });
                                                        break;
                                                      case 9:
                                                        this._handleNpdu(
                                                          buffer,
                                                          result.len,
                                                          buffer.length - result.len,
                                                          header
                                                        );
                                                        break;
                                                      default:
                                                        debug3222222222222(
                                                          "Received unknown BVLC function " + result.func + " -> Drop package"
                                                        );
                                                        break;
                                                    }
                                                  }
                                                  /**
                                                   * @event bacnet.error
                                                   * @param {error} err - The error object thrown by the underlying transport layer.
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * client.on('error', (err) => {
                                                   *   console.log('Error occurred: ', err);
                                                   *   client.close();
                                                   * });
                                                   */
                                                  _receiveError(err) {
                                                    this.emit("error", err);
                                                  }
                                                  /**
                                                   * The whoIs command discovers all BACNET devices in a network.
                                                   * @function bacnet.whoIs
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {object=} options
                                                   * @param {number=} options.lowLimit - Minimal device instance number to search for.
                                                   * @param {number=} options.highLimit - Maximal device instance number to search for.
                                                   * @fires bacnet.iAm
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * client.whoIs();
                                                   */
                                                  whoIs(receiver, options) {
                                                    if (!options) {
                                                      if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                                        options = receiver;
                                                        receiver = void 0;
                                                      }
                                                    }
                                                    options = options || {};
                                                    const settings = {
                                                      lowLimit: options.lowLimit,
                                                      highLimit: options.highLimit
                                                    };
                                                    const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                    encode31222222222222(
                                                      buffer,
                                                      0,
                                                      //@ts-ignore
                                                      receiver,
                                                      null,
                                                      DEFAULT_HOP_COUNT2222222222222,
                                                      0,
                                                      0
                                                    );
                                                    encodeUnconfirmedServiceRequest222222222222(
                                                      buffer,
                                                      16,
                                                      8
                                                      /* WHO_IS */
                                                    );
                                                    who_is_exports222222222222.encode(buffer, settings.lowLimit, settings.highLimit);
                                                    this.sendBvlc(receiver, buffer);
                                                  }
                                                  /**
                                                   * The timeSync command sets the time of a target device.
                                                   * @function bacnet.timeSync
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {date} dateTime - The date and time to set on the target device.
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * client.timeSync('192.168.1.43', new Date());
                                                   */
                                                  timeSync(receiver, dateTime) {
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(buffer, 0, receiver);
                                                    encodeUnconfirmedServiceRequest222222222222(
                                                      buffer,
                                                      16,
                                                      6
                                                      /* TIME_SYNCHRONIZATION */
                                                    );
                                                    time_sync_exports222222222222.encode(buffer, dateTime);
                                                    this.sendBvlc(receiver, buffer);
                                                  }
                                                  /**
                                                   * The timeSyncUTC command sets the UTC time of a target device.
                                                   * @function bacnet.timeSyncUTC
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {date} dateTime - The date and time to set on the target device.
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * client.timeSyncUTC('192.168.1.43', new Date());
                                                   */
                                                  timeSyncUTC(receiver, dateTime) {
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(buffer, 0, receiver);
                                                    encodeUnconfirmedServiceRequest222222222222(
                                                      buffer,
                                                      16,
                                                      9
                                                      /* UTC_TIME_SYNCHRONIZATION */
                                                    );
                                                    time_sync_exports222222222222.encode(buffer, dateTime);
                                                    this.sendBvlc(receiver, buffer);
                                                  }
                                                  /**
                                                   * The readProperty command reads a single property of an object from a device.
                                                   * @function bacnet.readProperty
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {object} objectId - The BACNET object ID to read.
                                                   * @param {number} objectId.type - The BACNET object type to read.
                                                   * @param {number} objectId.instance - The BACNET object instance to read.
                                                   * @param {number} propertyId - The BACNET property id in the specified object to read.
                                                   * @param {object=} options
                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                   * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                                                   *   console.log('value: ', value);
                                                   * });
                                                   */
                                                  readProperty(receiver, objectId, propertyId, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId(),
                                                      arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL222222222222
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      //@ts-ignore
                                                      receiver,
                                                      null,
                                                      DEFAULT_HOP_COUNT2222222222222,
                                                      0,
                                                      0
                                                    );
                                                    const type = 0 | //@ts-ignore
                                                    (settings.maxSegments !== 0 ? 2 : 0);
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      type,
                                                      12,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    read_property_exports222222222222.encode(
                                                      buffer,
                                                      objectId.type,
                                                      objectId.instance,
                                                      propertyId,
                                                      settings.arrayIndex
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      const result = read_property_exports222222222222.decodeAcknowledge(
                                                        data.buffer,
                                                        data.offset,
                                                        data.length
                                                      );
                                                      if (!result) {
                                                        return void next(new Error("INVALID_DECODING"));
                                                      }
                                                      next(null, result);
                                                    });
                                                  }
                                                  /**
                                                   * The writeProperty command writes a single property of an object to a device.
                                                   * @function bacnet.writeProperty
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {object} objectId - The BACNET object ID to write.
                                                   * @param {number} objectId.type - The BACNET object type to write.
                                                   * @param {number} objectId.instance - The BACNET object instance to write.
                                                   * @param {number} propertyId - The BACNET property id in the specified object to write.
                                                   * @param {object[]} values - A list of values to be written to the specified property.
                                                   * @param {ApplicationTag} values.type - The data-type of the value to be written.
                                                   * @param {number} values.value - The actual value to be written.
                                                   * @param {object=} options
                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                   * @param {number=} options.arrayIndex - The array index of the property to be read.
                                                   * @param {number=} options.priority - The priority of the value to be written.
                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                                                   *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                                                   * ], (err, value) => {
                                                   *   console.log('value: ', value);
                                                   * });
                                                   */
                                                  writeProperty(receiver, objectId, propertyId, values, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId(),
                                                      arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL222222222222,
                                                      priority: options.priority || ASN1_NO_PRIORITY222222222222
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      //@ts-ignore Todo somehow types do not match at all
                                                      receiver,
                                                      null,
                                                      DEFAULT_HOP_COUNT2222222222222,
                                                      0,
                                                      0
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      15,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    write_property_exports222222222222.encode(
                                                      buffer,
                                                      objectId.type,
                                                      objectId.instance,
                                                      propertyId,
                                                      settings.arrayIndex,
                                                      settings.priority,
                                                      values
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      next(err);
                                                    });
                                                  }
                                                  /**
                                                   * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                                                   * @function bacnet.readPropertyMultiple
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {object[]} propertiesArray - List of object and property specifications to be read.
                                                   * @param {object} propertiesArray.objectId - Specifies which object to read.
                                                   * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                                                   * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                                                   * @param {object[]} propertiesArray.properties - List of properties to be read.
                                                   * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                                                   * @param {object=} options
                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * const requestArray = [
                                                   *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                                                   * ];
                                                   * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                                                   *   console.log('value: ', value);
                                                   * });
                                                   */
                                                  readPropertyMultiple(receiver, propertiesArray, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                                                    const buffer = this._getBuffer(!!isForwarded);
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      //@ts-ignore Todo somehow types do not match at all
                                                      receiver,
                                                      null,
                                                      DEFAULT_HOP_COUNT2222222222222,
                                                      0,
                                                      0
                                                    );
                                                    const type = 0 | //@ts-ignore
                                                    (settings.maxSegments !== 0 ? 2 : 0);
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      type,
                                                      14,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    read_property_multiple_exports222222222222.encode(buffer, propertiesArray);
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return next(err);
                                                      }
                                                      const result = read_property_multiple_exports222222222222.decodeAcknowledge(
                                                        data.buffer,
                                                        data.offset,
                                                        data.length
                                                      );
                                                      if (!result) {
                                                        return next(new Error("INVALID_DECODING"));
                                                      }
                                                      next(null, result);
                                                    });
                                                  }
                                                  /**
                                                   * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                                                   * @function bacnet.writePropertyMultiple
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {object[]} values - List of object and property specifications to be written.
                                                   * @param {object} values.objectId - Specifies which object to read.
                                                   * @param {number} values.objectId.type - The BACNET object type to read.
                                                   * @param {number} values.objectId.instance - The BACNET object instance to read.
                                                   * @param {object[]} values.values - List of properties to be written.
                                                   * @param {object} values.values.property - Property specifications to be written.
                                                   * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                                                   * @param {number} values.values.property.index - The array index of the property to be written.
                                                   * @param {object[]} values.values.value - A list of values to be written to the specified property.
                                                   * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                                                   * @param {object} values.values.value.value - The actual value to be written.
                                                   * @param {number} values.values.priority - The priority to be used for writing to the property.
                                                   * @param {object=} options
                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * const values = [
                                                   *   {objectId: {type: 8, instance: 44301}, values: [
                                                   *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                                                   *   ]}
                                                   * ];
                                                   * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                                                   *   console.log('value: ', value);
                                                   * });
                                                   */
                                                  writePropertyMultiple(receiver, values, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      //@ts-ignore
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      16,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId
                                                    );
                                                    write_property_multiple_exports222222222222.encodeObject(buffer, values);
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      next(err);
                                                    });
                                                  }
                                                  /**
                                                   * The confirmedCOVNotification command is used to push notifications to other
                                                   * systems that have registered with us via a subscribeCOV message.
                                                   * @function bacnet.confirmedCOVNotification
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                                                   * @param {number} monitoredObject.type - Object type.
                                                   * @param {number} monitoredObject.instance - Object instance.
                                                   * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                                                   * @param {number} initiatingDeviceId - Our BACnet device ID.
                                                   * @param {number} lifetime - Number of seconds left until the subscription expires.
                                                   * @param {array} values - values for the monitored object.  See example.
                                                   * @param {object=} options
                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * const settings = {deviceId: 123}; // our BACnet device
                                                   *
                                                   * // Items saved from subscribeCOV message
                                                   * const monitoredObject = {type: 1, instance: 1};
                                                   * const subscriberProcessId = 123;
                                                   *
                                                   * client.confirmedCOVNotification(
                                                   *   '192.168.1.43',
                                                   *   monitoredObject,
                                                   *   subscriberProcessId,
                                                   *   settings.deviceId,
                                                   *   30, // should be lifetime of subscription really
                                                   *   [
                                                   *     {
                                                   *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                                                   *       value: [
                                                   *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                                                   *       ],
                                                   *     },
                                                   *   ],
                                                   *   (err) => {
                                                   *     console.log('error: ', err);
                                                   *   }
                                                   * );
                                                   */
                                                  confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer();
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      1,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    cov_notify_exports222222222222.encode(
                                                      buffer,
                                                      subscribeId,
                                                      initiatingDeviceId,
                                                      monitoredObject,
                                                      lifetime,
                                                      values
                                                    );
                                                    encode32222222222222(
                                                      buffer.buffer,
                                                      10,
                                                      buffer.offset
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      next();
                                                    });
                                                  }
                                                  /**
                                                   * The deviceCommunicationControl command enables or disables network communication of the target device.
                                                   * @function bacnet.deviceCommunicationControl
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                                                   * @param {EnableDisable} enableDisable - The network communication state to set.
                                                   * @param {object=} options
                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                   * @param {string=} options.password - The optional password used to set the network communication state.
                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                                                   *   console.log('error: ', err);
                                                   * });
                                                   */
                                                  deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId(),
                                                      password: options.password
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      17,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    device_communication_control_exports222222222222.encode(
                                                      buffer,
                                                      timeDuration,
                                                      enableDisable,
                                                      settings.password
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      next(err);
                                                    });
                                                  }
                                                  /**
                                                   * The reinitializeDevice command initiates a restart of the target device.
                                                   * @function bacnet.reinitializeDevice
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {ReinitializedState} state - The type of restart to be initiated.
                                                   * @param {object=} options
                                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                                   * @param {string=} options.password - The optional password used to restart the device.
                                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                                                   *   console.log('value: ', value);
                                                   * });
                                                   */
                                                  reinitializeDevice(receiver, state, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId(),
                                                      password: options.password
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      20,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    reinitialize_device_exports222222222222.encode(buffer, state, settings.password);
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      next(err);
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param objectId
                                                   * @param position
                                                   * @param fileBuffer
                                                   * @param options
                                                   * @param next
                                                   */
                                                  writeFile(receiver, objectId, position, fileBuffer, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      7,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    atomic_write_file_exports222222222222.encode(
                                                      buffer,
                                                      false,
                                                      objectId,
                                                      position,
                                                      fileBuffer
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      const result = atomic_write_file_exports222222222222.decodeAcknowledge(
                                                        data.buffer,
                                                        data.offset,
                                                        data.length
                                                      );
                                                      if (!result) {
                                                        return void next(new Error("INVALID_DECODING"));
                                                      }
                                                      next(null, result);
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param objectId
                                                   * @param position
                                                   * @param count
                                                   * @param options
                                                   * @param next
                                                   */
                                                  readFile(receiver, objectId, position, count, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      6,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    atomic_read_file_exports222222222222.encode(buffer, true, objectId, position, count);
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      const result = atomic_read_file_exports222222222222.decodeAcknowledge(
                                                        data.buffer,
                                                        data.offset,
                                                        data.length
                                                      );
                                                      if (!result) {
                                                        return void next(new Error("INVALID_DECODING"));
                                                      }
                                                      next(null, result);
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param objectId
                                                   * @param idxBegin
                                                   * @param quantity
                                                   * @param options
                                                   * @param next
                                                   */
                                                  readRange(receiver, objectId, idxBegin, quantity, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      26,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    read_range_exports222222222222.encode(
                                                      buffer,
                                                      objectId,
                                                      131,
                                                      ASN1_ARRAY_ALL222222222222,
                                                      0,
                                                      idxBegin,
                                                      /* @__PURE__ */ new Date(),
                                                      quantity
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      const result = read_range_exports222222222222.decodeAcknowledge(
                                                        data.buffer,
                                                        data.offset,
                                                        data.length
                                                      );
                                                      if (!result) {
                                                        return void next(new Error("INVALID_DECODING"));
                                                      }
                                                      next(null, result);
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param objectId
                                                   * @param subscribeId
                                                   * @param cancel
                                                   * @param issueConfirmedNotifications
                                                   * @param lifetime
                                                   * @param options
                                                   * @param next
                                                   */
                                                  subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                                                    const next = nextFunc || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      // @ts-ignore TODO types not matching with documentation and code
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      5,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    subscribe_cov_exports222222222222.encode(
                                                      buffer,
                                                      subscribeId,
                                                      objectId,
                                                      cancel,
                                                      issueConfirmedNotifications,
                                                      lifetime
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      next();
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param objectId
                                                   * @param monitoredProperty
                                                   * @param subscribeId
                                                   * @param cancel
                                                   * @param issueConfirmedNotifications
                                                   * @param options
                                                   * @param next
                                                   */
                                                  subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      28,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    subscribe_property_exports222222222222.encode(
                                                      buffer,
                                                      subscribeId,
                                                      objectId,
                                                      cancel,
                                                      issueConfirmedNotifications,
                                                      0,
                                                      monitoredProperty,
                                                      false,
                                                      15
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      next();
                                                    });
                                                  }
                                                  /**
                                                   * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                                                   * @function bacnet.unconfirmedCOVNotification
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                                                   * @param {number} initiatingDeviceId - The id of this device.
                                                   * @param {object} monitoredObjectId - Specifies about which object the notification is.
                                                   * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                                                   * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                                                   * @param {number} timeRemaining - How long the subscription is still active in seconds.
                                                   * @param {object[]} values - List of properties with updated values.
                                                   * @param {object} values.property - Property specifications.
                                                   * @param {number} values.property.id - The updated BACNET property id.
                                                   * @param {number} values.property.index - The array index of the updated property.
                                                   * @param {object[]} values.value - A list of updated values.
                                                   * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                                                   * @param {object} values.value.value - The actual updated value.
                                                   * @param {number} values.priority - The priority of the updated property.
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * client.unconfirmedCOVNotification(
                                                   *            '127.0.0.1',
                                                   *            3,
                                                   *            433,
                                                   *            {type: 2, instance: 122},
                                                   *            120,
                                                   *            [
                                                   *              {
                                                   *                property: {id: 85},
                                                   *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                                                   *              },
                                                   *              {
                                                   *                property: {id: 111},
                                                   *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                                                   *              }
                                                   *            ]);
                                                   */
                                                  unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                                                    const buffer = this._getBuffer();
                                                    encode31222222222222(buffer, 0, receiver);
                                                    encodeUnconfirmedServiceRequest222222222222(
                                                      buffer,
                                                      16,
                                                      2
                                                      /* UNCONFIRMED_COV_NOTIFICATION */
                                                    );
                                                    cov_notify_exports222222222222.encode(
                                                      buffer,
                                                      subscriberProcessId,
                                                      initiatingDeviceId,
                                                      monitoredObjectId,
                                                      timeRemaining,
                                                      values
                                                    );
                                                    encode32222222222222(
                                                      buffer.buffer,
                                                      10,
                                                      buffer.offset
                                                    );
                                                    this._transport.send(buffer.buffer, buffer.offset, receiver);
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param objectId
                                                   * @param values
                                                   * @param options
                                                   * @param next
                                                   */
                                                  createObject(receiver, objectId, values, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      10,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    create_object_exports222222222222.encode(buffer, objectId, values);
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      next();
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param objectId
                                                   * @param options
                                                   * @param next
                                                   */
                                                  deleteObject(receiver, objectId, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      11,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    delete_object_exports222222222222.encode(buffer, objectId);
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      next();
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param objectId
                                                   * @param reference
                                                   * @param values
                                                   * @param options
                                                   * @param next
                                                   */
                                                  removeListElement(receiver, objectId, reference, values, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      9,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    add_list_element_exports222222222222.encode(
                                                      buffer,
                                                      objectId,
                                                      reference.id,
                                                      reference.index,
                                                      values
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      next();
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param objectId
                                                   * @param reference
                                                   * @param values
                                                   * @param options
                                                   * @param next
                                                   */
                                                  addListElement(receiver, objectId, reference, values, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      8,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    add_list_element_exports222222222222.encode(
                                                      buffer,
                                                      objectId,
                                                      reference.id,
                                                      reference.index,
                                                      values
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      next();
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param options
                                                   * @param next
                                                   */
                                                  getAlarmSummary(receiver, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      3,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      const result = alarm_summary_exports222222222222.decode(
                                                        data.buffer,
                                                        data.offset,
                                                        data.length
                                                      );
                                                      if (!result) {
                                                        return void next(new Error("INVALID_DECODING"));
                                                      }
                                                      next(null, result);
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param objectId
                                                   * @param options
                                                   * @param next
                                                   */
                                                  getEventInformation(receiver, objectId, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      29,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    encodeContextObjectId222222222222(buffer, 0, objectId.type, objectId.instance);
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      const result = event_information_exports222222222222.decode(
                                                        data.buffer,
                                                        data.offset,
                                                        data.length
                                                      );
                                                      if (!result) {
                                                        return void next(new Error("INVALID_DECODING"));
                                                      }
                                                      next(null, result);
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param objectId
                                                   * @param eventState
                                                   * @param ackText
                                                   * @param evTimeStamp
                                                   * @param ackTimeStamp
                                                   * @param options
                                                   * @param next
                                                   */
                                                  acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      0,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    alarm_acknowledge_exports222222222222.encode(
                                                      buffer,
                                                      57,
                                                      objectId,
                                                      eventState,
                                                      ackText,
                                                      evTimeStamp,
                                                      ackTimeStamp
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      next();
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param vendorId
                                                   * @param serviceNumber
                                                   * @param data
                                                   * @param options
                                                   * @param next
                                                   */
                                                  confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      18,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    private_transfer_exports222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data2) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      next();
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param vendorId
                                                   * @param serviceNumber
                                                   * @param data
                                                   */
                                                  unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(buffer, 0, receiver);
                                                    encodeUnconfirmedServiceRequest222222222222(
                                                      buffer,
                                                      16,
                                                      4
                                                      /* UNCONFIRMED_PRIVATE_TRANSFER */
                                                    );
                                                    private_transfer_exports222222222222.encode(buffer, vendorId, serviceNumber, data);
                                                    this.sendBvlc(receiver, buffer);
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param acknowledgmentFilter
                                                   * @param options
                                                   * @param next
                                                   */
                                                  getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      4,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    get_enrollment_summary_exports222222222222.encode(
                                                      buffer,
                                                      acknowledgmentFilter,
                                                      options.enrollmentFilter,
                                                      options.eventStateFilter,
                                                      options.eventTypeFilter,
                                                      options.priorityFilter,
                                                      options.notificationClassFilter
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      const result = get_enrollment_summary_exports222222222222.decodeAcknowledge(
                                                        data.buffer,
                                                        data.offset,
                                                        data.length
                                                      );
                                                      if (!result) {
                                                        return void next(new Error("INVALID_DECODING"));
                                                      }
                                                      next(null, result);
                                                    });
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param eventNotification
                                                   */
                                                  unconfirmedEventNotification(receiver, eventNotification) {
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(buffer, 0, receiver);
                                                    encodeUnconfirmedServiceRequest222222222222(
                                                      buffer,
                                                      16,
                                                      3
                                                      /* UNCONFIRMED_EVENT_NOTIFICATION */
                                                    );
                                                    event_notify_data_exports222222222222.encode(buffer, eventNotification);
                                                    this.sendBvlc(receiver, buffer);
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param eventNotification
                                                   * @param options
                                                   * @param next
                                                   */
                                                  confirmedEventNotification(receiver, eventNotification, options, next) {
                                                    next = next || options;
                                                    const settings = {
                                                      maxSegments: options.maxSegments || 112,
                                                      maxApdu: options.maxApdu || 5,
                                                      invokeId: options.invokeId || this._getInvokeId()
                                                    };
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(
                                                      buffer,
                                                      0 | 4,
                                                      receiver
                                                    );
                                                    encodeConfirmedServiceRequest222222222222(
                                                      buffer,
                                                      0,
                                                      2,
                                                      settings.maxSegments,
                                                      settings.maxApdu,
                                                      settings.invokeId,
                                                      0,
                                                      0
                                                    );
                                                    event_notify_data_exports222222222222.encode(buffer, eventNotification);
                                                    this.sendBvlc(receiver, buffer);
                                                    this._addCallback(settings.invokeId, (err, data) => {
                                                      if (err) {
                                                        return void next(err);
                                                      }
                                                      next();
                                                    });
                                                  }
                                                  /**
                                                   * The readPropertyResponse call sends a response with information about one of our properties.
                                                   * @function bacnet.readPropertyResponse
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {number} invokeId - ID of the original readProperty request.
                                                   * @param {object} objectId - objectId from the original request,
                                                   * @param {object} property - property being read, taken from the original request.
                                                   * @param {object=} options varying behaviour for special circumstances
                                                   * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                                                   */
                                                  readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(buffer, 0, receiver);
                                                    encodeComplexAck222222222222(
                                                      buffer,
                                                      48,
                                                      12,
                                                      invokeId
                                                    );
                                                    read_property_exports222222222222.encodeAcknowledge(
                                                      buffer,
                                                      objectId,
                                                      property.id,
                                                      property.index,
                                                      value
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                  }
                                                  readPropertyMultipleResponse(receiver, invokeId, values) {
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(buffer, 0, receiver);
                                                    encodeComplexAck222222222222(
                                                      buffer,
                                                      48,
                                                      14,
                                                      invokeId
                                                    );
                                                    read_property_multiple_exports222222222222.encodeAcknowledge(buffer, values);
                                                    this.sendBvlc(receiver, buffer);
                                                  }
                                                  /**
                                                   * The iAmResponse command is sent as a reply to a whoIs request.
                                                   * @function bacnet.iAmResponse
                                                   * @param {object} receiver - address to send packet to, null for local broadcast.
                                                   * @param {number} deviceId - Our device ID.
                                                   * @param {number} segmentation - an enum.Segmentation value.
                                                   * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                                                   */
                                                  iAmResponse(receiver, deviceId, segmentation, vendorId) {
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(buffer, 0, receiver);
                                                    encodeUnconfirmedServiceRequest222222222222(
                                                      buffer,
                                                      16,
                                                      0
                                                      /* I_AM */
                                                    );
                                                    i_am_exports222222222222.encode(
                                                      buffer,
                                                      deviceId,
                                                      this._transport.getMaxPayload(),
                                                      segmentation,
                                                      vendorId
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param deviceId
                                                   * @param objectId
                                                   * @param objectName
                                                   */
                                                  iHaveResponse(receiver, deviceId, objectId, objectName) {
                                                    const buffer = this._getBuffer(
                                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                    );
                                                    encode31222222222222(buffer, 0, receiver);
                                                    encodeUnconfirmedServiceRequest222222222222(
                                                      buffer,
                                                      16,
                                                      1
                                                      /* I_HAVE */
                                                    );
                                                    i_have_exports222222222222.encode(buffer, deviceId, objectId, objectName);
                                                    this.sendBvlc(receiver, buffer);
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param service
                                                   * @param invokeId
                                                   */
                                                  simpleAckResponse(receiver, service, invokeId) {
                                                    if (typeof receiver === "string")
                                                      return;
                                                    const buffer = this._getBuffer(!!receiver.forwardedFrom);
                                                    encode31222222222222(buffer, 0, receiver);
                                                    encodeSimpleAck222222222222(
                                                      buffer,
                                                      32,
                                                      service,
                                                      invokeId
                                                    );
                                                    this.sendBvlc(receiver, buffer);
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param service
                                                   * @param invokeId
                                                   * @param errorClass
                                                   * @param errorCode
                                                   */
                                                  errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                                                    trace2222222222222(
                                                      `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                                        service
                                                      )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                                                    );
                                                    trace2222222222222(
                                                      `error message ${error_exports222222222222.buildMessage({
                                                        class: errorClass,
                                                        code: errorCode
                                                      })}`
                                                    );
                                                    const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                                                    if (typeof receiver === "string")
                                                      throw new Error("receiver must be object");
                                                    const buffer = this._getBuffer(hasSource);
                                                    encode31222222222222(buffer, 0, receiver);
                                                    encodeError222222222222(buffer, 80, service, invokeId);
                                                    error_exports222222222222.encode(buffer, errorClass, errorCode);
                                                    this.sendBvlc(receiver, buffer);
                                                  }
                                                  /**
                                                   *
                                                   * @param receiver
                                                   * @param buffer
                                                   */
                                                  sendBvlc(receiver, buffer) {
                                                    if (typeof receiver === "string") {
                                                      receiver = {
                                                        address: receiver
                                                      };
                                                    }
                                                    if (receiver && receiver.forwardedFrom) {
                                                      encode32222222222222(
                                                        buffer.buffer,
                                                        4,
                                                        buffer.offset,
                                                        receiver.forwardedFrom
                                                      );
                                                    } else if (receiver && receiver.address) {
                                                      encode32222222222222(
                                                        buffer.buffer,
                                                        10,
                                                        buffer.offset
                                                      );
                                                    } else {
                                                      encode32222222222222(
                                                        buffer.buffer,
                                                        11,
                                                        buffer.offset
                                                      );
                                                    }
                                                    this._transport.send(
                                                      buffer.buffer,
                                                      buffer.offset,
                                                      receiver && receiver.address || null
                                                    );
                                                  }
                                                  /**
                                                   * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                                                   * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                                                   * @function bacnet.resultResponse
                                                   * @param {string} receiver - IP address of the target device.
                                                   * @param {number} resultCode - Single value from BvlcResultFormat enum.
                                                   */
                                                  resultResponse(receiver, resultCode) {
                                                    const buffer = this._getBuffer();
                                                    encodeResult222222222222(buffer, resultCode);
                                                    encode32222222222222(
                                                      buffer.buffer,
                                                      0,
                                                      buffer.offset
                                                    );
                                                    this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                                                  }
                                                  /**
                                                   * Unloads the current bacnet instance and closes the underlying UDP socket.
                                                   * @function bacnet.close
                                                   * @example
                                                   * const bacnet = require('node-bacnet');
                                                   * const client = new bacnet();
                                                   *
                                                   * client.close();
                                                   */
                                                  close() {
                                                    this._transport.close();
                                                  }
                                                  /**
                                                   * Helper function to take an array of enums and produce a bitstring suitable
                                                   * for inclusion as a property.
                                                   *
                                                   * @example
                                                   * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                                                   *   {value: bacnet.createBitstring([
                                                   *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                                                   *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                                                   *   ]),
                                                   *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                                                   * ],
                                                   */
                                                  static createBitstring(items) {
                                                    let offset = 0;
                                                    let bytes = [];
                                                    let bitsUsed = 0;
                                                    while (items.length) {
                                                      let value = 0;
                                                      items = items.filter((i) => {
                                                        if (i >= offset + 8) {
                                                          return true;
                                                        }
                                                        value |= 1 << i - offset;
                                                        bitsUsed = Math.max(bitsUsed, i);
                                                        return false;
                                                      });
                                                      bytes.push(value);
                                                      offset += 8;
                                                    }
                                                    bitsUsed++;
                                                    return {
                                                      value: bytes,
                                                      bitsUsed
                                                    };
                                                  }
                                                };
                                                var import_underscore222222222222 = __toESM222222222222(require("underscore"));
                                                var import_process222222222222 = __toESM222222222222(require("process"));
                                                var import__222222222222 = __toESM222222222222(require_dist222222222222());
                                                var PropertyIdentifierToEnumMap222222222222 = {};
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.OBJECT_TYPE] = import__222222222222.enums.ObjectType;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__222222222222.enums.Segmentation;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.EVENT_STATE] = import__222222222222.enums.EventState;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.UNITS] = import__222222222222.enums.EngineeringUnits;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.RELIABILITY] = import__222222222222.enums.Reliability;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__222222222222.enums.NotifyType;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.POLARITY] = import__222222222222.enums.Polarity;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__222222222222.enums.ServicesSupported;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__222222222222.enums.ObjectTypesSupported;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.STATUS_FLAGS] = import__222222222222.enums.StatusFlags;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__222222222222.enums.LimitEnable;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.EVENT_ENABLE] = import__222222222222.enums.EventTransitionBits;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__222222222222.enums.EventTransitionBits;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__222222222222.enums.DeviceStatus;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__222222222222.enums.DeviceStatus;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.ACK_REQUIRED] = import__222222222222.enums.EventTransitionBits;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.LOGGING_TYPE] = import__222222222222.enums.LoggingType;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__222222222222.enums.FileAccessMethod;
                                                PropertyIdentifierToEnumMap222222222222[import__222222222222.enums.PropertyIdentifier.NODE_TYPE] = import__222222222222.enums.NodeType;
                                                var ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222 = {};
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BINARY_INPUT] = {};
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BINARY_INPUT][import__222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222.enums.BinaryPV;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BINARY_INPUT][import__222222222222.enums.PropertyIdentifier.MODE] = import__222222222222.enums.BinaryPV;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.ANALOG_INPUT] = {};
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.ANALOG_INPUT][import__222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222.enums.BinaryPV;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.ANALOG_OUTPUT] = {};
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.ANALOG_OUTPUT][import__222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222.enums.BinaryPV;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BINARY_OUTPUT] = {};
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BINARY_OUTPUT][import__222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222.enums.BinaryPV;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BINARY_OUTPUT][import__222222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__222222222222.enums.BinaryPV;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BINARY_VALUE] = {};
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BINARY_VALUE][import__222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222.enums.BinaryPV;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BINARY_VALUE][import__222222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__222222222222.enums.BinaryPV;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222.enums.BinaryLightingPV;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BITSTRING_VALUE] = {};
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.BINARY_VALUE][import__222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222.enums.BinaryPV;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222.enums.LifeSafetyState;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222222.enums.PropertyIdentifier.TRACKING_VALUE] = import__222222222222.enums.LifeSafetyState;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222222.enums.PropertyIdentifier.MODE] = import__222222222222.enums.LifeSafetyMode;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__222222222222.enums.LifeSafetyMode;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222222.enums.PropertyIdentifier.SILENCED] = import__222222222222.enums.LifeSafetyState;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__222222222222.enums.LifeSafetyOperation;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222.enums.LifeSafetyState;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__222222222222.enums.PropertyIdentifier.MODE] = import__222222222222.enums.LifeSafetyMode;
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.LOAD_CONTROL] = {};
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[import__222222222222.enums.ObjectType.LOAD_CONTROL][import__222222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222222.enums.ShedState;
                                                var propSubSet222222222222 = import_process222222222222.default.argv.includes("--all") ? Object.values(import__222222222222.enums.PropertyIdentifier) : [
                                                  /* normally supported from all devices */
                                                  import__222222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                                                  import__222222222222.enums.PropertyIdentifier.OBJECT_NAME,
                                                  import__222222222222.enums.PropertyIdentifier.OBJECT_TYPE,
                                                  import__222222222222.enums.PropertyIdentifier.PRESENT_VALUE,
                                                  import__222222222222.enums.PropertyIdentifier.STATUS_FLAGS,
                                                  import__222222222222.enums.PropertyIdentifier.EVENT_STATE,
                                                  import__222222222222.enums.PropertyIdentifier.RELIABILITY,
                                                  import__222222222222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                                                  import__222222222222.enums.PropertyIdentifier.UNITS,
                                                  /* other properties */
                                                  import__222222222222.enums.PropertyIdentifier.DESCRIPTION,
                                                  import__222222222222.enums.PropertyIdentifier.SYSTEM_STATUS,
                                                  import__222222222222.enums.PropertyIdentifier.VENDOR_NAME,
                                                  import__222222222222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                                                  import__222222222222.enums.PropertyIdentifier.MODEL_NAME,
                                                  import__222222222222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                                                  import__222222222222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                                                  import__222222222222.enums.PropertyIdentifier.LOCATION,
                                                  import__222222222222.enums.PropertyIdentifier.LOCAL_DATE,
                                                  import__222222222222.enums.PropertyIdentifier.LOCAL_TIME,
                                                  import__222222222222.enums.PropertyIdentifier.UTC_OFFSET,
                                                  import__222222222222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                                                  import__222222222222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                                                  import__222222222222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                                                  import__222222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                                                  import__222222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                                                  import__222222222222.enums.PropertyIdentifier.OBJECT_LIST,
                                                  import__222222222222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                                                  import__222222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                                                  import__222222222222.enums.PropertyIdentifier.APDU_TIMEOUT,
                                                  import__222222222222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                                                  import__222222222222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                                                  import__222222222222.enums.PropertyIdentifier.DATABASE_REVISION,
                                                  import__222222222222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                                                  import__222222222222.enums.PropertyIdentifier.MAX_MASTER,
                                                  import__222222222222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                                                  import__222222222222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                                                ];
                                                var debug4222222222222 = import_process222222222222.default.argv.includes("--debug");
                                                function getAllPropertiesManually222222222222(address, objectId, callback, propList, result) {
                                                  if (!propList) {
                                                    propList = propSubSet222222222222.map((x) => x);
                                                  }
                                                  if (!result) {
                                                    result = [];
                                                  }
                                                  if (!propList.length) {
                                                    return callback({
                                                      values: [
                                                        {
                                                          objectId,
                                                          values: result
                                                        }
                                                      ]
                                                    });
                                                  }
                                                  const prop = propList.shift();
                                                  bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                                                    if (!err) {
                                                      if (debug4222222222222) {
                                                        console.log("Handle value " + prop + ": ", JSON.stringify(value));
                                                      }
                                                      const objRes = value.property;
                                                      objRes.value = value.values;
                                                      result.push(objRes);
                                                    } else {
                                                    }
                                                    getAllPropertiesManually222222222222(address, objectId, callback, propList, result);
                                                  });
                                                }
                                                function readBit222222222222(buffer, i, bit) {
                                                  return (buffer[i] >> bit) % 2;
                                                }
                                                function handleBitString222222222222(buffer, bitsUsed, usedEnum) {
                                                  const res = [];
                                                  for (let i = 0; i < bitsUsed; i++) {
                                                    const bufferIndex = Math.floor(i / 8);
                                                    if (readBit222222222222(buffer, bufferIndex, i % 8)) {
                                                      res.push(import__222222222222.enums.getEnumName(usedEnum, i));
                                                    }
                                                  }
                                                  return res;
                                                }
                                                function parseValue222222222222(address, objId2, parentType, value, supportsMultiple, callback) {
                                                  let resValue = null;
                                                  if (value && value.type && value.value !== null && value.value !== void 0) {
                                                    switch (value.type) {
                                                      case import__222222222222.enums.ApplicationTag.NULL:
                                                        resValue = null;
                                                        break;
                                                      case import__222222222222.enums.ApplicationTag.BOOLEAN:
                                                        resValue = !!value.value;
                                                        break;
                                                      case import__222222222222.enums.ApplicationTag.UNSIGNED_INTEGER:
                                                      case import__222222222222.enums.ApplicationTag.SIGNED_INTEGER:
                                                      case import__222222222222.enums.ApplicationTag.REAL:
                                                      case import__222222222222.enums.ApplicationTag.DOUBLE:
                                                      case import__222222222222.enums.ApplicationTag.CHARACTER_STRING:
                                                        resValue = value.value;
                                                        break;
                                                      case import__222222222222.enums.ApplicationTag.DATE:
                                                      case import__222222222222.enums.ApplicationTag.TIME:
                                                      case import__222222222222.enums.ApplicationTag.TIMESTAMP:
                                                        resValue = value.value;
                                                        break;
                                                      case import__222222222222.enums.ApplicationTag.BIT_STRING:
                                                        if (ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[parentType][objId2]) {
                                                          resValue = handleBitString222222222222(
                                                            value.value.value,
                                                            value.value.bitsUsed,
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[parentType][objId2]
                                                          );
                                                        } else if (PropertyIdentifierToEnumMap222222222222[objId2]) {
                                                          resValue = handleBitString222222222222(
                                                            value.value.value,
                                                            value.value.bitsUsed,
                                                            PropertyIdentifierToEnumMap222222222222[objId2]
                                                          );
                                                        } else {
                                                          if (parentType !== import__222222222222.enums.ObjectType.BITSTRING_VALUE) {
                                                            console.log(
                                                              "Unknown value for BIT_STRING type for objId " + import__222222222222.enums.getEnumName(import__222222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__222222222222.enums.getEnumName(import__222222222222.enums.ObjectType, parentType)
                                                            );
                                                          }
                                                          resValue = value.value;
                                                        }
                                                        break;
                                                      case import__222222222222.enums.ApplicationTag.ENUMERATED:
                                                        if (ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[parentType][objId2]) {
                                                          resValue = import__222222222222.enums.getEnumName(
                                                            ObjectTypeSpecificPropertyIdentifierToEnumMap222222222222[parentType][objId2],
                                                            value.value
                                                          );
                                                        } else if (PropertyIdentifierToEnumMap222222222222[objId2]) {
                                                          resValue = import__222222222222.enums.getEnumName(
                                                            PropertyIdentifierToEnumMap222222222222[objId2],
                                                            value.value
                                                          );
                                                        } else {
                                                          console.log(
                                                            "Unknown value for ENUMERATED type for objId " + import__222222222222.enums.getEnumName(import__222222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__222222222222.enums.getEnumName(import__222222222222.enums.ObjectType, parentType)
                                                          );
                                                          resValue = value.value;
                                                        }
                                                        break;
                                                      case import__222222222222.enums.ApplicationTag.OBJECTIDENTIFIER:
                                                        if (objId2 === import__222222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__222222222222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__222222222222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                                                          resValue = value.value;
                                                        } else if (supportsMultiple) {
                                                          const requestArray = [
                                                            {
                                                              objectId: value.value,
                                                              properties: [{ id: 8 }]
                                                            }
                                                          ];
                                                          bacnetClient.readPropertyMultiple(
                                                            address,
                                                            requestArray,
                                                            (err, resValue2) => {
                                                              parseDeviceObject222222222222(address, resValue2, value.value, true, callback);
                                                            }
                                                          );
                                                          return;
                                                        } else {
                                                          getAllPropertiesManually222222222222(address, value.value, (result) => {
                                                            parseDeviceObject222222222222(address, result, value.value, false, callback);
                                                          });
                                                          return;
                                                        }
                                                        break;
                                                      case import__222222222222.enums.ApplicationTag.OCTET_STRING:
                                                        resValue = value.value;
                                                        break;
                                                      case import__222222222222.enums.ApplicationTag.ERROR:
                                                        resValue = {
                                                          errorClass: import__222222222222.enums.getEnumName(
                                                            import__222222222222.enums.ErrorClass,
                                                            value.value.errorClass
                                                          ),
                                                          errorCode: import__222222222222.enums.getEnumName(import__222222222222.enums.ErrorCode, value.value.errorCode)
                                                        };
                                                        break;
                                                      case import__222222222222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                                                      case import__222222222222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                                                      case import__222222222222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                                                      case import__222222222222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                        resValue = value.value;
                                                        break;
                                                      case import__222222222222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                                        parseValue222222222222(
                                                          address,
                                                          objId2,
                                                          parentType,
                                                          value.value,
                                                          supportsMultiple,
                                                          callback
                                                        );
                                                        return;
                                                      case import__222222222222.enums.ApplicationTag.READ_ACCESS_RESULT:
                                                        resValue = value.value;
                                                        break;
                                                      default:
                                                        console.log(
                                                          "unknown type " + value.type + ": " + JSON.stringify(value)
                                                        );
                                                        resValue = value;
                                                    }
                                                  }
                                                  setImmediate(() => callback(resValue));
                                                }
                                                function parseDeviceObject222222222222(address, obj, parent, supportsMultiple, callback) {
                                                  if (debug4222222222222) {
                                                    console.log(
                                                      "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                                                    );
                                                  }
                                                  if (!obj) {
                                                    console.log("object not valid on parse device object");
                                                    return;
                                                  }
                                                  if (!obj.values || !Array.isArray(obj.values)) {
                                                    console.log("No device or invalid response");
                                                    callback({ ERROR: "No device or invalid response" });
                                                    return;
                                                  }
                                                  let cbCount = 0;
                                                  let objDef = {};
                                                  const finalize = () => {
                                                    Object.keys(objDef).forEach((devId) => {
                                                      Object.keys(objDef[devId]).forEach((objId2) => {
                                                        if (objDef[devId][objId2].length === 1) {
                                                          objDef[devId][objId2] = objDef[devId][objId2][0];
                                                        }
                                                      });
                                                    });
                                                    if (obj.values.length === 1) {
                                                      objDef = objDef[obj.values[0].objectId.instance];
                                                    }
                                                    if (debug4222222222222) {
                                                      console.log(
                                                        "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                                                      );
                                                    }
                                                    callback(objDef);
                                                  };
                                                  obj.values.forEach((devBaseObj) => {
                                                    if (!devBaseObj.objectId) {
                                                      console.log("No device Id found in object data");
                                                      return;
                                                    }
                                                    if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                                                      console.log("No device type or instance found in object data");
                                                      return;
                                                    }
                                                    if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                                                      console.log("No device values response");
                                                      return;
                                                    }
                                                    const deviceId = devBaseObj.objectId.instance;
                                                    objDef[deviceId] = {};
                                                    devBaseObj.values.forEach((devObj) => {
                                                      let objId2 = import__222222222222.enums.getEnumName(import__222222222222.enums.PropertyIdentifier, devObj.id);
                                                      if (devObj.index !== 4294967295) {
                                                        objId2 += "-" + devObj.index;
                                                      }
                                                      if (debug4222222222222) {
                                                        console.log("Handle Object property:", deviceId, objId2, devObj.value);
                                                      }
                                                      devObj.value.forEach((val) => {
                                                        if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                                          objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                          objDef[deviceId][objId2].push(val.value);
                                                          return;
                                                        }
                                                        cbCount++;
                                                        parseValue222222222222(
                                                          address,
                                                          devObj.id,
                                                          parent.type,
                                                          val,
                                                          supportsMultiple,
                                                          (parsedValue) => {
                                                            if (debug4222222222222) {
                                                              console.log(
                                                                "RETURN parsedValue",
                                                                deviceId,
                                                                objId2,
                                                                devObj.value,
                                                                parsedValue
                                                              );
                                                            }
                                                            objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                            objDef[deviceId][objId2].push(parsedValue);
                                                            if (!--cbCount) {
                                                              finalize();
                                                            }
                                                          }
                                                        );
                                                      });
                                                    });
                                                  });
                                                  if (cbCount === 0) {
                                                    finalize();
                                                  }
                                                }
                                                var limitToDevice222222222222 = null;
                                                if (import_process222222222222.default.argv.length === 3) {
                                                  limitToDevice222222222222 = parseInt(import_process222222222222.default.argv[2]);
                                                  if (isNaN(limitToDevice222222222222)) {
                                                    limitToDevice222222222222 = null;
                                                  }
                                                }
                                                var node_bacnet_default222222222222 = Client222222222222;
                                              }
                                            });
                                            var node_bacnet_exports22222222222 = {};
                                            __export22222222222(node_bacnet_exports22222222222, {
                                              _: () => import_underscore22222222222.default,
                                              bacnetErrorToString: () => bacnetErrorToString22222222222,
                                              default: () => node_bacnet_default22222222222,
                                              enums: () => enum_exports22222222222,
                                              parseValue: () => parseValue22222222222
                                            });
                                            module22222222222.exports = __toCommonJS22222222222(node_bacnet_exports22222222222);
                                            var enum_exports22222222222 = {};
                                            __export22222222222(enum_exports22222222222, {
                                              ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL22222222222,
                                              ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS22222222222,
                                              ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG22222222222,
                                              ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES22222222222,
                                              ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE22222222222,
                                              ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT22222222222,
                                              ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE22222222222,
                                              ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY22222222222,
                                              ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID22222222222,
                                              ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY22222222222,
                                              ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY22222222222,
                                              AbortReason: () => AbortReason22222222222,
                                              AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable22222222222,
                                              AccessCredentialDisable: () => AccessCredentialDisable22222222222,
                                              AccessCredentialDisableReason: () => AccessCredentialDisableReason22222222222,
                                              AccessEvent: () => AccessEvent22222222222,
                                              AccessPassbackMode: () => AccessPassbackMode22222222222,
                                              AccessUserType: () => AccessUserType22222222222,
                                              AccessZoneOccupancyState: () => AccessZoneOccupancyState22222222222,
                                              Action: () => Action22222222222,
                                              ApplicationTag: () => ApplicationTag22222222222,
                                              ApplicationTagName: () => ApplicationTagName22222222222,
                                              AuthenticationFactorType: () => AuthenticationFactorType22222222222,
                                              AuthenticationStatus: () => AuthenticationStatus22222222222,
                                              AuthorizationExemption: () => AuthorizationExemption22222222222,
                                              AuthorizationMode: () => AuthorizationMode22222222222,
                                              BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH32222222222,
                                              BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP22222222222,
                                              BackupState: () => BackupState22222222222,
                                              BinaryLightingPV: () => BinaryLightingPV22222222222,
                                              BinaryPV: () => BinaryPV22222222222,
                                              BvlcResultFormat: () => BvlcResultFormat22222222222,
                                              BvlcResultPurpose: () => BvlcResultPurpose22222222222,
                                              CharacterStringEncoding: () => CharacterStringEncoding22222222222,
                                              ConfirmedServiceChoice: () => ConfirmedServiceChoice22222222222,
                                              CovType: () => CovType22222222222,
                                              DaysOfWeek: () => DaysOfWeek22222222222,
                                              DeviceStatus: () => DeviceStatus22222222222,
                                              DoorAlarmState: () => DoorAlarmState22222222222,
                                              DoorSecuredStatus: () => DoorSecuredStatus22222222222,
                                              DoorStatus: () => DoorStatus22222222222,
                                              DoorValue: () => DoorValue22222222222,
                                              EnableDisable: () => EnableDisable22222222222,
                                              EngineeringUnits: () => EngineeringUnits22222222222,
                                              ErrorClass: () => ErrorClass22222222222,
                                              ErrorClassName: () => ErrorClassName22222222222,
                                              ErrorCode: () => ErrorCode22222222222,
                                              ErrorCodeName: () => ErrorCodeName22222222222,
                                              EscalatorFault: () => EscalatorFault22222222222,
                                              EscalatorMode: () => EscalatorMode22222222222,
                                              EscalatorOperationDirection: () => EscalatorOperationDirection22222222222,
                                              EventState: () => EventState22222222222,
                                              EventTransitionBits: () => EventTransitionBits22222222222,
                                              EventType: () => EventType22222222222,
                                              FaultType: () => FaultType22222222222,
                                              FileAccessMethod: () => FileAccessMethod22222222222,
                                              IPMode: () => IPMode22222222222,
                                              LifeSafetyMode: () => LifeSafetyMode22222222222,
                                              LifeSafetyOperation: () => LifeSafetyOperation22222222222,
                                              LifeSafetyState: () => LifeSafetyState22222222222,
                                              LiftCarDirection: () => LiftCarDirection22222222222,
                                              LiftCarDoorCommand: () => LiftCarDoorCommand22222222222,
                                              LiftCarDriveStatus: () => LiftCarDriveStatus22222222222,
                                              LiftCarMode: () => LiftCarMode22222222222,
                                              LiftFault: () => LiftFault22222222222,
                                              LiftGroupMode: () => LiftGroupMode22222222222,
                                              LightingInProgress: () => LightingInProgress22222222222,
                                              LightingOperation: () => LightingOperation22222222222,
                                              LightingTransition: () => LightingTransition22222222222,
                                              LimitEnable: () => LimitEnable22222222222,
                                              LockStatus: () => LockStatus22222222222,
                                              LogStatus: () => LogStatus22222222222,
                                              LoggingType: () => LoggingType22222222222,
                                              Maintenance: () => Maintenance22222222222,
                                              MaxApduLengthAccepted: () => MaxApduLengthAccepted22222222222,
                                              MaxSegmentsAccepted: () => MaxSegmentsAccepted22222222222,
                                              NetworkLayerMessageType: () => NetworkLayerMessageType22222222222,
                                              NetworkNumberQuality: () => NetworkNumberQuality22222222222,
                                              NetworkPortCommand: () => NetworkPortCommand22222222222,
                                              NetworkType: () => NetworkType22222222222,
                                              NodeType: () => NodeType22222222222,
                                              NotifyType: () => NotifyType22222222222,
                                              NpduControlBit: () => NpduControlBit22222222222,
                                              NpduControlPriority: () => NpduControlPriority22222222222,
                                              ObjectType: () => ObjectType22222222222,
                                              ObjectTypesSupported: () => ObjectTypesSupported22222222222,
                                              PDU_TYPE_MASK: () => PDU_TYPE_MASK22222222222,
                                              PduConReqBit: () => PduConReqBit22222222222,
                                              PduSegAckBit: () => PduSegAckBit22222222222,
                                              PduType: () => PduType22222222222,
                                              Polarity: () => Polarity22222222222,
                                              ProgramError: () => ProgramError22222222222,
                                              ProgramRequest: () => ProgramRequest22222222222,
                                              ProgramState: () => ProgramState22222222222,
                                              PropertyIdentifier: () => PropertyIdentifier22222222222,
                                              PropertyStates: () => PropertyStates22222222222,
                                              ProtocolLevel: () => ProtocolLevel22222222222,
                                              ReadRangeType: () => ReadRangeType22222222222,
                                              ReinitializedState: () => ReinitializedState22222222222,
                                              RejectReason: () => RejectReason22222222222,
                                              Relationship: () => Relationship22222222222,
                                              Reliability: () => Reliability22222222222,
                                              RestartReason: () => RestartReason22222222222,
                                              ResultFlags: () => ResultFlags22222222222,
                                              SecurityLevel: () => SecurityLevel22222222222,
                                              SecurityPolicy: () => SecurityPolicy22222222222,
                                              Segmentation: () => Segmentation22222222222,
                                              ServicesSupported: () => ServicesSupported22222222222,
                                              ShedState: () => ShedState22222222222,
                                              SilencedState: () => SilencedState22222222222,
                                              StatusFlags: () => StatusFlags22222222222,
                                              TimeStamp: () => TimeStamp22222222222,
                                              TimerState: () => TimerState22222222222,
                                              TimerTransition: () => TimerTransition22222222222,
                                              UnconfirmedServiceChoice: () => UnconfirmedServiceChoice22222222222,
                                              VTClass: () => VTClass22222222222,
                                              WriteStatus: () => WriteStatus22222222222,
                                              getEnumName: () => getEnumName22222222222
                                            });
                                            var import_debug42222222222 = __toESM22222222222(require("debug"));
                                            var debug52222222222 = (0, import_debug42222222222.default)("bacnet=enum=debug");
                                            var trace32222222222 = (0, import_debug42222222222.default)("bacnet=enum=trace");
                                            function invertEnum22222222222(enumToInvert) {
                                              const invertedEnum = {};
                                              Object.keys(enumToInvert).forEach((key) => {
                                                invertedEnum[enumToInvert[key]] = key;
                                              });
                                              return invertedEnum;
                                            }
                                            function getEnumName22222222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                                              if (!Number.isInteger(value)) {
                                                throw new Error(
                                                  'getEnumName() can only be passed an integer value, was given "' + value + '"'
                                                );
                                              }
                                              let foundEntry;
                                              try {
                                                const invertedGroup = invertEnum22222222222(group);
                                                foundEntry = invertedGroup[value];
                                                if (foundEntry === void 0 && undefinedFallbackValue) {
                                                  foundEntry = undefinedFallbackValue;
                                                }
                                                if (foundEntry === void 0) {
                                                  foundEntry = value.toString();
                                                } else if (addNumberValue) {
                                                  foundEntry += "(" + value + ")";
                                                }
                                              } catch (e) {
                                                trace32222222222(e.message);
                                                foundEntry = null;
                                              }
                                              return foundEntry;
                                            }
                                            var PDU_TYPE_MASK22222222222 = 240;
                                            var ASN1_MAX_OBJECT22222222222 = 1023;
                                            var ASN1_INSTANCE_BITS22222222222 = 22;
                                            var ASN1_MAX_INSTANCE22222222222 = 4194303;
                                            var ASN1_MAX_BITSTRING_BYTES22222222222 = 15;
                                            var ASN1_ARRAY_ALL22222222222 = 4294967295;
                                            var ASN1_NO_PRIORITY22222222222 = 0;
                                            var ASN1_MIN_PRIORITY22222222222 = 1;
                                            var ASN1_MAX_PRIORITY22222222222 = 16;
                                            var ASN1_MAX_APPLICATION_TAG22222222222 = 16;
                                            var ASN1_MAX_OBJECT_TYPE22222222222 = 1024;
                                            var ASN1_MAX_PROPERTY_ID22222222222 = 4194303;
                                            var BVLL_TYPE_BACNET_IP22222222222 = 129;
                                            var BVLC_HEADER_LENGTH32222222222 = 4;
                                            var ConfirmedServiceChoice22222222222 = /* @__PURE__ */ ((ConfirmedServiceChoice222222222222) => {
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["VT_DATA"] = 23] = "VT_DATA";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["READ_RANGE"] = 26] = "READ_RANGE";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                              ConfirmedServiceChoice222222222222[ConfirmedServiceChoice222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                              return ConfirmedServiceChoice222222222222;
                                            })(ConfirmedServiceChoice22222222222 || {});
                                            var UnconfirmedServiceChoice22222222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice222222222222) => {
                                              UnconfirmedServiceChoice222222222222[UnconfirmedServiceChoice222222222222["I_AM"] = 0] = "I_AM";
                                              UnconfirmedServiceChoice222222222222[UnconfirmedServiceChoice222222222222["I_HAVE"] = 1] = "I_HAVE";
                                              UnconfirmedServiceChoice222222222222[UnconfirmedServiceChoice222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                                              UnconfirmedServiceChoice222222222222[UnconfirmedServiceChoice222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                              UnconfirmedServiceChoice222222222222[UnconfirmedServiceChoice222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                              UnconfirmedServiceChoice222222222222[UnconfirmedServiceChoice222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                                              UnconfirmedServiceChoice222222222222[UnconfirmedServiceChoice222222222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                                              UnconfirmedServiceChoice222222222222[UnconfirmedServiceChoice222222222222["WHO_HAS"] = 7] = "WHO_HAS";
                                              UnconfirmedServiceChoice222222222222[UnconfirmedServiceChoice222222222222["WHO_IS"] = 8] = "WHO_IS";
                                              UnconfirmedServiceChoice222222222222[UnconfirmedServiceChoice222222222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                                              UnconfirmedServiceChoice222222222222[UnconfirmedServiceChoice222222222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                                              UnconfirmedServiceChoice222222222222[UnconfirmedServiceChoice222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                              return UnconfirmedServiceChoice222222222222;
                                            })(UnconfirmedServiceChoice22222222222 || {});
                                            var AbortReason22222222222 = /* @__PURE__ */ ((AbortReason222222222222) => {
                                              AbortReason222222222222[AbortReason222222222222["OTHER"] = 0] = "OTHER";
                                              AbortReason222222222222[AbortReason222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                              AbortReason222222222222[AbortReason222222222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                                              AbortReason222222222222[AbortReason222222222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                              AbortReason222222222222[AbortReason222222222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                                              AbortReason222222222222[AbortReason222222222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                                              AbortReason222222222222[AbortReason222222222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                                              AbortReason222222222222[AbortReason222222222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                                              AbortReason222222222222[AbortReason222222222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                                              AbortReason222222222222[AbortReason222222222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                                              AbortReason222222222222[AbortReason222222222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                                              AbortReason222222222222[AbortReason222222222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                                              return AbortReason222222222222;
                                            })(AbortReason22222222222 || {});
                                            var RejectReason22222222222 = /* @__PURE__ */ ((RejectReason222222222222) => {
                                              RejectReason222222222222[RejectReason222222222222["OTHER"] = 0] = "OTHER";
                                              RejectReason222222222222[RejectReason222222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                              RejectReason222222222222[RejectReason222222222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                                              RejectReason222222222222[RejectReason222222222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                                              RejectReason222222222222[RejectReason222222222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                                              RejectReason222222222222[RejectReason222222222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                                              RejectReason222222222222[RejectReason222222222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                                              RejectReason222222222222[RejectReason222222222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                                              RejectReason222222222222[RejectReason222222222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                                              RejectReason222222222222[RejectReason222222222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                                              return RejectReason222222222222;
                                            })(RejectReason22222222222 || {});
                                            var ErrorClass22222222222 = /* @__PURE__ */ ((ErrorClass222222222222) => {
                                              ErrorClass222222222222[ErrorClass222222222222["DEVICE"] = 0] = "DEVICE";
                                              ErrorClass222222222222[ErrorClass222222222222["OBJECT"] = 1] = "OBJECT";
                                              ErrorClass222222222222[ErrorClass222222222222["PROPERTY"] = 2] = "PROPERTY";
                                              ErrorClass222222222222[ErrorClass222222222222["RESOURCES"] = 3] = "RESOURCES";
                                              ErrorClass222222222222[ErrorClass222222222222["SECURITY"] = 4] = "SECURITY";
                                              ErrorClass222222222222[ErrorClass222222222222["SERVICES"] = 5] = "SERVICES";
                                              ErrorClass222222222222[ErrorClass222222222222["VT"] = 6] = "VT";
                                              ErrorClass222222222222[ErrorClass222222222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                                              return ErrorClass222222222222;
                                            })(ErrorClass22222222222 || {});
                                            var ErrorClassName22222222222 = invertEnum22222222222(
                                              ErrorClass22222222222
                                            );
                                            var ErrorCode22222222222 = /* @__PURE__ */ ((ErrorCode222222222222) => {
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                                              ErrorCode222222222222[ErrorCode222222222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                                              ErrorCode222222222222[ErrorCode222222222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                                              ErrorCode222222222222[ErrorCode222222222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                                              ErrorCode222222222222[ErrorCode222222222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                                              ErrorCode222222222222[ErrorCode222222222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                                              ErrorCode222222222222[ErrorCode222222222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                                              ErrorCode222222222222[ErrorCode222222222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                                              ErrorCode222222222222[ErrorCode222222222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                                              ErrorCode222222222222[ErrorCode222222222222["BUSY"] = 82] = "BUSY";
                                              ErrorCode222222222222[ErrorCode222222222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                                              ErrorCode222222222222[ErrorCode222222222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                                              ErrorCode222222222222[ErrorCode222222222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                                              ErrorCode222222222222[ErrorCode222222222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                                              ErrorCode222222222222[ErrorCode222222222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                                              ErrorCode222222222222[ErrorCode222222222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                                              ErrorCode222222222222[ErrorCode222222222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                                              ErrorCode222222222222[ErrorCode222222222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                                              ErrorCode222222222222[ErrorCode222222222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                                              ErrorCode222222222222[ErrorCode222222222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                                              ErrorCode222222222222[ErrorCode222222222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                                              ErrorCode222222222222[ErrorCode222222222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                                              ErrorCode222222222222[ErrorCode222222222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                                              ErrorCode222222222222[ErrorCode222222222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                                              ErrorCode222222222222[ErrorCode222222222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                                              ErrorCode222222222222[ErrorCode222222222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                                              ErrorCode222222222222[ErrorCode222222222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                                              ErrorCode222222222222[ErrorCode222222222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                                              ErrorCode222222222222[ErrorCode222222222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                                              ErrorCode222222222222[ErrorCode222222222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                                              ErrorCode222222222222[ErrorCode222222222222["FILE_FULL"] = 128] = "FILE_FULL";
                                              ErrorCode222222222222[ErrorCode222222222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                                              ErrorCode222222222222[ErrorCode222222222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                                              ErrorCode222222222222[ErrorCode222222222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                                              ErrorCode222222222222[ErrorCode222222222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                                              ErrorCode222222222222[ErrorCode222222222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                                              ErrorCode222222222222[ErrorCode222222222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                                              ErrorCode222222222222[ErrorCode222222222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                                              ErrorCode222222222222[ErrorCode222222222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                                              ErrorCode222222222222[ErrorCode222222222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                                              ErrorCode222222222222[ErrorCode222222222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                                              ErrorCode222222222222[ErrorCode222222222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                                              ErrorCode222222222222[ErrorCode222222222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                                              ErrorCode222222222222[ErrorCode222222222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                                              ErrorCode222222222222[ErrorCode222222222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                                              ErrorCode222222222222[ErrorCode222222222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                                              ErrorCode222222222222[ErrorCode222222222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                                              ErrorCode222222222222[ErrorCode222222222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                                              ErrorCode222222222222[ErrorCode222222222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                                              ErrorCode222222222222[ErrorCode222222222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                                              ErrorCode222222222222[ErrorCode222222222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                                              ErrorCode222222222222[ErrorCode222222222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                                              ErrorCode222222222222[ErrorCode222222222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                                              ErrorCode222222222222[ErrorCode222222222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                                              ErrorCode222222222222[ErrorCode222222222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                                              ErrorCode222222222222[ErrorCode222222222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                                              ErrorCode222222222222[ErrorCode222222222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                                              ErrorCode222222222222[ErrorCode222222222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                                              ErrorCode222222222222[ErrorCode222222222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                                              ErrorCode222222222222[ErrorCode222222222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                                              ErrorCode222222222222[ErrorCode222222222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                                              ErrorCode222222222222[ErrorCode222222222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                                              ErrorCode222222222222[ErrorCode222222222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                                              ErrorCode222222222222[ErrorCode222222222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                                              ErrorCode222222222222[ErrorCode222222222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                                              ErrorCode222222222222[ErrorCode222222222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                                              ErrorCode222222222222[ErrorCode222222222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                                              ErrorCode222222222222[ErrorCode222222222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                                              ErrorCode222222222222[ErrorCode222222222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                                              ErrorCode222222222222[ErrorCode222222222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                                              ErrorCode222222222222[ErrorCode222222222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                                              ErrorCode222222222222[ErrorCode222222222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                                              ErrorCode222222222222[ErrorCode222222222222["OTHER"] = 0] = "OTHER";
                                              ErrorCode222222222222[ErrorCode222222222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                                              ErrorCode222222222222[ErrorCode222222222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                                              ErrorCode222222222222[ErrorCode222222222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                                              ErrorCode222222222222[ErrorCode222222222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                                              ErrorCode222222222222[ErrorCode222222222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                                              ErrorCode222222222222[ErrorCode222222222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                                              ErrorCode222222222222[ErrorCode222222222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                                              ErrorCode222222222222[ErrorCode222222222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                                              ErrorCode222222222222[ErrorCode222222222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                                              ErrorCode222222222222[ErrorCode222222222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                                              ErrorCode222222222222[ErrorCode222222222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                                              ErrorCode222222222222[ErrorCode222222222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                                              ErrorCode222222222222[ErrorCode222222222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                                              ErrorCode222222222222[ErrorCode222222222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                                              ErrorCode222222222222[ErrorCode222222222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                                              ErrorCode222222222222[ErrorCode222222222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                                              ErrorCode222222222222[ErrorCode222222222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                                              ErrorCode222222222222[ErrorCode222222222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                                              ErrorCode222222222222[ErrorCode222222222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                                              ErrorCode222222222222[ErrorCode222222222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                                              ErrorCode222222222222[ErrorCode222222222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                                              ErrorCode222222222222[ErrorCode222222222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                                              ErrorCode222222222222[ErrorCode222222222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                                              ErrorCode222222222222[ErrorCode222222222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                                              ErrorCode222222222222[ErrorCode222222222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                                              ErrorCode222222222222[ErrorCode222222222222["SUCCESS"] = 84] = "SUCCESS";
                                              ErrorCode222222222222[ErrorCode222222222222["TIMEOUT"] = 30] = "TIMEOUT";
                                              ErrorCode222222222222[ErrorCode222222222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                                              ErrorCode222222222222[ErrorCode222222222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                                              ErrorCode222222222222[ErrorCode222222222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                                              ErrorCode222222222222[ErrorCode222222222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                                              ErrorCode222222222222[ErrorCode222222222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                                              ErrorCode222222222222[ErrorCode222222222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                                              ErrorCode222222222222[ErrorCode222222222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                                              ErrorCode222222222222[ErrorCode222222222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                                              ErrorCode222222222222[ErrorCode222222222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                                              ErrorCode222222222222[ErrorCode222222222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                                              return ErrorCode222222222222;
                                            })(ErrorCode22222222222 || {});
                                            var ErrorCodeName22222222222 = invertEnum22222222222(
                                              ErrorCode22222222222
                                            );
                                            var AccessAuthenticationFactorDisable22222222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable222222222222) => {
                                              AccessAuthenticationFactorDisable222222222222[AccessAuthenticationFactorDisable222222222222["NONE"] = 0] = "NONE";
                                              AccessAuthenticationFactorDisable222222222222[AccessAuthenticationFactorDisable222222222222["DISABLED"] = 1] = "DISABLED";
                                              AccessAuthenticationFactorDisable222222222222[AccessAuthenticationFactorDisable222222222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                                              AccessAuthenticationFactorDisable222222222222[AccessAuthenticationFactorDisable222222222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                                              AccessAuthenticationFactorDisable222222222222[AccessAuthenticationFactorDisable222222222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                                              AccessAuthenticationFactorDisable222222222222[AccessAuthenticationFactorDisable222222222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                                              return AccessAuthenticationFactorDisable222222222222;
                                            })(AccessAuthenticationFactorDisable22222222222 || {});
                                            var AccessCredentialDisable22222222222 = /* @__PURE__ */ ((AccessCredentialDisable222222222222) => {
                                              AccessCredentialDisable222222222222[AccessCredentialDisable222222222222["NONE"] = 0] = "NONE";
                                              AccessCredentialDisable222222222222[AccessCredentialDisable222222222222["DISABLE"] = 1] = "DISABLE";
                                              AccessCredentialDisable222222222222[AccessCredentialDisable222222222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                                              AccessCredentialDisable222222222222[AccessCredentialDisable222222222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                                              return AccessCredentialDisable222222222222;
                                            })(AccessCredentialDisable22222222222 || {});
                                            var AccessCredentialDisableReason22222222222 = /* @__PURE__ */ ((AccessCredentialDisableReason222222222222) => {
                                              AccessCredentialDisableReason222222222222[AccessCredentialDisableReason222222222222["DISABLED"] = 0] = "DISABLED";
                                              AccessCredentialDisableReason222222222222[AccessCredentialDisableReason222222222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                                              AccessCredentialDisableReason222222222222[AccessCredentialDisableReason222222222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                                              AccessCredentialDisableReason222222222222[AccessCredentialDisableReason222222222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                                              AccessCredentialDisableReason222222222222[AccessCredentialDisableReason222222222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                                              AccessCredentialDisableReason222222222222[AccessCredentialDisableReason222222222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                                              AccessCredentialDisableReason222222222222[AccessCredentialDisableReason222222222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                                              AccessCredentialDisableReason222222222222[AccessCredentialDisableReason222222222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                                              AccessCredentialDisableReason222222222222[AccessCredentialDisableReason222222222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                                              AccessCredentialDisableReason222222222222[AccessCredentialDisableReason222222222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                                              return AccessCredentialDisableReason222222222222;
                                            })(AccessCredentialDisableReason22222222222 || {});
                                            var AccessEvent22222222222 = /* @__PURE__ */ ((AccessEvent222222222222) => {
                                              AccessEvent222222222222[AccessEvent222222222222["NONE"] = 0] = "NONE";
                                              AccessEvent222222222222[AccessEvent222222222222["GRANTED"] = 1] = "GRANTED";
                                              AccessEvent222222222222[AccessEvent222222222222["MUSTER"] = 2] = "MUSTER";
                                              AccessEvent222222222222[AccessEvent222222222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                                              AccessEvent222222222222[AccessEvent222222222222["DURESS"] = 4] = "DURESS";
                                              AccessEvent222222222222[AccessEvent222222222222["TRACE"] = 5] = "TRACE";
                                              AccessEvent222222222222[AccessEvent222222222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                                              AccessEvent222222222222[AccessEvent222222222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                                              AccessEvent222222222222[AccessEvent222222222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                                              AccessEvent222222222222[AccessEvent222222222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                                              AccessEvent222222222222[AccessEvent222222222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                                              AccessEvent222222222222[AccessEvent222222222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                                              AccessEvent222222222222[AccessEvent222222222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                                              AccessEvent222222222222[AccessEvent222222222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                                              AccessEvent222222222222[AccessEvent222222222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                                              AccessEvent222222222222[AccessEvent222222222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                                              AccessEvent222222222222[AccessEvent222222222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                                              AccessEvent222222222222[AccessEvent222222222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                                              return AccessEvent222222222222;
                                            })(AccessEvent22222222222 || {});
                                            var AccessPassbackMode22222222222 = /* @__PURE__ */ ((AccessPassbackMode222222222222) => {
                                              AccessPassbackMode222222222222[AccessPassbackMode222222222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                                              AccessPassbackMode222222222222[AccessPassbackMode222222222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                                              AccessPassbackMode222222222222[AccessPassbackMode222222222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                                              return AccessPassbackMode222222222222;
                                            })(AccessPassbackMode22222222222 || {});
                                            var AccessUserType22222222222 = /* @__PURE__ */ ((AccessUserType222222222222) => {
                                              AccessUserType222222222222[AccessUserType222222222222["ASSET"] = 0] = "ASSET";
                                              AccessUserType222222222222[AccessUserType222222222222["GROUP"] = 1] = "GROUP";
                                              AccessUserType222222222222[AccessUserType222222222222["PERSON"] = 2] = "PERSON";
                                              return AccessUserType222222222222;
                                            })(AccessUserType22222222222 || {});
                                            var AccessZoneOccupancyState22222222222 = /* @__PURE__ */ ((AccessZoneOccupancyState222222222222) => {
                                              AccessZoneOccupancyState222222222222[AccessZoneOccupancyState222222222222["NORMAL"] = 0] = "NORMAL";
                                              AccessZoneOccupancyState222222222222[AccessZoneOccupancyState222222222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                                              AccessZoneOccupancyState222222222222[AccessZoneOccupancyState222222222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                                              AccessZoneOccupancyState222222222222[AccessZoneOccupancyState222222222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                                              AccessZoneOccupancyState222222222222[AccessZoneOccupancyState222222222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                                              AccessZoneOccupancyState222222222222[AccessZoneOccupancyState222222222222["DISABLED"] = 5] = "DISABLED";
                                              AccessZoneOccupancyState222222222222[AccessZoneOccupancyState222222222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                                              return AccessZoneOccupancyState222222222222;
                                            })(AccessZoneOccupancyState22222222222 || {});
                                            var Action22222222222 = /* @__PURE__ */ ((Action222222222222) => {
                                              Action222222222222[Action222222222222["DIRECT"] = 0] = "DIRECT";
                                              Action222222222222[Action222222222222["REVERSE"] = 1] = "REVERSE";
                                              return Action222222222222;
                                            })(Action22222222222 || {});
                                            var AuthenticationFactorType22222222222 = /* @__PURE__ */ ((AuthenticationFactorType222222222222) => {
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["UNDEFINED"] = 0] = "UNDEFINED";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["ERROR"] = 1] = "ERROR";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["CUSTOM"] = 2] = "CUSTOM";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["WIEGAND26"] = 8] = "WIEGAND26";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["WIEGAND37"] = 9] = "WIEGAND37";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["FASC_N"] = 13] = "FASC_N";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["GSA75"] = 17] = "GSA75";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["CHUID"] = 18] = "CHUID";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["GUID"] = 20] = "GUID";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["CBEFF_A"] = 21] = "CBEFF_A";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["CBEFF_B"] = 22] = "CBEFF_B";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["CBEFF_C"] = 23] = "CBEFF_C";
                                              AuthenticationFactorType222222222222[AuthenticationFactorType222222222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                                              return AuthenticationFactorType222222222222;
                                            })(AuthenticationFactorType22222222222 || {});
                                            var AuthenticationStatus22222222222 = /* @__PURE__ */ ((AuthenticationStatus222222222222) => {
                                              AuthenticationStatus222222222222[AuthenticationStatus222222222222["NOT_READY"] = 0] = "NOT_READY";
                                              AuthenticationStatus222222222222[AuthenticationStatus222222222222["READY"] = 1] = "READY";
                                              AuthenticationStatus222222222222[AuthenticationStatus222222222222["DISABLED"] = 2] = "DISABLED";
                                              AuthenticationStatus222222222222[AuthenticationStatus222222222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                                              AuthenticationStatus222222222222[AuthenticationStatus222222222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                                              AuthenticationStatus222222222222[AuthenticationStatus222222222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                                              AuthenticationStatus222222222222[AuthenticationStatus222222222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                                              return AuthenticationStatus222222222222;
                                            })(AuthenticationStatus22222222222 || {});
                                            var AuthorizationExemption22222222222 = /* @__PURE__ */ ((AuthorizationExemption222222222222) => {
                                              AuthorizationExemption222222222222[AuthorizationExemption222222222222["PASSBACK"] = 0] = "PASSBACK";
                                              AuthorizationExemption222222222222[AuthorizationExemption222222222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                                              AuthorizationExemption222222222222[AuthorizationExemption222222222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                                              AuthorizationExemption222222222222[AuthorizationExemption222222222222["LOCKOUT"] = 3] = "LOCKOUT";
                                              AuthorizationExemption222222222222[AuthorizationExemption222222222222["DENY"] = 4] = "DENY";
                                              AuthorizationExemption222222222222[AuthorizationExemption222222222222["VERIFICATION"] = 5] = "VERIFICATION";
                                              AuthorizationExemption222222222222[AuthorizationExemption222222222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                                              return AuthorizationExemption222222222222;
                                            })(AuthorizationExemption22222222222 || {});
                                            var AuthorizationMode22222222222 = /* @__PURE__ */ ((AuthorizationMode222222222222) => {
                                              AuthorizationMode222222222222[AuthorizationMode222222222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                                              AuthorizationMode222222222222[AuthorizationMode222222222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                                              AuthorizationMode222222222222[AuthorizationMode222222222222["DENY_ALL"] = 2] = "DENY_ALL";
                                              AuthorizationMode222222222222[AuthorizationMode222222222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                                              AuthorizationMode222222222222[AuthorizationMode222222222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                                              AuthorizationMode222222222222[AuthorizationMode222222222222["NONE"] = 5] = "NONE";
                                              return AuthorizationMode222222222222;
                                            })(AuthorizationMode22222222222 || {});
                                            var BackupState22222222222 = /* @__PURE__ */ ((BackupState222222222222) => {
                                              BackupState222222222222[BackupState222222222222["IDLE"] = 0] = "IDLE";
                                              BackupState222222222222[BackupState222222222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                                              BackupState222222222222[BackupState222222222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                                              BackupState222222222222[BackupState222222222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                                              BackupState222222222222[BackupState222222222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                                              BackupState222222222222[BackupState222222222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                                              BackupState222222222222[BackupState222222222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                                              return BackupState222222222222;
                                            })(BackupState22222222222 || {});
                                            var BinaryLightingPV22222222222 = /* @__PURE__ */ ((BinaryLightingPV222222222222) => {
                                              BinaryLightingPV222222222222[BinaryLightingPV222222222222["OFF"] = 0] = "OFF";
                                              BinaryLightingPV222222222222[BinaryLightingPV222222222222["ON"] = 1] = "ON";
                                              BinaryLightingPV222222222222[BinaryLightingPV222222222222["WARN"] = 2] = "WARN";
                                              BinaryLightingPV222222222222[BinaryLightingPV222222222222["WARN_OFF"] = 3] = "WARN_OFF";
                                              BinaryLightingPV222222222222[BinaryLightingPV222222222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                                              BinaryLightingPV222222222222[BinaryLightingPV222222222222["STOP"] = 5] = "STOP";
                                              return BinaryLightingPV222222222222;
                                            })(BinaryLightingPV22222222222 || {});
                                            var BinaryPV22222222222 = /* @__PURE__ */ ((BinaryPV222222222222) => {
                                              BinaryPV222222222222[BinaryPV222222222222["INACTIVE"] = 0] = "INACTIVE";
                                              BinaryPV222222222222[BinaryPV222222222222["ACTIVE"] = 1] = "ACTIVE";
                                              return BinaryPV222222222222;
                                            })(BinaryPV22222222222 || {});
                                            var DeviceStatus22222222222 = /* @__PURE__ */ ((DeviceStatus222222222222) => {
                                              DeviceStatus222222222222[DeviceStatus222222222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                                              DeviceStatus222222222222[DeviceStatus222222222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                                              DeviceStatus222222222222[DeviceStatus222222222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                                              DeviceStatus222222222222[DeviceStatus222222222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                                              DeviceStatus222222222222[DeviceStatus222222222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                                              DeviceStatus222222222222[DeviceStatus222222222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                                              return DeviceStatus222222222222;
                                            })(DeviceStatus22222222222 || {});
                                            var DoorAlarmState22222222222 = /* @__PURE__ */ ((DoorAlarmState222222222222) => {
                                              DoorAlarmState222222222222[DoorAlarmState222222222222["NORMAL"] = 0] = "NORMAL";
                                              DoorAlarmState222222222222[DoorAlarmState222222222222["ALARM"] = 1] = "ALARM";
                                              DoorAlarmState222222222222[DoorAlarmState222222222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                                              DoorAlarmState222222222222[DoorAlarmState222222222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                                              DoorAlarmState222222222222[DoorAlarmState222222222222["TAMPER"] = 4] = "TAMPER";
                                              DoorAlarmState222222222222[DoorAlarmState222222222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                                              DoorAlarmState222222222222[DoorAlarmState222222222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                                              DoorAlarmState222222222222[DoorAlarmState222222222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                                              DoorAlarmState222222222222[DoorAlarmState222222222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                                              return DoorAlarmState222222222222;
                                            })(DoorAlarmState22222222222 || {});
                                            var DoorSecuredStatus22222222222 = /* @__PURE__ */ ((DoorSecuredStatus222222222222) => {
                                              DoorSecuredStatus222222222222[DoorSecuredStatus222222222222["SECURED"] = 0] = "SECURED";
                                              DoorSecuredStatus222222222222[DoorSecuredStatus222222222222["UNSECURED"] = 1] = "UNSECURED";
                                              DoorSecuredStatus222222222222[DoorSecuredStatus222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                              return DoorSecuredStatus222222222222;
                                            })(DoorSecuredStatus22222222222 || {});
                                            var DoorStatus22222222222 = /* @__PURE__ */ ((DoorStatus222222222222) => {
                                              DoorStatus222222222222[DoorStatus222222222222["CLOSED"] = 0] = "CLOSED";
                                              DoorStatus222222222222[DoorStatus222222222222["OPENED"] = 1] = "OPENED";
                                              DoorStatus222222222222[DoorStatus222222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                              DoorStatus222222222222[DoorStatus222222222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                                              DoorStatus222222222222[DoorStatus222222222222["UNUSED"] = 4] = "UNUSED";
                                              DoorStatus222222222222[DoorStatus222222222222["NONE"] = 5] = "NONE";
                                              DoorStatus222222222222[DoorStatus222222222222["CLOSING"] = 6] = "CLOSING";
                                              DoorStatus222222222222[DoorStatus222222222222["OPENING"] = 7] = "OPENING";
                                              DoorStatus222222222222[DoorStatus222222222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                                              DoorStatus222222222222[DoorStatus222222222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                                              return DoorStatus222222222222;
                                            })(DoorStatus22222222222 || {});
                                            var DoorValue22222222222 = /* @__PURE__ */ ((DoorValue222222222222) => {
                                              DoorValue222222222222[DoorValue222222222222["LOCK"] = 0] = "LOCK";
                                              DoorValue222222222222[DoorValue222222222222["UNLOCK"] = 1] = "UNLOCK";
                                              DoorValue222222222222[DoorValue222222222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                                              DoorValue222222222222[DoorValue222222222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                                              return DoorValue222222222222;
                                            })(DoorValue22222222222 || {});
                                            var EngineeringUnits22222222222 = /* @__PURE__ */ ((EngineeringUnits222222222222) => {
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CURRENCY1"] = 105] = "CURRENCY1";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CURRENCY2"] = 106] = "CURRENCY2";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CURRENCY3"] = 107] = "CURRENCY3";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CURRENCY4"] = 108] = "CURRENCY4";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CURRENCY5"] = 109] = "CURRENCY5";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CURRENCY6"] = 110] = "CURRENCY6";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CURRENCY7"] = 111] = "CURRENCY7";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CURRENCY8"] = 112] = "CURRENCY8";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CURRENCY9"] = 113] = "CURRENCY9";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CURRENCY10"] = 114] = "CURRENCY10";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["AMPERES"] = 3] = "AMPERES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DECIBELS"] = 199] = "DECIBELS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["FARADS"] = 170] = "FARADS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["HENRYS"] = 171] = "HENRYS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["OHMS"] = 4] = "OHMS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["OHM_METERS"] = 172] = "OHM_METERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOHMS"] = 122] = "KILOHMS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGOHMS"] = 123] = "MEGOHMS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["SIEMENS"] = 173] = "SIEMENS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["TESLAS"] = 175] = "TESLAS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["VOLTS"] = 5] = "VOLTS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["WEBERS"] = 178] = "WEBERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["JOULES"] = 16] = "JOULES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOJOULES"] = 17] = "KILOJOULES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["BTUS"] = 20] = "BTUS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["THERMS"] = 21] = "THERMS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["TON_HOURS"] = 22] = "TON_HOURS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["NEWTON"] = 153] = "NEWTON";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["HERTZ"] = 27] = "HERTZ";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PER_HOUR"] = 131] = "PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MICROMETERS"] = 194] = "MICROMETERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOMETERS"] = 193] = "KILOMETERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["METERS"] = 31] = "METERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["INCHES"] = 32] = "INCHES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["FEET"] = 33] = "FEET";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CANDELAS"] = 179] = "CANDELAS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["LUMENS"] = 36] = "LUMENS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["LUXES"] = 37] = "LUXES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["GRAMS"] = 195] = "GRAMS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["TONS"] = 41] = "TONS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["WATTS"] = 47] = "WATTS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOWATTS"] = 48] = "KILOWATTS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PASCALS"] = 53] = "PASCALS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIBARS"] = 134] = "MILLIBARS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["BARS"] = 55] = "BARS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["YEARS"] = 67] = "YEARS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MONTHS"] = 68] = "MONTHS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["WEEKS"] = 69] = "WEEKS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DAYS"] = 70] = "DAYS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["HOURS"] = 71] = "HOURS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MINUTES"] = 72] = "MINUTES";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["SECONDS"] = 73] = "SECONDS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLILITERS"] = 197] = "MILLILITERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["LITERS"] = 82] = "LITERS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["US_GALLONS"] = 83] = "US_GALLONS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["NO_UNITS"] = 95] = "NO_UNITS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PERCENT"] = 98] = "PERCENT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PER_SECOND"] = 101] = "PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["RADIANS"] = 103] = "RADIANS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PER_MILLE"] = 207] = "PER_MILLE";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["BECQUERELS"] = 222] = "BECQUERELS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["GRAY"] = 225] = "GRAY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MICROGRAY"] = 227] = "MICROGRAY";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["SIEVERTS"] = 228] = "SIEVERTS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIREMS"] = 47814] = "MILLIREMS";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["PH"] = 234] = "PH";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                                              EngineeringUnits222222222222[EngineeringUnits222222222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                                              return EngineeringUnits222222222222;
                                            })(EngineeringUnits22222222222 || {});
                                            var EscalatorFault22222222222 = /* @__PURE__ */ ((EscalatorFault222222222222) => {
                                              EscalatorFault222222222222[EscalatorFault222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                              EscalatorFault222222222222[EscalatorFault222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                              EscalatorFault222222222222[EscalatorFault222222222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                                              EscalatorFault222222222222[EscalatorFault222222222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                                              EscalatorFault222222222222[EscalatorFault222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                              EscalatorFault222222222222[EscalatorFault222222222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                                              EscalatorFault222222222222[EscalatorFault222222222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                                              EscalatorFault222222222222[EscalatorFault222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                                              EscalatorFault222222222222[EscalatorFault222222222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                                              return EscalatorFault222222222222;
                                            })(EscalatorFault22222222222 || {});
                                            var EscalatorMode22222222222 = /* @__PURE__ */ ((EscalatorMode222222222222) => {
                                              EscalatorMode222222222222[EscalatorMode222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                              EscalatorMode222222222222[EscalatorMode222222222222["STOP"] = 1] = "STOP";
                                              EscalatorMode222222222222[EscalatorMode222222222222["UP"] = 2] = "UP";
                                              EscalatorMode222222222222[EscalatorMode222222222222["DOWN"] = 3] = "DOWN";
                                              EscalatorMode222222222222[EscalatorMode222222222222["INSPECTION"] = 4] = "INSPECTION";
                                              EscalatorMode222222222222[EscalatorMode222222222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                                              return EscalatorMode222222222222;
                                            })(EscalatorMode22222222222 || {});
                                            var EscalatorOperationDirection22222222222 = /* @__PURE__ */ ((EscalatorOperationDirection222222222222) => {
                                              EscalatorOperationDirection222222222222[EscalatorOperationDirection222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                              EscalatorOperationDirection222222222222[EscalatorOperationDirection222222222222["STOPPED"] = 1] = "STOPPED";
                                              EscalatorOperationDirection222222222222[EscalatorOperationDirection222222222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                                              EscalatorOperationDirection222222222222[EscalatorOperationDirection222222222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                                              EscalatorOperationDirection222222222222[EscalatorOperationDirection222222222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                                              EscalatorOperationDirection222222222222[EscalatorOperationDirection222222222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                                              return EscalatorOperationDirection222222222222;
                                            })(EscalatorOperationDirection22222222222 || {});
                                            var EventState22222222222 = /* @__PURE__ */ ((EventState222222222222) => {
                                              EventState222222222222[EventState222222222222["NORMAL"] = 0] = "NORMAL";
                                              EventState222222222222[EventState222222222222["FAULT"] = 1] = "FAULT";
                                              EventState222222222222[EventState222222222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                                              EventState222222222222[EventState222222222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                                              EventState222222222222[EventState222222222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                                              EventState222222222222[EventState222222222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                                              return EventState222222222222;
                                            })(EventState22222222222 || {});
                                            var EventType22222222222 = /* @__PURE__ */ ((EventType222222222222) => {
                                              EventType222222222222[EventType222222222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                                              EventType222222222222[EventType222222222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                                              EventType222222222222[EventType222222222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                                              EventType222222222222[EventType222222222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                                              EventType222222222222[EventType222222222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                                              EventType222222222222[EventType222222222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                                              EventType222222222222[EventType222222222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                                              EventType222222222222[EventType222222222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                                              EventType222222222222[EventType222222222222["EXTENDED"] = 9] = "EXTENDED";
                                              EventType222222222222[EventType222222222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                                              EventType222222222222[EventType222222222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                                              EventType222222222222[EventType222222222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                                              EventType222222222222[EventType222222222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                                              EventType222222222222[EventType222222222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                                              EventType222222222222[EventType222222222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                                              EventType222222222222[EventType222222222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                                              EventType222222222222[EventType222222222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                                              EventType222222222222[EventType222222222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                                              EventType222222222222[EventType222222222222["NONE"] = 20] = "NONE";
                                              EventType222222222222[EventType222222222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                                              EventType222222222222[EventType222222222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                                              return EventType222222222222;
                                            })(EventType22222222222 || {});
                                            var FaultType22222222222 = /* @__PURE__ */ ((FaultType222222222222) => {
                                              FaultType222222222222[FaultType222222222222["NONE"] = 0] = "NONE";
                                              FaultType222222222222[FaultType222222222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                                              FaultType222222222222[FaultType222222222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                                              FaultType222222222222[FaultType222222222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                                              FaultType222222222222[FaultType222222222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                                              FaultType222222222222[FaultType222222222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                                              FaultType222222222222[FaultType222222222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                                              FaultType222222222222[FaultType222222222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                                              return FaultType222222222222;
                                            })(FaultType22222222222 || {});
                                            var FileAccessMethod22222222222 = /* @__PURE__ */ ((FileAccessMethod222222222222) => {
                                              FileAccessMethod222222222222[FileAccessMethod222222222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                                              FileAccessMethod222222222222[FileAccessMethod222222222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                                              return FileAccessMethod222222222222;
                                            })(FileAccessMethod22222222222 || {});
                                            var IPMode22222222222 = /* @__PURE__ */ ((IPMode222222222222) => {
                                              IPMode222222222222[IPMode222222222222["NORMAL"] = 0] = "NORMAL";
                                              IPMode222222222222[IPMode222222222222["FOREIGN"] = 1] = "FOREIGN";
                                              IPMode222222222222[IPMode222222222222["BBMD"] = 2] = "BBMD";
                                              return IPMode222222222222;
                                            })(IPMode22222222222 || {});
                                            var LifeSafetyMode22222222222 = /* @__PURE__ */ ((LifeSafetyMode222222222222) => {
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["OFF"] = 0] = "OFF";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["ON"] = 1] = "ON";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["TEST"] = 2] = "TEST";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["MANNED"] = 3] = "MANNED";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["UNMANNED"] = 4] = "UNMANNED";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["ARMED"] = 5] = "ARMED";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["DISARMED"] = 6] = "DISARMED";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["PREARMED"] = 7] = "PREARMED";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["SLOW"] = 8] = "SLOW";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["FAST"] = 9] = "FAST";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["ENABLED"] = 11] = "ENABLED";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["DISABLED"] = 12] = "DISABLED";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                                              LifeSafetyMode222222222222[LifeSafetyMode222222222222["DEFAULT"] = 14] = "DEFAULT";
                                              return LifeSafetyMode222222222222;
                                            })(LifeSafetyMode22222222222 || {});
                                            var LifeSafetyOperation22222222222 = /* @__PURE__ */ ((LifeSafetyOperation222222222222) => {
                                              LifeSafetyOperation222222222222[LifeSafetyOperation222222222222["NONE"] = 0] = "NONE";
                                              LifeSafetyOperation222222222222[LifeSafetyOperation222222222222["SILENCE"] = 1] = "SILENCE";
                                              LifeSafetyOperation222222222222[LifeSafetyOperation222222222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                                              LifeSafetyOperation222222222222[LifeSafetyOperation222222222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                                              LifeSafetyOperation222222222222[LifeSafetyOperation222222222222["RESET"] = 4] = "RESET";
                                              LifeSafetyOperation222222222222[LifeSafetyOperation222222222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                                              LifeSafetyOperation222222222222[LifeSafetyOperation222222222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                                              LifeSafetyOperation222222222222[LifeSafetyOperation222222222222["UNSILENCE"] = 7] = "UNSILENCE";
                                              LifeSafetyOperation222222222222[LifeSafetyOperation222222222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                                              LifeSafetyOperation222222222222[LifeSafetyOperation222222222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                                              return LifeSafetyOperation222222222222;
                                            })(LifeSafetyOperation22222222222 || {});
                                            var LifeSafetyState22222222222 = /* @__PURE__ */ ((LifeSafetyState222222222222) => {
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["QUIET"] = 0] = "QUIET";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["ALARM"] = 2] = "ALARM";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["FAULT"] = 3] = "FAULT";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["NOT_READY"] = 6] = "NOT_READY";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["ACTIVE"] = 7] = "ACTIVE";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["TAMPER"] = 8] = "TAMPER";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["HOLDUP"] = 13] = "HOLDUP";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["DURESS"] = 14] = "DURESS";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["ABNORMAL"] = 16] = "ABNORMAL";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["DELAYED"] = 18] = "DELAYED";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["BLOCKED"] = 19] = "BLOCKED";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                                              LifeSafetyState222222222222[LifeSafetyState222222222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                                              return LifeSafetyState222222222222;
                                            })(LifeSafetyState22222222222 || {});
                                            var LiftCarDirection22222222222 = /* @__PURE__ */ ((LiftCarDirection222222222222) => {
                                              LiftCarDirection222222222222[LiftCarDirection222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                              LiftCarDirection222222222222[LiftCarDirection222222222222["NONE"] = 1] = "NONE";
                                              LiftCarDirection222222222222[LiftCarDirection222222222222["STOPPED"] = 2] = "STOPPED";
                                              LiftCarDirection222222222222[LiftCarDirection222222222222["UP"] = 3] = "UP";
                                              LiftCarDirection222222222222[LiftCarDirection222222222222["DOWN"] = 4] = "DOWN";
                                              LiftCarDirection222222222222[LiftCarDirection222222222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                                              return LiftCarDirection222222222222;
                                            })(LiftCarDirection22222222222 || {});
                                            var LiftCarDoorCommand22222222222 = /* @__PURE__ */ ((LiftCarDoorCommand222222222222) => {
                                              LiftCarDoorCommand222222222222[LiftCarDoorCommand222222222222["NONE"] = 0] = "NONE";
                                              LiftCarDoorCommand222222222222[LiftCarDoorCommand222222222222["OPEN"] = 1] = "OPEN";
                                              LiftCarDoorCommand222222222222[LiftCarDoorCommand222222222222["CLOSE"] = 2] = "CLOSE";
                                              return LiftCarDoorCommand222222222222;
                                            })(LiftCarDoorCommand22222222222 || {});
                                            var LiftCarDriveStatus22222222222 = /* @__PURE__ */ ((LiftCarDriveStatus222222222222) => {
                                              LiftCarDriveStatus222222222222[LiftCarDriveStatus222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                              LiftCarDriveStatus222222222222[LiftCarDriveStatus222222222222["STATIONARY"] = 1] = "STATIONARY";
                                              LiftCarDriveStatus222222222222[LiftCarDriveStatus222222222222["BRAKING"] = 2] = "BRAKING";
                                              LiftCarDriveStatus222222222222[LiftCarDriveStatus222222222222["ACCELERATE"] = 3] = "ACCELERATE";
                                              LiftCarDriveStatus222222222222[LiftCarDriveStatus222222222222["DECELERATE"] = 4] = "DECELERATE";
                                              LiftCarDriveStatus222222222222[LiftCarDriveStatus222222222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                                              LiftCarDriveStatus222222222222[LiftCarDriveStatus222222222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                                              LiftCarDriveStatus222222222222[LiftCarDriveStatus222222222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                                              LiftCarDriveStatus222222222222[LiftCarDriveStatus222222222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                                              LiftCarDriveStatus222222222222[LiftCarDriveStatus222222222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                                              return LiftCarDriveStatus222222222222;
                                            })(LiftCarDriveStatus22222222222 || {});
                                            var LiftCarMode22222222222 = /* @__PURE__ */ ((LiftCarMode222222222222) => {
                                              LiftCarMode222222222222[LiftCarMode222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                              LiftCarMode222222222222[LiftCarMode222222222222["NORMAL"] = 1] = "NORMAL";
                                              LiftCarMode222222222222[LiftCarMode222222222222["VIP"] = 2] = "VIP";
                                              LiftCarMode222222222222[LiftCarMode222222222222["HOMING"] = 3] = "HOMING";
                                              LiftCarMode222222222222[LiftCarMode222222222222["PARKING"] = 4] = "PARKING";
                                              LiftCarMode222222222222[LiftCarMode222222222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                                              LiftCarMode222222222222[LiftCarMode222222222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                                              LiftCarMode222222222222[LiftCarMode222222222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                                              LiftCarMode222222222222[LiftCarMode222222222222["INSPECTION"] = 8] = "INSPECTION";
                                              LiftCarMode222222222222[LiftCarMode222222222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                                              LiftCarMode222222222222[LiftCarMode222222222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                                              LiftCarMode222222222222[LiftCarMode222222222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                                              LiftCarMode222222222222[LiftCarMode222222222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                                              LiftCarMode222222222222[LiftCarMode222222222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                                              return LiftCarMode222222222222;
                                            })(LiftCarMode22222222222 || {});
                                            var LiftFault22222222222 = /* @__PURE__ */ ((LiftFault222222222222) => {
                                              LiftFault222222222222[LiftFault222222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                              LiftFault222222222222[LiftFault222222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                              LiftFault222222222222[LiftFault222222222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                                              LiftFault222222222222[LiftFault222222222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                                              LiftFault222222222222[LiftFault222222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                              LiftFault222222222222[LiftFault222222222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                                              LiftFault222222222222[LiftFault222222222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                                              LiftFault222222222222[LiftFault222222222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                                              LiftFault222222222222[LiftFault222222222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                                              LiftFault222222222222[LiftFault222222222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                                              LiftFault222222222222[LiftFault222222222222["START_FAILURE"] = 10] = "START_FAILURE";
                                              LiftFault222222222222[LiftFault222222222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                                              LiftFault222222222222[LiftFault222222222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                                              LiftFault222222222222[LiftFault222222222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                                              LiftFault222222222222[LiftFault222222222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                                              LiftFault222222222222[LiftFault222222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                                              LiftFault222222222222[LiftFault222222222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                                              return LiftFault222222222222;
                                            })(LiftFault22222222222 || {});
                                            var LiftGroupMode22222222222 = /* @__PURE__ */ ((LiftGroupMode222222222222) => {
                                              LiftGroupMode222222222222[LiftGroupMode222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                              LiftGroupMode222222222222[LiftGroupMode222222222222["NORMAL"] = 1] = "NORMAL";
                                              LiftGroupMode222222222222[LiftGroupMode222222222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                                              LiftGroupMode222222222222[LiftGroupMode222222222222["TWO_WAY"] = 3] = "TWO_WAY";
                                              LiftGroupMode222222222222[LiftGroupMode222222222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                                              LiftGroupMode222222222222[LiftGroupMode222222222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                                              LiftGroupMode222222222222[LiftGroupMode222222222222["UP_PEAK"] = 6] = "UP_PEAK";
                                              return LiftGroupMode222222222222;
                                            })(LiftGroupMode22222222222 || {});
                                            var LightingInProgress22222222222 = /* @__PURE__ */ ((LightingInProgress222222222222) => {
                                              LightingInProgress222222222222[LightingInProgress222222222222["IDLE"] = 0] = "IDLE";
                                              LightingInProgress222222222222[LightingInProgress222222222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                                              LightingInProgress222222222222[LightingInProgress222222222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                                              LightingInProgress222222222222[LightingInProgress222222222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                                              LightingInProgress222222222222[LightingInProgress222222222222["OTHER"] = 4] = "OTHER";
                                              return LightingInProgress222222222222;
                                            })(LightingInProgress22222222222 || {});
                                            var LightingOperation22222222222 = /* @__PURE__ */ ((LightingOperation222222222222) => {
                                              LightingOperation222222222222[LightingOperation222222222222["NONE"] = 0] = "NONE";
                                              LightingOperation222222222222[LightingOperation222222222222["FADE_TO"] = 1] = "FADE_TO";
                                              LightingOperation222222222222[LightingOperation222222222222["RAMP_TO"] = 2] = "RAMP_TO";
                                              LightingOperation222222222222[LightingOperation222222222222["STEP_UP"] = 3] = "STEP_UP";
                                              LightingOperation222222222222[LightingOperation222222222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                                              LightingOperation222222222222[LightingOperation222222222222["STEP_ON"] = 5] = "STEP_ON";
                                              LightingOperation222222222222[LightingOperation222222222222["STEP_OFF"] = 6] = "STEP_OFF";
                                              LightingOperation222222222222[LightingOperation222222222222["WARN"] = 7] = "WARN";
                                              LightingOperation222222222222[LightingOperation222222222222["WARN_OFF"] = 8] = "WARN_OFF";
                                              LightingOperation222222222222[LightingOperation222222222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                                              LightingOperation222222222222[LightingOperation222222222222["STOP"] = 10] = "STOP";
                                              return LightingOperation222222222222;
                                            })(LightingOperation22222222222 || {});
                                            var LightingTransition22222222222 = /* @__PURE__ */ ((LightingTransition222222222222) => {
                                              LightingTransition222222222222[LightingTransition222222222222["NONE"] = 0] = "NONE";
                                              LightingTransition222222222222[LightingTransition222222222222["FADE"] = 1] = "FADE";
                                              LightingTransition222222222222[LightingTransition222222222222["RAMP"] = 2] = "RAMP";
                                              return LightingTransition222222222222;
                                            })(LightingTransition22222222222 || {});
                                            var LockStatus22222222222 = /* @__PURE__ */ ((LockStatus222222222222) => {
                                              LockStatus222222222222[LockStatus222222222222["LOCKED"] = 0] = "LOCKED";
                                              LockStatus222222222222[LockStatus222222222222["UNLOCKED"] = 1] = "UNLOCKED";
                                              LockStatus222222222222[LockStatus222222222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                                              LockStatus222222222222[LockStatus222222222222["UNUSED"] = 3] = "UNUSED";
                                              LockStatus222222222222[LockStatus222222222222["UNKNOWN"] = 4] = "UNKNOWN";
                                              return LockStatus222222222222;
                                            })(LockStatus22222222222 || {});
                                            var LoggingType22222222222 = /* @__PURE__ */ ((LoggingType222222222222) => {
                                              LoggingType222222222222[LoggingType222222222222["POLLED"] = 0] = "POLLED";
                                              LoggingType222222222222[LoggingType222222222222["COV"] = 1] = "COV";
                                              LoggingType222222222222[LoggingType222222222222["TRIGGERED"] = 2] = "TRIGGERED";
                                              return LoggingType222222222222;
                                            })(LoggingType22222222222 || {});
                                            var Maintenance22222222222 = /* @__PURE__ */ ((Maintenance222222222222) => {
                                              Maintenance222222222222[Maintenance222222222222["NONE"] = 0] = "NONE";
                                              Maintenance222222222222[Maintenance222222222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                                              Maintenance222222222222[Maintenance222222222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                                              Maintenance222222222222[Maintenance222222222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                                              return Maintenance222222222222;
                                            })(Maintenance22222222222 || {});
                                            var NetworkNumberQuality22222222222 = /* @__PURE__ */ ((NetworkNumberQuality222222222222) => {
                                              NetworkNumberQuality222222222222[NetworkNumberQuality222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                              NetworkNumberQuality222222222222[NetworkNumberQuality222222222222["LEARNED"] = 1] = "LEARNED";
                                              NetworkNumberQuality222222222222[NetworkNumberQuality222222222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                                              NetworkNumberQuality222222222222[NetworkNumberQuality222222222222["CONFIGURED"] = 3] = "CONFIGURED";
                                              return NetworkNumberQuality222222222222;
                                            })(NetworkNumberQuality22222222222 || {});
                                            var NetworkPortCommand22222222222 = /* @__PURE__ */ ((NetworkPortCommand222222222222) => {
                                              NetworkPortCommand222222222222[NetworkPortCommand222222222222["IDLE"] = 0] = "IDLE";
                                              NetworkPortCommand222222222222[NetworkPortCommand222222222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                                              NetworkPortCommand222222222222[NetworkPortCommand222222222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                                              NetworkPortCommand222222222222[NetworkPortCommand222222222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                                              NetworkPortCommand222222222222[NetworkPortCommand222222222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                                              NetworkPortCommand222222222222[NetworkPortCommand222222222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                                              NetworkPortCommand222222222222[NetworkPortCommand222222222222["DISCONNECT"] = 6] = "DISCONNECT";
                                              NetworkPortCommand222222222222[NetworkPortCommand222222222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                                              return NetworkPortCommand222222222222;
                                            })(NetworkPortCommand22222222222 || {});
                                            var NetworkType22222222222 = /* @__PURE__ */ ((NetworkType222222222222) => {
                                              NetworkType222222222222[NetworkType222222222222["ETHERNET"] = 0] = "ETHERNET";
                                              NetworkType222222222222[NetworkType222222222222["ARCNET"] = 1] = "ARCNET";
                                              NetworkType222222222222[NetworkType222222222222["MSTP"] = 2] = "MSTP";
                                              NetworkType222222222222[NetworkType222222222222["PTP"] = 3] = "PTP";
                                              NetworkType222222222222[NetworkType222222222222["LONTALK"] = 4] = "LONTALK";
                                              NetworkType222222222222[NetworkType222222222222["IPV4"] = 5] = "IPV4";
                                              NetworkType222222222222[NetworkType222222222222["ZIGBEE"] = 6] = "ZIGBEE";
                                              NetworkType222222222222[NetworkType222222222222["VIRTUAL"] = 7] = "VIRTUAL";
                                              NetworkType222222222222[NetworkType222222222222["IPV6"] = 9] = "IPV6";
                                              NetworkType222222222222[NetworkType222222222222["SERIAL"] = 10] = "SERIAL";
                                              return NetworkType222222222222;
                                            })(NetworkType22222222222 || {});
                                            var NodeType22222222222 = /* @__PURE__ */ ((NodeType222222222222) => {
                                              NodeType222222222222[NodeType222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                              NodeType222222222222[NodeType222222222222["SYSTEM"] = 1] = "SYSTEM";
                                              NodeType222222222222[NodeType222222222222["NETWORK"] = 2] = "NETWORK";
                                              NodeType222222222222[NodeType222222222222["DEVICE"] = 3] = "DEVICE";
                                              NodeType222222222222[NodeType222222222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                                              NodeType222222222222[NodeType222222222222["AREA"] = 5] = "AREA";
                                              NodeType222222222222[NodeType222222222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                                              NodeType222222222222[NodeType222222222222["POINT"] = 7] = "POINT";
                                              NodeType222222222222[NodeType222222222222["COLLECTION"] = 8] = "COLLECTION";
                                              NodeType222222222222[NodeType222222222222["PROPERTY"] = 9] = "PROPERTY";
                                              NodeType222222222222[NodeType222222222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                                              NodeType222222222222[NodeType222222222222["OTHER"] = 11] = "OTHER";
                                              NodeType222222222222[NodeType222222222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                                              NodeType222222222222[NodeType222222222222["BUILDING"] = 13] = "BUILDING";
                                              NodeType222222222222[NodeType222222222222["FLOOR"] = 14] = "FLOOR";
                                              NodeType222222222222[NodeType222222222222["SECTION"] = 15] = "SECTION";
                                              NodeType222222222222[NodeType222222222222["MODULE"] = 16] = "MODULE";
                                              NodeType222222222222[NodeType222222222222["TREE"] = 17] = "TREE";
                                              NodeType222222222222[NodeType222222222222["MEMBER"] = 18] = "MEMBER";
                                              NodeType222222222222[NodeType222222222222["PROTOCOL"] = 19] = "PROTOCOL";
                                              NodeType222222222222[NodeType222222222222["ROOM"] = 20] = "ROOM";
                                              NodeType222222222222[NodeType222222222222["ZONE"] = 21] = "ZONE";
                                              return NodeType222222222222;
                                            })(NodeType22222222222 || {});
                                            var NotifyType22222222222 = /* @__PURE__ */ ((NotifyType222222222222) => {
                                              NotifyType222222222222[NotifyType222222222222["ALARM"] = 0] = "ALARM";
                                              NotifyType222222222222[NotifyType222222222222["EVENT"] = 1] = "EVENT";
                                              NotifyType222222222222[NotifyType222222222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                                              return NotifyType222222222222;
                                            })(NotifyType22222222222 || {});
                                            var ObjectType22222222222 = /* @__PURE__ */ ((ObjectType222222222222) => {
                                              ObjectType222222222222[ObjectType222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                              ObjectType222222222222[ObjectType222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                              ObjectType222222222222[ObjectType222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                              ObjectType222222222222[ObjectType222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                              ObjectType222222222222[ObjectType222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                              ObjectType222222222222[ObjectType222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                              ObjectType222222222222[ObjectType222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                              ObjectType222222222222[ObjectType222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                              ObjectType222222222222[ObjectType222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                              ObjectType222222222222[ObjectType222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                              ObjectType222222222222[ObjectType222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["AVERAGING"] = 18] = "AVERAGING";
                                              ObjectType222222222222[ObjectType222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                              ObjectType222222222222[ObjectType222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                              ObjectType222222222222[ObjectType222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                              ObjectType222222222222[ObjectType222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["CALENDAR"] = 6] = "CALENDAR";
                                              ObjectType222222222222[ObjectType222222222222["CHANNEL"] = 53] = "CHANNEL";
                                              ObjectType222222222222[ObjectType222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["COMMAND"] = 7] = "COMMAND";
                                              ObjectType222222222222[ObjectType222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                              ObjectType222222222222[ObjectType222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["DEVICE"] = 8] = "DEVICE";
                                              ObjectType222222222222[ObjectType222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                              ObjectType222222222222[ObjectType222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                              ObjectType222222222222[ObjectType222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                              ObjectType222222222222[ObjectType222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                              ObjectType222222222222[ObjectType222222222222["FILE"] = 10] = "FILE";
                                              ObjectType222222222222[ObjectType222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                              ObjectType222222222222[ObjectType222222222222["GROUP"] = 11] = "GROUP";
                                              ObjectType222222222222[ObjectType222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                              ObjectType222222222222[ObjectType222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                              ObjectType222222222222[ObjectType222222222222["LIFT"] = 59] = "LIFT";
                                              ObjectType222222222222[ObjectType222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                              ObjectType222222222222[ObjectType222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                              ObjectType222222222222[ObjectType222222222222["LOOP"] = 12] = "LOOP";
                                              ObjectType222222222222[ObjectType222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                              ObjectType222222222222[ObjectType222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                              ObjectType222222222222[ObjectType222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                              ObjectType222222222222[ObjectType222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                              ObjectType222222222222[ObjectType222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                              ObjectType222222222222[ObjectType222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                              ObjectType222222222222[ObjectType222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["PROGRAM"] = 16] = "PROGRAM";
                                              ObjectType222222222222[ObjectType222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                              ObjectType222222222222[ObjectType222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                              ObjectType222222222222[ObjectType222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                              ObjectType222222222222[ObjectType222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                              ObjectType222222222222[ObjectType222222222222["TIMER"] = 31] = "TIMER";
                                              ObjectType222222222222[ObjectType222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                              ObjectType222222222222[ObjectType222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                              return ObjectType222222222222;
                                            })(ObjectType22222222222 || {});
                                            var Polarity22222222222 = /* @__PURE__ */ ((Polarity222222222222) => {
                                              Polarity222222222222[Polarity222222222222["NORMAL"] = 0] = "NORMAL";
                                              Polarity222222222222[Polarity222222222222["REVERSE"] = 1] = "REVERSE";
                                              return Polarity222222222222;
                                            })(Polarity22222222222 || {});
                                            var ProgramError22222222222 = /* @__PURE__ */ ((ProgramError222222222222) => {
                                              ProgramError222222222222[ProgramError222222222222["NORMAL"] = 0] = "NORMAL";
                                              ProgramError222222222222[ProgramError222222222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                                              ProgramError222222222222[ProgramError222222222222["INTERNAL"] = 2] = "INTERNAL";
                                              ProgramError222222222222[ProgramError222222222222["PROGRAM"] = 3] = "PROGRAM";
                                              ProgramError222222222222[ProgramError222222222222["OTHER"] = 4] = "OTHER";
                                              return ProgramError222222222222;
                                            })(ProgramError22222222222 || {});
                                            var ProgramRequest22222222222 = /* @__PURE__ */ ((ProgramRequest222222222222) => {
                                              ProgramRequest222222222222[ProgramRequest222222222222["READY"] = 0] = "READY";
                                              ProgramRequest222222222222[ProgramRequest222222222222["LOAD"] = 1] = "LOAD";
                                              ProgramRequest222222222222[ProgramRequest222222222222["RUN"] = 2] = "RUN";
                                              ProgramRequest222222222222[ProgramRequest222222222222["HALT"] = 3] = "HALT";
                                              ProgramRequest222222222222[ProgramRequest222222222222["RESTART"] = 4] = "RESTART";
                                              ProgramRequest222222222222[ProgramRequest222222222222["UNLOAD"] = 5] = "UNLOAD";
                                              return ProgramRequest222222222222;
                                            })(ProgramRequest22222222222 || {});
                                            var ProgramState22222222222 = /* @__PURE__ */ ((ProgramState222222222222) => {
                                              ProgramState222222222222[ProgramState222222222222["IDLE"] = 0] = "IDLE";
                                              ProgramState222222222222[ProgramState222222222222["LOADING"] = 1] = "LOADING";
                                              ProgramState222222222222[ProgramState222222222222["RUNNING"] = 2] = "RUNNING";
                                              ProgramState222222222222[ProgramState222222222222["WAITING"] = 3] = "WAITING";
                                              ProgramState222222222222[ProgramState222222222222["HALTED"] = 4] = "HALTED";
                                              ProgramState222222222222[ProgramState222222222222["UNLOADING"] = 5] = "UNLOADING";
                                              return ProgramState222222222222;
                                            })(ProgramState22222222222 || {});
                                            var PropertyIdentifier22222222222 = /* @__PURE__ */ ((PropertyIdentifier222222222222) => {
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACTION"] = 2] = "ACTION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ALL"] = 8] = "ALL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ARCHIVE"] = 13] = "ARCHIVE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BIAS"] = 14] = "BIAS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BIT_MASK"] = 342] = "BIT_MASK";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CAR_MODE"] = 456] = "CAR_MODE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["COMMAND"] = 417] = "COMMAND";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["COUNT"] = 177] = "COUNT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DATE_LIST"] = 23] = "DATE_LIST";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DEADBAND"] = 25] = "DEADBAND";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ENABLE"] = 133] = "ENABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["GROUP_ID"] = 465] = "GROUP_ID";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["IS_UTC"] = 344] = "IS_UTC";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["KEY_SETS"] = 330] = "KEY_SETS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOCATION"] = 58] = "LOCATION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOCKOUT"] = 282] = "LOCKOUT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MEMBERS"] = 286] = "MEMBERS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MODE"] = 160] = "MODE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OPTIONAL"] = 80] = "OPTIONAL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["POLARITY"] = 84] = "POLARITY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["POWER"] = 384] = "POWER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["POWER_MODE"] = 479] = "POWER_MODE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PRESCALE"] = 185] = "PRESCALE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PRIORITY"] = 86] = "PRIORITY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["READ_ONLY"] = 99] = "READ_ONLY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["RELIABILITY"] = 103] = "RELIABILITY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["REPRESENTS"] = 491] = "REPRESENTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["REQUIRED"] = 105] = "REQUIRED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["RESOLUTION"] = 106] = "RESOLUTION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SCALE"] = 187] = "SCALE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SETPOINT"] = 108] = "SETPOINT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SETTING"] = 162] = "SETTING";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SILENCED"] = 163] = "SILENCED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["START_TIME"] = 142] = "START_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["STOP_TIME"] = 143] = "STOP_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TAGS"] = 486] = "TAGS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TRANSITION"] = 385] = "TRANSITION";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["TRIGGER"] = 205] = "TRIGGER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["UNITS"] = 117] = "UNITS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["USER_NAME"] = 317] = "USER_NAME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["USER_TYPE"] = 318] = "USER_TYPE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["VALUE_SET"] = 191] = "VALUE_SET";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                                              PropertyIdentifier222222222222[PropertyIdentifier222222222222["ZONE_TO"] = 321] = "ZONE_TO";
                                              return PropertyIdentifier222222222222;
                                            })(PropertyIdentifier22222222222 || {});
                                            var ProtocolLevel22222222222 = /* @__PURE__ */ ((ProtocolLevel222222222222) => {
                                              ProtocolLevel222222222222[ProtocolLevel222222222222["PHYSICAL"] = 0] = "PHYSICAL";
                                              ProtocolLevel222222222222[ProtocolLevel222222222222["PROTOCOL"] = 1] = "PROTOCOL";
                                              ProtocolLevel222222222222[ProtocolLevel222222222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                                              ProtocolLevel222222222222[ProtocolLevel222222222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                                              return ProtocolLevel222222222222;
                                            })(ProtocolLevel22222222222 || {});
                                            var Relationship22222222222 = /* @__PURE__ */ ((Relationship222222222222) => {
                                              Relationship222222222222[Relationship222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                              Relationship222222222222[Relationship222222222222["DEFAULT"] = 1] = "DEFAULT";
                                              Relationship222222222222[Relationship222222222222["CONTAINS"] = 2] = "CONTAINS";
                                              Relationship222222222222[Relationship222222222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                                              Relationship222222222222[Relationship222222222222["USES"] = 4] = "USES";
                                              Relationship222222222222[Relationship222222222222["USED_BY"] = 5] = "USED_BY";
                                              Relationship222222222222[Relationship222222222222["COMMANDS"] = 6] = "COMMANDS";
                                              Relationship222222222222[Relationship222222222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                                              Relationship222222222222[Relationship222222222222["ADJUSTS"] = 8] = "ADJUSTS";
                                              Relationship222222222222[Relationship222222222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                                              Relationship222222222222[Relationship222222222222["INGRESS"] = 10] = "INGRESS";
                                              Relationship222222222222[Relationship222222222222["EGRESS"] = 11] = "EGRESS";
                                              Relationship222222222222[Relationship222222222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                                              Relationship222222222222[Relationship222222222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                                              Relationship222222222222[Relationship222222222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                                              Relationship222222222222[Relationship222222222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                                              Relationship222222222222[Relationship222222222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                                              Relationship222222222222[Relationship222222222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                                              Relationship222222222222[Relationship222222222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                                              Relationship222222222222[Relationship222222222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                                              Relationship222222222222[Relationship222222222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                                              Relationship222222222222[Relationship222222222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                                              Relationship222222222222[Relationship222222222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                                              Relationship222222222222[Relationship222222222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                                              Relationship222222222222[Relationship222222222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                                              Relationship222222222222[Relationship222222222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                                              Relationship222222222222[Relationship222222222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                                              Relationship222222222222[Relationship222222222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                                              Relationship222222222222[Relationship222222222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                                              Relationship222222222222[Relationship222222222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                                              return Relationship222222222222;
                                            })(Relationship22222222222 || {});
                                            var Reliability22222222222 = /* @__PURE__ */ ((Reliability222222222222) => {
                                              Reliability222222222222[Reliability222222222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                                              Reliability222222222222[Reliability222222222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                                              Reliability222222222222[Reliability222222222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                                              Reliability222222222222[Reliability222222222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                                              Reliability222222222222[Reliability222222222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                                              Reliability222222222222[Reliability222222222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                                              Reliability222222222222[Reliability222222222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                                              Reliability222222222222[Reliability222222222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                                              Reliability222222222222[Reliability222222222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                                              Reliability222222222222[Reliability222222222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                                              Reliability222222222222[Reliability222222222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                                              Reliability222222222222[Reliability222222222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                                              Reliability222222222222[Reliability222222222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                                              Reliability222222222222[Reliability222222222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                                              Reliability222222222222[Reliability222222222222["TRIPPED"] = 15] = "TRIPPED";
                                              Reliability222222222222[Reliability222222222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                                              Reliability222222222222[Reliability222222222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                                              Reliability222222222222[Reliability222222222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                                              Reliability222222222222[Reliability222222222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                                              Reliability222222222222[Reliability222222222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                                              Reliability222222222222[Reliability222222222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                                              Reliability222222222222[Reliability222222222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                                              Reliability222222222222[Reliability222222222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                                              Reliability222222222222[Reliability222222222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                                              return Reliability222222222222;
                                            })(Reliability22222222222 || {});
                                            var RestartReason22222222222 = /* @__PURE__ */ ((RestartReason222222222222) => {
                                              RestartReason222222222222[RestartReason222222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                              RestartReason222222222222[RestartReason222222222222["COLDSTART"] = 1] = "COLDSTART";
                                              RestartReason222222222222[RestartReason222222222222["WARMSTART"] = 2] = "WARMSTART";
                                              RestartReason222222222222[RestartReason222222222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                                              RestartReason222222222222[RestartReason222222222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                                              RestartReason222222222222[RestartReason222222222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                                              RestartReason222222222222[RestartReason222222222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                                              RestartReason222222222222[RestartReason222222222222["SUSPENDED"] = 7] = "SUSPENDED";
                                              RestartReason222222222222[RestartReason222222222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                                              return RestartReason222222222222;
                                            })(RestartReason22222222222 || {});
                                            var SecurityLevel22222222222 = /* @__PURE__ */ ((SecurityLevel222222222222) => {
                                              SecurityLevel222222222222[SecurityLevel222222222222["INCAPABLE"] = 0] = "INCAPABLE";
                                              SecurityLevel222222222222[SecurityLevel222222222222["PLAIN"] = 1] = "PLAIN";
                                              SecurityLevel222222222222[SecurityLevel222222222222["SIGNED"] = 2] = "SIGNED";
                                              SecurityLevel222222222222[SecurityLevel222222222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                                              SecurityLevel222222222222[SecurityLevel222222222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                                              SecurityLevel222222222222[SecurityLevel222222222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                                              return SecurityLevel222222222222;
                                            })(SecurityLevel22222222222 || {});
                                            var SecurityPolicy22222222222 = /* @__PURE__ */ ((SecurityPolicy222222222222) => {
                                              SecurityPolicy222222222222[SecurityPolicy222222222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                                              SecurityPolicy222222222222[SecurityPolicy222222222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                                              SecurityPolicy222222222222[SecurityPolicy222222222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                                              SecurityPolicy222222222222[SecurityPolicy222222222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                                              return SecurityPolicy222222222222;
                                            })(SecurityPolicy22222222222 || {});
                                            var Segmentation22222222222 = /* @__PURE__ */ ((Segmentation222222222222) => {
                                              Segmentation222222222222[Segmentation222222222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                                              Segmentation222222222222[Segmentation222222222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                                              Segmentation222222222222[Segmentation222222222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                                              Segmentation222222222222[Segmentation222222222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                                              return Segmentation222222222222;
                                            })(Segmentation22222222222 || {});
                                            var ShedState22222222222 = /* @__PURE__ */ ((ShedState222222222222) => {
                                              ShedState222222222222[ShedState222222222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                                              ShedState222222222222[ShedState222222222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                                              ShedState222222222222[ShedState222222222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                                              ShedState222222222222[ShedState222222222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                                              return ShedState222222222222;
                                            })(ShedState22222222222 || {});
                                            var SilencedState22222222222 = /* @__PURE__ */ ((SilencedState222222222222) => {
                                              SilencedState222222222222[SilencedState222222222222["UNSILENCED"] = 0] = "UNSILENCED";
                                              SilencedState222222222222[SilencedState222222222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                                              SilencedState222222222222[SilencedState222222222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                                              SilencedState222222222222[SilencedState222222222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                                              return SilencedState222222222222;
                                            })(SilencedState22222222222 || {});
                                            var TimerState22222222222 = /* @__PURE__ */ ((TimerState222222222222) => {
                                              TimerState222222222222[TimerState222222222222["IDLE"] = 0] = "IDLE";
                                              TimerState222222222222[TimerState222222222222["RUNNING"] = 1] = "RUNNING";
                                              TimerState222222222222[TimerState222222222222["EXPIRED"] = 2] = "EXPIRED";
                                              return TimerState222222222222;
                                            })(TimerState22222222222 || {});
                                            var TimerTransition22222222222 = /* @__PURE__ */ ((TimerTransition222222222222) => {
                                              TimerTransition222222222222[TimerTransition222222222222["NONE"] = 0] = "NONE";
                                              TimerTransition222222222222[TimerTransition222222222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                                              TimerTransition222222222222[TimerTransition222222222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                                              TimerTransition222222222222[TimerTransition222222222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                                              TimerTransition222222222222[TimerTransition222222222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                                              TimerTransition222222222222[TimerTransition222222222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                                              TimerTransition222222222222[TimerTransition222222222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                                              TimerTransition222222222222[TimerTransition222222222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                                              return TimerTransition222222222222;
                                            })(TimerTransition22222222222 || {});
                                            var VTClass22222222222 = /* @__PURE__ */ ((VTClass222222222222) => {
                                              VTClass222222222222[VTClass222222222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                                              VTClass222222222222[VTClass222222222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                                              VTClass222222222222[VTClass222222222222["DEC_VT52"] = 2] = "DEC_VT52";
                                              VTClass222222222222[VTClass222222222222["DEC_VT100"] = 3] = "DEC_VT100";
                                              VTClass222222222222[VTClass222222222222["DEC_VT220"] = 4] = "DEC_VT220";
                                              VTClass222222222222[VTClass222222222222["HP_700_94"] = 5] = "HP_700_94";
                                              VTClass222222222222[VTClass222222222222["IBM_3130"] = 6] = "IBM_3130";
                                              return VTClass222222222222;
                                            })(VTClass22222222222 || {});
                                            var WriteStatus22222222222 = /* @__PURE__ */ ((WriteStatus222222222222) => {
                                              WriteStatus222222222222[WriteStatus222222222222["IDLE"] = 0] = "IDLE";
                                              WriteStatus222222222222[WriteStatus222222222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                                              WriteStatus222222222222[WriteStatus222222222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                                              WriteStatus222222222222[WriteStatus222222222222["FAILED"] = 3] = "FAILED";
                                              return WriteStatus222222222222;
                                            })(WriteStatus22222222222 || {});
                                            var DaysOfWeek22222222222 = /* @__PURE__ */ ((DaysOfWeek222222222222) => {
                                              DaysOfWeek222222222222[DaysOfWeek222222222222["MONDAY"] = 0] = "MONDAY";
                                              DaysOfWeek222222222222[DaysOfWeek222222222222["TUESDAY"] = 1] = "TUESDAY";
                                              DaysOfWeek222222222222[DaysOfWeek222222222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                                              DaysOfWeek222222222222[DaysOfWeek222222222222["THURSDAY"] = 3] = "THURSDAY";
                                              DaysOfWeek222222222222[DaysOfWeek222222222222["FRIDAY"] = 4] = "FRIDAY";
                                              DaysOfWeek222222222222[DaysOfWeek222222222222["SATURDAY"] = 5] = "SATURDAY";
                                              DaysOfWeek222222222222[DaysOfWeek222222222222["SUNDAY"] = 6] = "SUNDAY";
                                              return DaysOfWeek222222222222;
                                            })(DaysOfWeek22222222222 || {});
                                            var EventTransitionBits22222222222 = /* @__PURE__ */ ((EventTransitionBits222222222222) => {
                                              EventTransitionBits222222222222[EventTransitionBits222222222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                                              EventTransitionBits222222222222[EventTransitionBits222222222222["TO_FAULT"] = 1] = "TO_FAULT";
                                              EventTransitionBits222222222222[EventTransitionBits222222222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                                              return EventTransitionBits222222222222;
                                            })(EventTransitionBits22222222222 || {});
                                            var LimitEnable22222222222 = /* @__PURE__ */ ((LimitEnable222222222222) => {
                                              LimitEnable222222222222[LimitEnable222222222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                                              LimitEnable222222222222[LimitEnable222222222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                                              return LimitEnable222222222222;
                                            })(LimitEnable22222222222 || {});
                                            var LogStatus22222222222 = /* @__PURE__ */ ((LogStatus222222222222) => {
                                              LogStatus222222222222[LogStatus222222222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                                              LogStatus222222222222[LogStatus222222222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                                              LogStatus222222222222[LogStatus222222222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                                              return LogStatus222222222222;
                                            })(LogStatus22222222222 || {});
                                            var ObjectTypesSupported22222222222 = /* @__PURE__ */ ((ObjectTypesSupported222222222222) => {
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["CALENDAR"] = 6] = "CALENDAR";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["COMMAND"] = 7] = "COMMAND";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["DEVICE"] = 8] = "DEVICE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["FILE"] = 10] = "FILE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["GROUP"] = 11] = "GROUP";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["LOOP"] = 12] = "LOOP";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["PROGRAM"] = 16] = "PROGRAM";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["AVERAGING"] = 18] = "AVERAGING";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["TIMER"] = 31] = "TIMER";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["CHANNEL"] = 53] = "CHANNEL";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                              ObjectTypesSupported222222222222[ObjectTypesSupported222222222222["LIFT"] = 59] = "LIFT";
                                              return ObjectTypesSupported222222222222;
                                            })(ObjectTypesSupported22222222222 || {});
                                            var ResultFlags22222222222 = /* @__PURE__ */ ((ResultFlags222222222222) => {
                                              ResultFlags222222222222[ResultFlags222222222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                                              ResultFlags222222222222[ResultFlags222222222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                                              ResultFlags222222222222[ResultFlags222222222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                                              return ResultFlags222222222222;
                                            })(ResultFlags22222222222 || {});
                                            var ServicesSupported22222222222 = /* @__PURE__ */ ((ServicesSupported222222222222) => {
                                              ServicesSupported222222222222[ServicesSupported222222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                              ServicesSupported222222222222[ServicesSupported222222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                              ServicesSupported222222222222[ServicesSupported222222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                              ServicesSupported222222222222[ServicesSupported222222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                              ServicesSupported222222222222[ServicesSupported222222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                              ServicesSupported222222222222[ServicesSupported222222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                              ServicesSupported222222222222[ServicesSupported222222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                              ServicesSupported222222222222[ServicesSupported222222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                              ServicesSupported222222222222[ServicesSupported222222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                              ServicesSupported222222222222[ServicesSupported222222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                              ServicesSupported222222222222[ServicesSupported222222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                              ServicesSupported222222222222[ServicesSupported222222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                              ServicesSupported222222222222[ServicesSupported222222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                              ServicesSupported222222222222[ServicesSupported222222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                              ServicesSupported222222222222[ServicesSupported222222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                              ServicesSupported222222222222[ServicesSupported222222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["VT_DATA"] = 23] = "VT_DATA";
                                              ServicesSupported222222222222[ServicesSupported222222222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                                              ServicesSupported222222222222[ServicesSupported222222222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                                              ServicesSupported222222222222[ServicesSupported222222222222["I_AM"] = 26] = "I_AM";
                                              ServicesSupported222222222222[ServicesSupported222222222222["I_HAVE"] = 27] = "I_HAVE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                                              ServicesSupported222222222222[ServicesSupported222222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                              ServicesSupported222222222222[ServicesSupported222222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                              ServicesSupported222222222222[ServicesSupported222222222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                                              ServicesSupported222222222222[ServicesSupported222222222222["WHO_HAS"] = 33] = "WHO_HAS";
                                              ServicesSupported222222222222[ServicesSupported222222222222["WHO_IS"] = 34] = "WHO_IS";
                                              ServicesSupported222222222222[ServicesSupported222222222222["READ_RANGE"] = 35] = "READ_RANGE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                                              ServicesSupported222222222222[ServicesSupported222222222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                                              ServicesSupported222222222222[ServicesSupported222222222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                                              ServicesSupported222222222222[ServicesSupported222222222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                                              ServicesSupported222222222222[ServicesSupported222222222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                                              ServicesSupported222222222222[ServicesSupported222222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                              ServicesSupported222222222222[ServicesSupported222222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                              return ServicesSupported222222222222;
                                            })(ServicesSupported22222222222 || {});
                                            var StatusFlags22222222222 = /* @__PURE__ */ ((StatusFlags222222222222) => {
                                              StatusFlags222222222222[StatusFlags222222222222["IN_ALARM"] = 0] = "IN_ALARM";
                                              StatusFlags222222222222[StatusFlags222222222222["FAULT"] = 1] = "FAULT";
                                              StatusFlags222222222222[StatusFlags222222222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                                              StatusFlags222222222222[StatusFlags222222222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                                              return StatusFlags222222222222;
                                            })(StatusFlags22222222222 || {});
                                            var ApplicationTag22222222222 = /* @__PURE__ */ ((ApplicationTag222222222222) => {
                                              ApplicationTag222222222222[ApplicationTag222222222222["NULL"] = 0] = "NULL";
                                              ApplicationTag222222222222[ApplicationTag222222222222["BOOLEAN"] = 1] = "BOOLEAN";
                                              ApplicationTag222222222222[ApplicationTag222222222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                                              ApplicationTag222222222222[ApplicationTag222222222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                                              ApplicationTag222222222222[ApplicationTag222222222222["REAL"] = 4] = "REAL";
                                              ApplicationTag222222222222[ApplicationTag222222222222["DOUBLE"] = 5] = "DOUBLE";
                                              ApplicationTag222222222222[ApplicationTag222222222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                                              ApplicationTag222222222222[ApplicationTag222222222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                                              ApplicationTag222222222222[ApplicationTag222222222222["BIT_STRING"] = 8] = "BIT_STRING";
                                              ApplicationTag222222222222[ApplicationTag222222222222["ENUMERATED"] = 9] = "ENUMERATED";
                                              ApplicationTag222222222222[ApplicationTag222222222222["DATE"] = 10] = "DATE";
                                              ApplicationTag222222222222[ApplicationTag222222222222["TIME"] = 11] = "TIME";
                                              ApplicationTag222222222222[ApplicationTag222222222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                                              ApplicationTag222222222222[ApplicationTag222222222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                                              ApplicationTag222222222222[ApplicationTag222222222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                                              ApplicationTag222222222222[ApplicationTag222222222222["DATERANGE"] = 102] = "DATERANGE";
                                              ApplicationTag222222222222[ApplicationTag222222222222["DATETIME"] = 103] = "DATETIME";
                                              ApplicationTag222222222222[ApplicationTag222222222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                                              ApplicationTag222222222222[ApplicationTag222222222222["ERROR"] = 105] = "ERROR";
                                              ApplicationTag222222222222[ApplicationTag222222222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                                              ApplicationTag222222222222[ApplicationTag222222222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                                              ApplicationTag222222222222[ApplicationTag222222222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                                              ApplicationTag222222222222[ApplicationTag222222222222["DESTINATION"] = 109] = "DESTINATION";
                                              ApplicationTag222222222222[ApplicationTag222222222222["RECIPIENT"] = 110] = "RECIPIENT";
                                              ApplicationTag222222222222[ApplicationTag222222222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                                              ApplicationTag222222222222[ApplicationTag222222222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                                              ApplicationTag222222222222[ApplicationTag222222222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                                              ApplicationTag222222222222[ApplicationTag222222222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                                              ApplicationTag222222222222[ApplicationTag222222222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                                              ApplicationTag222222222222[ApplicationTag222222222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                                              ApplicationTag222222222222[ApplicationTag222222222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                                              ApplicationTag222222222222[ApplicationTag222222222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                                              ApplicationTag222222222222[ApplicationTag222222222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                                              ApplicationTag222222222222[ApplicationTag222222222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                                              return ApplicationTag222222222222;
                                            })(ApplicationTag22222222222 || {});
                                            var ApplicationTagName22222222222 = invertEnum22222222222(
                                              ApplicationTag22222222222
                                            );
                                            var BvlcResultFormat22222222222 = /* @__PURE__ */ ((BvlcResultFormat222222222222) => {
                                              BvlcResultFormat222222222222[BvlcResultFormat222222222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                                              BvlcResultFormat222222222222[BvlcResultFormat222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                              BvlcResultFormat222222222222[BvlcResultFormat222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                              BvlcResultFormat222222222222[BvlcResultFormat222222222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                                              BvlcResultFormat222222222222[BvlcResultFormat222222222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                                              BvlcResultFormat222222222222[BvlcResultFormat222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                                              BvlcResultFormat222222222222[BvlcResultFormat222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                                              return BvlcResultFormat222222222222;
                                            })(BvlcResultFormat22222222222 || {});
                                            var BvlcResultPurpose22222222222 = /* @__PURE__ */ ((BvlcResultPurpose222222222222) => {
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                                              BvlcResultPurpose222222222222[BvlcResultPurpose222222222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                                              return BvlcResultPurpose222222222222;
                                            })(BvlcResultPurpose22222222222 || {});
                                            var CharacterStringEncoding22222222222 = /* @__PURE__ */ ((CharacterStringEncoding222222222222) => {
                                              CharacterStringEncoding222222222222[CharacterStringEncoding222222222222["UTF_8"] = 0] = "UTF_8";
                                              CharacterStringEncoding222222222222[CharacterStringEncoding222222222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                                              CharacterStringEncoding222222222222[CharacterStringEncoding222222222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                                              CharacterStringEncoding222222222222[CharacterStringEncoding222222222222["UCS_4"] = 3] = "UCS_4";
                                              CharacterStringEncoding222222222222[CharacterStringEncoding222222222222["UCS_2"] = 4] = "UCS_2";
                                              CharacterStringEncoding222222222222[CharacterStringEncoding222222222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                                              return CharacterStringEncoding222222222222;
                                            })(CharacterStringEncoding22222222222 || {});
                                            var CovType22222222222 = /* @__PURE__ */ ((CovType222222222222) => {
                                              CovType222222222222[CovType222222222222["REAL"] = 0] = "REAL";
                                              CovType222222222222[CovType222222222222["BIT_STRING"] = 1] = "BIT_STRING";
                                              return CovType222222222222;
                                            })(CovType22222222222 || {});
                                            var EnableDisable22222222222 = /* @__PURE__ */ ((EnableDisable222222222222) => {
                                              EnableDisable222222222222[EnableDisable222222222222["ENABLE"] = 0] = "ENABLE";
                                              EnableDisable222222222222[EnableDisable222222222222["DISABLE"] = 1] = "DISABLE";
                                              EnableDisable222222222222[EnableDisable222222222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                                              return EnableDisable222222222222;
                                            })(EnableDisable22222222222 || {});
                                            var MaxApduLengthAccepted22222222222 = /* @__PURE__ */ ((MaxApduLengthAccepted222222222222) => {
                                              MaxApduLengthAccepted222222222222[MaxApduLengthAccepted222222222222["OCTETS_50"] = 0] = "OCTETS_50";
                                              MaxApduLengthAccepted222222222222[MaxApduLengthAccepted222222222222["OCTETS_128"] = 1] = "OCTETS_128";
                                              MaxApduLengthAccepted222222222222[MaxApduLengthAccepted222222222222["OCTETS_206"] = 2] = "OCTETS_206";
                                              MaxApduLengthAccepted222222222222[MaxApduLengthAccepted222222222222["OCTETS_480"] = 3] = "OCTETS_480";
                                              MaxApduLengthAccepted222222222222[MaxApduLengthAccepted222222222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                                              MaxApduLengthAccepted222222222222[MaxApduLengthAccepted222222222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                                              return MaxApduLengthAccepted222222222222;
                                            })(MaxApduLengthAccepted22222222222 || {});
                                            var MaxSegmentsAccepted22222222222 = /* @__PURE__ */ ((MaxSegmentsAccepted222222222222) => {
                                              MaxSegmentsAccepted222222222222[MaxSegmentsAccepted222222222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                                              MaxSegmentsAccepted222222222222[MaxSegmentsAccepted222222222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                                              MaxSegmentsAccepted222222222222[MaxSegmentsAccepted222222222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                                              MaxSegmentsAccepted222222222222[MaxSegmentsAccepted222222222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                                              MaxSegmentsAccepted222222222222[MaxSegmentsAccepted222222222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                                              MaxSegmentsAccepted222222222222[MaxSegmentsAccepted222222222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                                              MaxSegmentsAccepted222222222222[MaxSegmentsAccepted222222222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                                              MaxSegmentsAccepted222222222222[MaxSegmentsAccepted222222222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                                              return MaxSegmentsAccepted222222222222;
                                            })(MaxSegmentsAccepted22222222222 || {});
                                            var NetworkLayerMessageType22222222222 = /* @__PURE__ */ ((NetworkLayerMessageType222222222222) => {
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                                              NetworkLayerMessageType222222222222[NetworkLayerMessageType222222222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                                              return NetworkLayerMessageType222222222222;
                                            })(NetworkLayerMessageType22222222222 || {});
                                            var NpduControlBit22222222222 = /* @__PURE__ */ ((NpduControlBit222222222222) => {
                                              NpduControlBit222222222222[NpduControlBit222222222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                                              NpduControlBit222222222222[NpduControlBit222222222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                                              NpduControlBit222222222222[NpduControlBit222222222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                                              NpduControlBit222222222222[NpduControlBit222222222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                                              return NpduControlBit222222222222;
                                            })(NpduControlBit22222222222 || {});
                                            var NpduControlPriority22222222222 = /* @__PURE__ */ ((NpduControlPriority222222222222) => {
                                              NpduControlPriority222222222222[NpduControlPriority222222222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                                              NpduControlPriority222222222222[NpduControlPriority222222222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                                              NpduControlPriority222222222222[NpduControlPriority222222222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                                              NpduControlPriority222222222222[NpduControlPriority222222222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                                              return NpduControlPriority222222222222;
                                            })(NpduControlPriority22222222222 || {});
                                            var PduConReqBit22222222222 = /* @__PURE__ */ ((PduConReqBit222222222222) => {
                                              PduConReqBit222222222222[PduConReqBit222222222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                                              PduConReqBit222222222222[PduConReqBit222222222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                                              PduConReqBit222222222222[PduConReqBit222222222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                                              return PduConReqBit222222222222;
                                            })(PduConReqBit22222222222 || {});
                                            var PduSegAckBit22222222222 = /* @__PURE__ */ ((PduSegAckBit222222222222) => {
                                              PduSegAckBit222222222222[PduSegAckBit222222222222["SERVER"] = 1] = "SERVER";
                                              PduSegAckBit222222222222[PduSegAckBit222222222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                                              return PduSegAckBit222222222222;
                                            })(PduSegAckBit22222222222 || {});
                                            var PduType22222222222 = /* @__PURE__ */ ((PduType222222222222) => {
                                              PduType222222222222[PduType222222222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                                              PduType222222222222[PduType222222222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                                              PduType222222222222[PduType222222222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                                              PduType222222222222[PduType222222222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                                              PduType222222222222[PduType222222222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                                              PduType222222222222[PduType222222222222["ERROR"] = 80] = "ERROR";
                                              PduType222222222222[PduType222222222222["REJECT"] = 96] = "REJECT";
                                              PduType222222222222[PduType222222222222["ABORT"] = 112] = "ABORT";
                                              return PduType222222222222;
                                            })(PduType22222222222 || {});
                                            var PropertyStates22222222222 = /* @__PURE__ */ ((PropertyStates222222222222) => {
                                              PropertyStates222222222222[PropertyStates222222222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                                              PropertyStates222222222222[PropertyStates222222222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                                              PropertyStates222222222222[PropertyStates222222222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                                              PropertyStates222222222222[PropertyStates222222222222["POLARITY"] = 3] = "POLARITY";
                                              PropertyStates222222222222[PropertyStates222222222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                                              PropertyStates222222222222[PropertyStates222222222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                                              PropertyStates222222222222[PropertyStates222222222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                                              PropertyStates222222222222[PropertyStates222222222222["RELIABILITY"] = 7] = "RELIABILITY";
                                              PropertyStates222222222222[PropertyStates222222222222["STATE"] = 8] = "STATE";
                                              PropertyStates222222222222[PropertyStates222222222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                                              PropertyStates222222222222[PropertyStates222222222222["UNITS"] = 10] = "UNITS";
                                              PropertyStates222222222222[PropertyStates222222222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                                              PropertyStates222222222222[PropertyStates222222222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                                              PropertyStates222222222222[PropertyStates222222222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                                              PropertyStates222222222222[PropertyStates222222222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                                              PropertyStates222222222222[PropertyStates222222222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                                              PropertyStates222222222222[PropertyStates222222222222["ACTION"] = 16] = "ACTION";
                                              PropertyStates222222222222[PropertyStates222222222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                                              PropertyStates222222222222[PropertyStates222222222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                                              PropertyStates222222222222[PropertyStates222222222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                                              PropertyStates222222222222[PropertyStates222222222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                                              PropertyStates222222222222[PropertyStates222222222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                                              PropertyStates222222222222[PropertyStates222222222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                                              PropertyStates222222222222[PropertyStates222222222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                                              PropertyStates222222222222[PropertyStates222222222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                                              PropertyStates222222222222[PropertyStates222222222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                                              PropertyStates222222222222[PropertyStates222222222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                                              PropertyStates222222222222[PropertyStates222222222222["SHED_STATE"] = 27] = "SHED_STATE";
                                              PropertyStates222222222222[PropertyStates222222222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                                              PropertyStates222222222222[PropertyStates222222222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                                              PropertyStates222222222222[PropertyStates222222222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                                              PropertyStates222222222222[PropertyStates222222222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                                              PropertyStates222222222222[PropertyStates222222222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                                              PropertyStates222222222222[PropertyStates222222222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                                              PropertyStates222222222222[PropertyStates222222222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                                              PropertyStates222222222222[PropertyStates222222222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                                              PropertyStates222222222222[PropertyStates222222222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                                              PropertyStates222222222222[PropertyStates222222222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                                              PropertyStates222222222222[PropertyStates222222222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                                              PropertyStates222222222222[PropertyStates222222222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                                              PropertyStates222222222222[PropertyStates222222222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                                              PropertyStates222222222222[PropertyStates222222222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                                              PropertyStates222222222222[PropertyStates222222222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                                              PropertyStates222222222222[PropertyStates222222222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                                              PropertyStates222222222222[PropertyStates222222222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                                              PropertyStates222222222222[PropertyStates222222222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                                              PropertyStates222222222222[PropertyStates222222222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                                              PropertyStates222222222222[PropertyStates222222222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                                              PropertyStates222222222222[PropertyStates222222222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                                              PropertyStates222222222222[PropertyStates222222222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                                              PropertyStates222222222222[PropertyStates222222222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                                              PropertyStates222222222222[PropertyStates222222222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                                              PropertyStates222222222222[PropertyStates222222222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                                              PropertyStates222222222222[PropertyStates222222222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                                              PropertyStates222222222222[PropertyStates222222222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                                              PropertyStates222222222222[PropertyStates222222222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                                              PropertyStates222222222222[PropertyStates222222222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                                              PropertyStates222222222222[PropertyStates222222222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                                              return PropertyStates222222222222;
                                            })(PropertyStates22222222222 || {});
                                            var ReadRangeType22222222222 = /* @__PURE__ */ ((ReadRangeType222222222222) => {
                                              ReadRangeType222222222222[ReadRangeType222222222222["BY_POSITION"] = 0] = "BY_POSITION";
                                              ReadRangeType222222222222[ReadRangeType222222222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                                              ReadRangeType222222222222[ReadRangeType222222222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                                              return ReadRangeType222222222222;
                                            })(ReadRangeType22222222222 || {});
                                            var ReinitializedState22222222222 = /* @__PURE__ */ ((ReinitializedState222222222222) => {
                                              ReinitializedState222222222222[ReinitializedState222222222222["COLDSTART"] = 0] = "COLDSTART";
                                              ReinitializedState222222222222[ReinitializedState222222222222["WARMSTART"] = 1] = "WARMSTART";
                                              ReinitializedState222222222222[ReinitializedState222222222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                                              ReinitializedState222222222222[ReinitializedState222222222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                                              ReinitializedState222222222222[ReinitializedState222222222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                                              ReinitializedState222222222222[ReinitializedState222222222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                                              ReinitializedState222222222222[ReinitializedState222222222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                                              ReinitializedState222222222222[ReinitializedState222222222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                                              return ReinitializedState222222222222;
                                            })(ReinitializedState22222222222 || {});
                                            var TimeStamp22222222222 = /* @__PURE__ */ ((TimeStamp222222222222) => {
                                              TimeStamp222222222222[TimeStamp222222222222["TIME"] = 0] = "TIME";
                                              TimeStamp222222222222[TimeStamp222222222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                                              TimeStamp222222222222[TimeStamp222222222222["DATETIME"] = 2] = "DATETIME";
                                              return TimeStamp222222222222;
                                            })(TimeStamp22222222222 || {});
                                            var import_events222222222222 = __toESM22222222222(require("events"));
                                            var import_debug322222222222 = __toESM22222222222(require("debug"));
                                            var import_dgram22222222222 = require("dgram");
                                            var import_events32222222222 = __toESM22222222222(require("events"));
                                            var import_debug222222222222 = __toESM22222222222(require("debug"));
                                            var EventEmitter32222222222 = import_events32222222222.default.EventEmitter;
                                            var debug222222222222 = (0, import_debug222222222222.default)("bacnet:client:debug");
                                            var DEFAULT_BACNET_PORT32222222222 = 47808;
                                            var Transport22222222222 = class extends EventEmitter32222222222 {
                                              constructor(settings) {
                                                super();
                                                this._lastSendMessages = {};
                                                this._settings = settings;
                                                this._server = (0, import_dgram22222222222.createSocket)({
                                                  type: "udp4",
                                                  reuseAddr: settings.reuseAddr
                                                });
                                                this._server.on("message", (msg, rinfo) => {
                                                  if (this.ownAddress.port === rinfo.port) {
                                                    for (let [messageKey, earlierSentBuffer] of Object.entries(
                                                      this._lastSendMessages
                                                    )) {
                                                      if (msg.equals(earlierSentBuffer)) {
                                                        debug222222222222(
                                                          `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                                        );
                                                        return;
                                                      }
                                                    }
                                                  }
                                                  debug222222222222(
                                                    `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                                      "hex"
                                                    )}`
                                                  );
                                                  this.emit(
                                                    "message",
                                                    msg,
                                                    rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT32222222222 ? "" : ":" + rinfo.port)
                                                  );
                                                });
                                                this._server.on("listening", () => {
                                                  this.ownAddress = this._server.address();
                                                  debug222222222222(
                                                    `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                                                  );
                                                  this.emit("listening", this.ownAddress);
                                                });
                                                this._server.on("error", (err) => {
                                                  debug222222222222("transport error", err.message);
                                                  this.emit("error", err);
                                                });
                                                this._server.on("close", () => {
                                                  debug222222222222("transport closed");
                                                  this.emit("close");
                                                });
                                              }
                                              getBroadcastAddress() {
                                                return this._settings.broadcastAddress;
                                              }
                                              getMaxPayload() {
                                                return 1482;
                                              }
                                              send(buffer, offset, receiver) {
                                                if (!receiver) {
                                                  receiver = this.getBroadcastAddress();
                                                  const dataToSend = Buffer.alloc(offset);
                                                  const hrTime = process.hrtime();
                                                  const messageKey = hrTime[0] * 1e9 + hrTime[1];
                                                  buffer.copy(dataToSend, 0, 0, offset);
                                                  this._lastSendMessages[messageKey] = dataToSend;
                                                  setTimeout(() => {
                                                    delete this._lastSendMessages[messageKey];
                                                  }, 1e4);
                                                }
                                                const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                                                const [address, port] = receiverAddress.split(":");
                                                debug222222222222(
                                                  "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                                                );
                                                this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT32222222222, address);
                                              }
                                              open() {
                                                this._server.bind(this._settings.port, this._settings.interface, () => {
                                                  this._server.setBroadcast(true);
                                                });
                                              }
                                              close() {
                                                this._server.close();
                                              }
                                            };
                                            var services_exports22222222222 = {};
                                            __export22222222222(services_exports22222222222, {
                                              addListElement: () => add_list_element_exports22222222222,
                                              alarmAcknowledge: () => alarm_acknowledge_exports22222222222,
                                              alarmSummary: () => alarm_summary_exports22222222222,
                                              atomicReadFile: () => atomic_read_file_exports22222222222,
                                              atomicWriteFile: () => atomic_write_file_exports22222222222,
                                              covNotify: () => cov_notify_exports22222222222,
                                              covNotifyUnconfirmed: () => cov_notify_exports22222222222,
                                              createObject: () => create_object_exports22222222222,
                                              deleteObject: () => delete_object_exports22222222222,
                                              deviceCommunicationControl: () => device_communication_control_exports22222222222,
                                              error: () => error_exports22222222222,
                                              eventInformation: () => event_information_exports22222222222,
                                              eventNotifyData: () => event_notify_data_exports22222222222,
                                              getEnrollmentSummary: () => get_enrollment_summary_exports22222222222,
                                              getEventInformation: () => get_event_information_exports22222222222,
                                              iAm: () => i_am_exports22222222222,
                                              iHave: () => i_have_exports22222222222,
                                              lifeSafetyOperation: () => life_safety_operation_exports22222222222,
                                              privateTransfer: () => private_transfer_exports22222222222,
                                              readProperty: () => read_property_exports22222222222,
                                              readPropertyMultiple: () => read_property_multiple_exports22222222222,
                                              readRange: () => read_range_exports22222222222,
                                              registerForeignDevice: () => register_foreign_device_exports22222222222,
                                              reinitializeDevice: () => reinitialize_device_exports22222222222,
                                              subscribeCov: () => subscribe_cov_exports22222222222,
                                              subscribeProperty: () => subscribe_property_exports22222222222,
                                              timeSync: () => time_sync_exports22222222222,
                                              timeSyncUTC: () => time_sync_exports22222222222,
                                              whoHas: () => who_has_exports22222222222,
                                              whoIs: () => who_is_exports22222222222,
                                              writeProperty: () => write_property_exports22222222222,
                                              writePropertyMultiple: () => write_property_multiple_exports22222222222
                                            });
                                            var add_list_element_exports22222222222 = {};
                                            __export22222222222(add_list_element_exports22222222222, {
                                              decode: () => decode332222222222,
                                              encode: () => encode332222222222
                                            });
                                            var import_iconv_lite22222222222 = __toESM22222222222(require("iconv-lite"));
                                            var enums_default22222222222 = enum_exports22222222222;
                                            var START_YEAR22222222222 = 1900;
                                            var MAX_YEARS22222222222 = 256;
                                            var getBuffer22222222222 = () => {
                                              return {
                                                buffer: Buffer.alloc(1472),
                                                offset: 0
                                              };
                                            };
                                            var getSignedLength22222222222 = (value) => {
                                              if (value >= -128 && value < 128)
                                                return 1;
                                              else if (value >= -32768 && value < 32768)
                                                return 2;
                                              else if (value > -8388608 && value < 8388608)
                                                return 3;
                                              else
                                                return 4;
                                            };
                                            var getUnsignedLength22222222222 = (value) => {
                                              if (value < 256)
                                                return 1;
                                              else if (value < 65536)
                                                return 2;
                                              else if (value < 16777216)
                                                return 3;
                                              else
                                                return 4;
                                            };
                                            var getEncodingType22222222222 = (encoding, decodingBuffer, decodingOffset) => {
                                              switch (encoding) {
                                                case enums_default22222222222.CharacterStringEncoding.UCS_2:
                                                  if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                                    return "ucs2";
                                                  }
                                                  return "UTF-16BE";
                                                case enums_default22222222222.CharacterStringEncoding.ISO_8859_1:
                                                  return "latin1";
                                                case enums_default22222222222.CharacterStringEncoding.MICROSOFT_DBCS:
                                                  return "cp850";
                                                case enums_default22222222222.CharacterStringEncoding.JIS_X_0208:
                                                  return "Shift_JIS";
                                                default:
                                                  return "utf8";
                                              }
                                            };
                                            var encodeUnsigned22222222222 = (buffer, value, length) => {
                                              buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                                              buffer.offset += length;
                                            };
                                            var encodeBacnetUnsigned22222222222 = (buffer, value) => {
                                              encodeUnsigned22222222222(buffer, value, getUnsignedLength22222222222(value));
                                            };
                                            var encodeSigned22222222222 = (buffer, value, length) => {
                                              buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                                              buffer.offset += length;
                                            };
                                            var encodeBacnetSigned22222222222 = (buffer, value) => {
                                              encodeSigned22222222222(buffer, value, getSignedLength22222222222(value));
                                            };
                                            var encodeBacnetReal22222222222 = (buffer, value) => {
                                              buffer.buffer.writeFloatBE(value, buffer.offset, true);
                                              buffer.offset += 4;
                                            };
                                            var encodeBacnetDouble22222222222 = (buffer, value) => {
                                              buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                                              buffer.offset += 8;
                                            };
                                            var decodeUnsigned22222222222 = (buffer, offset, length) => {
                                              if (length === 0) {
                                                return {
                                                  len: 0,
                                                  value: 0
                                                };
                                              }
                                              return {
                                                len: length,
                                                //@ts-ignore
                                                value: buffer.readUIntBE(offset, length)
                                              };
                                            };
                                            var decodeEnumerated22222222222 = (buffer, offset, length) => {
                                              return decodeUnsigned22222222222(buffer, offset, length);
                                            };
                                            var encodeBacnetObjectId22222222222 = (buffer, objectType, instance) => {
                                              const value = ((objectType & enums_default22222222222.ASN1_MAX_OBJECT) << enums_default22222222222.ASN1_INSTANCE_BITS | instance & enums_default22222222222.ASN1_MAX_INSTANCE) >>> 0;
                                              encodeUnsigned22222222222(buffer, value, 4);
                                            };
                                            var encodeTag22222222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                                              let len = 1;
                                              const tmp = new Array(3);
                                              tmp[0] = 0;
                                              if (contextSpecific) {
                                                tmp[0] |= 8;
                                              }
                                              if (tagNumber <= 14) {
                                                tmp[0] |= tagNumber << 4;
                                              } else {
                                                tmp[0] |= 240;
                                                tmp[1] = tagNumber;
                                                len++;
                                              }
                                              if (lenValueType <= 4) {
                                                tmp[0] |= lenValueType;
                                                Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                buffer.offset += len;
                                              } else {
                                                tmp[0] |= 5;
                                                if (lenValueType <= 253) {
                                                  tmp[len++] = lenValueType;
                                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                  buffer.offset += len;
                                                } else if (lenValueType <= 65535) {
                                                  tmp[len++] = 254;
                                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                  buffer.offset += len;
                                                  encodeUnsigned22222222222(buffer, lenValueType, 2);
                                                } else {
                                                  tmp[len++] = 255;
                                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                                  buffer.offset += len;
                                                  encodeUnsigned22222222222(buffer, lenValueType, 4);
                                                }
                                              }
                                            };
                                            var encodeBacnetEnumerated22222222222 = (buffer, value) => {
                                              encodeBacnetUnsigned22222222222(buffer, value);
                                            };
                                            var isExtendedTagNumber22222222222 = (x) => {
                                              return (x & 240) === 240;
                                            };
                                            var isExtendedValue22222222222 = (x) => {
                                              return (x & 7) === 5;
                                            };
                                            var isContextSpecific22222222222 = (x) => {
                                              return (x & 8) === 8;
                                            };
                                            var isOpeningTag22222222222 = (x) => {
                                              return (x & 7) === 6;
                                            };
                                            var isClosingTag22222222222 = (x) => {
                                              return (x & 7) === 7;
                                            };
                                            var encodeContextReal22222222222 = (buffer, tagNumber, value) => {
                                              encodeTag22222222222(buffer, tagNumber, true, 4);
                                              encodeBacnetReal22222222222(buffer, value);
                                            };
                                            var encodeContextUnsigned22222222222 = (buffer, tagNumber, value) => {
                                              encodeTag22222222222(buffer, tagNumber, true, getUnsignedLength22222222222(value));
                                              encodeBacnetUnsigned22222222222(buffer, value);
                                            };
                                            var encodeContextEnumerated22222222222 = (buffer, tagNumber, value) => {
                                              encodeContextUnsigned22222222222(buffer, tagNumber, value);
                                            };
                                            var encodeOctetString22222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                              if (octetString) {
                                                for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                                                  buffer.buffer[buffer.offset++] = octetString[i];
                                                }
                                              }
                                            };
                                            var encodeApplicationOctetString22222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                              encodeTag22222222222(buffer, enums_default22222222222.ApplicationTag.OCTET_STRING, false, octetCount);
                                              encodeOctetString22222222222(buffer, octetString, octetOffset, octetCount);
                                            };
                                            var encodeApplicationNull22222222222 = (buffer) => {
                                              buffer.buffer[buffer.offset++] = enums_default22222222222.ApplicationTag.NULL;
                                            };
                                            var encodeApplicationBoolean22222222222 = (buffer, booleanValue) => {
                                              encodeTag22222222222(buffer, enums_default22222222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                                            };
                                            var encodeApplicationReal22222222222 = (buffer, value) => {
                                              encodeTag22222222222(buffer, enums_default22222222222.ApplicationTag.REAL, false, 4);
                                              encodeBacnetReal22222222222(buffer, value);
                                            };
                                            var encodeApplicationDouble22222222222 = (buffer, value) => {
                                              encodeTag22222222222(buffer, enums_default22222222222.ApplicationTag.DOUBLE, false, 8);
                                              encodeBacnetDouble22222222222(buffer, value);
                                            };
                                            var bitstringBytesUsed22222222222 = (bitString) => {
                                              let len = 0;
                                              if (bitString.bitsUsed > 0) {
                                                const lastBit = bitString.bitsUsed - 1;
                                                const usedBytes = lastBit / 8 + 1;
                                                len = Math.floor(usedBytes);
                                              }
                                              return len;
                                            };
                                            var encodeApplicationObjectId22222222222 = (buffer, objectType, instance) => {
                                              const tmp = getBuffer22222222222();
                                              encodeBacnetObjectId22222222222(tmp, objectType, instance);
                                              encodeTag22222222222(buffer, enums_default22222222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                              buffer.offset += tmp.offset;
                                            };
                                            var encodeApplicationUnsigned22222222222 = (buffer, value) => {
                                              const tmp = getBuffer22222222222();
                                              encodeBacnetUnsigned22222222222(tmp, value);
                                              encodeTag22222222222(buffer, enums_default22222222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                              buffer.offset += tmp.offset;
                                            };
                                            var encodeApplicationEnumerated22222222222 = (buffer, value) => {
                                              const tmp = getBuffer22222222222();
                                              encodeBacnetEnumerated22222222222(tmp, value);
                                              encodeTag22222222222(buffer, enums_default22222222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                              buffer.offset += tmp.offset;
                                            };
                                            var encodeApplicationSigned22222222222 = (buffer, value) => {
                                              const tmp = getBuffer22222222222();
                                              encodeBacnetSigned22222222222(tmp, value);
                                              encodeTag22222222222(buffer, enums_default22222222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                              buffer.offset += tmp.offset;
                                            };
                                            var byteReverseBits22222222222 = (inByte) => {
                                              let outByte = 0;
                                              if ((inByte & 1) > 0) {
                                                outByte |= 128;
                                              }
                                              if ((inByte & 2) > 0) {
                                                outByte |= 64;
                                              }
                                              if ((inByte & 4) > 0) {
                                                outByte |= 32;
                                              }
                                              if ((inByte & 8) > 0) {
                                                outByte |= 16;
                                              }
                                              if ((inByte & 16) > 0) {
                                                outByte |= 8;
                                              }
                                              if ((inByte & 32) > 0) {
                                                outByte |= 4;
                                              }
                                              if ((inByte & 64) > 0) {
                                                outByte |= 2;
                                              }
                                              if ((inByte & 128) > 0) {
                                                outByte |= 1;
                                              }
                                              return outByte;
                                            };
                                            var bitstringOctet22222222222 = (bitString, octetIndex) => {
                                              let octet = 0;
                                              if (bitString.value && octetIndex < enums_default22222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                octet = bitString.value[octetIndex];
                                              }
                                              return octet;
                                            };
                                            var encodeBitstring22222222222 = (buffer, bitString) => {
                                              if (bitString.bitsUsed === 0) {
                                                buffer.buffer[buffer.offset++] = 0;
                                              } else {
                                                const usedBytes = bitstringBytesUsed22222222222(bitString);
                                                const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                                                buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                                                for (let i = 0; i < usedBytes; i++) {
                                                  buffer.buffer[buffer.offset++] = byteReverseBits22222222222(
                                                    bitstringOctet22222222222(bitString, i)
                                                  );
                                                }
                                              }
                                            };
                                            var encodeApplicationBitstring22222222222 = (buffer, bitString) => {
                                              let bitStringEncodedLength = 1;
                                              bitStringEncodedLength += bitstringBytesUsed22222222222(bitString);
                                              encodeTag22222222222(
                                                buffer,
                                                enums_default22222222222.ApplicationTag.BIT_STRING,
                                                false,
                                                bitStringEncodedLength
                                              );
                                              encodeBitstring22222222222(buffer, bitString);
                                            };
                                            var encodeBacnetDate22222222222 = (buffer, value) => {
                                              if (value === new Date(1, 1, 1)) {
                                                buffer.buffer[buffer.offset++] = 255;
                                                buffer.buffer[buffer.offset++] = 255;
                                                buffer.buffer[buffer.offset++] = 255;
                                                buffer.buffer[buffer.offset++] = 255;
                                                return;
                                              }
                                              if (value.getFullYear() >= START_YEAR22222222222) {
                                                buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR22222222222;
                                              } else if (value.getFullYear() < MAX_YEARS22222222222) {
                                                buffer.buffer[buffer.offset++] = value.getFullYear();
                                              } else {
                                                throw new Error("invaide year: " + value.getFullYear());
                                              }
                                              buffer.buffer[buffer.offset++] = value.getMonth();
                                              buffer.buffer[buffer.offset++] = value.getDate();
                                              buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                                            };
                                            var encodeApplicationDate22222222222 = (buffer, value) => {
                                              encodeTag22222222222(buffer, enums_default22222222222.ApplicationTag.DATE, false, 4);
                                              encodeBacnetDate22222222222(buffer, value);
                                            };
                                            var encodeBacnetTime22222222222 = (buffer, value) => {
                                              buffer.buffer[buffer.offset++] = value.getHours();
                                              buffer.buffer[buffer.offset++] = value.getMinutes();
                                              buffer.buffer[buffer.offset++] = value.getSeconds();
                                              buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                                            };
                                            var encodeApplicationTime22222222222 = (buffer, value) => {
                                              encodeTag22222222222(buffer, enums_default22222222222.ApplicationTag.TIME, false, 4);
                                              encodeBacnetTime22222222222(buffer, value);
                                            };
                                            var bacappEncodeDatetime22222222222 = (buffer, value) => {
                                              if (value !== new Date(1, 1, 1)) {
                                                encodeApplicationDate22222222222(buffer, value);
                                                encodeApplicationTime22222222222(buffer, value);
                                              }
                                            };
                                            var encodeContextObjectId22222222222 = (buffer, tagNumber, objectType, instance) => {
                                              encodeTag22222222222(buffer, tagNumber, true, 4);
                                              encodeBacnetObjectId22222222222(buffer, objectType, instance);
                                            };
                                            var encodeOpeningTag22222222222 = (buffer, tagNumber) => {
                                              let len = 1;
                                              const tmp = new Array(2);
                                              tmp[0] = 8;
                                              if (tagNumber <= 14) {
                                                tmp[0] |= tagNumber << 4;
                                              } else {
                                                tmp[0] |= 240;
                                                tmp[1] = tagNumber;
                                                len++;
                                              }
                                              tmp[0] |= 6;
                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                              buffer.offset += len;
                                            };
                                            var encodeClosingTag22222222222 = (buffer, tagNumber) => {
                                              let len = 1;
                                              const tmp = new Array(2);
                                              tmp[0] = 8;
                                              if (tagNumber <= 14) {
                                                tmp[0] |= tagNumber << 4;
                                              } else {
                                                tmp[0] |= 240;
                                                tmp[1] = tagNumber;
                                                len++;
                                              }
                                              tmp[0] |= 7;
                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                              buffer.offset += len;
                                            };
                                            var encodeReadAccessSpecification22222222222 = (buffer, value) => {
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                0,
                                                value.objectId.type,
                                                value.objectId.instance
                                              );
                                              encodeOpeningTag22222222222(buffer, 1);
                                              value.properties.forEach((p) => {
                                                encodeContextEnumerated22222222222(buffer, 0, p.id);
                                                if (p.index && p.index !== enums_default22222222222.ASN1_ARRAY_ALL) {
                                                  encodeContextUnsigned22222222222(buffer, 1, p.index);
                                                }
                                              });
                                              encodeClosingTag22222222222(buffer, 1);
                                            };
                                            var encodeContextBoolean22222222222 = (buffer, tagNumber, booleanValue) => {
                                              encodeTag22222222222(buffer, tagNumber, true, 1);
                                              buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                                              buffer.offset += 1;
                                            };
                                            var encodeCovSubscription22222222222 = (buffer, value) => {
                                              encodeOpeningTag22222222222(buffer, 0);
                                              encodeOpeningTag22222222222(buffer, 0);
                                              encodeOpeningTag22222222222(buffer, 1);
                                              encodeApplicationUnsigned22222222222(buffer, value.recipient.network);
                                              if (value.recipient.network === 65535) {
                                                encodeApplicationOctetString22222222222(buffer, 0, 0, 0);
                                              } else {
                                                encodeApplicationOctetString22222222222(
                                                  buffer,
                                                  value.recipient.address,
                                                  0,
                                                  value.recipient.address.length
                                                );
                                              }
                                              encodeClosingTag22222222222(buffer, 1);
                                              encodeClosingTag22222222222(buffer, 0);
                                              encodeContextUnsigned22222222222(buffer, 1, value.subscriptionProcessId);
                                              encodeClosingTag22222222222(buffer, 0);
                                              encodeOpeningTag22222222222(buffer, 1);
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                0,
                                                value.monitoredObjectId.type,
                                                value.monitoredObjectId.instance
                                              );
                                              encodeContextEnumerated22222222222(buffer, 1, value.monitoredProperty.id);
                                              if (value.monitoredProperty.index !== enums_default22222222222.ASN1_ARRAY_ALL) {
                                                encodeContextUnsigned22222222222(buffer, 2, value.monitoredProperty.index);
                                              }
                                              encodeClosingTag22222222222(buffer, 1);
                                              encodeContextBoolean22222222222(buffer, 2, value.issueConfirmedNotifications);
                                              encodeContextUnsigned22222222222(buffer, 3, value.timeRemaining);
                                              if (value.covIncrement > 0) {
                                                encodeContextReal22222222222(buffer, 4, value.covIncrement);
                                              }
                                            };
                                            var bacappEncodeApplicationData22222222222 = (buffer, value) => {
                                              if (value.value === null) {
                                                value.type = enums_default22222222222.ApplicationTag.NULL;
                                              }
                                              switch (value.type) {
                                                case enums_default22222222222.ApplicationTag.NULL:
                                                  encodeApplicationNull22222222222(buffer);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.BOOLEAN:
                                                  encodeApplicationBoolean22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                  encodeApplicationUnsigned22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.SIGNED_INTEGER:
                                                  encodeApplicationSigned22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.REAL:
                                                  encodeApplicationReal22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.DOUBLE:
                                                  encodeApplicationDouble22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.OCTET_STRING:
                                                  encodeApplicationOctetString22222222222(buffer, value.value, 0, value.value.length);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.CHARACTER_STRING:
                                                  encodeApplicationCharacterString22222222222(buffer, value.value, value.encoding);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.BIT_STRING:
                                                  encodeApplicationBitstring22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.ENUMERATED:
                                                  encodeApplicationEnumerated22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.DATE:
                                                  encodeApplicationDate22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.TIME:
                                                  encodeApplicationTime22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.TIMESTAMP:
                                                  bacappEncodeTimestamp22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.DATETIME:
                                                  bacappEncodeDatetime22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                  encodeApplicationObjectId22222222222(buffer, value.value.type, value.value.instance);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.COV_SUBSCRIPTION:
                                                  encodeCovSubscription22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.READ_ACCESS_RESULT:
                                                  encodeReadAccessResult22222222222(buffer, value.value);
                                                  break;
                                                case enums_default22222222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                  encodeReadAccessSpecification22222222222(buffer, value.value);
                                                  break;
                                                case void 0:
                                                  throw new Error(
                                                    "Cannot encode a value if the type has not been specified"
                                                  );
                                                default:
                                                  throw "No encode for ApplicationTag type: " + enums_default22222222222.getEnumName(
                                                    enums_default22222222222.ApplicationTag,
                                                    value.type
                                                  );
                                              }
                                            };
                                            var bacappEncodeDeviceObjPropertyRef22222222222 = (buffer, value) => {
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                0,
                                                value.objectId.type,
                                                value.objectId.instance
                                              );
                                              encodeContextEnumerated22222222222(buffer, 1, value.id);
                                              if (value.arrayIndex !== enums_default22222222222.ASN1_ARRAY_ALL) {
                                                encodeContextUnsigned22222222222(buffer, 2, value.arrayIndex);
                                              }
                                              if (value.deviceIndentifier.type === enums_default22222222222.ObjectType.DEVICE) {
                                                encodeContextObjectId22222222222(
                                                  buffer,
                                                  3,
                                                  value.deviceIndentifier.type,
                                                  value.deviceIndentifier.instance
                                                );
                                              }
                                            };
                                            var bacappEncodeContextDeviceObjPropertyRef22222222222 = (buffer, tagNumber, value) => {
                                              encodeOpeningTag22222222222(buffer, tagNumber);
                                              bacappEncodeDeviceObjPropertyRef22222222222(buffer, value);
                                              encodeClosingTag22222222222(buffer, tagNumber);
                                            };
                                            var bacappEncodePropertyState22222222222 = (buffer, value) => {
                                              switch (value.type) {
                                                case enums_default22222222222.PropertyStates.BOOLEAN_VALUE:
                                                  encodeContextBoolean22222222222(buffer, 0, value.state === 1);
                                                  break;
                                                case enums_default22222222222.PropertyStates.BINARY_VALUE:
                                                  encodeContextEnumerated22222222222(buffer, 1, value.state);
                                                  break;
                                                case enums_default22222222222.PropertyStates.EVENT_TYPE:
                                                  encodeContextEnumerated22222222222(buffer, 2, value.state);
                                                  break;
                                                case enums_default22222222222.PropertyStates.POLARITY:
                                                  encodeContextEnumerated22222222222(buffer, 3, value.state);
                                                  break;
                                                case enums_default22222222222.PropertyStates.PROGRAM_CHANGE:
                                                  encodeContextEnumerated22222222222(buffer, 4, value.state);
                                                  break;
                                                case enums_default22222222222.PropertyStates.PROGRAM_STATE:
                                                  encodeContextEnumerated22222222222(buffer, 5, value.state);
                                                  break;
                                                case enums_default22222222222.PropertyStates.REASON_FOR_HALT:
                                                  encodeContextEnumerated22222222222(buffer, 6, value.state);
                                                  break;
                                                case enums_default22222222222.PropertyStates.RELIABILITY:
                                                  encodeContextEnumerated22222222222(buffer, 7, value.state);
                                                  break;
                                                case enums_default22222222222.PropertyStates.STATE:
                                                  encodeContextEnumerated22222222222(buffer, 8, value.state);
                                                  break;
                                                case enums_default22222222222.PropertyStates.SYSTEM_STATUS:
                                                  encodeContextEnumerated22222222222(buffer, 9, value.state);
                                                  break;
                                                case enums_default22222222222.PropertyStates.UNITS:
                                                  encodeContextEnumerated22222222222(buffer, 10, value.state);
                                                  break;
                                                case enums_default22222222222.PropertyStates.UNSIGNED_VALUE:
                                                  encodeContextUnsigned22222222222(buffer, 11, value.state);
                                                  break;
                                                case enums_default22222222222.PropertyStates.LIFE_SAFETY_MODE:
                                                  encodeContextEnumerated22222222222(buffer, 12, value.state);
                                                  break;
                                                case enums_default22222222222.PropertyStates.LIFE_SAFETY_STATE:
                                                  encodeContextEnumerated22222222222(buffer, 13, value.state);
                                                  break;
                                                default:
                                                  break;
                                              }
                                            };
                                            var encodeContextBitstring22222222222 = (buffer, tagNumber, bitString) => {
                                              let bitStringEncodedLength = 1;
                                              bitStringEncodedLength += bitstringBytesUsed22222222222(bitString);
                                              encodeTag22222222222(buffer, tagNumber, true, bitStringEncodedLength);
                                              encodeBitstring22222222222(buffer, bitString);
                                            };
                                            var encodeContextSigned22222222222 = (buffer, tagNumber, value) => {
                                              encodeTag22222222222(buffer, tagNumber, true, getSignedLength22222222222(value));
                                              encodeBacnetSigned22222222222(buffer, value);
                                            };
                                            var encodeContextTime22222222222 = (buffer, tagNumber, value) => {
                                              encodeTag22222222222(buffer, tagNumber, true, 4);
                                              encodeBacnetTime22222222222(buffer, value);
                                            };
                                            var bacappEncodeContextDatetime22222222222 = (buffer, tagNumber, value) => {
                                              if (value !== new Date(1, 1, 1)) {
                                                encodeOpeningTag22222222222(buffer, tagNumber);
                                                bacappEncodeDatetime22222222222(buffer, value);
                                                encodeClosingTag22222222222(buffer, tagNumber);
                                              } else {
                                                throw new Error("wrong Datetime while bacapp encoding context");
                                              }
                                            };
                                            var decodeTagNumber22222222222 = (buffer, offset) => {
                                              let len = 1;
                                              let tagNumber;
                                              if (isExtendedTagNumber22222222222(buffer[offset])) {
                                                tagNumber = buffer[offset + 1];
                                                len++;
                                              } else {
                                                tagNumber = buffer[offset] >> 4;
                                              }
                                              return {
                                                len,
                                                tagNumber
                                              };
                                            };
                                            var decodeIsContextTag22222222222 = (buffer, offset, tagNumber) => {
                                              const result = decodeTagNumber22222222222(buffer, offset);
                                              return isContextSpecific22222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                            };
                                            var decodeIsOpeningTagNumber22222222222 = (buffer, offset, tagNumber) => {
                                              const result = decodeTagNumber22222222222(buffer, offset);
                                              return isOpeningTag22222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                            };
                                            var decodeIsClosingTagNumber22222222222 = (buffer, offset, tagNumber) => {
                                              const result = decodeTagNumber22222222222(buffer, offset);
                                              return isClosingTag22222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                            };
                                            var decodeIsClosingTag22222222222 = (buffer, offset) => {
                                              return (buffer[offset] & 7) === 7;
                                            };
                                            var decodeIsOpeningTag22222222222 = (buffer, offset) => {
                                              return (buffer[offset] & 7) === 6;
                                            };
                                            var decodeObjectId22222222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                                              const result = decodeUnsigned22222222222(buffer, offset, 4);
                                              const objectType = result.value >> enums_default22222222222.ASN1_INSTANCE_BITS & enums_default22222222222.ASN1_MAX_OBJECT;
                                              const instance = result.value & enums_default22222222222.ASN1_MAX_INSTANCE;
                                              return {
                                                len: result.len,
                                                objectType,
                                                instance
                                              };
                                            };
                                            var decodeObjectIdSafe22222222222 = (buffer, offset, lenValue) => {
                                              if (lenValue !== 4) {
                                                return {
                                                  len: 0,
                                                  objectType: 0,
                                                  instance: 0
                                                };
                                              } else {
                                                return decodeObjectId22222222222(buffer, offset);
                                              }
                                            };
                                            var decodeTagNumberAndValue22222222222 = (buffer, offset) => {
                                              let value;
                                              let result = decodeTagNumber22222222222(buffer, offset);
                                              let len = result.len;
                                              if (isExtendedValue22222222222(buffer[offset])) {
                                                if (buffer[offset + len] === 255) {
                                                  len++;
                                                  result = decodeUnsigned22222222222(buffer, offset + len, 4);
                                                  len += result.len;
                                                  value = result.value;
                                                } else if (buffer[offset + len] === 254) {
                                                  len++;
                                                  result = decodeUnsigned22222222222(buffer, offset + len, 2);
                                                  len += result.len;
                                                  value = result.value;
                                                } else {
                                                  value = buffer[offset + len];
                                                  len++;
                                                }
                                              } else if (isOpeningTag22222222222(buffer[offset])) {
                                                value = 0;
                                              } else if (isClosingTag22222222222(buffer[offset])) {
                                                value = 0;
                                              } else {
                                                value = buffer[offset] & 7;
                                              }
                                              return {
                                                len,
                                                tagNumber: result.tagNumber,
                                                value
                                              };
                                            };
                                            var bacappDecodeApplicationData22222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                              if (!isContextSpecific22222222222(buffer[offset])) {
                                                let result = decodeTagNumberAndValue22222222222(buffer, offset);
                                                if (result) {
                                                  let len = result.len;
                                                  result = bacappDecodeData22222222222(
                                                    buffer,
                                                    offset + len,
                                                    maxOffset,
                                                    result.tagNumber,
                                                    result.value
                                                  );
                                                  if (!result) {
                                                    return void 0;
                                                  }
                                                  let resObj = {
                                                    len: len + result.len,
                                                    type: result.type,
                                                    value: result.value
                                                  };
                                                  if (result.encoding !== void 0)
                                                    resObj.encoding = result.encoding;
                                                  return resObj;
                                                }
                                              } else {
                                                return bacappDecodeContextApplicationData22222222222(
                                                  buffer,
                                                  offset,
                                                  maxOffset,
                                                  objectType,
                                                  propertyId
                                                );
                                              }
                                            };
                                            var encodeReadAccessResult22222222222 = (buffer, value) => {
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                0,
                                                value.objectId.type,
                                                value.objectId.instance
                                              );
                                              encodeOpeningTag22222222222(buffer, 1);
                                              value.values.forEach((item) => {
                                                encodeContextEnumerated22222222222(buffer, 2, item.property.id);
                                                if (item.property.index !== enums_default22222222222.ASN1_ARRAY_ALL) {
                                                  encodeContextUnsigned22222222222(buffer, 3, item.property.index);
                                                }
                                                if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                                                  encodeOpeningTag22222222222(buffer, 5);
                                                  encodeApplicationEnumerated22222222222(buffer, item.value[0].value.errorClass);
                                                  encodeApplicationEnumerated22222222222(buffer, item.value[0].value.errorCode);
                                                  encodeClosingTag22222222222(buffer, 5);
                                                } else {
                                                  if (!item.value)
                                                    throw new Error("No value in item");
                                                  encodeOpeningTag22222222222(buffer, 4);
                                                  item.value.forEach((subItem) => {
                                                    bacappEncodeApplicationData22222222222(buffer, subItem);
                                                  });
                                                  encodeClosingTag22222222222(buffer, 4);
                                                }
                                              });
                                              encodeClosingTag22222222222(buffer, 1);
                                            };
                                            var decodeReadAccessResult22222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let value = {};
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              let result = decodeObjectId22222222222(buffer, offset + len);
                                              value.objectId = {
                                                type: result.objectType,
                                                instance: result.instance
                                              };
                                              len += result.len;
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 1)) {
                                                return -1;
                                              }
                                              len++;
                                              const values = [];
                                              while (apduLen - len > 0) {
                                                let newEntry = {};
                                                if (decodeIsClosingTagNumber22222222222(buffer, offset + len, 1)) {
                                                  len++;
                                                  break;
                                                }
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 2) {
                                                  return void 0;
                                                }
                                                result = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                newEntry.id = result.value;
                                                len += result.len;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                if (result.tagNumber === 3) {
                                                  len += result.len;
                                                  result = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                  newEntry.index = result.value;
                                                  len += result.len;
                                                } else {
                                                  newEntry.index = enums_default22222222222.ASN1_ARRAY_ALL;
                                                }
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber === 4) {
                                                  const localValues = [];
                                                  while (len + offset <= buffer.length && !decodeIsClosingTagNumber22222222222(buffer, offset + len, 4)) {
                                                    let localResult = bacappDecodeApplicationData22222222222(
                                                      buffer,
                                                      offset + len,
                                                      apduLen + offset - 1,
                                                      value.objectId.type,
                                                      newEntry.id
                                                    );
                                                    if (!localResult) {
                                                      return void 0;
                                                    }
                                                    len += localResult.len;
                                                    let resObj = {
                                                      value: localResult.value,
                                                      type: localResult.type
                                                    };
                                                    if (localResult.encoding !== void 0)
                                                      resObj.encoding = localResult.encoding;
                                                    localValues.push(resObj);
                                                  }
                                                  if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 4)) {
                                                    return void 0;
                                                  }
                                                  if (localValues.count === 2 && localValues[0].type === enums_default22222222222.ApplicationTag.DATE && localValues[1].type === enums_default22222222222.ApplicationTag.TIME) {
                                                    const date = localValues[0].value;
                                                    const time = localValues[1].value;
                                                    const bdatetime = new Date(
                                                      date.year,
                                                      date.month,
                                                      date.day,
                                                      time.hour,
                                                      time.minute,
                                                      time.second,
                                                      time.millisecond
                                                    );
                                                    newEntry.value = [
                                                      { type: enums_default22222222222.ApplicationTag.DATETIME, value: bdatetime }
                                                    ];
                                                  } else {
                                                    newEntry.value = localValues;
                                                  }
                                                  len++;
                                                } else if (result.tagNumber === 5) {
                                                  let err = {};
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                  result = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                  len += result.len;
                                                  err.errorClass = result.value;
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                  result = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                  len += result.len;
                                                  err.errorCode = result.value;
                                                  if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 5)) {
                                                    return void 0;
                                                  }
                                                  len++;
                                                  newEntry.value = [
                                                    {
                                                      type: enums_default22222222222.ApplicationTag.ERROR,
                                                      value: err
                                                    }
                                                  ];
                                                }
                                                values.push(newEntry);
                                              }
                                              value.values = values;
                                              return {
                                                len,
                                                value
                                              };
                                            };
                                            var decodeSigned22222222222 = (buffer, offset, length) => {
                                              return {
                                                len: length,
                                                value: buffer.readIntBE(offset, length, true)
                                              };
                                            };
                                            var decodeReal22222222222 = (buffer, offset) => {
                                              return {
                                                len: 4,
                                                value: buffer.readFloatBE(offset, true)
                                              };
                                            };
                                            var decodeRealSafe22222222222 = (buffer, offset, lenValue) => {
                                              if (lenValue !== 4) {
                                                return {
                                                  len: lenValue,
                                                  value: 0
                                                };
                                              } else {
                                                return decodeReal22222222222(buffer, offset);
                                              }
                                            };
                                            var decodeDouble22222222222 = (buffer, offset) => {
                                              return {
                                                len: 8,
                                                value: buffer.readDoubleBE(offset, true)
                                              };
                                            };
                                            var decodeDoubleSafe22222222222 = (buffer, offset, lenValue) => {
                                              if (lenValue !== 8) {
                                                return {
                                                  len: lenValue,
                                                  value: 0
                                                };
                                              } else {
                                                return decodeDouble22222222222(buffer, offset);
                                              }
                                            };
                                            var decodeOctetString22222222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                                              const octetString = [];
                                              for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                                                octetString.push(buffer[offset + i]);
                                              }
                                              return {
                                                len: octetStringLength,
                                                value: octetString
                                              };
                                            };
                                            var multiCharsetCharacterstringDecode22222222222 = (buffer, offset, maxLength, encoding, length) => {
                                              const stringBuf = Buffer.alloc(length);
                                              buffer.copy(stringBuf, 0, offset, offset + length);
                                              return {
                                                value: import_iconv_lite22222222222.default.decode(stringBuf, getEncodingType22222222222(encoding, buffer, offset)),
                                                len: length + 1,
                                                encoding
                                              };
                                            };
                                            var decodeCharacterString22222222222 = (buffer, offset, maxLength, lenValue) => {
                                              return multiCharsetCharacterstringDecode22222222222(
                                                buffer,
                                                offset + 1,
                                                maxLength,
                                                buffer[offset],
                                                lenValue - 1
                                              );
                                            };
                                            var bitstringSetBitsUsed22222222222 = (bitString, bytesUsed, unusedBits) => {
                                              bitString.bitsUsed = bytesUsed * 8;
                                              bitString.bitsUsed -= unusedBits;
                                            };
                                            var decodeBitstring22222222222 = (buffer, offset, lenValue) => {
                                              let len = 0;
                                              let bitString = {};
                                              bitString.value = [];
                                              if (lenValue > 0) {
                                                const bytesUsed = lenValue - 1;
                                                if (bytesUsed <= enums_default22222222222.ASN1_MAX_BITSTRING_BYTES) {
                                                  len = 1;
                                                  for (let i = 0; i < bytesUsed; i++) {
                                                    bitString.value.push(byteReverseBits22222222222(buffer[offset + len++]));
                                                  }
                                                  const unusedBits = buffer[offset] & 7;
                                                  bitstringSetBitsUsed22222222222(bitString, bytesUsed, unusedBits);
                                                }
                                              }
                                              return {
                                                len,
                                                value: bitString
                                              };
                                            };
                                            var decodeDate22222222222 = (buffer, offset) => {
                                              let date;
                                              const year = buffer[offset] + 1900;
                                              const month = buffer[offset + 1];
                                              const day = buffer[offset + 2];
                                              const wday = buffer[offset + 3];
                                              if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                                                date = new Date(1, 1, 1);
                                              } else {
                                                date = new Date(year, month, day);
                                              }
                                              return {
                                                len: 4,
                                                value: date
                                              };
                                            };
                                            var decodeDateSafe22222222222 = (buffer, offset, lenValue) => {
                                              if (lenValue !== 4) {
                                                return {
                                                  len: lenValue,
                                                  value: new Date(1, 1, 1)
                                                };
                                              } else {
                                                return decodeDate22222222222(buffer, offset);
                                              }
                                            };
                                            var decodeApplicationDate22222222222 = (buffer, offset) => {
                                              const result = decodeTagNumber22222222222(buffer, offset);
                                              if (result.tagNumber === enums_default22222222222.ApplicationTag.DATE) {
                                                const value = decodeDate22222222222(buffer, offset + 1);
                                                return {
                                                  len: value.len + 1,
                                                  value
                                                };
                                              }
                                              return void 0;
                                            };
                                            var decodeBacnetTime22222222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                                              const hour = buffer[offset + 0];
                                              const min = buffer[offset + 1];
                                              const sec = buffer[offset + 2];
                                              let hundredths = buffer[offset + 3];
                                              if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                                                value = new Date(1, 1, 1);
                                              } else {
                                                if (hundredths > 100)
                                                  hundredths = 0;
                                                value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                                              }
                                              return {
                                                len: 4,
                                                value
                                              };
                                            };
                                            var decodeBacnetTimeSafe22222222222 = (buffer, offset, lenValue) => {
                                              if (lenValue !== 4) {
                                                return {
                                                  len: lenValue,
                                                  value: new Date(1, 1, 1)
                                                };
                                              } else {
                                                return decodeBacnetTime22222222222(buffer, offset);
                                              }
                                            };
                                            var decodeApplicationTime22222222222 = (buffer, offset) => {
                                              const result = decodeTagNumber22222222222(buffer, offset);
                                              if (result.tagNumber === enums_default22222222222.ApplicationTag.TIME) {
                                                const value = decodeBacnetTime22222222222(buffer, offset + 1);
                                                return {
                                                  len: value.len + 1,
                                                  value
                                                };
                                              }
                                              return void 0;
                                            };
                                            var decodeBacnetDatetime22222222222 = (buffer, offset) => {
                                              let len = 0;
                                              const date = decodeApplicationDate22222222222(buffer, offset + len);
                                              len += date.len;
                                              const time = decodeApplicationTime22222222222(buffer, offset + len);
                                              len += time.len;
                                              return {
                                                len,
                                                value: new Date(
                                                  date.year,
                                                  date.month,
                                                  date.day,
                                                  time.hour,
                                                  time.minute,
                                                  time.second,
                                                  time.millisecond
                                                )
                                              };
                                            };
                                            var bacappDecodeData22222222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                                              let result;
                                              let value = {
                                                len: 0,
                                                type: tagDataType
                                              };
                                              switch (tagDataType) {
                                                case enums_default22222222222.ApplicationTag.NULL:
                                                  value.value = null;
                                                  break;
                                                case enums_default22222222222.ApplicationTag.BOOLEAN:
                                                  value.value = lenValueType > 0;
                                                  break;
                                                case enums_default22222222222.ApplicationTag.UNSIGNED_INTEGER:
                                                  result = decodeUnsigned22222222222(buffer, offset, lenValueType);
                                                  value.len += result.len;
                                                  value.value = result.value;
                                                  break;
                                                case enums_default22222222222.ApplicationTag.SIGNED_INTEGER:
                                                  result = decodeSigned22222222222(buffer, offset, lenValueType);
                                                  value.len += result.len;
                                                  value.value = result.value;
                                                  break;
                                                case enums_default22222222222.ApplicationTag.REAL:
                                                  result = decodeRealSafe22222222222(buffer, offset, lenValueType);
                                                  value.len += result.len;
                                                  value.value = result.value;
                                                  break;
                                                case enums_default22222222222.ApplicationTag.DOUBLE:
                                                  result = decodeDoubleSafe22222222222(buffer, offset, lenValueType);
                                                  value.len += result.len;
                                                  value.value = result.value;
                                                  break;
                                                case enums_default22222222222.ApplicationTag.OCTET_STRING:
                                                  result = decodeOctetString22222222222(buffer, offset, maxLength, 0, lenValueType);
                                                  value.len += result.len;
                                                  value.value = result.value;
                                                  break;
                                                case enums_default22222222222.ApplicationTag.CHARACTER_STRING:
                                                  result = decodeCharacterString22222222222(buffer, offset, maxLength, lenValueType);
                                                  value.len += result.len;
                                                  value.value = result.value;
                                                  value.encoding = result.encoding;
                                                  break;
                                                case enums_default22222222222.ApplicationTag.BIT_STRING:
                                                  result = decodeBitstring22222222222(buffer, offset, lenValueType);
                                                  value.len += result.len;
                                                  value.value = result.value;
                                                  break;
                                                case enums_default22222222222.ApplicationTag.ENUMERATED:
                                                  result = decodeEnumerated22222222222(buffer, offset, lenValueType);
                                                  value.len += result.len;
                                                  value.value = result.value;
                                                  break;
                                                case enums_default22222222222.ApplicationTag.DATE:
                                                  result = decodeDateSafe22222222222(buffer, offset, lenValueType);
                                                  value.len += result.len;
                                                  value.value = result.value;
                                                  break;
                                                case enums_default22222222222.ApplicationTag.TIME:
                                                  result = decodeBacnetTimeSafe22222222222(buffer, offset, lenValueType);
                                                  value.len += result.len;
                                                  value.value = result.value;
                                                  break;
                                                case enums_default22222222222.ApplicationTag.OBJECTIDENTIFIER:
                                                  result = decodeObjectIdSafe22222222222(buffer, offset, lenValueType);
                                                  value.len += result.len;
                                                  value.value = { type: result.objectType, instance: result.instance };
                                                  break;
                                                default:
                                                  break;
                                              }
                                              return value;
                                            };
                                            var bacappContextTagType22222222222 = (property, tagNumber) => {
                                              let tag = 0;
                                              switch (property) {
                                                case enums_default22222222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                                                case enums_default22222222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                                                case enums_default22222222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                                                  switch (tagNumber) {
                                                    case 0:
                                                    case 1:
                                                      tag = enums_default22222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                      break;
                                                    case 2:
                                                      tag = enums_default22222222222.ApplicationTag.REAL;
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                  break;
                                                case enums_default22222222222.PropertyIdentifier.ACTION:
                                                  switch (tagNumber) {
                                                    case 0:
                                                    case 1:
                                                      tag = enums_default22222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                      break;
                                                    case 2:
                                                      tag = enums_default22222222222.ApplicationTag.ENUMERATED;
                                                      break;
                                                    case 3:
                                                    case 5:
                                                    case 6:
                                                      tag = enums_default22222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                      break;
                                                    case 7:
                                                    case 8:
                                                      tag = enums_default22222222222.ApplicationTag.BOOLEAN;
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                  break;
                                                case enums_default22222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                                                  switch (tagNumber) {
                                                    case 0:
                                                      tag = enums_default22222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                  break;
                                                case enums_default22222222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                                                  switch (tagNumber) {
                                                    case 1:
                                                      tag = enums_default22222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                      break;
                                                    case 3:
                                                      tag = enums_default22222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                  break;
                                                case enums_default22222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                                                  switch (tagNumber) {
                                                    case 0:
                                                    case 3:
                                                      tag = enums_default22222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                      break;
                                                    case 1:
                                                      tag = enums_default22222222222.ApplicationTag.ENUMERATED;
                                                      break;
                                                    case 2:
                                                      tag = enums_default22222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                  break;
                                                case enums_default22222222222.PropertyIdentifier.SUBORDINATE_LIST:
                                                  switch (tagNumber) {
                                                    case 0:
                                                    case 1:
                                                      tag = enums_default22222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                  break;
                                                case enums_default22222222222.PropertyIdentifier.RECIPIENT_LIST:
                                                  switch (tagNumber) {
                                                    case 0:
                                                      tag = enums_default22222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                  break;
                                                case enums_default22222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                                                  switch (tagNumber) {
                                                    case 0:
                                                    case 1:
                                                      break;
                                                    case 2:
                                                      tag = enums_default22222222222.ApplicationTag.BOOLEAN;
                                                      break;
                                                    case 3:
                                                      tag = enums_default22222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                      break;
                                                    case 4:
                                                      tag = enums_default22222222222.ApplicationTag.REAL;
                                                      break;
                                                    default:
                                                      break;
                                                  }
                                                  break;
                                                default:
                                                  break;
                                              }
                                              return tag;
                                            };
                                            var decodeDeviceObjPropertyRef22222222222 = (buffer, offset, NOTUSEDARG = 0) => {
                                              let len = 0;
                                              let arrayIndex = enums_default22222222222.ASN1_ARRAY_ALL;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              let objectId = decodeObjectId22222222222(buffer, offset + len);
                                              len += objectId.len;
                                              let result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 1) {
                                                return void 0;
                                              }
                                              let id = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += id.len;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              if (result.tagNumber === 2) {
                                                len += result.len;
                                                arrayIndex = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += arrayIndex.len;
                                              }
                                              if (decodeIsContextTag22222222222(buffer, offset + len, 3)) {
                                                if (!isClosingTag22222222222(buffer[offset + len])) {
                                                  len++;
                                                  objectId = decodeObjectId22222222222(buffer, offset + len);
                                                  len += objectId.len;
                                                }
                                              }
                                              return {
                                                len,
                                                value: {
                                                  objectId,
                                                  id
                                                }
                                              };
                                            };
                                            var decodeReadAccessSpecification22222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let value = {};
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              let decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              value.objectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              len += decodedValue.len;
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              len++;
                                              const propertyIdAndArrayIndex = [];
                                              while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222222(buffer, offset + len, 1)) {
                                                let propertyRef = {};
                                                if (!isContextSpecific22222222222(buffer[offset + len])) {
                                                  return void 0;
                                                }
                                                let result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 0) {
                                                  return void 0;
                                                }
                                                if (len + result.value >= apduLen) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                propertyRef.id = decodedValue.value;
                                                len += decodedValue.len;
                                                propertyRef.index = enums_default22222222222.ASN1_ARRAY_ALL;
                                                if (isContextSpecific22222222222(buffer[offset + len]) && !isClosingTag22222222222(buffer[offset + len])) {
                                                  const tmp = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  if (tmp.tagNumber === 1) {
                                                    len += tmp.len;
                                                    if (len + tmp.value >= apduLen) {
                                                      return void 0;
                                                    }
                                                    decodedValue = decodeUnsigned22222222222(buffer, offset + len, tmp.value);
                                                    propertyRef.index = decodedValue.value;
                                                    len += decodedValue.len;
                                                  }
                                                }
                                                propertyIdAndArrayIndex.push(propertyRef);
                                              }
                                              if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              len++;
                                              value.properties = propertyIdAndArrayIndex;
                                              return {
                                                len,
                                                value
                                              };
                                            };
                                            var decodeCovSubscription22222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let value = {};
                                              let result;
                                              let decodedValue;
                                              value.recipient = {};
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              len++;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== enums_default22222222222.ApplicationTag.UNSIGNED_INTEGER) {
                                                return void 0;
                                              }
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.recipient.net = decodedValue.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== enums_default22222222222.ApplicationTag.OCTET_STRING) {
                                                return void 0;
                                              }
                                              decodedValue = decodeOctetString22222222222(
                                                buffer,
                                                offset + len,
                                                apduLen,
                                                0,
                                                result.value
                                              );
                                              len += decodedValue.len;
                                              value.recipient.adr = decodedValue.value;
                                              if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              len++;
                                              if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 1) {
                                                return void 0;
                                              }
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.subscriptionProcessId = decodedValue.value;
                                              if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              len++;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 0) {
                                                return void 0;
                                              }
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              value.monitoredObjectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 1) {
                                                return void 0;
                                              }
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.monitoredProperty = {};
                                              value.monitoredProperty.id = decodedValue.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              if (result.tagNumber === 2) {
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.monitoredProperty.index = decodedValue.value;
                                              } else {
                                                value.monitoredProperty.index = enums_default22222222222.ASN1_ARRAY_ALL;
                                              }
                                              if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              len++;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 2) {
                                                return void 0;
                                              }
                                              value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                              len++;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 3) {
                                                return void 0;
                                              }
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.timeRemaining = decodedValue.value;
                                              if (len < apduLen && !isClosingTag22222222222(buffer[offset + len])) {
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 4) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeReal22222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                value.covIncrement = decodedValue.value;
                                              }
                                              return {
                                                len,
                                                value
                                              };
                                            };
                                            var decodeCalendarDate22222222222 = (buffer, offset) => {
                                              return {
                                                len: 4,
                                                year: buffer[offset],
                                                month: buffer[offset + 1],
                                                day: buffer[offset + 2],
                                                wday: buffer[offset + 3]
                                              };
                                            };
                                            var decodeCalendarDateRange22222222222 = (buffer, offset) => {
                                              let len = 1;
                                              const startDate = decodeDate22222222222(buffer, offset + len);
                                              len += startDate.len + 1;
                                              const endDate = decodeDate22222222222(buffer, offset + len);
                                              len += endDate.len + 1;
                                              return {
                                                len,
                                                startDate,
                                                endDate
                                              };
                                            };
                                            var decodeCalendarWeekDay22222222222 = (buffer, offset) => {
                                              return {
                                                len: 3,
                                                month: buffer[offset],
                                                week: buffer[offset + 1],
                                                wday: buffer[offset + 2]
                                              };
                                            };
                                            var decodeCalendar22222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              const entries = [];
                                              let decodedValue;
                                              while (len < apduLen) {
                                                const result = decodeTagNumber22222222222(buffer, offset + len);
                                                len += result.len;
                                                switch (result.tagNumber) {
                                                  case 0:
                                                    decodedValue = decodeCalendarDate22222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    entries.push(decodedValue);
                                                    break;
                                                  case 1:
                                                    decodedValue = decodeCalendarDateRange22222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    entries.push(decodedValue);
                                                    break;
                                                  case 2:
                                                    decodedValue = decodeCalendarWeekDay22222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    entries.push(decodedValue);
                                                    break;
                                                  default:
                                                    return {
                                                      len: len - 1,
                                                      value: entries
                                                    };
                                                }
                                              }
                                            };
                                            var bacappDecodeContextApplicationData22222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                              let len = 0;
                                              let result;
                                              if (isContextSpecific22222222222(buffer[offset])) {
                                                if (propertyId === enums_default22222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                                                  result = decodeReadAccessSpecification22222222222(buffer, offset, maxOffset);
                                                  if (!result) {
                                                    return void 0;
                                                  }
                                                  return {
                                                    type: enums_default22222222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                                    value: result.value,
                                                    len: result.len
                                                  };
                                                } else if (propertyId === enums_default22222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                                                  result = decodeCovSubscription22222222222(buffer, offset, maxOffset);
                                                  if (!result) {
                                                    return void 0;
                                                  }
                                                  return {
                                                    type: enums_default22222222222.ApplicationTag.COV_SUBSCRIPTION,
                                                    value: result.value,
                                                    len: result.len
                                                  };
                                                } else if (objectType === enums_default22222222222.ObjectType.GROUP && propertyId === enums_default22222222222.PropertyIdentifier.PRESENT_VALUE) {
                                                  result = decodeReadAccessResult22222222222(buffer, offset, maxOffset);
                                                  if (!result) {
                                                    return void 0;
                                                  }
                                                  return {
                                                    type: enums_default22222222222.ApplicationTag.READ_ACCESS_RESULT,
                                                    value: result.value,
                                                    len: result.len
                                                  };
                                                } else if (propertyId === enums_default22222222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default22222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default22222222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                                                  result = decodeDeviceObjPropertyRef22222222222(buffer, offset, maxOffset);
                                                  if (!result) {
                                                    return void 0;
                                                  }
                                                  return {
                                                    type: enums_default22222222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                                    value: result.value,
                                                    len: result.len
                                                  };
                                                } else if (propertyId === enums_default22222222222.PropertyIdentifier.DATE_LIST) {
                                                  result = decodeCalendar22222222222(buffer, offset, maxOffset);
                                                  if (!result) {
                                                    return void 0;
                                                  }
                                                  return {
                                                    type: enums_default22222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                                    value: result.value,
                                                    len: result.len
                                                  };
                                                } else if (propertyId === enums_default22222222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                                                  let subEvtResult;
                                                  let evtResult = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += 1;
                                                  if (evtResult.tagNumber === 0) {
                                                    subEvtResult = decodeBacnetTime22222222222(buffer, offset + 1);
                                                    return {
                                                      type: enums_default22222222222.ApplicationTag.TIMESTAMP,
                                                      value: subEvtResult.value,
                                                      len: subEvtResult.len + 1
                                                    };
                                                  } else if (evtResult.tagNumber === 1) {
                                                    subEvtResult = decodeUnsigned22222222222(buffer, offset + len, evtResult.value);
                                                    return {
                                                      type: enums_default22222222222.ApplicationTag.UNSIGNED_INTEGER,
                                                      value: subEvtResult.value,
                                                      len: subEvtResult.len + 1
                                                    };
                                                  } else if (evtResult.tagNumber === 2) {
                                                    subEvtResult = decodeBacnetDatetime22222222222(buffer, offset + len);
                                                    return {
                                                      type: enums_default22222222222.ApplicationTag.TIMESTAMP,
                                                      value: subEvtResult.value,
                                                      len: subEvtResult.len + 2
                                                    };
                                                  } else {
                                                    return void 0;
                                                  }
                                                }
                                                const list = [];
                                                let tagResult = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                let multipleValues = isOpeningTag22222222222(buffer[offset + len]);
                                                while (len + offset <= maxOffset && !isClosingTag22222222222(buffer[offset + len])) {
                                                  let subResult = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  if (!subResult) {
                                                    return void 0;
                                                  }
                                                  if (subResult.value === 0) {
                                                    len += subResult.len;
                                                    result = bacappDecodeApplicationData22222222222(
                                                      buffer,
                                                      offset + len,
                                                      maxOffset,
                                                      enums_default22222222222.ASN1_MAX_OBJECT_TYPE,
                                                      enums_default22222222222.ASN1_MAX_PROPERTY_ID
                                                    );
                                                    if (!result) {
                                                      return void 0;
                                                    }
                                                    list.push(result);
                                                    len += result.len;
                                                  } else {
                                                    const overrideTagNumber = bacappContextTagType22222222222(
                                                      propertyId,
                                                      subResult.tagNumber
                                                    );
                                                    if (overrideTagNumber !== enums_default22222222222.ASN1_MAX_APPLICATION_TAG) {
                                                      subResult.tagNumber = overrideTagNumber;
                                                    }
                                                    let bacappResult = bacappDecodeData22222222222(
                                                      buffer,
                                                      offset + len + subResult.len,
                                                      maxOffset,
                                                      subResult.tagNumber,
                                                      subResult.value
                                                    );
                                                    if (!bacappResult) {
                                                      return void 0;
                                                    }
                                                    if (bacappResult.len === subResult.value) {
                                                      let resObj = {
                                                        value: bacappResult.value,
                                                        type: bacappResult.type
                                                      };
                                                      if (bacappResult.encoding !== void 0)
                                                        resObj.encoding = bacappResult.encoding;
                                                      list.push(resObj);
                                                      len += subResult.len + subResult.value;
                                                    } else {
                                                      list.push({
                                                        value: buffer.slice(
                                                          offset + len + subResult.len,
                                                          offset + len + subResult.len + subResult.value
                                                        ),
                                                        type: enums_default22222222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                                      });
                                                      len += subResult.len + subResult.value;
                                                    }
                                                  }
                                                  if (multipleValues === false) {
                                                    return {
                                                      len,
                                                      value: list[0],
                                                      type: enums_default22222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                    };
                                                  }
                                                }
                                                if (len + offset > maxOffset) {
                                                  return void 0;
                                                }
                                                if (decodeIsClosingTagNumber22222222222(buffer, offset + len, tagResult.tagNumber)) {
                                                  len++;
                                                }
                                                return {
                                                  len,
                                                  value: list,
                                                  type: enums_default22222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                };
                                              }
                                              return void 0;
                                            };
                                            var bacappEncodeTimestamp22222222222 = (buffer, value) => {
                                              switch (value.type) {
                                                case enums_default22222222222.TimeStamp.TIME:
                                                  encodeContextTime22222222222(buffer, 0, value.value);
                                                  break;
                                                case enums_default22222222222.TimeStamp.SEQUENCE_NUMBER:
                                                  encodeContextUnsigned22222222222(buffer, 1, value.value);
                                                  break;
                                                case enums_default22222222222.TimeStamp.DATETIME:
                                                  bacappEncodeContextDatetime22222222222(buffer, 2, value.value);
                                                  break;
                                                default:
                                                  throw new Error("NOT_IMPLEMENTED");
                                              }
                                            };
                                            var bacappEncodeContextTimestamp22222222222 = (buffer, tagNumber, value) => {
                                              encodeOpeningTag22222222222(buffer, tagNumber);
                                              bacappEncodeTimestamp22222222222(buffer, value);
                                              encodeClosingTag22222222222(buffer, tagNumber);
                                            };
                                            var decodeContextCharacterString22222222222 = (buffer, offset, maxLength, tagNumber) => {
                                              let len = 0;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, tagNumber)) {
                                                return void 0;
                                              }
                                              const result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              const decodedValue = multiCharsetCharacterstringDecode22222222222(
                                                buffer,
                                                offset + 1 + len,
                                                maxLength,
                                                buffer[offset + len],
                                                result.value - 1
                                              );
                                              if (!decodedValue) {
                                                return void 0;
                                              }
                                              len += result.value;
                                              return {
                                                len,
                                                value: decodedValue.value,
                                                encoding: decodedValue.encoding
                                              };
                                            };
                                            var decodeIsContextTagWithLength22222222222 = (buffer, offset, tagNumber) => {
                                              const result = decodeTagNumber22222222222(buffer, offset);
                                              return {
                                                len: result.len,
                                                value: isContextSpecific22222222222(buffer[offset]) && result.tagNumber === tagNumber
                                              };
                                            };
                                            var decodeContextObjectId22222222222 = (buffer, offset, tagNumber) => {
                                              const result = decodeIsContextTagWithLength22222222222(buffer, offset, tagNumber);
                                              if (!result.value) {
                                                return void 0;
                                              }
                                              const decodedValue = decodeObjectId22222222222(buffer, offset + result.len);
                                              decodedValue.len = decodedValue.len + result.len;
                                              return decodedValue;
                                            };
                                            var encodeBacnetCharacterString22222222222 = (buffer, value, encoding) => {
                                              encoding = encoding || enums_default22222222222.CharacterStringEncoding.UTF_8;
                                              buffer.buffer[buffer.offset++] = encoding;
                                              const bufEncoded = import_iconv_lite22222222222.default.encode(value, getEncodingType22222222222(encoding));
                                              buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                                            };
                                            var encodeApplicationCharacterString22222222222 = (buffer, value, encoding) => {
                                              const tmp = getBuffer22222222222();
                                              encodeBacnetCharacterString22222222222(tmp, value, encoding);
                                              encodeTag22222222222(buffer, enums_default22222222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                              buffer.offset += tmp.offset;
                                            };
                                            var encodeContextCharacterString22222222222 = (buffer, tagNumber, value, encoding) => {
                                              const tmp = getBuffer22222222222();
                                              encodeBacnetCharacterString22222222222(tmp, value, encoding);
                                              encodeTag22222222222(buffer, tagNumber, true, tmp.offset);
                                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                              buffer.offset += tmp.offset;
                                            };
                                            var encode332222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                              encodeContextObjectId22222222222(buffer, 0, objectId.type, objectId.instance);
                                              encodeContextEnumerated22222222222(buffer, 1, propertyId);
                                              if (arrayIndex !== ASN1_ARRAY_ALL22222222222) {
                                                encodeContextUnsigned22222222222(buffer, 2, arrayIndex);
                                              }
                                              encodeOpeningTag22222222222(buffer, 3);
                                              values.forEach((value) => {
                                                bacappEncodeApplicationData22222222222(buffer, value);
                                              });
                                              encodeClosingTag22222222222(buffer, 3);
                                            };
                                            var decode332222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let value = {};
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              value.objectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.property = { id: decodedValue.value };
                                              if (len < apduLen && decodeIsContextTag22222222222(buffer, offset + len, 2)) {
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.property.index = decodedValue.value;
                                              } else {
                                                value.property.index = ASN1_ARRAY_ALL22222222222;
                                              }
                                              const values = [];
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 3)) {
                                                return void 0;
                                              }
                                              len++;
                                              while (apduLen - len > 1) {
                                                result = bacappDecodeApplicationData22222222222(
                                                  buffer,
                                                  offset + len,
                                                  apduLen + offset,
                                                  value.objectId.type,
                                                  value.property.id
                                                );
                                                if (!result) {
                                                  return void 0;
                                                }
                                                len += result.len;
                                                delete result.len;
                                                values.push(result);
                                              }
                                              value.values = values;
                                              if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 3)) {
                                                return void 0;
                                              }
                                              len++;
                                              value.len = len;
                                              return value;
                                            };
                                            var alarm_acknowledge_exports22222222222 = {};
                                            __export22222222222(alarm_acknowledge_exports22222222222, {
                                              decode: () => decode2102222222222,
                                              encode: () => encode2102222222222
                                            });
                                            var encode2102222222222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                                              encodeContextUnsigned22222222222(buffer, 0, ackProcessId);
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                1,
                                                eventObjectId.type,
                                                eventObjectId.instance
                                              );
                                              encodeContextEnumerated22222222222(buffer, 2, eventStateAcknowledged);
                                              bacappEncodeContextTimestamp22222222222(buffer, 3, eventTimeStamp);
                                              encodeContextCharacterString22222222222(buffer, 4, ackSource);
                                              bacappEncodeContextTimestamp22222222222(buffer, 5, ackTimeStamp);
                                            };
                                            var decode2102222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let value = {};
                                              let result;
                                              let decodedValue;
                                              let date;
                                              let time;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.acknowledgedProcessId = decodedValue.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              value.eventObjectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.eventStateAcknowledged = decodedValue.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber === 0) {
                                                decodedValue = decodeBacnetTime22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.eventTimeStamp = decodedValue.value;
                                              } else if (result.tagNumber === 1) {
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.eventTimeStamp = decodedValue.value;
                                              } else if (result.tagNumber === 2) {
                                                date = decodeApplicationDate22222222222(buffer, offset + len);
                                                len += date.len;
                                                date = date.value.value;
                                                time = decodeApplicationTime22222222222(buffer, offset + len);
                                                len += time.len;
                                                time = time.value.value;
                                                value.eventTimeStamp = new Date(
                                                  date.getFullYear(),
                                                  date.getMonth(),
                                                  date.getDate(),
                                                  time.getHours(),
                                                  time.getMinutes(),
                                                  time.getSeconds(),
                                                  time.getMilliseconds()
                                                );
                                                len++;
                                              }
                                              len++;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeCharacterString22222222222(
                                                buffer,
                                                offset + len,
                                                apduLen - (offset + len),
                                                result.value
                                              );
                                              value.acknowledgeSource = decodedValue.value;
                                              len += decodedValue.len;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber === 0) {
                                                decodedValue = decodeBacnetTime22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.acknowledgeTimeStamp = decodedValue.value;
                                              } else if (result.tagNumber === 1) {
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.acknowledgeTimeStamp = decodedValue.value;
                                              } else if (result.tagNumber === 2) {
                                                date = decodeApplicationDate22222222222(buffer, offset + len);
                                                len += date.len;
                                                date = date.value.value;
                                                time = decodeApplicationTime22222222222(buffer, offset + len);
                                                len += time.len;
                                                time = time.value.value;
                                                value.acknowledgeTimeStamp = new Date(
                                                  date.getFullYear(),
                                                  date.getMonth(),
                                                  date.getDate(),
                                                  time.getHours(),
                                                  time.getMinutes(),
                                                  time.getSeconds(),
                                                  time.getMilliseconds()
                                                );
                                                len++;
                                              }
                                              len++;
                                              value.len = len;
                                              return value;
                                            };
                                            var alarm_summary_exports22222222222 = {};
                                            __export22222222222(alarm_summary_exports22222222222, {
                                              decode: () => decode342222222222,
                                              encode: () => encode342222222222
                                            });
                                            var encode342222222222 = (buffer, alarms) => {
                                              alarms.forEach((alarm) => {
                                                encodeContextObjectId22222222222(
                                                  buffer,
                                                  12,
                                                  alarm.objectId.type,
                                                  alarm.objectId.instance
                                                );
                                                encodeContextEnumerated22222222222(buffer, 9, alarm.alarmState);
                                                encodeContextBitstring22222222222(buffer, 8, alarm.acknowledgedTransitions);
                                              });
                                            };
                                            var decode342222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              const alarms = [];
                                              while (apduLen - 3 - len > 0) {
                                                let value = {};
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                value.objectId = {
                                                  type: decodedValue.objectType,
                                                  instance: decodedValue.instance
                                                };
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.alarmState = decodedValue.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeBitstring22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.acknowledgedTransitions = decodedValue.value;
                                                alarms.push(value);
                                              }
                                              return {
                                                len,
                                                alarms
                                              };
                                            };
                                            var atomic_read_file_exports22222222222 = {};
                                            __export22222222222(atomic_read_file_exports22222222222, {
                                              decode: () => decode422222222222,
                                              decodeAcknowledge: () => decodeAcknowledge82222222222,
                                              encode: () => encode422222222222,
                                              encodeAcknowledge: () => encodeAcknowledge92222222222
                                            });
                                            var encode422222222222 = (buffer, isStream, objectId, position, count) => {
                                              encodeApplicationObjectId22222222222(buffer, objectId.type, objectId.instance);
                                              if (isStream) {
                                                encodeOpeningTag22222222222(buffer, 0);
                                                encodeApplicationSigned22222222222(buffer, position);
                                                encodeApplicationUnsigned22222222222(buffer, count);
                                                encodeClosingTag22222222222(buffer, 0);
                                              } else {
                                                encodeOpeningTag22222222222(buffer, 1);
                                                encodeApplicationSigned22222222222(buffer, position);
                                                encodeApplicationUnsigned22222222222(buffer, count);
                                                encodeClosingTag22222222222(buffer, 1);
                                              }
                                            };
                                            var decode422222222222 = (buffer, offset) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let isStream = true;
                                              let objectId = {};
                                              let position = -1;
                                              let count = 0;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 12) {
                                                return void 0;
                                              }
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                                              if (decodeIsOpeningTagNumber22222222222(buffer, offset + len, 0)) {
                                                isStream = true;
                                                len++;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 3) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeSigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                position = decodedValue.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 2) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                count = decodedValue.value;
                                                if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 0)) {
                                                  return void 0;
                                                }
                                                len++;
                                              } else if (decodeIsOpeningTagNumber22222222222(buffer, offset + len, 1)) {
                                                isStream = false;
                                                len++;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 3) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeSigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                position = decodedValue.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 2) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                count = decodedValue.value;
                                                if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 1)) {
                                                  return void 0;
                                                }
                                                len++;
                                              } else {
                                                return void 0;
                                              }
                                              return {
                                                len,
                                                isStream,
                                                objectId,
                                                position,
                                                count
                                              };
                                            };
                                            var encodeAcknowledge92222222222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                                              encodeApplicationBoolean22222222222(buffer, endOfFile);
                                              if (isStream) {
                                                encodeOpeningTag22222222222(buffer, 0);
                                                encodeApplicationSigned22222222222(buffer, position);
                                                encodeApplicationOctetString22222222222(buffer, blocks[0], 0, counts[0]);
                                                encodeClosingTag22222222222(buffer, 0);
                                              } else {
                                                encodeOpeningTag22222222222(buffer, 1);
                                                encodeApplicationSigned22222222222(buffer, position);
                                                encodeApplicationUnsigned22222222222(buffer, blockCount);
                                                for (let i = 0; i < blockCount; i++) {
                                                  encodeApplicationOctetString22222222222(buffer, blocks[i], 0, counts[i]);
                                                }
                                                encodeClosingTag22222222222(buffer, 1);
                                              }
                                            };
                                            var decodeAcknowledge82222222222 = (buffer, offset, length = 0) => {
                                              let len = length;
                                              let result;
                                              let decodedValue;
                                              let endOfFile;
                                              let isStream;
                                              let position;
                                              let targetBuffer;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 1) {
                                                return void 0;
                                              }
                                              endOfFile = result.value > 0;
                                              if (decodeIsOpeningTagNumber22222222222(buffer, offset + len, 0)) {
                                                isStream = true;
                                                len++;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 3) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeSigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                position = decodedValue.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 6) {
                                                  return void 0;
                                                }
                                                targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                                                len += result.value;
                                                if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 0)) {
                                                  return void 0;
                                                }
                                                len++;
                                              } else if (decodeIsOpeningTagNumber22222222222(buffer, offset + len, 1)) {
                                                isStream = false;
                                                throw new Error("NotImplemented");
                                              } else {
                                                return void 0;
                                              }
                                              return {
                                                len,
                                                endOfFile,
                                                isStream,
                                                position,
                                                buffer: targetBuffer
                                              };
                                            };
                                            var atomic_write_file_exports22222222222 = {};
                                            __export22222222222(atomic_write_file_exports22222222222, {
                                              decode: () => decode522222222222,
                                              decodeAcknowledge: () => decodeAcknowledge222222222222,
                                              encode: () => encode522222222222,
                                              encodeAcknowledge: () => encodeAcknowledge222222222222
                                            });
                                            var encode522222222222 = (buffer, isStream, objectId, position, blocks) => {
                                              encodeApplicationObjectId22222222222(buffer, objectId.type, objectId.instance);
                                              if (isStream) {
                                                encodeOpeningTag22222222222(buffer, 0);
                                                encodeApplicationSigned22222222222(buffer, position);
                                                encodeApplicationOctetString22222222222(buffer, blocks[0], 0, blocks[0].length);
                                                encodeClosingTag22222222222(buffer, 0);
                                              } else {
                                                encodeOpeningTag22222222222(buffer, 1);
                                                encodeApplicationSigned22222222222(buffer, position);
                                                encodeApplicationUnsigned22222222222(buffer, blocks.length);
                                                for (let i = 0; i < blocks.length; i++) {
                                                  encodeApplicationOctetString22222222222(
                                                    buffer,
                                                    blocks[i],
                                                    0,
                                                    blocks[i].length
                                                  );
                                                }
                                                encodeClosingTag22222222222(buffer, 1);
                                              }
                                            };
                                            var decode522222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let isStream;
                                              let position;
                                              let blocks = [];
                                              let blockCount;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 12) {
                                                return void 0;
                                              }
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              let objectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              if (decodeIsOpeningTagNumber22222222222(buffer, offset + len, 0)) {
                                                isStream = true;
                                                len++;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 3) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeSigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                position = decodedValue.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 6) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeOctetString22222222222(
                                                  buffer,
                                                  offset + len,
                                                  apduLen,
                                                  0,
                                                  result.value
                                                );
                                                len += decodedValue.len;
                                                blocks.push(decodedValue.value);
                                                if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 0)) {
                                                  return void 0;
                                                }
                                                len++;
                                              } else if (decodeIsOpeningTagNumber22222222222(buffer, offset + len, 1)) {
                                                isStream = false;
                                                len++;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 3) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeSigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                position = decodedValue.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 2) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                blockCount = decodedValue.value;
                                                for (let i = 0; i < blockCount; i++) {
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber !== 6) {
                                                    return void 0;
                                                  }
                                                  decodedValue = decodeOctetString22222222222(
                                                    buffer,
                                                    offset + len,
                                                    apduLen,
                                                    0,
                                                    result.value
                                                  );
                                                  len += decodedValue.len;
                                                  blocks.push(decodedValue.value);
                                                }
                                                if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 1)) {
                                                  return void 0;
                                                }
                                                len++;
                                              } else {
                                                return void 0;
                                              }
                                              return {
                                                len,
                                                isStream,
                                                objectId,
                                                position,
                                                blocks
                                              };
                                            };
                                            var encodeAcknowledge222222222222 = (buffer, isStream, position) => {
                                              if (isStream) {
                                                encodeContextSigned22222222222(buffer, 0, position);
                                              } else {
                                                encodeContextSigned22222222222(buffer, 1, position);
                                              }
                                            };
                                            var decodeAcknowledge222222222222 = (buffer, offset, length = 0) => {
                                              let len = length;
                                              let isStream = false;
                                              let position = 0;
                                              let decodedValue;
                                              const result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber === 0) {
                                                isStream = true;
                                              } else if (result.tagNumber === 1) {
                                                isStream = false;
                                              } else {
                                                return void 0;
                                              }
                                              decodedValue = decodeSigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              position = decodedValue.value;
                                              return {
                                                len,
                                                isStream,
                                                position
                                              };
                                            };
                                            var cov_notify_exports22222222222 = {};
                                            __export22222222222(cov_notify_exports22222222222, {
                                              decode: () => decode622222222222,
                                              encode: () => encode622222222222
                                            });
                                            var encode622222222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                                              encodeContextUnsigned22222222222(buffer, 0, subscriberProcessId);
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                1,
                                                8,
                                                initiatingDeviceId
                                              );
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                2,
                                                monitoredObjectId.type,
                                                monitoredObjectId.instance
                                              );
                                              encodeContextUnsigned22222222222(buffer, 3, timeRemaining);
                                              encodeOpeningTag22222222222(buffer, 4);
                                              values.forEach((value) => {
                                                encodeContextEnumerated22222222222(buffer, 0, value.property.id);
                                                if (value.property.index === ASN1_ARRAY_ALL22222222222) {
                                                  encodeContextUnsigned22222222222(buffer, 1, value.property.index);
                                                }
                                                encodeOpeningTag22222222222(buffer, 2);
                                                value.value.forEach((v) => {
                                                  bacappEncodeApplicationData22222222222(buffer, v);
                                                });
                                                encodeClosingTag22222222222(buffer, 2);
                                                if (value.priority === ASN1_NO_PRIORITY22222222222) {
                                                  encodeContextUnsigned22222222222(buffer, 3, value.priority);
                                                }
                                              });
                                              encodeClosingTag22222222222(buffer, 4);
                                            };
                                            var decode622222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              const subscriberProcessId = decodedValue.value;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              const initiatingDeviceId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 2)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              const monitoredObjectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 3)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              const timeRemaining = decodedValue.value;
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 4)) {
                                                return void 0;
                                              }
                                              len++;
                                              const values = [];
                                              while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222222(buffer, offset + len, 4)) {
                                                let newEntry = {};
                                                newEntry.property = {};
                                                if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                  return void 0;
                                                }
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                newEntry.property.id = decodedValue.value;
                                                if (decodeIsContextTag22222222222(buffer, offset + len, 1)) {
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  newEntry.property.index = decodedValue.value;
                                                } else {
                                                  newEntry.property.index = ASN1_ARRAY_ALL22222222222;
                                                }
                                                if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 2)) {
                                                  return void 0;
                                                }
                                                len++;
                                                const properties = [];
                                                while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222222(buffer, offset + len, 2)) {
                                                  decodedValue = bacappDecodeApplicationData22222222222(
                                                    buffer,
                                                    offset + len,
                                                    apduLen + offset,
                                                    monitoredObjectId.type,
                                                    newEntry.property.id
                                                  );
                                                  if (!decodedValue) {
                                                    return void 0;
                                                  }
                                                  len += decodedValue.len;
                                                  delete decodedValue.len;
                                                  properties.push(decodedValue);
                                                }
                                                newEntry.value = properties;
                                                len++;
                                                if (decodeIsContextTag22222222222(buffer, offset + len, 3)) {
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  newEntry.priority = decodedValue.value;
                                                } else {
                                                  newEntry.priority = ASN1_NO_PRIORITY22222222222;
                                                }
                                                values.push(newEntry);
                                              }
                                              return {
                                                len,
                                                subscriberProcessId,
                                                initiatingDeviceId,
                                                monitoredObjectId,
                                                timeRemaining,
                                                values
                                              };
                                            };
                                            var create_object_exports22222222222 = {};
                                            __export22222222222(create_object_exports22222222222, {
                                              decode: () => decode722222222222,
                                              encode: () => encode722222222222,
                                              encodeAcknowledge: () => encodeAcknowledge322222222222
                                            });
                                            var encode722222222222 = (buffer, objectId, values) => {
                                              encodeOpeningTag22222222222(buffer, 0);
                                              encodeContextObjectId22222222222(buffer, 1, objectId.type, objectId.instance);
                                              encodeClosingTag22222222222(buffer, 0);
                                              encodeOpeningTag22222222222(buffer, 1);
                                              values.forEach((propertyValue) => {
                                                encodeContextEnumerated22222222222(buffer, 0, propertyValue.property.id);
                                                if (propertyValue.property.index !== ASN1_ARRAY_ALL22222222222) {
                                                  encodeContextUnsigned22222222222(buffer, 1, propertyValue.property.index);
                                                }
                                                encodeOpeningTag22222222222(buffer, 2);
                                                propertyValue.value.forEach((value) => {
                                                  bacappEncodeApplicationData22222222222(buffer, value);
                                                });
                                                encodeClosingTag22222222222(buffer, 2);
                                                if (propertyValue.priority !== ASN1_NO_PRIORITY22222222222) {
                                                  encodeContextUnsigned22222222222(buffer, 3, propertyValue.priority);
                                                }
                                              });
                                              encodeClosingTag22222222222(buffer, 1);
                                            };
                                            var decode722222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let objectId;
                                              const valueList = [];
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber === 0 && apduLen > len) {
                                                apduLen -= len;
                                                if (apduLen < 4) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeContextObjectId22222222222(buffer, offset + len, 1);
                                                len += decodedValue.len;
                                                objectId = {
                                                  type: decodedValue.objectType,
                                                  instance: decodedValue.instance
                                                };
                                              } else {
                                                return void 0;
                                              }
                                              if (decodeIsClosingTag22222222222(buffer, offset + len)) {
                                                len++;
                                              }
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              len++;
                                              while (apduLen - len > 1) {
                                                let newEntry = {};
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 0) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                let propertyId = decodedValue.value;
                                                let arraIndex = ASN1_ARRAY_ALL22222222222;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber === 1) {
                                                  decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  arraIndex += decodedValue.value;
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                }
                                                newEntry.property = { id: propertyId, index: arraIndex };
                                                if (result.tagNumber === 2 && decodeIsOpeningTag22222222222(buffer, offset + len - 1)) {
                                                  const values = [];
                                                  while (!decodeIsClosingTag22222222222(buffer, offset + len)) {
                                                    decodedValue = bacappDecodeApplicationData22222222222(
                                                      buffer,
                                                      offset + len,
                                                      apduLen + offset,
                                                      objectId.type,
                                                      propertyId
                                                    );
                                                    if (!decodedValue) {
                                                      return void 0;
                                                    }
                                                    len += decodedValue.len;
                                                    delete decodedValue.len;
                                                    values.push(decodedValue);
                                                  }
                                                  len++;
                                                  newEntry.value = values;
                                                } else {
                                                  return void 0;
                                                }
                                                valueList.push(newEntry);
                                              }
                                              if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              len++;
                                              return {
                                                len,
                                                objectId,
                                                values: valueList
                                              };
                                            };
                                            var encodeAcknowledge322222222222 = (buffer, objectId) => {
                                              encodeApplicationObjectId22222222222(buffer, objectId.type, objectId.instance);
                                            };
                                            var delete_object_exports22222222222 = {};
                                            __export22222222222(delete_object_exports22222222222, {
                                              decode: () => decode822222222222,
                                              encode: () => encode822222222222
                                            });
                                            var decode822222222222 = (buffer, offset, apduLen) => {
                                              const result = decodeTagNumberAndValue22222222222(buffer, offset);
                                              if (result.tagNumber !== 12) {
                                                return void 0;
                                              }
                                              let len = 1;
                                              const value = decodeObjectId22222222222(buffer, offset + len);
                                              len += value.len;
                                              if (len !== apduLen) {
                                                return void 0;
                                              }
                                              value.len = len;
                                              return value;
                                            };
                                            var encode822222222222 = (buffer, objectId) => {
                                              encodeApplicationObjectId22222222222(buffer, objectId.type, objectId.instance);
                                            };
                                            var device_communication_control_exports22222222222 = {};
                                            __export22222222222(device_communication_control_exports22222222222, {
                                              decode: () => decode922222222222,
                                              encode: () => encode922222222222
                                            });
                                            var encode922222222222 = (buffer, timeDuration, enableDisable, password) => {
                                              if (timeDuration > 0) {
                                                encodeContextUnsigned22222222222(buffer, 0, timeDuration);
                                              }
                                              encodeContextEnumerated22222222222(buffer, 1, enableDisable);
                                              if (password && password !== "") {
                                                encodeContextCharacterString22222222222(buffer, 2, password);
                                              }
                                            };
                                            var decode922222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let value = {};
                                              let decodedValue;
                                              let result;
                                              if (decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                value.timeDuration = decodedValue.value;
                                                len += decodedValue.len;
                                              }
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              value.enableDisable = decodedValue.value;
                                              len += decodedValue.len;
                                              if (len < apduLen) {
                                                if (!decodeIsContextTag22222222222(buffer, offset + len, 2)) {
                                                  return void 0;
                                                }
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeCharacterString22222222222(
                                                  buffer,
                                                  offset + len,
                                                  apduLen - (offset + len),
                                                  result.value
                                                );
                                                value.password = decodedValue.value;
                                                len += decodedValue.len;
                                              }
                                              value.len = len;
                                              return value;
                                            };
                                            var error_exports22222222222 = {};
                                            __export22222222222(error_exports22222222222, {
                                              buildMessage: () => buildMessage22222222222,
                                              decode: () => decode1022222222222,
                                              encode: () => encode1022222222222
                                            });
                                            var encode1022222222222 = (buffer, errorClass, errorCode) => {
                                              encodeApplicationEnumerated22222222222(buffer, errorClass);
                                              encodeApplicationEnumerated22222222222(buffer, errorCode);
                                            };
                                            var decode1022222222222 = (buffer, offset) => {
                                              const orgOffset = offset;
                                              let result;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset);
                                              offset += result.len;
                                              const errorClass = decodeEnumerated22222222222(buffer, offset, result.value);
                                              offset += errorClass.len;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset);
                                              offset += result.len;
                                              const errorCode = decodeEnumerated22222222222(buffer, offset, result.value);
                                              offset += errorClass.len;
                                              return {
                                                len: offset - orgOffset,
                                                class: errorClass.value,
                                                code: errorCode.value
                                              };
                                            };
                                            var buildMessage22222222222 = function(result) {
                                              return "BacnetError Class: " + ErrorClassName22222222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName22222222222[result.code] + " (" + result.code + ")";
                                            };
                                            var event_information_exports22222222222 = {};
                                            __export22222222222(event_information_exports22222222222, {
                                              decode: () => decode1122222222222,
                                              encode: () => encode1122222222222
                                            });
                                            var encode1122222222222 = (buffer, events, moreEvents) => {
                                              encodeOpeningTag22222222222(buffer, 0);
                                              events.forEach((event) => {
                                                encodeContextObjectId22222222222(
                                                  buffer,
                                                  0,
                                                  event.objectId.type,
                                                  event.objectId.instance
                                                );
                                                encodeContextEnumerated22222222222(buffer, 1, event.eventState);
                                                encodeContextBitstring22222222222(buffer, 2, event.acknowledgedTransitions);
                                                encodeOpeningTag22222222222(buffer, 3);
                                                for (let i = 0; i < 3; i++) {
                                                  encodeApplicationDate22222222222(buffer, event.eventTimeStamps[i]);
                                                  encodeApplicationTime22222222222(buffer, event.eventTimeStamps[i]);
                                                }
                                                encodeClosingTag22222222222(buffer, 3);
                                                encodeContextEnumerated22222222222(buffer, 4, event.notifyType);
                                                encodeContextBitstring22222222222(buffer, 5, event.eventEnable);
                                                encodeOpeningTag22222222222(buffer, 6);
                                                for (let i = 0; i < 3; i++) {
                                                  encodeApplicationUnsigned22222222222(buffer, event.eventPriorities[i]);
                                                }
                                                encodeClosingTag22222222222(buffer, 6);
                                              });
                                              encodeClosingTag22222222222(buffer, 0);
                                              encodeContextBoolean22222222222(buffer, 1, moreEvents);
                                            };
                                            var decode1122222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              len++;
                                              const alarms = [];
                                              let moreEvents;
                                              while (apduLen - 3 - len > 0) {
                                                let value = {};
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                value.objectId = {
                                                  type: decodedValue.objectType,
                                                  instance: decodedValue.instance
                                                };
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.eventState = decodedValue.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeBitstring22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.acknowledgedTransitions = decodedValue.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                value.eventTimeStamps = [];
                                                for (let i = 0; i < 3; i++) {
                                                  if (result.tagNumber !== 0) {
                                                    decodedValue = decodeApplicationDate22222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    const date = decodedValue.value.value;
                                                    decodedValue = decodeApplicationTime22222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    const time = decodedValue.value.value;
                                                    value.eventTimeStamps[i] = new Date(
                                                      date.getFullYear(),
                                                      date.getMonth(),
                                                      date.getDate(),
                                                      time.getHours(),
                                                      time.getMinutes(),
                                                      time.getSeconds(),
                                                      time.getMilliseconds()
                                                    );
                                                  } else {
                                                    len += result.value;
                                                  }
                                                }
                                                len++;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.notifyType = decodedValue.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeBitstring22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.eventEnable = decodedValue.value;
                                                len++;
                                                value.eventPriorities = [];
                                                for (let i = 0; i < 3; i++) {
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.eventPriorities[i] = decodedValue.value;
                                                }
                                                len++;
                                                alarms.push(value);
                                              }
                                              moreEvents = buffer[apduLen - 1] === 1;
                                              return {
                                                len,
                                                alarms,
                                                moreEvents
                                              };
                                            };
                                            var event_notify_data_exports22222222222 = {};
                                            __export22222222222(event_notify_data_exports22222222222, {
                                              decode: () => decode1222222222222,
                                              encode: () => encode1222222222222
                                            });
                                            var encode1222222222222 = (buffer, data) => {
                                              encodeContextUnsigned22222222222(buffer, 0, data.processId);
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                1,
                                                data.initiatingObjectId.type,
                                                data.initiatingObjectId.instance
                                              );
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                2,
                                                data.eventObjectId.type,
                                                data.eventObjectId.instance
                                              );
                                              bacappEncodeContextTimestamp22222222222(buffer, 3, data.timeStamp);
                                              encodeContextUnsigned22222222222(buffer, 4, data.notificationClass);
                                              encodeContextUnsigned22222222222(buffer, 5, data.priority);
                                              encodeContextEnumerated22222222222(buffer, 6, data.eventType);
                                              if (data.messageText && data.messageText !== "") {
                                                encodeContextCharacterString22222222222(buffer, 7, data.messageText);
                                              }
                                              encodeContextEnumerated22222222222(buffer, 8, data.notifyType);
                                              switch (data.notifyType) {
                                                case 0:
                                                case 1:
                                                  encodeContextBoolean22222222222(buffer, 9, data.ackRequired);
                                                  encodeContextEnumerated22222222222(buffer, 10, data.fromState);
                                                  break;
                                                default:
                                                  break;
                                              }
                                              encodeContextEnumerated22222222222(buffer, 11, data.toState);
                                              switch (data.notifyType) {
                                                case 0:
                                                case 1:
                                                  encodeOpeningTag22222222222(buffer, 12);
                                                  switch (data.eventType) {
                                                    case 0:
                                                      encodeOpeningTag22222222222(buffer, 0);
                                                      encodeContextBitstring22222222222(
                                                        buffer,
                                                        0,
                                                        data.changeOfBitstringReferencedBitString
                                                      );
                                                      encodeContextBitstring22222222222(
                                                        buffer,
                                                        1,
                                                        data.changeOfBitstringStatusFlags
                                                      );
                                                      encodeClosingTag22222222222(buffer, 0);
                                                      break;
                                                    case 1:
                                                      encodeOpeningTag22222222222(buffer, 1);
                                                      encodeOpeningTag22222222222(buffer, 0);
                                                      bacappEncodePropertyState22222222222(buffer, data.changeOfStateNewState);
                                                      encodeClosingTag22222222222(buffer, 0);
                                                      encodeContextBitstring22222222222(
                                                        buffer,
                                                        1,
                                                        data.changeOfStateStatusFlags
                                                      );
                                                      encodeClosingTag22222222222(buffer, 1);
                                                      break;
                                                    case 2:
                                                      encodeOpeningTag22222222222(buffer, 2);
                                                      encodeOpeningTag22222222222(buffer, 0);
                                                      switch (data.changeOfValueTag) {
                                                        case 0:
                                                          encodeContextReal22222222222(
                                                            buffer,
                                                            1,
                                                            data.changeOfValueChangeValue
                                                          );
                                                          break;
                                                        case 1:
                                                          encodeContextBitstring22222222222(
                                                            buffer,
                                                            0,
                                                            data.changeOfValueChangedBits
                                                          );
                                                          break;
                                                        default:
                                                          throw new Error("NotImplemented");
                                                      }
                                                      encodeClosingTag22222222222(buffer, 0);
                                                      encodeContextBitstring22222222222(
                                                        buffer,
                                                        1,
                                                        data.changeOfValueStatusFlags
                                                      );
                                                      encodeClosingTag22222222222(buffer, 2);
                                                      break;
                                                    case 4:
                                                      encodeOpeningTag22222222222(buffer, 4);
                                                      encodeContextReal22222222222(buffer, 0, data.floatingLimitReferenceValue);
                                                      encodeContextBitstring22222222222(
                                                        buffer,
                                                        1,
                                                        data.floatingLimitStatusFlags
                                                      );
                                                      encodeContextReal22222222222(buffer, 2, data.floatingLimitSetPointValue);
                                                      encodeContextReal22222222222(buffer, 3, data.floatingLimitErrorLimit);
                                                      encodeClosingTag22222222222(buffer, 4);
                                                      break;
                                                    case 5:
                                                      encodeOpeningTag22222222222(buffer, 5);
                                                      encodeContextReal22222222222(buffer, 0, data.outOfRangeExceedingValue);
                                                      encodeContextBitstring22222222222(buffer, 1, data.outOfRangeStatusFlags);
                                                      encodeContextReal22222222222(buffer, 2, data.outOfRangeDeadband);
                                                      encodeContextReal22222222222(buffer, 3, data.outOfRangeExceededLimit);
                                                      encodeClosingTag22222222222(buffer, 5);
                                                      break;
                                                    case 8:
                                                      encodeOpeningTag22222222222(buffer, 8);
                                                      encodeContextEnumerated22222222222(
                                                        buffer,
                                                        0,
                                                        data.changeOfLifeSafetyNewState
                                                      );
                                                      encodeContextEnumerated22222222222(
                                                        buffer,
                                                        1,
                                                        data.changeOfLifeSafetyNewMode
                                                      );
                                                      encodeContextBitstring22222222222(
                                                        buffer,
                                                        2,
                                                        data.changeOfLifeSafetyStatusFlags
                                                      );
                                                      encodeContextEnumerated22222222222(
                                                        buffer,
                                                        3,
                                                        data.changeOfLifeSafetyOperationExpected
                                                      );
                                                      encodeClosingTag22222222222(buffer, 8);
                                                      break;
                                                    case 10:
                                                      encodeOpeningTag22222222222(buffer, 10);
                                                      bacappEncodeContextDeviceObjPropertyRef22222222222(
                                                        buffer,
                                                        0,
                                                        data.bufferReadyBufferProperty
                                                      );
                                                      encodeContextUnsigned22222222222(
                                                        buffer,
                                                        1,
                                                        data.bufferReadyPreviousNotification
                                                      );
                                                      encodeContextUnsigned22222222222(
                                                        buffer,
                                                        2,
                                                        data.bufferReadyCurrentNotification
                                                      );
                                                      encodeClosingTag22222222222(buffer, 10);
                                                      break;
                                                    case 11:
                                                      encodeOpeningTag22222222222(buffer, 11);
                                                      encodeContextUnsigned22222222222(
                                                        buffer,
                                                        0,
                                                        data.unsignedRangeExceedingValue
                                                      );
                                                      encodeContextBitstring22222222222(
                                                        buffer,
                                                        1,
                                                        data.unsignedRangeStatusFlags
                                                      );
                                                      encodeContextUnsigned22222222222(
                                                        buffer,
                                                        2,
                                                        data.unsignedRangeExceededLimit
                                                      );
                                                      encodeClosingTag22222222222(buffer, 11);
                                                      break;
                                                    case 9:
                                                    case 3:
                                                      throw new Error("NotImplemented");
                                                    default:
                                                      throw new Error("NotImplemented");
                                                  }
                                                  encodeClosingTag22222222222(buffer, 12);
                                                  break;
                                                case 2:
                                                  throw new Error("NotImplemented");
                                                default:
                                                  break;
                                              }
                                            };
                                            var decode1222222222222 = (buffer, offset) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let eventData = {};
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              eventData.processId = decodedValue.value;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              eventData.initiatingObjectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 2)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              eventData.eventObjectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 3)) {
                                                return void 0;
                                              }
                                              len += 2;
                                              decodedValue = decodeApplicationDate22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              const date = decodedValue.value.value;
                                              decodedValue = decodeApplicationTime22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              const time = decodedValue.value.value;
                                              eventData.timeStamp = new Date(
                                                date.getFullYear(),
                                                date.getMonth(),
                                                date.getDate(),
                                                time.getHours(),
                                                time.getMinutes(),
                                                time.getSeconds(),
                                                time.getMilliseconds()
                                              );
                                              len += 2;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 4)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              eventData.notificationClass = decodedValue.value;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 5)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              eventData.priority = decodedValue.value;
                                              if (eventData.priority > 255) {
                                                return void 0;
                                              }
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 6)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              eventData.eventType = decodedValue.value;
                                              if (decodeIsContextTag22222222222(buffer, offset + len, 7)) {
                                                decodedValue = decodeContextCharacterString22222222222(
                                                  buffer,
                                                  offset + len,
                                                  2e4,
                                                  7
                                                );
                                                len += decodedValue.len;
                                                eventData.messageText = decodedValue.value;
                                              }
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 8)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              eventData.notifyType = decodedValue.value;
                                              switch (eventData.notifyType) {
                                                case 0:
                                                case 1:
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned22222222222(buffer, offset + len, 1);
                                                  len += decodedValue.len;
                                                  eventData.ackRequired = decodedValue.value > 0;
                                                  if (!decodeIsContextTag22222222222(buffer, offset + len, 10)) {
                                                    return void 0;
                                                  }
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeEnumerated22222222222(
                                                    buffer,
                                                    offset + len,
                                                    result.value
                                                  );
                                                  len += decodedValue.len;
                                                  eventData.fromState = decodedValue.value;
                                                  break;
                                                default:
                                                  break;
                                              }
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 11)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              eventData.toState = decodedValue.value;
                                              eventData.len = len;
                                              return eventData;
                                            };
                                            var get_enrollment_summary_exports22222222222 = {};
                                            __export22222222222(get_enrollment_summary_exports22222222222, {
                                              decode: () => decode1322222222222,
                                              decodeAcknowledge: () => decodeAcknowledge322222222222,
                                              encode: () => encode1322222222222,
                                              encodeAcknowledge: () => encodeAcknowledge422222222222
                                            });
                                            var encode1322222222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                                              encodeContextEnumerated22222222222(buffer, 0, acknowledgmentFilter);
                                              if (enrollmentFilter) {
                                                encodeOpeningTag22222222222(buffer, 1);
                                                encodeOpeningTag22222222222(buffer, 0);
                                                encodeContextObjectId22222222222(
                                                  buffer,
                                                  0,
                                                  enrollmentFilter.objectId.type,
                                                  enrollmentFilter.objectId.instance
                                                );
                                                encodeClosingTag22222222222(buffer, 0);
                                                encodeContextUnsigned22222222222(buffer, 1, enrollmentFilter.processId);
                                                encodeClosingTag22222222222(buffer, 1);
                                              }
                                              if (eventStateFilter) {
                                                encodeOpeningTag22222222222(buffer, 2);
                                                encodeContextEnumerated22222222222(buffer, 0, eventStateFilter);
                                                encodeClosingTag22222222222(buffer, 2);
                                              }
                                              if (eventTypeFilter) {
                                                encodeOpeningTag22222222222(buffer, 3);
                                                encodeContextEnumerated22222222222(buffer, 0, eventTypeFilter);
                                                encodeClosingTag22222222222(buffer, 3);
                                              }
                                              if (priorityFilter) {
                                                encodeOpeningTag22222222222(buffer, 4);
                                                encodeContextUnsigned22222222222(buffer, 0, priorityFilter.min);
                                                encodeContextUnsigned22222222222(buffer, 1, priorityFilter.max);
                                                encodeClosingTag22222222222(buffer, 4);
                                              }
                                              if (notificationClassFilter) {
                                                encodeOpeningTag22222222222(buffer, 5);
                                                encodeContextUnsigned22222222222(buffer, 0, notificationClassFilter);
                                                encodeClosingTag22222222222(buffer, 5);
                                              }
                                            };
                                            var decode1322222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let value = {};
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.acknowledgmentFilter = decodedValue.value;
                                              if (decodeIsContextTag22222222222(buffer, offset + len, 1)) {
                                                len++;
                                                value.enrollmentFilter = {};
                                                if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                  return void 0;
                                                }
                                                len++;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                value.enrollmentFilter.objectId = {
                                                  type: decodedValue.objectType,
                                                  instance: decodedValue.instance
                                                };
                                                len++;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.enrollmentFilter.processId = decodedValue.value;
                                                len++;
                                              }
                                              if (decodeIsContextTag22222222222(buffer, offset + len, 2)) {
                                                len++;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.eventStateFilter = decodedValue.value;
                                                len++;
                                              }
                                              if (decodeIsContextTag22222222222(buffer, offset + len, 3)) {
                                                len++;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.eventTypeFilter = decodedValue.value;
                                                len++;
                                              }
                                              if (decodeIsContextTag22222222222(buffer, offset + len, 4)) {
                                                len++;
                                                value.priorityFilter = {};
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.priorityFilter.min = decodedValue.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.priorityFilter.max = decodedValue.value;
                                                len++;
                                              }
                                              if (decodeIsContextTag22222222222(buffer, offset + len, 5)) {
                                                len++;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.notificationClassFilter = decodedValue.value;
                                                len++;
                                              }
                                              value.len = len;
                                              return value;
                                            };
                                            var encodeAcknowledge422222222222 = (buffer, enrollmentSummaries) => {
                                              enrollmentSummaries.forEach((enrollmentSummary) => {
                                                encodeApplicationObjectId22222222222(
                                                  buffer,
                                                  enrollmentSummary.objectId.type,
                                                  enrollmentSummary.objectId.instance
                                                );
                                                encodeApplicationEnumerated22222222222(buffer, enrollmentSummary.eventType);
                                                encodeApplicationEnumerated22222222222(buffer, enrollmentSummary.eventState);
                                                encodeApplicationUnsigned22222222222(buffer, enrollmentSummary.priority);
                                                encodeApplicationUnsigned22222222222(
                                                  buffer,
                                                  enrollmentSummary.notificationClass
                                                );
                                              });
                                            };
                                            var decodeAcknowledge322222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              const enrollmentSummaries = [];
                                              while (apduLen - len > 0) {
                                                const enrollmentSummary = {};
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 12) {
                                                  return void 0;
                                                }
                                                result = decodeObjectId22222222222(buffer, offset + len);
                                                len += result.len;
                                                enrollmentSummary.objectId = {
                                                  type: result.objectType,
                                                  instance: result.instance
                                                };
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 9) {
                                                  return void 0;
                                                }
                                                result = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                len += result.len;
                                                enrollmentSummary.eventType = result.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 9) {
                                                  return void 0;
                                                }
                                                result = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                len += result.len;
                                                enrollmentSummary.eventState = result.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 2) {
                                                  return void 0;
                                                }
                                                result = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += result.len;
                                                enrollmentSummary.priority = result.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 2) {
                                                  return void 0;
                                                }
                                                result = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += result.len;
                                                enrollmentSummary.notificationClass = result.value;
                                                enrollmentSummaries.push(enrollmentSummary);
                                              }
                                              return {
                                                enrollmentSummaries,
                                                len
                                              };
                                            };
                                            var get_event_information_exports22222222222 = {};
                                            __export22222222222(get_event_information_exports22222222222, {
                                              decode: () => decode1422222222222,
                                              decodeAcknowledge: () => decodeAcknowledge422222222222,
                                              encode: () => encode1422222222222,
                                              encodeAcknowledge: () => encodeAcknowledge522222222222
                                            });
                                            var encode1422222222222 = (buffer, lastReceivedObjectId) => {
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                0,
                                                lastReceivedObjectId.type,
                                                lastReceivedObjectId.instance
                                              );
                                            };
                                            var decode1422222222222 = (buffer, offset) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let value = {};
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              value.lastReceivedObjectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              value.len = len;
                                              return value;
                                            };
                                            var encodeAcknowledge522222222222 = (buffer, events, moreEvents) => {
                                              encodeOpeningTag22222222222(buffer, 0);
                                              events.forEach((eventData) => {
                                                encodeContextObjectId22222222222(
                                                  buffer,
                                                  0,
                                                  eventData.objectId.type,
                                                  eventData.objectId.instance
                                                );
                                                encodeContextEnumerated22222222222(buffer, 1, eventData.eventState);
                                                encodeContextBitstring22222222222(buffer, 2, eventData.acknowledgedTransitions);
                                                encodeOpeningTag22222222222(buffer, 3);
                                                for (let i = 0; i < 3; i++) {
                                                  bacappEncodeTimestamp22222222222(buffer, eventData.eventTimeStamps[i]);
                                                }
                                                encodeClosingTag22222222222(buffer, 3);
                                                encodeContextEnumerated22222222222(buffer, 4, eventData.notifyType);
                                                encodeContextBitstring22222222222(buffer, 5, eventData.eventEnable);
                                                encodeOpeningTag22222222222(buffer, 6);
                                                for (let i = 0; i < 3; i++) {
                                                  encodeApplicationUnsigned22222222222(buffer, eventData.eventPriorities[i]);
                                                }
                                                encodeClosingTag22222222222(buffer, 6);
                                              });
                                              encodeClosingTag22222222222(buffer, 0);
                                              encodeContextBoolean22222222222(buffer, 1, moreEvents);
                                            };
                                            var decodeAcknowledge422222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let value = {};
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              value.events = [];
                                              while (apduLen - len > 3) {
                                                let event = {};
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                event.objectId = {
                                                  type: decodedValue.objectType,
                                                  instance: decodedValue.instance
                                                };
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                event.eventState = decodedValue.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeBitstring22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                event.acknowledgedTransitions = decodedValue.value;
                                                if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 3)) {
                                                  return void 0;
                                                }
                                                len++;
                                                event.eventTimeStamps = [];
                                                for (let i = 0; i < 3; i++) {
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                  if (result.tagNumber === 0) {
                                                    decodedValue = decodeBacnetTime22222222222(
                                                      buffer,
                                                      offset + len,
                                                      result.value
                                                    );
                                                    len += decodedValue.len;
                                                    event.eventTimeStamps[i] = {
                                                      value: decodedValue.value,
                                                      type: 0
                                                      /* TIME */
                                                    };
                                                  } else if (result.tagNumber === 1) {
                                                    decodedValue = decodeUnsigned22222222222(
                                                      buffer,
                                                      offset + len,
                                                      result.value
                                                    );
                                                    len += decodedValue.len;
                                                    event.eventTimeStamps[i] = {
                                                      value: decodedValue.value,
                                                      type: 1
                                                      /* SEQUENCE_NUMBER */
                                                    };
                                                  } else if (result.tagNumber === 2) {
                                                    let date = decodeApplicationDate22222222222(
                                                      buffer,
                                                      offset + len
                                                    );
                                                    len += date.len;
                                                    date = date.value.value;
                                                    let time = decodeApplicationTime22222222222(
                                                      buffer,
                                                      offset + len
                                                    );
                                                    len += time.len;
                                                    time = time.value.value;
                                                    event.eventTimeStamps[i] = {
                                                      value: new Date(
                                                        date.getFullYear(),
                                                        date.getMonth(),
                                                        date.getDate(),
                                                        time.getHours(),
                                                        time.getMinutes(),
                                                        time.getSeconds(),
                                                        time.getMilliseconds()
                                                      ),
                                                      type: 2
                                                      /* DATETIME */
                                                    };
                                                    len++;
                                                  }
                                                }
                                                if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 3)) {
                                                  return void 0;
                                                }
                                                len++;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                event.notifyType = decodedValue.value;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeBitstring22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                event.eventEnable = decodedValue.value;
                                                if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 6)) {
                                                  return void 0;
                                                }
                                                len++;
                                                event.eventPriorities = [];
                                                for (let i = 0; i < 3; i++) {
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  event.eventPriorities[i] = decodedValue.value;
                                                }
                                                if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 6)) {
                                                  return void 0;
                                                }
                                                len++;
                                                value.events.push(event);
                                              }
                                              if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              value.moreEvents = buffer[offset + len] > 0;
                                              len++;
                                              value.len = len;
                                              return value;
                                            };
                                            var i_am_exports22222222222 = {};
                                            __export22222222222(i_am_exports22222222222, {
                                              decode: () => decode1522222222222,
                                              encode: () => encode1522222222222
                                            });
                                            var encode1522222222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                                              encodeApplicationObjectId22222222222(buffer, 8, deviceId);
                                              encodeApplicationUnsigned22222222222(buffer, maxApdu);
                                              encodeApplicationEnumerated22222222222(buffer, segmentation);
                                              encodeApplicationUnsigned22222222222(buffer, vendorId);
                                            };
                                            var decode1522222222222 = (buffer, offset) => {
                                              let result;
                                              let apduLen = 0;
                                              const orgOffset = offset;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + apduLen);
                                              apduLen += result.len;
                                              if (result.tagNumber !== 12) {
                                                return void 0;
                                              }
                                              result = decodeObjectId22222222222(buffer, offset + apduLen);
                                              apduLen += result.len;
                                              if (result.objectType !== 8) {
                                                return void 0;
                                              }
                                              const deviceId = result.instance;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + apduLen);
                                              apduLen += result.len;
                                              if (result.tagNumber !== 2) {
                                                return void 0;
                                              }
                                              result = decodeUnsigned22222222222(buffer, offset + apduLen, result.value);
                                              apduLen += result.len;
                                              const maxApdu = result.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + apduLen);
                                              apduLen += result.len;
                                              if (result.tagNumber !== 9) {
                                                return void 0;
                                              }
                                              result = decodeEnumerated22222222222(buffer, offset + apduLen, result.value);
                                              apduLen += result.len;
                                              if (result.value > 3) {
                                                return void 0;
                                              }
                                              const segmentation = result.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + apduLen);
                                              apduLen += result.len;
                                              if (result.tagNumber !== 2) {
                                                return void 0;
                                              }
                                              result = decodeUnsigned22222222222(buffer, offset + apduLen, result.value);
                                              apduLen += result.len;
                                              if (result.value > 65535) {
                                                return void 0;
                                              }
                                              const vendorId = result.value;
                                              return {
                                                len: offset - orgOffset,
                                                deviceId,
                                                maxApdu,
                                                segmentation,
                                                vendorId
                                              };
                                            };
                                            var i_have_exports22222222222 = {};
                                            __export22222222222(i_have_exports22222222222, {
                                              decode: () => decode1622222222222,
                                              encode: () => encode1622222222222
                                            });
                                            var encode1622222222222 = (buffer, deviceId, objectId, objectName) => {
                                              encodeApplicationObjectId22222222222(buffer, deviceId.type, deviceId.instance);
                                              encodeApplicationObjectId22222222222(buffer, objectId.type, objectId.instance);
                                              encodeApplicationCharacterString22222222222(buffer, objectName);
                                            };
                                            var decode1622222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let value = {};
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              value.deviceId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              value.objectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeCharacterString22222222222(
                                                buffer,
                                                offset + len,
                                                apduLen - (offset + len),
                                                result.value
                                              );
                                              len += decodedValue.len;
                                              value.objectName = decodedValue.value;
                                              value.len = len;
                                              return value;
                                            };
                                            var life_safety_operation_exports22222222222 = {};
                                            __export22222222222(life_safety_operation_exports22222222222, {
                                              decode: () => decode1722222222222,
                                              encode: () => encode1722222222222
                                            });
                                            var encode1722222222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                                              encodeContextUnsigned22222222222(buffer, 0, processId);
                                              encodeContextCharacterString22222222222(buffer, 1, requestingSource);
                                              encodeContextEnumerated22222222222(buffer, 2, operation);
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                3,
                                                targetObjectId.type,
                                                targetObjectId.instance
                                              );
                                            };
                                            var decode1722222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let value = {};
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.processId = decodedValue.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeCharacterString22222222222(
                                                buffer,
                                                offset + len,
                                                apduLen - (offset + len),
                                                result.value
                                              );
                                              len += decodedValue.len;
                                              value.requestingSource = decodedValue.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.operation = decodedValue.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              value.targetObjectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              value.len = len;
                                              return value;
                                            };
                                            var private_transfer_exports22222222222 = {};
                                            __export22222222222(private_transfer_exports22222222222, {
                                              decode: () => decode1822222222222,
                                              encode: () => encode1822222222222
                                            });
                                            var encode1822222222222 = (buffer, vendorId, serviceNumber, data) => {
                                              encodeContextUnsigned22222222222(buffer, 0, vendorId);
                                              encodeContextUnsigned22222222222(buffer, 1, serviceNumber);
                                              encodeOpeningTag22222222222(buffer, 2);
                                              for (let i = 0; i < data.length; i++) {
                                                buffer.buffer[buffer.offset++] = data[i];
                                              }
                                              encodeClosingTag22222222222(buffer, 2);
                                            };
                                            var decode1822222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let value = {};
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.vendorId = decodedValue.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.serviceNumber = decodedValue.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              const size = apduLen - (offset + len + 1);
                                              const data = [];
                                              for (let i = 0; i < size; i++) {
                                                data.push(buffer[offset + len++]);
                                              }
                                              value.data = data;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              value.len = len;
                                              return value;
                                            };
                                            var read_property_exports22222222222 = {};
                                            __export22222222222(read_property_exports22222222222, {
                                              decode: () => decode1922222222222,
                                              decodeAcknowledge: () => decodeAcknowledge522222222222,
                                              encode: () => encode1922222222222,
                                              encodeAcknowledge: () => encodeAcknowledge622222222222
                                            });
                                            var encode1922222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                                              if (objectType <= ASN1_MAX_OBJECT22222222222) {
                                                encodeContextObjectId22222222222(buffer, 0, objectType, objectInstance);
                                              }
                                              if (propertyId <= ASN1_MAX_PROPERTY_ID22222222222) {
                                                encodeContextEnumerated22222222222(buffer, 1, propertyId);
                                              }
                                              if (arrayIndex !== ASN1_ARRAY_ALL22222222222) {
                                                encodeContextUnsigned22222222222(
                                                  buffer,
                                                  2,
                                                  arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL22222222222
                                                );
                                              }
                                            };
                                            var decode1922222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              if (apduLen < 7) {
                                                return void 0;
                                              }
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              let objectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              let property = {};
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 1) {
                                                return void 0;
                                              }
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              property.id = decodedValue.value;
                                              property.index = ASN1_ARRAY_ALL22222222222;
                                              if (len < apduLen) {
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber === 2 && len < apduLen) {
                                                  decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  property.index = decodedValue.value;
                                                } else {
                                                  return void 0;
                                                }
                                              }
                                              if (len < apduLen) {
                                                return void 0;
                                              }
                                              return {
                                                len,
                                                objectId,
                                                property
                                              };
                                            };
                                            var encodeAcknowledge622222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                              encodeContextObjectId22222222222(buffer, 0, objectId.type, objectId.instance);
                                              encodeContextEnumerated22222222222(buffer, 1, propertyId);
                                              if (arrayIndex !== ASN1_ARRAY_ALL22222222222) {
                                                encodeContextUnsigned22222222222(buffer, 2, arrayIndex);
                                              }
                                              encodeOpeningTag22222222222(buffer, 3);
                                              values.forEach((value) => {
                                                bacappEncodeApplicationData22222222222(buffer, value);
                                              });
                                              encodeClosingTag22222222222(buffer, 3);
                                            };
                                            var decodeAcknowledge522222222222 = (buffer, offset, apduLen) => {
                                              let result;
                                              let decodedValue;
                                              let objectId = {};
                                              let property = {};
                                              if (!decodeIsContextTag22222222222(buffer, offset, 0)) {
                                                return void 0;
                                              }
                                              let len = 1;
                                              result = decodeObjectId22222222222(buffer, offset + len);
                                              len += result.len;
                                              objectId.type = result.objectType;
                                              objectId.instance = result.instance;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 1) {
                                                return void 0;
                                              }
                                              result = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += result.len;
                                              property.id = result.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              if (result.tagNumber === 2) {
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                property.index = decodedValue.value;
                                              } else {
                                                property.index = ASN1_ARRAY_ALL22222222222;
                                              }
                                              const values = [];
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 3)) {
                                                return void 0;
                                              }
                                              len++;
                                              while (apduLen - len > 1) {
                                                result = bacappDecodeApplicationData22222222222(
                                                  buffer,
                                                  offset + len,
                                                  apduLen + offset,
                                                  objectId.type,
                                                  property.id
                                                );
                                                if (!result) {
                                                  return void 0;
                                                }
                                                len += result.len;
                                                delete result.len;
                                                values.push(result);
                                              }
                                              if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 3)) {
                                                return void 0;
                                              }
                                              len++;
                                              return {
                                                len,
                                                objectId,
                                                property,
                                                values
                                              };
                                            };
                                            var read_property_multiple_exports22222222222 = {};
                                            __export22222222222(read_property_multiple_exports22222222222, {
                                              decode: () => decode2022222222222,
                                              decodeAcknowledge: () => decodeAcknowledge622222222222,
                                              encode: () => encode2022222222222,
                                              encodeAcknowledge: () => encodeAcknowledge722222222222
                                            });
                                            var encode2022222222222 = (buffer, properties) => {
                                              properties.forEach((value) => {
                                                encodeReadAccessSpecification22222222222(buffer, value);
                                              });
                                            };
                                            var decode2022222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              const values = [];
                                              while (apduLen - len > 0) {
                                                const decodedValue = decodeReadAccessSpecification22222222222(
                                                  buffer,
                                                  offset + len,
                                                  apduLen - len
                                                );
                                                if (!decodedValue) {
                                                  return void 0;
                                                }
                                                len += decodedValue.len;
                                                values.push(decodedValue.value);
                                              }
                                              return {
                                                len,
                                                properties: values
                                              };
                                            };
                                            var encodeAcknowledge722222222222 = (buffer, values) => {
                                              values.forEach((value) => {
                                                encodeReadAccessResult22222222222(buffer, value);
                                              });
                                            };
                                            var decodeAcknowledge622222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              const values = [];
                                              while (apduLen - len > 0) {
                                                const result = decodeReadAccessResult22222222222(
                                                  buffer,
                                                  offset + len,
                                                  apduLen - len
                                                );
                                                if (!result || result === -1) {
                                                  return void 0;
                                                }
                                                len += result.len;
                                                values.push(result.value);
                                              }
                                              return {
                                                len,
                                                values
                                              };
                                            };
                                            var read_range_exports22222222222 = {};
                                            __export22222222222(read_range_exports22222222222, {
                                              decode: () => decode2122222222222,
                                              decodeAcknowledge: () => decodeAcknowledge722222222222,
                                              encode: () => encode2122222222222,
                                              encodeAcknowledge: () => encodeAcknowledge822222222222
                                            });
                                            var encode2122222222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                                              encodeContextObjectId22222222222(buffer, 0, objectId.type, objectId.instance);
                                              encodeContextEnumerated22222222222(buffer, 1, propertyId);
                                              if (arrayIndex !== ASN1_ARRAY_ALL22222222222) {
                                                encodeContextUnsigned22222222222(buffer, 2, arrayIndex);
                                              }
                                              switch (requestType) {
                                                case 0:
                                                  encodeOpeningTag22222222222(buffer, 3);
                                                  encodeApplicationUnsigned22222222222(buffer, position);
                                                  encodeApplicationSigned22222222222(buffer, count);
                                                  encodeClosingTag22222222222(buffer, 3);
                                                  break;
                                                case 1:
                                                  encodeOpeningTag22222222222(buffer, 6);
                                                  encodeApplicationUnsigned22222222222(buffer, position);
                                                  encodeApplicationSigned22222222222(buffer, count);
                                                  encodeClosingTag22222222222(buffer, 6);
                                                  break;
                                                case 2:
                                                  encodeOpeningTag22222222222(buffer, 7);
                                                  encodeApplicationDate22222222222(buffer, time);
                                                  encodeApplicationTime22222222222(buffer, time);
                                                  encodeApplicationSigned22222222222(buffer, count);
                                                  encodeClosingTag22222222222(buffer, 7);
                                                  break;
                                                default:
                                                  break;
                                              }
                                            };
                                            var decode2122222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let requestType;
                                              let position;
                                              let time;
                                              let count;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len, 0);
                                              len += decodedValue.len;
                                              let objectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              let property = {};
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 1) {
                                                return void 0;
                                              }
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              property.id = decodedValue.value;
                                              if (len < apduLen && decodeIsContextTag22222222222(buffer, offset + len, 2)) {
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                property.index = decodedValue.value;
                                              } else {
                                                property.index = ASN1_ARRAY_ALL22222222222;
                                              }
                                              if (len < apduLen) {
                                                result = decodeTagNumber22222222222(buffer, offset + len);
                                                len += result.len;
                                                switch (result.tagNumber) {
                                                  case 3:
                                                    requestType = 0;
                                                    result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned22222222222(
                                                      buffer,
                                                      offset + len,
                                                      result.value
                                                    );
                                                    len += decodedValue.len;
                                                    position = decodedValue.value;
                                                    result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeSigned22222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    count = decodedValue.value;
                                                    break;
                                                  case 6:
                                                    requestType = 1;
                                                    result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeUnsigned22222222222(
                                                      buffer,
                                                      offset + len,
                                                      result.value
                                                    );
                                                    len += decodedValue.len;
                                                    position = decodedValue.value;
                                                    result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeSigned22222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    count = decodedValue.value;
                                                    break;
                                                  case 7:
                                                    requestType = 2;
                                                    decodedValue = decodeApplicationDate22222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    const tmpDate = decodedValue.value.value;
                                                    decodedValue = decodeApplicationTime22222222222(buffer, offset + len);
                                                    len += decodedValue.len;
                                                    const tmpTime = decodedValue.value.value;
                                                    time = new Date(
                                                      tmpDate.getYear(),
                                                      tmpDate.getMonth(),
                                                      tmpDate.getDate(),
                                                      tmpTime.getHours(),
                                                      tmpTime.getMinutes(),
                                                      tmpTime.getSeconds(),
                                                      tmpTime.getMilliseconds()
                                                    );
                                                    result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                    len += result.len;
                                                    decodedValue = decodeSigned22222222222(buffer, offset + len, result.value);
                                                    len += decodedValue.len;
                                                    count = decodedValue.value;
                                                    break;
                                                  default:
                                                    return void 0;
                                                }
                                                result = decodeTagNumber22222222222(buffer, offset + len);
                                                len += result.len;
                                              }
                                              return {
                                                len,
                                                objectId,
                                                property,
                                                requestType,
                                                position,
                                                time,
                                                count
                                              };
                                            };
                                            var encodeAcknowledge822222222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                                              encodeContextObjectId22222222222(buffer, 0, objectId.type, objectId.instance);
                                              encodeContextEnumerated22222222222(buffer, 1, propertyId);
                                              if (arrayIndex !== ASN1_ARRAY_ALL22222222222) {
                                                encodeContextUnsigned22222222222(buffer, 2, arrayIndex);
                                              }
                                              encodeContextBitstring22222222222(buffer, 3, resultFlags);
                                              encodeContextUnsigned22222222222(buffer, 4, itemCount);
                                              encodeOpeningTag22222222222(buffer, 5);
                                              if (itemCount !== 0) {
                                                applicationData.copy(
                                                  buffer.buffer,
                                                  buffer.offset,
                                                  0,
                                                  applicationData.length
                                                );
                                                buffer.offset += applicationData.length;
                                              }
                                              encodeClosingTag22222222222(buffer, 5);
                                              if (itemCount !== 0 && requestType && requestType !== 0) {
                                                encodeContextUnsigned22222222222(buffer, 6, firstSequence);
                                              }
                                            };
                                            var decodeAcknowledge722222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              const objectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              const property = { index: ASN1_ARRAY_ALL22222222222 };
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 1) {
                                                return void 0;
                                              }
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              property.id = decodedValue.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              if (result.tagNumber === 2 && len < apduLen) {
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                property.index = decodedValue.value;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeBitstring22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              const resultFlag = decodedValue.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              const itemCount = decodedValue.value;
                                              if (!decodeIsOpeningTag22222222222(buffer, offset + len)) {
                                                return void 0;
                                              }
                                              len++;
                                              const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                                              return {
                                                objectId,
                                                property,
                                                resultFlag,
                                                itemCount,
                                                rangeBuffer,
                                                len
                                              };
                                            };
                                            var register_foreign_device_exports22222222222 = {};
                                            __export22222222222(register_foreign_device_exports22222222222, {
                                              decode: () => decode2222222222222,
                                              encode: () => encode2222222222222
                                            });
                                            var encode2222222222222 = (buffer, ttl, length = 2) => {
                                              encodeUnsigned22222222222(buffer, ttl, length);
                                            };
                                            var decode2222222222222 = (buffer, offset, length = 2) => {
                                              let len = 0;
                                              let result = decodeUnsigned22222222222(buffer, offset + len, length);
                                              len += result.len;
                                              return {
                                                len,
                                                ttl: result.value
                                              };
                                            };
                                            var reinitialize_device_exports22222222222 = {};
                                            __export22222222222(reinitialize_device_exports22222222222, {
                                              decode: () => decode2322222222222,
                                              encode: () => encode2322222222222
                                            });
                                            var encode2322222222222 = (buffer, state, password) => {
                                              encodeContextEnumerated22222222222(buffer, 0, state);
                                              if (password && password !== "") {
                                                encodeContextCharacterString22222222222(buffer, 1, password);
                                              }
                                            };
                                            var decode2322222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let value = {};
                                              let result;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              let decodedValue = decodeEnumerated22222222222(
                                                buffer,
                                                offset + len,
                                                result.value
                                              );
                                              value.state = decodedValue.value;
                                              len += decodedValue.len;
                                              if (len < apduLen) {
                                                if (!decodeIsContextTag22222222222(buffer, offset + len, 1)) {
                                                  return void 0;
                                                }
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeCharacterString22222222222(
                                                  buffer,
                                                  offset + len,
                                                  apduLen - (offset + len),
                                                  result.value
                                                );
                                                value.password = decodedValue.value;
                                                len += decodedValue.len;
                                              }
                                              value.len = len;
                                              return value;
                                            };
                                            var subscribe_cov_exports22222222222 = {};
                                            __export22222222222(subscribe_cov_exports22222222222, {
                                              decode: () => decode2422222222222,
                                              encode: () => encode2422222222222
                                            });
                                            var encode2422222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                                              encodeContextUnsigned22222222222(buffer, 0, subscriberProcessId);
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                1,
                                                monitoredObjectId.type,
                                                monitoredObjectId.instance
                                              );
                                              if (!cancellationRequest) {
                                                encodeContextBoolean22222222222(buffer, 2, issueConfirmedNotifications);
                                                encodeContextUnsigned22222222222(buffer, 3, lifetime);
                                              }
                                            };
                                            var decode2422222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let value = {};
                                              let result;
                                              let decodedValue;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.subscriberProcessId = decodedValue.value;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              value.monitoredObjectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              value.cancellationRequest = true;
                                              if (len < apduLen) {
                                                value.issueConfirmedNotifications = false;
                                                if (decodeIsContextTag22222222222(buffer, offset + len, 2)) {
                                                  value.cancellationRequest = false;
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                  value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                  len++;
                                                }
                                                value.lifetime = 0;
                                                if (decodeIsContextTag22222222222(buffer, offset + len, 3)) {
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  value.lifetime = decodedValue.value;
                                                }
                                              }
                                              value.len = len;
                                              return value;
                                            };
                                            var subscribe_property_exports22222222222 = {};
                                            __export22222222222(subscribe_property_exports22222222222, {
                                              decode: () => decode2522222222222,
                                              encode: () => encode2522222222222
                                            });
                                            var encode2522222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                                              encodeContextUnsigned22222222222(buffer, 0, subscriberProcessId);
                                              encodeContextObjectId22222222222(
                                                buffer,
                                                1,
                                                monitoredObjectId.type,
                                                monitoredObjectId.instance
                                              );
                                              if (!cancellationRequest) {
                                                encodeContextBoolean22222222222(buffer, 2, issueConfirmedNotifications);
                                                encodeContextUnsigned22222222222(buffer, 3, lifetime);
                                              }
                                              encodeOpeningTag22222222222(buffer, 4);
                                              encodeContextEnumerated22222222222(buffer, 0, monitoredProperty.id);
                                              if (monitoredProperty.index !== ASN1_ARRAY_ALL22222222222) {
                                                encodeContextUnsigned22222222222(buffer, 1, monitoredProperty.index);
                                              }
                                              encodeClosingTag22222222222(buffer, 4);
                                              if (covIncrementPresent) {
                                                encodeContextReal22222222222(buffer, 5, covIncrement);
                                              }
                                            };
                                            var decode2522222222222 = (buffer, offset) => {
                                              let len = 0;
                                              let value = {};
                                              let result;
                                              let decodedValue;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.subscriberProcessId = decodedValue.value;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              value.monitoredObjectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              value.cancellationRequest = true;
                                              value.issueConfirmedNotifications = false;
                                              if (decodeIsContextTag22222222222(buffer, offset + len, 2)) {
                                                value.cancellationRequest = false;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                                len++;
                                              }
                                              value.lifetime = 0;
                                              if (decodeIsContextTag22222222222(buffer, offset + len, 3)) {
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.lifetime = decodedValue.value;
                                              }
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 4)) {
                                                return void 0;
                                              }
                                              len++;
                                              value.monitoredProperty = {};
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.monitoredProperty.id = decodedValue.value;
                                              value.monitoredProperty.index = ASN1_ARRAY_ALL22222222222;
                                              if (decodeIsContextTag22222222222(buffer, offset + len, 1)) {
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.monitoredProperty.index = decodedValue.value;
                                              }
                                              if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 4)) {
                                                return void 0;
                                              }
                                              len++;
                                              value.covIncrement = 0;
                                              if (decodeIsContextTag22222222222(buffer, offset + len, 5)) {
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeReal22222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                value.covIncrement = decodedValue.value;
                                              }
                                              value.len = len;
                                              return value;
                                            };
                                            var time_sync_exports22222222222 = {};
                                            __export22222222222(time_sync_exports22222222222, {
                                              decode: () => decode2622222222222,
                                              encode: () => encode2622222222222
                                            });
                                            var encode2622222222222 = (buffer, time) => {
                                              encodeApplicationDate22222222222(buffer, time);
                                              encodeApplicationTime22222222222(buffer, time);
                                            };
                                            var decode2622222222222 = (buffer, offset, length) => {
                                              let len = 0;
                                              let result;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 10) {
                                                return void 0;
                                              }
                                              const date = decodeDate22222222222(buffer, offset + len);
                                              len += date.len;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 11) {
                                                return void 0;
                                              }
                                              const time = decodeBacnetTime22222222222(buffer, offset + len);
                                              len += time.len;
                                              return {
                                                len,
                                                value: new Date(
                                                  date.value.getFullYear(),
                                                  date.value.getMonth(),
                                                  date.value.getDate(),
                                                  time.value.getHours(),
                                                  time.value.getMinutes(),
                                                  time.value.getSeconds(),
                                                  time.value.getMilliseconds()
                                                )
                                              };
                                            };
                                            var who_has_exports22222222222 = {};
                                            __export22222222222(who_has_exports22222222222, {
                                              decode: () => decode2722222222222,
                                              encode: () => encode2722222222222
                                            });
                                            var encode2722222222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                                              if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE22222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE22222222222) {
                                                encodeContextUnsigned22222222222(buffer, 0, lowLimit);
                                                encodeContextUnsigned22222222222(buffer, 1, highLimit);
                                              }
                                              if (objectName && objectName !== "") {
                                                encodeContextCharacterString22222222222(buffer, 3, objectName);
                                              } else {
                                                encodeContextObjectId22222222222(buffer, 2, objectId.type, objectId.instance);
                                              }
                                            };
                                            var decode2722222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let value = {};
                                              let decodedValue;
                                              let result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber === 0) {
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                if (decodedValue.value <= ASN1_MAX_INSTANCE22222222222) {
                                                  value.lowLimit = decodedValue.value;
                                                }
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                              }
                                              if (result.tagNumber === 1) {
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                if (decodedValue.value <= ASN1_MAX_INSTANCE22222222222) {
                                                  value.highLimit = decodedValue.value;
                                                }
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                              }
                                              if (result.tagNumber === 2) {
                                                decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                value.objectId = {
                                                  type: decodedValue.objectType,
                                                  instance: decodedValue.instance
                                                };
                                              }
                                              if (result.tagNumber === 3) {
                                                decodedValue = decodeCharacterString22222222222(
                                                  buffer,
                                                  offset + len,
                                                  apduLen - (offset + len),
                                                  result.value
                                                );
                                                len += decodedValue.len;
                                                value.objectName = decodedValue.value;
                                              }
                                              value.len = len;
                                              return value;
                                            };
                                            var who_is_exports22222222222 = {};
                                            __export22222222222(who_is_exports22222222222, {
                                              decode: () => decode2822222222222,
                                              encode: () => encode2822222222222
                                            });
                                            var encode2822222222222 = (buffer, lowLimit, highLimit) => {
                                              if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE22222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE22222222222) {
                                                encodeContextUnsigned22222222222(buffer, 0, lowLimit);
                                                encodeContextUnsigned22222222222(buffer, 1, highLimit);
                                              }
                                            };
                                            var decode2822222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let value = {};
                                              if (apduLen <= 0) {
                                                return {};
                                              }
                                              let result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 0) {
                                                return void 0;
                                              }
                                              if (apduLen <= len) {
                                                return void 0;
                                              }
                                              let decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              if (decodedValue.value <= ASN1_MAX_INSTANCE22222222222) {
                                                value.lowLimit = decodedValue.value;
                                              }
                                              if (apduLen <= len) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 1) {
                                                return void 0;
                                              }
                                              if (apduLen <= len) {
                                                return void 0;
                                              }
                                              decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              if (decodedValue.value <= ASN1_MAX_INSTANCE22222222222) {
                                                value.highLimit = decodedValue.value;
                                              }
                                              value.len = len;
                                              return value;
                                            };
                                            var write_property_exports22222222222 = {};
                                            __export22222222222(write_property_exports22222222222, {
                                              decode: () => decode2922222222222,
                                              encode: () => encode2922222222222
                                            });
                                            var encode2922222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                                              encodeContextObjectId22222222222(buffer, 0, objectType, objectInstance);
                                              encodeContextEnumerated22222222222(buffer, 1, propertyId);
                                              if (arrayIndex !== ASN1_ARRAY_ALL22222222222) {
                                                encodeContextUnsigned22222222222(buffer, 2, arrayIndex);
                                              }
                                              encodeOpeningTag22222222222(buffer, 3);
                                              values.forEach((value) => {
                                                bacappEncodeApplicationData22222222222(buffer, value);
                                              });
                                              encodeClosingTag22222222222(buffer, 3);
                                              if (priority !== ASN1_NO_PRIORITY22222222222) {
                                                encodeContextUnsigned22222222222(buffer, 4, priority);
                                              }
                                            };
                                            var decode2922222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let value = {
                                                property: {}
                                              };
                                              let decodedValue;
                                              let result;
                                              if (!decodeIsContextTag22222222222(buffer, offset + len, 0)) {
                                                return void 0;
                                              }
                                              len++;
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              let objectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              len += decodedValue.len;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 1) {
                                                return void 0;
                                              }
                                              decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.property.id = decodedValue.value;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              if (result.tagNumber === 2) {
                                                len += result.len;
                                                decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                value.property.index = decodedValue.value;
                                              } else {
                                                value.property.index = ASN1_ARRAY_ALL22222222222;
                                              }
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 3)) {
                                                return void 0;
                                              }
                                              len++;
                                              const values = [];
                                              while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222222(buffer, offset + len, 3)) {
                                                decodedValue = bacappDecodeApplicationData22222222222(
                                                  buffer,
                                                  offset + len,
                                                  apduLen + offset,
                                                  objectId.type,
                                                  value.property.id
                                                );
                                                if (!decodedValue) {
                                                  return void 0;
                                                }
                                                len += decodedValue.len;
                                                delete decodedValue.len;
                                                values.push(decodedValue);
                                              }
                                              value.value = values;
                                              if (!decodeIsClosingTagNumber22222222222(buffer, offset + len, 3)) {
                                                return void 0;
                                              }
                                              len++;
                                              value.priority = ASN1_MAX_PRIORITY22222222222;
                                              if (len < apduLen) {
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                if (result.tagNumber === 4) {
                                                  len += result.len;
                                                  decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                  len += decodedValue;
                                                  if (decodedValue.value >= ASN1_MIN_PRIORITY22222222222 && decodedValue.value <= ASN1_MAX_PRIORITY22222222222) {
                                                    value.priority = decodedValue.value;
                                                  } else {
                                                    return void 0;
                                                  }
                                                }
                                              }
                                              return {
                                                len,
                                                objectId,
                                                value
                                              };
                                            };
                                            var write_property_multiple_exports22222222222 = {};
                                            __export22222222222(write_property_multiple_exports22222222222, {
                                              decode: () => decode3022222222222,
                                              encode: () => encode3022222222222,
                                              encodeObject: () => encodeObject22222222222
                                            });
                                            var encode3022222222222 = (buffer, objectId, values) => {
                                              encodeContextObjectId22222222222(buffer, 0, objectId.type, objectId.instance);
                                              encodeOpeningTag22222222222(buffer, 1);
                                              values.forEach((pValue) => {
                                                encodeContextEnumerated22222222222(buffer, 0, pValue.property.id);
                                                if (pValue.property.index !== ASN1_ARRAY_ALL22222222222) {
                                                  encodeContextUnsigned22222222222(buffer, 1, pValue.property.index);
                                                }
                                                encodeOpeningTag22222222222(buffer, 2);
                                                pValue.value.forEach((value) => {
                                                  bacappEncodeApplicationData22222222222(buffer, value);
                                                });
                                                encodeClosingTag22222222222(buffer, 2);
                                                if (pValue.priority !== ASN1_NO_PRIORITY22222222222) {
                                                  encodeContextUnsigned22222222222(buffer, 3, pValue.priority);
                                                }
                                              });
                                              encodeClosingTag22222222222(buffer, 1);
                                            };
                                            var decode3022222222222 = (buffer, offset, apduLen) => {
                                              let len = 0;
                                              let result;
                                              let decodedValue;
                                              let objectId;
                                              result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 0 || apduLen <= len) {
                                                return void 0;
                                              }
                                              apduLen -= len;
                                              if (apduLen < 4) {
                                                return void 0;
                                              }
                                              decodedValue = decodeObjectId22222222222(buffer, offset + len);
                                              len += decodedValue.len;
                                              objectId = {
                                                type: decodedValue.objectType,
                                                instance: decodedValue.instance
                                              };
                                              if (!decodeIsOpeningTagNumber22222222222(buffer, offset + len, 1)) {
                                                return void 0;
                                              }
                                              len++;
                                              const _values = [];
                                              while (apduLen - len > 1) {
                                                let newEntry = {};
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber !== 0) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeEnumerated22222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                let propertyId = decodedValue.value;
                                                let arrayIndex = ASN1_ARRAY_ALL22222222222;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber === 1) {
                                                  decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  arrayIndex = decodedValue.value;
                                                  result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                  len += result.len;
                                                }
                                                newEntry.property = { id: propertyId, index: arrayIndex };
                                                if (result.tagNumber !== 2 || !decodeIsOpeningTag22222222222(buffer, offset + len - 1)) {
                                                  return void 0;
                                                }
                                                const values = [];
                                                while (len + offset <= buffer.length && !decodeIsClosingTag22222222222(buffer, offset + len)) {
                                                  let value = bacappDecodeApplicationData22222222222(
                                                    buffer,
                                                    offset + len,
                                                    apduLen + offset,
                                                    objectId.type,
                                                    propertyId
                                                  );
                                                  if (!value) {
                                                    return void 0;
                                                  }
                                                  len += value.len;
                                                  delete value.len;
                                                  values.push(value);
                                                }
                                                len++;
                                                newEntry.value = values;
                                                let priority = ASN1_NO_PRIORITY22222222222;
                                                result = decodeTagNumberAndValue22222222222(buffer, offset + len);
                                                len += result.len;
                                                if (result.tagNumber === 3) {
                                                  decodedValue = decodeUnsigned22222222222(buffer, offset + len, result.value);
                                                  len += decodedValue.len;
                                                  priority = decodedValue.value;
                                                } else {
                                                  len--;
                                                }
                                                newEntry.priority = priority;
                                                _values.push(newEntry);
                                                if (decodeIsClosingTagNumber22222222222(buffer, offset + len, 1)) {
                                                  len++;
                                                }
                                              }
                                              if (decodeIsClosingTagNumber22222222222(buffer, offset + len, 1)) {
                                                len++;
                                              }
                                              return {
                                                len,
                                                objectId,
                                                values: _values
                                              };
                                            };
                                            var encodeObject22222222222 = (buffer, values) => {
                                              values.forEach((object) => {
                                                encode3022222222222(buffer, object.objectId, object.values);
                                              });
                                            };
                                            var getDecodedType22222222222 = (buffer, offset) => {
                                              return buffer[offset];
                                            };
                                            var encodeConfirmedServiceRequest22222222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                                              buffer.buffer[buffer.offset++] = type;
                                              buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                                              buffer.buffer[buffer.offset++] = invokeId;
                                              if ((type & 8) > 0) {
                                                buffer.buffer[buffer.offset++] = sequencenumber;
                                                buffer.buffer[buffer.offset++] = proposedWindowSize;
                                              }
                                              buffer.buffer[buffer.offset++] = service;
                                            };
                                            var decodeConfirmedServiceRequest22222222222 = (buffer, offset) => {
                                              const orgOffset = offset;
                                              const type = buffer[offset++];
                                              const maxSegments = buffer[offset] & 240;
                                              const maxApdu = buffer[offset++] & 15;
                                              const invokeId = buffer[offset++];
                                              let sequencenumber = 0;
                                              let proposedWindowNumber = 0;
                                              if ((type & 8) > 0) {
                                                sequencenumber = buffer[offset++];
                                                proposedWindowNumber = buffer[offset++];
                                              }
                                              const service = buffer[offset++];
                                              return {
                                                len: offset - orgOffset,
                                                type,
                                                service,
                                                maxSegments,
                                                maxApdu,
                                                invokeId,
                                                sequencenumber,
                                                proposedWindowNumber
                                              };
                                            };
                                            var encodeUnconfirmedServiceRequest22222222222 = (buffer, type, service) => {
                                              buffer.buffer[buffer.offset++] = type;
                                              buffer.buffer[buffer.offset++] = service;
                                            };
                                            var decodeUnconfirmedServiceRequest22222222222 = (buffer, offset) => {
                                              const orgOffset = offset;
                                              const type = buffer[offset++];
                                              const service = buffer[offset++];
                                              return {
                                                len: offset - orgOffset,
                                                type,
                                                service
                                              };
                                            };
                                            var encodeSimpleAck22222222222 = (buffer, type, service, invokeId) => {
                                              buffer.buffer[buffer.offset++] = type;
                                              buffer.buffer[buffer.offset++] = invokeId;
                                              buffer.buffer[buffer.offset++] = service;
                                            };
                                            var decodeSimpleAck22222222222 = (buffer, offset) => {
                                              const orgOffset = offset;
                                              const type = buffer[offset++];
                                              const invokeId = buffer[offset++];
                                              const service = buffer[offset++];
                                              return {
                                                len: offset - orgOffset,
                                                type,
                                                service,
                                                invokeId
                                              };
                                            };
                                            var encodeComplexAck22222222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                                              let len = 3;
                                              buffer.buffer[buffer.offset++] = type;
                                              buffer.buffer[buffer.offset++] = invokeId;
                                              if ((type & 8) > 0) {
                                                buffer.buffer[buffer.offset++] = sequencenumber;
                                                buffer.buffer[buffer.offset++] = proposedWindowNumber;
                                                len += 2;
                                              }
                                              buffer.buffer[buffer.offset++] = service;
                                              return len;
                                            };
                                            var decodeComplexAck22222222222 = (buffer, offset) => {
                                              const orgOffset = offset;
                                              const type = buffer[offset++];
                                              const invokeId = buffer[offset++];
                                              let sequencenumber = 0;
                                              let proposedWindowNumber = 0;
                                              if ((type & 8) > 0) {
                                                sequencenumber = buffer[offset++];
                                                proposedWindowNumber = buffer[offset++];
                                              }
                                              const service = buffer[offset++];
                                              return {
                                                len: offset - orgOffset,
                                                type,
                                                service,
                                                invokeId,
                                                sequencenumber,
                                                proposedWindowNumber
                                              };
                                            };
                                            var encodeSegmentAck22222222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                                              buffer.buffer[buffer.offset++] = type;
                                              buffer.buffer[buffer.offset++] = originalInvokeId;
                                              buffer.buffer[buffer.offset++] = sequencenumber;
                                              buffer.buffer[buffer.offset++] = actualWindowSize;
                                            };
                                            var decodeSegmentAck22222222222 = (buffer, offset) => {
                                              const orgOffset = offset;
                                              const type = buffer[offset++];
                                              const originalInvokeId = buffer[offset++];
                                              const sequencenumber = buffer[offset++];
                                              const actualWindowSize = buffer[offset++];
                                              return {
                                                len: offset - orgOffset,
                                                type,
                                                originalInvokeId,
                                                sequencenumber,
                                                actualWindowSize
                                              };
                                            };
                                            var encodeResult22222222222 = (buffer, resultCode) => {
                                              encodeUnsigned22222222222(buffer, resultCode, 2);
                                            };
                                            var encodeError22222222222 = (buffer, type, service, invokeId) => {
                                              buffer.buffer[buffer.offset++] = type;
                                              buffer.buffer[buffer.offset++] = invokeId;
                                              buffer.buffer[buffer.offset++] = service;
                                            };
                                            var decodeError22222222222 = (buffer, offset) => {
                                              const orgOffset = offset;
                                              const type = buffer[offset++];
                                              const invokeId = buffer[offset++];
                                              const service = buffer[offset++];
                                              return {
                                                len: offset - orgOffset,
                                                type,
                                                service,
                                                invokeId
                                              };
                                            };
                                            var decodeAbort22222222222 = (buffer, offset) => {
                                              const orgOffset = offset;
                                              const type = buffer[offset++];
                                              const invokeId = buffer[offset++];
                                              const reason = buffer[offset++];
                                              return {
                                                len: offset - orgOffset,
                                                type,
                                                invokeId,
                                                reason
                                              };
                                            };
                                            var DEFAULT_HOP_COUNT32222222222 = 255;
                                            var BACNET_PROTOCOL_VERSION22222222222 = 1;
                                            var BACNET_ADDRESS_TYPES22222222222 = {
                                              NONE: 0,
                                              IP: 1
                                            };
                                            var decodeTarget22222222222 = (buffer, offset) => {
                                              let len = 0;
                                              const target = {
                                                type: BACNET_ADDRESS_TYPES22222222222.NONE,
                                                net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                                              };
                                              const adrLen = buffer[offset + len++];
                                              if (adrLen > 0) {
                                                target.adr = [];
                                                for (let i = 0; i < adrLen; i++) {
                                                  target.adr.push(buffer[offset + len++]);
                                                }
                                              }
                                              return {
                                                target,
                                                len
                                              };
                                            };
                                            var encodeTarget22222222222 = (buffer, target) => {
                                              buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                                              buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                                              if (target.net === 65535 || !target.adr) {
                                                buffer.buffer[buffer.offset++] = 0;
                                              } else {
                                                buffer.buffer[buffer.offset++] = target.adr.length;
                                                if (target.adr.length > 0) {
                                                  for (let i = 0; i < target.adr.length; i++) {
                                                    buffer.buffer[buffer.offset++] = target.adr[i];
                                                  }
                                                }
                                              }
                                            };
                                            var decode3122222222222 = (buffer, offset) => {
                                              let adrLen;
                                              const orgOffset = offset;
                                              offset++;
                                              const funct = buffer[offset++];
                                              let destination;
                                              if (funct & 32) {
                                                const tmpDestination = decodeTarget22222222222(buffer, offset);
                                                offset += tmpDestination.len;
                                                destination = tmpDestination.target;
                                              }
                                              let source;
                                              if (funct & 8) {
                                                const tmpSource = decodeTarget22222222222(buffer, offset);
                                                offset += tmpSource.len;
                                                source = tmpSource.target;
                                              }
                                              let hopCount = 0;
                                              if (funct & 32) {
                                                hopCount = buffer[offset++];
                                              }
                                              let networkMsgType = 0;
                                              let vendorId = 0;
                                              if (funct & 128) {
                                                networkMsgType = buffer[offset++];
                                                if (networkMsgType >= 128) {
                                                  vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                                                } else if (networkMsgType === 0) {
                                                  offset += 2;
                                                }
                                              }
                                              if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION22222222222) {
                                                return void 0;
                                              }
                                              return {
                                                len: offset - orgOffset,
                                                funct,
                                                destination,
                                                source,
                                                hopCount,
                                                networkMsgType,
                                                vendorId
                                              };
                                            };
                                            var encode3122222222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                                              const hasDestination = destination && destination.net > 0;
                                              const hasSource = source && source.net > 0 && source.net !== 65535;
                                              buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION22222222222;
                                              buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                                              if (hasDestination) {
                                                encodeTarget22222222222(buffer, destination);
                                              }
                                              if (hasSource) {
                                                encodeTarget22222222222(buffer, source);
                                              }
                                              if (hasDestination) {
                                                buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT32222222222;
                                              }
                                              if ((funct & 128) > 0) {
                                                buffer.buffer[buffer.offset++] = networkMsgType;
                                                if (networkMsgType >= 128) {
                                                  buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                                                  buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                                                }
                                              }
                                            };
                                            var DEFAULT_BACNET_PORT222222222222 = 47808;
                                            var encode3222222222222 = (buffer, func, msgLength, originatingIP) => {
                                              buffer[0] = BVLL_TYPE_BACNET_IP22222222222;
                                              buffer[1] = func;
                                              buffer[2] = (msgLength & 65280) >> 8;
                                              buffer[3] = (msgLength & 255) >> 0;
                                              if (originatingIP) {
                                                if (func !== 4) {
                                                  throw new Error(
                                                    "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                                                  );
                                                }
                                                const [ipstr, portstr] = originatingIP.split(":");
                                                const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT222222222222;
                                                const ip = ipstr.split(".");
                                                buffer[4] = parseInt(ip[0], 10);
                                                buffer[5] = parseInt(ip[1], 10);
                                                buffer[6] = parseInt(ip[2], 10);
                                                buffer[7] = parseInt(ip[3], 10);
                                                buffer[8] = (port & 65280) >> 8;
                                                buffer[9] = (port & 255) >> 0;
                                                return 6 + BVLC_HEADER_LENGTH32222222222;
                                              } else {
                                                if (func === 4) {
                                                  throw new Error(
                                                    "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                                                  );
                                                }
                                              }
                                              return BVLC_HEADER_LENGTH32222222222;
                                            };
                                            var decode3222222222222 = (buffer, _offset) => {
                                              let len;
                                              const func = buffer[1];
                                              const msgLength = buffer[2] << 8 | buffer[3] << 0;
                                              if (buffer[0] !== BVLL_TYPE_BACNET_IP22222222222 || buffer.length !== msgLength) {
                                                return void 0;
                                              }
                                              let originatingIP = null;
                                              switch (func) {
                                                case 0:
                                                case 10:
                                                case 11:
                                                case 9:
                                                case 5:
                                                case 6:
                                                case 8:
                                                case 2:
                                                case 1:
                                                case 3:
                                                case 7:
                                                  len = 4;
                                                  break;
                                                case 4:
                                                  const port = buffer[8] << 8 | buffer[9];
                                                  originatingIP = buffer.slice(4, 8).join(".");
                                                  if (port !== DEFAULT_BACNET_PORT222222222222) {
                                                    originatingIP += ":" + port;
                                                  }
                                                  len = 10;
                                                  break;
                                                case 12:
                                                  return void 0;
                                                default:
                                                  return void 0;
                                              }
                                              return {
                                                len,
                                                func,
                                                msgLength,
                                                // Originating IP is set to the IP address of the node that originally
                                                // sent the packet, when it has been forwarded to us by a BBMD (since the
                                                // BBMD's IP address will be in the sender field.
                                                originatingIP
                                              };
                                            };
                                            var EventEmitter222222222222 = import_events222222222222.default.EventEmitter;
                                            var debug322222222222 = (0, import_debug322222222222.default)("bacnet:client:debug");
                                            var trace222222222222 = (0, import_debug322222222222.default)("bacnet:client:trace");
                                            var ALL_INTERFACES22222222222 = "0.0.0.0";
                                            var LOCALHOST_INTERFACES_IPV422222222222 = "127.0.0.1";
                                            var BROADCAST_ADDRESS22222222222 = "255.255.255.255";
                                            var DEFAULT_HOP_COUNT222222222222 = 255;
                                            var BVLC_HEADER_LENGTH222222222222 = 4;
                                            var BVLC_FWD_HEADER_LENGTH22222222222 = 10;
                                            var beU22222222222 = UnconfirmedServiceChoice22222222222;
                                            var unconfirmedServiceMap22222222222 = {
                                              [beU22222222222.I_AM]: "iAm",
                                              [beU22222222222.WHO_IS]: "whoIs",
                                              [beU22222222222.WHO_HAS]: "whoHas",
                                              [beU22222222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                                              [beU22222222222.TIME_SYNCHRONIZATION]: "timeSync",
                                              [beU22222222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                                              [beU22222222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                              [beU22222222222.I_HAVE]: "iHave",
                                              [beU22222222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                            };
                                            var beC22222222222 = ConfirmedServiceChoice22222222222;
                                            var confirmedServiceMap22222222222 = {
                                              [beC22222222222.READ_PROPERTY]: "readProperty",
                                              [beC22222222222.WRITE_PROPERTY]: "writeProperty",
                                              [beC22222222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                                              [beC22222222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                                              [beC22222222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                                              [beC22222222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                                              [beC22222222222.ATOMIC_READ_FILE]: "atomicReadFile",
                                              [beC22222222222.SUBSCRIBE_COV]: "subscribeCov",
                                              [beC22222222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                                              [beC22222222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                                              [beC22222222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                                              [beC22222222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                              [beC22222222222.READ_RANGE]: "readRange",
                                              [beC22222222222.CREATE_OBJECT]: "createObject",
                                              [beC22222222222.DELETE_OBJECT]: "deleteObject",
                                              [beC22222222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                                              [beC22222222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                                              [beC22222222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                                              [beC22222222222.GET_EVENT_INFORMATION]: "getEventInformation",
                                              [beC22222222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                                              [beC22222222222.ADD_LIST_ELEMENT]: "addListElement",
                                              [beC22222222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                                              [beC22222222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                            };
                                            var errorReasonEnums22222222222 = {
                                              BacnetAbort: RejectReason22222222222
                                            };
                                            var BacnetError22222222222 = class extends Error {
                                              constructor(message, bacnetErrorClass, bacnetErrorCode) {
                                                super(message);
                                                this.bacnetErrorClass = bacnetErrorClass;
                                                this.bacnetErrorCode = bacnetErrorCode;
                                              }
                                            };
                                            function bacnetErrorToString22222222222(err) {
                                              var _a;
                                              const isError = err instanceof Error || err instanceof BacnetError22222222222;
                                              if (!isError)
                                                return;
                                              const message = err.message;
                                              const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                                              const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                                              if (!errorReasonEnums22222222222[reasonClass])
                                                return;
                                              const reasonString = errorReasonEnums22222222222[reasonClass][reason];
                                              return reasonClass + ": " + reasonString;
                                            }
                                            var Client22222222222 = class extends EventEmitter222222222222 {
                                              /**
                                               *
                                               * @param options
                                               */
                                              constructor(options) {
                                                super();
                                                options = options || {};
                                                this._invokeCounter = 1;
                                                this._invokeStore = {};
                                                this._lastSequenceNumber = 0;
                                                this._segmentStore = [];
                                                this._settings = {
                                                  port: options.port || 47808,
                                                  interface: options.interface || ALL_INTERFACES22222222222,
                                                  transport: options.transport,
                                                  broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS22222222222,
                                                  apduTimeout: options.apduTimeout || 3e3
                                                };
                                                options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                                                this._transport = this._settings.transport || new Transport22222222222({
                                                  port: this._settings.port,
                                                  interface: this._settings.interface,
                                                  broadcastAddress: this._settings.broadcastAddress,
                                                  reuseAddr: options.reuseAddr
                                                });
                                                this._transport.on("message", this._receiveData.bind(this));
                                                this._transport.on("error", this._receiveError.bind(this));
                                                this._transport.on("listening", () => this.emit("listening"));
                                                this._transport.open();
                                              }
                                              /**
                                               *
                                               * @returns {number}
                                               * @private
                                               */
                                              _getInvokeId() {
                                                const id = this._invokeCounter++;
                                                if (id >= 256)
                                                  this._invokeCounter = 1;
                                                return id - 1;
                                              }
                                              /**
                                               *
                                               * @param id
                                               * @param err
                                               * @param result
                                               * @returns {*}
                                               * @private
                                               */
                                              _invokeCallback(id, err, result) {
                                                const callback = this._invokeStore[id];
                                                if (callback) {
                                                  return void callback(err, result);
                                                }
                                                debug322222222222("InvokeId", id, "not found -> drop package");
                                              }
                                              /**
                                               *
                                               * @param id
                                               * @param callback
                                               * @private
                                               */
                                              _addCallback(id, callback) {
                                                const timeout = setTimeout(() => {
                                                  delete this._invokeStore[id];
                                                  callback(new Error("ERR_TIMEOUT"));
                                                }, this._settings.apduTimeout);
                                                this._invokeStore[id] = (err, data) => {
                                                  clearTimeout(timeout);
                                                  delete this._invokeStore[id];
                                                  callback(err, data);
                                                };
                                              }
                                              /**
                                               *
                                               * @param isForwarded
                                               * @returns {{offset: (number), buffer: *}}
                                               * @private
                                               */
                                              _getBuffer(isForwarded) {
                                                return Object.assign(
                                                  {},
                                                  {
                                                    buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                                    offset: isForwarded ? BVLC_FWD_HEADER_LENGTH22222222222 : BVLC_HEADER_LENGTH222222222222
                                                  }
                                                );
                                              }
                                              /**
                                               *
                                               * @param invokeId
                                               * @param buffer
                                               * @param offset
                                               * @param length
                                               * @returns {*}
                                               * @private
                                               */
                                              _processError(invokeId, buffer, offset, length) {
                                                const result = error_exports22222222222.decode(buffer, offset);
                                                trace222222222222("Received error:", result);
                                                if (!result) {
                                                  return debug322222222222("Couldn`t decode Error");
                                                }
                                                const err = new BacnetError22222222222(error_exports22222222222.buildMessage(result));
                                                err.bacnetErrorClass = result.class;
                                                err.bacnetErrorCode = result.code;
                                                this._invokeCallback(invokeId, err);
                                              }
                                              /**
                                               *
                                               * @param invokeId
                                               * @param reason
                                               * @private
                                               */
                                              _processAbort(invokeId, reason) {
                                                const err = new BacnetError22222222222("BacnetAbort - Reason:" + reason);
                                                err.bacnetAbortReason = reason;
                                                err.bacnetErrorClass = AbortReason22222222222;
                                                this._invokeCallback(invokeId, err);
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param negative
                                               * @param server
                                               * @param originalInvokeId
                                               * @param sequencenumber
                                               * @param actualWindowSize
                                               * @private
                                               */
                                              _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                                                const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                encode3122222222222(
                                                  buffer,
                                                  0,
                                                  receiver,
                                                  null,
                                                  DEFAULT_HOP_COUNT222222222222,
                                                  0,
                                                  0
                                                );
                                                encodeSegmentAck22222222222(
                                                  buffer,
                                                  64 | (negative ? 2 : 0) | (server ? 1 : 0),
                                                  originalInvokeId,
                                                  sequencenumber,
                                                  actualWindowSize
                                                );
                                                this.sendBvlc(receiver, buffer);
                                              }
                                              /**
                                               *
                                               * @param msg
                                               * @param first
                                               * @param moreFollows
                                               * @param buffer
                                               * @param offset
                                               * @param length
                                               * @private
                                               */
                                              _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                                                if (first) {
                                                  this._segmentStore = [];
                                                  msg.type &= ~8;
                                                  let apduHeaderLen = 3;
                                                  if ((msg.type & PDU_TYPE_MASK22222222222) === 0) {
                                                    apduHeaderLen = 4;
                                                  }
                                                  const apdubuffer = this._getBuffer();
                                                  apdubuffer.offset = 0;
                                                  buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                                                  if ((msg.type & PDU_TYPE_MASK22222222222) === 0) {
                                                    encodeConfirmedServiceRequest22222222222(
                                                      apdubuffer,
                                                      msg.type,
                                                      msg.service,
                                                      msg.maxSegments,
                                                      msg.maxApdu,
                                                      msg.invokeId,
                                                      0,
                                                      0
                                                    );
                                                  } else {
                                                    encodeComplexAck22222222222(
                                                      apdubuffer,
                                                      msg.type,
                                                      msg.service,
                                                      msg.invokeId,
                                                      0,
                                                      0
                                                    );
                                                  }
                                                  this._segmentStore.push(
                                                    //@ts-ignore
                                                    apdubuffer.buffer.slice(0, length + apduHeaderLen)
                                                  );
                                                } else {
                                                  this._segmentStore.push(buffer.slice(offset, offset + length));
                                                }
                                                if (!moreFollows) {
                                                  const apduBuffer = Buffer.concat(this._segmentStore);
                                                  this._segmentStore = [];
                                                  msg.type &= ~8;
                                                  this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                                                }
                                              }
                                              /**
                                               *
                                               * @param msg
                                               * @param server
                                               * @param buffer
                                               * @param offset
                                               * @param length
                                               * @private
                                               */
                                              _processSegment(msg, server, buffer, offset, length) {
                                                let first = false;
                                                if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                                                  first = true;
                                                } else {
                                                  if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                                    return this._segmentAckResponse(
                                                      msg.header.address,
                                                      true,
                                                      server,
                                                      msg.invokeId,
                                                      this._lastSequenceNumber,
                                                      msg.proposedWindowNumber
                                                    );
                                                  }
                                                }
                                                this._lastSequenceNumber = msg.sequencenumber;
                                                const moreFollows = msg.type & 4;
                                                if (!moreFollows) {
                                                  this._lastSequenceNumber = 0;
                                                }
                                                if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                                                  this._segmentAckResponse(
                                                    msg.header.address,
                                                    false,
                                                    server,
                                                    msg.invokeId,
                                                    msg.sequencenumber,
                                                    msg.proposedWindowNumber
                                                  );
                                                }
                                                this._performDefaultSegmentHandling(
                                                  msg,
                                                  first,
                                                  moreFollows,
                                                  buffer,
                                                  offset,
                                                  length
                                                );
                                              }
                                              /**
                                               *
                                               * @param serviceMap
                                               * @param content
                                               * @param buffer
                                               * @param offset
                                               * @param length
                                               * @returns {*}
                                               * @private
                                               */
                                              _processServiceRequest(serviceMap, content, buffer, offset, length) {
                                                let result;
                                                const sender = content.header.sender;
                                                if (sender.address === LOCALHOST_INTERFACES_IPV422222222222) {
                                                  debug322222222222("Received and skipped localhost service request:", content.service);
                                                  return;
                                                }
                                                const name = serviceMap[content.service];
                                                if (!name) {
                                                  debug322222222222("Received unsupported service request:", content.service);
                                                  return;
                                                }
                                                const id = content.invokeId ? "@" + content.invokeId : "";
                                                trace222222222222(`Received service request${id}:`, name);
                                                const serviceHandler = services_exports22222222222[name];
                                                if (serviceHandler) {
                                                  try {
                                                    content.payload = serviceHandler.decode(buffer, offset, length);
                                                    trace222222222222(`Handled service request${id}:`, name, JSON.stringify(content));
                                                  } catch (e) {
                                                    debug322222222222("Exception thrown when processing message:", e);
                                                    debug322222222222("Original message was", name + ":", content);
                                                    return;
                                                  }
                                                  if (!content.payload) {
                                                    return debug322222222222("Received invalid", name, "message");
                                                  }
                                                } else {
                                                  debug322222222222("No serviceHandler defined for:", name);
                                                }
                                                if (this.listenerCount(name)) {
                                                  trace222222222222("listener count by name emits " + name + " with content");
                                                  this.emit(name, content);
                                                } else {
                                                  if (this.listenerCount("unhandledEvent")) {
                                                    trace222222222222("unhandled event emiting with content");
                                                    this.emit("unhandledEvent", content);
                                                  } else {
                                                    trace222222222222(
                                                      "no unhandled event handler with header: " + JSON.stringify(content.header)
                                                    );
                                                    if (content.header.expectingReply) {
                                                      debug322222222222("Replying with error for unhandled service:", name);
                                                      content.header.sender.forwardedFrom = null;
                                                      this.errorResponse(
                                                        content.header.sender,
                                                        content.service,
                                                        content.invokeId,
                                                        5,
                                                        67
                                                        /* REJECT_UNRECOGNIZED_SERVICE */
                                                      );
                                                    }
                                                  }
                                                }
                                              }
                                              /**
                                               *
                                               * @param buffer
                                               * @param offset
                                               * @param length
                                               * @param header
                                               * @private
                                               */
                                              _handlePdu(buffer, offset, length, header) {
                                                let msg;
                                                trace222222222222("handlePdu Header: ", header);
                                                switch (header.apduType & PDU_TYPE_MASK22222222222) {
                                                  case 16:
                                                    msg = decodeUnconfirmedServiceRequest22222222222(buffer, offset);
                                                    msg.header = header;
                                                    msg.header.confirmedService = false;
                                                    this._processServiceRequest(
                                                      unconfirmedServiceMap22222222222,
                                                      msg,
                                                      buffer,
                                                      offset + msg.len,
                                                      length - msg.len
                                                    );
                                                    break;
                                                  case 32:
                                                    msg = decodeSimpleAck22222222222(buffer, offset);
                                                    offset += msg.len;
                                                    length -= msg.len;
                                                    this._invokeCallback(msg.invokeId, null, {
                                                      msg,
                                                      buffer,
                                                      offset: offset + msg.len,
                                                      length: length - msg.len
                                                    });
                                                    break;
                                                  case 48:
                                                    msg = decodeComplexAck22222222222(buffer, offset);
                                                    msg.header = header;
                                                    if ((header.apduType & 8) === 0) {
                                                      this._invokeCallback(msg.invokeId, null, {
                                                        msg,
                                                        buffer,
                                                        offset: offset + msg.len,
                                                        length: length - msg.len
                                                      });
                                                    } else {
                                                      this._processSegment(
                                                        msg,
                                                        true,
                                                        buffer,
                                                        offset + msg.len,
                                                        length - msg.len
                                                      );
                                                    }
                                                    break;
                                                  case 64:
                                                    msg = decodeSegmentAck22222222222(buffer, offset);
                                                    msg.header = header;
                                                    this._processSegment(
                                                      msg,
                                                      true,
                                                      buffer,
                                                      offset + msg.len,
                                                      length - msg.len
                                                    );
                                                    break;
                                                  case 80:
                                                    msg = decodeError22222222222(buffer, offset);
                                                    this._processError(
                                                      msg.invokeId,
                                                      buffer,
                                                      offset + msg.len,
                                                      length - msg.len
                                                    );
                                                    break;
                                                  case 96:
                                                  case 112:
                                                    msg = decodeAbort22222222222(buffer, offset);
                                                    this._processAbort(msg.invokeId, msg.reason);
                                                    break;
                                                  case 0:
                                                    msg = decodeConfirmedServiceRequest22222222222(buffer, offset);
                                                    msg.header = header;
                                                    msg.header.confirmedService = true;
                                                    if ((header.apduType & 8) === 0) {
                                                      this._processServiceRequest(
                                                        confirmedServiceMap22222222222,
                                                        msg,
                                                        buffer,
                                                        offset + msg.len,
                                                        length - msg.len
                                                      );
                                                    } else {
                                                      this._processSegment(
                                                        msg,
                                                        true,
                                                        buffer,
                                                        offset + msg.len,
                                                        length - msg.len
                                                      );
                                                    }
                                                    break;
                                                  default:
                                                    debug322222222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                                    break;
                                                }
                                              }
                                              /**
                                               *
                                               * @param buffer
                                               * @param offset
                                               * @param msgLength
                                               * @param header
                                               * @returns {*}
                                               * @private
                                               */
                                              _handleNpdu(buffer, offset, msgLength, header) {
                                                if (msgLength <= 0) {
                                                  return trace222222222222("No NPDU data -> Drop package");
                                                }
                                                const result = decode3122222222222(buffer, offset);
                                                if (!result) {
                                                  return trace222222222222("Received invalid NPDU header -> Drop package");
                                                }
                                                if (result.funct & 128) {
                                                  return trace222222222222("Received network layer message -> Drop package");
                                                }
                                                offset += result.len;
                                                msgLength -= result.len;
                                                if (msgLength <= 0) {
                                                  return trace222222222222("No APDU data -> Drop package");
                                                }
                                                header.apduType = getDecodedType22222222222(buffer, offset);
                                                header.expectingReply = !!(result.funct & 4);
                                                this._handlePdu(buffer, offset, msgLength, header);
                                              }
                                              /**
                                               *
                                               * @param buffer
                                               * @param remoteAddress
                                               * @returns {*}
                                               * @private
                                               */
                                              _receiveData(buffer, remoteAddress) {
                                                if (buffer.length < BVLC_HEADER_LENGTH32222222222) {
                                                  return trace222222222222("Received invalid data -> Drop package");
                                                }
                                                const result = decode3222222222222(buffer, 0);
                                                if (!result) {
                                                  return trace222222222222("Received invalid BVLC header -> Drop package");
                                                }
                                                let header = {
                                                  // Which function the packet came in on, so later code can distinguish
                                                  // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                                                  func: result.func,
                                                  sender: {
                                                    // Address of the host we are directly connected to. String, IP:port.
                                                    address: remoteAddress,
                                                    // If the host is a BBMD passing messages along to another node, this
                                                    // is the address of the distant BACnet node.  String, IP:port.
                                                    // Typically we won't have network connectivity to this address, but
                                                    // we have to include it in replies so the host we are connect to knows
                                                    // where to forward the messages.
                                                    forwardedFrom: null
                                                  }
                                                };
                                                switch (result.func) {
                                                  case 10:
                                                  case 11:
                                                    this._handleNpdu(
                                                      buffer,
                                                      result.len,
                                                      buffer.length - result.len,
                                                      header
                                                    );
                                                    break;
                                                  case 4:
                                                    header.sender.forwardedFrom = result.originatingIP;
                                                    this._handleNpdu(
                                                      buffer,
                                                      result.len,
                                                      buffer.length - result.len,
                                                      header
                                                    );
                                                    break;
                                                  case 5:
                                                    let decodeResult = register_foreign_device_exports22222222222.decode(
                                                      buffer,
                                                      result.len,
                                                      buffer.length - result.len
                                                    );
                                                    if (!decodeResult) {
                                                      return trace222222222222("Received invalid registerForeignDevice message");
                                                    }
                                                    this.emit("registerForeignDevice", {
                                                      header,
                                                      payload: decodeResult
                                                    });
                                                    break;
                                                  case 9:
                                                    this._handleNpdu(
                                                      buffer,
                                                      result.len,
                                                      buffer.length - result.len,
                                                      header
                                                    );
                                                    break;
                                                  default:
                                                    debug322222222222(
                                                      "Received unknown BVLC function " + result.func + " -> Drop package"
                                                    );
                                                    break;
                                                }
                                              }
                                              /**
                                               * @event bacnet.error
                                               * @param {error} err - The error object thrown by the underlying transport layer.
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * client.on('error', (err) => {
                                               *   console.log('Error occurred: ', err);
                                               *   client.close();
                                               * });
                                               */
                                              _receiveError(err) {
                                                this.emit("error", err);
                                              }
                                              /**
                                               * The whoIs command discovers all BACNET devices in a network.
                                               * @function bacnet.whoIs
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {object=} options
                                               * @param {number=} options.lowLimit - Minimal device instance number to search for.
                                               * @param {number=} options.highLimit - Maximal device instance number to search for.
                                               * @fires bacnet.iAm
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * client.whoIs();
                                               */
                                              whoIs(receiver, options) {
                                                if (!options) {
                                                  if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                                    options = receiver;
                                                    receiver = void 0;
                                                  }
                                                }
                                                options = options || {};
                                                const settings = {
                                                  lowLimit: options.lowLimit,
                                                  highLimit: options.highLimit
                                                };
                                                const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                                encode3122222222222(
                                                  buffer,
                                                  0,
                                                  //@ts-ignore
                                                  receiver,
                                                  null,
                                                  DEFAULT_HOP_COUNT222222222222,
                                                  0,
                                                  0
                                                );
                                                encodeUnconfirmedServiceRequest22222222222(
                                                  buffer,
                                                  16,
                                                  8
                                                  /* WHO_IS */
                                                );
                                                who_is_exports22222222222.encode(buffer, settings.lowLimit, settings.highLimit);
                                                this.sendBvlc(receiver, buffer);
                                              }
                                              /**
                                               * The timeSync command sets the time of a target device.
                                               * @function bacnet.timeSync
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {date} dateTime - The date and time to set on the target device.
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * client.timeSync('192.168.1.43', new Date());
                                               */
                                              timeSync(receiver, dateTime) {
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(buffer, 0, receiver);
                                                encodeUnconfirmedServiceRequest22222222222(
                                                  buffer,
                                                  16,
                                                  6
                                                  /* TIME_SYNCHRONIZATION */
                                                );
                                                time_sync_exports22222222222.encode(buffer, dateTime);
                                                this.sendBvlc(receiver, buffer);
                                              }
                                              /**
                                               * The timeSyncUTC command sets the UTC time of a target device.
                                               * @function bacnet.timeSyncUTC
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {date} dateTime - The date and time to set on the target device.
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * client.timeSyncUTC('192.168.1.43', new Date());
                                               */
                                              timeSyncUTC(receiver, dateTime) {
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(buffer, 0, receiver);
                                                encodeUnconfirmedServiceRequest22222222222(
                                                  buffer,
                                                  16,
                                                  9
                                                  /* UTC_TIME_SYNCHRONIZATION */
                                                );
                                                time_sync_exports22222222222.encode(buffer, dateTime);
                                                this.sendBvlc(receiver, buffer);
                                              }
                                              /**
                                               * The readProperty command reads a single property of an object from a device.
                                               * @function bacnet.readProperty
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {object} objectId - The BACNET object ID to read.
                                               * @param {number} objectId.type - The BACNET object type to read.
                                               * @param {number} objectId.instance - The BACNET object instance to read.
                                               * @param {number} propertyId - The BACNET property id in the specified object to read.
                                               * @param {object=} options
                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                               * @param {number=} options.arrayIndex - The array index of the property to be read.
                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                                               *   console.log('value: ', value);
                                               * });
                                               */
                                              readProperty(receiver, objectId, propertyId, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId(),
                                                  arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL22222222222
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  //@ts-ignore
                                                  receiver,
                                                  null,
                                                  DEFAULT_HOP_COUNT222222222222,
                                                  0,
                                                  0
                                                );
                                                const type = 0 | //@ts-ignore
                                                (settings.maxSegments !== 0 ? 2 : 0);
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  type,
                                                  12,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                read_property_exports22222222222.encode(
                                                  buffer,
                                                  objectId.type,
                                                  objectId.instance,
                                                  propertyId,
                                                  settings.arrayIndex
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  const result = read_property_exports22222222222.decodeAcknowledge(
                                                    data.buffer,
                                                    data.offset,
                                                    data.length
                                                  );
                                                  if (!result) {
                                                    return void next(new Error("INVALID_DECODING"));
                                                  }
                                                  next(null, result);
                                                });
                                              }
                                              /**
                                               * The writeProperty command writes a single property of an object to a device.
                                               * @function bacnet.writeProperty
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {object} objectId - The BACNET object ID to write.
                                               * @param {number} objectId.type - The BACNET object type to write.
                                               * @param {number} objectId.instance - The BACNET object instance to write.
                                               * @param {number} propertyId - The BACNET property id in the specified object to write.
                                               * @param {object[]} values - A list of values to be written to the specified property.
                                               * @param {ApplicationTag} values.type - The data-type of the value to be written.
                                               * @param {number} values.value - The actual value to be written.
                                               * @param {object=} options
                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                               * @param {number=} options.arrayIndex - The array index of the property to be read.
                                               * @param {number=} options.priority - The priority of the value to be written.
                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                                               *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                                               * ], (err, value) => {
                                               *   console.log('value: ', value);
                                               * });
                                               */
                                              writeProperty(receiver, objectId, propertyId, values, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId(),
                                                  arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL22222222222,
                                                  priority: options.priority || ASN1_NO_PRIORITY22222222222
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  //@ts-ignore Todo somehow types do not match at all
                                                  receiver,
                                                  null,
                                                  DEFAULT_HOP_COUNT222222222222,
                                                  0,
                                                  0
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  15,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                write_property_exports22222222222.encode(
                                                  buffer,
                                                  objectId.type,
                                                  objectId.instance,
                                                  propertyId,
                                                  settings.arrayIndex,
                                                  settings.priority,
                                                  values
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  next(err);
                                                });
                                              }
                                              /**
                                               * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                                               * @function bacnet.readPropertyMultiple
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {object[]} propertiesArray - List of object and property specifications to be read.
                                               * @param {object} propertiesArray.objectId - Specifies which object to read.
                                               * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                                               * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                                               * @param {object[]} propertiesArray.properties - List of properties to be read.
                                               * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                                               * @param {object=} options
                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * const requestArray = [
                                               *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                                               * ];
                                               * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                                               *   console.log('value: ', value);
                                               * });
                                               */
                                              readPropertyMultiple(receiver, propertiesArray, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                                                const buffer = this._getBuffer(!!isForwarded);
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  //@ts-ignore Todo somehow types do not match at all
                                                  receiver,
                                                  null,
                                                  DEFAULT_HOP_COUNT222222222222,
                                                  0,
                                                  0
                                                );
                                                const type = 0 | //@ts-ignore
                                                (settings.maxSegments !== 0 ? 2 : 0);
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  type,
                                                  14,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                read_property_multiple_exports22222222222.encode(buffer, propertiesArray);
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return next(err);
                                                  }
                                                  const result = read_property_multiple_exports22222222222.decodeAcknowledge(
                                                    data.buffer,
                                                    data.offset,
                                                    data.length
                                                  );
                                                  if (!result) {
                                                    return next(new Error("INVALID_DECODING"));
                                                  }
                                                  next(null, result);
                                                });
                                              }
                                              /**
                                               * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                                               * @function bacnet.writePropertyMultiple
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {object[]} values - List of object and property specifications to be written.
                                               * @param {object} values.objectId - Specifies which object to read.
                                               * @param {number} values.objectId.type - The BACNET object type to read.
                                               * @param {number} values.objectId.instance - The BACNET object instance to read.
                                               * @param {object[]} values.values - List of properties to be written.
                                               * @param {object} values.values.property - Property specifications to be written.
                                               * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                                               * @param {number} values.values.property.index - The array index of the property to be written.
                                               * @param {object[]} values.values.value - A list of values to be written to the specified property.
                                               * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                                               * @param {object} values.values.value.value - The actual value to be written.
                                               * @param {number} values.values.priority - The priority to be used for writing to the property.
                                               * @param {object=} options
                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * const values = [
                                               *   {objectId: {type: 8, instance: 44301}, values: [
                                               *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                                               *   ]}
                                               * ];
                                               * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                                               *   console.log('value: ', value);
                                               * });
                                               */
                                              writePropertyMultiple(receiver, values, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  //@ts-ignore
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  16,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId
                                                );
                                                write_property_multiple_exports22222222222.encodeObject(buffer, values);
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  next(err);
                                                });
                                              }
                                              /**
                                               * The confirmedCOVNotification command is used to push notifications to other
                                               * systems that have registered with us via a subscribeCOV message.
                                               * @function bacnet.confirmedCOVNotification
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                                               * @param {number} monitoredObject.type - Object type.
                                               * @param {number} monitoredObject.instance - Object instance.
                                               * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                                               * @param {number} initiatingDeviceId - Our BACnet device ID.
                                               * @param {number} lifetime - Number of seconds left until the subscription expires.
                                               * @param {array} values - values for the monitored object.  See example.
                                               * @param {object=} options
                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * const settings = {deviceId: 123}; // our BACnet device
                                               *
                                               * // Items saved from subscribeCOV message
                                               * const monitoredObject = {type: 1, instance: 1};
                                               * const subscriberProcessId = 123;
                                               *
                                               * client.confirmedCOVNotification(
                                               *   '192.168.1.43',
                                               *   monitoredObject,
                                               *   subscriberProcessId,
                                               *   settings.deviceId,
                                               *   30, // should be lifetime of subscription really
                                               *   [
                                               *     {
                                               *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                                               *       value: [
                                               *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                                               *       ],
                                               *     },
                                               *   ],
                                               *   (err) => {
                                               *     console.log('error: ', err);
                                               *   }
                                               * );
                                               */
                                              confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer();
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  1,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                cov_notify_exports22222222222.encode(
                                                  buffer,
                                                  subscribeId,
                                                  initiatingDeviceId,
                                                  monitoredObject,
                                                  lifetime,
                                                  values
                                                );
                                                encode3222222222222(
                                                  buffer.buffer,
                                                  10,
                                                  buffer.offset
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  next();
                                                });
                                              }
                                              /**
                                               * The deviceCommunicationControl command enables or disables network communication of the target device.
                                               * @function bacnet.deviceCommunicationControl
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                                               * @param {EnableDisable} enableDisable - The network communication state to set.
                                               * @param {object=} options
                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                               * @param {string=} options.password - The optional password used to set the network communication state.
                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                                               *   console.log('error: ', err);
                                               * });
                                               */
                                              deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId(),
                                                  password: options.password
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  17,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                device_communication_control_exports22222222222.encode(
                                                  buffer,
                                                  timeDuration,
                                                  enableDisable,
                                                  settings.password
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  next(err);
                                                });
                                              }
                                              /**
                                               * The reinitializeDevice command initiates a restart of the target device.
                                               * @function bacnet.reinitializeDevice
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {ReinitializedState} state - The type of restart to be initiated.
                                               * @param {object=} options
                                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                               * @param {string=} options.password - The optional password used to restart the device.
                                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                                               *   console.log('value: ', value);
                                               * });
                                               */
                                              reinitializeDevice(receiver, state, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId(),
                                                  password: options.password
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  20,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                reinitialize_device_exports22222222222.encode(buffer, state, settings.password);
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  next(err);
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param objectId
                                               * @param position
                                               * @param fileBuffer
                                               * @param options
                                               * @param next
                                               */
                                              writeFile(receiver, objectId, position, fileBuffer, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  7,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                atomic_write_file_exports22222222222.encode(
                                                  buffer,
                                                  false,
                                                  objectId,
                                                  position,
                                                  fileBuffer
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  const result = atomic_write_file_exports22222222222.decodeAcknowledge(
                                                    data.buffer,
                                                    data.offset,
                                                    data.length
                                                  );
                                                  if (!result) {
                                                    return void next(new Error("INVALID_DECODING"));
                                                  }
                                                  next(null, result);
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param objectId
                                               * @param position
                                               * @param count
                                               * @param options
                                               * @param next
                                               */
                                              readFile(receiver, objectId, position, count, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  6,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                atomic_read_file_exports22222222222.encode(buffer, true, objectId, position, count);
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  const result = atomic_read_file_exports22222222222.decodeAcknowledge(
                                                    data.buffer,
                                                    data.offset,
                                                    data.length
                                                  );
                                                  if (!result) {
                                                    return void next(new Error("INVALID_DECODING"));
                                                  }
                                                  next(null, result);
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param objectId
                                               * @param idxBegin
                                               * @param quantity
                                               * @param options
                                               * @param next
                                               */
                                              readRange(receiver, objectId, idxBegin, quantity, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  26,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                read_range_exports22222222222.encode(
                                                  buffer,
                                                  objectId,
                                                  131,
                                                  ASN1_ARRAY_ALL22222222222,
                                                  0,
                                                  idxBegin,
                                                  /* @__PURE__ */ new Date(),
                                                  quantity
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  const result = read_range_exports22222222222.decodeAcknowledge(
                                                    data.buffer,
                                                    data.offset,
                                                    data.length
                                                  );
                                                  if (!result) {
                                                    return void next(new Error("INVALID_DECODING"));
                                                  }
                                                  next(null, result);
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param objectId
                                               * @param subscribeId
                                               * @param cancel
                                               * @param issueConfirmedNotifications
                                               * @param lifetime
                                               * @param options
                                               * @param next
                                               */
                                              subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                                                const next = nextFunc || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  // @ts-ignore TODO types not matching with documentation and code
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  5,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                subscribe_cov_exports22222222222.encode(
                                                  buffer,
                                                  subscribeId,
                                                  objectId,
                                                  cancel,
                                                  issueConfirmedNotifications,
                                                  lifetime
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  next();
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param objectId
                                               * @param monitoredProperty
                                               * @param subscribeId
                                               * @param cancel
                                               * @param issueConfirmedNotifications
                                               * @param options
                                               * @param next
                                               */
                                              subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  28,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                subscribe_property_exports22222222222.encode(
                                                  buffer,
                                                  subscribeId,
                                                  objectId,
                                                  cancel,
                                                  issueConfirmedNotifications,
                                                  0,
                                                  monitoredProperty,
                                                  false,
                                                  15
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  next();
                                                });
                                              }
                                              /**
                                               * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                                               * @function bacnet.unconfirmedCOVNotification
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                                               * @param {number} initiatingDeviceId - The id of this device.
                                               * @param {object} monitoredObjectId - Specifies about which object the notification is.
                                               * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                                               * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                                               * @param {number} timeRemaining - How long the subscription is still active in seconds.
                                               * @param {object[]} values - List of properties with updated values.
                                               * @param {object} values.property - Property specifications.
                                               * @param {number} values.property.id - The updated BACNET property id.
                                               * @param {number} values.property.index - The array index of the updated property.
                                               * @param {object[]} values.value - A list of updated values.
                                               * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                                               * @param {object} values.value.value - The actual updated value.
                                               * @param {number} values.priority - The priority of the updated property.
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * client.unconfirmedCOVNotification(
                                               *            '127.0.0.1',
                                               *            3,
                                               *            433,
                                               *            {type: 2, instance: 122},
                                               *            120,
                                               *            [
                                               *              {
                                               *                property: {id: 85},
                                               *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                                               *              },
                                               *              {
                                               *                property: {id: 111},
                                               *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                                               *              }
                                               *            ]);
                                               */
                                              unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                                                const buffer = this._getBuffer();
                                                encode3122222222222(buffer, 0, receiver);
                                                encodeUnconfirmedServiceRequest22222222222(
                                                  buffer,
                                                  16,
                                                  2
                                                  /* UNCONFIRMED_COV_NOTIFICATION */
                                                );
                                                cov_notify_exports22222222222.encode(
                                                  buffer,
                                                  subscriberProcessId,
                                                  initiatingDeviceId,
                                                  monitoredObjectId,
                                                  timeRemaining,
                                                  values
                                                );
                                                encode3222222222222(
                                                  buffer.buffer,
                                                  10,
                                                  buffer.offset
                                                );
                                                this._transport.send(buffer.buffer, buffer.offset, receiver);
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param objectId
                                               * @param values
                                               * @param options
                                               * @param next
                                               */
                                              createObject(receiver, objectId, values, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  10,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                create_object_exports22222222222.encode(buffer, objectId, values);
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  next();
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param objectId
                                               * @param options
                                               * @param next
                                               */
                                              deleteObject(receiver, objectId, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  11,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                delete_object_exports22222222222.encode(buffer, objectId);
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  next();
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param objectId
                                               * @param reference
                                               * @param values
                                               * @param options
                                               * @param next
                                               */
                                              removeListElement(receiver, objectId, reference, values, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  9,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                add_list_element_exports22222222222.encode(
                                                  buffer,
                                                  objectId,
                                                  reference.id,
                                                  reference.index,
                                                  values
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  next();
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param objectId
                                               * @param reference
                                               * @param values
                                               * @param options
                                               * @param next
                                               */
                                              addListElement(receiver, objectId, reference, values, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  8,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                add_list_element_exports22222222222.encode(
                                                  buffer,
                                                  objectId,
                                                  reference.id,
                                                  reference.index,
                                                  values
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  next();
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param options
                                               * @param next
                                               */
                                              getAlarmSummary(receiver, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  3,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  const result = alarm_summary_exports22222222222.decode(
                                                    data.buffer,
                                                    data.offset,
                                                    data.length
                                                  );
                                                  if (!result) {
                                                    return void next(new Error("INVALID_DECODING"));
                                                  }
                                                  next(null, result);
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param objectId
                                               * @param options
                                               * @param next
                                               */
                                              getEventInformation(receiver, objectId, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  29,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                encodeContextObjectId22222222222(buffer, 0, objectId.type, objectId.instance);
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  const result = event_information_exports22222222222.decode(
                                                    data.buffer,
                                                    data.offset,
                                                    data.length
                                                  );
                                                  if (!result) {
                                                    return void next(new Error("INVALID_DECODING"));
                                                  }
                                                  next(null, result);
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param objectId
                                               * @param eventState
                                               * @param ackText
                                               * @param evTimeStamp
                                               * @param ackTimeStamp
                                               * @param options
                                               * @param next
                                               */
                                              acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  0,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                alarm_acknowledge_exports22222222222.encode(
                                                  buffer,
                                                  57,
                                                  objectId,
                                                  eventState,
                                                  ackText,
                                                  evTimeStamp,
                                                  ackTimeStamp
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  next();
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param vendorId
                                               * @param serviceNumber
                                               * @param data
                                               * @param options
                                               * @param next
                                               */
                                              confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  18,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                private_transfer_exports22222222222.encode(buffer, vendorId, serviceNumber, data);
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data2) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  next();
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param vendorId
                                               * @param serviceNumber
                                               * @param data
                                               */
                                              unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(buffer, 0, receiver);
                                                encodeUnconfirmedServiceRequest22222222222(
                                                  buffer,
                                                  16,
                                                  4
                                                  /* UNCONFIRMED_PRIVATE_TRANSFER */
                                                );
                                                private_transfer_exports22222222222.encode(buffer, vendorId, serviceNumber, data);
                                                this.sendBvlc(receiver, buffer);
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param acknowledgmentFilter
                                               * @param options
                                               * @param next
                                               */
                                              getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  4,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                get_enrollment_summary_exports22222222222.encode(
                                                  buffer,
                                                  acknowledgmentFilter,
                                                  options.enrollmentFilter,
                                                  options.eventStateFilter,
                                                  options.eventTypeFilter,
                                                  options.priorityFilter,
                                                  options.notificationClassFilter
                                                );
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  const result = get_enrollment_summary_exports22222222222.decodeAcknowledge(
                                                    data.buffer,
                                                    data.offset,
                                                    data.length
                                                  );
                                                  if (!result) {
                                                    return void next(new Error("INVALID_DECODING"));
                                                  }
                                                  next(null, result);
                                                });
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param eventNotification
                                               */
                                              unconfirmedEventNotification(receiver, eventNotification) {
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(buffer, 0, receiver);
                                                encodeUnconfirmedServiceRequest22222222222(
                                                  buffer,
                                                  16,
                                                  3
                                                  /* UNCONFIRMED_EVENT_NOTIFICATION */
                                                );
                                                event_notify_data_exports22222222222.encode(buffer, eventNotification);
                                                this.sendBvlc(receiver, buffer);
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param eventNotification
                                               * @param options
                                               * @param next
                                               */
                                              confirmedEventNotification(receiver, eventNotification, options, next) {
                                                next = next || options;
                                                const settings = {
                                                  maxSegments: options.maxSegments || 112,
                                                  maxApdu: options.maxApdu || 5,
                                                  invokeId: options.invokeId || this._getInvokeId()
                                                };
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(
                                                  buffer,
                                                  0 | 4,
                                                  receiver
                                                );
                                                encodeConfirmedServiceRequest22222222222(
                                                  buffer,
                                                  0,
                                                  2,
                                                  settings.maxSegments,
                                                  settings.maxApdu,
                                                  settings.invokeId,
                                                  0,
                                                  0
                                                );
                                                event_notify_data_exports22222222222.encode(buffer, eventNotification);
                                                this.sendBvlc(receiver, buffer);
                                                this._addCallback(settings.invokeId, (err, data) => {
                                                  if (err) {
                                                    return void next(err);
                                                  }
                                                  next();
                                                });
                                              }
                                              /**
                                               * The readPropertyResponse call sends a response with information about one of our properties.
                                               * @function bacnet.readPropertyResponse
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {number} invokeId - ID of the original readProperty request.
                                               * @param {object} objectId - objectId from the original request,
                                               * @param {object} property - property being read, taken from the original request.
                                               * @param {object=} options varying behaviour for special circumstances
                                               * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                                               */
                                              readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(buffer, 0, receiver);
                                                encodeComplexAck22222222222(
                                                  buffer,
                                                  48,
                                                  12,
                                                  invokeId
                                                );
                                                read_property_exports22222222222.encodeAcknowledge(
                                                  buffer,
                                                  objectId,
                                                  property.id,
                                                  property.index,
                                                  value
                                                );
                                                this.sendBvlc(receiver, buffer);
                                              }
                                              readPropertyMultipleResponse(receiver, invokeId, values) {
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(buffer, 0, receiver);
                                                encodeComplexAck22222222222(
                                                  buffer,
                                                  48,
                                                  14,
                                                  invokeId
                                                );
                                                read_property_multiple_exports22222222222.encodeAcknowledge(buffer, values);
                                                this.sendBvlc(receiver, buffer);
                                              }
                                              /**
                                               * The iAmResponse command is sent as a reply to a whoIs request.
                                               * @function bacnet.iAmResponse
                                               * @param {object} receiver - address to send packet to, null for local broadcast.
                                               * @param {number} deviceId - Our device ID.
                                               * @param {number} segmentation - an enum.Segmentation value.
                                               * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                                               */
                                              iAmResponse(receiver, deviceId, segmentation, vendorId) {
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(buffer, 0, receiver);
                                                encodeUnconfirmedServiceRequest22222222222(
                                                  buffer,
                                                  16,
                                                  0
                                                  /* I_AM */
                                                );
                                                i_am_exports22222222222.encode(
                                                  buffer,
                                                  deviceId,
                                                  this._transport.getMaxPayload(),
                                                  segmentation,
                                                  vendorId
                                                );
                                                this.sendBvlc(receiver, buffer);
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param deviceId
                                               * @param objectId
                                               * @param objectName
                                               */
                                              iHaveResponse(receiver, deviceId, objectId, objectName) {
                                                const buffer = this._getBuffer(
                                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                                );
                                                encode3122222222222(buffer, 0, receiver);
                                                encodeUnconfirmedServiceRequest22222222222(
                                                  buffer,
                                                  16,
                                                  1
                                                  /* I_HAVE */
                                                );
                                                i_have_exports22222222222.encode(buffer, deviceId, objectId, objectName);
                                                this.sendBvlc(receiver, buffer);
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param service
                                               * @param invokeId
                                               */
                                              simpleAckResponse(receiver, service, invokeId) {
                                                if (typeof receiver === "string")
                                                  return;
                                                const buffer = this._getBuffer(!!receiver.forwardedFrom);
                                                encode3122222222222(buffer, 0, receiver);
                                                encodeSimpleAck22222222222(
                                                  buffer,
                                                  32,
                                                  service,
                                                  invokeId
                                                );
                                                this.sendBvlc(receiver, buffer);
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param service
                                               * @param invokeId
                                               * @param errorClass
                                               * @param errorCode
                                               */
                                              errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                                                trace222222222222(
                                                  `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                                    service
                                                  )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                                                );
                                                trace222222222222(
                                                  `error message ${error_exports22222222222.buildMessage({
                                                    class: errorClass,
                                                    code: errorCode
                                                  })}`
                                                );
                                                const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                                                if (typeof receiver === "string")
                                                  throw new Error("receiver must be object");
                                                const buffer = this._getBuffer(hasSource);
                                                encode3122222222222(buffer, 0, receiver);
                                                encodeError22222222222(buffer, 80, service, invokeId);
                                                error_exports22222222222.encode(buffer, errorClass, errorCode);
                                                this.sendBvlc(receiver, buffer);
                                              }
                                              /**
                                               *
                                               * @param receiver
                                               * @param buffer
                                               */
                                              sendBvlc(receiver, buffer) {
                                                if (typeof receiver === "string") {
                                                  receiver = {
                                                    address: receiver
                                                  };
                                                }
                                                if (receiver && receiver.forwardedFrom) {
                                                  encode3222222222222(
                                                    buffer.buffer,
                                                    4,
                                                    buffer.offset,
                                                    receiver.forwardedFrom
                                                  );
                                                } else if (receiver && receiver.address) {
                                                  encode3222222222222(
                                                    buffer.buffer,
                                                    10,
                                                    buffer.offset
                                                  );
                                                } else {
                                                  encode3222222222222(
                                                    buffer.buffer,
                                                    11,
                                                    buffer.offset
                                                  );
                                                }
                                                this._transport.send(
                                                  buffer.buffer,
                                                  buffer.offset,
                                                  receiver && receiver.address || null
                                                );
                                              }
                                              /**
                                               * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                                               * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                                               * @function bacnet.resultResponse
                                               * @param {string} receiver - IP address of the target device.
                                               * @param {number} resultCode - Single value from BvlcResultFormat enum.
                                               */
                                              resultResponse(receiver, resultCode) {
                                                const buffer = this._getBuffer();
                                                encodeResult22222222222(buffer, resultCode);
                                                encode3222222222222(
                                                  buffer.buffer,
                                                  0,
                                                  buffer.offset
                                                );
                                                this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                                              }
                                              /**
                                               * Unloads the current bacnet instance and closes the underlying UDP socket.
                                               * @function bacnet.close
                                               * @example
                                               * const bacnet = require('node-bacnet');
                                               * const client = new bacnet();
                                               *
                                               * client.close();
                                               */
                                              close() {
                                                this._transport.close();
                                              }
                                              /**
                                               * Helper function to take an array of enums and produce a bitstring suitable
                                               * for inclusion as a property.
                                               *
                                               * @example
                                               * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                                               *   {value: bacnet.createBitstring([
                                               *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                                               *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                                               *   ]),
                                               *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                                               * ],
                                               */
                                              static createBitstring(items) {
                                                let offset = 0;
                                                let bytes = [];
                                                let bitsUsed = 0;
                                                while (items.length) {
                                                  let value = 0;
                                                  items = items.filter((i) => {
                                                    if (i >= offset + 8) {
                                                      return true;
                                                    }
                                                    value |= 1 << i - offset;
                                                    bitsUsed = Math.max(bitsUsed, i);
                                                    return false;
                                                  });
                                                  bytes.push(value);
                                                  offset += 8;
                                                }
                                                bitsUsed++;
                                                return {
                                                  value: bytes,
                                                  bitsUsed
                                                };
                                              }
                                            };
                                            var import_underscore22222222222 = __toESM22222222222(require("underscore"));
                                            var import_process22222222222 = __toESM22222222222(require("process"));
                                            var import__22222222222 = __toESM22222222222(require_dist22222222222());
                                            var PropertyIdentifierToEnumMap22222222222 = {};
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.OBJECT_TYPE] = import__22222222222.enums.ObjectType;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__22222222222.enums.Segmentation;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.EVENT_STATE] = import__22222222222.enums.EventState;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.UNITS] = import__22222222222.enums.EngineeringUnits;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.RELIABILITY] = import__22222222222.enums.Reliability;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__22222222222.enums.NotifyType;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.POLARITY] = import__22222222222.enums.Polarity;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__22222222222.enums.ServicesSupported;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__22222222222.enums.ObjectTypesSupported;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.STATUS_FLAGS] = import__22222222222.enums.StatusFlags;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__22222222222.enums.LimitEnable;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.EVENT_ENABLE] = import__22222222222.enums.EventTransitionBits;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__22222222222.enums.EventTransitionBits;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__22222222222.enums.DeviceStatus;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__22222222222.enums.DeviceStatus;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.ACK_REQUIRED] = import__22222222222.enums.EventTransitionBits;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.LOGGING_TYPE] = import__22222222222.enums.LoggingType;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__22222222222.enums.FileAccessMethod;
                                            PropertyIdentifierToEnumMap22222222222[import__22222222222.enums.PropertyIdentifier.NODE_TYPE] = import__22222222222.enums.NodeType;
                                            var ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222 = {};
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BINARY_INPUT] = {};
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BINARY_INPUT][import__22222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222.enums.BinaryPV;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BINARY_INPUT][import__22222222222.enums.PropertyIdentifier.MODE] = import__22222222222.enums.BinaryPV;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.ANALOG_INPUT] = {};
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.ANALOG_INPUT][import__22222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222.enums.BinaryPV;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.ANALOG_OUTPUT] = {};
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.ANALOG_OUTPUT][import__22222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222.enums.BinaryPV;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BINARY_OUTPUT] = {};
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BINARY_OUTPUT][import__22222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222.enums.BinaryPV;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BINARY_OUTPUT][import__22222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__22222222222.enums.BinaryPV;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BINARY_VALUE] = {};
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BINARY_VALUE][import__22222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222.enums.BinaryPV;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BINARY_VALUE][import__22222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__22222222222.enums.BinaryPV;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__22222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222.enums.BinaryLightingPV;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BITSTRING_VALUE] = {};
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.BINARY_VALUE][import__22222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222.enums.BinaryPV;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222.enums.LifeSafetyState;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222.enums.PropertyIdentifier.TRACKING_VALUE] = import__22222222222.enums.LifeSafetyState;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222.enums.PropertyIdentifier.MODE] = import__22222222222.enums.LifeSafetyMode;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__22222222222.enums.LifeSafetyMode;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222.enums.PropertyIdentifier.SILENCED] = import__22222222222.enums.LifeSafetyState;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__22222222222.enums.LifeSafetyOperation;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__22222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222.enums.LifeSafetyState;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__22222222222.enums.PropertyIdentifier.MODE] = import__22222222222.enums.LifeSafetyMode;
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.LOAD_CONTROL] = {};
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[import__22222222222.enums.ObjectType.LOAD_CONTROL][import__22222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222222.enums.ShedState;
                                            var propSubSet22222222222 = import_process22222222222.default.argv.includes("--all") ? Object.values(import__22222222222.enums.PropertyIdentifier) : [
                                              /* normally supported from all devices */
                                              import__22222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                                              import__22222222222.enums.PropertyIdentifier.OBJECT_NAME,
                                              import__22222222222.enums.PropertyIdentifier.OBJECT_TYPE,
                                              import__22222222222.enums.PropertyIdentifier.PRESENT_VALUE,
                                              import__22222222222.enums.PropertyIdentifier.STATUS_FLAGS,
                                              import__22222222222.enums.PropertyIdentifier.EVENT_STATE,
                                              import__22222222222.enums.PropertyIdentifier.RELIABILITY,
                                              import__22222222222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                                              import__22222222222.enums.PropertyIdentifier.UNITS,
                                              /* other properties */
                                              import__22222222222.enums.PropertyIdentifier.DESCRIPTION,
                                              import__22222222222.enums.PropertyIdentifier.SYSTEM_STATUS,
                                              import__22222222222.enums.PropertyIdentifier.VENDOR_NAME,
                                              import__22222222222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                                              import__22222222222.enums.PropertyIdentifier.MODEL_NAME,
                                              import__22222222222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                                              import__22222222222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                                              import__22222222222.enums.PropertyIdentifier.LOCATION,
                                              import__22222222222.enums.PropertyIdentifier.LOCAL_DATE,
                                              import__22222222222.enums.PropertyIdentifier.LOCAL_TIME,
                                              import__22222222222.enums.PropertyIdentifier.UTC_OFFSET,
                                              import__22222222222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                                              import__22222222222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                                              import__22222222222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                                              import__22222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                                              import__22222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                                              import__22222222222.enums.PropertyIdentifier.OBJECT_LIST,
                                              import__22222222222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                                              import__22222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                                              import__22222222222.enums.PropertyIdentifier.APDU_TIMEOUT,
                                              import__22222222222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                                              import__22222222222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                                              import__22222222222.enums.PropertyIdentifier.DATABASE_REVISION,
                                              import__22222222222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                                              import__22222222222.enums.PropertyIdentifier.MAX_MASTER,
                                              import__22222222222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                                              import__22222222222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                                            ];
                                            var debug422222222222 = import_process22222222222.default.argv.includes("--debug");
                                            function getAllPropertiesManually22222222222(address, objectId, callback, propList, result) {
                                              if (!propList) {
                                                propList = propSubSet22222222222.map((x) => x);
                                              }
                                              if (!result) {
                                                result = [];
                                              }
                                              if (!propList.length) {
                                                return callback({
                                                  values: [
                                                    {
                                                      objectId,
                                                      values: result
                                                    }
                                                  ]
                                                });
                                              }
                                              const prop = propList.shift();
                                              bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                                                if (!err) {
                                                  if (debug422222222222) {
                                                    console.log("Handle value " + prop + ": ", JSON.stringify(value));
                                                  }
                                                  const objRes = value.property;
                                                  objRes.value = value.values;
                                                  result.push(objRes);
                                                } else {
                                                }
                                                getAllPropertiesManually22222222222(address, objectId, callback, propList, result);
                                              });
                                            }
                                            function readBit22222222222(buffer, i, bit) {
                                              return (buffer[i] >> bit) % 2;
                                            }
                                            function handleBitString22222222222(buffer, bitsUsed, usedEnum) {
                                              const res = [];
                                              for (let i = 0; i < bitsUsed; i++) {
                                                const bufferIndex = Math.floor(i / 8);
                                                if (readBit22222222222(buffer, bufferIndex, i % 8)) {
                                                  res.push(import__22222222222.enums.getEnumName(usedEnum, i));
                                                }
                                              }
                                              return res;
                                            }
                                            function parseValue22222222222(address, objId2, parentType, value, supportsMultiple, callback) {
                                              let resValue = null;
                                              if (value && value.type && value.value !== null && value.value !== void 0) {
                                                switch (value.type) {
                                                  case import__22222222222.enums.ApplicationTag.NULL:
                                                    resValue = null;
                                                    break;
                                                  case import__22222222222.enums.ApplicationTag.BOOLEAN:
                                                    resValue = !!value.value;
                                                    break;
                                                  case import__22222222222.enums.ApplicationTag.UNSIGNED_INTEGER:
                                                  case import__22222222222.enums.ApplicationTag.SIGNED_INTEGER:
                                                  case import__22222222222.enums.ApplicationTag.REAL:
                                                  case import__22222222222.enums.ApplicationTag.DOUBLE:
                                                  case import__22222222222.enums.ApplicationTag.CHARACTER_STRING:
                                                    resValue = value.value;
                                                    break;
                                                  case import__22222222222.enums.ApplicationTag.DATE:
                                                  case import__22222222222.enums.ApplicationTag.TIME:
                                                  case import__22222222222.enums.ApplicationTag.TIMESTAMP:
                                                    resValue = value.value;
                                                    break;
                                                  case import__22222222222.enums.ApplicationTag.BIT_STRING:
                                                    if (ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[parentType][objId2]) {
                                                      resValue = handleBitString22222222222(
                                                        value.value.value,
                                                        value.value.bitsUsed,
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[parentType][objId2]
                                                      );
                                                    } else if (PropertyIdentifierToEnumMap22222222222[objId2]) {
                                                      resValue = handleBitString22222222222(
                                                        value.value.value,
                                                        value.value.bitsUsed,
                                                        PropertyIdentifierToEnumMap22222222222[objId2]
                                                      );
                                                    } else {
                                                      if (parentType !== import__22222222222.enums.ObjectType.BITSTRING_VALUE) {
                                                        console.log(
                                                          "Unknown value for BIT_STRING type for objId " + import__22222222222.enums.getEnumName(import__22222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__22222222222.enums.getEnumName(import__22222222222.enums.ObjectType, parentType)
                                                        );
                                                      }
                                                      resValue = value.value;
                                                    }
                                                    break;
                                                  case import__22222222222.enums.ApplicationTag.ENUMERATED:
                                                    if (ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[parentType][objId2]) {
                                                      resValue = import__22222222222.enums.getEnumName(
                                                        ObjectTypeSpecificPropertyIdentifierToEnumMap22222222222[parentType][objId2],
                                                        value.value
                                                      );
                                                    } else if (PropertyIdentifierToEnumMap22222222222[objId2]) {
                                                      resValue = import__22222222222.enums.getEnumName(
                                                        PropertyIdentifierToEnumMap22222222222[objId2],
                                                        value.value
                                                      );
                                                    } else {
                                                      console.log(
                                                        "Unknown value for ENUMERATED type for objId " + import__22222222222.enums.getEnumName(import__22222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__22222222222.enums.getEnumName(import__22222222222.enums.ObjectType, parentType)
                                                      );
                                                      resValue = value.value;
                                                    }
                                                    break;
                                                  case import__22222222222.enums.ApplicationTag.OBJECTIDENTIFIER:
                                                    if (objId2 === import__22222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__22222222222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__22222222222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                                                      resValue = value.value;
                                                    } else if (supportsMultiple) {
                                                      const requestArray = [
                                                        {
                                                          objectId: value.value,
                                                          properties: [{ id: 8 }]
                                                        }
                                                      ];
                                                      bacnetClient.readPropertyMultiple(
                                                        address,
                                                        requestArray,
                                                        (err, resValue2) => {
                                                          parseDeviceObject22222222222(address, resValue2, value.value, true, callback);
                                                        }
                                                      );
                                                      return;
                                                    } else {
                                                      getAllPropertiesManually22222222222(address, value.value, (result) => {
                                                        parseDeviceObject22222222222(address, result, value.value, false, callback);
                                                      });
                                                      return;
                                                    }
                                                    break;
                                                  case import__22222222222.enums.ApplicationTag.OCTET_STRING:
                                                    resValue = value.value;
                                                    break;
                                                  case import__22222222222.enums.ApplicationTag.ERROR:
                                                    resValue = {
                                                      errorClass: import__22222222222.enums.getEnumName(
                                                        import__22222222222.enums.ErrorClass,
                                                        value.value.errorClass
                                                      ),
                                                      errorCode: import__22222222222.enums.getEnumName(import__22222222222.enums.ErrorCode, value.value.errorCode)
                                                    };
                                                    break;
                                                  case import__22222222222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                                                  case import__22222222222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                                                  case import__22222222222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                                                  case import__22222222222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                    resValue = value.value;
                                                    break;
                                                  case import__22222222222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                                    parseValue22222222222(
                                                      address,
                                                      objId2,
                                                      parentType,
                                                      value.value,
                                                      supportsMultiple,
                                                      callback
                                                    );
                                                    return;
                                                  case import__22222222222.enums.ApplicationTag.READ_ACCESS_RESULT:
                                                    resValue = value.value;
                                                    break;
                                                  default:
                                                    console.log(
                                                      "unknown type " + value.type + ": " + JSON.stringify(value)
                                                    );
                                                    resValue = value;
                                                }
                                              }
                                              setImmediate(() => callback(resValue));
                                            }
                                            function parseDeviceObject22222222222(address, obj, parent, supportsMultiple, callback) {
                                              if (debug422222222222) {
                                                console.log(
                                                  "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                                                );
                                              }
                                              if (!obj) {
                                                console.log("object not valid on parse device object");
                                                return;
                                              }
                                              if (!obj.values || !Array.isArray(obj.values)) {
                                                console.log("No device or invalid response");
                                                callback({ ERROR: "No device or invalid response" });
                                                return;
                                              }
                                              let cbCount = 0;
                                              let objDef = {};
                                              const finalize = () => {
                                                Object.keys(objDef).forEach((devId) => {
                                                  Object.keys(objDef[devId]).forEach((objId2) => {
                                                    if (objDef[devId][objId2].length === 1) {
                                                      objDef[devId][objId2] = objDef[devId][objId2][0];
                                                    }
                                                  });
                                                });
                                                if (obj.values.length === 1) {
                                                  objDef = objDef[obj.values[0].objectId.instance];
                                                }
                                                if (debug422222222222) {
                                                  console.log(
                                                    "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                                                  );
                                                }
                                                callback(objDef);
                                              };
                                              obj.values.forEach((devBaseObj) => {
                                                if (!devBaseObj.objectId) {
                                                  console.log("No device Id found in object data");
                                                  return;
                                                }
                                                if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                                                  console.log("No device type or instance found in object data");
                                                  return;
                                                }
                                                if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                                                  console.log("No device values response");
                                                  return;
                                                }
                                                const deviceId = devBaseObj.objectId.instance;
                                                objDef[deviceId] = {};
                                                devBaseObj.values.forEach((devObj) => {
                                                  let objId2 = import__22222222222.enums.getEnumName(import__22222222222.enums.PropertyIdentifier, devObj.id);
                                                  if (devObj.index !== 4294967295) {
                                                    objId2 += "-" + devObj.index;
                                                  }
                                                  if (debug422222222222) {
                                                    console.log("Handle Object property:", deviceId, objId2, devObj.value);
                                                  }
                                                  devObj.value.forEach((val) => {
                                                    if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                                      objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                      objDef[deviceId][objId2].push(val.value);
                                                      return;
                                                    }
                                                    cbCount++;
                                                    parseValue22222222222(
                                                      address,
                                                      devObj.id,
                                                      parent.type,
                                                      val,
                                                      supportsMultiple,
                                                      (parsedValue) => {
                                                        if (debug422222222222) {
                                                          console.log(
                                                            "RETURN parsedValue",
                                                            deviceId,
                                                            objId2,
                                                            devObj.value,
                                                            parsedValue
                                                          );
                                                        }
                                                        objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                        objDef[deviceId][objId2].push(parsedValue);
                                                        if (!--cbCount) {
                                                          finalize();
                                                        }
                                                      }
                                                    );
                                                  });
                                                });
                                              });
                                              if (cbCount === 0) {
                                                finalize();
                                              }
                                            }
                                            var limitToDevice22222222222 = null;
                                            if (import_process22222222222.default.argv.length === 3) {
                                              limitToDevice22222222222 = parseInt(import_process22222222222.default.argv[2]);
                                              if (isNaN(limitToDevice22222222222)) {
                                                limitToDevice22222222222 = null;
                                              }
                                            }
                                            var node_bacnet_default22222222222 = Client22222222222;
                                          }
                                        });
                                        var node_bacnet_exports2222222222 = {};
                                        __export2222222222(node_bacnet_exports2222222222, {
                                          _: () => import_underscore2222222222.default,
                                          bacnetErrorToString: () => bacnetErrorToString2222222222,
                                          default: () => node_bacnet_default2222222222,
                                          enums: () => enum_exports2222222222,
                                          parseValue: () => parseValue2222222222
                                        });
                                        module2222222222.exports = __toCommonJS2222222222(node_bacnet_exports2222222222);
                                        var enum_exports2222222222 = {};
                                        __export2222222222(enum_exports2222222222, {
                                          ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL2222222222,
                                          ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS2222222222,
                                          ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG2222222222,
                                          ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES2222222222,
                                          ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE2222222222,
                                          ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT2222222222,
                                          ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE2222222222,
                                          ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY2222222222,
                                          ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID2222222222,
                                          ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY2222222222,
                                          ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY2222222222,
                                          AbortReason: () => AbortReason2222222222,
                                          AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable2222222222,
                                          AccessCredentialDisable: () => AccessCredentialDisable2222222222,
                                          AccessCredentialDisableReason: () => AccessCredentialDisableReason2222222222,
                                          AccessEvent: () => AccessEvent2222222222,
                                          AccessPassbackMode: () => AccessPassbackMode2222222222,
                                          AccessUserType: () => AccessUserType2222222222,
                                          AccessZoneOccupancyState: () => AccessZoneOccupancyState2222222222,
                                          Action: () => Action2222222222,
                                          ApplicationTag: () => ApplicationTag2222222222,
                                          ApplicationTagName: () => ApplicationTagName2222222222,
                                          AuthenticationFactorType: () => AuthenticationFactorType2222222222,
                                          AuthenticationStatus: () => AuthenticationStatus2222222222,
                                          AuthorizationExemption: () => AuthorizationExemption2222222222,
                                          AuthorizationMode: () => AuthorizationMode2222222222,
                                          BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH3222222222,
                                          BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP2222222222,
                                          BackupState: () => BackupState2222222222,
                                          BinaryLightingPV: () => BinaryLightingPV2222222222,
                                          BinaryPV: () => BinaryPV2222222222,
                                          BvlcResultFormat: () => BvlcResultFormat2222222222,
                                          BvlcResultPurpose: () => BvlcResultPurpose2222222222,
                                          CharacterStringEncoding: () => CharacterStringEncoding2222222222,
                                          ConfirmedServiceChoice: () => ConfirmedServiceChoice2222222222,
                                          CovType: () => CovType2222222222,
                                          DaysOfWeek: () => DaysOfWeek2222222222,
                                          DeviceStatus: () => DeviceStatus2222222222,
                                          DoorAlarmState: () => DoorAlarmState2222222222,
                                          DoorSecuredStatus: () => DoorSecuredStatus2222222222,
                                          DoorStatus: () => DoorStatus2222222222,
                                          DoorValue: () => DoorValue2222222222,
                                          EnableDisable: () => EnableDisable2222222222,
                                          EngineeringUnits: () => EngineeringUnits2222222222,
                                          ErrorClass: () => ErrorClass2222222222,
                                          ErrorClassName: () => ErrorClassName2222222222,
                                          ErrorCode: () => ErrorCode2222222222,
                                          ErrorCodeName: () => ErrorCodeName2222222222,
                                          EscalatorFault: () => EscalatorFault2222222222,
                                          EscalatorMode: () => EscalatorMode2222222222,
                                          EscalatorOperationDirection: () => EscalatorOperationDirection2222222222,
                                          EventState: () => EventState2222222222,
                                          EventTransitionBits: () => EventTransitionBits2222222222,
                                          EventType: () => EventType2222222222,
                                          FaultType: () => FaultType2222222222,
                                          FileAccessMethod: () => FileAccessMethod2222222222,
                                          IPMode: () => IPMode2222222222,
                                          LifeSafetyMode: () => LifeSafetyMode2222222222,
                                          LifeSafetyOperation: () => LifeSafetyOperation2222222222,
                                          LifeSafetyState: () => LifeSafetyState2222222222,
                                          LiftCarDirection: () => LiftCarDirection2222222222,
                                          LiftCarDoorCommand: () => LiftCarDoorCommand2222222222,
                                          LiftCarDriveStatus: () => LiftCarDriveStatus2222222222,
                                          LiftCarMode: () => LiftCarMode2222222222,
                                          LiftFault: () => LiftFault2222222222,
                                          LiftGroupMode: () => LiftGroupMode2222222222,
                                          LightingInProgress: () => LightingInProgress2222222222,
                                          LightingOperation: () => LightingOperation2222222222,
                                          LightingTransition: () => LightingTransition2222222222,
                                          LimitEnable: () => LimitEnable2222222222,
                                          LockStatus: () => LockStatus2222222222,
                                          LogStatus: () => LogStatus2222222222,
                                          LoggingType: () => LoggingType2222222222,
                                          Maintenance: () => Maintenance2222222222,
                                          MaxApduLengthAccepted: () => MaxApduLengthAccepted2222222222,
                                          MaxSegmentsAccepted: () => MaxSegmentsAccepted2222222222,
                                          NetworkLayerMessageType: () => NetworkLayerMessageType2222222222,
                                          NetworkNumberQuality: () => NetworkNumberQuality2222222222,
                                          NetworkPortCommand: () => NetworkPortCommand2222222222,
                                          NetworkType: () => NetworkType2222222222,
                                          NodeType: () => NodeType2222222222,
                                          NotifyType: () => NotifyType2222222222,
                                          NpduControlBit: () => NpduControlBit2222222222,
                                          NpduControlPriority: () => NpduControlPriority2222222222,
                                          ObjectType: () => ObjectType2222222222,
                                          ObjectTypesSupported: () => ObjectTypesSupported2222222222,
                                          PDU_TYPE_MASK: () => PDU_TYPE_MASK2222222222,
                                          PduConReqBit: () => PduConReqBit2222222222,
                                          PduSegAckBit: () => PduSegAckBit2222222222,
                                          PduType: () => PduType2222222222,
                                          Polarity: () => Polarity2222222222,
                                          ProgramError: () => ProgramError2222222222,
                                          ProgramRequest: () => ProgramRequest2222222222,
                                          ProgramState: () => ProgramState2222222222,
                                          PropertyIdentifier: () => PropertyIdentifier2222222222,
                                          PropertyStates: () => PropertyStates2222222222,
                                          ProtocolLevel: () => ProtocolLevel2222222222,
                                          ReadRangeType: () => ReadRangeType2222222222,
                                          ReinitializedState: () => ReinitializedState2222222222,
                                          RejectReason: () => RejectReason2222222222,
                                          Relationship: () => Relationship2222222222,
                                          Reliability: () => Reliability2222222222,
                                          RestartReason: () => RestartReason2222222222,
                                          ResultFlags: () => ResultFlags2222222222,
                                          SecurityLevel: () => SecurityLevel2222222222,
                                          SecurityPolicy: () => SecurityPolicy2222222222,
                                          Segmentation: () => Segmentation2222222222,
                                          ServicesSupported: () => ServicesSupported2222222222,
                                          ShedState: () => ShedState2222222222,
                                          SilencedState: () => SilencedState2222222222,
                                          StatusFlags: () => StatusFlags2222222222,
                                          TimeStamp: () => TimeStamp2222222222,
                                          TimerState: () => TimerState2222222222,
                                          TimerTransition: () => TimerTransition2222222222,
                                          UnconfirmedServiceChoice: () => UnconfirmedServiceChoice2222222222,
                                          VTClass: () => VTClass2222222222,
                                          WriteStatus: () => WriteStatus2222222222,
                                          getEnumName: () => getEnumName2222222222
                                        });
                                        var import_debug4222222222 = __toESM2222222222(require("debug"));
                                        var debug5222222222 = (0, import_debug4222222222.default)("bacnet=enum=debug");
                                        var trace3222222222 = (0, import_debug4222222222.default)("bacnet=enum=trace");
                                        function invertEnum2222222222(enumToInvert) {
                                          const invertedEnum = {};
                                          Object.keys(enumToInvert).forEach((key) => {
                                            invertedEnum[enumToInvert[key]] = key;
                                          });
                                          return invertedEnum;
                                        }
                                        function getEnumName2222222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                                          if (!Number.isInteger(value)) {
                                            throw new Error(
                                              'getEnumName() can only be passed an integer value, was given "' + value + '"'
                                            );
                                          }
                                          let foundEntry;
                                          try {
                                            const invertedGroup = invertEnum2222222222(group);
                                            foundEntry = invertedGroup[value];
                                            if (foundEntry === void 0 && undefinedFallbackValue) {
                                              foundEntry = undefinedFallbackValue;
                                            }
                                            if (foundEntry === void 0) {
                                              foundEntry = value.toString();
                                            } else if (addNumberValue) {
                                              foundEntry += "(" + value + ")";
                                            }
                                          } catch (e) {
                                            trace3222222222(e.message);
                                            foundEntry = null;
                                          }
                                          return foundEntry;
                                        }
                                        var PDU_TYPE_MASK2222222222 = 240;
                                        var ASN1_MAX_OBJECT2222222222 = 1023;
                                        var ASN1_INSTANCE_BITS2222222222 = 22;
                                        var ASN1_MAX_INSTANCE2222222222 = 4194303;
                                        var ASN1_MAX_BITSTRING_BYTES2222222222 = 15;
                                        var ASN1_ARRAY_ALL2222222222 = 4294967295;
                                        var ASN1_NO_PRIORITY2222222222 = 0;
                                        var ASN1_MIN_PRIORITY2222222222 = 1;
                                        var ASN1_MAX_PRIORITY2222222222 = 16;
                                        var ASN1_MAX_APPLICATION_TAG2222222222 = 16;
                                        var ASN1_MAX_OBJECT_TYPE2222222222 = 1024;
                                        var ASN1_MAX_PROPERTY_ID2222222222 = 4194303;
                                        var BVLL_TYPE_BACNET_IP2222222222 = 129;
                                        var BVLC_HEADER_LENGTH3222222222 = 4;
                                        var ConfirmedServiceChoice2222222222 = /* @__PURE__ */ ((ConfirmedServiceChoice22222222222) => {
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["VT_DATA"] = 23] = "VT_DATA";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["READ_RANGE"] = 26] = "READ_RANGE";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                          ConfirmedServiceChoice22222222222[ConfirmedServiceChoice22222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                          return ConfirmedServiceChoice22222222222;
                                        })(ConfirmedServiceChoice2222222222 || {});
                                        var UnconfirmedServiceChoice2222222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice22222222222) => {
                                          UnconfirmedServiceChoice22222222222[UnconfirmedServiceChoice22222222222["I_AM"] = 0] = "I_AM";
                                          UnconfirmedServiceChoice22222222222[UnconfirmedServiceChoice22222222222["I_HAVE"] = 1] = "I_HAVE";
                                          UnconfirmedServiceChoice22222222222[UnconfirmedServiceChoice22222222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                                          UnconfirmedServiceChoice22222222222[UnconfirmedServiceChoice22222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                          UnconfirmedServiceChoice22222222222[UnconfirmedServiceChoice22222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                          UnconfirmedServiceChoice22222222222[UnconfirmedServiceChoice22222222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                                          UnconfirmedServiceChoice22222222222[UnconfirmedServiceChoice22222222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                                          UnconfirmedServiceChoice22222222222[UnconfirmedServiceChoice22222222222["WHO_HAS"] = 7] = "WHO_HAS";
                                          UnconfirmedServiceChoice22222222222[UnconfirmedServiceChoice22222222222["WHO_IS"] = 8] = "WHO_IS";
                                          UnconfirmedServiceChoice22222222222[UnconfirmedServiceChoice22222222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                                          UnconfirmedServiceChoice22222222222[UnconfirmedServiceChoice22222222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                                          UnconfirmedServiceChoice22222222222[UnconfirmedServiceChoice22222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                          return UnconfirmedServiceChoice22222222222;
                                        })(UnconfirmedServiceChoice2222222222 || {});
                                        var AbortReason2222222222 = /* @__PURE__ */ ((AbortReason22222222222) => {
                                          AbortReason22222222222[AbortReason22222222222["OTHER"] = 0] = "OTHER";
                                          AbortReason22222222222[AbortReason22222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                          AbortReason22222222222[AbortReason22222222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                                          AbortReason22222222222[AbortReason22222222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                          AbortReason22222222222[AbortReason22222222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                                          AbortReason22222222222[AbortReason22222222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                                          AbortReason22222222222[AbortReason22222222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                                          AbortReason22222222222[AbortReason22222222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                                          AbortReason22222222222[AbortReason22222222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                                          AbortReason22222222222[AbortReason22222222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                                          AbortReason22222222222[AbortReason22222222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                                          AbortReason22222222222[AbortReason22222222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                                          return AbortReason22222222222;
                                        })(AbortReason2222222222 || {});
                                        var RejectReason2222222222 = /* @__PURE__ */ ((RejectReason22222222222) => {
                                          RejectReason22222222222[RejectReason22222222222["OTHER"] = 0] = "OTHER";
                                          RejectReason22222222222[RejectReason22222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                          RejectReason22222222222[RejectReason22222222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                                          RejectReason22222222222[RejectReason22222222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                                          RejectReason22222222222[RejectReason22222222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                                          RejectReason22222222222[RejectReason22222222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                                          RejectReason22222222222[RejectReason22222222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                                          RejectReason22222222222[RejectReason22222222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                                          RejectReason22222222222[RejectReason22222222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                                          RejectReason22222222222[RejectReason22222222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                                          return RejectReason22222222222;
                                        })(RejectReason2222222222 || {});
                                        var ErrorClass2222222222 = /* @__PURE__ */ ((ErrorClass22222222222) => {
                                          ErrorClass22222222222[ErrorClass22222222222["DEVICE"] = 0] = "DEVICE";
                                          ErrorClass22222222222[ErrorClass22222222222["OBJECT"] = 1] = "OBJECT";
                                          ErrorClass22222222222[ErrorClass22222222222["PROPERTY"] = 2] = "PROPERTY";
                                          ErrorClass22222222222[ErrorClass22222222222["RESOURCES"] = 3] = "RESOURCES";
                                          ErrorClass22222222222[ErrorClass22222222222["SECURITY"] = 4] = "SECURITY";
                                          ErrorClass22222222222[ErrorClass22222222222["SERVICES"] = 5] = "SERVICES";
                                          ErrorClass22222222222[ErrorClass22222222222["VT"] = 6] = "VT";
                                          ErrorClass22222222222[ErrorClass22222222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                                          return ErrorClass22222222222;
                                        })(ErrorClass2222222222 || {});
                                        var ErrorClassName2222222222 = invertEnum2222222222(
                                          ErrorClass2222222222
                                        );
                                        var ErrorCode2222222222 = /* @__PURE__ */ ((ErrorCode22222222222) => {
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                                          ErrorCode22222222222[ErrorCode22222222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                                          ErrorCode22222222222[ErrorCode22222222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                                          ErrorCode22222222222[ErrorCode22222222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                                          ErrorCode22222222222[ErrorCode22222222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                                          ErrorCode22222222222[ErrorCode22222222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                                          ErrorCode22222222222[ErrorCode22222222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                                          ErrorCode22222222222[ErrorCode22222222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                                          ErrorCode22222222222[ErrorCode22222222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                                          ErrorCode22222222222[ErrorCode22222222222["BUSY"] = 82] = "BUSY";
                                          ErrorCode22222222222[ErrorCode22222222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                                          ErrorCode22222222222[ErrorCode22222222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                                          ErrorCode22222222222[ErrorCode22222222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                                          ErrorCode22222222222[ErrorCode22222222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                                          ErrorCode22222222222[ErrorCode22222222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                                          ErrorCode22222222222[ErrorCode22222222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                                          ErrorCode22222222222[ErrorCode22222222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                                          ErrorCode22222222222[ErrorCode22222222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                                          ErrorCode22222222222[ErrorCode22222222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                                          ErrorCode22222222222[ErrorCode22222222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                                          ErrorCode22222222222[ErrorCode22222222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                                          ErrorCode22222222222[ErrorCode22222222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                                          ErrorCode22222222222[ErrorCode22222222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                                          ErrorCode22222222222[ErrorCode22222222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                                          ErrorCode22222222222[ErrorCode22222222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                                          ErrorCode22222222222[ErrorCode22222222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                                          ErrorCode22222222222[ErrorCode22222222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                                          ErrorCode22222222222[ErrorCode22222222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                                          ErrorCode22222222222[ErrorCode22222222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                                          ErrorCode22222222222[ErrorCode22222222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                                          ErrorCode22222222222[ErrorCode22222222222["FILE_FULL"] = 128] = "FILE_FULL";
                                          ErrorCode22222222222[ErrorCode22222222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                                          ErrorCode22222222222[ErrorCode22222222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                                          ErrorCode22222222222[ErrorCode22222222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                                          ErrorCode22222222222[ErrorCode22222222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                                          ErrorCode22222222222[ErrorCode22222222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                                          ErrorCode22222222222[ErrorCode22222222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                                          ErrorCode22222222222[ErrorCode22222222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                                          ErrorCode22222222222[ErrorCode22222222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                                          ErrorCode22222222222[ErrorCode22222222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                                          ErrorCode22222222222[ErrorCode22222222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                                          ErrorCode22222222222[ErrorCode22222222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                                          ErrorCode22222222222[ErrorCode22222222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                                          ErrorCode22222222222[ErrorCode22222222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                                          ErrorCode22222222222[ErrorCode22222222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                                          ErrorCode22222222222[ErrorCode22222222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                                          ErrorCode22222222222[ErrorCode22222222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                                          ErrorCode22222222222[ErrorCode22222222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                                          ErrorCode22222222222[ErrorCode22222222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                                          ErrorCode22222222222[ErrorCode22222222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                                          ErrorCode22222222222[ErrorCode22222222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                                          ErrorCode22222222222[ErrorCode22222222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                                          ErrorCode22222222222[ErrorCode22222222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                                          ErrorCode22222222222[ErrorCode22222222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                                          ErrorCode22222222222[ErrorCode22222222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                                          ErrorCode22222222222[ErrorCode22222222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                                          ErrorCode22222222222[ErrorCode22222222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                                          ErrorCode22222222222[ErrorCode22222222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                                          ErrorCode22222222222[ErrorCode22222222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                                          ErrorCode22222222222[ErrorCode22222222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                                          ErrorCode22222222222[ErrorCode22222222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                                          ErrorCode22222222222[ErrorCode22222222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                                          ErrorCode22222222222[ErrorCode22222222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                                          ErrorCode22222222222[ErrorCode22222222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                                          ErrorCode22222222222[ErrorCode22222222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                                          ErrorCode22222222222[ErrorCode22222222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                                          ErrorCode22222222222[ErrorCode22222222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                                          ErrorCode22222222222[ErrorCode22222222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                                          ErrorCode22222222222[ErrorCode22222222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                                          ErrorCode22222222222[ErrorCode22222222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                                          ErrorCode22222222222[ErrorCode22222222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                                          ErrorCode22222222222[ErrorCode22222222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                                          ErrorCode22222222222[ErrorCode22222222222["OTHER"] = 0] = "OTHER";
                                          ErrorCode22222222222[ErrorCode22222222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                                          ErrorCode22222222222[ErrorCode22222222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                                          ErrorCode22222222222[ErrorCode22222222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                                          ErrorCode22222222222[ErrorCode22222222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                                          ErrorCode22222222222[ErrorCode22222222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                                          ErrorCode22222222222[ErrorCode22222222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                                          ErrorCode22222222222[ErrorCode22222222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                                          ErrorCode22222222222[ErrorCode22222222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                                          ErrorCode22222222222[ErrorCode22222222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                                          ErrorCode22222222222[ErrorCode22222222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                                          ErrorCode22222222222[ErrorCode22222222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                                          ErrorCode22222222222[ErrorCode22222222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                                          ErrorCode22222222222[ErrorCode22222222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                                          ErrorCode22222222222[ErrorCode22222222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                                          ErrorCode22222222222[ErrorCode22222222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                                          ErrorCode22222222222[ErrorCode22222222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                                          ErrorCode22222222222[ErrorCode22222222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                                          ErrorCode22222222222[ErrorCode22222222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                                          ErrorCode22222222222[ErrorCode22222222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                                          ErrorCode22222222222[ErrorCode22222222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                                          ErrorCode22222222222[ErrorCode22222222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                                          ErrorCode22222222222[ErrorCode22222222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                                          ErrorCode22222222222[ErrorCode22222222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                                          ErrorCode22222222222[ErrorCode22222222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                                          ErrorCode22222222222[ErrorCode22222222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                                          ErrorCode22222222222[ErrorCode22222222222["SUCCESS"] = 84] = "SUCCESS";
                                          ErrorCode22222222222[ErrorCode22222222222["TIMEOUT"] = 30] = "TIMEOUT";
                                          ErrorCode22222222222[ErrorCode22222222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                                          ErrorCode22222222222[ErrorCode22222222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                                          ErrorCode22222222222[ErrorCode22222222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                                          ErrorCode22222222222[ErrorCode22222222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                                          ErrorCode22222222222[ErrorCode22222222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                                          ErrorCode22222222222[ErrorCode22222222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                                          ErrorCode22222222222[ErrorCode22222222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                                          ErrorCode22222222222[ErrorCode22222222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                                          ErrorCode22222222222[ErrorCode22222222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                                          ErrorCode22222222222[ErrorCode22222222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                                          return ErrorCode22222222222;
                                        })(ErrorCode2222222222 || {});
                                        var ErrorCodeName2222222222 = invertEnum2222222222(
                                          ErrorCode2222222222
                                        );
                                        var AccessAuthenticationFactorDisable2222222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable22222222222) => {
                                          AccessAuthenticationFactorDisable22222222222[AccessAuthenticationFactorDisable22222222222["NONE"] = 0] = "NONE";
                                          AccessAuthenticationFactorDisable22222222222[AccessAuthenticationFactorDisable22222222222["DISABLED"] = 1] = "DISABLED";
                                          AccessAuthenticationFactorDisable22222222222[AccessAuthenticationFactorDisable22222222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                                          AccessAuthenticationFactorDisable22222222222[AccessAuthenticationFactorDisable22222222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                                          AccessAuthenticationFactorDisable22222222222[AccessAuthenticationFactorDisable22222222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                                          AccessAuthenticationFactorDisable22222222222[AccessAuthenticationFactorDisable22222222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                                          return AccessAuthenticationFactorDisable22222222222;
                                        })(AccessAuthenticationFactorDisable2222222222 || {});
                                        var AccessCredentialDisable2222222222 = /* @__PURE__ */ ((AccessCredentialDisable22222222222) => {
                                          AccessCredentialDisable22222222222[AccessCredentialDisable22222222222["NONE"] = 0] = "NONE";
                                          AccessCredentialDisable22222222222[AccessCredentialDisable22222222222["DISABLE"] = 1] = "DISABLE";
                                          AccessCredentialDisable22222222222[AccessCredentialDisable22222222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                                          AccessCredentialDisable22222222222[AccessCredentialDisable22222222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                                          return AccessCredentialDisable22222222222;
                                        })(AccessCredentialDisable2222222222 || {});
                                        var AccessCredentialDisableReason2222222222 = /* @__PURE__ */ ((AccessCredentialDisableReason22222222222) => {
                                          AccessCredentialDisableReason22222222222[AccessCredentialDisableReason22222222222["DISABLED"] = 0] = "DISABLED";
                                          AccessCredentialDisableReason22222222222[AccessCredentialDisableReason22222222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                                          AccessCredentialDisableReason22222222222[AccessCredentialDisableReason22222222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                                          AccessCredentialDisableReason22222222222[AccessCredentialDisableReason22222222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                                          AccessCredentialDisableReason22222222222[AccessCredentialDisableReason22222222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                                          AccessCredentialDisableReason22222222222[AccessCredentialDisableReason22222222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                                          AccessCredentialDisableReason22222222222[AccessCredentialDisableReason22222222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                                          AccessCredentialDisableReason22222222222[AccessCredentialDisableReason22222222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                                          AccessCredentialDisableReason22222222222[AccessCredentialDisableReason22222222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                                          AccessCredentialDisableReason22222222222[AccessCredentialDisableReason22222222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                                          return AccessCredentialDisableReason22222222222;
                                        })(AccessCredentialDisableReason2222222222 || {});
                                        var AccessEvent2222222222 = /* @__PURE__ */ ((AccessEvent22222222222) => {
                                          AccessEvent22222222222[AccessEvent22222222222["NONE"] = 0] = "NONE";
                                          AccessEvent22222222222[AccessEvent22222222222["GRANTED"] = 1] = "GRANTED";
                                          AccessEvent22222222222[AccessEvent22222222222["MUSTER"] = 2] = "MUSTER";
                                          AccessEvent22222222222[AccessEvent22222222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                                          AccessEvent22222222222[AccessEvent22222222222["DURESS"] = 4] = "DURESS";
                                          AccessEvent22222222222[AccessEvent22222222222["TRACE"] = 5] = "TRACE";
                                          AccessEvent22222222222[AccessEvent22222222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                                          AccessEvent22222222222[AccessEvent22222222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                                          AccessEvent22222222222[AccessEvent22222222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                                          AccessEvent22222222222[AccessEvent22222222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                                          AccessEvent22222222222[AccessEvent22222222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                                          AccessEvent22222222222[AccessEvent22222222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                                          AccessEvent22222222222[AccessEvent22222222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                                          AccessEvent22222222222[AccessEvent22222222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                                          AccessEvent22222222222[AccessEvent22222222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                                          AccessEvent22222222222[AccessEvent22222222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                                          AccessEvent22222222222[AccessEvent22222222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                                          AccessEvent22222222222[AccessEvent22222222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                                          return AccessEvent22222222222;
                                        })(AccessEvent2222222222 || {});
                                        var AccessPassbackMode2222222222 = /* @__PURE__ */ ((AccessPassbackMode22222222222) => {
                                          AccessPassbackMode22222222222[AccessPassbackMode22222222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                                          AccessPassbackMode22222222222[AccessPassbackMode22222222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                                          AccessPassbackMode22222222222[AccessPassbackMode22222222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                                          return AccessPassbackMode22222222222;
                                        })(AccessPassbackMode2222222222 || {});
                                        var AccessUserType2222222222 = /* @__PURE__ */ ((AccessUserType22222222222) => {
                                          AccessUserType22222222222[AccessUserType22222222222["ASSET"] = 0] = "ASSET";
                                          AccessUserType22222222222[AccessUserType22222222222["GROUP"] = 1] = "GROUP";
                                          AccessUserType22222222222[AccessUserType22222222222["PERSON"] = 2] = "PERSON";
                                          return AccessUserType22222222222;
                                        })(AccessUserType2222222222 || {});
                                        var AccessZoneOccupancyState2222222222 = /* @__PURE__ */ ((AccessZoneOccupancyState22222222222) => {
                                          AccessZoneOccupancyState22222222222[AccessZoneOccupancyState22222222222["NORMAL"] = 0] = "NORMAL";
                                          AccessZoneOccupancyState22222222222[AccessZoneOccupancyState22222222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                                          AccessZoneOccupancyState22222222222[AccessZoneOccupancyState22222222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                                          AccessZoneOccupancyState22222222222[AccessZoneOccupancyState22222222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                                          AccessZoneOccupancyState22222222222[AccessZoneOccupancyState22222222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                                          AccessZoneOccupancyState22222222222[AccessZoneOccupancyState22222222222["DISABLED"] = 5] = "DISABLED";
                                          AccessZoneOccupancyState22222222222[AccessZoneOccupancyState22222222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                                          return AccessZoneOccupancyState22222222222;
                                        })(AccessZoneOccupancyState2222222222 || {});
                                        var Action2222222222 = /* @__PURE__ */ ((Action22222222222) => {
                                          Action22222222222[Action22222222222["DIRECT"] = 0] = "DIRECT";
                                          Action22222222222[Action22222222222["REVERSE"] = 1] = "REVERSE";
                                          return Action22222222222;
                                        })(Action2222222222 || {});
                                        var AuthenticationFactorType2222222222 = /* @__PURE__ */ ((AuthenticationFactorType22222222222) => {
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["UNDEFINED"] = 0] = "UNDEFINED";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["ERROR"] = 1] = "ERROR";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["CUSTOM"] = 2] = "CUSTOM";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["WIEGAND26"] = 8] = "WIEGAND26";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["WIEGAND37"] = 9] = "WIEGAND37";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["FASC_N"] = 13] = "FASC_N";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["GSA75"] = 17] = "GSA75";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["CHUID"] = 18] = "CHUID";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["GUID"] = 20] = "GUID";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["CBEFF_A"] = 21] = "CBEFF_A";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["CBEFF_B"] = 22] = "CBEFF_B";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["CBEFF_C"] = 23] = "CBEFF_C";
                                          AuthenticationFactorType22222222222[AuthenticationFactorType22222222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                                          return AuthenticationFactorType22222222222;
                                        })(AuthenticationFactorType2222222222 || {});
                                        var AuthenticationStatus2222222222 = /* @__PURE__ */ ((AuthenticationStatus22222222222) => {
                                          AuthenticationStatus22222222222[AuthenticationStatus22222222222["NOT_READY"] = 0] = "NOT_READY";
                                          AuthenticationStatus22222222222[AuthenticationStatus22222222222["READY"] = 1] = "READY";
                                          AuthenticationStatus22222222222[AuthenticationStatus22222222222["DISABLED"] = 2] = "DISABLED";
                                          AuthenticationStatus22222222222[AuthenticationStatus22222222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                                          AuthenticationStatus22222222222[AuthenticationStatus22222222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                                          AuthenticationStatus22222222222[AuthenticationStatus22222222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                                          AuthenticationStatus22222222222[AuthenticationStatus22222222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                                          return AuthenticationStatus22222222222;
                                        })(AuthenticationStatus2222222222 || {});
                                        var AuthorizationExemption2222222222 = /* @__PURE__ */ ((AuthorizationExemption22222222222) => {
                                          AuthorizationExemption22222222222[AuthorizationExemption22222222222["PASSBACK"] = 0] = "PASSBACK";
                                          AuthorizationExemption22222222222[AuthorizationExemption22222222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                                          AuthorizationExemption22222222222[AuthorizationExemption22222222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                                          AuthorizationExemption22222222222[AuthorizationExemption22222222222["LOCKOUT"] = 3] = "LOCKOUT";
                                          AuthorizationExemption22222222222[AuthorizationExemption22222222222["DENY"] = 4] = "DENY";
                                          AuthorizationExemption22222222222[AuthorizationExemption22222222222["VERIFICATION"] = 5] = "VERIFICATION";
                                          AuthorizationExemption22222222222[AuthorizationExemption22222222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                                          return AuthorizationExemption22222222222;
                                        })(AuthorizationExemption2222222222 || {});
                                        var AuthorizationMode2222222222 = /* @__PURE__ */ ((AuthorizationMode22222222222) => {
                                          AuthorizationMode22222222222[AuthorizationMode22222222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                                          AuthorizationMode22222222222[AuthorizationMode22222222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                                          AuthorizationMode22222222222[AuthorizationMode22222222222["DENY_ALL"] = 2] = "DENY_ALL";
                                          AuthorizationMode22222222222[AuthorizationMode22222222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                                          AuthorizationMode22222222222[AuthorizationMode22222222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                                          AuthorizationMode22222222222[AuthorizationMode22222222222["NONE"] = 5] = "NONE";
                                          return AuthorizationMode22222222222;
                                        })(AuthorizationMode2222222222 || {});
                                        var BackupState2222222222 = /* @__PURE__ */ ((BackupState22222222222) => {
                                          BackupState22222222222[BackupState22222222222["IDLE"] = 0] = "IDLE";
                                          BackupState22222222222[BackupState22222222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                                          BackupState22222222222[BackupState22222222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                                          BackupState22222222222[BackupState22222222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                                          BackupState22222222222[BackupState22222222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                                          BackupState22222222222[BackupState22222222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                                          BackupState22222222222[BackupState22222222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                                          return BackupState22222222222;
                                        })(BackupState2222222222 || {});
                                        var BinaryLightingPV2222222222 = /* @__PURE__ */ ((BinaryLightingPV22222222222) => {
                                          BinaryLightingPV22222222222[BinaryLightingPV22222222222["OFF"] = 0] = "OFF";
                                          BinaryLightingPV22222222222[BinaryLightingPV22222222222["ON"] = 1] = "ON";
                                          BinaryLightingPV22222222222[BinaryLightingPV22222222222["WARN"] = 2] = "WARN";
                                          BinaryLightingPV22222222222[BinaryLightingPV22222222222["WARN_OFF"] = 3] = "WARN_OFF";
                                          BinaryLightingPV22222222222[BinaryLightingPV22222222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                                          BinaryLightingPV22222222222[BinaryLightingPV22222222222["STOP"] = 5] = "STOP";
                                          return BinaryLightingPV22222222222;
                                        })(BinaryLightingPV2222222222 || {});
                                        var BinaryPV2222222222 = /* @__PURE__ */ ((BinaryPV22222222222) => {
                                          BinaryPV22222222222[BinaryPV22222222222["INACTIVE"] = 0] = "INACTIVE";
                                          BinaryPV22222222222[BinaryPV22222222222["ACTIVE"] = 1] = "ACTIVE";
                                          return BinaryPV22222222222;
                                        })(BinaryPV2222222222 || {});
                                        var DeviceStatus2222222222 = /* @__PURE__ */ ((DeviceStatus22222222222) => {
                                          DeviceStatus22222222222[DeviceStatus22222222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                                          DeviceStatus22222222222[DeviceStatus22222222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                                          DeviceStatus22222222222[DeviceStatus22222222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                                          DeviceStatus22222222222[DeviceStatus22222222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                                          DeviceStatus22222222222[DeviceStatus22222222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                                          DeviceStatus22222222222[DeviceStatus22222222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                                          return DeviceStatus22222222222;
                                        })(DeviceStatus2222222222 || {});
                                        var DoorAlarmState2222222222 = /* @__PURE__ */ ((DoorAlarmState22222222222) => {
                                          DoorAlarmState22222222222[DoorAlarmState22222222222["NORMAL"] = 0] = "NORMAL";
                                          DoorAlarmState22222222222[DoorAlarmState22222222222["ALARM"] = 1] = "ALARM";
                                          DoorAlarmState22222222222[DoorAlarmState22222222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                                          DoorAlarmState22222222222[DoorAlarmState22222222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                                          DoorAlarmState22222222222[DoorAlarmState22222222222["TAMPER"] = 4] = "TAMPER";
                                          DoorAlarmState22222222222[DoorAlarmState22222222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                                          DoorAlarmState22222222222[DoorAlarmState22222222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                                          DoorAlarmState22222222222[DoorAlarmState22222222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                                          DoorAlarmState22222222222[DoorAlarmState22222222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                                          return DoorAlarmState22222222222;
                                        })(DoorAlarmState2222222222 || {});
                                        var DoorSecuredStatus2222222222 = /* @__PURE__ */ ((DoorSecuredStatus22222222222) => {
                                          DoorSecuredStatus22222222222[DoorSecuredStatus22222222222["SECURED"] = 0] = "SECURED";
                                          DoorSecuredStatus22222222222[DoorSecuredStatus22222222222["UNSECURED"] = 1] = "UNSECURED";
                                          DoorSecuredStatus22222222222[DoorSecuredStatus22222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                          return DoorSecuredStatus22222222222;
                                        })(DoorSecuredStatus2222222222 || {});
                                        var DoorStatus2222222222 = /* @__PURE__ */ ((DoorStatus22222222222) => {
                                          DoorStatus22222222222[DoorStatus22222222222["CLOSED"] = 0] = "CLOSED";
                                          DoorStatus22222222222[DoorStatus22222222222["OPENED"] = 1] = "OPENED";
                                          DoorStatus22222222222[DoorStatus22222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                          DoorStatus22222222222[DoorStatus22222222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                                          DoorStatus22222222222[DoorStatus22222222222["UNUSED"] = 4] = "UNUSED";
                                          DoorStatus22222222222[DoorStatus22222222222["NONE"] = 5] = "NONE";
                                          DoorStatus22222222222[DoorStatus22222222222["CLOSING"] = 6] = "CLOSING";
                                          DoorStatus22222222222[DoorStatus22222222222["OPENING"] = 7] = "OPENING";
                                          DoorStatus22222222222[DoorStatus22222222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                                          DoorStatus22222222222[DoorStatus22222222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                                          return DoorStatus22222222222;
                                        })(DoorStatus2222222222 || {});
                                        var DoorValue2222222222 = /* @__PURE__ */ ((DoorValue22222222222) => {
                                          DoorValue22222222222[DoorValue22222222222["LOCK"] = 0] = "LOCK";
                                          DoorValue22222222222[DoorValue22222222222["UNLOCK"] = 1] = "UNLOCK";
                                          DoorValue22222222222[DoorValue22222222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                                          DoorValue22222222222[DoorValue22222222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                                          return DoorValue22222222222;
                                        })(DoorValue2222222222 || {});
                                        var EngineeringUnits2222222222 = /* @__PURE__ */ ((EngineeringUnits22222222222) => {
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CURRENCY1"] = 105] = "CURRENCY1";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CURRENCY2"] = 106] = "CURRENCY2";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CURRENCY3"] = 107] = "CURRENCY3";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CURRENCY4"] = 108] = "CURRENCY4";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CURRENCY5"] = 109] = "CURRENCY5";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CURRENCY6"] = 110] = "CURRENCY6";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CURRENCY7"] = 111] = "CURRENCY7";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CURRENCY8"] = 112] = "CURRENCY8";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CURRENCY9"] = 113] = "CURRENCY9";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CURRENCY10"] = 114] = "CURRENCY10";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["AMPERES"] = 3] = "AMPERES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DECIBELS"] = 199] = "DECIBELS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["FARADS"] = 170] = "FARADS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["HENRYS"] = 171] = "HENRYS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["OHMS"] = 4] = "OHMS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["OHM_METERS"] = 172] = "OHM_METERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOHMS"] = 122] = "KILOHMS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGOHMS"] = 123] = "MEGOHMS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["SIEMENS"] = 173] = "SIEMENS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["TESLAS"] = 175] = "TESLAS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["VOLTS"] = 5] = "VOLTS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["WEBERS"] = 178] = "WEBERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["JOULES"] = 16] = "JOULES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOJOULES"] = 17] = "KILOJOULES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["BTUS"] = 20] = "BTUS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["THERMS"] = 21] = "THERMS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["TON_HOURS"] = 22] = "TON_HOURS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["NEWTON"] = 153] = "NEWTON";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["HERTZ"] = 27] = "HERTZ";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PER_HOUR"] = 131] = "PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MICROMETERS"] = 194] = "MICROMETERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOMETERS"] = 193] = "KILOMETERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["METERS"] = 31] = "METERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["INCHES"] = 32] = "INCHES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["FEET"] = 33] = "FEET";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CANDELAS"] = 179] = "CANDELAS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["LUMENS"] = 36] = "LUMENS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["LUXES"] = 37] = "LUXES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["GRAMS"] = 195] = "GRAMS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["TONS"] = 41] = "TONS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["WATTS"] = 47] = "WATTS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOWATTS"] = 48] = "KILOWATTS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PASCALS"] = 53] = "PASCALS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIBARS"] = 134] = "MILLIBARS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["BARS"] = 55] = "BARS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["YEARS"] = 67] = "YEARS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MONTHS"] = 68] = "MONTHS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["WEEKS"] = 69] = "WEEKS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DAYS"] = 70] = "DAYS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["HOURS"] = 71] = "HOURS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MINUTES"] = 72] = "MINUTES";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["SECONDS"] = 73] = "SECONDS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLILITERS"] = 197] = "MILLILITERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["LITERS"] = 82] = "LITERS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["US_GALLONS"] = 83] = "US_GALLONS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["NO_UNITS"] = 95] = "NO_UNITS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PERCENT"] = 98] = "PERCENT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PER_SECOND"] = 101] = "PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["RADIANS"] = 103] = "RADIANS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PER_MILLE"] = 207] = "PER_MILLE";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["BECQUERELS"] = 222] = "BECQUERELS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["GRAY"] = 225] = "GRAY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MICROGRAY"] = 227] = "MICROGRAY";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["SIEVERTS"] = 228] = "SIEVERTS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIREMS"] = 47814] = "MILLIREMS";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["PH"] = 234] = "PH";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                                          EngineeringUnits22222222222[EngineeringUnits22222222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                                          return EngineeringUnits22222222222;
                                        })(EngineeringUnits2222222222 || {});
                                        var EscalatorFault2222222222 = /* @__PURE__ */ ((EscalatorFault22222222222) => {
                                          EscalatorFault22222222222[EscalatorFault22222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                          EscalatorFault22222222222[EscalatorFault22222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                          EscalatorFault22222222222[EscalatorFault22222222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                                          EscalatorFault22222222222[EscalatorFault22222222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                                          EscalatorFault22222222222[EscalatorFault22222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                          EscalatorFault22222222222[EscalatorFault22222222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                                          EscalatorFault22222222222[EscalatorFault22222222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                                          EscalatorFault22222222222[EscalatorFault22222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                                          EscalatorFault22222222222[EscalatorFault22222222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                                          return EscalatorFault22222222222;
                                        })(EscalatorFault2222222222 || {});
                                        var EscalatorMode2222222222 = /* @__PURE__ */ ((EscalatorMode22222222222) => {
                                          EscalatorMode22222222222[EscalatorMode22222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                          EscalatorMode22222222222[EscalatorMode22222222222["STOP"] = 1] = "STOP";
                                          EscalatorMode22222222222[EscalatorMode22222222222["UP"] = 2] = "UP";
                                          EscalatorMode22222222222[EscalatorMode22222222222["DOWN"] = 3] = "DOWN";
                                          EscalatorMode22222222222[EscalatorMode22222222222["INSPECTION"] = 4] = "INSPECTION";
                                          EscalatorMode22222222222[EscalatorMode22222222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                                          return EscalatorMode22222222222;
                                        })(EscalatorMode2222222222 || {});
                                        var EscalatorOperationDirection2222222222 = /* @__PURE__ */ ((EscalatorOperationDirection22222222222) => {
                                          EscalatorOperationDirection22222222222[EscalatorOperationDirection22222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                          EscalatorOperationDirection22222222222[EscalatorOperationDirection22222222222["STOPPED"] = 1] = "STOPPED";
                                          EscalatorOperationDirection22222222222[EscalatorOperationDirection22222222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                                          EscalatorOperationDirection22222222222[EscalatorOperationDirection22222222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                                          EscalatorOperationDirection22222222222[EscalatorOperationDirection22222222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                                          EscalatorOperationDirection22222222222[EscalatorOperationDirection22222222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                                          return EscalatorOperationDirection22222222222;
                                        })(EscalatorOperationDirection2222222222 || {});
                                        var EventState2222222222 = /* @__PURE__ */ ((EventState22222222222) => {
                                          EventState22222222222[EventState22222222222["NORMAL"] = 0] = "NORMAL";
                                          EventState22222222222[EventState22222222222["FAULT"] = 1] = "FAULT";
                                          EventState22222222222[EventState22222222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                                          EventState22222222222[EventState22222222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                                          EventState22222222222[EventState22222222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                                          EventState22222222222[EventState22222222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                                          return EventState22222222222;
                                        })(EventState2222222222 || {});
                                        var EventType2222222222 = /* @__PURE__ */ ((EventType22222222222) => {
                                          EventType22222222222[EventType22222222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                                          EventType22222222222[EventType22222222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                                          EventType22222222222[EventType22222222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                                          EventType22222222222[EventType22222222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                                          EventType22222222222[EventType22222222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                                          EventType22222222222[EventType22222222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                                          EventType22222222222[EventType22222222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                                          EventType22222222222[EventType22222222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                                          EventType22222222222[EventType22222222222["EXTENDED"] = 9] = "EXTENDED";
                                          EventType22222222222[EventType22222222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                                          EventType22222222222[EventType22222222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                                          EventType22222222222[EventType22222222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                                          EventType22222222222[EventType22222222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                                          EventType22222222222[EventType22222222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                                          EventType22222222222[EventType22222222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                                          EventType22222222222[EventType22222222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                                          EventType22222222222[EventType22222222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                                          EventType22222222222[EventType22222222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                                          EventType22222222222[EventType22222222222["NONE"] = 20] = "NONE";
                                          EventType22222222222[EventType22222222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                                          EventType22222222222[EventType22222222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                                          return EventType22222222222;
                                        })(EventType2222222222 || {});
                                        var FaultType2222222222 = /* @__PURE__ */ ((FaultType22222222222) => {
                                          FaultType22222222222[FaultType22222222222["NONE"] = 0] = "NONE";
                                          FaultType22222222222[FaultType22222222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                                          FaultType22222222222[FaultType22222222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                                          FaultType22222222222[FaultType22222222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                                          FaultType22222222222[FaultType22222222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                                          FaultType22222222222[FaultType22222222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                                          FaultType22222222222[FaultType22222222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                                          FaultType22222222222[FaultType22222222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                                          return FaultType22222222222;
                                        })(FaultType2222222222 || {});
                                        var FileAccessMethod2222222222 = /* @__PURE__ */ ((FileAccessMethod22222222222) => {
                                          FileAccessMethod22222222222[FileAccessMethod22222222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                                          FileAccessMethod22222222222[FileAccessMethod22222222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                                          return FileAccessMethod22222222222;
                                        })(FileAccessMethod2222222222 || {});
                                        var IPMode2222222222 = /* @__PURE__ */ ((IPMode22222222222) => {
                                          IPMode22222222222[IPMode22222222222["NORMAL"] = 0] = "NORMAL";
                                          IPMode22222222222[IPMode22222222222["FOREIGN"] = 1] = "FOREIGN";
                                          IPMode22222222222[IPMode22222222222["BBMD"] = 2] = "BBMD";
                                          return IPMode22222222222;
                                        })(IPMode2222222222 || {});
                                        var LifeSafetyMode2222222222 = /* @__PURE__ */ ((LifeSafetyMode22222222222) => {
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["OFF"] = 0] = "OFF";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["ON"] = 1] = "ON";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["TEST"] = 2] = "TEST";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["MANNED"] = 3] = "MANNED";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["UNMANNED"] = 4] = "UNMANNED";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["ARMED"] = 5] = "ARMED";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["DISARMED"] = 6] = "DISARMED";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["PREARMED"] = 7] = "PREARMED";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["SLOW"] = 8] = "SLOW";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["FAST"] = 9] = "FAST";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["ENABLED"] = 11] = "ENABLED";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["DISABLED"] = 12] = "DISABLED";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                                          LifeSafetyMode22222222222[LifeSafetyMode22222222222["DEFAULT"] = 14] = "DEFAULT";
                                          return LifeSafetyMode22222222222;
                                        })(LifeSafetyMode2222222222 || {});
                                        var LifeSafetyOperation2222222222 = /* @__PURE__ */ ((LifeSafetyOperation22222222222) => {
                                          LifeSafetyOperation22222222222[LifeSafetyOperation22222222222["NONE"] = 0] = "NONE";
                                          LifeSafetyOperation22222222222[LifeSafetyOperation22222222222["SILENCE"] = 1] = "SILENCE";
                                          LifeSafetyOperation22222222222[LifeSafetyOperation22222222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                                          LifeSafetyOperation22222222222[LifeSafetyOperation22222222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                                          LifeSafetyOperation22222222222[LifeSafetyOperation22222222222["RESET"] = 4] = "RESET";
                                          LifeSafetyOperation22222222222[LifeSafetyOperation22222222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                                          LifeSafetyOperation22222222222[LifeSafetyOperation22222222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                                          LifeSafetyOperation22222222222[LifeSafetyOperation22222222222["UNSILENCE"] = 7] = "UNSILENCE";
                                          LifeSafetyOperation22222222222[LifeSafetyOperation22222222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                                          LifeSafetyOperation22222222222[LifeSafetyOperation22222222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                                          return LifeSafetyOperation22222222222;
                                        })(LifeSafetyOperation2222222222 || {});
                                        var LifeSafetyState2222222222 = /* @__PURE__ */ ((LifeSafetyState22222222222) => {
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["QUIET"] = 0] = "QUIET";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["ALARM"] = 2] = "ALARM";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["FAULT"] = 3] = "FAULT";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["NOT_READY"] = 6] = "NOT_READY";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["ACTIVE"] = 7] = "ACTIVE";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["TAMPER"] = 8] = "TAMPER";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["HOLDUP"] = 13] = "HOLDUP";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["DURESS"] = 14] = "DURESS";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["ABNORMAL"] = 16] = "ABNORMAL";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["DELAYED"] = 18] = "DELAYED";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["BLOCKED"] = 19] = "BLOCKED";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                                          LifeSafetyState22222222222[LifeSafetyState22222222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                                          return LifeSafetyState22222222222;
                                        })(LifeSafetyState2222222222 || {});
                                        var LiftCarDirection2222222222 = /* @__PURE__ */ ((LiftCarDirection22222222222) => {
                                          LiftCarDirection22222222222[LiftCarDirection22222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                          LiftCarDirection22222222222[LiftCarDirection22222222222["NONE"] = 1] = "NONE";
                                          LiftCarDirection22222222222[LiftCarDirection22222222222["STOPPED"] = 2] = "STOPPED";
                                          LiftCarDirection22222222222[LiftCarDirection22222222222["UP"] = 3] = "UP";
                                          LiftCarDirection22222222222[LiftCarDirection22222222222["DOWN"] = 4] = "DOWN";
                                          LiftCarDirection22222222222[LiftCarDirection22222222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                                          return LiftCarDirection22222222222;
                                        })(LiftCarDirection2222222222 || {});
                                        var LiftCarDoorCommand2222222222 = /* @__PURE__ */ ((LiftCarDoorCommand22222222222) => {
                                          LiftCarDoorCommand22222222222[LiftCarDoorCommand22222222222["NONE"] = 0] = "NONE";
                                          LiftCarDoorCommand22222222222[LiftCarDoorCommand22222222222["OPEN"] = 1] = "OPEN";
                                          LiftCarDoorCommand22222222222[LiftCarDoorCommand22222222222["CLOSE"] = 2] = "CLOSE";
                                          return LiftCarDoorCommand22222222222;
                                        })(LiftCarDoorCommand2222222222 || {});
                                        var LiftCarDriveStatus2222222222 = /* @__PURE__ */ ((LiftCarDriveStatus22222222222) => {
                                          LiftCarDriveStatus22222222222[LiftCarDriveStatus22222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                          LiftCarDriveStatus22222222222[LiftCarDriveStatus22222222222["STATIONARY"] = 1] = "STATIONARY";
                                          LiftCarDriveStatus22222222222[LiftCarDriveStatus22222222222["BRAKING"] = 2] = "BRAKING";
                                          LiftCarDriveStatus22222222222[LiftCarDriveStatus22222222222["ACCELERATE"] = 3] = "ACCELERATE";
                                          LiftCarDriveStatus22222222222[LiftCarDriveStatus22222222222["DECELERATE"] = 4] = "DECELERATE";
                                          LiftCarDriveStatus22222222222[LiftCarDriveStatus22222222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                                          LiftCarDriveStatus22222222222[LiftCarDriveStatus22222222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                                          LiftCarDriveStatus22222222222[LiftCarDriveStatus22222222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                                          LiftCarDriveStatus22222222222[LiftCarDriveStatus22222222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                                          LiftCarDriveStatus22222222222[LiftCarDriveStatus22222222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                                          return LiftCarDriveStatus22222222222;
                                        })(LiftCarDriveStatus2222222222 || {});
                                        var LiftCarMode2222222222 = /* @__PURE__ */ ((LiftCarMode22222222222) => {
                                          LiftCarMode22222222222[LiftCarMode22222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                          LiftCarMode22222222222[LiftCarMode22222222222["NORMAL"] = 1] = "NORMAL";
                                          LiftCarMode22222222222[LiftCarMode22222222222["VIP"] = 2] = "VIP";
                                          LiftCarMode22222222222[LiftCarMode22222222222["HOMING"] = 3] = "HOMING";
                                          LiftCarMode22222222222[LiftCarMode22222222222["PARKING"] = 4] = "PARKING";
                                          LiftCarMode22222222222[LiftCarMode22222222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                                          LiftCarMode22222222222[LiftCarMode22222222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                                          LiftCarMode22222222222[LiftCarMode22222222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                                          LiftCarMode22222222222[LiftCarMode22222222222["INSPECTION"] = 8] = "INSPECTION";
                                          LiftCarMode22222222222[LiftCarMode22222222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                                          LiftCarMode22222222222[LiftCarMode22222222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                                          LiftCarMode22222222222[LiftCarMode22222222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                                          LiftCarMode22222222222[LiftCarMode22222222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                                          LiftCarMode22222222222[LiftCarMode22222222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                                          return LiftCarMode22222222222;
                                        })(LiftCarMode2222222222 || {});
                                        var LiftFault2222222222 = /* @__PURE__ */ ((LiftFault22222222222) => {
                                          LiftFault22222222222[LiftFault22222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                          LiftFault22222222222[LiftFault22222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                          LiftFault22222222222[LiftFault22222222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                                          LiftFault22222222222[LiftFault22222222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                                          LiftFault22222222222[LiftFault22222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                          LiftFault22222222222[LiftFault22222222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                                          LiftFault22222222222[LiftFault22222222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                                          LiftFault22222222222[LiftFault22222222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                                          LiftFault22222222222[LiftFault22222222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                                          LiftFault22222222222[LiftFault22222222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                                          LiftFault22222222222[LiftFault22222222222["START_FAILURE"] = 10] = "START_FAILURE";
                                          LiftFault22222222222[LiftFault22222222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                                          LiftFault22222222222[LiftFault22222222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                                          LiftFault22222222222[LiftFault22222222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                                          LiftFault22222222222[LiftFault22222222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                                          LiftFault22222222222[LiftFault22222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                                          LiftFault22222222222[LiftFault22222222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                                          return LiftFault22222222222;
                                        })(LiftFault2222222222 || {});
                                        var LiftGroupMode2222222222 = /* @__PURE__ */ ((LiftGroupMode22222222222) => {
                                          LiftGroupMode22222222222[LiftGroupMode22222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                          LiftGroupMode22222222222[LiftGroupMode22222222222["NORMAL"] = 1] = "NORMAL";
                                          LiftGroupMode22222222222[LiftGroupMode22222222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                                          LiftGroupMode22222222222[LiftGroupMode22222222222["TWO_WAY"] = 3] = "TWO_WAY";
                                          LiftGroupMode22222222222[LiftGroupMode22222222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                                          LiftGroupMode22222222222[LiftGroupMode22222222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                                          LiftGroupMode22222222222[LiftGroupMode22222222222["UP_PEAK"] = 6] = "UP_PEAK";
                                          return LiftGroupMode22222222222;
                                        })(LiftGroupMode2222222222 || {});
                                        var LightingInProgress2222222222 = /* @__PURE__ */ ((LightingInProgress22222222222) => {
                                          LightingInProgress22222222222[LightingInProgress22222222222["IDLE"] = 0] = "IDLE";
                                          LightingInProgress22222222222[LightingInProgress22222222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                                          LightingInProgress22222222222[LightingInProgress22222222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                                          LightingInProgress22222222222[LightingInProgress22222222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                                          LightingInProgress22222222222[LightingInProgress22222222222["OTHER"] = 4] = "OTHER";
                                          return LightingInProgress22222222222;
                                        })(LightingInProgress2222222222 || {});
                                        var LightingOperation2222222222 = /* @__PURE__ */ ((LightingOperation22222222222) => {
                                          LightingOperation22222222222[LightingOperation22222222222["NONE"] = 0] = "NONE";
                                          LightingOperation22222222222[LightingOperation22222222222["FADE_TO"] = 1] = "FADE_TO";
                                          LightingOperation22222222222[LightingOperation22222222222["RAMP_TO"] = 2] = "RAMP_TO";
                                          LightingOperation22222222222[LightingOperation22222222222["STEP_UP"] = 3] = "STEP_UP";
                                          LightingOperation22222222222[LightingOperation22222222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                                          LightingOperation22222222222[LightingOperation22222222222["STEP_ON"] = 5] = "STEP_ON";
                                          LightingOperation22222222222[LightingOperation22222222222["STEP_OFF"] = 6] = "STEP_OFF";
                                          LightingOperation22222222222[LightingOperation22222222222["WARN"] = 7] = "WARN";
                                          LightingOperation22222222222[LightingOperation22222222222["WARN_OFF"] = 8] = "WARN_OFF";
                                          LightingOperation22222222222[LightingOperation22222222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                                          LightingOperation22222222222[LightingOperation22222222222["STOP"] = 10] = "STOP";
                                          return LightingOperation22222222222;
                                        })(LightingOperation2222222222 || {});
                                        var LightingTransition2222222222 = /* @__PURE__ */ ((LightingTransition22222222222) => {
                                          LightingTransition22222222222[LightingTransition22222222222["NONE"] = 0] = "NONE";
                                          LightingTransition22222222222[LightingTransition22222222222["FADE"] = 1] = "FADE";
                                          LightingTransition22222222222[LightingTransition22222222222["RAMP"] = 2] = "RAMP";
                                          return LightingTransition22222222222;
                                        })(LightingTransition2222222222 || {});
                                        var LockStatus2222222222 = /* @__PURE__ */ ((LockStatus22222222222) => {
                                          LockStatus22222222222[LockStatus22222222222["LOCKED"] = 0] = "LOCKED";
                                          LockStatus22222222222[LockStatus22222222222["UNLOCKED"] = 1] = "UNLOCKED";
                                          LockStatus22222222222[LockStatus22222222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                                          LockStatus22222222222[LockStatus22222222222["UNUSED"] = 3] = "UNUSED";
                                          LockStatus22222222222[LockStatus22222222222["UNKNOWN"] = 4] = "UNKNOWN";
                                          return LockStatus22222222222;
                                        })(LockStatus2222222222 || {});
                                        var LoggingType2222222222 = /* @__PURE__ */ ((LoggingType22222222222) => {
                                          LoggingType22222222222[LoggingType22222222222["POLLED"] = 0] = "POLLED";
                                          LoggingType22222222222[LoggingType22222222222["COV"] = 1] = "COV";
                                          LoggingType22222222222[LoggingType22222222222["TRIGGERED"] = 2] = "TRIGGERED";
                                          return LoggingType22222222222;
                                        })(LoggingType2222222222 || {});
                                        var Maintenance2222222222 = /* @__PURE__ */ ((Maintenance22222222222) => {
                                          Maintenance22222222222[Maintenance22222222222["NONE"] = 0] = "NONE";
                                          Maintenance22222222222[Maintenance22222222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                                          Maintenance22222222222[Maintenance22222222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                                          Maintenance22222222222[Maintenance22222222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                                          return Maintenance22222222222;
                                        })(Maintenance2222222222 || {});
                                        var NetworkNumberQuality2222222222 = /* @__PURE__ */ ((NetworkNumberQuality22222222222) => {
                                          NetworkNumberQuality22222222222[NetworkNumberQuality22222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                          NetworkNumberQuality22222222222[NetworkNumberQuality22222222222["LEARNED"] = 1] = "LEARNED";
                                          NetworkNumberQuality22222222222[NetworkNumberQuality22222222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                                          NetworkNumberQuality22222222222[NetworkNumberQuality22222222222["CONFIGURED"] = 3] = "CONFIGURED";
                                          return NetworkNumberQuality22222222222;
                                        })(NetworkNumberQuality2222222222 || {});
                                        var NetworkPortCommand2222222222 = /* @__PURE__ */ ((NetworkPortCommand22222222222) => {
                                          NetworkPortCommand22222222222[NetworkPortCommand22222222222["IDLE"] = 0] = "IDLE";
                                          NetworkPortCommand22222222222[NetworkPortCommand22222222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                                          NetworkPortCommand22222222222[NetworkPortCommand22222222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                                          NetworkPortCommand22222222222[NetworkPortCommand22222222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                                          NetworkPortCommand22222222222[NetworkPortCommand22222222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                                          NetworkPortCommand22222222222[NetworkPortCommand22222222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                                          NetworkPortCommand22222222222[NetworkPortCommand22222222222["DISCONNECT"] = 6] = "DISCONNECT";
                                          NetworkPortCommand22222222222[NetworkPortCommand22222222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                                          return NetworkPortCommand22222222222;
                                        })(NetworkPortCommand2222222222 || {});
                                        var NetworkType2222222222 = /* @__PURE__ */ ((NetworkType22222222222) => {
                                          NetworkType22222222222[NetworkType22222222222["ETHERNET"] = 0] = "ETHERNET";
                                          NetworkType22222222222[NetworkType22222222222["ARCNET"] = 1] = "ARCNET";
                                          NetworkType22222222222[NetworkType22222222222["MSTP"] = 2] = "MSTP";
                                          NetworkType22222222222[NetworkType22222222222["PTP"] = 3] = "PTP";
                                          NetworkType22222222222[NetworkType22222222222["LONTALK"] = 4] = "LONTALK";
                                          NetworkType22222222222[NetworkType22222222222["IPV4"] = 5] = "IPV4";
                                          NetworkType22222222222[NetworkType22222222222["ZIGBEE"] = 6] = "ZIGBEE";
                                          NetworkType22222222222[NetworkType22222222222["VIRTUAL"] = 7] = "VIRTUAL";
                                          NetworkType22222222222[NetworkType22222222222["IPV6"] = 9] = "IPV6";
                                          NetworkType22222222222[NetworkType22222222222["SERIAL"] = 10] = "SERIAL";
                                          return NetworkType22222222222;
                                        })(NetworkType2222222222 || {});
                                        var NodeType2222222222 = /* @__PURE__ */ ((NodeType22222222222) => {
                                          NodeType22222222222[NodeType22222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                          NodeType22222222222[NodeType22222222222["SYSTEM"] = 1] = "SYSTEM";
                                          NodeType22222222222[NodeType22222222222["NETWORK"] = 2] = "NETWORK";
                                          NodeType22222222222[NodeType22222222222["DEVICE"] = 3] = "DEVICE";
                                          NodeType22222222222[NodeType22222222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                                          NodeType22222222222[NodeType22222222222["AREA"] = 5] = "AREA";
                                          NodeType22222222222[NodeType22222222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                                          NodeType22222222222[NodeType22222222222["POINT"] = 7] = "POINT";
                                          NodeType22222222222[NodeType22222222222["COLLECTION"] = 8] = "COLLECTION";
                                          NodeType22222222222[NodeType22222222222["PROPERTY"] = 9] = "PROPERTY";
                                          NodeType22222222222[NodeType22222222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                                          NodeType22222222222[NodeType22222222222["OTHER"] = 11] = "OTHER";
                                          NodeType22222222222[NodeType22222222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                                          NodeType22222222222[NodeType22222222222["BUILDING"] = 13] = "BUILDING";
                                          NodeType22222222222[NodeType22222222222["FLOOR"] = 14] = "FLOOR";
                                          NodeType22222222222[NodeType22222222222["SECTION"] = 15] = "SECTION";
                                          NodeType22222222222[NodeType22222222222["MODULE"] = 16] = "MODULE";
                                          NodeType22222222222[NodeType22222222222["TREE"] = 17] = "TREE";
                                          NodeType22222222222[NodeType22222222222["MEMBER"] = 18] = "MEMBER";
                                          NodeType22222222222[NodeType22222222222["PROTOCOL"] = 19] = "PROTOCOL";
                                          NodeType22222222222[NodeType22222222222["ROOM"] = 20] = "ROOM";
                                          NodeType22222222222[NodeType22222222222["ZONE"] = 21] = "ZONE";
                                          return NodeType22222222222;
                                        })(NodeType2222222222 || {});
                                        var NotifyType2222222222 = /* @__PURE__ */ ((NotifyType22222222222) => {
                                          NotifyType22222222222[NotifyType22222222222["ALARM"] = 0] = "ALARM";
                                          NotifyType22222222222[NotifyType22222222222["EVENT"] = 1] = "EVENT";
                                          NotifyType22222222222[NotifyType22222222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                                          return NotifyType22222222222;
                                        })(NotifyType2222222222 || {});
                                        var ObjectType2222222222 = /* @__PURE__ */ ((ObjectType22222222222) => {
                                          ObjectType22222222222[ObjectType22222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                          ObjectType22222222222[ObjectType22222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                          ObjectType22222222222[ObjectType22222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                          ObjectType22222222222[ObjectType22222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                          ObjectType22222222222[ObjectType22222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                          ObjectType22222222222[ObjectType22222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                          ObjectType22222222222[ObjectType22222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                          ObjectType22222222222[ObjectType22222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                          ObjectType22222222222[ObjectType22222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                          ObjectType22222222222[ObjectType22222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                          ObjectType22222222222[ObjectType22222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["AVERAGING"] = 18] = "AVERAGING";
                                          ObjectType22222222222[ObjectType22222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                          ObjectType22222222222[ObjectType22222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                          ObjectType22222222222[ObjectType22222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                          ObjectType22222222222[ObjectType22222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["CALENDAR"] = 6] = "CALENDAR";
                                          ObjectType22222222222[ObjectType22222222222["CHANNEL"] = 53] = "CHANNEL";
                                          ObjectType22222222222[ObjectType22222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["COMMAND"] = 7] = "COMMAND";
                                          ObjectType22222222222[ObjectType22222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                          ObjectType22222222222[ObjectType22222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["DEVICE"] = 8] = "DEVICE";
                                          ObjectType22222222222[ObjectType22222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                          ObjectType22222222222[ObjectType22222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                          ObjectType22222222222[ObjectType22222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                          ObjectType22222222222[ObjectType22222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                          ObjectType22222222222[ObjectType22222222222["FILE"] = 10] = "FILE";
                                          ObjectType22222222222[ObjectType22222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                          ObjectType22222222222[ObjectType22222222222["GROUP"] = 11] = "GROUP";
                                          ObjectType22222222222[ObjectType22222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                          ObjectType22222222222[ObjectType22222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                          ObjectType22222222222[ObjectType22222222222["LIFT"] = 59] = "LIFT";
                                          ObjectType22222222222[ObjectType22222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                          ObjectType22222222222[ObjectType22222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                          ObjectType22222222222[ObjectType22222222222["LOOP"] = 12] = "LOOP";
                                          ObjectType22222222222[ObjectType22222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                          ObjectType22222222222[ObjectType22222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                          ObjectType22222222222[ObjectType22222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                          ObjectType22222222222[ObjectType22222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                          ObjectType22222222222[ObjectType22222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                          ObjectType22222222222[ObjectType22222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                          ObjectType22222222222[ObjectType22222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["PROGRAM"] = 16] = "PROGRAM";
                                          ObjectType22222222222[ObjectType22222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                          ObjectType22222222222[ObjectType22222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                          ObjectType22222222222[ObjectType22222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                          ObjectType22222222222[ObjectType22222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                          ObjectType22222222222[ObjectType22222222222["TIMER"] = 31] = "TIMER";
                                          ObjectType22222222222[ObjectType22222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                          ObjectType22222222222[ObjectType22222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                          return ObjectType22222222222;
                                        })(ObjectType2222222222 || {});
                                        var Polarity2222222222 = /* @__PURE__ */ ((Polarity22222222222) => {
                                          Polarity22222222222[Polarity22222222222["NORMAL"] = 0] = "NORMAL";
                                          Polarity22222222222[Polarity22222222222["REVERSE"] = 1] = "REVERSE";
                                          return Polarity22222222222;
                                        })(Polarity2222222222 || {});
                                        var ProgramError2222222222 = /* @__PURE__ */ ((ProgramError22222222222) => {
                                          ProgramError22222222222[ProgramError22222222222["NORMAL"] = 0] = "NORMAL";
                                          ProgramError22222222222[ProgramError22222222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                                          ProgramError22222222222[ProgramError22222222222["INTERNAL"] = 2] = "INTERNAL";
                                          ProgramError22222222222[ProgramError22222222222["PROGRAM"] = 3] = "PROGRAM";
                                          ProgramError22222222222[ProgramError22222222222["OTHER"] = 4] = "OTHER";
                                          return ProgramError22222222222;
                                        })(ProgramError2222222222 || {});
                                        var ProgramRequest2222222222 = /* @__PURE__ */ ((ProgramRequest22222222222) => {
                                          ProgramRequest22222222222[ProgramRequest22222222222["READY"] = 0] = "READY";
                                          ProgramRequest22222222222[ProgramRequest22222222222["LOAD"] = 1] = "LOAD";
                                          ProgramRequest22222222222[ProgramRequest22222222222["RUN"] = 2] = "RUN";
                                          ProgramRequest22222222222[ProgramRequest22222222222["HALT"] = 3] = "HALT";
                                          ProgramRequest22222222222[ProgramRequest22222222222["RESTART"] = 4] = "RESTART";
                                          ProgramRequest22222222222[ProgramRequest22222222222["UNLOAD"] = 5] = "UNLOAD";
                                          return ProgramRequest22222222222;
                                        })(ProgramRequest2222222222 || {});
                                        var ProgramState2222222222 = /* @__PURE__ */ ((ProgramState22222222222) => {
                                          ProgramState22222222222[ProgramState22222222222["IDLE"] = 0] = "IDLE";
                                          ProgramState22222222222[ProgramState22222222222["LOADING"] = 1] = "LOADING";
                                          ProgramState22222222222[ProgramState22222222222["RUNNING"] = 2] = "RUNNING";
                                          ProgramState22222222222[ProgramState22222222222["WAITING"] = 3] = "WAITING";
                                          ProgramState22222222222[ProgramState22222222222["HALTED"] = 4] = "HALTED";
                                          ProgramState22222222222[ProgramState22222222222["UNLOADING"] = 5] = "UNLOADING";
                                          return ProgramState22222222222;
                                        })(ProgramState2222222222 || {});
                                        var PropertyIdentifier2222222222 = /* @__PURE__ */ ((PropertyIdentifier22222222222) => {
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACTION"] = 2] = "ACTION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ALL"] = 8] = "ALL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ARCHIVE"] = 13] = "ARCHIVE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BIAS"] = 14] = "BIAS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BIT_MASK"] = 342] = "BIT_MASK";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CAR_MODE"] = 456] = "CAR_MODE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["COMMAND"] = 417] = "COMMAND";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["COUNT"] = 177] = "COUNT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DATE_LIST"] = 23] = "DATE_LIST";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DEADBAND"] = 25] = "DEADBAND";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ENABLE"] = 133] = "ENABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["GROUP_ID"] = 465] = "GROUP_ID";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["IS_UTC"] = 344] = "IS_UTC";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["KEY_SETS"] = 330] = "KEY_SETS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOCATION"] = 58] = "LOCATION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOCKOUT"] = 282] = "LOCKOUT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MEMBERS"] = 286] = "MEMBERS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MODE"] = 160] = "MODE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OPTIONAL"] = 80] = "OPTIONAL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["POLARITY"] = 84] = "POLARITY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["POWER"] = 384] = "POWER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["POWER_MODE"] = 479] = "POWER_MODE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PRESCALE"] = 185] = "PRESCALE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PRIORITY"] = 86] = "PRIORITY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["READ_ONLY"] = 99] = "READ_ONLY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["RELIABILITY"] = 103] = "RELIABILITY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["REPRESENTS"] = 491] = "REPRESENTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["REQUIRED"] = 105] = "REQUIRED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["RESOLUTION"] = 106] = "RESOLUTION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SCALE"] = 187] = "SCALE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SETPOINT"] = 108] = "SETPOINT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SETTING"] = 162] = "SETTING";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SILENCED"] = 163] = "SILENCED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["START_TIME"] = 142] = "START_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["STOP_TIME"] = 143] = "STOP_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TAGS"] = 486] = "TAGS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TRANSITION"] = 385] = "TRANSITION";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["TRIGGER"] = 205] = "TRIGGER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["UNITS"] = 117] = "UNITS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["USER_NAME"] = 317] = "USER_NAME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["USER_TYPE"] = 318] = "USER_TYPE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["VALUE_SET"] = 191] = "VALUE_SET";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                                          PropertyIdentifier22222222222[PropertyIdentifier22222222222["ZONE_TO"] = 321] = "ZONE_TO";
                                          return PropertyIdentifier22222222222;
                                        })(PropertyIdentifier2222222222 || {});
                                        var ProtocolLevel2222222222 = /* @__PURE__ */ ((ProtocolLevel22222222222) => {
                                          ProtocolLevel22222222222[ProtocolLevel22222222222["PHYSICAL"] = 0] = "PHYSICAL";
                                          ProtocolLevel22222222222[ProtocolLevel22222222222["PROTOCOL"] = 1] = "PROTOCOL";
                                          ProtocolLevel22222222222[ProtocolLevel22222222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                                          ProtocolLevel22222222222[ProtocolLevel22222222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                                          return ProtocolLevel22222222222;
                                        })(ProtocolLevel2222222222 || {});
                                        var Relationship2222222222 = /* @__PURE__ */ ((Relationship22222222222) => {
                                          Relationship22222222222[Relationship22222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                          Relationship22222222222[Relationship22222222222["DEFAULT"] = 1] = "DEFAULT";
                                          Relationship22222222222[Relationship22222222222["CONTAINS"] = 2] = "CONTAINS";
                                          Relationship22222222222[Relationship22222222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                                          Relationship22222222222[Relationship22222222222["USES"] = 4] = "USES";
                                          Relationship22222222222[Relationship22222222222["USED_BY"] = 5] = "USED_BY";
                                          Relationship22222222222[Relationship22222222222["COMMANDS"] = 6] = "COMMANDS";
                                          Relationship22222222222[Relationship22222222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                                          Relationship22222222222[Relationship22222222222["ADJUSTS"] = 8] = "ADJUSTS";
                                          Relationship22222222222[Relationship22222222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                                          Relationship22222222222[Relationship22222222222["INGRESS"] = 10] = "INGRESS";
                                          Relationship22222222222[Relationship22222222222["EGRESS"] = 11] = "EGRESS";
                                          Relationship22222222222[Relationship22222222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                                          Relationship22222222222[Relationship22222222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                                          Relationship22222222222[Relationship22222222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                                          Relationship22222222222[Relationship22222222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                                          Relationship22222222222[Relationship22222222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                                          Relationship22222222222[Relationship22222222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                                          Relationship22222222222[Relationship22222222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                                          Relationship22222222222[Relationship22222222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                                          Relationship22222222222[Relationship22222222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                                          Relationship22222222222[Relationship22222222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                                          Relationship22222222222[Relationship22222222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                                          Relationship22222222222[Relationship22222222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                                          Relationship22222222222[Relationship22222222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                                          Relationship22222222222[Relationship22222222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                                          Relationship22222222222[Relationship22222222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                                          Relationship22222222222[Relationship22222222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                                          Relationship22222222222[Relationship22222222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                                          Relationship22222222222[Relationship22222222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                                          return Relationship22222222222;
                                        })(Relationship2222222222 || {});
                                        var Reliability2222222222 = /* @__PURE__ */ ((Reliability22222222222) => {
                                          Reliability22222222222[Reliability22222222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                                          Reliability22222222222[Reliability22222222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                                          Reliability22222222222[Reliability22222222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                                          Reliability22222222222[Reliability22222222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                                          Reliability22222222222[Reliability22222222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                                          Reliability22222222222[Reliability22222222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                                          Reliability22222222222[Reliability22222222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                                          Reliability22222222222[Reliability22222222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                                          Reliability22222222222[Reliability22222222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                                          Reliability22222222222[Reliability22222222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                                          Reliability22222222222[Reliability22222222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                                          Reliability22222222222[Reliability22222222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                                          Reliability22222222222[Reliability22222222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                                          Reliability22222222222[Reliability22222222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                                          Reliability22222222222[Reliability22222222222["TRIPPED"] = 15] = "TRIPPED";
                                          Reliability22222222222[Reliability22222222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                                          Reliability22222222222[Reliability22222222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                                          Reliability22222222222[Reliability22222222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                                          Reliability22222222222[Reliability22222222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                                          Reliability22222222222[Reliability22222222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                                          Reliability22222222222[Reliability22222222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                                          Reliability22222222222[Reliability22222222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                                          Reliability22222222222[Reliability22222222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                                          Reliability22222222222[Reliability22222222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                                          return Reliability22222222222;
                                        })(Reliability2222222222 || {});
                                        var RestartReason2222222222 = /* @__PURE__ */ ((RestartReason22222222222) => {
                                          RestartReason22222222222[RestartReason22222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                          RestartReason22222222222[RestartReason22222222222["COLDSTART"] = 1] = "COLDSTART";
                                          RestartReason22222222222[RestartReason22222222222["WARMSTART"] = 2] = "WARMSTART";
                                          RestartReason22222222222[RestartReason22222222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                                          RestartReason22222222222[RestartReason22222222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                                          RestartReason22222222222[RestartReason22222222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                                          RestartReason22222222222[RestartReason22222222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                                          RestartReason22222222222[RestartReason22222222222["SUSPENDED"] = 7] = "SUSPENDED";
                                          RestartReason22222222222[RestartReason22222222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                                          return RestartReason22222222222;
                                        })(RestartReason2222222222 || {});
                                        var SecurityLevel2222222222 = /* @__PURE__ */ ((SecurityLevel22222222222) => {
                                          SecurityLevel22222222222[SecurityLevel22222222222["INCAPABLE"] = 0] = "INCAPABLE";
                                          SecurityLevel22222222222[SecurityLevel22222222222["PLAIN"] = 1] = "PLAIN";
                                          SecurityLevel22222222222[SecurityLevel22222222222["SIGNED"] = 2] = "SIGNED";
                                          SecurityLevel22222222222[SecurityLevel22222222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                                          SecurityLevel22222222222[SecurityLevel22222222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                                          SecurityLevel22222222222[SecurityLevel22222222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                                          return SecurityLevel22222222222;
                                        })(SecurityLevel2222222222 || {});
                                        var SecurityPolicy2222222222 = /* @__PURE__ */ ((SecurityPolicy22222222222) => {
                                          SecurityPolicy22222222222[SecurityPolicy22222222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                                          SecurityPolicy22222222222[SecurityPolicy22222222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                                          SecurityPolicy22222222222[SecurityPolicy22222222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                                          SecurityPolicy22222222222[SecurityPolicy22222222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                                          return SecurityPolicy22222222222;
                                        })(SecurityPolicy2222222222 || {});
                                        var Segmentation2222222222 = /* @__PURE__ */ ((Segmentation22222222222) => {
                                          Segmentation22222222222[Segmentation22222222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                                          Segmentation22222222222[Segmentation22222222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                                          Segmentation22222222222[Segmentation22222222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                                          Segmentation22222222222[Segmentation22222222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                                          return Segmentation22222222222;
                                        })(Segmentation2222222222 || {});
                                        var ShedState2222222222 = /* @__PURE__ */ ((ShedState22222222222) => {
                                          ShedState22222222222[ShedState22222222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                                          ShedState22222222222[ShedState22222222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                                          ShedState22222222222[ShedState22222222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                                          ShedState22222222222[ShedState22222222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                                          return ShedState22222222222;
                                        })(ShedState2222222222 || {});
                                        var SilencedState2222222222 = /* @__PURE__ */ ((SilencedState22222222222) => {
                                          SilencedState22222222222[SilencedState22222222222["UNSILENCED"] = 0] = "UNSILENCED";
                                          SilencedState22222222222[SilencedState22222222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                                          SilencedState22222222222[SilencedState22222222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                                          SilencedState22222222222[SilencedState22222222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                                          return SilencedState22222222222;
                                        })(SilencedState2222222222 || {});
                                        var TimerState2222222222 = /* @__PURE__ */ ((TimerState22222222222) => {
                                          TimerState22222222222[TimerState22222222222["IDLE"] = 0] = "IDLE";
                                          TimerState22222222222[TimerState22222222222["RUNNING"] = 1] = "RUNNING";
                                          TimerState22222222222[TimerState22222222222["EXPIRED"] = 2] = "EXPIRED";
                                          return TimerState22222222222;
                                        })(TimerState2222222222 || {});
                                        var TimerTransition2222222222 = /* @__PURE__ */ ((TimerTransition22222222222) => {
                                          TimerTransition22222222222[TimerTransition22222222222["NONE"] = 0] = "NONE";
                                          TimerTransition22222222222[TimerTransition22222222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                                          TimerTransition22222222222[TimerTransition22222222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                                          TimerTransition22222222222[TimerTransition22222222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                                          TimerTransition22222222222[TimerTransition22222222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                                          TimerTransition22222222222[TimerTransition22222222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                                          TimerTransition22222222222[TimerTransition22222222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                                          TimerTransition22222222222[TimerTransition22222222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                                          return TimerTransition22222222222;
                                        })(TimerTransition2222222222 || {});
                                        var VTClass2222222222 = /* @__PURE__ */ ((VTClass22222222222) => {
                                          VTClass22222222222[VTClass22222222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                                          VTClass22222222222[VTClass22222222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                                          VTClass22222222222[VTClass22222222222["DEC_VT52"] = 2] = "DEC_VT52";
                                          VTClass22222222222[VTClass22222222222["DEC_VT100"] = 3] = "DEC_VT100";
                                          VTClass22222222222[VTClass22222222222["DEC_VT220"] = 4] = "DEC_VT220";
                                          VTClass22222222222[VTClass22222222222["HP_700_94"] = 5] = "HP_700_94";
                                          VTClass22222222222[VTClass22222222222["IBM_3130"] = 6] = "IBM_3130";
                                          return VTClass22222222222;
                                        })(VTClass2222222222 || {});
                                        var WriteStatus2222222222 = /* @__PURE__ */ ((WriteStatus22222222222) => {
                                          WriteStatus22222222222[WriteStatus22222222222["IDLE"] = 0] = "IDLE";
                                          WriteStatus22222222222[WriteStatus22222222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                                          WriteStatus22222222222[WriteStatus22222222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                                          WriteStatus22222222222[WriteStatus22222222222["FAILED"] = 3] = "FAILED";
                                          return WriteStatus22222222222;
                                        })(WriteStatus2222222222 || {});
                                        var DaysOfWeek2222222222 = /* @__PURE__ */ ((DaysOfWeek22222222222) => {
                                          DaysOfWeek22222222222[DaysOfWeek22222222222["MONDAY"] = 0] = "MONDAY";
                                          DaysOfWeek22222222222[DaysOfWeek22222222222["TUESDAY"] = 1] = "TUESDAY";
                                          DaysOfWeek22222222222[DaysOfWeek22222222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                                          DaysOfWeek22222222222[DaysOfWeek22222222222["THURSDAY"] = 3] = "THURSDAY";
                                          DaysOfWeek22222222222[DaysOfWeek22222222222["FRIDAY"] = 4] = "FRIDAY";
                                          DaysOfWeek22222222222[DaysOfWeek22222222222["SATURDAY"] = 5] = "SATURDAY";
                                          DaysOfWeek22222222222[DaysOfWeek22222222222["SUNDAY"] = 6] = "SUNDAY";
                                          return DaysOfWeek22222222222;
                                        })(DaysOfWeek2222222222 || {});
                                        var EventTransitionBits2222222222 = /* @__PURE__ */ ((EventTransitionBits22222222222) => {
                                          EventTransitionBits22222222222[EventTransitionBits22222222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                                          EventTransitionBits22222222222[EventTransitionBits22222222222["TO_FAULT"] = 1] = "TO_FAULT";
                                          EventTransitionBits22222222222[EventTransitionBits22222222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                                          return EventTransitionBits22222222222;
                                        })(EventTransitionBits2222222222 || {});
                                        var LimitEnable2222222222 = /* @__PURE__ */ ((LimitEnable22222222222) => {
                                          LimitEnable22222222222[LimitEnable22222222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                                          LimitEnable22222222222[LimitEnable22222222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                                          return LimitEnable22222222222;
                                        })(LimitEnable2222222222 || {});
                                        var LogStatus2222222222 = /* @__PURE__ */ ((LogStatus22222222222) => {
                                          LogStatus22222222222[LogStatus22222222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                                          LogStatus22222222222[LogStatus22222222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                                          LogStatus22222222222[LogStatus22222222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                                          return LogStatus22222222222;
                                        })(LogStatus2222222222 || {});
                                        var ObjectTypesSupported2222222222 = /* @__PURE__ */ ((ObjectTypesSupported22222222222) => {
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["CALENDAR"] = 6] = "CALENDAR";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["COMMAND"] = 7] = "COMMAND";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["DEVICE"] = 8] = "DEVICE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["FILE"] = 10] = "FILE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["GROUP"] = 11] = "GROUP";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["LOOP"] = 12] = "LOOP";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["PROGRAM"] = 16] = "PROGRAM";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["AVERAGING"] = 18] = "AVERAGING";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["TIMER"] = 31] = "TIMER";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["CHANNEL"] = 53] = "CHANNEL";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                          ObjectTypesSupported22222222222[ObjectTypesSupported22222222222["LIFT"] = 59] = "LIFT";
                                          return ObjectTypesSupported22222222222;
                                        })(ObjectTypesSupported2222222222 || {});
                                        var ResultFlags2222222222 = /* @__PURE__ */ ((ResultFlags22222222222) => {
                                          ResultFlags22222222222[ResultFlags22222222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                                          ResultFlags22222222222[ResultFlags22222222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                                          ResultFlags22222222222[ResultFlags22222222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                                          return ResultFlags22222222222;
                                        })(ResultFlags2222222222 || {});
                                        var ServicesSupported2222222222 = /* @__PURE__ */ ((ServicesSupported22222222222) => {
                                          ServicesSupported22222222222[ServicesSupported22222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                          ServicesSupported22222222222[ServicesSupported22222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                          ServicesSupported22222222222[ServicesSupported22222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                          ServicesSupported22222222222[ServicesSupported22222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                          ServicesSupported22222222222[ServicesSupported22222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                          ServicesSupported22222222222[ServicesSupported22222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                          ServicesSupported22222222222[ServicesSupported22222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                          ServicesSupported22222222222[ServicesSupported22222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                          ServicesSupported22222222222[ServicesSupported22222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                          ServicesSupported22222222222[ServicesSupported22222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                          ServicesSupported22222222222[ServicesSupported22222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                          ServicesSupported22222222222[ServicesSupported22222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                          ServicesSupported22222222222[ServicesSupported22222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                          ServicesSupported22222222222[ServicesSupported22222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                          ServicesSupported22222222222[ServicesSupported22222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                          ServicesSupported22222222222[ServicesSupported22222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["VT_DATA"] = 23] = "VT_DATA";
                                          ServicesSupported22222222222[ServicesSupported22222222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                                          ServicesSupported22222222222[ServicesSupported22222222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                                          ServicesSupported22222222222[ServicesSupported22222222222["I_AM"] = 26] = "I_AM";
                                          ServicesSupported22222222222[ServicesSupported22222222222["I_HAVE"] = 27] = "I_HAVE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                                          ServicesSupported22222222222[ServicesSupported22222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                          ServicesSupported22222222222[ServicesSupported22222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                          ServicesSupported22222222222[ServicesSupported22222222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                                          ServicesSupported22222222222[ServicesSupported22222222222["WHO_HAS"] = 33] = "WHO_HAS";
                                          ServicesSupported22222222222[ServicesSupported22222222222["WHO_IS"] = 34] = "WHO_IS";
                                          ServicesSupported22222222222[ServicesSupported22222222222["READ_RANGE"] = 35] = "READ_RANGE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                                          ServicesSupported22222222222[ServicesSupported22222222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                                          ServicesSupported22222222222[ServicesSupported22222222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                                          ServicesSupported22222222222[ServicesSupported22222222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                                          ServicesSupported22222222222[ServicesSupported22222222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                                          ServicesSupported22222222222[ServicesSupported22222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                          ServicesSupported22222222222[ServicesSupported22222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                          return ServicesSupported22222222222;
                                        })(ServicesSupported2222222222 || {});
                                        var StatusFlags2222222222 = /* @__PURE__ */ ((StatusFlags22222222222) => {
                                          StatusFlags22222222222[StatusFlags22222222222["IN_ALARM"] = 0] = "IN_ALARM";
                                          StatusFlags22222222222[StatusFlags22222222222["FAULT"] = 1] = "FAULT";
                                          StatusFlags22222222222[StatusFlags22222222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                                          StatusFlags22222222222[StatusFlags22222222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                                          return StatusFlags22222222222;
                                        })(StatusFlags2222222222 || {});
                                        var ApplicationTag2222222222 = /* @__PURE__ */ ((ApplicationTag22222222222) => {
                                          ApplicationTag22222222222[ApplicationTag22222222222["NULL"] = 0] = "NULL";
                                          ApplicationTag22222222222[ApplicationTag22222222222["BOOLEAN"] = 1] = "BOOLEAN";
                                          ApplicationTag22222222222[ApplicationTag22222222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                                          ApplicationTag22222222222[ApplicationTag22222222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                                          ApplicationTag22222222222[ApplicationTag22222222222["REAL"] = 4] = "REAL";
                                          ApplicationTag22222222222[ApplicationTag22222222222["DOUBLE"] = 5] = "DOUBLE";
                                          ApplicationTag22222222222[ApplicationTag22222222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                                          ApplicationTag22222222222[ApplicationTag22222222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                                          ApplicationTag22222222222[ApplicationTag22222222222["BIT_STRING"] = 8] = "BIT_STRING";
                                          ApplicationTag22222222222[ApplicationTag22222222222["ENUMERATED"] = 9] = "ENUMERATED";
                                          ApplicationTag22222222222[ApplicationTag22222222222["DATE"] = 10] = "DATE";
                                          ApplicationTag22222222222[ApplicationTag22222222222["TIME"] = 11] = "TIME";
                                          ApplicationTag22222222222[ApplicationTag22222222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                                          ApplicationTag22222222222[ApplicationTag22222222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                                          ApplicationTag22222222222[ApplicationTag22222222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                                          ApplicationTag22222222222[ApplicationTag22222222222["DATERANGE"] = 102] = "DATERANGE";
                                          ApplicationTag22222222222[ApplicationTag22222222222["DATETIME"] = 103] = "DATETIME";
                                          ApplicationTag22222222222[ApplicationTag22222222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                                          ApplicationTag22222222222[ApplicationTag22222222222["ERROR"] = 105] = "ERROR";
                                          ApplicationTag22222222222[ApplicationTag22222222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                                          ApplicationTag22222222222[ApplicationTag22222222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                                          ApplicationTag22222222222[ApplicationTag22222222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                                          ApplicationTag22222222222[ApplicationTag22222222222["DESTINATION"] = 109] = "DESTINATION";
                                          ApplicationTag22222222222[ApplicationTag22222222222["RECIPIENT"] = 110] = "RECIPIENT";
                                          ApplicationTag22222222222[ApplicationTag22222222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                                          ApplicationTag22222222222[ApplicationTag22222222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                                          ApplicationTag22222222222[ApplicationTag22222222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                                          ApplicationTag22222222222[ApplicationTag22222222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                                          ApplicationTag22222222222[ApplicationTag22222222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                                          ApplicationTag22222222222[ApplicationTag22222222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                                          ApplicationTag22222222222[ApplicationTag22222222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                                          ApplicationTag22222222222[ApplicationTag22222222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                                          ApplicationTag22222222222[ApplicationTag22222222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                                          ApplicationTag22222222222[ApplicationTag22222222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                                          return ApplicationTag22222222222;
                                        })(ApplicationTag2222222222 || {});
                                        var ApplicationTagName2222222222 = invertEnum2222222222(
                                          ApplicationTag2222222222
                                        );
                                        var BvlcResultFormat2222222222 = /* @__PURE__ */ ((BvlcResultFormat22222222222) => {
                                          BvlcResultFormat22222222222[BvlcResultFormat22222222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                                          BvlcResultFormat22222222222[BvlcResultFormat22222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                          BvlcResultFormat22222222222[BvlcResultFormat22222222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                          BvlcResultFormat22222222222[BvlcResultFormat22222222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                                          BvlcResultFormat22222222222[BvlcResultFormat22222222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                                          BvlcResultFormat22222222222[BvlcResultFormat22222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                                          BvlcResultFormat22222222222[BvlcResultFormat22222222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                                          return BvlcResultFormat22222222222;
                                        })(BvlcResultFormat2222222222 || {});
                                        var BvlcResultPurpose2222222222 = /* @__PURE__ */ ((BvlcResultPurpose22222222222) => {
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                                          BvlcResultPurpose22222222222[BvlcResultPurpose22222222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                                          return BvlcResultPurpose22222222222;
                                        })(BvlcResultPurpose2222222222 || {});
                                        var CharacterStringEncoding2222222222 = /* @__PURE__ */ ((CharacterStringEncoding22222222222) => {
                                          CharacterStringEncoding22222222222[CharacterStringEncoding22222222222["UTF_8"] = 0] = "UTF_8";
                                          CharacterStringEncoding22222222222[CharacterStringEncoding22222222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                                          CharacterStringEncoding22222222222[CharacterStringEncoding22222222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                                          CharacterStringEncoding22222222222[CharacterStringEncoding22222222222["UCS_4"] = 3] = "UCS_4";
                                          CharacterStringEncoding22222222222[CharacterStringEncoding22222222222["UCS_2"] = 4] = "UCS_2";
                                          CharacterStringEncoding22222222222[CharacterStringEncoding22222222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                                          return CharacterStringEncoding22222222222;
                                        })(CharacterStringEncoding2222222222 || {});
                                        var CovType2222222222 = /* @__PURE__ */ ((CovType22222222222) => {
                                          CovType22222222222[CovType22222222222["REAL"] = 0] = "REAL";
                                          CovType22222222222[CovType22222222222["BIT_STRING"] = 1] = "BIT_STRING";
                                          return CovType22222222222;
                                        })(CovType2222222222 || {});
                                        var EnableDisable2222222222 = /* @__PURE__ */ ((EnableDisable22222222222) => {
                                          EnableDisable22222222222[EnableDisable22222222222["ENABLE"] = 0] = "ENABLE";
                                          EnableDisable22222222222[EnableDisable22222222222["DISABLE"] = 1] = "DISABLE";
                                          EnableDisable22222222222[EnableDisable22222222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                                          return EnableDisable22222222222;
                                        })(EnableDisable2222222222 || {});
                                        var MaxApduLengthAccepted2222222222 = /* @__PURE__ */ ((MaxApduLengthAccepted22222222222) => {
                                          MaxApduLengthAccepted22222222222[MaxApduLengthAccepted22222222222["OCTETS_50"] = 0] = "OCTETS_50";
                                          MaxApduLengthAccepted22222222222[MaxApduLengthAccepted22222222222["OCTETS_128"] = 1] = "OCTETS_128";
                                          MaxApduLengthAccepted22222222222[MaxApduLengthAccepted22222222222["OCTETS_206"] = 2] = "OCTETS_206";
                                          MaxApduLengthAccepted22222222222[MaxApduLengthAccepted22222222222["OCTETS_480"] = 3] = "OCTETS_480";
                                          MaxApduLengthAccepted22222222222[MaxApduLengthAccepted22222222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                                          MaxApduLengthAccepted22222222222[MaxApduLengthAccepted22222222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                                          return MaxApduLengthAccepted22222222222;
                                        })(MaxApduLengthAccepted2222222222 || {});
                                        var MaxSegmentsAccepted2222222222 = /* @__PURE__ */ ((MaxSegmentsAccepted22222222222) => {
                                          MaxSegmentsAccepted22222222222[MaxSegmentsAccepted22222222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                                          MaxSegmentsAccepted22222222222[MaxSegmentsAccepted22222222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                                          MaxSegmentsAccepted22222222222[MaxSegmentsAccepted22222222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                                          MaxSegmentsAccepted22222222222[MaxSegmentsAccepted22222222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                                          MaxSegmentsAccepted22222222222[MaxSegmentsAccepted22222222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                                          MaxSegmentsAccepted22222222222[MaxSegmentsAccepted22222222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                                          MaxSegmentsAccepted22222222222[MaxSegmentsAccepted22222222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                                          MaxSegmentsAccepted22222222222[MaxSegmentsAccepted22222222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                                          return MaxSegmentsAccepted22222222222;
                                        })(MaxSegmentsAccepted2222222222 || {});
                                        var NetworkLayerMessageType2222222222 = /* @__PURE__ */ ((NetworkLayerMessageType22222222222) => {
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                                          NetworkLayerMessageType22222222222[NetworkLayerMessageType22222222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                                          return NetworkLayerMessageType22222222222;
                                        })(NetworkLayerMessageType2222222222 || {});
                                        var NpduControlBit2222222222 = /* @__PURE__ */ ((NpduControlBit22222222222) => {
                                          NpduControlBit22222222222[NpduControlBit22222222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                                          NpduControlBit22222222222[NpduControlBit22222222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                                          NpduControlBit22222222222[NpduControlBit22222222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                                          NpduControlBit22222222222[NpduControlBit22222222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                                          return NpduControlBit22222222222;
                                        })(NpduControlBit2222222222 || {});
                                        var NpduControlPriority2222222222 = /* @__PURE__ */ ((NpduControlPriority22222222222) => {
                                          NpduControlPriority22222222222[NpduControlPriority22222222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                                          NpduControlPriority22222222222[NpduControlPriority22222222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                                          NpduControlPriority22222222222[NpduControlPriority22222222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                                          NpduControlPriority22222222222[NpduControlPriority22222222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                                          return NpduControlPriority22222222222;
                                        })(NpduControlPriority2222222222 || {});
                                        var PduConReqBit2222222222 = /* @__PURE__ */ ((PduConReqBit22222222222) => {
                                          PduConReqBit22222222222[PduConReqBit22222222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                                          PduConReqBit22222222222[PduConReqBit22222222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                                          PduConReqBit22222222222[PduConReqBit22222222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                                          return PduConReqBit22222222222;
                                        })(PduConReqBit2222222222 || {});
                                        var PduSegAckBit2222222222 = /* @__PURE__ */ ((PduSegAckBit22222222222) => {
                                          PduSegAckBit22222222222[PduSegAckBit22222222222["SERVER"] = 1] = "SERVER";
                                          PduSegAckBit22222222222[PduSegAckBit22222222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                                          return PduSegAckBit22222222222;
                                        })(PduSegAckBit2222222222 || {});
                                        var PduType2222222222 = /* @__PURE__ */ ((PduType22222222222) => {
                                          PduType22222222222[PduType22222222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                                          PduType22222222222[PduType22222222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                                          PduType22222222222[PduType22222222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                                          PduType22222222222[PduType22222222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                                          PduType22222222222[PduType22222222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                                          PduType22222222222[PduType22222222222["ERROR"] = 80] = "ERROR";
                                          PduType22222222222[PduType22222222222["REJECT"] = 96] = "REJECT";
                                          PduType22222222222[PduType22222222222["ABORT"] = 112] = "ABORT";
                                          return PduType22222222222;
                                        })(PduType2222222222 || {});
                                        var PropertyStates2222222222 = /* @__PURE__ */ ((PropertyStates22222222222) => {
                                          PropertyStates22222222222[PropertyStates22222222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                                          PropertyStates22222222222[PropertyStates22222222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                                          PropertyStates22222222222[PropertyStates22222222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                                          PropertyStates22222222222[PropertyStates22222222222["POLARITY"] = 3] = "POLARITY";
                                          PropertyStates22222222222[PropertyStates22222222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                                          PropertyStates22222222222[PropertyStates22222222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                                          PropertyStates22222222222[PropertyStates22222222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                                          PropertyStates22222222222[PropertyStates22222222222["RELIABILITY"] = 7] = "RELIABILITY";
                                          PropertyStates22222222222[PropertyStates22222222222["STATE"] = 8] = "STATE";
                                          PropertyStates22222222222[PropertyStates22222222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                                          PropertyStates22222222222[PropertyStates22222222222["UNITS"] = 10] = "UNITS";
                                          PropertyStates22222222222[PropertyStates22222222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                                          PropertyStates22222222222[PropertyStates22222222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                                          PropertyStates22222222222[PropertyStates22222222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                                          PropertyStates22222222222[PropertyStates22222222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                                          PropertyStates22222222222[PropertyStates22222222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                                          PropertyStates22222222222[PropertyStates22222222222["ACTION"] = 16] = "ACTION";
                                          PropertyStates22222222222[PropertyStates22222222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                                          PropertyStates22222222222[PropertyStates22222222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                                          PropertyStates22222222222[PropertyStates22222222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                                          PropertyStates22222222222[PropertyStates22222222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                                          PropertyStates22222222222[PropertyStates22222222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                                          PropertyStates22222222222[PropertyStates22222222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                                          PropertyStates22222222222[PropertyStates22222222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                                          PropertyStates22222222222[PropertyStates22222222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                                          PropertyStates22222222222[PropertyStates22222222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                                          PropertyStates22222222222[PropertyStates22222222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                                          PropertyStates22222222222[PropertyStates22222222222["SHED_STATE"] = 27] = "SHED_STATE";
                                          PropertyStates22222222222[PropertyStates22222222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                                          PropertyStates22222222222[PropertyStates22222222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                                          PropertyStates22222222222[PropertyStates22222222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                                          PropertyStates22222222222[PropertyStates22222222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                                          PropertyStates22222222222[PropertyStates22222222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                                          PropertyStates22222222222[PropertyStates22222222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                                          PropertyStates22222222222[PropertyStates22222222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                                          PropertyStates22222222222[PropertyStates22222222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                                          PropertyStates22222222222[PropertyStates22222222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                                          PropertyStates22222222222[PropertyStates22222222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                                          PropertyStates22222222222[PropertyStates22222222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                                          PropertyStates22222222222[PropertyStates22222222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                                          PropertyStates22222222222[PropertyStates22222222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                                          PropertyStates22222222222[PropertyStates22222222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                                          PropertyStates22222222222[PropertyStates22222222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                                          PropertyStates22222222222[PropertyStates22222222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                                          PropertyStates22222222222[PropertyStates22222222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                                          PropertyStates22222222222[PropertyStates22222222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                                          PropertyStates22222222222[PropertyStates22222222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                                          PropertyStates22222222222[PropertyStates22222222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                                          PropertyStates22222222222[PropertyStates22222222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                                          PropertyStates22222222222[PropertyStates22222222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                                          PropertyStates22222222222[PropertyStates22222222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                                          PropertyStates22222222222[PropertyStates22222222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                                          PropertyStates22222222222[PropertyStates22222222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                                          PropertyStates22222222222[PropertyStates22222222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                                          PropertyStates22222222222[PropertyStates22222222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                                          PropertyStates22222222222[PropertyStates22222222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                                          PropertyStates22222222222[PropertyStates22222222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                                          PropertyStates22222222222[PropertyStates22222222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                                          return PropertyStates22222222222;
                                        })(PropertyStates2222222222 || {});
                                        var ReadRangeType2222222222 = /* @__PURE__ */ ((ReadRangeType22222222222) => {
                                          ReadRangeType22222222222[ReadRangeType22222222222["BY_POSITION"] = 0] = "BY_POSITION";
                                          ReadRangeType22222222222[ReadRangeType22222222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                                          ReadRangeType22222222222[ReadRangeType22222222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                                          return ReadRangeType22222222222;
                                        })(ReadRangeType2222222222 || {});
                                        var ReinitializedState2222222222 = /* @__PURE__ */ ((ReinitializedState22222222222) => {
                                          ReinitializedState22222222222[ReinitializedState22222222222["COLDSTART"] = 0] = "COLDSTART";
                                          ReinitializedState22222222222[ReinitializedState22222222222["WARMSTART"] = 1] = "WARMSTART";
                                          ReinitializedState22222222222[ReinitializedState22222222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                                          ReinitializedState22222222222[ReinitializedState22222222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                                          ReinitializedState22222222222[ReinitializedState22222222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                                          ReinitializedState22222222222[ReinitializedState22222222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                                          ReinitializedState22222222222[ReinitializedState22222222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                                          ReinitializedState22222222222[ReinitializedState22222222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                                          return ReinitializedState22222222222;
                                        })(ReinitializedState2222222222 || {});
                                        var TimeStamp2222222222 = /* @__PURE__ */ ((TimeStamp22222222222) => {
                                          TimeStamp22222222222[TimeStamp22222222222["TIME"] = 0] = "TIME";
                                          TimeStamp22222222222[TimeStamp22222222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                                          TimeStamp22222222222[TimeStamp22222222222["DATETIME"] = 2] = "DATETIME";
                                          return TimeStamp22222222222;
                                        })(TimeStamp2222222222 || {});
                                        var import_events22222222222 = __toESM2222222222(require("events"));
                                        var import_debug32222222222 = __toESM2222222222(require("debug"));
                                        var import_dgram2222222222 = require("dgram");
                                        var import_events3222222222 = __toESM2222222222(require("events"));
                                        var import_debug22222222222 = __toESM2222222222(require("debug"));
                                        var EventEmitter3222222222 = import_events3222222222.default.EventEmitter;
                                        var debug22222222222 = (0, import_debug22222222222.default)("bacnet:client:debug");
                                        var DEFAULT_BACNET_PORT3222222222 = 47808;
                                        var Transport2222222222 = class extends EventEmitter3222222222 {
                                          constructor(settings) {
                                            super();
                                            this._lastSendMessages = {};
                                            this._settings = settings;
                                            this._server = (0, import_dgram2222222222.createSocket)({
                                              type: "udp4",
                                              reuseAddr: settings.reuseAddr
                                            });
                                            this._server.on("message", (msg, rinfo) => {
                                              if (this.ownAddress.port === rinfo.port) {
                                                for (let [messageKey, earlierSentBuffer] of Object.entries(
                                                  this._lastSendMessages
                                                )) {
                                                  if (msg.equals(earlierSentBuffer)) {
                                                    debug22222222222(
                                                      `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                                    );
                                                    return;
                                                  }
                                                }
                                              }
                                              debug22222222222(
                                                `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                                  "hex"
                                                )}`
                                              );
                                              this.emit(
                                                "message",
                                                msg,
                                                rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT3222222222 ? "" : ":" + rinfo.port)
                                              );
                                            });
                                            this._server.on("listening", () => {
                                              this.ownAddress = this._server.address();
                                              debug22222222222(
                                                `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                                              );
                                              this.emit("listening", this.ownAddress);
                                            });
                                            this._server.on("error", (err) => {
                                              debug22222222222("transport error", err.message);
                                              this.emit("error", err);
                                            });
                                            this._server.on("close", () => {
                                              debug22222222222("transport closed");
                                              this.emit("close");
                                            });
                                          }
                                          getBroadcastAddress() {
                                            return this._settings.broadcastAddress;
                                          }
                                          getMaxPayload() {
                                            return 1482;
                                          }
                                          send(buffer, offset, receiver) {
                                            if (!receiver) {
                                              receiver = this.getBroadcastAddress();
                                              const dataToSend = Buffer.alloc(offset);
                                              const hrTime = process.hrtime();
                                              const messageKey = hrTime[0] * 1e9 + hrTime[1];
                                              buffer.copy(dataToSend, 0, 0, offset);
                                              this._lastSendMessages[messageKey] = dataToSend;
                                              setTimeout(() => {
                                                delete this._lastSendMessages[messageKey];
                                              }, 1e4);
                                            }
                                            const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                                            const [address, port] = receiverAddress.split(":");
                                            debug22222222222(
                                              "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                                            );
                                            this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT3222222222, address);
                                          }
                                          open() {
                                            this._server.bind(this._settings.port, this._settings.interface, () => {
                                              this._server.setBroadcast(true);
                                            });
                                          }
                                          close() {
                                            this._server.close();
                                          }
                                        };
                                        var services_exports2222222222 = {};
                                        __export2222222222(services_exports2222222222, {
                                          addListElement: () => add_list_element_exports2222222222,
                                          alarmAcknowledge: () => alarm_acknowledge_exports2222222222,
                                          alarmSummary: () => alarm_summary_exports2222222222,
                                          atomicReadFile: () => atomic_read_file_exports2222222222,
                                          atomicWriteFile: () => atomic_write_file_exports2222222222,
                                          covNotify: () => cov_notify_exports2222222222,
                                          covNotifyUnconfirmed: () => cov_notify_exports2222222222,
                                          createObject: () => create_object_exports2222222222,
                                          deleteObject: () => delete_object_exports2222222222,
                                          deviceCommunicationControl: () => device_communication_control_exports2222222222,
                                          error: () => error_exports2222222222,
                                          eventInformation: () => event_information_exports2222222222,
                                          eventNotifyData: () => event_notify_data_exports2222222222,
                                          getEnrollmentSummary: () => get_enrollment_summary_exports2222222222,
                                          getEventInformation: () => get_event_information_exports2222222222,
                                          iAm: () => i_am_exports2222222222,
                                          iHave: () => i_have_exports2222222222,
                                          lifeSafetyOperation: () => life_safety_operation_exports2222222222,
                                          privateTransfer: () => private_transfer_exports2222222222,
                                          readProperty: () => read_property_exports2222222222,
                                          readPropertyMultiple: () => read_property_multiple_exports2222222222,
                                          readRange: () => read_range_exports2222222222,
                                          registerForeignDevice: () => register_foreign_device_exports2222222222,
                                          reinitializeDevice: () => reinitialize_device_exports2222222222,
                                          subscribeCov: () => subscribe_cov_exports2222222222,
                                          subscribeProperty: () => subscribe_property_exports2222222222,
                                          timeSync: () => time_sync_exports2222222222,
                                          timeSyncUTC: () => time_sync_exports2222222222,
                                          whoHas: () => who_has_exports2222222222,
                                          whoIs: () => who_is_exports2222222222,
                                          writeProperty: () => write_property_exports2222222222,
                                          writePropertyMultiple: () => write_property_multiple_exports2222222222
                                        });
                                        var add_list_element_exports2222222222 = {};
                                        __export2222222222(add_list_element_exports2222222222, {
                                          decode: () => decode33222222222,
                                          encode: () => encode33222222222
                                        });
                                        var import_iconv_lite2222222222 = __toESM2222222222(require("iconv-lite"));
                                        var enums_default2222222222 = enum_exports2222222222;
                                        var START_YEAR2222222222 = 1900;
                                        var MAX_YEARS2222222222 = 256;
                                        var getBuffer2222222222 = () => {
                                          return {
                                            buffer: Buffer.alloc(1472),
                                            offset: 0
                                          };
                                        };
                                        var getSignedLength2222222222 = (value) => {
                                          if (value >= -128 && value < 128)
                                            return 1;
                                          else if (value >= -32768 && value < 32768)
                                            return 2;
                                          else if (value > -8388608 && value < 8388608)
                                            return 3;
                                          else
                                            return 4;
                                        };
                                        var getUnsignedLength2222222222 = (value) => {
                                          if (value < 256)
                                            return 1;
                                          else if (value < 65536)
                                            return 2;
                                          else if (value < 16777216)
                                            return 3;
                                          else
                                            return 4;
                                        };
                                        var getEncodingType2222222222 = (encoding, decodingBuffer, decodingOffset) => {
                                          switch (encoding) {
                                            case enums_default2222222222.CharacterStringEncoding.UCS_2:
                                              if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                                return "ucs2";
                                              }
                                              return "UTF-16BE";
                                            case enums_default2222222222.CharacterStringEncoding.ISO_8859_1:
                                              return "latin1";
                                            case enums_default2222222222.CharacterStringEncoding.MICROSOFT_DBCS:
                                              return "cp850";
                                            case enums_default2222222222.CharacterStringEncoding.JIS_X_0208:
                                              return "Shift_JIS";
                                            default:
                                              return "utf8";
                                          }
                                        };
                                        var encodeUnsigned2222222222 = (buffer, value, length) => {
                                          buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                                          buffer.offset += length;
                                        };
                                        var encodeBacnetUnsigned2222222222 = (buffer, value) => {
                                          encodeUnsigned2222222222(buffer, value, getUnsignedLength2222222222(value));
                                        };
                                        var encodeSigned2222222222 = (buffer, value, length) => {
                                          buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                                          buffer.offset += length;
                                        };
                                        var encodeBacnetSigned2222222222 = (buffer, value) => {
                                          encodeSigned2222222222(buffer, value, getSignedLength2222222222(value));
                                        };
                                        var encodeBacnetReal2222222222 = (buffer, value) => {
                                          buffer.buffer.writeFloatBE(value, buffer.offset, true);
                                          buffer.offset += 4;
                                        };
                                        var encodeBacnetDouble2222222222 = (buffer, value) => {
                                          buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                                          buffer.offset += 8;
                                        };
                                        var decodeUnsigned2222222222 = (buffer, offset, length) => {
                                          if (length === 0) {
                                            return {
                                              len: 0,
                                              value: 0
                                            };
                                          }
                                          return {
                                            len: length,
                                            //@ts-ignore
                                            value: buffer.readUIntBE(offset, length)
                                          };
                                        };
                                        var decodeEnumerated2222222222 = (buffer, offset, length) => {
                                          return decodeUnsigned2222222222(buffer, offset, length);
                                        };
                                        var encodeBacnetObjectId2222222222 = (buffer, objectType, instance) => {
                                          const value = ((objectType & enums_default2222222222.ASN1_MAX_OBJECT) << enums_default2222222222.ASN1_INSTANCE_BITS | instance & enums_default2222222222.ASN1_MAX_INSTANCE) >>> 0;
                                          encodeUnsigned2222222222(buffer, value, 4);
                                        };
                                        var encodeTag2222222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                                          let len = 1;
                                          const tmp = new Array(3);
                                          tmp[0] = 0;
                                          if (contextSpecific) {
                                            tmp[0] |= 8;
                                          }
                                          if (tagNumber <= 14) {
                                            tmp[0] |= tagNumber << 4;
                                          } else {
                                            tmp[0] |= 240;
                                            tmp[1] = tagNumber;
                                            len++;
                                          }
                                          if (lenValueType <= 4) {
                                            tmp[0] |= lenValueType;
                                            Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                            buffer.offset += len;
                                          } else {
                                            tmp[0] |= 5;
                                            if (lenValueType <= 253) {
                                              tmp[len++] = lenValueType;
                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                              buffer.offset += len;
                                            } else if (lenValueType <= 65535) {
                                              tmp[len++] = 254;
                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                              buffer.offset += len;
                                              encodeUnsigned2222222222(buffer, lenValueType, 2);
                                            } else {
                                              tmp[len++] = 255;
                                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                              buffer.offset += len;
                                              encodeUnsigned2222222222(buffer, lenValueType, 4);
                                            }
                                          }
                                        };
                                        var encodeBacnetEnumerated2222222222 = (buffer, value) => {
                                          encodeBacnetUnsigned2222222222(buffer, value);
                                        };
                                        var isExtendedTagNumber2222222222 = (x) => {
                                          return (x & 240) === 240;
                                        };
                                        var isExtendedValue2222222222 = (x) => {
                                          return (x & 7) === 5;
                                        };
                                        var isContextSpecific2222222222 = (x) => {
                                          return (x & 8) === 8;
                                        };
                                        var isOpeningTag2222222222 = (x) => {
                                          return (x & 7) === 6;
                                        };
                                        var isClosingTag2222222222 = (x) => {
                                          return (x & 7) === 7;
                                        };
                                        var encodeContextReal2222222222 = (buffer, tagNumber, value) => {
                                          encodeTag2222222222(buffer, tagNumber, true, 4);
                                          encodeBacnetReal2222222222(buffer, value);
                                        };
                                        var encodeContextUnsigned2222222222 = (buffer, tagNumber, value) => {
                                          encodeTag2222222222(buffer, tagNumber, true, getUnsignedLength2222222222(value));
                                          encodeBacnetUnsigned2222222222(buffer, value);
                                        };
                                        var encodeContextEnumerated2222222222 = (buffer, tagNumber, value) => {
                                          encodeContextUnsigned2222222222(buffer, tagNumber, value);
                                        };
                                        var encodeOctetString2222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                          if (octetString) {
                                            for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                                              buffer.buffer[buffer.offset++] = octetString[i];
                                            }
                                          }
                                        };
                                        var encodeApplicationOctetString2222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                          encodeTag2222222222(buffer, enums_default2222222222.ApplicationTag.OCTET_STRING, false, octetCount);
                                          encodeOctetString2222222222(buffer, octetString, octetOffset, octetCount);
                                        };
                                        var encodeApplicationNull2222222222 = (buffer) => {
                                          buffer.buffer[buffer.offset++] = enums_default2222222222.ApplicationTag.NULL;
                                        };
                                        var encodeApplicationBoolean2222222222 = (buffer, booleanValue) => {
                                          encodeTag2222222222(buffer, enums_default2222222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                                        };
                                        var encodeApplicationReal2222222222 = (buffer, value) => {
                                          encodeTag2222222222(buffer, enums_default2222222222.ApplicationTag.REAL, false, 4);
                                          encodeBacnetReal2222222222(buffer, value);
                                        };
                                        var encodeApplicationDouble2222222222 = (buffer, value) => {
                                          encodeTag2222222222(buffer, enums_default2222222222.ApplicationTag.DOUBLE, false, 8);
                                          encodeBacnetDouble2222222222(buffer, value);
                                        };
                                        var bitstringBytesUsed2222222222 = (bitString) => {
                                          let len = 0;
                                          if (bitString.bitsUsed > 0) {
                                            const lastBit = bitString.bitsUsed - 1;
                                            const usedBytes = lastBit / 8 + 1;
                                            len = Math.floor(usedBytes);
                                          }
                                          return len;
                                        };
                                        var encodeApplicationObjectId2222222222 = (buffer, objectType, instance) => {
                                          const tmp = getBuffer2222222222();
                                          encodeBacnetObjectId2222222222(tmp, objectType, instance);
                                          encodeTag2222222222(buffer, enums_default2222222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                          buffer.offset += tmp.offset;
                                        };
                                        var encodeApplicationUnsigned2222222222 = (buffer, value) => {
                                          const tmp = getBuffer2222222222();
                                          encodeBacnetUnsigned2222222222(tmp, value);
                                          encodeTag2222222222(buffer, enums_default2222222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                          buffer.offset += tmp.offset;
                                        };
                                        var encodeApplicationEnumerated2222222222 = (buffer, value) => {
                                          const tmp = getBuffer2222222222();
                                          encodeBacnetEnumerated2222222222(tmp, value);
                                          encodeTag2222222222(buffer, enums_default2222222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                          buffer.offset += tmp.offset;
                                        };
                                        var encodeApplicationSigned2222222222 = (buffer, value) => {
                                          const tmp = getBuffer2222222222();
                                          encodeBacnetSigned2222222222(tmp, value);
                                          encodeTag2222222222(buffer, enums_default2222222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                          buffer.offset += tmp.offset;
                                        };
                                        var byteReverseBits2222222222 = (inByte) => {
                                          let outByte = 0;
                                          if ((inByte & 1) > 0) {
                                            outByte |= 128;
                                          }
                                          if ((inByte & 2) > 0) {
                                            outByte |= 64;
                                          }
                                          if ((inByte & 4) > 0) {
                                            outByte |= 32;
                                          }
                                          if ((inByte & 8) > 0) {
                                            outByte |= 16;
                                          }
                                          if ((inByte & 16) > 0) {
                                            outByte |= 8;
                                          }
                                          if ((inByte & 32) > 0) {
                                            outByte |= 4;
                                          }
                                          if ((inByte & 64) > 0) {
                                            outByte |= 2;
                                          }
                                          if ((inByte & 128) > 0) {
                                            outByte |= 1;
                                          }
                                          return outByte;
                                        };
                                        var bitstringOctet2222222222 = (bitString, octetIndex) => {
                                          let octet = 0;
                                          if (bitString.value && octetIndex < enums_default2222222222.ASN1_MAX_BITSTRING_BYTES) {
                                            octet = bitString.value[octetIndex];
                                          }
                                          return octet;
                                        };
                                        var encodeBitstring2222222222 = (buffer, bitString) => {
                                          if (bitString.bitsUsed === 0) {
                                            buffer.buffer[buffer.offset++] = 0;
                                          } else {
                                            const usedBytes = bitstringBytesUsed2222222222(bitString);
                                            const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                                            buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                                            for (let i = 0; i < usedBytes; i++) {
                                              buffer.buffer[buffer.offset++] = byteReverseBits2222222222(
                                                bitstringOctet2222222222(bitString, i)
                                              );
                                            }
                                          }
                                        };
                                        var encodeApplicationBitstring2222222222 = (buffer, bitString) => {
                                          let bitStringEncodedLength = 1;
                                          bitStringEncodedLength += bitstringBytesUsed2222222222(bitString);
                                          encodeTag2222222222(
                                            buffer,
                                            enums_default2222222222.ApplicationTag.BIT_STRING,
                                            false,
                                            bitStringEncodedLength
                                          );
                                          encodeBitstring2222222222(buffer, bitString);
                                        };
                                        var encodeBacnetDate2222222222 = (buffer, value) => {
                                          if (value === new Date(1, 1, 1)) {
                                            buffer.buffer[buffer.offset++] = 255;
                                            buffer.buffer[buffer.offset++] = 255;
                                            buffer.buffer[buffer.offset++] = 255;
                                            buffer.buffer[buffer.offset++] = 255;
                                            return;
                                          }
                                          if (value.getFullYear() >= START_YEAR2222222222) {
                                            buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR2222222222;
                                          } else if (value.getFullYear() < MAX_YEARS2222222222) {
                                            buffer.buffer[buffer.offset++] = value.getFullYear();
                                          } else {
                                            throw new Error("invaide year: " + value.getFullYear());
                                          }
                                          buffer.buffer[buffer.offset++] = value.getMonth();
                                          buffer.buffer[buffer.offset++] = value.getDate();
                                          buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                                        };
                                        var encodeApplicationDate2222222222 = (buffer, value) => {
                                          encodeTag2222222222(buffer, enums_default2222222222.ApplicationTag.DATE, false, 4);
                                          encodeBacnetDate2222222222(buffer, value);
                                        };
                                        var encodeBacnetTime2222222222 = (buffer, value) => {
                                          buffer.buffer[buffer.offset++] = value.getHours();
                                          buffer.buffer[buffer.offset++] = value.getMinutes();
                                          buffer.buffer[buffer.offset++] = value.getSeconds();
                                          buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                                        };
                                        var encodeApplicationTime2222222222 = (buffer, value) => {
                                          encodeTag2222222222(buffer, enums_default2222222222.ApplicationTag.TIME, false, 4);
                                          encodeBacnetTime2222222222(buffer, value);
                                        };
                                        var bacappEncodeDatetime2222222222 = (buffer, value) => {
                                          if (value !== new Date(1, 1, 1)) {
                                            encodeApplicationDate2222222222(buffer, value);
                                            encodeApplicationTime2222222222(buffer, value);
                                          }
                                        };
                                        var encodeContextObjectId2222222222 = (buffer, tagNumber, objectType, instance) => {
                                          encodeTag2222222222(buffer, tagNumber, true, 4);
                                          encodeBacnetObjectId2222222222(buffer, objectType, instance);
                                        };
                                        var encodeOpeningTag2222222222 = (buffer, tagNumber) => {
                                          let len = 1;
                                          const tmp = new Array(2);
                                          tmp[0] = 8;
                                          if (tagNumber <= 14) {
                                            tmp[0] |= tagNumber << 4;
                                          } else {
                                            tmp[0] |= 240;
                                            tmp[1] = tagNumber;
                                            len++;
                                          }
                                          tmp[0] |= 6;
                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                          buffer.offset += len;
                                        };
                                        var encodeClosingTag2222222222 = (buffer, tagNumber) => {
                                          let len = 1;
                                          const tmp = new Array(2);
                                          tmp[0] = 8;
                                          if (tagNumber <= 14) {
                                            tmp[0] |= tagNumber << 4;
                                          } else {
                                            tmp[0] |= 240;
                                            tmp[1] = tagNumber;
                                            len++;
                                          }
                                          tmp[0] |= 7;
                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                          buffer.offset += len;
                                        };
                                        var encodeReadAccessSpecification2222222222 = (buffer, value) => {
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            0,
                                            value.objectId.type,
                                            value.objectId.instance
                                          );
                                          encodeOpeningTag2222222222(buffer, 1);
                                          value.properties.forEach((p) => {
                                            encodeContextEnumerated2222222222(buffer, 0, p.id);
                                            if (p.index && p.index !== enums_default2222222222.ASN1_ARRAY_ALL) {
                                              encodeContextUnsigned2222222222(buffer, 1, p.index);
                                            }
                                          });
                                          encodeClosingTag2222222222(buffer, 1);
                                        };
                                        var encodeContextBoolean2222222222 = (buffer, tagNumber, booleanValue) => {
                                          encodeTag2222222222(buffer, tagNumber, true, 1);
                                          buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                                          buffer.offset += 1;
                                        };
                                        var encodeCovSubscription2222222222 = (buffer, value) => {
                                          encodeOpeningTag2222222222(buffer, 0);
                                          encodeOpeningTag2222222222(buffer, 0);
                                          encodeOpeningTag2222222222(buffer, 1);
                                          encodeApplicationUnsigned2222222222(buffer, value.recipient.network);
                                          if (value.recipient.network === 65535) {
                                            encodeApplicationOctetString2222222222(buffer, 0, 0, 0);
                                          } else {
                                            encodeApplicationOctetString2222222222(
                                              buffer,
                                              value.recipient.address,
                                              0,
                                              value.recipient.address.length
                                            );
                                          }
                                          encodeClosingTag2222222222(buffer, 1);
                                          encodeClosingTag2222222222(buffer, 0);
                                          encodeContextUnsigned2222222222(buffer, 1, value.subscriptionProcessId);
                                          encodeClosingTag2222222222(buffer, 0);
                                          encodeOpeningTag2222222222(buffer, 1);
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            0,
                                            value.monitoredObjectId.type,
                                            value.monitoredObjectId.instance
                                          );
                                          encodeContextEnumerated2222222222(buffer, 1, value.monitoredProperty.id);
                                          if (value.monitoredProperty.index !== enums_default2222222222.ASN1_ARRAY_ALL) {
                                            encodeContextUnsigned2222222222(buffer, 2, value.monitoredProperty.index);
                                          }
                                          encodeClosingTag2222222222(buffer, 1);
                                          encodeContextBoolean2222222222(buffer, 2, value.issueConfirmedNotifications);
                                          encodeContextUnsigned2222222222(buffer, 3, value.timeRemaining);
                                          if (value.covIncrement > 0) {
                                            encodeContextReal2222222222(buffer, 4, value.covIncrement);
                                          }
                                        };
                                        var bacappEncodeApplicationData2222222222 = (buffer, value) => {
                                          if (value.value === null) {
                                            value.type = enums_default2222222222.ApplicationTag.NULL;
                                          }
                                          switch (value.type) {
                                            case enums_default2222222222.ApplicationTag.NULL:
                                              encodeApplicationNull2222222222(buffer);
                                              break;
                                            case enums_default2222222222.ApplicationTag.BOOLEAN:
                                              encodeApplicationBoolean2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.UNSIGNED_INTEGER:
                                              encodeApplicationUnsigned2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.SIGNED_INTEGER:
                                              encodeApplicationSigned2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.REAL:
                                              encodeApplicationReal2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.DOUBLE:
                                              encodeApplicationDouble2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.OCTET_STRING:
                                              encodeApplicationOctetString2222222222(buffer, value.value, 0, value.value.length);
                                              break;
                                            case enums_default2222222222.ApplicationTag.CHARACTER_STRING:
                                              encodeApplicationCharacterString2222222222(buffer, value.value, value.encoding);
                                              break;
                                            case enums_default2222222222.ApplicationTag.BIT_STRING:
                                              encodeApplicationBitstring2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.ENUMERATED:
                                              encodeApplicationEnumerated2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.DATE:
                                              encodeApplicationDate2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.TIME:
                                              encodeApplicationTime2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.TIMESTAMP:
                                              bacappEncodeTimestamp2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.DATETIME:
                                              bacappEncodeDatetime2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.OBJECTIDENTIFIER:
                                              encodeApplicationObjectId2222222222(buffer, value.value.type, value.value.instance);
                                              break;
                                            case enums_default2222222222.ApplicationTag.COV_SUBSCRIPTION:
                                              encodeCovSubscription2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.READ_ACCESS_RESULT:
                                              encodeReadAccessResult2222222222(buffer, value.value);
                                              break;
                                            case enums_default2222222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                              encodeReadAccessSpecification2222222222(buffer, value.value);
                                              break;
                                            case void 0:
                                              throw new Error(
                                                "Cannot encode a value if the type has not been specified"
                                              );
                                            default:
                                              throw "No encode for ApplicationTag type: " + enums_default2222222222.getEnumName(
                                                enums_default2222222222.ApplicationTag,
                                                value.type
                                              );
                                          }
                                        };
                                        var bacappEncodeDeviceObjPropertyRef2222222222 = (buffer, value) => {
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            0,
                                            value.objectId.type,
                                            value.objectId.instance
                                          );
                                          encodeContextEnumerated2222222222(buffer, 1, value.id);
                                          if (value.arrayIndex !== enums_default2222222222.ASN1_ARRAY_ALL) {
                                            encodeContextUnsigned2222222222(buffer, 2, value.arrayIndex);
                                          }
                                          if (value.deviceIndentifier.type === enums_default2222222222.ObjectType.DEVICE) {
                                            encodeContextObjectId2222222222(
                                              buffer,
                                              3,
                                              value.deviceIndentifier.type,
                                              value.deviceIndentifier.instance
                                            );
                                          }
                                        };
                                        var bacappEncodeContextDeviceObjPropertyRef2222222222 = (buffer, tagNumber, value) => {
                                          encodeOpeningTag2222222222(buffer, tagNumber);
                                          bacappEncodeDeviceObjPropertyRef2222222222(buffer, value);
                                          encodeClosingTag2222222222(buffer, tagNumber);
                                        };
                                        var bacappEncodePropertyState2222222222 = (buffer, value) => {
                                          switch (value.type) {
                                            case enums_default2222222222.PropertyStates.BOOLEAN_VALUE:
                                              encodeContextBoolean2222222222(buffer, 0, value.state === 1);
                                              break;
                                            case enums_default2222222222.PropertyStates.BINARY_VALUE:
                                              encodeContextEnumerated2222222222(buffer, 1, value.state);
                                              break;
                                            case enums_default2222222222.PropertyStates.EVENT_TYPE:
                                              encodeContextEnumerated2222222222(buffer, 2, value.state);
                                              break;
                                            case enums_default2222222222.PropertyStates.POLARITY:
                                              encodeContextEnumerated2222222222(buffer, 3, value.state);
                                              break;
                                            case enums_default2222222222.PropertyStates.PROGRAM_CHANGE:
                                              encodeContextEnumerated2222222222(buffer, 4, value.state);
                                              break;
                                            case enums_default2222222222.PropertyStates.PROGRAM_STATE:
                                              encodeContextEnumerated2222222222(buffer, 5, value.state);
                                              break;
                                            case enums_default2222222222.PropertyStates.REASON_FOR_HALT:
                                              encodeContextEnumerated2222222222(buffer, 6, value.state);
                                              break;
                                            case enums_default2222222222.PropertyStates.RELIABILITY:
                                              encodeContextEnumerated2222222222(buffer, 7, value.state);
                                              break;
                                            case enums_default2222222222.PropertyStates.STATE:
                                              encodeContextEnumerated2222222222(buffer, 8, value.state);
                                              break;
                                            case enums_default2222222222.PropertyStates.SYSTEM_STATUS:
                                              encodeContextEnumerated2222222222(buffer, 9, value.state);
                                              break;
                                            case enums_default2222222222.PropertyStates.UNITS:
                                              encodeContextEnumerated2222222222(buffer, 10, value.state);
                                              break;
                                            case enums_default2222222222.PropertyStates.UNSIGNED_VALUE:
                                              encodeContextUnsigned2222222222(buffer, 11, value.state);
                                              break;
                                            case enums_default2222222222.PropertyStates.LIFE_SAFETY_MODE:
                                              encodeContextEnumerated2222222222(buffer, 12, value.state);
                                              break;
                                            case enums_default2222222222.PropertyStates.LIFE_SAFETY_STATE:
                                              encodeContextEnumerated2222222222(buffer, 13, value.state);
                                              break;
                                            default:
                                              break;
                                          }
                                        };
                                        var encodeContextBitstring2222222222 = (buffer, tagNumber, bitString) => {
                                          let bitStringEncodedLength = 1;
                                          bitStringEncodedLength += bitstringBytesUsed2222222222(bitString);
                                          encodeTag2222222222(buffer, tagNumber, true, bitStringEncodedLength);
                                          encodeBitstring2222222222(buffer, bitString);
                                        };
                                        var encodeContextSigned2222222222 = (buffer, tagNumber, value) => {
                                          encodeTag2222222222(buffer, tagNumber, true, getSignedLength2222222222(value));
                                          encodeBacnetSigned2222222222(buffer, value);
                                        };
                                        var encodeContextTime2222222222 = (buffer, tagNumber, value) => {
                                          encodeTag2222222222(buffer, tagNumber, true, 4);
                                          encodeBacnetTime2222222222(buffer, value);
                                        };
                                        var bacappEncodeContextDatetime2222222222 = (buffer, tagNumber, value) => {
                                          if (value !== new Date(1, 1, 1)) {
                                            encodeOpeningTag2222222222(buffer, tagNumber);
                                            bacappEncodeDatetime2222222222(buffer, value);
                                            encodeClosingTag2222222222(buffer, tagNumber);
                                          } else {
                                            throw new Error("wrong Datetime while bacapp encoding context");
                                          }
                                        };
                                        var decodeTagNumber2222222222 = (buffer, offset) => {
                                          let len = 1;
                                          let tagNumber;
                                          if (isExtendedTagNumber2222222222(buffer[offset])) {
                                            tagNumber = buffer[offset + 1];
                                            len++;
                                          } else {
                                            tagNumber = buffer[offset] >> 4;
                                          }
                                          return {
                                            len,
                                            tagNumber
                                          };
                                        };
                                        var decodeIsContextTag2222222222 = (buffer, offset, tagNumber) => {
                                          const result = decodeTagNumber2222222222(buffer, offset);
                                          return isContextSpecific2222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                        };
                                        var decodeIsOpeningTagNumber2222222222 = (buffer, offset, tagNumber) => {
                                          const result = decodeTagNumber2222222222(buffer, offset);
                                          return isOpeningTag2222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                        };
                                        var decodeIsClosingTagNumber2222222222 = (buffer, offset, tagNumber) => {
                                          const result = decodeTagNumber2222222222(buffer, offset);
                                          return isClosingTag2222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                        };
                                        var decodeIsClosingTag2222222222 = (buffer, offset) => {
                                          return (buffer[offset] & 7) === 7;
                                        };
                                        var decodeIsOpeningTag2222222222 = (buffer, offset) => {
                                          return (buffer[offset] & 7) === 6;
                                        };
                                        var decodeObjectId2222222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                                          const result = decodeUnsigned2222222222(buffer, offset, 4);
                                          const objectType = result.value >> enums_default2222222222.ASN1_INSTANCE_BITS & enums_default2222222222.ASN1_MAX_OBJECT;
                                          const instance = result.value & enums_default2222222222.ASN1_MAX_INSTANCE;
                                          return {
                                            len: result.len,
                                            objectType,
                                            instance
                                          };
                                        };
                                        var decodeObjectIdSafe2222222222 = (buffer, offset, lenValue) => {
                                          if (lenValue !== 4) {
                                            return {
                                              len: 0,
                                              objectType: 0,
                                              instance: 0
                                            };
                                          } else {
                                            return decodeObjectId2222222222(buffer, offset);
                                          }
                                        };
                                        var decodeTagNumberAndValue2222222222 = (buffer, offset) => {
                                          let value;
                                          let result = decodeTagNumber2222222222(buffer, offset);
                                          let len = result.len;
                                          if (isExtendedValue2222222222(buffer[offset])) {
                                            if (buffer[offset + len] === 255) {
                                              len++;
                                              result = decodeUnsigned2222222222(buffer, offset + len, 4);
                                              len += result.len;
                                              value = result.value;
                                            } else if (buffer[offset + len] === 254) {
                                              len++;
                                              result = decodeUnsigned2222222222(buffer, offset + len, 2);
                                              len += result.len;
                                              value = result.value;
                                            } else {
                                              value = buffer[offset + len];
                                              len++;
                                            }
                                          } else if (isOpeningTag2222222222(buffer[offset])) {
                                            value = 0;
                                          } else if (isClosingTag2222222222(buffer[offset])) {
                                            value = 0;
                                          } else {
                                            value = buffer[offset] & 7;
                                          }
                                          return {
                                            len,
                                            tagNumber: result.tagNumber,
                                            value
                                          };
                                        };
                                        var bacappDecodeApplicationData2222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                          if (!isContextSpecific2222222222(buffer[offset])) {
                                            let result = decodeTagNumberAndValue2222222222(buffer, offset);
                                            if (result) {
                                              let len = result.len;
                                              result = bacappDecodeData2222222222(
                                                buffer,
                                                offset + len,
                                                maxOffset,
                                                result.tagNumber,
                                                result.value
                                              );
                                              if (!result) {
                                                return void 0;
                                              }
                                              let resObj = {
                                                len: len + result.len,
                                                type: result.type,
                                                value: result.value
                                              };
                                              if (result.encoding !== void 0)
                                                resObj.encoding = result.encoding;
                                              return resObj;
                                            }
                                          } else {
                                            return bacappDecodeContextApplicationData2222222222(
                                              buffer,
                                              offset,
                                              maxOffset,
                                              objectType,
                                              propertyId
                                            );
                                          }
                                        };
                                        var encodeReadAccessResult2222222222 = (buffer, value) => {
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            0,
                                            value.objectId.type,
                                            value.objectId.instance
                                          );
                                          encodeOpeningTag2222222222(buffer, 1);
                                          value.values.forEach((item) => {
                                            encodeContextEnumerated2222222222(buffer, 2, item.property.id);
                                            if (item.property.index !== enums_default2222222222.ASN1_ARRAY_ALL) {
                                              encodeContextUnsigned2222222222(buffer, 3, item.property.index);
                                            }
                                            if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                                              encodeOpeningTag2222222222(buffer, 5);
                                              encodeApplicationEnumerated2222222222(buffer, item.value[0].value.errorClass);
                                              encodeApplicationEnumerated2222222222(buffer, item.value[0].value.errorCode);
                                              encodeClosingTag2222222222(buffer, 5);
                                            } else {
                                              if (!item.value)
                                                throw new Error("No value in item");
                                              encodeOpeningTag2222222222(buffer, 4);
                                              item.value.forEach((subItem) => {
                                                bacappEncodeApplicationData2222222222(buffer, subItem);
                                              });
                                              encodeClosingTag2222222222(buffer, 4);
                                            }
                                          });
                                          encodeClosingTag2222222222(buffer, 1);
                                        };
                                        var decodeReadAccessResult2222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let value = {};
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          let result = decodeObjectId2222222222(buffer, offset + len);
                                          value.objectId = {
                                            type: result.objectType,
                                            instance: result.instance
                                          };
                                          len += result.len;
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 1)) {
                                            return -1;
                                          }
                                          len++;
                                          const values = [];
                                          while (apduLen - len > 0) {
                                            let newEntry = {};
                                            if (decodeIsClosingTagNumber2222222222(buffer, offset + len, 1)) {
                                              len++;
                                              break;
                                            }
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 2) {
                                              return void 0;
                                            }
                                            result = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            newEntry.id = result.value;
                                            len += result.len;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            if (result.tagNumber === 3) {
                                              len += result.len;
                                              result = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                              newEntry.index = result.value;
                                              len += result.len;
                                            } else {
                                              newEntry.index = enums_default2222222222.ASN1_ARRAY_ALL;
                                            }
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber === 4) {
                                              const localValues = [];
                                              while (len + offset <= buffer.length && !decodeIsClosingTagNumber2222222222(buffer, offset + len, 4)) {
                                                let localResult = bacappDecodeApplicationData2222222222(
                                                  buffer,
                                                  offset + len,
                                                  apduLen + offset - 1,
                                                  value.objectId.type,
                                                  newEntry.id
                                                );
                                                if (!localResult) {
                                                  return void 0;
                                                }
                                                len += localResult.len;
                                                let resObj = {
                                                  value: localResult.value,
                                                  type: localResult.type
                                                };
                                                if (localResult.encoding !== void 0)
                                                  resObj.encoding = localResult.encoding;
                                                localValues.push(resObj);
                                              }
                                              if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 4)) {
                                                return void 0;
                                              }
                                              if (localValues.count === 2 && localValues[0].type === enums_default2222222222.ApplicationTag.DATE && localValues[1].type === enums_default2222222222.ApplicationTag.TIME) {
                                                const date = localValues[0].value;
                                                const time = localValues[1].value;
                                                const bdatetime = new Date(
                                                  date.year,
                                                  date.month,
                                                  date.day,
                                                  time.hour,
                                                  time.minute,
                                                  time.second,
                                                  time.millisecond
                                                );
                                                newEntry.value = [
                                                  { type: enums_default2222222222.ApplicationTag.DATETIME, value: bdatetime }
                                                ];
                                              } else {
                                                newEntry.value = localValues;
                                              }
                                              len++;
                                            } else if (result.tagNumber === 5) {
                                              let err = {};
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                              result = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                              len += result.len;
                                              err.errorClass = result.value;
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                              result = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                              len += result.len;
                                              err.errorCode = result.value;
                                              if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 5)) {
                                                return void 0;
                                              }
                                              len++;
                                              newEntry.value = [
                                                {
                                                  type: enums_default2222222222.ApplicationTag.ERROR,
                                                  value: err
                                                }
                                              ];
                                            }
                                            values.push(newEntry);
                                          }
                                          value.values = values;
                                          return {
                                            len,
                                            value
                                          };
                                        };
                                        var decodeSigned2222222222 = (buffer, offset, length) => {
                                          return {
                                            len: length,
                                            value: buffer.readIntBE(offset, length, true)
                                          };
                                        };
                                        var decodeReal2222222222 = (buffer, offset) => {
                                          return {
                                            len: 4,
                                            value: buffer.readFloatBE(offset, true)
                                          };
                                        };
                                        var decodeRealSafe2222222222 = (buffer, offset, lenValue) => {
                                          if (lenValue !== 4) {
                                            return {
                                              len: lenValue,
                                              value: 0
                                            };
                                          } else {
                                            return decodeReal2222222222(buffer, offset);
                                          }
                                        };
                                        var decodeDouble2222222222 = (buffer, offset) => {
                                          return {
                                            len: 8,
                                            value: buffer.readDoubleBE(offset, true)
                                          };
                                        };
                                        var decodeDoubleSafe2222222222 = (buffer, offset, lenValue) => {
                                          if (lenValue !== 8) {
                                            return {
                                              len: lenValue,
                                              value: 0
                                            };
                                          } else {
                                            return decodeDouble2222222222(buffer, offset);
                                          }
                                        };
                                        var decodeOctetString2222222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                                          const octetString = [];
                                          for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                                            octetString.push(buffer[offset + i]);
                                          }
                                          return {
                                            len: octetStringLength,
                                            value: octetString
                                          };
                                        };
                                        var multiCharsetCharacterstringDecode2222222222 = (buffer, offset, maxLength, encoding, length) => {
                                          const stringBuf = Buffer.alloc(length);
                                          buffer.copy(stringBuf, 0, offset, offset + length);
                                          return {
                                            value: import_iconv_lite2222222222.default.decode(stringBuf, getEncodingType2222222222(encoding, buffer, offset)),
                                            len: length + 1,
                                            encoding
                                          };
                                        };
                                        var decodeCharacterString2222222222 = (buffer, offset, maxLength, lenValue) => {
                                          return multiCharsetCharacterstringDecode2222222222(
                                            buffer,
                                            offset + 1,
                                            maxLength,
                                            buffer[offset],
                                            lenValue - 1
                                          );
                                        };
                                        var bitstringSetBitsUsed2222222222 = (bitString, bytesUsed, unusedBits) => {
                                          bitString.bitsUsed = bytesUsed * 8;
                                          bitString.bitsUsed -= unusedBits;
                                        };
                                        var decodeBitstring2222222222 = (buffer, offset, lenValue) => {
                                          let len = 0;
                                          let bitString = {};
                                          bitString.value = [];
                                          if (lenValue > 0) {
                                            const bytesUsed = lenValue - 1;
                                            if (bytesUsed <= enums_default2222222222.ASN1_MAX_BITSTRING_BYTES) {
                                              len = 1;
                                              for (let i = 0; i < bytesUsed; i++) {
                                                bitString.value.push(byteReverseBits2222222222(buffer[offset + len++]));
                                              }
                                              const unusedBits = buffer[offset] & 7;
                                              bitstringSetBitsUsed2222222222(bitString, bytesUsed, unusedBits);
                                            }
                                          }
                                          return {
                                            len,
                                            value: bitString
                                          };
                                        };
                                        var decodeDate2222222222 = (buffer, offset) => {
                                          let date;
                                          const year = buffer[offset] + 1900;
                                          const month = buffer[offset + 1];
                                          const day = buffer[offset + 2];
                                          const wday = buffer[offset + 3];
                                          if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                                            date = new Date(1, 1, 1);
                                          } else {
                                            date = new Date(year, month, day);
                                          }
                                          return {
                                            len: 4,
                                            value: date
                                          };
                                        };
                                        var decodeDateSafe2222222222 = (buffer, offset, lenValue) => {
                                          if (lenValue !== 4) {
                                            return {
                                              len: lenValue,
                                              value: new Date(1, 1, 1)
                                            };
                                          } else {
                                            return decodeDate2222222222(buffer, offset);
                                          }
                                        };
                                        var decodeApplicationDate2222222222 = (buffer, offset) => {
                                          const result = decodeTagNumber2222222222(buffer, offset);
                                          if (result.tagNumber === enums_default2222222222.ApplicationTag.DATE) {
                                            const value = decodeDate2222222222(buffer, offset + 1);
                                            return {
                                              len: value.len + 1,
                                              value
                                            };
                                          }
                                          return void 0;
                                        };
                                        var decodeBacnetTime2222222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                                          const hour = buffer[offset + 0];
                                          const min = buffer[offset + 1];
                                          const sec = buffer[offset + 2];
                                          let hundredths = buffer[offset + 3];
                                          if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                                            value = new Date(1, 1, 1);
                                          } else {
                                            if (hundredths > 100)
                                              hundredths = 0;
                                            value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                                          }
                                          return {
                                            len: 4,
                                            value
                                          };
                                        };
                                        var decodeBacnetTimeSafe2222222222 = (buffer, offset, lenValue) => {
                                          if (lenValue !== 4) {
                                            return {
                                              len: lenValue,
                                              value: new Date(1, 1, 1)
                                            };
                                          } else {
                                            return decodeBacnetTime2222222222(buffer, offset);
                                          }
                                        };
                                        var decodeApplicationTime2222222222 = (buffer, offset) => {
                                          const result = decodeTagNumber2222222222(buffer, offset);
                                          if (result.tagNumber === enums_default2222222222.ApplicationTag.TIME) {
                                            const value = decodeBacnetTime2222222222(buffer, offset + 1);
                                            return {
                                              len: value.len + 1,
                                              value
                                            };
                                          }
                                          return void 0;
                                        };
                                        var decodeBacnetDatetime2222222222 = (buffer, offset) => {
                                          let len = 0;
                                          const date = decodeApplicationDate2222222222(buffer, offset + len);
                                          len += date.len;
                                          const time = decodeApplicationTime2222222222(buffer, offset + len);
                                          len += time.len;
                                          return {
                                            len,
                                            value: new Date(
                                              date.year,
                                              date.month,
                                              date.day,
                                              time.hour,
                                              time.minute,
                                              time.second,
                                              time.millisecond
                                            )
                                          };
                                        };
                                        var bacappDecodeData2222222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                                          let result;
                                          let value = {
                                            len: 0,
                                            type: tagDataType
                                          };
                                          switch (tagDataType) {
                                            case enums_default2222222222.ApplicationTag.NULL:
                                              value.value = null;
                                              break;
                                            case enums_default2222222222.ApplicationTag.BOOLEAN:
                                              value.value = lenValueType > 0;
                                              break;
                                            case enums_default2222222222.ApplicationTag.UNSIGNED_INTEGER:
                                              result = decodeUnsigned2222222222(buffer, offset, lenValueType);
                                              value.len += result.len;
                                              value.value = result.value;
                                              break;
                                            case enums_default2222222222.ApplicationTag.SIGNED_INTEGER:
                                              result = decodeSigned2222222222(buffer, offset, lenValueType);
                                              value.len += result.len;
                                              value.value = result.value;
                                              break;
                                            case enums_default2222222222.ApplicationTag.REAL:
                                              result = decodeRealSafe2222222222(buffer, offset, lenValueType);
                                              value.len += result.len;
                                              value.value = result.value;
                                              break;
                                            case enums_default2222222222.ApplicationTag.DOUBLE:
                                              result = decodeDoubleSafe2222222222(buffer, offset, lenValueType);
                                              value.len += result.len;
                                              value.value = result.value;
                                              break;
                                            case enums_default2222222222.ApplicationTag.OCTET_STRING:
                                              result = decodeOctetString2222222222(buffer, offset, maxLength, 0, lenValueType);
                                              value.len += result.len;
                                              value.value = result.value;
                                              break;
                                            case enums_default2222222222.ApplicationTag.CHARACTER_STRING:
                                              result = decodeCharacterString2222222222(buffer, offset, maxLength, lenValueType);
                                              value.len += result.len;
                                              value.value = result.value;
                                              value.encoding = result.encoding;
                                              break;
                                            case enums_default2222222222.ApplicationTag.BIT_STRING:
                                              result = decodeBitstring2222222222(buffer, offset, lenValueType);
                                              value.len += result.len;
                                              value.value = result.value;
                                              break;
                                            case enums_default2222222222.ApplicationTag.ENUMERATED:
                                              result = decodeEnumerated2222222222(buffer, offset, lenValueType);
                                              value.len += result.len;
                                              value.value = result.value;
                                              break;
                                            case enums_default2222222222.ApplicationTag.DATE:
                                              result = decodeDateSafe2222222222(buffer, offset, lenValueType);
                                              value.len += result.len;
                                              value.value = result.value;
                                              break;
                                            case enums_default2222222222.ApplicationTag.TIME:
                                              result = decodeBacnetTimeSafe2222222222(buffer, offset, lenValueType);
                                              value.len += result.len;
                                              value.value = result.value;
                                              break;
                                            case enums_default2222222222.ApplicationTag.OBJECTIDENTIFIER:
                                              result = decodeObjectIdSafe2222222222(buffer, offset, lenValueType);
                                              value.len += result.len;
                                              value.value = { type: result.objectType, instance: result.instance };
                                              break;
                                            default:
                                              break;
                                          }
                                          return value;
                                        };
                                        var bacappContextTagType2222222222 = (property, tagNumber) => {
                                          let tag = 0;
                                          switch (property) {
                                            case enums_default2222222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                                            case enums_default2222222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                                            case enums_default2222222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                                              switch (tagNumber) {
                                                case 0:
                                                case 1:
                                                  tag = enums_default2222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                  break;
                                                case 2:
                                                  tag = enums_default2222222222.ApplicationTag.REAL;
                                                  break;
                                                default:
                                                  break;
                                              }
                                              break;
                                            case enums_default2222222222.PropertyIdentifier.ACTION:
                                              switch (tagNumber) {
                                                case 0:
                                                case 1:
                                                  tag = enums_default2222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                  break;
                                                case 2:
                                                  tag = enums_default2222222222.ApplicationTag.ENUMERATED;
                                                  break;
                                                case 3:
                                                case 5:
                                                case 6:
                                                  tag = enums_default2222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                  break;
                                                case 7:
                                                case 8:
                                                  tag = enums_default2222222222.ApplicationTag.BOOLEAN;
                                                  break;
                                                default:
                                                  break;
                                              }
                                              break;
                                            case enums_default2222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                                              switch (tagNumber) {
                                                case 0:
                                                  tag = enums_default2222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                  break;
                                                default:
                                                  break;
                                              }
                                              break;
                                            case enums_default2222222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                                              switch (tagNumber) {
                                                case 1:
                                                  tag = enums_default2222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                  break;
                                                case 3:
                                                  tag = enums_default2222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                  break;
                                                default:
                                                  break;
                                              }
                                              break;
                                            case enums_default2222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                                              switch (tagNumber) {
                                                case 0:
                                                case 3:
                                                  tag = enums_default2222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                  break;
                                                case 1:
                                                  tag = enums_default2222222222.ApplicationTag.ENUMERATED;
                                                  break;
                                                case 2:
                                                  tag = enums_default2222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                  break;
                                                default:
                                                  break;
                                              }
                                              break;
                                            case enums_default2222222222.PropertyIdentifier.SUBORDINATE_LIST:
                                              switch (tagNumber) {
                                                case 0:
                                                case 1:
                                                  tag = enums_default2222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                  break;
                                                default:
                                                  break;
                                              }
                                              break;
                                            case enums_default2222222222.PropertyIdentifier.RECIPIENT_LIST:
                                              switch (tagNumber) {
                                                case 0:
                                                  tag = enums_default2222222222.ApplicationTag.OBJECTIDENTIFIER;
                                                  break;
                                                default:
                                                  break;
                                              }
                                              break;
                                            case enums_default2222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                                              switch (tagNumber) {
                                                case 0:
                                                case 1:
                                                  break;
                                                case 2:
                                                  tag = enums_default2222222222.ApplicationTag.BOOLEAN;
                                                  break;
                                                case 3:
                                                  tag = enums_default2222222222.ApplicationTag.UNSIGNED_INTEGER;
                                                  break;
                                                case 4:
                                                  tag = enums_default2222222222.ApplicationTag.REAL;
                                                  break;
                                                default:
                                                  break;
                                              }
                                              break;
                                            default:
                                              break;
                                          }
                                          return tag;
                                        };
                                        var decodeDeviceObjPropertyRef2222222222 = (buffer, offset, NOTUSEDARG = 0) => {
                                          let len = 0;
                                          let arrayIndex = enums_default2222222222.ASN1_ARRAY_ALL;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          let objectId = decodeObjectId2222222222(buffer, offset + len);
                                          len += objectId.len;
                                          let result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 1) {
                                            return void 0;
                                          }
                                          let id = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += id.len;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          if (result.tagNumber === 2) {
                                            len += result.len;
                                            arrayIndex = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += arrayIndex.len;
                                          }
                                          if (decodeIsContextTag2222222222(buffer, offset + len, 3)) {
                                            if (!isClosingTag2222222222(buffer[offset + len])) {
                                              len++;
                                              objectId = decodeObjectId2222222222(buffer, offset + len);
                                              len += objectId.len;
                                            }
                                          }
                                          return {
                                            len,
                                            value: {
                                              objectId,
                                              id
                                            }
                                          };
                                        };
                                        var decodeReadAccessSpecification2222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let value = {};
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          let decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          value.objectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          len += decodedValue.len;
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          len++;
                                          const propertyIdAndArrayIndex = [];
                                          while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222222(buffer, offset + len, 1)) {
                                            let propertyRef = {};
                                            if (!isContextSpecific2222222222(buffer[offset + len])) {
                                              return void 0;
                                            }
                                            let result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 0) {
                                              return void 0;
                                            }
                                            if (len + result.value >= apduLen) {
                                              return void 0;
                                            }
                                            decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            propertyRef.id = decodedValue.value;
                                            len += decodedValue.len;
                                            propertyRef.index = enums_default2222222222.ASN1_ARRAY_ALL;
                                            if (isContextSpecific2222222222(buffer[offset + len]) && !isClosingTag2222222222(buffer[offset + len])) {
                                              const tmp = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              if (tmp.tagNumber === 1) {
                                                len += tmp.len;
                                                if (len + tmp.value >= apduLen) {
                                                  return void 0;
                                                }
                                                decodedValue = decodeUnsigned2222222222(buffer, offset + len, tmp.value);
                                                propertyRef.index = decodedValue.value;
                                                len += decodedValue.len;
                                              }
                                            }
                                            propertyIdAndArrayIndex.push(propertyRef);
                                          }
                                          if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          len++;
                                          value.properties = propertyIdAndArrayIndex;
                                          return {
                                            len,
                                            value
                                          };
                                        };
                                        var decodeCovSubscription2222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let value = {};
                                          let result;
                                          let decodedValue;
                                          value.recipient = {};
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          len++;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== enums_default2222222222.ApplicationTag.UNSIGNED_INTEGER) {
                                            return void 0;
                                          }
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.recipient.net = decodedValue.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== enums_default2222222222.ApplicationTag.OCTET_STRING) {
                                            return void 0;
                                          }
                                          decodedValue = decodeOctetString2222222222(
                                            buffer,
                                            offset + len,
                                            apduLen,
                                            0,
                                            result.value
                                          );
                                          len += decodedValue.len;
                                          value.recipient.adr = decodedValue.value;
                                          if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          len++;
                                          if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 1) {
                                            return void 0;
                                          }
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.subscriptionProcessId = decodedValue.value;
                                          if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          len++;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 0) {
                                            return void 0;
                                          }
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          value.monitoredObjectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 1) {
                                            return void 0;
                                          }
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.monitoredProperty = {};
                                          value.monitoredProperty.id = decodedValue.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          if (result.tagNumber === 2) {
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.monitoredProperty.index = decodedValue.value;
                                          } else {
                                            value.monitoredProperty.index = enums_default2222222222.ASN1_ARRAY_ALL;
                                          }
                                          if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          len++;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 2) {
                                            return void 0;
                                          }
                                          value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                          len++;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 3) {
                                            return void 0;
                                          }
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.timeRemaining = decodedValue.value;
                                          if (len < apduLen && !isClosingTag2222222222(buffer[offset + len])) {
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 4) {
                                              return void 0;
                                            }
                                            decodedValue = decodeReal2222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            value.covIncrement = decodedValue.value;
                                          }
                                          return {
                                            len,
                                            value
                                          };
                                        };
                                        var decodeCalendarDate2222222222 = (buffer, offset) => {
                                          return {
                                            len: 4,
                                            year: buffer[offset],
                                            month: buffer[offset + 1],
                                            day: buffer[offset + 2],
                                            wday: buffer[offset + 3]
                                          };
                                        };
                                        var decodeCalendarDateRange2222222222 = (buffer, offset) => {
                                          let len = 1;
                                          const startDate = decodeDate2222222222(buffer, offset + len);
                                          len += startDate.len + 1;
                                          const endDate = decodeDate2222222222(buffer, offset + len);
                                          len += endDate.len + 1;
                                          return {
                                            len,
                                            startDate,
                                            endDate
                                          };
                                        };
                                        var decodeCalendarWeekDay2222222222 = (buffer, offset) => {
                                          return {
                                            len: 3,
                                            month: buffer[offset],
                                            week: buffer[offset + 1],
                                            wday: buffer[offset + 2]
                                          };
                                        };
                                        var decodeCalendar2222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          const entries = [];
                                          let decodedValue;
                                          while (len < apduLen) {
                                            const result = decodeTagNumber2222222222(buffer, offset + len);
                                            len += result.len;
                                            switch (result.tagNumber) {
                                              case 0:
                                                decodedValue = decodeCalendarDate2222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                entries.push(decodedValue);
                                                break;
                                              case 1:
                                                decodedValue = decodeCalendarDateRange2222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                entries.push(decodedValue);
                                                break;
                                              case 2:
                                                decodedValue = decodeCalendarWeekDay2222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                entries.push(decodedValue);
                                                break;
                                              default:
                                                return {
                                                  len: len - 1,
                                                  value: entries
                                                };
                                            }
                                          }
                                        };
                                        var bacappDecodeContextApplicationData2222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                          let len = 0;
                                          let result;
                                          if (isContextSpecific2222222222(buffer[offset])) {
                                            if (propertyId === enums_default2222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                                              result = decodeReadAccessSpecification2222222222(buffer, offset, maxOffset);
                                              if (!result) {
                                                return void 0;
                                              }
                                              return {
                                                type: enums_default2222222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                                value: result.value,
                                                len: result.len
                                              };
                                            } else if (propertyId === enums_default2222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                                              result = decodeCovSubscription2222222222(buffer, offset, maxOffset);
                                              if (!result) {
                                                return void 0;
                                              }
                                              return {
                                                type: enums_default2222222222.ApplicationTag.COV_SUBSCRIPTION,
                                                value: result.value,
                                                len: result.len
                                              };
                                            } else if (objectType === enums_default2222222222.ObjectType.GROUP && propertyId === enums_default2222222222.PropertyIdentifier.PRESENT_VALUE) {
                                              result = decodeReadAccessResult2222222222(buffer, offset, maxOffset);
                                              if (!result) {
                                                return void 0;
                                              }
                                              return {
                                                type: enums_default2222222222.ApplicationTag.READ_ACCESS_RESULT,
                                                value: result.value,
                                                len: result.len
                                              };
                                            } else if (propertyId === enums_default2222222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default2222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default2222222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                                              result = decodeDeviceObjPropertyRef2222222222(buffer, offset, maxOffset);
                                              if (!result) {
                                                return void 0;
                                              }
                                              return {
                                                type: enums_default2222222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                                value: result.value,
                                                len: result.len
                                              };
                                            } else if (propertyId === enums_default2222222222.PropertyIdentifier.DATE_LIST) {
                                              result = decodeCalendar2222222222(buffer, offset, maxOffset);
                                              if (!result) {
                                                return void 0;
                                              }
                                              return {
                                                type: enums_default2222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                                value: result.value,
                                                len: result.len
                                              };
                                            } else if (propertyId === enums_default2222222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                                              let subEvtResult;
                                              let evtResult = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += 1;
                                              if (evtResult.tagNumber === 0) {
                                                subEvtResult = decodeBacnetTime2222222222(buffer, offset + 1);
                                                return {
                                                  type: enums_default2222222222.ApplicationTag.TIMESTAMP,
                                                  value: subEvtResult.value,
                                                  len: subEvtResult.len + 1
                                                };
                                              } else if (evtResult.tagNumber === 1) {
                                                subEvtResult = decodeUnsigned2222222222(buffer, offset + len, evtResult.value);
                                                return {
                                                  type: enums_default2222222222.ApplicationTag.UNSIGNED_INTEGER,
                                                  value: subEvtResult.value,
                                                  len: subEvtResult.len + 1
                                                };
                                              } else if (evtResult.tagNumber === 2) {
                                                subEvtResult = decodeBacnetDatetime2222222222(buffer, offset + len);
                                                return {
                                                  type: enums_default2222222222.ApplicationTag.TIMESTAMP,
                                                  value: subEvtResult.value,
                                                  len: subEvtResult.len + 2
                                                };
                                              } else {
                                                return void 0;
                                              }
                                            }
                                            const list = [];
                                            let tagResult = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            let multipleValues = isOpeningTag2222222222(buffer[offset + len]);
                                            while (len + offset <= maxOffset && !isClosingTag2222222222(buffer[offset + len])) {
                                              let subResult = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              if (!subResult) {
                                                return void 0;
                                              }
                                              if (subResult.value === 0) {
                                                len += subResult.len;
                                                result = bacappDecodeApplicationData2222222222(
                                                  buffer,
                                                  offset + len,
                                                  maxOffset,
                                                  enums_default2222222222.ASN1_MAX_OBJECT_TYPE,
                                                  enums_default2222222222.ASN1_MAX_PROPERTY_ID
                                                );
                                                if (!result) {
                                                  return void 0;
                                                }
                                                list.push(result);
                                                len += result.len;
                                              } else {
                                                const overrideTagNumber = bacappContextTagType2222222222(
                                                  propertyId,
                                                  subResult.tagNumber
                                                );
                                                if (overrideTagNumber !== enums_default2222222222.ASN1_MAX_APPLICATION_TAG) {
                                                  subResult.tagNumber = overrideTagNumber;
                                                }
                                                let bacappResult = bacappDecodeData2222222222(
                                                  buffer,
                                                  offset + len + subResult.len,
                                                  maxOffset,
                                                  subResult.tagNumber,
                                                  subResult.value
                                                );
                                                if (!bacappResult) {
                                                  return void 0;
                                                }
                                                if (bacappResult.len === subResult.value) {
                                                  let resObj = {
                                                    value: bacappResult.value,
                                                    type: bacappResult.type
                                                  };
                                                  if (bacappResult.encoding !== void 0)
                                                    resObj.encoding = bacappResult.encoding;
                                                  list.push(resObj);
                                                  len += subResult.len + subResult.value;
                                                } else {
                                                  list.push({
                                                    value: buffer.slice(
                                                      offset + len + subResult.len,
                                                      offset + len + subResult.len + subResult.value
                                                    ),
                                                    type: enums_default2222222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                                  });
                                                  len += subResult.len + subResult.value;
                                                }
                                              }
                                              if (multipleValues === false) {
                                                return {
                                                  len,
                                                  value: list[0],
                                                  type: enums_default2222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                                };
                                              }
                                            }
                                            if (len + offset > maxOffset) {
                                              return void 0;
                                            }
                                            if (decodeIsClosingTagNumber2222222222(buffer, offset + len, tagResult.tagNumber)) {
                                              len++;
                                            }
                                            return {
                                              len,
                                              value: list,
                                              type: enums_default2222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                            };
                                          }
                                          return void 0;
                                        };
                                        var bacappEncodeTimestamp2222222222 = (buffer, value) => {
                                          switch (value.type) {
                                            case enums_default2222222222.TimeStamp.TIME:
                                              encodeContextTime2222222222(buffer, 0, value.value);
                                              break;
                                            case enums_default2222222222.TimeStamp.SEQUENCE_NUMBER:
                                              encodeContextUnsigned2222222222(buffer, 1, value.value);
                                              break;
                                            case enums_default2222222222.TimeStamp.DATETIME:
                                              bacappEncodeContextDatetime2222222222(buffer, 2, value.value);
                                              break;
                                            default:
                                              throw new Error("NOT_IMPLEMENTED");
                                          }
                                        };
                                        var bacappEncodeContextTimestamp2222222222 = (buffer, tagNumber, value) => {
                                          encodeOpeningTag2222222222(buffer, tagNumber);
                                          bacappEncodeTimestamp2222222222(buffer, value);
                                          encodeClosingTag2222222222(buffer, tagNumber);
                                        };
                                        var decodeContextCharacterString2222222222 = (buffer, offset, maxLength, tagNumber) => {
                                          let len = 0;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, tagNumber)) {
                                            return void 0;
                                          }
                                          const result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          const decodedValue = multiCharsetCharacterstringDecode2222222222(
                                            buffer,
                                            offset + 1 + len,
                                            maxLength,
                                            buffer[offset + len],
                                            result.value - 1
                                          );
                                          if (!decodedValue) {
                                            return void 0;
                                          }
                                          len += result.value;
                                          return {
                                            len,
                                            value: decodedValue.value,
                                            encoding: decodedValue.encoding
                                          };
                                        };
                                        var decodeIsContextTagWithLength2222222222 = (buffer, offset, tagNumber) => {
                                          const result = decodeTagNumber2222222222(buffer, offset);
                                          return {
                                            len: result.len,
                                            value: isContextSpecific2222222222(buffer[offset]) && result.tagNumber === tagNumber
                                          };
                                        };
                                        var decodeContextObjectId2222222222 = (buffer, offset, tagNumber) => {
                                          const result = decodeIsContextTagWithLength2222222222(buffer, offset, tagNumber);
                                          if (!result.value) {
                                            return void 0;
                                          }
                                          const decodedValue = decodeObjectId2222222222(buffer, offset + result.len);
                                          decodedValue.len = decodedValue.len + result.len;
                                          return decodedValue;
                                        };
                                        var encodeBacnetCharacterString2222222222 = (buffer, value, encoding) => {
                                          encoding = encoding || enums_default2222222222.CharacterStringEncoding.UTF_8;
                                          buffer.buffer[buffer.offset++] = encoding;
                                          const bufEncoded = import_iconv_lite2222222222.default.encode(value, getEncodingType2222222222(encoding));
                                          buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                                        };
                                        var encodeApplicationCharacterString2222222222 = (buffer, value, encoding) => {
                                          const tmp = getBuffer2222222222();
                                          encodeBacnetCharacterString2222222222(tmp, value, encoding);
                                          encodeTag2222222222(buffer, enums_default2222222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                          buffer.offset += tmp.offset;
                                        };
                                        var encodeContextCharacterString2222222222 = (buffer, tagNumber, value, encoding) => {
                                          const tmp = getBuffer2222222222();
                                          encodeBacnetCharacterString2222222222(tmp, value, encoding);
                                          encodeTag2222222222(buffer, tagNumber, true, tmp.offset);
                                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                          buffer.offset += tmp.offset;
                                        };
                                        var encode33222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                          encodeContextObjectId2222222222(buffer, 0, objectId.type, objectId.instance);
                                          encodeContextEnumerated2222222222(buffer, 1, propertyId);
                                          if (arrayIndex !== ASN1_ARRAY_ALL2222222222) {
                                            encodeContextUnsigned2222222222(buffer, 2, arrayIndex);
                                          }
                                          encodeOpeningTag2222222222(buffer, 3);
                                          values.forEach((value) => {
                                            bacappEncodeApplicationData2222222222(buffer, value);
                                          });
                                          encodeClosingTag2222222222(buffer, 3);
                                        };
                                        var decode33222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let value = {};
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          value.objectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.property = { id: decodedValue.value };
                                          if (len < apduLen && decodeIsContextTag2222222222(buffer, offset + len, 2)) {
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.property.index = decodedValue.value;
                                          } else {
                                            value.property.index = ASN1_ARRAY_ALL2222222222;
                                          }
                                          const values = [];
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 3)) {
                                            return void 0;
                                          }
                                          len++;
                                          while (apduLen - len > 1) {
                                            result = bacappDecodeApplicationData2222222222(
                                              buffer,
                                              offset + len,
                                              apduLen + offset,
                                              value.objectId.type,
                                              value.property.id
                                            );
                                            if (!result) {
                                              return void 0;
                                            }
                                            len += result.len;
                                            delete result.len;
                                            values.push(result);
                                          }
                                          value.values = values;
                                          if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 3)) {
                                            return void 0;
                                          }
                                          len++;
                                          value.len = len;
                                          return value;
                                        };
                                        var alarm_acknowledge_exports2222222222 = {};
                                        __export2222222222(alarm_acknowledge_exports2222222222, {
                                          decode: () => decode210222222222,
                                          encode: () => encode210222222222
                                        });
                                        var encode210222222222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                                          encodeContextUnsigned2222222222(buffer, 0, ackProcessId);
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            1,
                                            eventObjectId.type,
                                            eventObjectId.instance
                                          );
                                          encodeContextEnumerated2222222222(buffer, 2, eventStateAcknowledged);
                                          bacappEncodeContextTimestamp2222222222(buffer, 3, eventTimeStamp);
                                          encodeContextCharacterString2222222222(buffer, 4, ackSource);
                                          bacappEncodeContextTimestamp2222222222(buffer, 5, ackTimeStamp);
                                        };
                                        var decode210222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let value = {};
                                          let result;
                                          let decodedValue;
                                          let date;
                                          let time;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.acknowledgedProcessId = decodedValue.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          value.eventObjectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.eventStateAcknowledged = decodedValue.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber === 0) {
                                            decodedValue = decodeBacnetTime2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.eventTimeStamp = decodedValue.value;
                                          } else if (result.tagNumber === 1) {
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.eventTimeStamp = decodedValue.value;
                                          } else if (result.tagNumber === 2) {
                                            date = decodeApplicationDate2222222222(buffer, offset + len);
                                            len += date.len;
                                            date = date.value.value;
                                            time = decodeApplicationTime2222222222(buffer, offset + len);
                                            len += time.len;
                                            time = time.value.value;
                                            value.eventTimeStamp = new Date(
                                              date.getFullYear(),
                                              date.getMonth(),
                                              date.getDate(),
                                              time.getHours(),
                                              time.getMinutes(),
                                              time.getSeconds(),
                                              time.getMilliseconds()
                                            );
                                            len++;
                                          }
                                          len++;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeCharacterString2222222222(
                                            buffer,
                                            offset + len,
                                            apduLen - (offset + len),
                                            result.value
                                          );
                                          value.acknowledgeSource = decodedValue.value;
                                          len += decodedValue.len;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber === 0) {
                                            decodedValue = decodeBacnetTime2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.acknowledgeTimeStamp = decodedValue.value;
                                          } else if (result.tagNumber === 1) {
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.acknowledgeTimeStamp = decodedValue.value;
                                          } else if (result.tagNumber === 2) {
                                            date = decodeApplicationDate2222222222(buffer, offset + len);
                                            len += date.len;
                                            date = date.value.value;
                                            time = decodeApplicationTime2222222222(buffer, offset + len);
                                            len += time.len;
                                            time = time.value.value;
                                            value.acknowledgeTimeStamp = new Date(
                                              date.getFullYear(),
                                              date.getMonth(),
                                              date.getDate(),
                                              time.getHours(),
                                              time.getMinutes(),
                                              time.getSeconds(),
                                              time.getMilliseconds()
                                            );
                                            len++;
                                          }
                                          len++;
                                          value.len = len;
                                          return value;
                                        };
                                        var alarm_summary_exports2222222222 = {};
                                        __export2222222222(alarm_summary_exports2222222222, {
                                          decode: () => decode34222222222,
                                          encode: () => encode34222222222
                                        });
                                        var encode34222222222 = (buffer, alarms) => {
                                          alarms.forEach((alarm) => {
                                            encodeContextObjectId2222222222(
                                              buffer,
                                              12,
                                              alarm.objectId.type,
                                              alarm.objectId.instance
                                            );
                                            encodeContextEnumerated2222222222(buffer, 9, alarm.alarmState);
                                            encodeContextBitstring2222222222(buffer, 8, alarm.acknowledgedTransitions);
                                          });
                                        };
                                        var decode34222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          const alarms = [];
                                          while (apduLen - 3 - len > 0) {
                                            let value = {};
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            value.objectId = {
                                              type: decodedValue.objectType,
                                              instance: decodedValue.instance
                                            };
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.alarmState = decodedValue.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeBitstring2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.acknowledgedTransitions = decodedValue.value;
                                            alarms.push(value);
                                          }
                                          return {
                                            len,
                                            alarms
                                          };
                                        };
                                        var atomic_read_file_exports2222222222 = {};
                                        __export2222222222(atomic_read_file_exports2222222222, {
                                          decode: () => decode42222222222,
                                          decodeAcknowledge: () => decodeAcknowledge8222222222,
                                          encode: () => encode42222222222,
                                          encodeAcknowledge: () => encodeAcknowledge9222222222
                                        });
                                        var encode42222222222 = (buffer, isStream, objectId, position, count) => {
                                          encodeApplicationObjectId2222222222(buffer, objectId.type, objectId.instance);
                                          if (isStream) {
                                            encodeOpeningTag2222222222(buffer, 0);
                                            encodeApplicationSigned2222222222(buffer, position);
                                            encodeApplicationUnsigned2222222222(buffer, count);
                                            encodeClosingTag2222222222(buffer, 0);
                                          } else {
                                            encodeOpeningTag2222222222(buffer, 1);
                                            encodeApplicationSigned2222222222(buffer, position);
                                            encodeApplicationUnsigned2222222222(buffer, count);
                                            encodeClosingTag2222222222(buffer, 1);
                                          }
                                        };
                                        var decode42222222222 = (buffer, offset) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let isStream = true;
                                          let objectId = {};
                                          let position = -1;
                                          let count = 0;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 12) {
                                            return void 0;
                                          }
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                                          if (decodeIsOpeningTagNumber2222222222(buffer, offset + len, 0)) {
                                            isStream = true;
                                            len++;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 3) {
                                              return void 0;
                                            }
                                            decodedValue = decodeSigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            position = decodedValue.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 2) {
                                              return void 0;
                                            }
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            count = decodedValue.value;
                                            if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 0)) {
                                              return void 0;
                                            }
                                            len++;
                                          } else if (decodeIsOpeningTagNumber2222222222(buffer, offset + len, 1)) {
                                            isStream = false;
                                            len++;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 3) {
                                              return void 0;
                                            }
                                            decodedValue = decodeSigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            position = decodedValue.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 2) {
                                              return void 0;
                                            }
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            count = decodedValue.value;
                                            if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 1)) {
                                              return void 0;
                                            }
                                            len++;
                                          } else {
                                            return void 0;
                                          }
                                          return {
                                            len,
                                            isStream,
                                            objectId,
                                            position,
                                            count
                                          };
                                        };
                                        var encodeAcknowledge9222222222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                                          encodeApplicationBoolean2222222222(buffer, endOfFile);
                                          if (isStream) {
                                            encodeOpeningTag2222222222(buffer, 0);
                                            encodeApplicationSigned2222222222(buffer, position);
                                            encodeApplicationOctetString2222222222(buffer, blocks[0], 0, counts[0]);
                                            encodeClosingTag2222222222(buffer, 0);
                                          } else {
                                            encodeOpeningTag2222222222(buffer, 1);
                                            encodeApplicationSigned2222222222(buffer, position);
                                            encodeApplicationUnsigned2222222222(buffer, blockCount);
                                            for (let i = 0; i < blockCount; i++) {
                                              encodeApplicationOctetString2222222222(buffer, blocks[i], 0, counts[i]);
                                            }
                                            encodeClosingTag2222222222(buffer, 1);
                                          }
                                        };
                                        var decodeAcknowledge8222222222 = (buffer, offset, length = 0) => {
                                          let len = length;
                                          let result;
                                          let decodedValue;
                                          let endOfFile;
                                          let isStream;
                                          let position;
                                          let targetBuffer;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 1) {
                                            return void 0;
                                          }
                                          endOfFile = result.value > 0;
                                          if (decodeIsOpeningTagNumber2222222222(buffer, offset + len, 0)) {
                                            isStream = true;
                                            len++;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 3) {
                                              return void 0;
                                            }
                                            decodedValue = decodeSigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            position = decodedValue.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 6) {
                                              return void 0;
                                            }
                                            targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                                            len += result.value;
                                            if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 0)) {
                                              return void 0;
                                            }
                                            len++;
                                          } else if (decodeIsOpeningTagNumber2222222222(buffer, offset + len, 1)) {
                                            isStream = false;
                                            throw new Error("NotImplemented");
                                          } else {
                                            return void 0;
                                          }
                                          return {
                                            len,
                                            endOfFile,
                                            isStream,
                                            position,
                                            buffer: targetBuffer
                                          };
                                        };
                                        var atomic_write_file_exports2222222222 = {};
                                        __export2222222222(atomic_write_file_exports2222222222, {
                                          decode: () => decode52222222222,
                                          decodeAcknowledge: () => decodeAcknowledge22222222222,
                                          encode: () => encode52222222222,
                                          encodeAcknowledge: () => encodeAcknowledge22222222222
                                        });
                                        var encode52222222222 = (buffer, isStream, objectId, position, blocks) => {
                                          encodeApplicationObjectId2222222222(buffer, objectId.type, objectId.instance);
                                          if (isStream) {
                                            encodeOpeningTag2222222222(buffer, 0);
                                            encodeApplicationSigned2222222222(buffer, position);
                                            encodeApplicationOctetString2222222222(buffer, blocks[0], 0, blocks[0].length);
                                            encodeClosingTag2222222222(buffer, 0);
                                          } else {
                                            encodeOpeningTag2222222222(buffer, 1);
                                            encodeApplicationSigned2222222222(buffer, position);
                                            encodeApplicationUnsigned2222222222(buffer, blocks.length);
                                            for (let i = 0; i < blocks.length; i++) {
                                              encodeApplicationOctetString2222222222(
                                                buffer,
                                                blocks[i],
                                                0,
                                                blocks[i].length
                                              );
                                            }
                                            encodeClosingTag2222222222(buffer, 1);
                                          }
                                        };
                                        var decode52222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let isStream;
                                          let position;
                                          let blocks = [];
                                          let blockCount;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 12) {
                                            return void 0;
                                          }
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          let objectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          if (decodeIsOpeningTagNumber2222222222(buffer, offset + len, 0)) {
                                            isStream = true;
                                            len++;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 3) {
                                              return void 0;
                                            }
                                            decodedValue = decodeSigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            position = decodedValue.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 6) {
                                              return void 0;
                                            }
                                            decodedValue = decodeOctetString2222222222(
                                              buffer,
                                              offset + len,
                                              apduLen,
                                              0,
                                              result.value
                                            );
                                            len += decodedValue.len;
                                            blocks.push(decodedValue.value);
                                            if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 0)) {
                                              return void 0;
                                            }
                                            len++;
                                          } else if (decodeIsOpeningTagNumber2222222222(buffer, offset + len, 1)) {
                                            isStream = false;
                                            len++;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 3) {
                                              return void 0;
                                            }
                                            decodedValue = decodeSigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            position = decodedValue.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 2) {
                                              return void 0;
                                            }
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            blockCount = decodedValue.value;
                                            for (let i = 0; i < blockCount; i++) {
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber !== 6) {
                                                return void 0;
                                              }
                                              decodedValue = decodeOctetString2222222222(
                                                buffer,
                                                offset + len,
                                                apduLen,
                                                0,
                                                result.value
                                              );
                                              len += decodedValue.len;
                                              blocks.push(decodedValue.value);
                                            }
                                            if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 1)) {
                                              return void 0;
                                            }
                                            len++;
                                          } else {
                                            return void 0;
                                          }
                                          return {
                                            len,
                                            isStream,
                                            objectId,
                                            position,
                                            blocks
                                          };
                                        };
                                        var encodeAcknowledge22222222222 = (buffer, isStream, position) => {
                                          if (isStream) {
                                            encodeContextSigned2222222222(buffer, 0, position);
                                          } else {
                                            encodeContextSigned2222222222(buffer, 1, position);
                                          }
                                        };
                                        var decodeAcknowledge22222222222 = (buffer, offset, length = 0) => {
                                          let len = length;
                                          let isStream = false;
                                          let position = 0;
                                          let decodedValue;
                                          const result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber === 0) {
                                            isStream = true;
                                          } else if (result.tagNumber === 1) {
                                            isStream = false;
                                          } else {
                                            return void 0;
                                          }
                                          decodedValue = decodeSigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          position = decodedValue.value;
                                          return {
                                            len,
                                            isStream,
                                            position
                                          };
                                        };
                                        var cov_notify_exports2222222222 = {};
                                        __export2222222222(cov_notify_exports2222222222, {
                                          decode: () => decode62222222222,
                                          encode: () => encode62222222222
                                        });
                                        var encode62222222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                                          encodeContextUnsigned2222222222(buffer, 0, subscriberProcessId);
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            1,
                                            8,
                                            initiatingDeviceId
                                          );
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            2,
                                            monitoredObjectId.type,
                                            monitoredObjectId.instance
                                          );
                                          encodeContextUnsigned2222222222(buffer, 3, timeRemaining);
                                          encodeOpeningTag2222222222(buffer, 4);
                                          values.forEach((value) => {
                                            encodeContextEnumerated2222222222(buffer, 0, value.property.id);
                                            if (value.property.index === ASN1_ARRAY_ALL2222222222) {
                                              encodeContextUnsigned2222222222(buffer, 1, value.property.index);
                                            }
                                            encodeOpeningTag2222222222(buffer, 2);
                                            value.value.forEach((v) => {
                                              bacappEncodeApplicationData2222222222(buffer, v);
                                            });
                                            encodeClosingTag2222222222(buffer, 2);
                                            if (value.priority === ASN1_NO_PRIORITY2222222222) {
                                              encodeContextUnsigned2222222222(buffer, 3, value.priority);
                                            }
                                          });
                                          encodeClosingTag2222222222(buffer, 4);
                                        };
                                        var decode62222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          const subscriberProcessId = decodedValue.value;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          const initiatingDeviceId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 2)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          const monitoredObjectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 3)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          const timeRemaining = decodedValue.value;
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 4)) {
                                            return void 0;
                                          }
                                          len++;
                                          const values = [];
                                          while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222222(buffer, offset + len, 4)) {
                                            let newEntry = {};
                                            newEntry.property = {};
                                            if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                              return void 0;
                                            }
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            newEntry.property.id = decodedValue.value;
                                            if (decodeIsContextTag2222222222(buffer, offset + len, 1)) {
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              newEntry.property.index = decodedValue.value;
                                            } else {
                                              newEntry.property.index = ASN1_ARRAY_ALL2222222222;
                                            }
                                            if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 2)) {
                                              return void 0;
                                            }
                                            len++;
                                            const properties = [];
                                            while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222222(buffer, offset + len, 2)) {
                                              decodedValue = bacappDecodeApplicationData2222222222(
                                                buffer,
                                                offset + len,
                                                apduLen + offset,
                                                monitoredObjectId.type,
                                                newEntry.property.id
                                              );
                                              if (!decodedValue) {
                                                return void 0;
                                              }
                                              len += decodedValue.len;
                                              delete decodedValue.len;
                                              properties.push(decodedValue);
                                            }
                                            newEntry.value = properties;
                                            len++;
                                            if (decodeIsContextTag2222222222(buffer, offset + len, 3)) {
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              newEntry.priority = decodedValue.value;
                                            } else {
                                              newEntry.priority = ASN1_NO_PRIORITY2222222222;
                                            }
                                            values.push(newEntry);
                                          }
                                          return {
                                            len,
                                            subscriberProcessId,
                                            initiatingDeviceId,
                                            monitoredObjectId,
                                            timeRemaining,
                                            values
                                          };
                                        };
                                        var create_object_exports2222222222 = {};
                                        __export2222222222(create_object_exports2222222222, {
                                          decode: () => decode72222222222,
                                          encode: () => encode72222222222,
                                          encodeAcknowledge: () => encodeAcknowledge32222222222
                                        });
                                        var encode72222222222 = (buffer, objectId, values) => {
                                          encodeOpeningTag2222222222(buffer, 0);
                                          encodeContextObjectId2222222222(buffer, 1, objectId.type, objectId.instance);
                                          encodeClosingTag2222222222(buffer, 0);
                                          encodeOpeningTag2222222222(buffer, 1);
                                          values.forEach((propertyValue) => {
                                            encodeContextEnumerated2222222222(buffer, 0, propertyValue.property.id);
                                            if (propertyValue.property.index !== ASN1_ARRAY_ALL2222222222) {
                                              encodeContextUnsigned2222222222(buffer, 1, propertyValue.property.index);
                                            }
                                            encodeOpeningTag2222222222(buffer, 2);
                                            propertyValue.value.forEach((value) => {
                                              bacappEncodeApplicationData2222222222(buffer, value);
                                            });
                                            encodeClosingTag2222222222(buffer, 2);
                                            if (propertyValue.priority !== ASN1_NO_PRIORITY2222222222) {
                                              encodeContextUnsigned2222222222(buffer, 3, propertyValue.priority);
                                            }
                                          });
                                          encodeClosingTag2222222222(buffer, 1);
                                        };
                                        var decode72222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let objectId;
                                          const valueList = [];
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber === 0 && apduLen > len) {
                                            apduLen -= len;
                                            if (apduLen < 4) {
                                              return void 0;
                                            }
                                            decodedValue = decodeContextObjectId2222222222(buffer, offset + len, 1);
                                            len += decodedValue.len;
                                            objectId = {
                                              type: decodedValue.objectType,
                                              instance: decodedValue.instance
                                            };
                                          } else {
                                            return void 0;
                                          }
                                          if (decodeIsClosingTag2222222222(buffer, offset + len)) {
                                            len++;
                                          }
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          len++;
                                          while (apduLen - len > 1) {
                                            let newEntry = {};
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 0) {
                                              return void 0;
                                            }
                                            decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            let propertyId = decodedValue.value;
                                            let arraIndex = ASN1_ARRAY_ALL2222222222;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber === 1) {
                                              decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              arraIndex += decodedValue.value;
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                            }
                                            newEntry.property = { id: propertyId, index: arraIndex };
                                            if (result.tagNumber === 2 && decodeIsOpeningTag2222222222(buffer, offset + len - 1)) {
                                              const values = [];
                                              while (!decodeIsClosingTag2222222222(buffer, offset + len)) {
                                                decodedValue = bacappDecodeApplicationData2222222222(
                                                  buffer,
                                                  offset + len,
                                                  apduLen + offset,
                                                  objectId.type,
                                                  propertyId
                                                );
                                                if (!decodedValue) {
                                                  return void 0;
                                                }
                                                len += decodedValue.len;
                                                delete decodedValue.len;
                                                values.push(decodedValue);
                                              }
                                              len++;
                                              newEntry.value = values;
                                            } else {
                                              return void 0;
                                            }
                                            valueList.push(newEntry);
                                          }
                                          if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          len++;
                                          return {
                                            len,
                                            objectId,
                                            values: valueList
                                          };
                                        };
                                        var encodeAcknowledge32222222222 = (buffer, objectId) => {
                                          encodeApplicationObjectId2222222222(buffer, objectId.type, objectId.instance);
                                        };
                                        var delete_object_exports2222222222 = {};
                                        __export2222222222(delete_object_exports2222222222, {
                                          decode: () => decode82222222222,
                                          encode: () => encode82222222222
                                        });
                                        var decode82222222222 = (buffer, offset, apduLen) => {
                                          const result = decodeTagNumberAndValue2222222222(buffer, offset);
                                          if (result.tagNumber !== 12) {
                                            return void 0;
                                          }
                                          let len = 1;
                                          const value = decodeObjectId2222222222(buffer, offset + len);
                                          len += value.len;
                                          if (len !== apduLen) {
                                            return void 0;
                                          }
                                          value.len = len;
                                          return value;
                                        };
                                        var encode82222222222 = (buffer, objectId) => {
                                          encodeApplicationObjectId2222222222(buffer, objectId.type, objectId.instance);
                                        };
                                        var device_communication_control_exports2222222222 = {};
                                        __export2222222222(device_communication_control_exports2222222222, {
                                          decode: () => decode92222222222,
                                          encode: () => encode92222222222
                                        });
                                        var encode92222222222 = (buffer, timeDuration, enableDisable, password) => {
                                          if (timeDuration > 0) {
                                            encodeContextUnsigned2222222222(buffer, 0, timeDuration);
                                          }
                                          encodeContextEnumerated2222222222(buffer, 1, enableDisable);
                                          if (password && password !== "") {
                                            encodeContextCharacterString2222222222(buffer, 2, password);
                                          }
                                        };
                                        var decode92222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let value = {};
                                          let decodedValue;
                                          let result;
                                          if (decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            value.timeDuration = decodedValue.value;
                                            len += decodedValue.len;
                                          }
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          value.enableDisable = decodedValue.value;
                                          len += decodedValue.len;
                                          if (len < apduLen) {
                                            if (!decodeIsContextTag2222222222(buffer, offset + len, 2)) {
                                              return void 0;
                                            }
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeCharacterString2222222222(
                                              buffer,
                                              offset + len,
                                              apduLen - (offset + len),
                                              result.value
                                            );
                                            value.password = decodedValue.value;
                                            len += decodedValue.len;
                                          }
                                          value.len = len;
                                          return value;
                                        };
                                        var error_exports2222222222 = {};
                                        __export2222222222(error_exports2222222222, {
                                          buildMessage: () => buildMessage2222222222,
                                          decode: () => decode102222222222,
                                          encode: () => encode102222222222
                                        });
                                        var encode102222222222 = (buffer, errorClass, errorCode) => {
                                          encodeApplicationEnumerated2222222222(buffer, errorClass);
                                          encodeApplicationEnumerated2222222222(buffer, errorCode);
                                        };
                                        var decode102222222222 = (buffer, offset) => {
                                          const orgOffset = offset;
                                          let result;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset);
                                          offset += result.len;
                                          const errorClass = decodeEnumerated2222222222(buffer, offset, result.value);
                                          offset += errorClass.len;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset);
                                          offset += result.len;
                                          const errorCode = decodeEnumerated2222222222(buffer, offset, result.value);
                                          offset += errorClass.len;
                                          return {
                                            len: offset - orgOffset,
                                            class: errorClass.value,
                                            code: errorCode.value
                                          };
                                        };
                                        var buildMessage2222222222 = function(result) {
                                          return "BacnetError Class: " + ErrorClassName2222222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName2222222222[result.code] + " (" + result.code + ")";
                                        };
                                        var event_information_exports2222222222 = {};
                                        __export2222222222(event_information_exports2222222222, {
                                          decode: () => decode112222222222,
                                          encode: () => encode112222222222
                                        });
                                        var encode112222222222 = (buffer, events, moreEvents) => {
                                          encodeOpeningTag2222222222(buffer, 0);
                                          events.forEach((event) => {
                                            encodeContextObjectId2222222222(
                                              buffer,
                                              0,
                                              event.objectId.type,
                                              event.objectId.instance
                                            );
                                            encodeContextEnumerated2222222222(buffer, 1, event.eventState);
                                            encodeContextBitstring2222222222(buffer, 2, event.acknowledgedTransitions);
                                            encodeOpeningTag2222222222(buffer, 3);
                                            for (let i = 0; i < 3; i++) {
                                              encodeApplicationDate2222222222(buffer, event.eventTimeStamps[i]);
                                              encodeApplicationTime2222222222(buffer, event.eventTimeStamps[i]);
                                            }
                                            encodeClosingTag2222222222(buffer, 3);
                                            encodeContextEnumerated2222222222(buffer, 4, event.notifyType);
                                            encodeContextBitstring2222222222(buffer, 5, event.eventEnable);
                                            encodeOpeningTag2222222222(buffer, 6);
                                            for (let i = 0; i < 3; i++) {
                                              encodeApplicationUnsigned2222222222(buffer, event.eventPriorities[i]);
                                            }
                                            encodeClosingTag2222222222(buffer, 6);
                                          });
                                          encodeClosingTag2222222222(buffer, 0);
                                          encodeContextBoolean2222222222(buffer, 1, moreEvents);
                                        };
                                        var decode112222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          len++;
                                          const alarms = [];
                                          let moreEvents;
                                          while (apduLen - 3 - len > 0) {
                                            let value = {};
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            value.objectId = {
                                              type: decodedValue.objectType,
                                              instance: decodedValue.instance
                                            };
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.eventState = decodedValue.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeBitstring2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.acknowledgedTransitions = decodedValue.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            value.eventTimeStamps = [];
                                            for (let i = 0; i < 3; i++) {
                                              if (result.tagNumber !== 0) {
                                                decodedValue = decodeApplicationDate2222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                const date = decodedValue.value.value;
                                                decodedValue = decodeApplicationTime2222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                const time = decodedValue.value.value;
                                                value.eventTimeStamps[i] = new Date(
                                                  date.getFullYear(),
                                                  date.getMonth(),
                                                  date.getDate(),
                                                  time.getHours(),
                                                  time.getMinutes(),
                                                  time.getSeconds(),
                                                  time.getMilliseconds()
                                                );
                                              } else {
                                                len += result.value;
                                              }
                                            }
                                            len++;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.notifyType = decodedValue.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeBitstring2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.eventEnable = decodedValue.value;
                                            len++;
                                            value.eventPriorities = [];
                                            for (let i = 0; i < 3; i++) {
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.eventPriorities[i] = decodedValue.value;
                                            }
                                            len++;
                                            alarms.push(value);
                                          }
                                          moreEvents = buffer[apduLen - 1] === 1;
                                          return {
                                            len,
                                            alarms,
                                            moreEvents
                                          };
                                        };
                                        var event_notify_data_exports2222222222 = {};
                                        __export2222222222(event_notify_data_exports2222222222, {
                                          decode: () => decode122222222222,
                                          encode: () => encode122222222222
                                        });
                                        var encode122222222222 = (buffer, data) => {
                                          encodeContextUnsigned2222222222(buffer, 0, data.processId);
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            1,
                                            data.initiatingObjectId.type,
                                            data.initiatingObjectId.instance
                                          );
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            2,
                                            data.eventObjectId.type,
                                            data.eventObjectId.instance
                                          );
                                          bacappEncodeContextTimestamp2222222222(buffer, 3, data.timeStamp);
                                          encodeContextUnsigned2222222222(buffer, 4, data.notificationClass);
                                          encodeContextUnsigned2222222222(buffer, 5, data.priority);
                                          encodeContextEnumerated2222222222(buffer, 6, data.eventType);
                                          if (data.messageText && data.messageText !== "") {
                                            encodeContextCharacterString2222222222(buffer, 7, data.messageText);
                                          }
                                          encodeContextEnumerated2222222222(buffer, 8, data.notifyType);
                                          switch (data.notifyType) {
                                            case 0:
                                            case 1:
                                              encodeContextBoolean2222222222(buffer, 9, data.ackRequired);
                                              encodeContextEnumerated2222222222(buffer, 10, data.fromState);
                                              break;
                                            default:
                                              break;
                                          }
                                          encodeContextEnumerated2222222222(buffer, 11, data.toState);
                                          switch (data.notifyType) {
                                            case 0:
                                            case 1:
                                              encodeOpeningTag2222222222(buffer, 12);
                                              switch (data.eventType) {
                                                case 0:
                                                  encodeOpeningTag2222222222(buffer, 0);
                                                  encodeContextBitstring2222222222(
                                                    buffer,
                                                    0,
                                                    data.changeOfBitstringReferencedBitString
                                                  );
                                                  encodeContextBitstring2222222222(
                                                    buffer,
                                                    1,
                                                    data.changeOfBitstringStatusFlags
                                                  );
                                                  encodeClosingTag2222222222(buffer, 0);
                                                  break;
                                                case 1:
                                                  encodeOpeningTag2222222222(buffer, 1);
                                                  encodeOpeningTag2222222222(buffer, 0);
                                                  bacappEncodePropertyState2222222222(buffer, data.changeOfStateNewState);
                                                  encodeClosingTag2222222222(buffer, 0);
                                                  encodeContextBitstring2222222222(
                                                    buffer,
                                                    1,
                                                    data.changeOfStateStatusFlags
                                                  );
                                                  encodeClosingTag2222222222(buffer, 1);
                                                  break;
                                                case 2:
                                                  encodeOpeningTag2222222222(buffer, 2);
                                                  encodeOpeningTag2222222222(buffer, 0);
                                                  switch (data.changeOfValueTag) {
                                                    case 0:
                                                      encodeContextReal2222222222(
                                                        buffer,
                                                        1,
                                                        data.changeOfValueChangeValue
                                                      );
                                                      break;
                                                    case 1:
                                                      encodeContextBitstring2222222222(
                                                        buffer,
                                                        0,
                                                        data.changeOfValueChangedBits
                                                      );
                                                      break;
                                                    default:
                                                      throw new Error("NotImplemented");
                                                  }
                                                  encodeClosingTag2222222222(buffer, 0);
                                                  encodeContextBitstring2222222222(
                                                    buffer,
                                                    1,
                                                    data.changeOfValueStatusFlags
                                                  );
                                                  encodeClosingTag2222222222(buffer, 2);
                                                  break;
                                                case 4:
                                                  encodeOpeningTag2222222222(buffer, 4);
                                                  encodeContextReal2222222222(buffer, 0, data.floatingLimitReferenceValue);
                                                  encodeContextBitstring2222222222(
                                                    buffer,
                                                    1,
                                                    data.floatingLimitStatusFlags
                                                  );
                                                  encodeContextReal2222222222(buffer, 2, data.floatingLimitSetPointValue);
                                                  encodeContextReal2222222222(buffer, 3, data.floatingLimitErrorLimit);
                                                  encodeClosingTag2222222222(buffer, 4);
                                                  break;
                                                case 5:
                                                  encodeOpeningTag2222222222(buffer, 5);
                                                  encodeContextReal2222222222(buffer, 0, data.outOfRangeExceedingValue);
                                                  encodeContextBitstring2222222222(buffer, 1, data.outOfRangeStatusFlags);
                                                  encodeContextReal2222222222(buffer, 2, data.outOfRangeDeadband);
                                                  encodeContextReal2222222222(buffer, 3, data.outOfRangeExceededLimit);
                                                  encodeClosingTag2222222222(buffer, 5);
                                                  break;
                                                case 8:
                                                  encodeOpeningTag2222222222(buffer, 8);
                                                  encodeContextEnumerated2222222222(
                                                    buffer,
                                                    0,
                                                    data.changeOfLifeSafetyNewState
                                                  );
                                                  encodeContextEnumerated2222222222(
                                                    buffer,
                                                    1,
                                                    data.changeOfLifeSafetyNewMode
                                                  );
                                                  encodeContextBitstring2222222222(
                                                    buffer,
                                                    2,
                                                    data.changeOfLifeSafetyStatusFlags
                                                  );
                                                  encodeContextEnumerated2222222222(
                                                    buffer,
                                                    3,
                                                    data.changeOfLifeSafetyOperationExpected
                                                  );
                                                  encodeClosingTag2222222222(buffer, 8);
                                                  break;
                                                case 10:
                                                  encodeOpeningTag2222222222(buffer, 10);
                                                  bacappEncodeContextDeviceObjPropertyRef2222222222(
                                                    buffer,
                                                    0,
                                                    data.bufferReadyBufferProperty
                                                  );
                                                  encodeContextUnsigned2222222222(
                                                    buffer,
                                                    1,
                                                    data.bufferReadyPreviousNotification
                                                  );
                                                  encodeContextUnsigned2222222222(
                                                    buffer,
                                                    2,
                                                    data.bufferReadyCurrentNotification
                                                  );
                                                  encodeClosingTag2222222222(buffer, 10);
                                                  break;
                                                case 11:
                                                  encodeOpeningTag2222222222(buffer, 11);
                                                  encodeContextUnsigned2222222222(
                                                    buffer,
                                                    0,
                                                    data.unsignedRangeExceedingValue
                                                  );
                                                  encodeContextBitstring2222222222(
                                                    buffer,
                                                    1,
                                                    data.unsignedRangeStatusFlags
                                                  );
                                                  encodeContextUnsigned2222222222(
                                                    buffer,
                                                    2,
                                                    data.unsignedRangeExceededLimit
                                                  );
                                                  encodeClosingTag2222222222(buffer, 11);
                                                  break;
                                                case 9:
                                                case 3:
                                                  throw new Error("NotImplemented");
                                                default:
                                                  throw new Error("NotImplemented");
                                              }
                                              encodeClosingTag2222222222(buffer, 12);
                                              break;
                                            case 2:
                                              throw new Error("NotImplemented");
                                            default:
                                              break;
                                          }
                                        };
                                        var decode122222222222 = (buffer, offset) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let eventData = {};
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          eventData.processId = decodedValue.value;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          eventData.initiatingObjectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 2)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          eventData.eventObjectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 3)) {
                                            return void 0;
                                          }
                                          len += 2;
                                          decodedValue = decodeApplicationDate2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          const date = decodedValue.value.value;
                                          decodedValue = decodeApplicationTime2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          const time = decodedValue.value.value;
                                          eventData.timeStamp = new Date(
                                            date.getFullYear(),
                                            date.getMonth(),
                                            date.getDate(),
                                            time.getHours(),
                                            time.getMinutes(),
                                            time.getSeconds(),
                                            time.getMilliseconds()
                                          );
                                          len += 2;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 4)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          eventData.notificationClass = decodedValue.value;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 5)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          eventData.priority = decodedValue.value;
                                          if (eventData.priority > 255) {
                                            return void 0;
                                          }
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 6)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          eventData.eventType = decodedValue.value;
                                          if (decodeIsContextTag2222222222(buffer, offset + len, 7)) {
                                            decodedValue = decodeContextCharacterString2222222222(
                                              buffer,
                                              offset + len,
                                              2e4,
                                              7
                                            );
                                            len += decodedValue.len;
                                            eventData.messageText = decodedValue.value;
                                          }
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 8)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          eventData.notifyType = decodedValue.value;
                                          switch (eventData.notifyType) {
                                            case 0:
                                            case 1:
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned2222222222(buffer, offset + len, 1);
                                              len += decodedValue.len;
                                              eventData.ackRequired = decodedValue.value > 0;
                                              if (!decodeIsContextTag2222222222(buffer, offset + len, 10)) {
                                                return void 0;
                                              }
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeEnumerated2222222222(
                                                buffer,
                                                offset + len,
                                                result.value
                                              );
                                              len += decodedValue.len;
                                              eventData.fromState = decodedValue.value;
                                              break;
                                            default:
                                              break;
                                          }
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 11)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          eventData.toState = decodedValue.value;
                                          eventData.len = len;
                                          return eventData;
                                        };
                                        var get_enrollment_summary_exports2222222222 = {};
                                        __export2222222222(get_enrollment_summary_exports2222222222, {
                                          decode: () => decode132222222222,
                                          decodeAcknowledge: () => decodeAcknowledge32222222222,
                                          encode: () => encode132222222222,
                                          encodeAcknowledge: () => encodeAcknowledge42222222222
                                        });
                                        var encode132222222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                                          encodeContextEnumerated2222222222(buffer, 0, acknowledgmentFilter);
                                          if (enrollmentFilter) {
                                            encodeOpeningTag2222222222(buffer, 1);
                                            encodeOpeningTag2222222222(buffer, 0);
                                            encodeContextObjectId2222222222(
                                              buffer,
                                              0,
                                              enrollmentFilter.objectId.type,
                                              enrollmentFilter.objectId.instance
                                            );
                                            encodeClosingTag2222222222(buffer, 0);
                                            encodeContextUnsigned2222222222(buffer, 1, enrollmentFilter.processId);
                                            encodeClosingTag2222222222(buffer, 1);
                                          }
                                          if (eventStateFilter) {
                                            encodeOpeningTag2222222222(buffer, 2);
                                            encodeContextEnumerated2222222222(buffer, 0, eventStateFilter);
                                            encodeClosingTag2222222222(buffer, 2);
                                          }
                                          if (eventTypeFilter) {
                                            encodeOpeningTag2222222222(buffer, 3);
                                            encodeContextEnumerated2222222222(buffer, 0, eventTypeFilter);
                                            encodeClosingTag2222222222(buffer, 3);
                                          }
                                          if (priorityFilter) {
                                            encodeOpeningTag2222222222(buffer, 4);
                                            encodeContextUnsigned2222222222(buffer, 0, priorityFilter.min);
                                            encodeContextUnsigned2222222222(buffer, 1, priorityFilter.max);
                                            encodeClosingTag2222222222(buffer, 4);
                                          }
                                          if (notificationClassFilter) {
                                            encodeOpeningTag2222222222(buffer, 5);
                                            encodeContextUnsigned2222222222(buffer, 0, notificationClassFilter);
                                            encodeClosingTag2222222222(buffer, 5);
                                          }
                                        };
                                        var decode132222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let value = {};
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.acknowledgmentFilter = decodedValue.value;
                                          if (decodeIsContextTag2222222222(buffer, offset + len, 1)) {
                                            len++;
                                            value.enrollmentFilter = {};
                                            if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                              return void 0;
                                            }
                                            len++;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            value.enrollmentFilter.objectId = {
                                              type: decodedValue.objectType,
                                              instance: decodedValue.instance
                                            };
                                            len++;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.enrollmentFilter.processId = decodedValue.value;
                                            len++;
                                          }
                                          if (decodeIsContextTag2222222222(buffer, offset + len, 2)) {
                                            len++;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.eventStateFilter = decodedValue.value;
                                            len++;
                                          }
                                          if (decodeIsContextTag2222222222(buffer, offset + len, 3)) {
                                            len++;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.eventTypeFilter = decodedValue.value;
                                            len++;
                                          }
                                          if (decodeIsContextTag2222222222(buffer, offset + len, 4)) {
                                            len++;
                                            value.priorityFilter = {};
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.priorityFilter.min = decodedValue.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.priorityFilter.max = decodedValue.value;
                                            len++;
                                          }
                                          if (decodeIsContextTag2222222222(buffer, offset + len, 5)) {
                                            len++;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.notificationClassFilter = decodedValue.value;
                                            len++;
                                          }
                                          value.len = len;
                                          return value;
                                        };
                                        var encodeAcknowledge42222222222 = (buffer, enrollmentSummaries) => {
                                          enrollmentSummaries.forEach((enrollmentSummary) => {
                                            encodeApplicationObjectId2222222222(
                                              buffer,
                                              enrollmentSummary.objectId.type,
                                              enrollmentSummary.objectId.instance
                                            );
                                            encodeApplicationEnumerated2222222222(buffer, enrollmentSummary.eventType);
                                            encodeApplicationEnumerated2222222222(buffer, enrollmentSummary.eventState);
                                            encodeApplicationUnsigned2222222222(buffer, enrollmentSummary.priority);
                                            encodeApplicationUnsigned2222222222(
                                              buffer,
                                              enrollmentSummary.notificationClass
                                            );
                                          });
                                        };
                                        var decodeAcknowledge32222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          const enrollmentSummaries = [];
                                          while (apduLen - len > 0) {
                                            const enrollmentSummary = {};
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 12) {
                                              return void 0;
                                            }
                                            result = decodeObjectId2222222222(buffer, offset + len);
                                            len += result.len;
                                            enrollmentSummary.objectId = {
                                              type: result.objectType,
                                              instance: result.instance
                                            };
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 9) {
                                              return void 0;
                                            }
                                            result = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            len += result.len;
                                            enrollmentSummary.eventType = result.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 9) {
                                              return void 0;
                                            }
                                            result = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            len += result.len;
                                            enrollmentSummary.eventState = result.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 2) {
                                              return void 0;
                                            }
                                            result = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += result.len;
                                            enrollmentSummary.priority = result.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 2) {
                                              return void 0;
                                            }
                                            result = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += result.len;
                                            enrollmentSummary.notificationClass = result.value;
                                            enrollmentSummaries.push(enrollmentSummary);
                                          }
                                          return {
                                            enrollmentSummaries,
                                            len
                                          };
                                        };
                                        var get_event_information_exports2222222222 = {};
                                        __export2222222222(get_event_information_exports2222222222, {
                                          decode: () => decode142222222222,
                                          decodeAcknowledge: () => decodeAcknowledge42222222222,
                                          encode: () => encode142222222222,
                                          encodeAcknowledge: () => encodeAcknowledge52222222222
                                        });
                                        var encode142222222222 = (buffer, lastReceivedObjectId) => {
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            0,
                                            lastReceivedObjectId.type,
                                            lastReceivedObjectId.instance
                                          );
                                        };
                                        var decode142222222222 = (buffer, offset) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let value = {};
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          value.lastReceivedObjectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          value.len = len;
                                          return value;
                                        };
                                        var encodeAcknowledge52222222222 = (buffer, events, moreEvents) => {
                                          encodeOpeningTag2222222222(buffer, 0);
                                          events.forEach((eventData) => {
                                            encodeContextObjectId2222222222(
                                              buffer,
                                              0,
                                              eventData.objectId.type,
                                              eventData.objectId.instance
                                            );
                                            encodeContextEnumerated2222222222(buffer, 1, eventData.eventState);
                                            encodeContextBitstring2222222222(buffer, 2, eventData.acknowledgedTransitions);
                                            encodeOpeningTag2222222222(buffer, 3);
                                            for (let i = 0; i < 3; i++) {
                                              bacappEncodeTimestamp2222222222(buffer, eventData.eventTimeStamps[i]);
                                            }
                                            encodeClosingTag2222222222(buffer, 3);
                                            encodeContextEnumerated2222222222(buffer, 4, eventData.notifyType);
                                            encodeContextBitstring2222222222(buffer, 5, eventData.eventEnable);
                                            encodeOpeningTag2222222222(buffer, 6);
                                            for (let i = 0; i < 3; i++) {
                                              encodeApplicationUnsigned2222222222(buffer, eventData.eventPriorities[i]);
                                            }
                                            encodeClosingTag2222222222(buffer, 6);
                                          });
                                          encodeClosingTag2222222222(buffer, 0);
                                          encodeContextBoolean2222222222(buffer, 1, moreEvents);
                                        };
                                        var decodeAcknowledge42222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let value = {};
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          value.events = [];
                                          while (apduLen - len > 3) {
                                            let event = {};
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            event.objectId = {
                                              type: decodedValue.objectType,
                                              instance: decodedValue.instance
                                            };
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            event.eventState = decodedValue.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeBitstring2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            event.acknowledgedTransitions = decodedValue.value;
                                            if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 3)) {
                                              return void 0;
                                            }
                                            len++;
                                            event.eventTimeStamps = [];
                                            for (let i = 0; i < 3; i++) {
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                              if (result.tagNumber === 0) {
                                                decodedValue = decodeBacnetTime2222222222(
                                                  buffer,
                                                  offset + len,
                                                  result.value
                                                );
                                                len += decodedValue.len;
                                                event.eventTimeStamps[i] = {
                                                  value: decodedValue.value,
                                                  type: 0
                                                  /* TIME */
                                                };
                                              } else if (result.tagNumber === 1) {
                                                decodedValue = decodeUnsigned2222222222(
                                                  buffer,
                                                  offset + len,
                                                  result.value
                                                );
                                                len += decodedValue.len;
                                                event.eventTimeStamps[i] = {
                                                  value: decodedValue.value,
                                                  type: 1
                                                  /* SEQUENCE_NUMBER */
                                                };
                                              } else if (result.tagNumber === 2) {
                                                let date = decodeApplicationDate2222222222(
                                                  buffer,
                                                  offset + len
                                                );
                                                len += date.len;
                                                date = date.value.value;
                                                let time = decodeApplicationTime2222222222(
                                                  buffer,
                                                  offset + len
                                                );
                                                len += time.len;
                                                time = time.value.value;
                                                event.eventTimeStamps[i] = {
                                                  value: new Date(
                                                    date.getFullYear(),
                                                    date.getMonth(),
                                                    date.getDate(),
                                                    time.getHours(),
                                                    time.getMinutes(),
                                                    time.getSeconds(),
                                                    time.getMilliseconds()
                                                  ),
                                                  type: 2
                                                  /* DATETIME */
                                                };
                                                len++;
                                              }
                                            }
                                            if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 3)) {
                                              return void 0;
                                            }
                                            len++;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            event.notifyType = decodedValue.value;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeBitstring2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            event.eventEnable = decodedValue.value;
                                            if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 6)) {
                                              return void 0;
                                            }
                                            len++;
                                            event.eventPriorities = [];
                                            for (let i = 0; i < 3; i++) {
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              event.eventPriorities[i] = decodedValue.value;
                                            }
                                            if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 6)) {
                                              return void 0;
                                            }
                                            len++;
                                            value.events.push(event);
                                          }
                                          if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          value.moreEvents = buffer[offset + len] > 0;
                                          len++;
                                          value.len = len;
                                          return value;
                                        };
                                        var i_am_exports2222222222 = {};
                                        __export2222222222(i_am_exports2222222222, {
                                          decode: () => decode152222222222,
                                          encode: () => encode152222222222
                                        });
                                        var encode152222222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                                          encodeApplicationObjectId2222222222(buffer, 8, deviceId);
                                          encodeApplicationUnsigned2222222222(buffer, maxApdu);
                                          encodeApplicationEnumerated2222222222(buffer, segmentation);
                                          encodeApplicationUnsigned2222222222(buffer, vendorId);
                                        };
                                        var decode152222222222 = (buffer, offset) => {
                                          let result;
                                          let apduLen = 0;
                                          const orgOffset = offset;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + apduLen);
                                          apduLen += result.len;
                                          if (result.tagNumber !== 12) {
                                            return void 0;
                                          }
                                          result = decodeObjectId2222222222(buffer, offset + apduLen);
                                          apduLen += result.len;
                                          if (result.objectType !== 8) {
                                            return void 0;
                                          }
                                          const deviceId = result.instance;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + apduLen);
                                          apduLen += result.len;
                                          if (result.tagNumber !== 2) {
                                            return void 0;
                                          }
                                          result = decodeUnsigned2222222222(buffer, offset + apduLen, result.value);
                                          apduLen += result.len;
                                          const maxApdu = result.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + apduLen);
                                          apduLen += result.len;
                                          if (result.tagNumber !== 9) {
                                            return void 0;
                                          }
                                          result = decodeEnumerated2222222222(buffer, offset + apduLen, result.value);
                                          apduLen += result.len;
                                          if (result.value > 3) {
                                            return void 0;
                                          }
                                          const segmentation = result.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + apduLen);
                                          apduLen += result.len;
                                          if (result.tagNumber !== 2) {
                                            return void 0;
                                          }
                                          result = decodeUnsigned2222222222(buffer, offset + apduLen, result.value);
                                          apduLen += result.len;
                                          if (result.value > 65535) {
                                            return void 0;
                                          }
                                          const vendorId = result.value;
                                          return {
                                            len: offset - orgOffset,
                                            deviceId,
                                            maxApdu,
                                            segmentation,
                                            vendorId
                                          };
                                        };
                                        var i_have_exports2222222222 = {};
                                        __export2222222222(i_have_exports2222222222, {
                                          decode: () => decode162222222222,
                                          encode: () => encode162222222222
                                        });
                                        var encode162222222222 = (buffer, deviceId, objectId, objectName) => {
                                          encodeApplicationObjectId2222222222(buffer, deviceId.type, deviceId.instance);
                                          encodeApplicationObjectId2222222222(buffer, objectId.type, objectId.instance);
                                          encodeApplicationCharacterString2222222222(buffer, objectName);
                                        };
                                        var decode162222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let value = {};
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          value.deviceId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          value.objectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeCharacterString2222222222(
                                            buffer,
                                            offset + len,
                                            apduLen - (offset + len),
                                            result.value
                                          );
                                          len += decodedValue.len;
                                          value.objectName = decodedValue.value;
                                          value.len = len;
                                          return value;
                                        };
                                        var life_safety_operation_exports2222222222 = {};
                                        __export2222222222(life_safety_operation_exports2222222222, {
                                          decode: () => decode172222222222,
                                          encode: () => encode172222222222
                                        });
                                        var encode172222222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                                          encodeContextUnsigned2222222222(buffer, 0, processId);
                                          encodeContextCharacterString2222222222(buffer, 1, requestingSource);
                                          encodeContextEnumerated2222222222(buffer, 2, operation);
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            3,
                                            targetObjectId.type,
                                            targetObjectId.instance
                                          );
                                        };
                                        var decode172222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let value = {};
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.processId = decodedValue.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeCharacterString2222222222(
                                            buffer,
                                            offset + len,
                                            apduLen - (offset + len),
                                            result.value
                                          );
                                          len += decodedValue.len;
                                          value.requestingSource = decodedValue.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.operation = decodedValue.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          value.targetObjectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          value.len = len;
                                          return value;
                                        };
                                        var private_transfer_exports2222222222 = {};
                                        __export2222222222(private_transfer_exports2222222222, {
                                          decode: () => decode182222222222,
                                          encode: () => encode182222222222
                                        });
                                        var encode182222222222 = (buffer, vendorId, serviceNumber, data) => {
                                          encodeContextUnsigned2222222222(buffer, 0, vendorId);
                                          encodeContextUnsigned2222222222(buffer, 1, serviceNumber);
                                          encodeOpeningTag2222222222(buffer, 2);
                                          for (let i = 0; i < data.length; i++) {
                                            buffer.buffer[buffer.offset++] = data[i];
                                          }
                                          encodeClosingTag2222222222(buffer, 2);
                                        };
                                        var decode182222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let value = {};
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.vendorId = decodedValue.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.serviceNumber = decodedValue.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          const size = apduLen - (offset + len + 1);
                                          const data = [];
                                          for (let i = 0; i < size; i++) {
                                            data.push(buffer[offset + len++]);
                                          }
                                          value.data = data;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          value.len = len;
                                          return value;
                                        };
                                        var read_property_exports2222222222 = {};
                                        __export2222222222(read_property_exports2222222222, {
                                          decode: () => decode192222222222,
                                          decodeAcknowledge: () => decodeAcknowledge52222222222,
                                          encode: () => encode192222222222,
                                          encodeAcknowledge: () => encodeAcknowledge62222222222
                                        });
                                        var encode192222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                                          if (objectType <= ASN1_MAX_OBJECT2222222222) {
                                            encodeContextObjectId2222222222(buffer, 0, objectType, objectInstance);
                                          }
                                          if (propertyId <= ASN1_MAX_PROPERTY_ID2222222222) {
                                            encodeContextEnumerated2222222222(buffer, 1, propertyId);
                                          }
                                          if (arrayIndex !== ASN1_ARRAY_ALL2222222222) {
                                            encodeContextUnsigned2222222222(
                                              buffer,
                                              2,
                                              arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL2222222222
                                            );
                                          }
                                        };
                                        var decode192222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          if (apduLen < 7) {
                                            return void 0;
                                          }
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          let objectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          let property = {};
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 1) {
                                            return void 0;
                                          }
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          property.id = decodedValue.value;
                                          property.index = ASN1_ARRAY_ALL2222222222;
                                          if (len < apduLen) {
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber === 2 && len < apduLen) {
                                              decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              property.index = decodedValue.value;
                                            } else {
                                              return void 0;
                                            }
                                          }
                                          if (len < apduLen) {
                                            return void 0;
                                          }
                                          return {
                                            len,
                                            objectId,
                                            property
                                          };
                                        };
                                        var encodeAcknowledge62222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                          encodeContextObjectId2222222222(buffer, 0, objectId.type, objectId.instance);
                                          encodeContextEnumerated2222222222(buffer, 1, propertyId);
                                          if (arrayIndex !== ASN1_ARRAY_ALL2222222222) {
                                            encodeContextUnsigned2222222222(buffer, 2, arrayIndex);
                                          }
                                          encodeOpeningTag2222222222(buffer, 3);
                                          values.forEach((value) => {
                                            bacappEncodeApplicationData2222222222(buffer, value);
                                          });
                                          encodeClosingTag2222222222(buffer, 3);
                                        };
                                        var decodeAcknowledge52222222222 = (buffer, offset, apduLen) => {
                                          let result;
                                          let decodedValue;
                                          let objectId = {};
                                          let property = {};
                                          if (!decodeIsContextTag2222222222(buffer, offset, 0)) {
                                            return void 0;
                                          }
                                          let len = 1;
                                          result = decodeObjectId2222222222(buffer, offset + len);
                                          len += result.len;
                                          objectId.type = result.objectType;
                                          objectId.instance = result.instance;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 1) {
                                            return void 0;
                                          }
                                          result = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += result.len;
                                          property.id = result.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          if (result.tagNumber === 2) {
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            property.index = decodedValue.value;
                                          } else {
                                            property.index = ASN1_ARRAY_ALL2222222222;
                                          }
                                          const values = [];
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 3)) {
                                            return void 0;
                                          }
                                          len++;
                                          while (apduLen - len > 1) {
                                            result = bacappDecodeApplicationData2222222222(
                                              buffer,
                                              offset + len,
                                              apduLen + offset,
                                              objectId.type,
                                              property.id
                                            );
                                            if (!result) {
                                              return void 0;
                                            }
                                            len += result.len;
                                            delete result.len;
                                            values.push(result);
                                          }
                                          if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 3)) {
                                            return void 0;
                                          }
                                          len++;
                                          return {
                                            len,
                                            objectId,
                                            property,
                                            values
                                          };
                                        };
                                        var read_property_multiple_exports2222222222 = {};
                                        __export2222222222(read_property_multiple_exports2222222222, {
                                          decode: () => decode202222222222,
                                          decodeAcknowledge: () => decodeAcknowledge62222222222,
                                          encode: () => encode202222222222,
                                          encodeAcknowledge: () => encodeAcknowledge72222222222
                                        });
                                        var encode202222222222 = (buffer, properties) => {
                                          properties.forEach((value) => {
                                            encodeReadAccessSpecification2222222222(buffer, value);
                                          });
                                        };
                                        var decode202222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          const values = [];
                                          while (apduLen - len > 0) {
                                            const decodedValue = decodeReadAccessSpecification2222222222(
                                              buffer,
                                              offset + len,
                                              apduLen - len
                                            );
                                            if (!decodedValue) {
                                              return void 0;
                                            }
                                            len += decodedValue.len;
                                            values.push(decodedValue.value);
                                          }
                                          return {
                                            len,
                                            properties: values
                                          };
                                        };
                                        var encodeAcknowledge72222222222 = (buffer, values) => {
                                          values.forEach((value) => {
                                            encodeReadAccessResult2222222222(buffer, value);
                                          });
                                        };
                                        var decodeAcknowledge62222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          const values = [];
                                          while (apduLen - len > 0) {
                                            const result = decodeReadAccessResult2222222222(
                                              buffer,
                                              offset + len,
                                              apduLen - len
                                            );
                                            if (!result || result === -1) {
                                              return void 0;
                                            }
                                            len += result.len;
                                            values.push(result.value);
                                          }
                                          return {
                                            len,
                                            values
                                          };
                                        };
                                        var read_range_exports2222222222 = {};
                                        __export2222222222(read_range_exports2222222222, {
                                          decode: () => decode212222222222,
                                          decodeAcknowledge: () => decodeAcknowledge72222222222,
                                          encode: () => encode212222222222,
                                          encodeAcknowledge: () => encodeAcknowledge82222222222
                                        });
                                        var encode212222222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                                          encodeContextObjectId2222222222(buffer, 0, objectId.type, objectId.instance);
                                          encodeContextEnumerated2222222222(buffer, 1, propertyId);
                                          if (arrayIndex !== ASN1_ARRAY_ALL2222222222) {
                                            encodeContextUnsigned2222222222(buffer, 2, arrayIndex);
                                          }
                                          switch (requestType) {
                                            case 0:
                                              encodeOpeningTag2222222222(buffer, 3);
                                              encodeApplicationUnsigned2222222222(buffer, position);
                                              encodeApplicationSigned2222222222(buffer, count);
                                              encodeClosingTag2222222222(buffer, 3);
                                              break;
                                            case 1:
                                              encodeOpeningTag2222222222(buffer, 6);
                                              encodeApplicationUnsigned2222222222(buffer, position);
                                              encodeApplicationSigned2222222222(buffer, count);
                                              encodeClosingTag2222222222(buffer, 6);
                                              break;
                                            case 2:
                                              encodeOpeningTag2222222222(buffer, 7);
                                              encodeApplicationDate2222222222(buffer, time);
                                              encodeApplicationTime2222222222(buffer, time);
                                              encodeApplicationSigned2222222222(buffer, count);
                                              encodeClosingTag2222222222(buffer, 7);
                                              break;
                                            default:
                                              break;
                                          }
                                        };
                                        var decode212222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let requestType;
                                          let position;
                                          let time;
                                          let count;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len, 0);
                                          len += decodedValue.len;
                                          let objectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          let property = {};
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 1) {
                                            return void 0;
                                          }
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          property.id = decodedValue.value;
                                          if (len < apduLen && decodeIsContextTag2222222222(buffer, offset + len, 2)) {
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            property.index = decodedValue.value;
                                          } else {
                                            property.index = ASN1_ARRAY_ALL2222222222;
                                          }
                                          if (len < apduLen) {
                                            result = decodeTagNumber2222222222(buffer, offset + len);
                                            len += result.len;
                                            switch (result.tagNumber) {
                                              case 3:
                                                requestType = 0;
                                                result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeUnsigned2222222222(
                                                  buffer,
                                                  offset + len,
                                                  result.value
                                                );
                                                len += decodedValue.len;
                                                position = decodedValue.value;
                                                result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeSigned2222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                count = decodedValue.value;
                                                break;
                                              case 6:
                                                requestType = 1;
                                                result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeUnsigned2222222222(
                                                  buffer,
                                                  offset + len,
                                                  result.value
                                                );
                                                len += decodedValue.len;
                                                position = decodedValue.value;
                                                result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeSigned2222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                count = decodedValue.value;
                                                break;
                                              case 7:
                                                requestType = 2;
                                                decodedValue = decodeApplicationDate2222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                const tmpDate = decodedValue.value.value;
                                                decodedValue = decodeApplicationTime2222222222(buffer, offset + len);
                                                len += decodedValue.len;
                                                const tmpTime = decodedValue.value.value;
                                                time = new Date(
                                                  tmpDate.getYear(),
                                                  tmpDate.getMonth(),
                                                  tmpDate.getDate(),
                                                  tmpTime.getHours(),
                                                  tmpTime.getMinutes(),
                                                  tmpTime.getSeconds(),
                                                  tmpTime.getMilliseconds()
                                                );
                                                result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                                len += result.len;
                                                decodedValue = decodeSigned2222222222(buffer, offset + len, result.value);
                                                len += decodedValue.len;
                                                count = decodedValue.value;
                                                break;
                                              default:
                                                return void 0;
                                            }
                                            result = decodeTagNumber2222222222(buffer, offset + len);
                                            len += result.len;
                                          }
                                          return {
                                            len,
                                            objectId,
                                            property,
                                            requestType,
                                            position,
                                            time,
                                            count
                                          };
                                        };
                                        var encodeAcknowledge82222222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                                          encodeContextObjectId2222222222(buffer, 0, objectId.type, objectId.instance);
                                          encodeContextEnumerated2222222222(buffer, 1, propertyId);
                                          if (arrayIndex !== ASN1_ARRAY_ALL2222222222) {
                                            encodeContextUnsigned2222222222(buffer, 2, arrayIndex);
                                          }
                                          encodeContextBitstring2222222222(buffer, 3, resultFlags);
                                          encodeContextUnsigned2222222222(buffer, 4, itemCount);
                                          encodeOpeningTag2222222222(buffer, 5);
                                          if (itemCount !== 0) {
                                            applicationData.copy(
                                              buffer.buffer,
                                              buffer.offset,
                                              0,
                                              applicationData.length
                                            );
                                            buffer.offset += applicationData.length;
                                          }
                                          encodeClosingTag2222222222(buffer, 5);
                                          if (itemCount !== 0 && requestType && requestType !== 0) {
                                            encodeContextUnsigned2222222222(buffer, 6, firstSequence);
                                          }
                                        };
                                        var decodeAcknowledge72222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          const objectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          const property = { index: ASN1_ARRAY_ALL2222222222 };
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 1) {
                                            return void 0;
                                          }
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          property.id = decodedValue.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          if (result.tagNumber === 2 && len < apduLen) {
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            property.index = decodedValue.value;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeBitstring2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          const resultFlag = decodedValue.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          const itemCount = decodedValue.value;
                                          if (!decodeIsOpeningTag2222222222(buffer, offset + len)) {
                                            return void 0;
                                          }
                                          len++;
                                          const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                                          return {
                                            objectId,
                                            property,
                                            resultFlag,
                                            itemCount,
                                            rangeBuffer,
                                            len
                                          };
                                        };
                                        var register_foreign_device_exports2222222222 = {};
                                        __export2222222222(register_foreign_device_exports2222222222, {
                                          decode: () => decode222222222222,
                                          encode: () => encode222222222222
                                        });
                                        var encode222222222222 = (buffer, ttl, length = 2) => {
                                          encodeUnsigned2222222222(buffer, ttl, length);
                                        };
                                        var decode222222222222 = (buffer, offset, length = 2) => {
                                          let len = 0;
                                          let result = decodeUnsigned2222222222(buffer, offset + len, length);
                                          len += result.len;
                                          return {
                                            len,
                                            ttl: result.value
                                          };
                                        };
                                        var reinitialize_device_exports2222222222 = {};
                                        __export2222222222(reinitialize_device_exports2222222222, {
                                          decode: () => decode232222222222,
                                          encode: () => encode232222222222
                                        });
                                        var encode232222222222 = (buffer, state, password) => {
                                          encodeContextEnumerated2222222222(buffer, 0, state);
                                          if (password && password !== "") {
                                            encodeContextCharacterString2222222222(buffer, 1, password);
                                          }
                                        };
                                        var decode232222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let value = {};
                                          let result;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          let decodedValue = decodeEnumerated2222222222(
                                            buffer,
                                            offset + len,
                                            result.value
                                          );
                                          value.state = decodedValue.value;
                                          len += decodedValue.len;
                                          if (len < apduLen) {
                                            if (!decodeIsContextTag2222222222(buffer, offset + len, 1)) {
                                              return void 0;
                                            }
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeCharacterString2222222222(
                                              buffer,
                                              offset + len,
                                              apduLen - (offset + len),
                                              result.value
                                            );
                                            value.password = decodedValue.value;
                                            len += decodedValue.len;
                                          }
                                          value.len = len;
                                          return value;
                                        };
                                        var subscribe_cov_exports2222222222 = {};
                                        __export2222222222(subscribe_cov_exports2222222222, {
                                          decode: () => decode242222222222,
                                          encode: () => encode242222222222
                                        });
                                        var encode242222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                                          encodeContextUnsigned2222222222(buffer, 0, subscriberProcessId);
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            1,
                                            monitoredObjectId.type,
                                            monitoredObjectId.instance
                                          );
                                          if (!cancellationRequest) {
                                            encodeContextBoolean2222222222(buffer, 2, issueConfirmedNotifications);
                                            encodeContextUnsigned2222222222(buffer, 3, lifetime);
                                          }
                                        };
                                        var decode242222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let value = {};
                                          let result;
                                          let decodedValue;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.subscriberProcessId = decodedValue.value;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          value.monitoredObjectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          value.cancellationRequest = true;
                                          if (len < apduLen) {
                                            value.issueConfirmedNotifications = false;
                                            if (decodeIsContextTag2222222222(buffer, offset + len, 2)) {
                                              value.cancellationRequest = false;
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                              value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                              len++;
                                            }
                                            value.lifetime = 0;
                                            if (decodeIsContextTag2222222222(buffer, offset + len, 3)) {
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                              decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              value.lifetime = decodedValue.value;
                                            }
                                          }
                                          value.len = len;
                                          return value;
                                        };
                                        var subscribe_property_exports2222222222 = {};
                                        __export2222222222(subscribe_property_exports2222222222, {
                                          decode: () => decode252222222222,
                                          encode: () => encode252222222222
                                        });
                                        var encode252222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                                          encodeContextUnsigned2222222222(buffer, 0, subscriberProcessId);
                                          encodeContextObjectId2222222222(
                                            buffer,
                                            1,
                                            monitoredObjectId.type,
                                            monitoredObjectId.instance
                                          );
                                          if (!cancellationRequest) {
                                            encodeContextBoolean2222222222(buffer, 2, issueConfirmedNotifications);
                                            encodeContextUnsigned2222222222(buffer, 3, lifetime);
                                          }
                                          encodeOpeningTag2222222222(buffer, 4);
                                          encodeContextEnumerated2222222222(buffer, 0, monitoredProperty.id);
                                          if (monitoredProperty.index !== ASN1_ARRAY_ALL2222222222) {
                                            encodeContextUnsigned2222222222(buffer, 1, monitoredProperty.index);
                                          }
                                          encodeClosingTag2222222222(buffer, 4);
                                          if (covIncrementPresent) {
                                            encodeContextReal2222222222(buffer, 5, covIncrement);
                                          }
                                        };
                                        var decode252222222222 = (buffer, offset) => {
                                          let len = 0;
                                          let value = {};
                                          let result;
                                          let decodedValue;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.subscriberProcessId = decodedValue.value;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          value.monitoredObjectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          value.cancellationRequest = true;
                                          value.issueConfirmedNotifications = false;
                                          if (decodeIsContextTag2222222222(buffer, offset + len, 2)) {
                                            value.cancellationRequest = false;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                            len++;
                                          }
                                          value.lifetime = 0;
                                          if (decodeIsContextTag2222222222(buffer, offset + len, 3)) {
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.lifetime = decodedValue.value;
                                          }
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 4)) {
                                            return void 0;
                                          }
                                          len++;
                                          value.monitoredProperty = {};
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.monitoredProperty.id = decodedValue.value;
                                          value.monitoredProperty.index = ASN1_ARRAY_ALL2222222222;
                                          if (decodeIsContextTag2222222222(buffer, offset + len, 1)) {
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.monitoredProperty.index = decodedValue.value;
                                          }
                                          if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 4)) {
                                            return void 0;
                                          }
                                          len++;
                                          value.covIncrement = 0;
                                          if (decodeIsContextTag2222222222(buffer, offset + len, 5)) {
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeReal2222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            value.covIncrement = decodedValue.value;
                                          }
                                          value.len = len;
                                          return value;
                                        };
                                        var time_sync_exports2222222222 = {};
                                        __export2222222222(time_sync_exports2222222222, {
                                          decode: () => decode262222222222,
                                          encode: () => encode262222222222
                                        });
                                        var encode262222222222 = (buffer, time) => {
                                          encodeApplicationDate2222222222(buffer, time);
                                          encodeApplicationTime2222222222(buffer, time);
                                        };
                                        var decode262222222222 = (buffer, offset, length) => {
                                          let len = 0;
                                          let result;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 10) {
                                            return void 0;
                                          }
                                          const date = decodeDate2222222222(buffer, offset + len);
                                          len += date.len;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 11) {
                                            return void 0;
                                          }
                                          const time = decodeBacnetTime2222222222(buffer, offset + len);
                                          len += time.len;
                                          return {
                                            len,
                                            value: new Date(
                                              date.value.getFullYear(),
                                              date.value.getMonth(),
                                              date.value.getDate(),
                                              time.value.getHours(),
                                              time.value.getMinutes(),
                                              time.value.getSeconds(),
                                              time.value.getMilliseconds()
                                            )
                                          };
                                        };
                                        var who_has_exports2222222222 = {};
                                        __export2222222222(who_has_exports2222222222, {
                                          decode: () => decode272222222222,
                                          encode: () => encode272222222222
                                        });
                                        var encode272222222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                                          if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE2222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE2222222222) {
                                            encodeContextUnsigned2222222222(buffer, 0, lowLimit);
                                            encodeContextUnsigned2222222222(buffer, 1, highLimit);
                                          }
                                          if (objectName && objectName !== "") {
                                            encodeContextCharacterString2222222222(buffer, 3, objectName);
                                          } else {
                                            encodeContextObjectId2222222222(buffer, 2, objectId.type, objectId.instance);
                                          }
                                        };
                                        var decode272222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let value = {};
                                          let decodedValue;
                                          let result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber === 0) {
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            if (decodedValue.value <= ASN1_MAX_INSTANCE2222222222) {
                                              value.lowLimit = decodedValue.value;
                                            }
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                          }
                                          if (result.tagNumber === 1) {
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            if (decodedValue.value <= ASN1_MAX_INSTANCE2222222222) {
                                              value.highLimit = decodedValue.value;
                                            }
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                          }
                                          if (result.tagNumber === 2) {
                                            decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            value.objectId = {
                                              type: decodedValue.objectType,
                                              instance: decodedValue.instance
                                            };
                                          }
                                          if (result.tagNumber === 3) {
                                            decodedValue = decodeCharacterString2222222222(
                                              buffer,
                                              offset + len,
                                              apduLen - (offset + len),
                                              result.value
                                            );
                                            len += decodedValue.len;
                                            value.objectName = decodedValue.value;
                                          }
                                          value.len = len;
                                          return value;
                                        };
                                        var who_is_exports2222222222 = {};
                                        __export2222222222(who_is_exports2222222222, {
                                          decode: () => decode282222222222,
                                          encode: () => encode282222222222
                                        });
                                        var encode282222222222 = (buffer, lowLimit, highLimit) => {
                                          if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE2222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE2222222222) {
                                            encodeContextUnsigned2222222222(buffer, 0, lowLimit);
                                            encodeContextUnsigned2222222222(buffer, 1, highLimit);
                                          }
                                        };
                                        var decode282222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let value = {};
                                          if (apduLen <= 0) {
                                            return {};
                                          }
                                          let result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 0) {
                                            return void 0;
                                          }
                                          if (apduLen <= len) {
                                            return void 0;
                                          }
                                          let decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          if (decodedValue.value <= ASN1_MAX_INSTANCE2222222222) {
                                            value.lowLimit = decodedValue.value;
                                          }
                                          if (apduLen <= len) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 1) {
                                            return void 0;
                                          }
                                          if (apduLen <= len) {
                                            return void 0;
                                          }
                                          decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          if (decodedValue.value <= ASN1_MAX_INSTANCE2222222222) {
                                            value.highLimit = decodedValue.value;
                                          }
                                          value.len = len;
                                          return value;
                                        };
                                        var write_property_exports2222222222 = {};
                                        __export2222222222(write_property_exports2222222222, {
                                          decode: () => decode292222222222,
                                          encode: () => encode292222222222
                                        });
                                        var encode292222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                                          encodeContextObjectId2222222222(buffer, 0, objectType, objectInstance);
                                          encodeContextEnumerated2222222222(buffer, 1, propertyId);
                                          if (arrayIndex !== ASN1_ARRAY_ALL2222222222) {
                                            encodeContextUnsigned2222222222(buffer, 2, arrayIndex);
                                          }
                                          encodeOpeningTag2222222222(buffer, 3);
                                          values.forEach((value) => {
                                            bacappEncodeApplicationData2222222222(buffer, value);
                                          });
                                          encodeClosingTag2222222222(buffer, 3);
                                          if (priority !== ASN1_NO_PRIORITY2222222222) {
                                            encodeContextUnsigned2222222222(buffer, 4, priority);
                                          }
                                        };
                                        var decode292222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let value = {
                                            property: {}
                                          };
                                          let decodedValue;
                                          let result;
                                          if (!decodeIsContextTag2222222222(buffer, offset + len, 0)) {
                                            return void 0;
                                          }
                                          len++;
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          let objectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          len += decodedValue.len;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 1) {
                                            return void 0;
                                          }
                                          decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.property.id = decodedValue.value;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          if (result.tagNumber === 2) {
                                            len += result.len;
                                            decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            value.property.index = decodedValue.value;
                                          } else {
                                            value.property.index = ASN1_ARRAY_ALL2222222222;
                                          }
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 3)) {
                                            return void 0;
                                          }
                                          len++;
                                          const values = [];
                                          while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222222(buffer, offset + len, 3)) {
                                            decodedValue = bacappDecodeApplicationData2222222222(
                                              buffer,
                                              offset + len,
                                              apduLen + offset,
                                              objectId.type,
                                              value.property.id
                                            );
                                            if (!decodedValue) {
                                              return void 0;
                                            }
                                            len += decodedValue.len;
                                            delete decodedValue.len;
                                            values.push(decodedValue);
                                          }
                                          value.value = values;
                                          if (!decodeIsClosingTagNumber2222222222(buffer, offset + len, 3)) {
                                            return void 0;
                                          }
                                          len++;
                                          value.priority = ASN1_MAX_PRIORITY2222222222;
                                          if (len < apduLen) {
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            if (result.tagNumber === 4) {
                                              len += result.len;
                                              decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                              len += decodedValue;
                                              if (decodedValue.value >= ASN1_MIN_PRIORITY2222222222 && decodedValue.value <= ASN1_MAX_PRIORITY2222222222) {
                                                value.priority = decodedValue.value;
                                              } else {
                                                return void 0;
                                              }
                                            }
                                          }
                                          return {
                                            len,
                                            objectId,
                                            value
                                          };
                                        };
                                        var write_property_multiple_exports2222222222 = {};
                                        __export2222222222(write_property_multiple_exports2222222222, {
                                          decode: () => decode302222222222,
                                          encode: () => encode302222222222,
                                          encodeObject: () => encodeObject2222222222
                                        });
                                        var encode302222222222 = (buffer, objectId, values) => {
                                          encodeContextObjectId2222222222(buffer, 0, objectId.type, objectId.instance);
                                          encodeOpeningTag2222222222(buffer, 1);
                                          values.forEach((pValue) => {
                                            encodeContextEnumerated2222222222(buffer, 0, pValue.property.id);
                                            if (pValue.property.index !== ASN1_ARRAY_ALL2222222222) {
                                              encodeContextUnsigned2222222222(buffer, 1, pValue.property.index);
                                            }
                                            encodeOpeningTag2222222222(buffer, 2);
                                            pValue.value.forEach((value) => {
                                              bacappEncodeApplicationData2222222222(buffer, value);
                                            });
                                            encodeClosingTag2222222222(buffer, 2);
                                            if (pValue.priority !== ASN1_NO_PRIORITY2222222222) {
                                              encodeContextUnsigned2222222222(buffer, 3, pValue.priority);
                                            }
                                          });
                                          encodeClosingTag2222222222(buffer, 1);
                                        };
                                        var decode302222222222 = (buffer, offset, apduLen) => {
                                          let len = 0;
                                          let result;
                                          let decodedValue;
                                          let objectId;
                                          result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 0 || apduLen <= len) {
                                            return void 0;
                                          }
                                          apduLen -= len;
                                          if (apduLen < 4) {
                                            return void 0;
                                          }
                                          decodedValue = decodeObjectId2222222222(buffer, offset + len);
                                          len += decodedValue.len;
                                          objectId = {
                                            type: decodedValue.objectType,
                                            instance: decodedValue.instance
                                          };
                                          if (!decodeIsOpeningTagNumber2222222222(buffer, offset + len, 1)) {
                                            return void 0;
                                          }
                                          len++;
                                          const _values = [];
                                          while (apduLen - len > 1) {
                                            let newEntry = {};
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber !== 0) {
                                              return void 0;
                                            }
                                            decodedValue = decodeEnumerated2222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            let propertyId = decodedValue.value;
                                            let arrayIndex = ASN1_ARRAY_ALL2222222222;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber === 1) {
                                              decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              arrayIndex = decodedValue.value;
                                              result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                              len += result.len;
                                            }
                                            newEntry.property = { id: propertyId, index: arrayIndex };
                                            if (result.tagNumber !== 2 || !decodeIsOpeningTag2222222222(buffer, offset + len - 1)) {
                                              return void 0;
                                            }
                                            const values = [];
                                            while (len + offset <= buffer.length && !decodeIsClosingTag2222222222(buffer, offset + len)) {
                                              let value = bacappDecodeApplicationData2222222222(
                                                buffer,
                                                offset + len,
                                                apduLen + offset,
                                                objectId.type,
                                                propertyId
                                              );
                                              if (!value) {
                                                return void 0;
                                              }
                                              len += value.len;
                                              delete value.len;
                                              values.push(value);
                                            }
                                            len++;
                                            newEntry.value = values;
                                            let priority = ASN1_NO_PRIORITY2222222222;
                                            result = decodeTagNumberAndValue2222222222(buffer, offset + len);
                                            len += result.len;
                                            if (result.tagNumber === 3) {
                                              decodedValue = decodeUnsigned2222222222(buffer, offset + len, result.value);
                                              len += decodedValue.len;
                                              priority = decodedValue.value;
                                            } else {
                                              len--;
                                            }
                                            newEntry.priority = priority;
                                            _values.push(newEntry);
                                            if (decodeIsClosingTagNumber2222222222(buffer, offset + len, 1)) {
                                              len++;
                                            }
                                          }
                                          if (decodeIsClosingTagNumber2222222222(buffer, offset + len, 1)) {
                                            len++;
                                          }
                                          return {
                                            len,
                                            objectId,
                                            values: _values
                                          };
                                        };
                                        var encodeObject2222222222 = (buffer, values) => {
                                          values.forEach((object) => {
                                            encode302222222222(buffer, object.objectId, object.values);
                                          });
                                        };
                                        var getDecodedType2222222222 = (buffer, offset) => {
                                          return buffer[offset];
                                        };
                                        var encodeConfirmedServiceRequest2222222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                                          buffer.buffer[buffer.offset++] = type;
                                          buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                                          buffer.buffer[buffer.offset++] = invokeId;
                                          if ((type & 8) > 0) {
                                            buffer.buffer[buffer.offset++] = sequencenumber;
                                            buffer.buffer[buffer.offset++] = proposedWindowSize;
                                          }
                                          buffer.buffer[buffer.offset++] = service;
                                        };
                                        var decodeConfirmedServiceRequest2222222222 = (buffer, offset) => {
                                          const orgOffset = offset;
                                          const type = buffer[offset++];
                                          const maxSegments = buffer[offset] & 240;
                                          const maxApdu = buffer[offset++] & 15;
                                          const invokeId = buffer[offset++];
                                          let sequencenumber = 0;
                                          let proposedWindowNumber = 0;
                                          if ((type & 8) > 0) {
                                            sequencenumber = buffer[offset++];
                                            proposedWindowNumber = buffer[offset++];
                                          }
                                          const service = buffer[offset++];
                                          return {
                                            len: offset - orgOffset,
                                            type,
                                            service,
                                            maxSegments,
                                            maxApdu,
                                            invokeId,
                                            sequencenumber,
                                            proposedWindowNumber
                                          };
                                        };
                                        var encodeUnconfirmedServiceRequest2222222222 = (buffer, type, service) => {
                                          buffer.buffer[buffer.offset++] = type;
                                          buffer.buffer[buffer.offset++] = service;
                                        };
                                        var decodeUnconfirmedServiceRequest2222222222 = (buffer, offset) => {
                                          const orgOffset = offset;
                                          const type = buffer[offset++];
                                          const service = buffer[offset++];
                                          return {
                                            len: offset - orgOffset,
                                            type,
                                            service
                                          };
                                        };
                                        var encodeSimpleAck2222222222 = (buffer, type, service, invokeId) => {
                                          buffer.buffer[buffer.offset++] = type;
                                          buffer.buffer[buffer.offset++] = invokeId;
                                          buffer.buffer[buffer.offset++] = service;
                                        };
                                        var decodeSimpleAck2222222222 = (buffer, offset) => {
                                          const orgOffset = offset;
                                          const type = buffer[offset++];
                                          const invokeId = buffer[offset++];
                                          const service = buffer[offset++];
                                          return {
                                            len: offset - orgOffset,
                                            type,
                                            service,
                                            invokeId
                                          };
                                        };
                                        var encodeComplexAck2222222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                                          let len = 3;
                                          buffer.buffer[buffer.offset++] = type;
                                          buffer.buffer[buffer.offset++] = invokeId;
                                          if ((type & 8) > 0) {
                                            buffer.buffer[buffer.offset++] = sequencenumber;
                                            buffer.buffer[buffer.offset++] = proposedWindowNumber;
                                            len += 2;
                                          }
                                          buffer.buffer[buffer.offset++] = service;
                                          return len;
                                        };
                                        var decodeComplexAck2222222222 = (buffer, offset) => {
                                          const orgOffset = offset;
                                          const type = buffer[offset++];
                                          const invokeId = buffer[offset++];
                                          let sequencenumber = 0;
                                          let proposedWindowNumber = 0;
                                          if ((type & 8) > 0) {
                                            sequencenumber = buffer[offset++];
                                            proposedWindowNumber = buffer[offset++];
                                          }
                                          const service = buffer[offset++];
                                          return {
                                            len: offset - orgOffset,
                                            type,
                                            service,
                                            invokeId,
                                            sequencenumber,
                                            proposedWindowNumber
                                          };
                                        };
                                        var encodeSegmentAck2222222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                                          buffer.buffer[buffer.offset++] = type;
                                          buffer.buffer[buffer.offset++] = originalInvokeId;
                                          buffer.buffer[buffer.offset++] = sequencenumber;
                                          buffer.buffer[buffer.offset++] = actualWindowSize;
                                        };
                                        var decodeSegmentAck2222222222 = (buffer, offset) => {
                                          const orgOffset = offset;
                                          const type = buffer[offset++];
                                          const originalInvokeId = buffer[offset++];
                                          const sequencenumber = buffer[offset++];
                                          const actualWindowSize = buffer[offset++];
                                          return {
                                            len: offset - orgOffset,
                                            type,
                                            originalInvokeId,
                                            sequencenumber,
                                            actualWindowSize
                                          };
                                        };
                                        var encodeResult2222222222 = (buffer, resultCode) => {
                                          encodeUnsigned2222222222(buffer, resultCode, 2);
                                        };
                                        var encodeError2222222222 = (buffer, type, service, invokeId) => {
                                          buffer.buffer[buffer.offset++] = type;
                                          buffer.buffer[buffer.offset++] = invokeId;
                                          buffer.buffer[buffer.offset++] = service;
                                        };
                                        var decodeError2222222222 = (buffer, offset) => {
                                          const orgOffset = offset;
                                          const type = buffer[offset++];
                                          const invokeId = buffer[offset++];
                                          const service = buffer[offset++];
                                          return {
                                            len: offset - orgOffset,
                                            type,
                                            service,
                                            invokeId
                                          };
                                        };
                                        var decodeAbort2222222222 = (buffer, offset) => {
                                          const orgOffset = offset;
                                          const type = buffer[offset++];
                                          const invokeId = buffer[offset++];
                                          const reason = buffer[offset++];
                                          return {
                                            len: offset - orgOffset,
                                            type,
                                            invokeId,
                                            reason
                                          };
                                        };
                                        var DEFAULT_HOP_COUNT3222222222 = 255;
                                        var BACNET_PROTOCOL_VERSION2222222222 = 1;
                                        var BACNET_ADDRESS_TYPES2222222222 = {
                                          NONE: 0,
                                          IP: 1
                                        };
                                        var decodeTarget2222222222 = (buffer, offset) => {
                                          let len = 0;
                                          const target = {
                                            type: BACNET_ADDRESS_TYPES2222222222.NONE,
                                            net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                                          };
                                          const adrLen = buffer[offset + len++];
                                          if (adrLen > 0) {
                                            target.adr = [];
                                            for (let i = 0; i < adrLen; i++) {
                                              target.adr.push(buffer[offset + len++]);
                                            }
                                          }
                                          return {
                                            target,
                                            len
                                          };
                                        };
                                        var encodeTarget2222222222 = (buffer, target) => {
                                          buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                                          buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                                          if (target.net === 65535 || !target.adr) {
                                            buffer.buffer[buffer.offset++] = 0;
                                          } else {
                                            buffer.buffer[buffer.offset++] = target.adr.length;
                                            if (target.adr.length > 0) {
                                              for (let i = 0; i < target.adr.length; i++) {
                                                buffer.buffer[buffer.offset++] = target.adr[i];
                                              }
                                            }
                                          }
                                        };
                                        var decode312222222222 = (buffer, offset) => {
                                          let adrLen;
                                          const orgOffset = offset;
                                          offset++;
                                          const funct = buffer[offset++];
                                          let destination;
                                          if (funct & 32) {
                                            const tmpDestination = decodeTarget2222222222(buffer, offset);
                                            offset += tmpDestination.len;
                                            destination = tmpDestination.target;
                                          }
                                          let source;
                                          if (funct & 8) {
                                            const tmpSource = decodeTarget2222222222(buffer, offset);
                                            offset += tmpSource.len;
                                            source = tmpSource.target;
                                          }
                                          let hopCount = 0;
                                          if (funct & 32) {
                                            hopCount = buffer[offset++];
                                          }
                                          let networkMsgType = 0;
                                          let vendorId = 0;
                                          if (funct & 128) {
                                            networkMsgType = buffer[offset++];
                                            if (networkMsgType >= 128) {
                                              vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                                            } else if (networkMsgType === 0) {
                                              offset += 2;
                                            }
                                          }
                                          if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION2222222222) {
                                            return void 0;
                                          }
                                          return {
                                            len: offset - orgOffset,
                                            funct,
                                            destination,
                                            source,
                                            hopCount,
                                            networkMsgType,
                                            vendorId
                                          };
                                        };
                                        var encode312222222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                                          const hasDestination = destination && destination.net > 0;
                                          const hasSource = source && source.net > 0 && source.net !== 65535;
                                          buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION2222222222;
                                          buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                                          if (hasDestination) {
                                            encodeTarget2222222222(buffer, destination);
                                          }
                                          if (hasSource) {
                                            encodeTarget2222222222(buffer, source);
                                          }
                                          if (hasDestination) {
                                            buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT3222222222;
                                          }
                                          if ((funct & 128) > 0) {
                                            buffer.buffer[buffer.offset++] = networkMsgType;
                                            if (networkMsgType >= 128) {
                                              buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                                              buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                                            }
                                          }
                                        };
                                        var DEFAULT_BACNET_PORT22222222222 = 47808;
                                        var encode322222222222 = (buffer, func, msgLength, originatingIP) => {
                                          buffer[0] = BVLL_TYPE_BACNET_IP2222222222;
                                          buffer[1] = func;
                                          buffer[2] = (msgLength & 65280) >> 8;
                                          buffer[3] = (msgLength & 255) >> 0;
                                          if (originatingIP) {
                                            if (func !== 4) {
                                              throw new Error(
                                                "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                                              );
                                            }
                                            const [ipstr, portstr] = originatingIP.split(":");
                                            const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT22222222222;
                                            const ip = ipstr.split(".");
                                            buffer[4] = parseInt(ip[0], 10);
                                            buffer[5] = parseInt(ip[1], 10);
                                            buffer[6] = parseInt(ip[2], 10);
                                            buffer[7] = parseInt(ip[3], 10);
                                            buffer[8] = (port & 65280) >> 8;
                                            buffer[9] = (port & 255) >> 0;
                                            return 6 + BVLC_HEADER_LENGTH3222222222;
                                          } else {
                                            if (func === 4) {
                                              throw new Error(
                                                "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                                              );
                                            }
                                          }
                                          return BVLC_HEADER_LENGTH3222222222;
                                        };
                                        var decode322222222222 = (buffer, _offset) => {
                                          let len;
                                          const func = buffer[1];
                                          const msgLength = buffer[2] << 8 | buffer[3] << 0;
                                          if (buffer[0] !== BVLL_TYPE_BACNET_IP2222222222 || buffer.length !== msgLength) {
                                            return void 0;
                                          }
                                          let originatingIP = null;
                                          switch (func) {
                                            case 0:
                                            case 10:
                                            case 11:
                                            case 9:
                                            case 5:
                                            case 6:
                                            case 8:
                                            case 2:
                                            case 1:
                                            case 3:
                                            case 7:
                                              len = 4;
                                              break;
                                            case 4:
                                              const port = buffer[8] << 8 | buffer[9];
                                              originatingIP = buffer.slice(4, 8).join(".");
                                              if (port !== DEFAULT_BACNET_PORT22222222222) {
                                                originatingIP += ":" + port;
                                              }
                                              len = 10;
                                              break;
                                            case 12:
                                              return void 0;
                                            default:
                                              return void 0;
                                          }
                                          return {
                                            len,
                                            func,
                                            msgLength,
                                            // Originating IP is set to the IP address of the node that originally
                                            // sent the packet, when it has been forwarded to us by a BBMD (since the
                                            // BBMD's IP address will be in the sender field.
                                            originatingIP
                                          };
                                        };
                                        var EventEmitter22222222222 = import_events22222222222.default.EventEmitter;
                                        var debug32222222222 = (0, import_debug32222222222.default)("bacnet:client:debug");
                                        var trace22222222222 = (0, import_debug32222222222.default)("bacnet:client:trace");
                                        var ALL_INTERFACES2222222222 = "0.0.0.0";
                                        var LOCALHOST_INTERFACES_IPV42222222222 = "127.0.0.1";
                                        var BROADCAST_ADDRESS2222222222 = "255.255.255.255";
                                        var DEFAULT_HOP_COUNT22222222222 = 255;
                                        var BVLC_HEADER_LENGTH22222222222 = 4;
                                        var BVLC_FWD_HEADER_LENGTH2222222222 = 10;
                                        var beU2222222222 = UnconfirmedServiceChoice2222222222;
                                        var unconfirmedServiceMap2222222222 = {
                                          [beU2222222222.I_AM]: "iAm",
                                          [beU2222222222.WHO_IS]: "whoIs",
                                          [beU2222222222.WHO_HAS]: "whoHas",
                                          [beU2222222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                                          [beU2222222222.TIME_SYNCHRONIZATION]: "timeSync",
                                          [beU2222222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                                          [beU2222222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                          [beU2222222222.I_HAVE]: "iHave",
                                          [beU2222222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                        };
                                        var beC2222222222 = ConfirmedServiceChoice2222222222;
                                        var confirmedServiceMap2222222222 = {
                                          [beC2222222222.READ_PROPERTY]: "readProperty",
                                          [beC2222222222.WRITE_PROPERTY]: "writeProperty",
                                          [beC2222222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                                          [beC2222222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                                          [beC2222222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                                          [beC2222222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                                          [beC2222222222.ATOMIC_READ_FILE]: "atomicReadFile",
                                          [beC2222222222.SUBSCRIBE_COV]: "subscribeCov",
                                          [beC2222222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                                          [beC2222222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                                          [beC2222222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                                          [beC2222222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                          [beC2222222222.READ_RANGE]: "readRange",
                                          [beC2222222222.CREATE_OBJECT]: "createObject",
                                          [beC2222222222.DELETE_OBJECT]: "deleteObject",
                                          [beC2222222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                                          [beC2222222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                                          [beC2222222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                                          [beC2222222222.GET_EVENT_INFORMATION]: "getEventInformation",
                                          [beC2222222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                                          [beC2222222222.ADD_LIST_ELEMENT]: "addListElement",
                                          [beC2222222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                                          [beC2222222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                        };
                                        var errorReasonEnums2222222222 = {
                                          BacnetAbort: RejectReason2222222222
                                        };
                                        var BacnetError2222222222 = class extends Error {
                                          constructor(message, bacnetErrorClass, bacnetErrorCode) {
                                            super(message);
                                            this.bacnetErrorClass = bacnetErrorClass;
                                            this.bacnetErrorCode = bacnetErrorCode;
                                          }
                                        };
                                        function bacnetErrorToString2222222222(err) {
                                          var _a;
                                          const isError = err instanceof Error || err instanceof BacnetError2222222222;
                                          if (!isError)
                                            return;
                                          const message = err.message;
                                          const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                                          const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                                          if (!errorReasonEnums2222222222[reasonClass])
                                            return;
                                          const reasonString = errorReasonEnums2222222222[reasonClass][reason];
                                          return reasonClass + ": " + reasonString;
                                        }
                                        var Client2222222222 = class extends EventEmitter22222222222 {
                                          /**
                                           *
                                           * @param options
                                           */
                                          constructor(options) {
                                            super();
                                            options = options || {};
                                            this._invokeCounter = 1;
                                            this._invokeStore = {};
                                            this._lastSequenceNumber = 0;
                                            this._segmentStore = [];
                                            this._settings = {
                                              port: options.port || 47808,
                                              interface: options.interface || ALL_INTERFACES2222222222,
                                              transport: options.transport,
                                              broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS2222222222,
                                              apduTimeout: options.apduTimeout || 3e3
                                            };
                                            options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                                            this._transport = this._settings.transport || new Transport2222222222({
                                              port: this._settings.port,
                                              interface: this._settings.interface,
                                              broadcastAddress: this._settings.broadcastAddress,
                                              reuseAddr: options.reuseAddr
                                            });
                                            this._transport.on("message", this._receiveData.bind(this));
                                            this._transport.on("error", this._receiveError.bind(this));
                                            this._transport.on("listening", () => this.emit("listening"));
                                            this._transport.open();
                                          }
                                          /**
                                           *
                                           * @returns {number}
                                           * @private
                                           */
                                          _getInvokeId() {
                                            const id = this._invokeCounter++;
                                            if (id >= 256)
                                              this._invokeCounter = 1;
                                            return id - 1;
                                          }
                                          /**
                                           *
                                           * @param id
                                           * @param err
                                           * @param result
                                           * @returns {*}
                                           * @private
                                           */
                                          _invokeCallback(id, err, result) {
                                            const callback = this._invokeStore[id];
                                            if (callback) {
                                              return void callback(err, result);
                                            }
                                            debug32222222222("InvokeId", id, "not found -> drop package");
                                          }
                                          /**
                                           *
                                           * @param id
                                           * @param callback
                                           * @private
                                           */
                                          _addCallback(id, callback) {
                                            const timeout = setTimeout(() => {
                                              delete this._invokeStore[id];
                                              callback(new Error("ERR_TIMEOUT"));
                                            }, this._settings.apduTimeout);
                                            this._invokeStore[id] = (err, data) => {
                                              clearTimeout(timeout);
                                              delete this._invokeStore[id];
                                              callback(err, data);
                                            };
                                          }
                                          /**
                                           *
                                           * @param isForwarded
                                           * @returns {{offset: (number), buffer: *}}
                                           * @private
                                           */
                                          _getBuffer(isForwarded) {
                                            return Object.assign(
                                              {},
                                              {
                                                buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                                offset: isForwarded ? BVLC_FWD_HEADER_LENGTH2222222222 : BVLC_HEADER_LENGTH22222222222
                                              }
                                            );
                                          }
                                          /**
                                           *
                                           * @param invokeId
                                           * @param buffer
                                           * @param offset
                                           * @param length
                                           * @returns {*}
                                           * @private
                                           */
                                          _processError(invokeId, buffer, offset, length) {
                                            const result = error_exports2222222222.decode(buffer, offset);
                                            trace22222222222("Received error:", result);
                                            if (!result) {
                                              return debug32222222222("Couldn`t decode Error");
                                            }
                                            const err = new BacnetError2222222222(error_exports2222222222.buildMessage(result));
                                            err.bacnetErrorClass = result.class;
                                            err.bacnetErrorCode = result.code;
                                            this._invokeCallback(invokeId, err);
                                          }
                                          /**
                                           *
                                           * @param invokeId
                                           * @param reason
                                           * @private
                                           */
                                          _processAbort(invokeId, reason) {
                                            const err = new BacnetError2222222222("BacnetAbort - Reason:" + reason);
                                            err.bacnetAbortReason = reason;
                                            err.bacnetErrorClass = AbortReason2222222222;
                                            this._invokeCallback(invokeId, err);
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param negative
                                           * @param server
                                           * @param originalInvokeId
                                           * @param sequencenumber
                                           * @param actualWindowSize
                                           * @private
                                           */
                                          _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                                            const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                            encode312222222222(
                                              buffer,
                                              0,
                                              receiver,
                                              null,
                                              DEFAULT_HOP_COUNT22222222222,
                                              0,
                                              0
                                            );
                                            encodeSegmentAck2222222222(
                                              buffer,
                                              64 | (negative ? 2 : 0) | (server ? 1 : 0),
                                              originalInvokeId,
                                              sequencenumber,
                                              actualWindowSize
                                            );
                                            this.sendBvlc(receiver, buffer);
                                          }
                                          /**
                                           *
                                           * @param msg
                                           * @param first
                                           * @param moreFollows
                                           * @param buffer
                                           * @param offset
                                           * @param length
                                           * @private
                                           */
                                          _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                                            if (first) {
                                              this._segmentStore = [];
                                              msg.type &= ~8;
                                              let apduHeaderLen = 3;
                                              if ((msg.type & PDU_TYPE_MASK2222222222) === 0) {
                                                apduHeaderLen = 4;
                                              }
                                              const apdubuffer = this._getBuffer();
                                              apdubuffer.offset = 0;
                                              buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                                              if ((msg.type & PDU_TYPE_MASK2222222222) === 0) {
                                                encodeConfirmedServiceRequest2222222222(
                                                  apdubuffer,
                                                  msg.type,
                                                  msg.service,
                                                  msg.maxSegments,
                                                  msg.maxApdu,
                                                  msg.invokeId,
                                                  0,
                                                  0
                                                );
                                              } else {
                                                encodeComplexAck2222222222(
                                                  apdubuffer,
                                                  msg.type,
                                                  msg.service,
                                                  msg.invokeId,
                                                  0,
                                                  0
                                                );
                                              }
                                              this._segmentStore.push(
                                                //@ts-ignore
                                                apdubuffer.buffer.slice(0, length + apduHeaderLen)
                                              );
                                            } else {
                                              this._segmentStore.push(buffer.slice(offset, offset + length));
                                            }
                                            if (!moreFollows) {
                                              const apduBuffer = Buffer.concat(this._segmentStore);
                                              this._segmentStore = [];
                                              msg.type &= ~8;
                                              this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                                            }
                                          }
                                          /**
                                           *
                                           * @param msg
                                           * @param server
                                           * @param buffer
                                           * @param offset
                                           * @param length
                                           * @private
                                           */
                                          _processSegment(msg, server, buffer, offset, length) {
                                            let first = false;
                                            if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                                              first = true;
                                            } else {
                                              if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                                return this._segmentAckResponse(
                                                  msg.header.address,
                                                  true,
                                                  server,
                                                  msg.invokeId,
                                                  this._lastSequenceNumber,
                                                  msg.proposedWindowNumber
                                                );
                                              }
                                            }
                                            this._lastSequenceNumber = msg.sequencenumber;
                                            const moreFollows = msg.type & 4;
                                            if (!moreFollows) {
                                              this._lastSequenceNumber = 0;
                                            }
                                            if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                                              this._segmentAckResponse(
                                                msg.header.address,
                                                false,
                                                server,
                                                msg.invokeId,
                                                msg.sequencenumber,
                                                msg.proposedWindowNumber
                                              );
                                            }
                                            this._performDefaultSegmentHandling(
                                              msg,
                                              first,
                                              moreFollows,
                                              buffer,
                                              offset,
                                              length
                                            );
                                          }
                                          /**
                                           *
                                           * @param serviceMap
                                           * @param content
                                           * @param buffer
                                           * @param offset
                                           * @param length
                                           * @returns {*}
                                           * @private
                                           */
                                          _processServiceRequest(serviceMap, content, buffer, offset, length) {
                                            let result;
                                            const sender = content.header.sender;
                                            if (sender.address === LOCALHOST_INTERFACES_IPV42222222222) {
                                              debug32222222222("Received and skipped localhost service request:", content.service);
                                              return;
                                            }
                                            const name = serviceMap[content.service];
                                            if (!name) {
                                              debug32222222222("Received unsupported service request:", content.service);
                                              return;
                                            }
                                            const id = content.invokeId ? "@" + content.invokeId : "";
                                            trace22222222222(`Received service request${id}:`, name);
                                            const serviceHandler = services_exports2222222222[name];
                                            if (serviceHandler) {
                                              try {
                                                content.payload = serviceHandler.decode(buffer, offset, length);
                                                trace22222222222(`Handled service request${id}:`, name, JSON.stringify(content));
                                              } catch (e) {
                                                debug32222222222("Exception thrown when processing message:", e);
                                                debug32222222222("Original message was", name + ":", content);
                                                return;
                                              }
                                              if (!content.payload) {
                                                return debug32222222222("Received invalid", name, "message");
                                              }
                                            } else {
                                              debug32222222222("No serviceHandler defined for:", name);
                                            }
                                            if (this.listenerCount(name)) {
                                              trace22222222222("listener count by name emits " + name + " with content");
                                              this.emit(name, content);
                                            } else {
                                              if (this.listenerCount("unhandledEvent")) {
                                                trace22222222222("unhandled event emiting with content");
                                                this.emit("unhandledEvent", content);
                                              } else {
                                                trace22222222222(
                                                  "no unhandled event handler with header: " + JSON.stringify(content.header)
                                                );
                                                if (content.header.expectingReply) {
                                                  debug32222222222("Replying with error for unhandled service:", name);
                                                  content.header.sender.forwardedFrom = null;
                                                  this.errorResponse(
                                                    content.header.sender,
                                                    content.service,
                                                    content.invokeId,
                                                    5,
                                                    67
                                                    /* REJECT_UNRECOGNIZED_SERVICE */
                                                  );
                                                }
                                              }
                                            }
                                          }
                                          /**
                                           *
                                           * @param buffer
                                           * @param offset
                                           * @param length
                                           * @param header
                                           * @private
                                           */
                                          _handlePdu(buffer, offset, length, header) {
                                            let msg;
                                            trace22222222222("handlePdu Header: ", header);
                                            switch (header.apduType & PDU_TYPE_MASK2222222222) {
                                              case 16:
                                                msg = decodeUnconfirmedServiceRequest2222222222(buffer, offset);
                                                msg.header = header;
                                                msg.header.confirmedService = false;
                                                this._processServiceRequest(
                                                  unconfirmedServiceMap2222222222,
                                                  msg,
                                                  buffer,
                                                  offset + msg.len,
                                                  length - msg.len
                                                );
                                                break;
                                              case 32:
                                                msg = decodeSimpleAck2222222222(buffer, offset);
                                                offset += msg.len;
                                                length -= msg.len;
                                                this._invokeCallback(msg.invokeId, null, {
                                                  msg,
                                                  buffer,
                                                  offset: offset + msg.len,
                                                  length: length - msg.len
                                                });
                                                break;
                                              case 48:
                                                msg = decodeComplexAck2222222222(buffer, offset);
                                                msg.header = header;
                                                if ((header.apduType & 8) === 0) {
                                                  this._invokeCallback(msg.invokeId, null, {
                                                    msg,
                                                    buffer,
                                                    offset: offset + msg.len,
                                                    length: length - msg.len
                                                  });
                                                } else {
                                                  this._processSegment(
                                                    msg,
                                                    true,
                                                    buffer,
                                                    offset + msg.len,
                                                    length - msg.len
                                                  );
                                                }
                                                break;
                                              case 64:
                                                msg = decodeSegmentAck2222222222(buffer, offset);
                                                msg.header = header;
                                                this._processSegment(
                                                  msg,
                                                  true,
                                                  buffer,
                                                  offset + msg.len,
                                                  length - msg.len
                                                );
                                                break;
                                              case 80:
                                                msg = decodeError2222222222(buffer, offset);
                                                this._processError(
                                                  msg.invokeId,
                                                  buffer,
                                                  offset + msg.len,
                                                  length - msg.len
                                                );
                                                break;
                                              case 96:
                                              case 112:
                                                msg = decodeAbort2222222222(buffer, offset);
                                                this._processAbort(msg.invokeId, msg.reason);
                                                break;
                                              case 0:
                                                msg = decodeConfirmedServiceRequest2222222222(buffer, offset);
                                                msg.header = header;
                                                msg.header.confirmedService = true;
                                                if ((header.apduType & 8) === 0) {
                                                  this._processServiceRequest(
                                                    confirmedServiceMap2222222222,
                                                    msg,
                                                    buffer,
                                                    offset + msg.len,
                                                    length - msg.len
                                                  );
                                                } else {
                                                  this._processSegment(
                                                    msg,
                                                    true,
                                                    buffer,
                                                    offset + msg.len,
                                                    length - msg.len
                                                  );
                                                }
                                                break;
                                              default:
                                                debug32222222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                                break;
                                            }
                                          }
                                          /**
                                           *
                                           * @param buffer
                                           * @param offset
                                           * @param msgLength
                                           * @param header
                                           * @returns {*}
                                           * @private
                                           */
                                          _handleNpdu(buffer, offset, msgLength, header) {
                                            if (msgLength <= 0) {
                                              return trace22222222222("No NPDU data -> Drop package");
                                            }
                                            const result = decode312222222222(buffer, offset);
                                            if (!result) {
                                              return trace22222222222("Received invalid NPDU header -> Drop package");
                                            }
                                            if (result.funct & 128) {
                                              return trace22222222222("Received network layer message -> Drop package");
                                            }
                                            offset += result.len;
                                            msgLength -= result.len;
                                            if (msgLength <= 0) {
                                              return trace22222222222("No APDU data -> Drop package");
                                            }
                                            header.apduType = getDecodedType2222222222(buffer, offset);
                                            header.expectingReply = !!(result.funct & 4);
                                            this._handlePdu(buffer, offset, msgLength, header);
                                          }
                                          /**
                                           *
                                           * @param buffer
                                           * @param remoteAddress
                                           * @returns {*}
                                           * @private
                                           */
                                          _receiveData(buffer, remoteAddress) {
                                            if (buffer.length < BVLC_HEADER_LENGTH3222222222) {
                                              return trace22222222222("Received invalid data -> Drop package");
                                            }
                                            const result = decode322222222222(buffer, 0);
                                            if (!result) {
                                              return trace22222222222("Received invalid BVLC header -> Drop package");
                                            }
                                            let header = {
                                              // Which function the packet came in on, so later code can distinguish
                                              // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                                              func: result.func,
                                              sender: {
                                                // Address of the host we are directly connected to. String, IP:port.
                                                address: remoteAddress,
                                                // If the host is a BBMD passing messages along to another node, this
                                                // is the address of the distant BACnet node.  String, IP:port.
                                                // Typically we won't have network connectivity to this address, but
                                                // we have to include it in replies so the host we are connect to knows
                                                // where to forward the messages.
                                                forwardedFrom: null
                                              }
                                            };
                                            switch (result.func) {
                                              case 10:
                                              case 11:
                                                this._handleNpdu(
                                                  buffer,
                                                  result.len,
                                                  buffer.length - result.len,
                                                  header
                                                );
                                                break;
                                              case 4:
                                                header.sender.forwardedFrom = result.originatingIP;
                                                this._handleNpdu(
                                                  buffer,
                                                  result.len,
                                                  buffer.length - result.len,
                                                  header
                                                );
                                                break;
                                              case 5:
                                                let decodeResult = register_foreign_device_exports2222222222.decode(
                                                  buffer,
                                                  result.len,
                                                  buffer.length - result.len
                                                );
                                                if (!decodeResult) {
                                                  return trace22222222222("Received invalid registerForeignDevice message");
                                                }
                                                this.emit("registerForeignDevice", {
                                                  header,
                                                  payload: decodeResult
                                                });
                                                break;
                                              case 9:
                                                this._handleNpdu(
                                                  buffer,
                                                  result.len,
                                                  buffer.length - result.len,
                                                  header
                                                );
                                                break;
                                              default:
                                                debug32222222222(
                                                  "Received unknown BVLC function " + result.func + " -> Drop package"
                                                );
                                                break;
                                            }
                                          }
                                          /**
                                           * @event bacnet.error
                                           * @param {error} err - The error object thrown by the underlying transport layer.
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * client.on('error', (err) => {
                                           *   console.log('Error occurred: ', err);
                                           *   client.close();
                                           * });
                                           */
                                          _receiveError(err) {
                                            this.emit("error", err);
                                          }
                                          /**
                                           * The whoIs command discovers all BACNET devices in a network.
                                           * @function bacnet.whoIs
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {object=} options
                                           * @param {number=} options.lowLimit - Minimal device instance number to search for.
                                           * @param {number=} options.highLimit - Maximal device instance number to search for.
                                           * @fires bacnet.iAm
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * client.whoIs();
                                           */
                                          whoIs(receiver, options) {
                                            if (!options) {
                                              if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                                options = receiver;
                                                receiver = void 0;
                                              }
                                            }
                                            options = options || {};
                                            const settings = {
                                              lowLimit: options.lowLimit,
                                              highLimit: options.highLimit
                                            };
                                            const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                            encode312222222222(
                                              buffer,
                                              0,
                                              //@ts-ignore
                                              receiver,
                                              null,
                                              DEFAULT_HOP_COUNT22222222222,
                                              0,
                                              0
                                            );
                                            encodeUnconfirmedServiceRequest2222222222(
                                              buffer,
                                              16,
                                              8
                                              /* WHO_IS */
                                            );
                                            who_is_exports2222222222.encode(buffer, settings.lowLimit, settings.highLimit);
                                            this.sendBvlc(receiver, buffer);
                                          }
                                          /**
                                           * The timeSync command sets the time of a target device.
                                           * @function bacnet.timeSync
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {date} dateTime - The date and time to set on the target device.
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * client.timeSync('192.168.1.43', new Date());
                                           */
                                          timeSync(receiver, dateTime) {
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(buffer, 0, receiver);
                                            encodeUnconfirmedServiceRequest2222222222(
                                              buffer,
                                              16,
                                              6
                                              /* TIME_SYNCHRONIZATION */
                                            );
                                            time_sync_exports2222222222.encode(buffer, dateTime);
                                            this.sendBvlc(receiver, buffer);
                                          }
                                          /**
                                           * The timeSyncUTC command sets the UTC time of a target device.
                                           * @function bacnet.timeSyncUTC
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {date} dateTime - The date and time to set on the target device.
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * client.timeSyncUTC('192.168.1.43', new Date());
                                           */
                                          timeSyncUTC(receiver, dateTime) {
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(buffer, 0, receiver);
                                            encodeUnconfirmedServiceRequest2222222222(
                                              buffer,
                                              16,
                                              9
                                              /* UTC_TIME_SYNCHRONIZATION */
                                            );
                                            time_sync_exports2222222222.encode(buffer, dateTime);
                                            this.sendBvlc(receiver, buffer);
                                          }
                                          /**
                                           * The readProperty command reads a single property of an object from a device.
                                           * @function bacnet.readProperty
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {object} objectId - The BACNET object ID to read.
                                           * @param {number} objectId.type - The BACNET object type to read.
                                           * @param {number} objectId.instance - The BACNET object instance to read.
                                           * @param {number} propertyId - The BACNET property id in the specified object to read.
                                           * @param {object=} options
                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                           * @param {number=} options.arrayIndex - The array index of the property to be read.
                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                                           *   console.log('value: ', value);
                                           * });
                                           */
                                          readProperty(receiver, objectId, propertyId, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId(),
                                              arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL2222222222
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              //@ts-ignore
                                              receiver,
                                              null,
                                              DEFAULT_HOP_COUNT22222222222,
                                              0,
                                              0
                                            );
                                            const type = 0 | //@ts-ignore
                                            (settings.maxSegments !== 0 ? 2 : 0);
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              type,
                                              12,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            read_property_exports2222222222.encode(
                                              buffer,
                                              objectId.type,
                                              objectId.instance,
                                              propertyId,
                                              settings.arrayIndex
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              const result = read_property_exports2222222222.decodeAcknowledge(
                                                data.buffer,
                                                data.offset,
                                                data.length
                                              );
                                              if (!result) {
                                                return void next(new Error("INVALID_DECODING"));
                                              }
                                              next(null, result);
                                            });
                                          }
                                          /**
                                           * The writeProperty command writes a single property of an object to a device.
                                           * @function bacnet.writeProperty
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {object} objectId - The BACNET object ID to write.
                                           * @param {number} objectId.type - The BACNET object type to write.
                                           * @param {number} objectId.instance - The BACNET object instance to write.
                                           * @param {number} propertyId - The BACNET property id in the specified object to write.
                                           * @param {object[]} values - A list of values to be written to the specified property.
                                           * @param {ApplicationTag} values.type - The data-type of the value to be written.
                                           * @param {number} values.value - The actual value to be written.
                                           * @param {object=} options
                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                           * @param {number=} options.arrayIndex - The array index of the property to be read.
                                           * @param {number=} options.priority - The priority of the value to be written.
                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                                           *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                                           * ], (err, value) => {
                                           *   console.log('value: ', value);
                                           * });
                                           */
                                          writeProperty(receiver, objectId, propertyId, values, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId(),
                                              arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL2222222222,
                                              priority: options.priority || ASN1_NO_PRIORITY2222222222
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              //@ts-ignore Todo somehow types do not match at all
                                              receiver,
                                              null,
                                              DEFAULT_HOP_COUNT22222222222,
                                              0,
                                              0
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              15,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            write_property_exports2222222222.encode(
                                              buffer,
                                              objectId.type,
                                              objectId.instance,
                                              propertyId,
                                              settings.arrayIndex,
                                              settings.priority,
                                              values
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              next(err);
                                            });
                                          }
                                          /**
                                           * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                                           * @function bacnet.readPropertyMultiple
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {object[]} propertiesArray - List of object and property specifications to be read.
                                           * @param {object} propertiesArray.objectId - Specifies which object to read.
                                           * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                                           * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                                           * @param {object[]} propertiesArray.properties - List of properties to be read.
                                           * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                                           * @param {object=} options
                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * const requestArray = [
                                           *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                                           * ];
                                           * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                                           *   console.log('value: ', value);
                                           * });
                                           */
                                          readPropertyMultiple(receiver, propertiesArray, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                                            const buffer = this._getBuffer(!!isForwarded);
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              //@ts-ignore Todo somehow types do not match at all
                                              receiver,
                                              null,
                                              DEFAULT_HOP_COUNT22222222222,
                                              0,
                                              0
                                            );
                                            const type = 0 | //@ts-ignore
                                            (settings.maxSegments !== 0 ? 2 : 0);
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              type,
                                              14,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            read_property_multiple_exports2222222222.encode(buffer, propertiesArray);
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return next(err);
                                              }
                                              const result = read_property_multiple_exports2222222222.decodeAcknowledge(
                                                data.buffer,
                                                data.offset,
                                                data.length
                                              );
                                              if (!result) {
                                                return next(new Error("INVALID_DECODING"));
                                              }
                                              next(null, result);
                                            });
                                          }
                                          /**
                                           * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                                           * @function bacnet.writePropertyMultiple
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {object[]} values - List of object and property specifications to be written.
                                           * @param {object} values.objectId - Specifies which object to read.
                                           * @param {number} values.objectId.type - The BACNET object type to read.
                                           * @param {number} values.objectId.instance - The BACNET object instance to read.
                                           * @param {object[]} values.values - List of properties to be written.
                                           * @param {object} values.values.property - Property specifications to be written.
                                           * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                                           * @param {number} values.values.property.index - The array index of the property to be written.
                                           * @param {object[]} values.values.value - A list of values to be written to the specified property.
                                           * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                                           * @param {object} values.values.value.value - The actual value to be written.
                                           * @param {number} values.values.priority - The priority to be used for writing to the property.
                                           * @param {object=} options
                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * const values = [
                                           *   {objectId: {type: 8, instance: 44301}, values: [
                                           *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                                           *   ]}
                                           * ];
                                           * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                                           *   console.log('value: ', value);
                                           * });
                                           */
                                          writePropertyMultiple(receiver, values, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              //@ts-ignore
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              16,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId
                                            );
                                            write_property_multiple_exports2222222222.encodeObject(buffer, values);
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              next(err);
                                            });
                                          }
                                          /**
                                           * The confirmedCOVNotification command is used to push notifications to other
                                           * systems that have registered with us via a subscribeCOV message.
                                           * @function bacnet.confirmedCOVNotification
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                                           * @param {number} monitoredObject.type - Object type.
                                           * @param {number} monitoredObject.instance - Object instance.
                                           * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                                           * @param {number} initiatingDeviceId - Our BACnet device ID.
                                           * @param {number} lifetime - Number of seconds left until the subscription expires.
                                           * @param {array} values - values for the monitored object.  See example.
                                           * @param {object=} options
                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * const settings = {deviceId: 123}; // our BACnet device
                                           *
                                           * // Items saved from subscribeCOV message
                                           * const monitoredObject = {type: 1, instance: 1};
                                           * const subscriberProcessId = 123;
                                           *
                                           * client.confirmedCOVNotification(
                                           *   '192.168.1.43',
                                           *   monitoredObject,
                                           *   subscriberProcessId,
                                           *   settings.deviceId,
                                           *   30, // should be lifetime of subscription really
                                           *   [
                                           *     {
                                           *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                                           *       value: [
                                           *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                                           *       ],
                                           *     },
                                           *   ],
                                           *   (err) => {
                                           *     console.log('error: ', err);
                                           *   }
                                           * );
                                           */
                                          confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer();
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              1,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            cov_notify_exports2222222222.encode(
                                              buffer,
                                              subscribeId,
                                              initiatingDeviceId,
                                              monitoredObject,
                                              lifetime,
                                              values
                                            );
                                            encode322222222222(
                                              buffer.buffer,
                                              10,
                                              buffer.offset
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              next();
                                            });
                                          }
                                          /**
                                           * The deviceCommunicationControl command enables or disables network communication of the target device.
                                           * @function bacnet.deviceCommunicationControl
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                                           * @param {EnableDisable} enableDisable - The network communication state to set.
                                           * @param {object=} options
                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                           * @param {string=} options.password - The optional password used to set the network communication state.
                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                                           *   console.log('error: ', err);
                                           * });
                                           */
                                          deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId(),
                                              password: options.password
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              17,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            device_communication_control_exports2222222222.encode(
                                              buffer,
                                              timeDuration,
                                              enableDisable,
                                              settings.password
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              next(err);
                                            });
                                          }
                                          /**
                                           * The reinitializeDevice command initiates a restart of the target device.
                                           * @function bacnet.reinitializeDevice
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {ReinitializedState} state - The type of restart to be initiated.
                                           * @param {object=} options
                                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                           * @param {string=} options.password - The optional password used to restart the device.
                                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                                           *   console.log('value: ', value);
                                           * });
                                           */
                                          reinitializeDevice(receiver, state, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId(),
                                              password: options.password
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              20,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            reinitialize_device_exports2222222222.encode(buffer, state, settings.password);
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              next(err);
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param objectId
                                           * @param position
                                           * @param fileBuffer
                                           * @param options
                                           * @param next
                                           */
                                          writeFile(receiver, objectId, position, fileBuffer, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              7,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            atomic_write_file_exports2222222222.encode(
                                              buffer,
                                              false,
                                              objectId,
                                              position,
                                              fileBuffer
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              const result = atomic_write_file_exports2222222222.decodeAcknowledge(
                                                data.buffer,
                                                data.offset,
                                                data.length
                                              );
                                              if (!result) {
                                                return void next(new Error("INVALID_DECODING"));
                                              }
                                              next(null, result);
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param objectId
                                           * @param position
                                           * @param count
                                           * @param options
                                           * @param next
                                           */
                                          readFile(receiver, objectId, position, count, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              6,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            atomic_read_file_exports2222222222.encode(buffer, true, objectId, position, count);
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              const result = atomic_read_file_exports2222222222.decodeAcknowledge(
                                                data.buffer,
                                                data.offset,
                                                data.length
                                              );
                                              if (!result) {
                                                return void next(new Error("INVALID_DECODING"));
                                              }
                                              next(null, result);
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param objectId
                                           * @param idxBegin
                                           * @param quantity
                                           * @param options
                                           * @param next
                                           */
                                          readRange(receiver, objectId, idxBegin, quantity, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              26,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            read_range_exports2222222222.encode(
                                              buffer,
                                              objectId,
                                              131,
                                              ASN1_ARRAY_ALL2222222222,
                                              0,
                                              idxBegin,
                                              /* @__PURE__ */ new Date(),
                                              quantity
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              const result = read_range_exports2222222222.decodeAcknowledge(
                                                data.buffer,
                                                data.offset,
                                                data.length
                                              );
                                              if (!result) {
                                                return void next(new Error("INVALID_DECODING"));
                                              }
                                              next(null, result);
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param objectId
                                           * @param subscribeId
                                           * @param cancel
                                           * @param issueConfirmedNotifications
                                           * @param lifetime
                                           * @param options
                                           * @param next
                                           */
                                          subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                                            const next = nextFunc || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              // @ts-ignore TODO types not matching with documentation and code
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              5,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            subscribe_cov_exports2222222222.encode(
                                              buffer,
                                              subscribeId,
                                              objectId,
                                              cancel,
                                              issueConfirmedNotifications,
                                              lifetime
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              next();
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param objectId
                                           * @param monitoredProperty
                                           * @param subscribeId
                                           * @param cancel
                                           * @param issueConfirmedNotifications
                                           * @param options
                                           * @param next
                                           */
                                          subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              28,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            subscribe_property_exports2222222222.encode(
                                              buffer,
                                              subscribeId,
                                              objectId,
                                              cancel,
                                              issueConfirmedNotifications,
                                              0,
                                              monitoredProperty,
                                              false,
                                              15
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              next();
                                            });
                                          }
                                          /**
                                           * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                                           * @function bacnet.unconfirmedCOVNotification
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                                           * @param {number} initiatingDeviceId - The id of this device.
                                           * @param {object} monitoredObjectId - Specifies about which object the notification is.
                                           * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                                           * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                                           * @param {number} timeRemaining - How long the subscription is still active in seconds.
                                           * @param {object[]} values - List of properties with updated values.
                                           * @param {object} values.property - Property specifications.
                                           * @param {number} values.property.id - The updated BACNET property id.
                                           * @param {number} values.property.index - The array index of the updated property.
                                           * @param {object[]} values.value - A list of updated values.
                                           * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                                           * @param {object} values.value.value - The actual updated value.
                                           * @param {number} values.priority - The priority of the updated property.
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * client.unconfirmedCOVNotification(
                                           *            '127.0.0.1',
                                           *            3,
                                           *            433,
                                           *            {type: 2, instance: 122},
                                           *            120,
                                           *            [
                                           *              {
                                           *                property: {id: 85},
                                           *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                                           *              },
                                           *              {
                                           *                property: {id: 111},
                                           *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                                           *              }
                                           *            ]);
                                           */
                                          unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                                            const buffer = this._getBuffer();
                                            encode312222222222(buffer, 0, receiver);
                                            encodeUnconfirmedServiceRequest2222222222(
                                              buffer,
                                              16,
                                              2
                                              /* UNCONFIRMED_COV_NOTIFICATION */
                                            );
                                            cov_notify_exports2222222222.encode(
                                              buffer,
                                              subscriberProcessId,
                                              initiatingDeviceId,
                                              monitoredObjectId,
                                              timeRemaining,
                                              values
                                            );
                                            encode322222222222(
                                              buffer.buffer,
                                              10,
                                              buffer.offset
                                            );
                                            this._transport.send(buffer.buffer, buffer.offset, receiver);
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param objectId
                                           * @param values
                                           * @param options
                                           * @param next
                                           */
                                          createObject(receiver, objectId, values, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              10,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            create_object_exports2222222222.encode(buffer, objectId, values);
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              next();
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param objectId
                                           * @param options
                                           * @param next
                                           */
                                          deleteObject(receiver, objectId, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              11,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            delete_object_exports2222222222.encode(buffer, objectId);
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              next();
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param objectId
                                           * @param reference
                                           * @param values
                                           * @param options
                                           * @param next
                                           */
                                          removeListElement(receiver, objectId, reference, values, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              9,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            add_list_element_exports2222222222.encode(
                                              buffer,
                                              objectId,
                                              reference.id,
                                              reference.index,
                                              values
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              next();
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param objectId
                                           * @param reference
                                           * @param values
                                           * @param options
                                           * @param next
                                           */
                                          addListElement(receiver, objectId, reference, values, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              8,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            add_list_element_exports2222222222.encode(
                                              buffer,
                                              objectId,
                                              reference.id,
                                              reference.index,
                                              values
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              next();
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param options
                                           * @param next
                                           */
                                          getAlarmSummary(receiver, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              3,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              const result = alarm_summary_exports2222222222.decode(
                                                data.buffer,
                                                data.offset,
                                                data.length
                                              );
                                              if (!result) {
                                                return void next(new Error("INVALID_DECODING"));
                                              }
                                              next(null, result);
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param objectId
                                           * @param options
                                           * @param next
                                           */
                                          getEventInformation(receiver, objectId, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              29,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            encodeContextObjectId2222222222(buffer, 0, objectId.type, objectId.instance);
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              const result = event_information_exports2222222222.decode(
                                                data.buffer,
                                                data.offset,
                                                data.length
                                              );
                                              if (!result) {
                                                return void next(new Error("INVALID_DECODING"));
                                              }
                                              next(null, result);
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param objectId
                                           * @param eventState
                                           * @param ackText
                                           * @param evTimeStamp
                                           * @param ackTimeStamp
                                           * @param options
                                           * @param next
                                           */
                                          acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              0,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            alarm_acknowledge_exports2222222222.encode(
                                              buffer,
                                              57,
                                              objectId,
                                              eventState,
                                              ackText,
                                              evTimeStamp,
                                              ackTimeStamp
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              next();
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param vendorId
                                           * @param serviceNumber
                                           * @param data
                                           * @param options
                                           * @param next
                                           */
                                          confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              18,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            private_transfer_exports2222222222.encode(buffer, vendorId, serviceNumber, data);
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data2) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              next();
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param vendorId
                                           * @param serviceNumber
                                           * @param data
                                           */
                                          unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(buffer, 0, receiver);
                                            encodeUnconfirmedServiceRequest2222222222(
                                              buffer,
                                              16,
                                              4
                                              /* UNCONFIRMED_PRIVATE_TRANSFER */
                                            );
                                            private_transfer_exports2222222222.encode(buffer, vendorId, serviceNumber, data);
                                            this.sendBvlc(receiver, buffer);
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param acknowledgmentFilter
                                           * @param options
                                           * @param next
                                           */
                                          getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              4,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            get_enrollment_summary_exports2222222222.encode(
                                              buffer,
                                              acknowledgmentFilter,
                                              options.enrollmentFilter,
                                              options.eventStateFilter,
                                              options.eventTypeFilter,
                                              options.priorityFilter,
                                              options.notificationClassFilter
                                            );
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              const result = get_enrollment_summary_exports2222222222.decodeAcknowledge(
                                                data.buffer,
                                                data.offset,
                                                data.length
                                              );
                                              if (!result) {
                                                return void next(new Error("INVALID_DECODING"));
                                              }
                                              next(null, result);
                                            });
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param eventNotification
                                           */
                                          unconfirmedEventNotification(receiver, eventNotification) {
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(buffer, 0, receiver);
                                            encodeUnconfirmedServiceRequest2222222222(
                                              buffer,
                                              16,
                                              3
                                              /* UNCONFIRMED_EVENT_NOTIFICATION */
                                            );
                                            event_notify_data_exports2222222222.encode(buffer, eventNotification);
                                            this.sendBvlc(receiver, buffer);
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param eventNotification
                                           * @param options
                                           * @param next
                                           */
                                          confirmedEventNotification(receiver, eventNotification, options, next) {
                                            next = next || options;
                                            const settings = {
                                              maxSegments: options.maxSegments || 112,
                                              maxApdu: options.maxApdu || 5,
                                              invokeId: options.invokeId || this._getInvokeId()
                                            };
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(
                                              buffer,
                                              0 | 4,
                                              receiver
                                            );
                                            encodeConfirmedServiceRequest2222222222(
                                              buffer,
                                              0,
                                              2,
                                              settings.maxSegments,
                                              settings.maxApdu,
                                              settings.invokeId,
                                              0,
                                              0
                                            );
                                            event_notify_data_exports2222222222.encode(buffer, eventNotification);
                                            this.sendBvlc(receiver, buffer);
                                            this._addCallback(settings.invokeId, (err, data) => {
                                              if (err) {
                                                return void next(err);
                                              }
                                              next();
                                            });
                                          }
                                          /**
                                           * The readPropertyResponse call sends a response with information about one of our properties.
                                           * @function bacnet.readPropertyResponse
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {number} invokeId - ID of the original readProperty request.
                                           * @param {object} objectId - objectId from the original request,
                                           * @param {object} property - property being read, taken from the original request.
                                           * @param {object=} options varying behaviour for special circumstances
                                           * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                                           */
                                          readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(buffer, 0, receiver);
                                            encodeComplexAck2222222222(
                                              buffer,
                                              48,
                                              12,
                                              invokeId
                                            );
                                            read_property_exports2222222222.encodeAcknowledge(
                                              buffer,
                                              objectId,
                                              property.id,
                                              property.index,
                                              value
                                            );
                                            this.sendBvlc(receiver, buffer);
                                          }
                                          readPropertyMultipleResponse(receiver, invokeId, values) {
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(buffer, 0, receiver);
                                            encodeComplexAck2222222222(
                                              buffer,
                                              48,
                                              14,
                                              invokeId
                                            );
                                            read_property_multiple_exports2222222222.encodeAcknowledge(buffer, values);
                                            this.sendBvlc(receiver, buffer);
                                          }
                                          /**
                                           * The iAmResponse command is sent as a reply to a whoIs request.
                                           * @function bacnet.iAmResponse
                                           * @param {object} receiver - address to send packet to, null for local broadcast.
                                           * @param {number} deviceId - Our device ID.
                                           * @param {number} segmentation - an enum.Segmentation value.
                                           * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                                           */
                                          iAmResponse(receiver, deviceId, segmentation, vendorId) {
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(buffer, 0, receiver);
                                            encodeUnconfirmedServiceRequest2222222222(
                                              buffer,
                                              16,
                                              0
                                              /* I_AM */
                                            );
                                            i_am_exports2222222222.encode(
                                              buffer,
                                              deviceId,
                                              this._transport.getMaxPayload(),
                                              segmentation,
                                              vendorId
                                            );
                                            this.sendBvlc(receiver, buffer);
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param deviceId
                                           * @param objectId
                                           * @param objectName
                                           */
                                          iHaveResponse(receiver, deviceId, objectId, objectName) {
                                            const buffer = this._getBuffer(
                                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                            );
                                            encode312222222222(buffer, 0, receiver);
                                            encodeUnconfirmedServiceRequest2222222222(
                                              buffer,
                                              16,
                                              1
                                              /* I_HAVE */
                                            );
                                            i_have_exports2222222222.encode(buffer, deviceId, objectId, objectName);
                                            this.sendBvlc(receiver, buffer);
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param service
                                           * @param invokeId
                                           */
                                          simpleAckResponse(receiver, service, invokeId) {
                                            if (typeof receiver === "string")
                                              return;
                                            const buffer = this._getBuffer(!!receiver.forwardedFrom);
                                            encode312222222222(buffer, 0, receiver);
                                            encodeSimpleAck2222222222(
                                              buffer,
                                              32,
                                              service,
                                              invokeId
                                            );
                                            this.sendBvlc(receiver, buffer);
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param service
                                           * @param invokeId
                                           * @param errorClass
                                           * @param errorCode
                                           */
                                          errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                                            trace22222222222(
                                              `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                                service
                                              )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                                            );
                                            trace22222222222(
                                              `error message ${error_exports2222222222.buildMessage({
                                                class: errorClass,
                                                code: errorCode
                                              })}`
                                            );
                                            const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                                            if (typeof receiver === "string")
                                              throw new Error("receiver must be object");
                                            const buffer = this._getBuffer(hasSource);
                                            encode312222222222(buffer, 0, receiver);
                                            encodeError2222222222(buffer, 80, service, invokeId);
                                            error_exports2222222222.encode(buffer, errorClass, errorCode);
                                            this.sendBvlc(receiver, buffer);
                                          }
                                          /**
                                           *
                                           * @param receiver
                                           * @param buffer
                                           */
                                          sendBvlc(receiver, buffer) {
                                            if (typeof receiver === "string") {
                                              receiver = {
                                                address: receiver
                                              };
                                            }
                                            if (receiver && receiver.forwardedFrom) {
                                              encode322222222222(
                                                buffer.buffer,
                                                4,
                                                buffer.offset,
                                                receiver.forwardedFrom
                                              );
                                            } else if (receiver && receiver.address) {
                                              encode322222222222(
                                                buffer.buffer,
                                                10,
                                                buffer.offset
                                              );
                                            } else {
                                              encode322222222222(
                                                buffer.buffer,
                                                11,
                                                buffer.offset
                                              );
                                            }
                                            this._transport.send(
                                              buffer.buffer,
                                              buffer.offset,
                                              receiver && receiver.address || null
                                            );
                                          }
                                          /**
                                           * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                                           * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                                           * @function bacnet.resultResponse
                                           * @param {string} receiver - IP address of the target device.
                                           * @param {number} resultCode - Single value from BvlcResultFormat enum.
                                           */
                                          resultResponse(receiver, resultCode) {
                                            const buffer = this._getBuffer();
                                            encodeResult2222222222(buffer, resultCode);
                                            encode322222222222(
                                              buffer.buffer,
                                              0,
                                              buffer.offset
                                            );
                                            this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                                          }
                                          /**
                                           * Unloads the current bacnet instance and closes the underlying UDP socket.
                                           * @function bacnet.close
                                           * @example
                                           * const bacnet = require('node-bacnet');
                                           * const client = new bacnet();
                                           *
                                           * client.close();
                                           */
                                          close() {
                                            this._transport.close();
                                          }
                                          /**
                                           * Helper function to take an array of enums and produce a bitstring suitable
                                           * for inclusion as a property.
                                           *
                                           * @example
                                           * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                                           *   {value: bacnet.createBitstring([
                                           *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                                           *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                                           *   ]),
                                           *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                                           * ],
                                           */
                                          static createBitstring(items) {
                                            let offset = 0;
                                            let bytes = [];
                                            let bitsUsed = 0;
                                            while (items.length) {
                                              let value = 0;
                                              items = items.filter((i) => {
                                                if (i >= offset + 8) {
                                                  return true;
                                                }
                                                value |= 1 << i - offset;
                                                bitsUsed = Math.max(bitsUsed, i);
                                                return false;
                                              });
                                              bytes.push(value);
                                              offset += 8;
                                            }
                                            bitsUsed++;
                                            return {
                                              value: bytes,
                                              bitsUsed
                                            };
                                          }
                                        };
                                        var import_underscore2222222222 = __toESM2222222222(require("underscore"));
                                        var import_process2222222222 = __toESM2222222222(require("process"));
                                        var import__2222222222 = __toESM2222222222(require_dist2222222222());
                                        var PropertyIdentifierToEnumMap2222222222 = {};
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.OBJECT_TYPE] = import__2222222222.enums.ObjectType;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__2222222222.enums.Segmentation;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.EVENT_STATE] = import__2222222222.enums.EventState;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.UNITS] = import__2222222222.enums.EngineeringUnits;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.RELIABILITY] = import__2222222222.enums.Reliability;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__2222222222.enums.NotifyType;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.POLARITY] = import__2222222222.enums.Polarity;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__2222222222.enums.ServicesSupported;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__2222222222.enums.ObjectTypesSupported;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.STATUS_FLAGS] = import__2222222222.enums.StatusFlags;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__2222222222.enums.LimitEnable;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.EVENT_ENABLE] = import__2222222222.enums.EventTransitionBits;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__2222222222.enums.EventTransitionBits;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__2222222222.enums.DeviceStatus;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__2222222222.enums.DeviceStatus;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.ACK_REQUIRED] = import__2222222222.enums.EventTransitionBits;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.LOGGING_TYPE] = import__2222222222.enums.LoggingType;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__2222222222.enums.FileAccessMethod;
                                        PropertyIdentifierToEnumMap2222222222[import__2222222222.enums.PropertyIdentifier.NODE_TYPE] = import__2222222222.enums.NodeType;
                                        var ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222 = {};
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BINARY_INPUT] = {};
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BINARY_INPUT][import__2222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222.enums.BinaryPV;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BINARY_INPUT][import__2222222222.enums.PropertyIdentifier.MODE] = import__2222222222.enums.BinaryPV;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.ANALOG_INPUT] = {};
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.ANALOG_INPUT][import__2222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222.enums.BinaryPV;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.ANALOG_OUTPUT] = {};
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.ANALOG_OUTPUT][import__2222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222.enums.BinaryPV;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BINARY_OUTPUT] = {};
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BINARY_OUTPUT][import__2222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222.enums.BinaryPV;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BINARY_OUTPUT][import__2222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__2222222222.enums.BinaryPV;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BINARY_VALUE] = {};
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BINARY_VALUE][import__2222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222.enums.BinaryPV;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BINARY_VALUE][import__2222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__2222222222.enums.BinaryPV;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__2222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222.enums.BinaryLightingPV;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BITSTRING_VALUE] = {};
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.BINARY_VALUE][import__2222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222.enums.BinaryPV;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222.enums.LifeSafetyState;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222.enums.PropertyIdentifier.TRACKING_VALUE] = import__2222222222.enums.LifeSafetyState;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222.enums.PropertyIdentifier.MODE] = import__2222222222.enums.LifeSafetyMode;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__2222222222.enums.LifeSafetyMode;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222.enums.PropertyIdentifier.SILENCED] = import__2222222222.enums.LifeSafetyState;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__2222222222.enums.LifeSafetyOperation;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__2222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222.enums.LifeSafetyState;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__2222222222.enums.PropertyIdentifier.MODE] = import__2222222222.enums.LifeSafetyMode;
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.LOAD_CONTROL] = {};
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[import__2222222222.enums.ObjectType.LOAD_CONTROL][import__2222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222222.enums.ShedState;
                                        var propSubSet2222222222 = import_process2222222222.default.argv.includes("--all") ? Object.values(import__2222222222.enums.PropertyIdentifier) : [
                                          /* normally supported from all devices */
                                          import__2222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                                          import__2222222222.enums.PropertyIdentifier.OBJECT_NAME,
                                          import__2222222222.enums.PropertyIdentifier.OBJECT_TYPE,
                                          import__2222222222.enums.PropertyIdentifier.PRESENT_VALUE,
                                          import__2222222222.enums.PropertyIdentifier.STATUS_FLAGS,
                                          import__2222222222.enums.PropertyIdentifier.EVENT_STATE,
                                          import__2222222222.enums.PropertyIdentifier.RELIABILITY,
                                          import__2222222222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                                          import__2222222222.enums.PropertyIdentifier.UNITS,
                                          /* other properties */
                                          import__2222222222.enums.PropertyIdentifier.DESCRIPTION,
                                          import__2222222222.enums.PropertyIdentifier.SYSTEM_STATUS,
                                          import__2222222222.enums.PropertyIdentifier.VENDOR_NAME,
                                          import__2222222222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                                          import__2222222222.enums.PropertyIdentifier.MODEL_NAME,
                                          import__2222222222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                                          import__2222222222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                                          import__2222222222.enums.PropertyIdentifier.LOCATION,
                                          import__2222222222.enums.PropertyIdentifier.LOCAL_DATE,
                                          import__2222222222.enums.PropertyIdentifier.LOCAL_TIME,
                                          import__2222222222.enums.PropertyIdentifier.UTC_OFFSET,
                                          import__2222222222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                                          import__2222222222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                                          import__2222222222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                                          import__2222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                                          import__2222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                                          import__2222222222.enums.PropertyIdentifier.OBJECT_LIST,
                                          import__2222222222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                                          import__2222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                                          import__2222222222.enums.PropertyIdentifier.APDU_TIMEOUT,
                                          import__2222222222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                                          import__2222222222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                                          import__2222222222.enums.PropertyIdentifier.DATABASE_REVISION,
                                          import__2222222222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                                          import__2222222222.enums.PropertyIdentifier.MAX_MASTER,
                                          import__2222222222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                                          import__2222222222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                                        ];
                                        var debug42222222222 = import_process2222222222.default.argv.includes("--debug");
                                        function getAllPropertiesManually2222222222(address, objectId, callback, propList, result) {
                                          if (!propList) {
                                            propList = propSubSet2222222222.map((x) => x);
                                          }
                                          if (!result) {
                                            result = [];
                                          }
                                          if (!propList.length) {
                                            return callback({
                                              values: [
                                                {
                                                  objectId,
                                                  values: result
                                                }
                                              ]
                                            });
                                          }
                                          const prop = propList.shift();
                                          bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                                            if (!err) {
                                              if (debug42222222222) {
                                                console.log("Handle value " + prop + ": ", JSON.stringify(value));
                                              }
                                              const objRes = value.property;
                                              objRes.value = value.values;
                                              result.push(objRes);
                                            } else {
                                            }
                                            getAllPropertiesManually2222222222(address, objectId, callback, propList, result);
                                          });
                                        }
                                        function readBit2222222222(buffer, i, bit) {
                                          return (buffer[i] >> bit) % 2;
                                        }
                                        function handleBitString2222222222(buffer, bitsUsed, usedEnum) {
                                          const res = [];
                                          for (let i = 0; i < bitsUsed; i++) {
                                            const bufferIndex = Math.floor(i / 8);
                                            if (readBit2222222222(buffer, bufferIndex, i % 8)) {
                                              res.push(import__2222222222.enums.getEnumName(usedEnum, i));
                                            }
                                          }
                                          return res;
                                        }
                                        function parseValue2222222222(address, objId2, parentType, value, supportsMultiple, callback) {
                                          let resValue = null;
                                          if (value && value.type && value.value !== null && value.value !== void 0) {
                                            switch (value.type) {
                                              case import__2222222222.enums.ApplicationTag.NULL:
                                                resValue = null;
                                                break;
                                              case import__2222222222.enums.ApplicationTag.BOOLEAN:
                                                resValue = !!value.value;
                                                break;
                                              case import__2222222222.enums.ApplicationTag.UNSIGNED_INTEGER:
                                              case import__2222222222.enums.ApplicationTag.SIGNED_INTEGER:
                                              case import__2222222222.enums.ApplicationTag.REAL:
                                              case import__2222222222.enums.ApplicationTag.DOUBLE:
                                              case import__2222222222.enums.ApplicationTag.CHARACTER_STRING:
                                                resValue = value.value;
                                                break;
                                              case import__2222222222.enums.ApplicationTag.DATE:
                                              case import__2222222222.enums.ApplicationTag.TIME:
                                              case import__2222222222.enums.ApplicationTag.TIMESTAMP:
                                                resValue = value.value;
                                                break;
                                              case import__2222222222.enums.ApplicationTag.BIT_STRING:
                                                if (ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[parentType][objId2]) {
                                                  resValue = handleBitString2222222222(
                                                    value.value.value,
                                                    value.value.bitsUsed,
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[parentType][objId2]
                                                  );
                                                } else if (PropertyIdentifierToEnumMap2222222222[objId2]) {
                                                  resValue = handleBitString2222222222(
                                                    value.value.value,
                                                    value.value.bitsUsed,
                                                    PropertyIdentifierToEnumMap2222222222[objId2]
                                                  );
                                                } else {
                                                  if (parentType !== import__2222222222.enums.ObjectType.BITSTRING_VALUE) {
                                                    console.log(
                                                      "Unknown value for BIT_STRING type for objId " + import__2222222222.enums.getEnumName(import__2222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__2222222222.enums.getEnumName(import__2222222222.enums.ObjectType, parentType)
                                                    );
                                                  }
                                                  resValue = value.value;
                                                }
                                                break;
                                              case import__2222222222.enums.ApplicationTag.ENUMERATED:
                                                if (ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[parentType][objId2]) {
                                                  resValue = import__2222222222.enums.getEnumName(
                                                    ObjectTypeSpecificPropertyIdentifierToEnumMap2222222222[parentType][objId2],
                                                    value.value
                                                  );
                                                } else if (PropertyIdentifierToEnumMap2222222222[objId2]) {
                                                  resValue = import__2222222222.enums.getEnumName(
                                                    PropertyIdentifierToEnumMap2222222222[objId2],
                                                    value.value
                                                  );
                                                } else {
                                                  console.log(
                                                    "Unknown value for ENUMERATED type for objId " + import__2222222222.enums.getEnumName(import__2222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__2222222222.enums.getEnumName(import__2222222222.enums.ObjectType, parentType)
                                                  );
                                                  resValue = value.value;
                                                }
                                                break;
                                              case import__2222222222.enums.ApplicationTag.OBJECTIDENTIFIER:
                                                if (objId2 === import__2222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__2222222222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__2222222222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                                                  resValue = value.value;
                                                } else if (supportsMultiple) {
                                                  const requestArray = [
                                                    {
                                                      objectId: value.value,
                                                      properties: [{ id: 8 }]
                                                    }
                                                  ];
                                                  bacnetClient.readPropertyMultiple(
                                                    address,
                                                    requestArray,
                                                    (err, resValue2) => {
                                                      parseDeviceObject2222222222(address, resValue2, value.value, true, callback);
                                                    }
                                                  );
                                                  return;
                                                } else {
                                                  getAllPropertiesManually2222222222(address, value.value, (result) => {
                                                    parseDeviceObject2222222222(address, result, value.value, false, callback);
                                                  });
                                                  return;
                                                }
                                                break;
                                              case import__2222222222.enums.ApplicationTag.OCTET_STRING:
                                                resValue = value.value;
                                                break;
                                              case import__2222222222.enums.ApplicationTag.ERROR:
                                                resValue = {
                                                  errorClass: import__2222222222.enums.getEnumName(
                                                    import__2222222222.enums.ErrorClass,
                                                    value.value.errorClass
                                                  ),
                                                  errorCode: import__2222222222.enums.getEnumName(import__2222222222.enums.ErrorCode, value.value.errorCode)
                                                };
                                                break;
                                              case import__2222222222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                                              case import__2222222222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                                              case import__2222222222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                                              case import__2222222222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                                resValue = value.value;
                                                break;
                                              case import__2222222222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                                parseValue2222222222(
                                                  address,
                                                  objId2,
                                                  parentType,
                                                  value.value,
                                                  supportsMultiple,
                                                  callback
                                                );
                                                return;
                                              case import__2222222222.enums.ApplicationTag.READ_ACCESS_RESULT:
                                                resValue = value.value;
                                                break;
                                              default:
                                                console.log(
                                                  "unknown type " + value.type + ": " + JSON.stringify(value)
                                                );
                                                resValue = value;
                                            }
                                          }
                                          setImmediate(() => callback(resValue));
                                        }
                                        function parseDeviceObject2222222222(address, obj, parent, supportsMultiple, callback) {
                                          if (debug42222222222) {
                                            console.log(
                                              "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                                            );
                                          }
                                          if (!obj) {
                                            console.log("object not valid on parse device object");
                                            return;
                                          }
                                          if (!obj.values || !Array.isArray(obj.values)) {
                                            console.log("No device or invalid response");
                                            callback({ ERROR: "No device or invalid response" });
                                            return;
                                          }
                                          let cbCount = 0;
                                          let objDef = {};
                                          const finalize = () => {
                                            Object.keys(objDef).forEach((devId) => {
                                              Object.keys(objDef[devId]).forEach((objId2) => {
                                                if (objDef[devId][objId2].length === 1) {
                                                  objDef[devId][objId2] = objDef[devId][objId2][0];
                                                }
                                              });
                                            });
                                            if (obj.values.length === 1) {
                                              objDef = objDef[obj.values[0].objectId.instance];
                                            }
                                            if (debug42222222222) {
                                              console.log(
                                                "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                                              );
                                            }
                                            callback(objDef);
                                          };
                                          obj.values.forEach((devBaseObj) => {
                                            if (!devBaseObj.objectId) {
                                              console.log("No device Id found in object data");
                                              return;
                                            }
                                            if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                                              console.log("No device type or instance found in object data");
                                              return;
                                            }
                                            if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                                              console.log("No device values response");
                                              return;
                                            }
                                            const deviceId = devBaseObj.objectId.instance;
                                            objDef[deviceId] = {};
                                            devBaseObj.values.forEach((devObj) => {
                                              let objId2 = import__2222222222.enums.getEnumName(import__2222222222.enums.PropertyIdentifier, devObj.id);
                                              if (devObj.index !== 4294967295) {
                                                objId2 += "-" + devObj.index;
                                              }
                                              if (debug42222222222) {
                                                console.log("Handle Object property:", deviceId, objId2, devObj.value);
                                              }
                                              devObj.value.forEach((val) => {
                                                if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                                  objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                  objDef[deviceId][objId2].push(val.value);
                                                  return;
                                                }
                                                cbCount++;
                                                parseValue2222222222(
                                                  address,
                                                  devObj.id,
                                                  parent.type,
                                                  val,
                                                  supportsMultiple,
                                                  (parsedValue) => {
                                                    if (debug42222222222) {
                                                      console.log(
                                                        "RETURN parsedValue",
                                                        deviceId,
                                                        objId2,
                                                        devObj.value,
                                                        parsedValue
                                                      );
                                                    }
                                                    objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                    objDef[deviceId][objId2].push(parsedValue);
                                                    if (!--cbCount) {
                                                      finalize();
                                                    }
                                                  }
                                                );
                                              });
                                            });
                                          });
                                          if (cbCount === 0) {
                                            finalize();
                                          }
                                        }
                                        var limitToDevice2222222222 = null;
                                        if (import_process2222222222.default.argv.length === 3) {
                                          limitToDevice2222222222 = parseInt(import_process2222222222.default.argv[2]);
                                          if (isNaN(limitToDevice2222222222)) {
                                            limitToDevice2222222222 = null;
                                          }
                                        }
                                        var node_bacnet_default2222222222 = Client2222222222;
                                      }
                                    });
                                    var node_bacnet_exports222222222 = {};
                                    __export222222222(node_bacnet_exports222222222, {
                                      _: () => import_underscore222222222.default,
                                      bacnetErrorToString: () => bacnetErrorToString222222222,
                                      default: () => node_bacnet_default222222222,
                                      enums: () => enum_exports222222222,
                                      parseValue: () => parseValue222222222
                                    });
                                    module222222222.exports = __toCommonJS222222222(node_bacnet_exports222222222);
                                    var enum_exports222222222 = {};
                                    __export222222222(enum_exports222222222, {
                                      ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL222222222,
                                      ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS222222222,
                                      ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG222222222,
                                      ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES222222222,
                                      ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE222222222,
                                      ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT222222222,
                                      ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE222222222,
                                      ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY222222222,
                                      ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID222222222,
                                      ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY222222222,
                                      ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY222222222,
                                      AbortReason: () => AbortReason222222222,
                                      AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable222222222,
                                      AccessCredentialDisable: () => AccessCredentialDisable222222222,
                                      AccessCredentialDisableReason: () => AccessCredentialDisableReason222222222,
                                      AccessEvent: () => AccessEvent222222222,
                                      AccessPassbackMode: () => AccessPassbackMode222222222,
                                      AccessUserType: () => AccessUserType222222222,
                                      AccessZoneOccupancyState: () => AccessZoneOccupancyState222222222,
                                      Action: () => Action222222222,
                                      ApplicationTag: () => ApplicationTag222222222,
                                      ApplicationTagName: () => ApplicationTagName222222222,
                                      AuthenticationFactorType: () => AuthenticationFactorType222222222,
                                      AuthenticationStatus: () => AuthenticationStatus222222222,
                                      AuthorizationExemption: () => AuthorizationExemption222222222,
                                      AuthorizationMode: () => AuthorizationMode222222222,
                                      BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH322222222,
                                      BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP222222222,
                                      BackupState: () => BackupState222222222,
                                      BinaryLightingPV: () => BinaryLightingPV222222222,
                                      BinaryPV: () => BinaryPV222222222,
                                      BvlcResultFormat: () => BvlcResultFormat222222222,
                                      BvlcResultPurpose: () => BvlcResultPurpose222222222,
                                      CharacterStringEncoding: () => CharacterStringEncoding222222222,
                                      ConfirmedServiceChoice: () => ConfirmedServiceChoice222222222,
                                      CovType: () => CovType222222222,
                                      DaysOfWeek: () => DaysOfWeek222222222,
                                      DeviceStatus: () => DeviceStatus222222222,
                                      DoorAlarmState: () => DoorAlarmState222222222,
                                      DoorSecuredStatus: () => DoorSecuredStatus222222222,
                                      DoorStatus: () => DoorStatus222222222,
                                      DoorValue: () => DoorValue222222222,
                                      EnableDisable: () => EnableDisable222222222,
                                      EngineeringUnits: () => EngineeringUnits222222222,
                                      ErrorClass: () => ErrorClass222222222,
                                      ErrorClassName: () => ErrorClassName222222222,
                                      ErrorCode: () => ErrorCode222222222,
                                      ErrorCodeName: () => ErrorCodeName222222222,
                                      EscalatorFault: () => EscalatorFault222222222,
                                      EscalatorMode: () => EscalatorMode222222222,
                                      EscalatorOperationDirection: () => EscalatorOperationDirection222222222,
                                      EventState: () => EventState222222222,
                                      EventTransitionBits: () => EventTransitionBits222222222,
                                      EventType: () => EventType222222222,
                                      FaultType: () => FaultType222222222,
                                      FileAccessMethod: () => FileAccessMethod222222222,
                                      IPMode: () => IPMode222222222,
                                      LifeSafetyMode: () => LifeSafetyMode222222222,
                                      LifeSafetyOperation: () => LifeSafetyOperation222222222,
                                      LifeSafetyState: () => LifeSafetyState222222222,
                                      LiftCarDirection: () => LiftCarDirection222222222,
                                      LiftCarDoorCommand: () => LiftCarDoorCommand222222222,
                                      LiftCarDriveStatus: () => LiftCarDriveStatus222222222,
                                      LiftCarMode: () => LiftCarMode222222222,
                                      LiftFault: () => LiftFault222222222,
                                      LiftGroupMode: () => LiftGroupMode222222222,
                                      LightingInProgress: () => LightingInProgress222222222,
                                      LightingOperation: () => LightingOperation222222222,
                                      LightingTransition: () => LightingTransition222222222,
                                      LimitEnable: () => LimitEnable222222222,
                                      LockStatus: () => LockStatus222222222,
                                      LogStatus: () => LogStatus222222222,
                                      LoggingType: () => LoggingType222222222,
                                      Maintenance: () => Maintenance222222222,
                                      MaxApduLengthAccepted: () => MaxApduLengthAccepted222222222,
                                      MaxSegmentsAccepted: () => MaxSegmentsAccepted222222222,
                                      NetworkLayerMessageType: () => NetworkLayerMessageType222222222,
                                      NetworkNumberQuality: () => NetworkNumberQuality222222222,
                                      NetworkPortCommand: () => NetworkPortCommand222222222,
                                      NetworkType: () => NetworkType222222222,
                                      NodeType: () => NodeType222222222,
                                      NotifyType: () => NotifyType222222222,
                                      NpduControlBit: () => NpduControlBit222222222,
                                      NpduControlPriority: () => NpduControlPriority222222222,
                                      ObjectType: () => ObjectType222222222,
                                      ObjectTypesSupported: () => ObjectTypesSupported222222222,
                                      PDU_TYPE_MASK: () => PDU_TYPE_MASK222222222,
                                      PduConReqBit: () => PduConReqBit222222222,
                                      PduSegAckBit: () => PduSegAckBit222222222,
                                      PduType: () => PduType222222222,
                                      Polarity: () => Polarity222222222,
                                      ProgramError: () => ProgramError222222222,
                                      ProgramRequest: () => ProgramRequest222222222,
                                      ProgramState: () => ProgramState222222222,
                                      PropertyIdentifier: () => PropertyIdentifier222222222,
                                      PropertyStates: () => PropertyStates222222222,
                                      ProtocolLevel: () => ProtocolLevel222222222,
                                      ReadRangeType: () => ReadRangeType222222222,
                                      ReinitializedState: () => ReinitializedState222222222,
                                      RejectReason: () => RejectReason222222222,
                                      Relationship: () => Relationship222222222,
                                      Reliability: () => Reliability222222222,
                                      RestartReason: () => RestartReason222222222,
                                      ResultFlags: () => ResultFlags222222222,
                                      SecurityLevel: () => SecurityLevel222222222,
                                      SecurityPolicy: () => SecurityPolicy222222222,
                                      Segmentation: () => Segmentation222222222,
                                      ServicesSupported: () => ServicesSupported222222222,
                                      ShedState: () => ShedState222222222,
                                      SilencedState: () => SilencedState222222222,
                                      StatusFlags: () => StatusFlags222222222,
                                      TimeStamp: () => TimeStamp222222222,
                                      TimerState: () => TimerState222222222,
                                      TimerTransition: () => TimerTransition222222222,
                                      UnconfirmedServiceChoice: () => UnconfirmedServiceChoice222222222,
                                      VTClass: () => VTClass222222222,
                                      WriteStatus: () => WriteStatus222222222,
                                      getEnumName: () => getEnumName222222222
                                    });
                                    var import_debug422222222 = __toESM222222222(require("debug"));
                                    var debug522222222 = (0, import_debug422222222.default)("bacnet=enum=debug");
                                    var trace322222222 = (0, import_debug422222222.default)("bacnet=enum=trace");
                                    function invertEnum222222222(enumToInvert) {
                                      const invertedEnum = {};
                                      Object.keys(enumToInvert).forEach((key) => {
                                        invertedEnum[enumToInvert[key]] = key;
                                      });
                                      return invertedEnum;
                                    }
                                    function getEnumName222222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                                      if (!Number.isInteger(value)) {
                                        throw new Error(
                                          'getEnumName() can only be passed an integer value, was given "' + value + '"'
                                        );
                                      }
                                      let foundEntry;
                                      try {
                                        const invertedGroup = invertEnum222222222(group);
                                        foundEntry = invertedGroup[value];
                                        if (foundEntry === void 0 && undefinedFallbackValue) {
                                          foundEntry = undefinedFallbackValue;
                                        }
                                        if (foundEntry === void 0) {
                                          foundEntry = value.toString();
                                        } else if (addNumberValue) {
                                          foundEntry += "(" + value + ")";
                                        }
                                      } catch (e) {
                                        trace322222222(e.message);
                                        foundEntry = null;
                                      }
                                      return foundEntry;
                                    }
                                    var PDU_TYPE_MASK222222222 = 240;
                                    var ASN1_MAX_OBJECT222222222 = 1023;
                                    var ASN1_INSTANCE_BITS222222222 = 22;
                                    var ASN1_MAX_INSTANCE222222222 = 4194303;
                                    var ASN1_MAX_BITSTRING_BYTES222222222 = 15;
                                    var ASN1_ARRAY_ALL222222222 = 4294967295;
                                    var ASN1_NO_PRIORITY222222222 = 0;
                                    var ASN1_MIN_PRIORITY222222222 = 1;
                                    var ASN1_MAX_PRIORITY222222222 = 16;
                                    var ASN1_MAX_APPLICATION_TAG222222222 = 16;
                                    var ASN1_MAX_OBJECT_TYPE222222222 = 1024;
                                    var ASN1_MAX_PROPERTY_ID222222222 = 4194303;
                                    var BVLL_TYPE_BACNET_IP222222222 = 129;
                                    var BVLC_HEADER_LENGTH322222222 = 4;
                                    var ConfirmedServiceChoice222222222 = /* @__PURE__ */ ((ConfirmedServiceChoice2222222222) => {
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["VT_DATA"] = 23] = "VT_DATA";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["READ_RANGE"] = 26] = "READ_RANGE";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                      ConfirmedServiceChoice2222222222[ConfirmedServiceChoice2222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                      return ConfirmedServiceChoice2222222222;
                                    })(ConfirmedServiceChoice222222222 || {});
                                    var UnconfirmedServiceChoice222222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice2222222222) => {
                                      UnconfirmedServiceChoice2222222222[UnconfirmedServiceChoice2222222222["I_AM"] = 0] = "I_AM";
                                      UnconfirmedServiceChoice2222222222[UnconfirmedServiceChoice2222222222["I_HAVE"] = 1] = "I_HAVE";
                                      UnconfirmedServiceChoice2222222222[UnconfirmedServiceChoice2222222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                                      UnconfirmedServiceChoice2222222222[UnconfirmedServiceChoice2222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                      UnconfirmedServiceChoice2222222222[UnconfirmedServiceChoice2222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                      UnconfirmedServiceChoice2222222222[UnconfirmedServiceChoice2222222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                                      UnconfirmedServiceChoice2222222222[UnconfirmedServiceChoice2222222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                                      UnconfirmedServiceChoice2222222222[UnconfirmedServiceChoice2222222222["WHO_HAS"] = 7] = "WHO_HAS";
                                      UnconfirmedServiceChoice2222222222[UnconfirmedServiceChoice2222222222["WHO_IS"] = 8] = "WHO_IS";
                                      UnconfirmedServiceChoice2222222222[UnconfirmedServiceChoice2222222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                                      UnconfirmedServiceChoice2222222222[UnconfirmedServiceChoice2222222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                                      UnconfirmedServiceChoice2222222222[UnconfirmedServiceChoice2222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                      return UnconfirmedServiceChoice2222222222;
                                    })(UnconfirmedServiceChoice222222222 || {});
                                    var AbortReason222222222 = /* @__PURE__ */ ((AbortReason2222222222) => {
                                      AbortReason2222222222[AbortReason2222222222["OTHER"] = 0] = "OTHER";
                                      AbortReason2222222222[AbortReason2222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                      AbortReason2222222222[AbortReason2222222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                                      AbortReason2222222222[AbortReason2222222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                      AbortReason2222222222[AbortReason2222222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                                      AbortReason2222222222[AbortReason2222222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                                      AbortReason2222222222[AbortReason2222222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                                      AbortReason2222222222[AbortReason2222222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                                      AbortReason2222222222[AbortReason2222222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                                      AbortReason2222222222[AbortReason2222222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                                      AbortReason2222222222[AbortReason2222222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                                      AbortReason2222222222[AbortReason2222222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                                      return AbortReason2222222222;
                                    })(AbortReason222222222 || {});
                                    var RejectReason222222222 = /* @__PURE__ */ ((RejectReason2222222222) => {
                                      RejectReason2222222222[RejectReason2222222222["OTHER"] = 0] = "OTHER";
                                      RejectReason2222222222[RejectReason2222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                      RejectReason2222222222[RejectReason2222222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                                      RejectReason2222222222[RejectReason2222222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                                      RejectReason2222222222[RejectReason2222222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                                      RejectReason2222222222[RejectReason2222222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                                      RejectReason2222222222[RejectReason2222222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                                      RejectReason2222222222[RejectReason2222222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                                      RejectReason2222222222[RejectReason2222222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                                      RejectReason2222222222[RejectReason2222222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                                      return RejectReason2222222222;
                                    })(RejectReason222222222 || {});
                                    var ErrorClass222222222 = /* @__PURE__ */ ((ErrorClass2222222222) => {
                                      ErrorClass2222222222[ErrorClass2222222222["DEVICE"] = 0] = "DEVICE";
                                      ErrorClass2222222222[ErrorClass2222222222["OBJECT"] = 1] = "OBJECT";
                                      ErrorClass2222222222[ErrorClass2222222222["PROPERTY"] = 2] = "PROPERTY";
                                      ErrorClass2222222222[ErrorClass2222222222["RESOURCES"] = 3] = "RESOURCES";
                                      ErrorClass2222222222[ErrorClass2222222222["SECURITY"] = 4] = "SECURITY";
                                      ErrorClass2222222222[ErrorClass2222222222["SERVICES"] = 5] = "SERVICES";
                                      ErrorClass2222222222[ErrorClass2222222222["VT"] = 6] = "VT";
                                      ErrorClass2222222222[ErrorClass2222222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                                      return ErrorClass2222222222;
                                    })(ErrorClass222222222 || {});
                                    var ErrorClassName222222222 = invertEnum222222222(
                                      ErrorClass222222222
                                    );
                                    var ErrorCode222222222 = /* @__PURE__ */ ((ErrorCode2222222222) => {
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                                      ErrorCode2222222222[ErrorCode2222222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                                      ErrorCode2222222222[ErrorCode2222222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                                      ErrorCode2222222222[ErrorCode2222222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                                      ErrorCode2222222222[ErrorCode2222222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                                      ErrorCode2222222222[ErrorCode2222222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                                      ErrorCode2222222222[ErrorCode2222222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                                      ErrorCode2222222222[ErrorCode2222222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                                      ErrorCode2222222222[ErrorCode2222222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                                      ErrorCode2222222222[ErrorCode2222222222["BUSY"] = 82] = "BUSY";
                                      ErrorCode2222222222[ErrorCode2222222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                                      ErrorCode2222222222[ErrorCode2222222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                                      ErrorCode2222222222[ErrorCode2222222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                                      ErrorCode2222222222[ErrorCode2222222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                                      ErrorCode2222222222[ErrorCode2222222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                                      ErrorCode2222222222[ErrorCode2222222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                                      ErrorCode2222222222[ErrorCode2222222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                                      ErrorCode2222222222[ErrorCode2222222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                                      ErrorCode2222222222[ErrorCode2222222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                                      ErrorCode2222222222[ErrorCode2222222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                                      ErrorCode2222222222[ErrorCode2222222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                                      ErrorCode2222222222[ErrorCode2222222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                                      ErrorCode2222222222[ErrorCode2222222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                                      ErrorCode2222222222[ErrorCode2222222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                                      ErrorCode2222222222[ErrorCode2222222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                                      ErrorCode2222222222[ErrorCode2222222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                                      ErrorCode2222222222[ErrorCode2222222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                                      ErrorCode2222222222[ErrorCode2222222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                                      ErrorCode2222222222[ErrorCode2222222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                                      ErrorCode2222222222[ErrorCode2222222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                                      ErrorCode2222222222[ErrorCode2222222222["FILE_FULL"] = 128] = "FILE_FULL";
                                      ErrorCode2222222222[ErrorCode2222222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                                      ErrorCode2222222222[ErrorCode2222222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                                      ErrorCode2222222222[ErrorCode2222222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                                      ErrorCode2222222222[ErrorCode2222222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                                      ErrorCode2222222222[ErrorCode2222222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                                      ErrorCode2222222222[ErrorCode2222222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                                      ErrorCode2222222222[ErrorCode2222222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                                      ErrorCode2222222222[ErrorCode2222222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                                      ErrorCode2222222222[ErrorCode2222222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                                      ErrorCode2222222222[ErrorCode2222222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                                      ErrorCode2222222222[ErrorCode2222222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                                      ErrorCode2222222222[ErrorCode2222222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                                      ErrorCode2222222222[ErrorCode2222222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                                      ErrorCode2222222222[ErrorCode2222222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                                      ErrorCode2222222222[ErrorCode2222222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                                      ErrorCode2222222222[ErrorCode2222222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                                      ErrorCode2222222222[ErrorCode2222222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                                      ErrorCode2222222222[ErrorCode2222222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                                      ErrorCode2222222222[ErrorCode2222222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                                      ErrorCode2222222222[ErrorCode2222222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                                      ErrorCode2222222222[ErrorCode2222222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                                      ErrorCode2222222222[ErrorCode2222222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                                      ErrorCode2222222222[ErrorCode2222222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                                      ErrorCode2222222222[ErrorCode2222222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                                      ErrorCode2222222222[ErrorCode2222222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                                      ErrorCode2222222222[ErrorCode2222222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                                      ErrorCode2222222222[ErrorCode2222222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                                      ErrorCode2222222222[ErrorCode2222222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                                      ErrorCode2222222222[ErrorCode2222222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                                      ErrorCode2222222222[ErrorCode2222222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                                      ErrorCode2222222222[ErrorCode2222222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                                      ErrorCode2222222222[ErrorCode2222222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                                      ErrorCode2222222222[ErrorCode2222222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                                      ErrorCode2222222222[ErrorCode2222222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                                      ErrorCode2222222222[ErrorCode2222222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                                      ErrorCode2222222222[ErrorCode2222222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                                      ErrorCode2222222222[ErrorCode2222222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                                      ErrorCode2222222222[ErrorCode2222222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                                      ErrorCode2222222222[ErrorCode2222222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                                      ErrorCode2222222222[ErrorCode2222222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                                      ErrorCode2222222222[ErrorCode2222222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                                      ErrorCode2222222222[ErrorCode2222222222["OTHER"] = 0] = "OTHER";
                                      ErrorCode2222222222[ErrorCode2222222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                                      ErrorCode2222222222[ErrorCode2222222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                                      ErrorCode2222222222[ErrorCode2222222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                                      ErrorCode2222222222[ErrorCode2222222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                                      ErrorCode2222222222[ErrorCode2222222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                                      ErrorCode2222222222[ErrorCode2222222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                                      ErrorCode2222222222[ErrorCode2222222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                                      ErrorCode2222222222[ErrorCode2222222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                                      ErrorCode2222222222[ErrorCode2222222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                                      ErrorCode2222222222[ErrorCode2222222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                                      ErrorCode2222222222[ErrorCode2222222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                                      ErrorCode2222222222[ErrorCode2222222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                                      ErrorCode2222222222[ErrorCode2222222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                                      ErrorCode2222222222[ErrorCode2222222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                                      ErrorCode2222222222[ErrorCode2222222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                                      ErrorCode2222222222[ErrorCode2222222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                                      ErrorCode2222222222[ErrorCode2222222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                                      ErrorCode2222222222[ErrorCode2222222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                                      ErrorCode2222222222[ErrorCode2222222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                                      ErrorCode2222222222[ErrorCode2222222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                                      ErrorCode2222222222[ErrorCode2222222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                                      ErrorCode2222222222[ErrorCode2222222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                                      ErrorCode2222222222[ErrorCode2222222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                                      ErrorCode2222222222[ErrorCode2222222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                                      ErrorCode2222222222[ErrorCode2222222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                                      ErrorCode2222222222[ErrorCode2222222222["SUCCESS"] = 84] = "SUCCESS";
                                      ErrorCode2222222222[ErrorCode2222222222["TIMEOUT"] = 30] = "TIMEOUT";
                                      ErrorCode2222222222[ErrorCode2222222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                                      ErrorCode2222222222[ErrorCode2222222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                                      ErrorCode2222222222[ErrorCode2222222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                                      ErrorCode2222222222[ErrorCode2222222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                                      ErrorCode2222222222[ErrorCode2222222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                                      ErrorCode2222222222[ErrorCode2222222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                                      ErrorCode2222222222[ErrorCode2222222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                                      ErrorCode2222222222[ErrorCode2222222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                                      ErrorCode2222222222[ErrorCode2222222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                                      ErrorCode2222222222[ErrorCode2222222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                                      return ErrorCode2222222222;
                                    })(ErrorCode222222222 || {});
                                    var ErrorCodeName222222222 = invertEnum222222222(
                                      ErrorCode222222222
                                    );
                                    var AccessAuthenticationFactorDisable222222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable2222222222) => {
                                      AccessAuthenticationFactorDisable2222222222[AccessAuthenticationFactorDisable2222222222["NONE"] = 0] = "NONE";
                                      AccessAuthenticationFactorDisable2222222222[AccessAuthenticationFactorDisable2222222222["DISABLED"] = 1] = "DISABLED";
                                      AccessAuthenticationFactorDisable2222222222[AccessAuthenticationFactorDisable2222222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                                      AccessAuthenticationFactorDisable2222222222[AccessAuthenticationFactorDisable2222222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                                      AccessAuthenticationFactorDisable2222222222[AccessAuthenticationFactorDisable2222222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                                      AccessAuthenticationFactorDisable2222222222[AccessAuthenticationFactorDisable2222222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                                      return AccessAuthenticationFactorDisable2222222222;
                                    })(AccessAuthenticationFactorDisable222222222 || {});
                                    var AccessCredentialDisable222222222 = /* @__PURE__ */ ((AccessCredentialDisable2222222222) => {
                                      AccessCredentialDisable2222222222[AccessCredentialDisable2222222222["NONE"] = 0] = "NONE";
                                      AccessCredentialDisable2222222222[AccessCredentialDisable2222222222["DISABLE"] = 1] = "DISABLE";
                                      AccessCredentialDisable2222222222[AccessCredentialDisable2222222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                                      AccessCredentialDisable2222222222[AccessCredentialDisable2222222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                                      return AccessCredentialDisable2222222222;
                                    })(AccessCredentialDisable222222222 || {});
                                    var AccessCredentialDisableReason222222222 = /* @__PURE__ */ ((AccessCredentialDisableReason2222222222) => {
                                      AccessCredentialDisableReason2222222222[AccessCredentialDisableReason2222222222["DISABLED"] = 0] = "DISABLED";
                                      AccessCredentialDisableReason2222222222[AccessCredentialDisableReason2222222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                                      AccessCredentialDisableReason2222222222[AccessCredentialDisableReason2222222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                                      AccessCredentialDisableReason2222222222[AccessCredentialDisableReason2222222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                                      AccessCredentialDisableReason2222222222[AccessCredentialDisableReason2222222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                                      AccessCredentialDisableReason2222222222[AccessCredentialDisableReason2222222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                                      AccessCredentialDisableReason2222222222[AccessCredentialDisableReason2222222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                                      AccessCredentialDisableReason2222222222[AccessCredentialDisableReason2222222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                                      AccessCredentialDisableReason2222222222[AccessCredentialDisableReason2222222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                                      AccessCredentialDisableReason2222222222[AccessCredentialDisableReason2222222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                                      return AccessCredentialDisableReason2222222222;
                                    })(AccessCredentialDisableReason222222222 || {});
                                    var AccessEvent222222222 = /* @__PURE__ */ ((AccessEvent2222222222) => {
                                      AccessEvent2222222222[AccessEvent2222222222["NONE"] = 0] = "NONE";
                                      AccessEvent2222222222[AccessEvent2222222222["GRANTED"] = 1] = "GRANTED";
                                      AccessEvent2222222222[AccessEvent2222222222["MUSTER"] = 2] = "MUSTER";
                                      AccessEvent2222222222[AccessEvent2222222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                                      AccessEvent2222222222[AccessEvent2222222222["DURESS"] = 4] = "DURESS";
                                      AccessEvent2222222222[AccessEvent2222222222["TRACE"] = 5] = "TRACE";
                                      AccessEvent2222222222[AccessEvent2222222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                                      AccessEvent2222222222[AccessEvent2222222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                                      AccessEvent2222222222[AccessEvent2222222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                                      AccessEvent2222222222[AccessEvent2222222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                                      AccessEvent2222222222[AccessEvent2222222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                                      AccessEvent2222222222[AccessEvent2222222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                                      AccessEvent2222222222[AccessEvent2222222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                                      AccessEvent2222222222[AccessEvent2222222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                                      AccessEvent2222222222[AccessEvent2222222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                                      AccessEvent2222222222[AccessEvent2222222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                                      AccessEvent2222222222[AccessEvent2222222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                                      AccessEvent2222222222[AccessEvent2222222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                                      return AccessEvent2222222222;
                                    })(AccessEvent222222222 || {});
                                    var AccessPassbackMode222222222 = /* @__PURE__ */ ((AccessPassbackMode2222222222) => {
                                      AccessPassbackMode2222222222[AccessPassbackMode2222222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                                      AccessPassbackMode2222222222[AccessPassbackMode2222222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                                      AccessPassbackMode2222222222[AccessPassbackMode2222222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                                      return AccessPassbackMode2222222222;
                                    })(AccessPassbackMode222222222 || {});
                                    var AccessUserType222222222 = /* @__PURE__ */ ((AccessUserType2222222222) => {
                                      AccessUserType2222222222[AccessUserType2222222222["ASSET"] = 0] = "ASSET";
                                      AccessUserType2222222222[AccessUserType2222222222["GROUP"] = 1] = "GROUP";
                                      AccessUserType2222222222[AccessUserType2222222222["PERSON"] = 2] = "PERSON";
                                      return AccessUserType2222222222;
                                    })(AccessUserType222222222 || {});
                                    var AccessZoneOccupancyState222222222 = /* @__PURE__ */ ((AccessZoneOccupancyState2222222222) => {
                                      AccessZoneOccupancyState2222222222[AccessZoneOccupancyState2222222222["NORMAL"] = 0] = "NORMAL";
                                      AccessZoneOccupancyState2222222222[AccessZoneOccupancyState2222222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                                      AccessZoneOccupancyState2222222222[AccessZoneOccupancyState2222222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                                      AccessZoneOccupancyState2222222222[AccessZoneOccupancyState2222222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                                      AccessZoneOccupancyState2222222222[AccessZoneOccupancyState2222222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                                      AccessZoneOccupancyState2222222222[AccessZoneOccupancyState2222222222["DISABLED"] = 5] = "DISABLED";
                                      AccessZoneOccupancyState2222222222[AccessZoneOccupancyState2222222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                                      return AccessZoneOccupancyState2222222222;
                                    })(AccessZoneOccupancyState222222222 || {});
                                    var Action222222222 = /* @__PURE__ */ ((Action2222222222) => {
                                      Action2222222222[Action2222222222["DIRECT"] = 0] = "DIRECT";
                                      Action2222222222[Action2222222222["REVERSE"] = 1] = "REVERSE";
                                      return Action2222222222;
                                    })(Action222222222 || {});
                                    var AuthenticationFactorType222222222 = /* @__PURE__ */ ((AuthenticationFactorType2222222222) => {
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["UNDEFINED"] = 0] = "UNDEFINED";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["ERROR"] = 1] = "ERROR";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["CUSTOM"] = 2] = "CUSTOM";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["WIEGAND26"] = 8] = "WIEGAND26";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["WIEGAND37"] = 9] = "WIEGAND37";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["FASC_N"] = 13] = "FASC_N";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["GSA75"] = 17] = "GSA75";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["CHUID"] = 18] = "CHUID";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["GUID"] = 20] = "GUID";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["CBEFF_A"] = 21] = "CBEFF_A";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["CBEFF_B"] = 22] = "CBEFF_B";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["CBEFF_C"] = 23] = "CBEFF_C";
                                      AuthenticationFactorType2222222222[AuthenticationFactorType2222222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                                      return AuthenticationFactorType2222222222;
                                    })(AuthenticationFactorType222222222 || {});
                                    var AuthenticationStatus222222222 = /* @__PURE__ */ ((AuthenticationStatus2222222222) => {
                                      AuthenticationStatus2222222222[AuthenticationStatus2222222222["NOT_READY"] = 0] = "NOT_READY";
                                      AuthenticationStatus2222222222[AuthenticationStatus2222222222["READY"] = 1] = "READY";
                                      AuthenticationStatus2222222222[AuthenticationStatus2222222222["DISABLED"] = 2] = "DISABLED";
                                      AuthenticationStatus2222222222[AuthenticationStatus2222222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                                      AuthenticationStatus2222222222[AuthenticationStatus2222222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                                      AuthenticationStatus2222222222[AuthenticationStatus2222222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                                      AuthenticationStatus2222222222[AuthenticationStatus2222222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                                      return AuthenticationStatus2222222222;
                                    })(AuthenticationStatus222222222 || {});
                                    var AuthorizationExemption222222222 = /* @__PURE__ */ ((AuthorizationExemption2222222222) => {
                                      AuthorizationExemption2222222222[AuthorizationExemption2222222222["PASSBACK"] = 0] = "PASSBACK";
                                      AuthorizationExemption2222222222[AuthorizationExemption2222222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                                      AuthorizationExemption2222222222[AuthorizationExemption2222222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                                      AuthorizationExemption2222222222[AuthorizationExemption2222222222["LOCKOUT"] = 3] = "LOCKOUT";
                                      AuthorizationExemption2222222222[AuthorizationExemption2222222222["DENY"] = 4] = "DENY";
                                      AuthorizationExemption2222222222[AuthorizationExemption2222222222["VERIFICATION"] = 5] = "VERIFICATION";
                                      AuthorizationExemption2222222222[AuthorizationExemption2222222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                                      return AuthorizationExemption2222222222;
                                    })(AuthorizationExemption222222222 || {});
                                    var AuthorizationMode222222222 = /* @__PURE__ */ ((AuthorizationMode2222222222) => {
                                      AuthorizationMode2222222222[AuthorizationMode2222222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                                      AuthorizationMode2222222222[AuthorizationMode2222222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                                      AuthorizationMode2222222222[AuthorizationMode2222222222["DENY_ALL"] = 2] = "DENY_ALL";
                                      AuthorizationMode2222222222[AuthorizationMode2222222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                                      AuthorizationMode2222222222[AuthorizationMode2222222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                                      AuthorizationMode2222222222[AuthorizationMode2222222222["NONE"] = 5] = "NONE";
                                      return AuthorizationMode2222222222;
                                    })(AuthorizationMode222222222 || {});
                                    var BackupState222222222 = /* @__PURE__ */ ((BackupState2222222222) => {
                                      BackupState2222222222[BackupState2222222222["IDLE"] = 0] = "IDLE";
                                      BackupState2222222222[BackupState2222222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                                      BackupState2222222222[BackupState2222222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                                      BackupState2222222222[BackupState2222222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                                      BackupState2222222222[BackupState2222222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                                      BackupState2222222222[BackupState2222222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                                      BackupState2222222222[BackupState2222222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                                      return BackupState2222222222;
                                    })(BackupState222222222 || {});
                                    var BinaryLightingPV222222222 = /* @__PURE__ */ ((BinaryLightingPV2222222222) => {
                                      BinaryLightingPV2222222222[BinaryLightingPV2222222222["OFF"] = 0] = "OFF";
                                      BinaryLightingPV2222222222[BinaryLightingPV2222222222["ON"] = 1] = "ON";
                                      BinaryLightingPV2222222222[BinaryLightingPV2222222222["WARN"] = 2] = "WARN";
                                      BinaryLightingPV2222222222[BinaryLightingPV2222222222["WARN_OFF"] = 3] = "WARN_OFF";
                                      BinaryLightingPV2222222222[BinaryLightingPV2222222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                                      BinaryLightingPV2222222222[BinaryLightingPV2222222222["STOP"] = 5] = "STOP";
                                      return BinaryLightingPV2222222222;
                                    })(BinaryLightingPV222222222 || {});
                                    var BinaryPV222222222 = /* @__PURE__ */ ((BinaryPV2222222222) => {
                                      BinaryPV2222222222[BinaryPV2222222222["INACTIVE"] = 0] = "INACTIVE";
                                      BinaryPV2222222222[BinaryPV2222222222["ACTIVE"] = 1] = "ACTIVE";
                                      return BinaryPV2222222222;
                                    })(BinaryPV222222222 || {});
                                    var DeviceStatus222222222 = /* @__PURE__ */ ((DeviceStatus2222222222) => {
                                      DeviceStatus2222222222[DeviceStatus2222222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                                      DeviceStatus2222222222[DeviceStatus2222222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                                      DeviceStatus2222222222[DeviceStatus2222222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                                      DeviceStatus2222222222[DeviceStatus2222222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                                      DeviceStatus2222222222[DeviceStatus2222222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                                      DeviceStatus2222222222[DeviceStatus2222222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                                      return DeviceStatus2222222222;
                                    })(DeviceStatus222222222 || {});
                                    var DoorAlarmState222222222 = /* @__PURE__ */ ((DoorAlarmState2222222222) => {
                                      DoorAlarmState2222222222[DoorAlarmState2222222222["NORMAL"] = 0] = "NORMAL";
                                      DoorAlarmState2222222222[DoorAlarmState2222222222["ALARM"] = 1] = "ALARM";
                                      DoorAlarmState2222222222[DoorAlarmState2222222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                                      DoorAlarmState2222222222[DoorAlarmState2222222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                                      DoorAlarmState2222222222[DoorAlarmState2222222222["TAMPER"] = 4] = "TAMPER";
                                      DoorAlarmState2222222222[DoorAlarmState2222222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                                      DoorAlarmState2222222222[DoorAlarmState2222222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                                      DoorAlarmState2222222222[DoorAlarmState2222222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                                      DoorAlarmState2222222222[DoorAlarmState2222222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                                      return DoorAlarmState2222222222;
                                    })(DoorAlarmState222222222 || {});
                                    var DoorSecuredStatus222222222 = /* @__PURE__ */ ((DoorSecuredStatus2222222222) => {
                                      DoorSecuredStatus2222222222[DoorSecuredStatus2222222222["SECURED"] = 0] = "SECURED";
                                      DoorSecuredStatus2222222222[DoorSecuredStatus2222222222["UNSECURED"] = 1] = "UNSECURED";
                                      DoorSecuredStatus2222222222[DoorSecuredStatus2222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                      return DoorSecuredStatus2222222222;
                                    })(DoorSecuredStatus222222222 || {});
                                    var DoorStatus222222222 = /* @__PURE__ */ ((DoorStatus2222222222) => {
                                      DoorStatus2222222222[DoorStatus2222222222["CLOSED"] = 0] = "CLOSED";
                                      DoorStatus2222222222[DoorStatus2222222222["OPENED"] = 1] = "OPENED";
                                      DoorStatus2222222222[DoorStatus2222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                      DoorStatus2222222222[DoorStatus2222222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                                      DoorStatus2222222222[DoorStatus2222222222["UNUSED"] = 4] = "UNUSED";
                                      DoorStatus2222222222[DoorStatus2222222222["NONE"] = 5] = "NONE";
                                      DoorStatus2222222222[DoorStatus2222222222["CLOSING"] = 6] = "CLOSING";
                                      DoorStatus2222222222[DoorStatus2222222222["OPENING"] = 7] = "OPENING";
                                      DoorStatus2222222222[DoorStatus2222222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                                      DoorStatus2222222222[DoorStatus2222222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                                      return DoorStatus2222222222;
                                    })(DoorStatus222222222 || {});
                                    var DoorValue222222222 = /* @__PURE__ */ ((DoorValue2222222222) => {
                                      DoorValue2222222222[DoorValue2222222222["LOCK"] = 0] = "LOCK";
                                      DoorValue2222222222[DoorValue2222222222["UNLOCK"] = 1] = "UNLOCK";
                                      DoorValue2222222222[DoorValue2222222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                                      DoorValue2222222222[DoorValue2222222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                                      return DoorValue2222222222;
                                    })(DoorValue222222222 || {});
                                    var EngineeringUnits222222222 = /* @__PURE__ */ ((EngineeringUnits2222222222) => {
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CURRENCY1"] = 105] = "CURRENCY1";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CURRENCY2"] = 106] = "CURRENCY2";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CURRENCY3"] = 107] = "CURRENCY3";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CURRENCY4"] = 108] = "CURRENCY4";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CURRENCY5"] = 109] = "CURRENCY5";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CURRENCY6"] = 110] = "CURRENCY6";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CURRENCY7"] = 111] = "CURRENCY7";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CURRENCY8"] = 112] = "CURRENCY8";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CURRENCY9"] = 113] = "CURRENCY9";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CURRENCY10"] = 114] = "CURRENCY10";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["AMPERES"] = 3] = "AMPERES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DECIBELS"] = 199] = "DECIBELS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["FARADS"] = 170] = "FARADS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["HENRYS"] = 171] = "HENRYS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["OHMS"] = 4] = "OHMS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["OHM_METERS"] = 172] = "OHM_METERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOHMS"] = 122] = "KILOHMS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGOHMS"] = 123] = "MEGOHMS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["SIEMENS"] = 173] = "SIEMENS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["TESLAS"] = 175] = "TESLAS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["VOLTS"] = 5] = "VOLTS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["WEBERS"] = 178] = "WEBERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["JOULES"] = 16] = "JOULES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOJOULES"] = 17] = "KILOJOULES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["BTUS"] = 20] = "BTUS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["THERMS"] = 21] = "THERMS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["TON_HOURS"] = 22] = "TON_HOURS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["NEWTON"] = 153] = "NEWTON";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["HERTZ"] = 27] = "HERTZ";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PER_HOUR"] = 131] = "PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MICROMETERS"] = 194] = "MICROMETERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOMETERS"] = 193] = "KILOMETERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["METERS"] = 31] = "METERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["INCHES"] = 32] = "INCHES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["FEET"] = 33] = "FEET";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CANDELAS"] = 179] = "CANDELAS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["LUMENS"] = 36] = "LUMENS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["LUXES"] = 37] = "LUXES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["GRAMS"] = 195] = "GRAMS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["TONS"] = 41] = "TONS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["WATTS"] = 47] = "WATTS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOWATTS"] = 48] = "KILOWATTS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PASCALS"] = 53] = "PASCALS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIBARS"] = 134] = "MILLIBARS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["BARS"] = 55] = "BARS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["YEARS"] = 67] = "YEARS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MONTHS"] = 68] = "MONTHS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["WEEKS"] = 69] = "WEEKS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DAYS"] = 70] = "DAYS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["HOURS"] = 71] = "HOURS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MINUTES"] = 72] = "MINUTES";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["SECONDS"] = 73] = "SECONDS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLILITERS"] = 197] = "MILLILITERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["LITERS"] = 82] = "LITERS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["US_GALLONS"] = 83] = "US_GALLONS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["NO_UNITS"] = 95] = "NO_UNITS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PERCENT"] = 98] = "PERCENT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PER_SECOND"] = 101] = "PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["RADIANS"] = 103] = "RADIANS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PER_MILLE"] = 207] = "PER_MILLE";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["BECQUERELS"] = 222] = "BECQUERELS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["GRAY"] = 225] = "GRAY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MICROGRAY"] = 227] = "MICROGRAY";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["SIEVERTS"] = 228] = "SIEVERTS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIREMS"] = 47814] = "MILLIREMS";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["PH"] = 234] = "PH";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                                      EngineeringUnits2222222222[EngineeringUnits2222222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                                      return EngineeringUnits2222222222;
                                    })(EngineeringUnits222222222 || {});
                                    var EscalatorFault222222222 = /* @__PURE__ */ ((EscalatorFault2222222222) => {
                                      EscalatorFault2222222222[EscalatorFault2222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                      EscalatorFault2222222222[EscalatorFault2222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                      EscalatorFault2222222222[EscalatorFault2222222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                                      EscalatorFault2222222222[EscalatorFault2222222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                                      EscalatorFault2222222222[EscalatorFault2222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                      EscalatorFault2222222222[EscalatorFault2222222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                                      EscalatorFault2222222222[EscalatorFault2222222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                                      EscalatorFault2222222222[EscalatorFault2222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                                      EscalatorFault2222222222[EscalatorFault2222222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                                      return EscalatorFault2222222222;
                                    })(EscalatorFault222222222 || {});
                                    var EscalatorMode222222222 = /* @__PURE__ */ ((EscalatorMode2222222222) => {
                                      EscalatorMode2222222222[EscalatorMode2222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                      EscalatorMode2222222222[EscalatorMode2222222222["STOP"] = 1] = "STOP";
                                      EscalatorMode2222222222[EscalatorMode2222222222["UP"] = 2] = "UP";
                                      EscalatorMode2222222222[EscalatorMode2222222222["DOWN"] = 3] = "DOWN";
                                      EscalatorMode2222222222[EscalatorMode2222222222["INSPECTION"] = 4] = "INSPECTION";
                                      EscalatorMode2222222222[EscalatorMode2222222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                                      return EscalatorMode2222222222;
                                    })(EscalatorMode222222222 || {});
                                    var EscalatorOperationDirection222222222 = /* @__PURE__ */ ((EscalatorOperationDirection2222222222) => {
                                      EscalatorOperationDirection2222222222[EscalatorOperationDirection2222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                      EscalatorOperationDirection2222222222[EscalatorOperationDirection2222222222["STOPPED"] = 1] = "STOPPED";
                                      EscalatorOperationDirection2222222222[EscalatorOperationDirection2222222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                                      EscalatorOperationDirection2222222222[EscalatorOperationDirection2222222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                                      EscalatorOperationDirection2222222222[EscalatorOperationDirection2222222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                                      EscalatorOperationDirection2222222222[EscalatorOperationDirection2222222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                                      return EscalatorOperationDirection2222222222;
                                    })(EscalatorOperationDirection222222222 || {});
                                    var EventState222222222 = /* @__PURE__ */ ((EventState2222222222) => {
                                      EventState2222222222[EventState2222222222["NORMAL"] = 0] = "NORMAL";
                                      EventState2222222222[EventState2222222222["FAULT"] = 1] = "FAULT";
                                      EventState2222222222[EventState2222222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                                      EventState2222222222[EventState2222222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                                      EventState2222222222[EventState2222222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                                      EventState2222222222[EventState2222222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                                      return EventState2222222222;
                                    })(EventState222222222 || {});
                                    var EventType222222222 = /* @__PURE__ */ ((EventType2222222222) => {
                                      EventType2222222222[EventType2222222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                                      EventType2222222222[EventType2222222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                                      EventType2222222222[EventType2222222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                                      EventType2222222222[EventType2222222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                                      EventType2222222222[EventType2222222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                                      EventType2222222222[EventType2222222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                                      EventType2222222222[EventType2222222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                                      EventType2222222222[EventType2222222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                                      EventType2222222222[EventType2222222222["EXTENDED"] = 9] = "EXTENDED";
                                      EventType2222222222[EventType2222222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                                      EventType2222222222[EventType2222222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                                      EventType2222222222[EventType2222222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                                      EventType2222222222[EventType2222222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                                      EventType2222222222[EventType2222222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                                      EventType2222222222[EventType2222222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                                      EventType2222222222[EventType2222222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                                      EventType2222222222[EventType2222222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                                      EventType2222222222[EventType2222222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                                      EventType2222222222[EventType2222222222["NONE"] = 20] = "NONE";
                                      EventType2222222222[EventType2222222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                                      EventType2222222222[EventType2222222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                                      return EventType2222222222;
                                    })(EventType222222222 || {});
                                    var FaultType222222222 = /* @__PURE__ */ ((FaultType2222222222) => {
                                      FaultType2222222222[FaultType2222222222["NONE"] = 0] = "NONE";
                                      FaultType2222222222[FaultType2222222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                                      FaultType2222222222[FaultType2222222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                                      FaultType2222222222[FaultType2222222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                                      FaultType2222222222[FaultType2222222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                                      FaultType2222222222[FaultType2222222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                                      FaultType2222222222[FaultType2222222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                                      FaultType2222222222[FaultType2222222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                                      return FaultType2222222222;
                                    })(FaultType222222222 || {});
                                    var FileAccessMethod222222222 = /* @__PURE__ */ ((FileAccessMethod2222222222) => {
                                      FileAccessMethod2222222222[FileAccessMethod2222222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                                      FileAccessMethod2222222222[FileAccessMethod2222222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                                      return FileAccessMethod2222222222;
                                    })(FileAccessMethod222222222 || {});
                                    var IPMode222222222 = /* @__PURE__ */ ((IPMode2222222222) => {
                                      IPMode2222222222[IPMode2222222222["NORMAL"] = 0] = "NORMAL";
                                      IPMode2222222222[IPMode2222222222["FOREIGN"] = 1] = "FOREIGN";
                                      IPMode2222222222[IPMode2222222222["BBMD"] = 2] = "BBMD";
                                      return IPMode2222222222;
                                    })(IPMode222222222 || {});
                                    var LifeSafetyMode222222222 = /* @__PURE__ */ ((LifeSafetyMode2222222222) => {
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["OFF"] = 0] = "OFF";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["ON"] = 1] = "ON";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["TEST"] = 2] = "TEST";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["MANNED"] = 3] = "MANNED";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["UNMANNED"] = 4] = "UNMANNED";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["ARMED"] = 5] = "ARMED";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["DISARMED"] = 6] = "DISARMED";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["PREARMED"] = 7] = "PREARMED";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["SLOW"] = 8] = "SLOW";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["FAST"] = 9] = "FAST";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["ENABLED"] = 11] = "ENABLED";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["DISABLED"] = 12] = "DISABLED";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                                      LifeSafetyMode2222222222[LifeSafetyMode2222222222["DEFAULT"] = 14] = "DEFAULT";
                                      return LifeSafetyMode2222222222;
                                    })(LifeSafetyMode222222222 || {});
                                    var LifeSafetyOperation222222222 = /* @__PURE__ */ ((LifeSafetyOperation2222222222) => {
                                      LifeSafetyOperation2222222222[LifeSafetyOperation2222222222["NONE"] = 0] = "NONE";
                                      LifeSafetyOperation2222222222[LifeSafetyOperation2222222222["SILENCE"] = 1] = "SILENCE";
                                      LifeSafetyOperation2222222222[LifeSafetyOperation2222222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                                      LifeSafetyOperation2222222222[LifeSafetyOperation2222222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                                      LifeSafetyOperation2222222222[LifeSafetyOperation2222222222["RESET"] = 4] = "RESET";
                                      LifeSafetyOperation2222222222[LifeSafetyOperation2222222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                                      LifeSafetyOperation2222222222[LifeSafetyOperation2222222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                                      LifeSafetyOperation2222222222[LifeSafetyOperation2222222222["UNSILENCE"] = 7] = "UNSILENCE";
                                      LifeSafetyOperation2222222222[LifeSafetyOperation2222222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                                      LifeSafetyOperation2222222222[LifeSafetyOperation2222222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                                      return LifeSafetyOperation2222222222;
                                    })(LifeSafetyOperation222222222 || {});
                                    var LifeSafetyState222222222 = /* @__PURE__ */ ((LifeSafetyState2222222222) => {
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["QUIET"] = 0] = "QUIET";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["ALARM"] = 2] = "ALARM";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["FAULT"] = 3] = "FAULT";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["NOT_READY"] = 6] = "NOT_READY";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["ACTIVE"] = 7] = "ACTIVE";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["TAMPER"] = 8] = "TAMPER";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["HOLDUP"] = 13] = "HOLDUP";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["DURESS"] = 14] = "DURESS";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["ABNORMAL"] = 16] = "ABNORMAL";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["DELAYED"] = 18] = "DELAYED";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["BLOCKED"] = 19] = "BLOCKED";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                                      LifeSafetyState2222222222[LifeSafetyState2222222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                                      return LifeSafetyState2222222222;
                                    })(LifeSafetyState222222222 || {});
                                    var LiftCarDirection222222222 = /* @__PURE__ */ ((LiftCarDirection2222222222) => {
                                      LiftCarDirection2222222222[LiftCarDirection2222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                      LiftCarDirection2222222222[LiftCarDirection2222222222["NONE"] = 1] = "NONE";
                                      LiftCarDirection2222222222[LiftCarDirection2222222222["STOPPED"] = 2] = "STOPPED";
                                      LiftCarDirection2222222222[LiftCarDirection2222222222["UP"] = 3] = "UP";
                                      LiftCarDirection2222222222[LiftCarDirection2222222222["DOWN"] = 4] = "DOWN";
                                      LiftCarDirection2222222222[LiftCarDirection2222222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                                      return LiftCarDirection2222222222;
                                    })(LiftCarDirection222222222 || {});
                                    var LiftCarDoorCommand222222222 = /* @__PURE__ */ ((LiftCarDoorCommand2222222222) => {
                                      LiftCarDoorCommand2222222222[LiftCarDoorCommand2222222222["NONE"] = 0] = "NONE";
                                      LiftCarDoorCommand2222222222[LiftCarDoorCommand2222222222["OPEN"] = 1] = "OPEN";
                                      LiftCarDoorCommand2222222222[LiftCarDoorCommand2222222222["CLOSE"] = 2] = "CLOSE";
                                      return LiftCarDoorCommand2222222222;
                                    })(LiftCarDoorCommand222222222 || {});
                                    var LiftCarDriveStatus222222222 = /* @__PURE__ */ ((LiftCarDriveStatus2222222222) => {
                                      LiftCarDriveStatus2222222222[LiftCarDriveStatus2222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                      LiftCarDriveStatus2222222222[LiftCarDriveStatus2222222222["STATIONARY"] = 1] = "STATIONARY";
                                      LiftCarDriveStatus2222222222[LiftCarDriveStatus2222222222["BRAKING"] = 2] = "BRAKING";
                                      LiftCarDriveStatus2222222222[LiftCarDriveStatus2222222222["ACCELERATE"] = 3] = "ACCELERATE";
                                      LiftCarDriveStatus2222222222[LiftCarDriveStatus2222222222["DECELERATE"] = 4] = "DECELERATE";
                                      LiftCarDriveStatus2222222222[LiftCarDriveStatus2222222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                                      LiftCarDriveStatus2222222222[LiftCarDriveStatus2222222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                                      LiftCarDriveStatus2222222222[LiftCarDriveStatus2222222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                                      LiftCarDriveStatus2222222222[LiftCarDriveStatus2222222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                                      LiftCarDriveStatus2222222222[LiftCarDriveStatus2222222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                                      return LiftCarDriveStatus2222222222;
                                    })(LiftCarDriveStatus222222222 || {});
                                    var LiftCarMode222222222 = /* @__PURE__ */ ((LiftCarMode2222222222) => {
                                      LiftCarMode2222222222[LiftCarMode2222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                      LiftCarMode2222222222[LiftCarMode2222222222["NORMAL"] = 1] = "NORMAL";
                                      LiftCarMode2222222222[LiftCarMode2222222222["VIP"] = 2] = "VIP";
                                      LiftCarMode2222222222[LiftCarMode2222222222["HOMING"] = 3] = "HOMING";
                                      LiftCarMode2222222222[LiftCarMode2222222222["PARKING"] = 4] = "PARKING";
                                      LiftCarMode2222222222[LiftCarMode2222222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                                      LiftCarMode2222222222[LiftCarMode2222222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                                      LiftCarMode2222222222[LiftCarMode2222222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                                      LiftCarMode2222222222[LiftCarMode2222222222["INSPECTION"] = 8] = "INSPECTION";
                                      LiftCarMode2222222222[LiftCarMode2222222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                                      LiftCarMode2222222222[LiftCarMode2222222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                                      LiftCarMode2222222222[LiftCarMode2222222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                                      LiftCarMode2222222222[LiftCarMode2222222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                                      LiftCarMode2222222222[LiftCarMode2222222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                                      return LiftCarMode2222222222;
                                    })(LiftCarMode222222222 || {});
                                    var LiftFault222222222 = /* @__PURE__ */ ((LiftFault2222222222) => {
                                      LiftFault2222222222[LiftFault2222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                      LiftFault2222222222[LiftFault2222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                      LiftFault2222222222[LiftFault2222222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                                      LiftFault2222222222[LiftFault2222222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                                      LiftFault2222222222[LiftFault2222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                      LiftFault2222222222[LiftFault2222222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                                      LiftFault2222222222[LiftFault2222222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                                      LiftFault2222222222[LiftFault2222222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                                      LiftFault2222222222[LiftFault2222222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                                      LiftFault2222222222[LiftFault2222222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                                      LiftFault2222222222[LiftFault2222222222["START_FAILURE"] = 10] = "START_FAILURE";
                                      LiftFault2222222222[LiftFault2222222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                                      LiftFault2222222222[LiftFault2222222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                                      LiftFault2222222222[LiftFault2222222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                                      LiftFault2222222222[LiftFault2222222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                                      LiftFault2222222222[LiftFault2222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                                      LiftFault2222222222[LiftFault2222222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                                      return LiftFault2222222222;
                                    })(LiftFault222222222 || {});
                                    var LiftGroupMode222222222 = /* @__PURE__ */ ((LiftGroupMode2222222222) => {
                                      LiftGroupMode2222222222[LiftGroupMode2222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                      LiftGroupMode2222222222[LiftGroupMode2222222222["NORMAL"] = 1] = "NORMAL";
                                      LiftGroupMode2222222222[LiftGroupMode2222222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                                      LiftGroupMode2222222222[LiftGroupMode2222222222["TWO_WAY"] = 3] = "TWO_WAY";
                                      LiftGroupMode2222222222[LiftGroupMode2222222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                                      LiftGroupMode2222222222[LiftGroupMode2222222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                                      LiftGroupMode2222222222[LiftGroupMode2222222222["UP_PEAK"] = 6] = "UP_PEAK";
                                      return LiftGroupMode2222222222;
                                    })(LiftGroupMode222222222 || {});
                                    var LightingInProgress222222222 = /* @__PURE__ */ ((LightingInProgress2222222222) => {
                                      LightingInProgress2222222222[LightingInProgress2222222222["IDLE"] = 0] = "IDLE";
                                      LightingInProgress2222222222[LightingInProgress2222222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                                      LightingInProgress2222222222[LightingInProgress2222222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                                      LightingInProgress2222222222[LightingInProgress2222222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                                      LightingInProgress2222222222[LightingInProgress2222222222["OTHER"] = 4] = "OTHER";
                                      return LightingInProgress2222222222;
                                    })(LightingInProgress222222222 || {});
                                    var LightingOperation222222222 = /* @__PURE__ */ ((LightingOperation2222222222) => {
                                      LightingOperation2222222222[LightingOperation2222222222["NONE"] = 0] = "NONE";
                                      LightingOperation2222222222[LightingOperation2222222222["FADE_TO"] = 1] = "FADE_TO";
                                      LightingOperation2222222222[LightingOperation2222222222["RAMP_TO"] = 2] = "RAMP_TO";
                                      LightingOperation2222222222[LightingOperation2222222222["STEP_UP"] = 3] = "STEP_UP";
                                      LightingOperation2222222222[LightingOperation2222222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                                      LightingOperation2222222222[LightingOperation2222222222["STEP_ON"] = 5] = "STEP_ON";
                                      LightingOperation2222222222[LightingOperation2222222222["STEP_OFF"] = 6] = "STEP_OFF";
                                      LightingOperation2222222222[LightingOperation2222222222["WARN"] = 7] = "WARN";
                                      LightingOperation2222222222[LightingOperation2222222222["WARN_OFF"] = 8] = "WARN_OFF";
                                      LightingOperation2222222222[LightingOperation2222222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                                      LightingOperation2222222222[LightingOperation2222222222["STOP"] = 10] = "STOP";
                                      return LightingOperation2222222222;
                                    })(LightingOperation222222222 || {});
                                    var LightingTransition222222222 = /* @__PURE__ */ ((LightingTransition2222222222) => {
                                      LightingTransition2222222222[LightingTransition2222222222["NONE"] = 0] = "NONE";
                                      LightingTransition2222222222[LightingTransition2222222222["FADE"] = 1] = "FADE";
                                      LightingTransition2222222222[LightingTransition2222222222["RAMP"] = 2] = "RAMP";
                                      return LightingTransition2222222222;
                                    })(LightingTransition222222222 || {});
                                    var LockStatus222222222 = /* @__PURE__ */ ((LockStatus2222222222) => {
                                      LockStatus2222222222[LockStatus2222222222["LOCKED"] = 0] = "LOCKED";
                                      LockStatus2222222222[LockStatus2222222222["UNLOCKED"] = 1] = "UNLOCKED";
                                      LockStatus2222222222[LockStatus2222222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                                      LockStatus2222222222[LockStatus2222222222["UNUSED"] = 3] = "UNUSED";
                                      LockStatus2222222222[LockStatus2222222222["UNKNOWN"] = 4] = "UNKNOWN";
                                      return LockStatus2222222222;
                                    })(LockStatus222222222 || {});
                                    var LoggingType222222222 = /* @__PURE__ */ ((LoggingType2222222222) => {
                                      LoggingType2222222222[LoggingType2222222222["POLLED"] = 0] = "POLLED";
                                      LoggingType2222222222[LoggingType2222222222["COV"] = 1] = "COV";
                                      LoggingType2222222222[LoggingType2222222222["TRIGGERED"] = 2] = "TRIGGERED";
                                      return LoggingType2222222222;
                                    })(LoggingType222222222 || {});
                                    var Maintenance222222222 = /* @__PURE__ */ ((Maintenance2222222222) => {
                                      Maintenance2222222222[Maintenance2222222222["NONE"] = 0] = "NONE";
                                      Maintenance2222222222[Maintenance2222222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                                      Maintenance2222222222[Maintenance2222222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                                      Maintenance2222222222[Maintenance2222222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                                      return Maintenance2222222222;
                                    })(Maintenance222222222 || {});
                                    var NetworkNumberQuality222222222 = /* @__PURE__ */ ((NetworkNumberQuality2222222222) => {
                                      NetworkNumberQuality2222222222[NetworkNumberQuality2222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                      NetworkNumberQuality2222222222[NetworkNumberQuality2222222222["LEARNED"] = 1] = "LEARNED";
                                      NetworkNumberQuality2222222222[NetworkNumberQuality2222222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                                      NetworkNumberQuality2222222222[NetworkNumberQuality2222222222["CONFIGURED"] = 3] = "CONFIGURED";
                                      return NetworkNumberQuality2222222222;
                                    })(NetworkNumberQuality222222222 || {});
                                    var NetworkPortCommand222222222 = /* @__PURE__ */ ((NetworkPortCommand2222222222) => {
                                      NetworkPortCommand2222222222[NetworkPortCommand2222222222["IDLE"] = 0] = "IDLE";
                                      NetworkPortCommand2222222222[NetworkPortCommand2222222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                                      NetworkPortCommand2222222222[NetworkPortCommand2222222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                                      NetworkPortCommand2222222222[NetworkPortCommand2222222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                                      NetworkPortCommand2222222222[NetworkPortCommand2222222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                                      NetworkPortCommand2222222222[NetworkPortCommand2222222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                                      NetworkPortCommand2222222222[NetworkPortCommand2222222222["DISCONNECT"] = 6] = "DISCONNECT";
                                      NetworkPortCommand2222222222[NetworkPortCommand2222222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                                      return NetworkPortCommand2222222222;
                                    })(NetworkPortCommand222222222 || {});
                                    var NetworkType222222222 = /* @__PURE__ */ ((NetworkType2222222222) => {
                                      NetworkType2222222222[NetworkType2222222222["ETHERNET"] = 0] = "ETHERNET";
                                      NetworkType2222222222[NetworkType2222222222["ARCNET"] = 1] = "ARCNET";
                                      NetworkType2222222222[NetworkType2222222222["MSTP"] = 2] = "MSTP";
                                      NetworkType2222222222[NetworkType2222222222["PTP"] = 3] = "PTP";
                                      NetworkType2222222222[NetworkType2222222222["LONTALK"] = 4] = "LONTALK";
                                      NetworkType2222222222[NetworkType2222222222["IPV4"] = 5] = "IPV4";
                                      NetworkType2222222222[NetworkType2222222222["ZIGBEE"] = 6] = "ZIGBEE";
                                      NetworkType2222222222[NetworkType2222222222["VIRTUAL"] = 7] = "VIRTUAL";
                                      NetworkType2222222222[NetworkType2222222222["IPV6"] = 9] = "IPV6";
                                      NetworkType2222222222[NetworkType2222222222["SERIAL"] = 10] = "SERIAL";
                                      return NetworkType2222222222;
                                    })(NetworkType222222222 || {});
                                    var NodeType222222222 = /* @__PURE__ */ ((NodeType2222222222) => {
                                      NodeType2222222222[NodeType2222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                      NodeType2222222222[NodeType2222222222["SYSTEM"] = 1] = "SYSTEM";
                                      NodeType2222222222[NodeType2222222222["NETWORK"] = 2] = "NETWORK";
                                      NodeType2222222222[NodeType2222222222["DEVICE"] = 3] = "DEVICE";
                                      NodeType2222222222[NodeType2222222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                                      NodeType2222222222[NodeType2222222222["AREA"] = 5] = "AREA";
                                      NodeType2222222222[NodeType2222222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                                      NodeType2222222222[NodeType2222222222["POINT"] = 7] = "POINT";
                                      NodeType2222222222[NodeType2222222222["COLLECTION"] = 8] = "COLLECTION";
                                      NodeType2222222222[NodeType2222222222["PROPERTY"] = 9] = "PROPERTY";
                                      NodeType2222222222[NodeType2222222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                                      NodeType2222222222[NodeType2222222222["OTHER"] = 11] = "OTHER";
                                      NodeType2222222222[NodeType2222222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                                      NodeType2222222222[NodeType2222222222["BUILDING"] = 13] = "BUILDING";
                                      NodeType2222222222[NodeType2222222222["FLOOR"] = 14] = "FLOOR";
                                      NodeType2222222222[NodeType2222222222["SECTION"] = 15] = "SECTION";
                                      NodeType2222222222[NodeType2222222222["MODULE"] = 16] = "MODULE";
                                      NodeType2222222222[NodeType2222222222["TREE"] = 17] = "TREE";
                                      NodeType2222222222[NodeType2222222222["MEMBER"] = 18] = "MEMBER";
                                      NodeType2222222222[NodeType2222222222["PROTOCOL"] = 19] = "PROTOCOL";
                                      NodeType2222222222[NodeType2222222222["ROOM"] = 20] = "ROOM";
                                      NodeType2222222222[NodeType2222222222["ZONE"] = 21] = "ZONE";
                                      return NodeType2222222222;
                                    })(NodeType222222222 || {});
                                    var NotifyType222222222 = /* @__PURE__ */ ((NotifyType2222222222) => {
                                      NotifyType2222222222[NotifyType2222222222["ALARM"] = 0] = "ALARM";
                                      NotifyType2222222222[NotifyType2222222222["EVENT"] = 1] = "EVENT";
                                      NotifyType2222222222[NotifyType2222222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                                      return NotifyType2222222222;
                                    })(NotifyType222222222 || {});
                                    var ObjectType222222222 = /* @__PURE__ */ ((ObjectType2222222222) => {
                                      ObjectType2222222222[ObjectType2222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                      ObjectType2222222222[ObjectType2222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                      ObjectType2222222222[ObjectType2222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                      ObjectType2222222222[ObjectType2222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                      ObjectType2222222222[ObjectType2222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                      ObjectType2222222222[ObjectType2222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                      ObjectType2222222222[ObjectType2222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                      ObjectType2222222222[ObjectType2222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                      ObjectType2222222222[ObjectType2222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                      ObjectType2222222222[ObjectType2222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                      ObjectType2222222222[ObjectType2222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["AVERAGING"] = 18] = "AVERAGING";
                                      ObjectType2222222222[ObjectType2222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                      ObjectType2222222222[ObjectType2222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                      ObjectType2222222222[ObjectType2222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                      ObjectType2222222222[ObjectType2222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["CALENDAR"] = 6] = "CALENDAR";
                                      ObjectType2222222222[ObjectType2222222222["CHANNEL"] = 53] = "CHANNEL";
                                      ObjectType2222222222[ObjectType2222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["COMMAND"] = 7] = "COMMAND";
                                      ObjectType2222222222[ObjectType2222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                      ObjectType2222222222[ObjectType2222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["DEVICE"] = 8] = "DEVICE";
                                      ObjectType2222222222[ObjectType2222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                      ObjectType2222222222[ObjectType2222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                      ObjectType2222222222[ObjectType2222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                      ObjectType2222222222[ObjectType2222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                      ObjectType2222222222[ObjectType2222222222["FILE"] = 10] = "FILE";
                                      ObjectType2222222222[ObjectType2222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                      ObjectType2222222222[ObjectType2222222222["GROUP"] = 11] = "GROUP";
                                      ObjectType2222222222[ObjectType2222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                      ObjectType2222222222[ObjectType2222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                      ObjectType2222222222[ObjectType2222222222["LIFT"] = 59] = "LIFT";
                                      ObjectType2222222222[ObjectType2222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                      ObjectType2222222222[ObjectType2222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                      ObjectType2222222222[ObjectType2222222222["LOOP"] = 12] = "LOOP";
                                      ObjectType2222222222[ObjectType2222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                      ObjectType2222222222[ObjectType2222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                      ObjectType2222222222[ObjectType2222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                      ObjectType2222222222[ObjectType2222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                      ObjectType2222222222[ObjectType2222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                      ObjectType2222222222[ObjectType2222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                      ObjectType2222222222[ObjectType2222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["PROGRAM"] = 16] = "PROGRAM";
                                      ObjectType2222222222[ObjectType2222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                      ObjectType2222222222[ObjectType2222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                      ObjectType2222222222[ObjectType2222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                      ObjectType2222222222[ObjectType2222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                      ObjectType2222222222[ObjectType2222222222["TIMER"] = 31] = "TIMER";
                                      ObjectType2222222222[ObjectType2222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                      ObjectType2222222222[ObjectType2222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                      return ObjectType2222222222;
                                    })(ObjectType222222222 || {});
                                    var Polarity222222222 = /* @__PURE__ */ ((Polarity2222222222) => {
                                      Polarity2222222222[Polarity2222222222["NORMAL"] = 0] = "NORMAL";
                                      Polarity2222222222[Polarity2222222222["REVERSE"] = 1] = "REVERSE";
                                      return Polarity2222222222;
                                    })(Polarity222222222 || {});
                                    var ProgramError222222222 = /* @__PURE__ */ ((ProgramError2222222222) => {
                                      ProgramError2222222222[ProgramError2222222222["NORMAL"] = 0] = "NORMAL";
                                      ProgramError2222222222[ProgramError2222222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                                      ProgramError2222222222[ProgramError2222222222["INTERNAL"] = 2] = "INTERNAL";
                                      ProgramError2222222222[ProgramError2222222222["PROGRAM"] = 3] = "PROGRAM";
                                      ProgramError2222222222[ProgramError2222222222["OTHER"] = 4] = "OTHER";
                                      return ProgramError2222222222;
                                    })(ProgramError222222222 || {});
                                    var ProgramRequest222222222 = /* @__PURE__ */ ((ProgramRequest2222222222) => {
                                      ProgramRequest2222222222[ProgramRequest2222222222["READY"] = 0] = "READY";
                                      ProgramRequest2222222222[ProgramRequest2222222222["LOAD"] = 1] = "LOAD";
                                      ProgramRequest2222222222[ProgramRequest2222222222["RUN"] = 2] = "RUN";
                                      ProgramRequest2222222222[ProgramRequest2222222222["HALT"] = 3] = "HALT";
                                      ProgramRequest2222222222[ProgramRequest2222222222["RESTART"] = 4] = "RESTART";
                                      ProgramRequest2222222222[ProgramRequest2222222222["UNLOAD"] = 5] = "UNLOAD";
                                      return ProgramRequest2222222222;
                                    })(ProgramRequest222222222 || {});
                                    var ProgramState222222222 = /* @__PURE__ */ ((ProgramState2222222222) => {
                                      ProgramState2222222222[ProgramState2222222222["IDLE"] = 0] = "IDLE";
                                      ProgramState2222222222[ProgramState2222222222["LOADING"] = 1] = "LOADING";
                                      ProgramState2222222222[ProgramState2222222222["RUNNING"] = 2] = "RUNNING";
                                      ProgramState2222222222[ProgramState2222222222["WAITING"] = 3] = "WAITING";
                                      ProgramState2222222222[ProgramState2222222222["HALTED"] = 4] = "HALTED";
                                      ProgramState2222222222[ProgramState2222222222["UNLOADING"] = 5] = "UNLOADING";
                                      return ProgramState2222222222;
                                    })(ProgramState222222222 || {});
                                    var PropertyIdentifier222222222 = /* @__PURE__ */ ((PropertyIdentifier2222222222) => {
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACTION"] = 2] = "ACTION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ALL"] = 8] = "ALL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ARCHIVE"] = 13] = "ARCHIVE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BIAS"] = 14] = "BIAS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BIT_MASK"] = 342] = "BIT_MASK";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CAR_MODE"] = 456] = "CAR_MODE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["COMMAND"] = 417] = "COMMAND";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["COUNT"] = 177] = "COUNT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DATE_LIST"] = 23] = "DATE_LIST";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DEADBAND"] = 25] = "DEADBAND";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ENABLE"] = 133] = "ENABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["GROUP_ID"] = 465] = "GROUP_ID";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["IS_UTC"] = 344] = "IS_UTC";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["KEY_SETS"] = 330] = "KEY_SETS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOCATION"] = 58] = "LOCATION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOCKOUT"] = 282] = "LOCKOUT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MEMBERS"] = 286] = "MEMBERS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MODE"] = 160] = "MODE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OPTIONAL"] = 80] = "OPTIONAL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["POLARITY"] = 84] = "POLARITY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["POWER"] = 384] = "POWER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["POWER_MODE"] = 479] = "POWER_MODE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PRESCALE"] = 185] = "PRESCALE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PRIORITY"] = 86] = "PRIORITY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["READ_ONLY"] = 99] = "READ_ONLY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["RELIABILITY"] = 103] = "RELIABILITY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["REPRESENTS"] = 491] = "REPRESENTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["REQUIRED"] = 105] = "REQUIRED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["RESOLUTION"] = 106] = "RESOLUTION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SCALE"] = 187] = "SCALE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SETPOINT"] = 108] = "SETPOINT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SETTING"] = 162] = "SETTING";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SILENCED"] = 163] = "SILENCED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["START_TIME"] = 142] = "START_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["STOP_TIME"] = 143] = "STOP_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TAGS"] = 486] = "TAGS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TRANSITION"] = 385] = "TRANSITION";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["TRIGGER"] = 205] = "TRIGGER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["UNITS"] = 117] = "UNITS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["USER_NAME"] = 317] = "USER_NAME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["USER_TYPE"] = 318] = "USER_TYPE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["VALUE_SET"] = 191] = "VALUE_SET";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                                      PropertyIdentifier2222222222[PropertyIdentifier2222222222["ZONE_TO"] = 321] = "ZONE_TO";
                                      return PropertyIdentifier2222222222;
                                    })(PropertyIdentifier222222222 || {});
                                    var ProtocolLevel222222222 = /* @__PURE__ */ ((ProtocolLevel2222222222) => {
                                      ProtocolLevel2222222222[ProtocolLevel2222222222["PHYSICAL"] = 0] = "PHYSICAL";
                                      ProtocolLevel2222222222[ProtocolLevel2222222222["PROTOCOL"] = 1] = "PROTOCOL";
                                      ProtocolLevel2222222222[ProtocolLevel2222222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                                      ProtocolLevel2222222222[ProtocolLevel2222222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                                      return ProtocolLevel2222222222;
                                    })(ProtocolLevel222222222 || {});
                                    var Relationship222222222 = /* @__PURE__ */ ((Relationship2222222222) => {
                                      Relationship2222222222[Relationship2222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                      Relationship2222222222[Relationship2222222222["DEFAULT"] = 1] = "DEFAULT";
                                      Relationship2222222222[Relationship2222222222["CONTAINS"] = 2] = "CONTAINS";
                                      Relationship2222222222[Relationship2222222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                                      Relationship2222222222[Relationship2222222222["USES"] = 4] = "USES";
                                      Relationship2222222222[Relationship2222222222["USED_BY"] = 5] = "USED_BY";
                                      Relationship2222222222[Relationship2222222222["COMMANDS"] = 6] = "COMMANDS";
                                      Relationship2222222222[Relationship2222222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                                      Relationship2222222222[Relationship2222222222["ADJUSTS"] = 8] = "ADJUSTS";
                                      Relationship2222222222[Relationship2222222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                                      Relationship2222222222[Relationship2222222222["INGRESS"] = 10] = "INGRESS";
                                      Relationship2222222222[Relationship2222222222["EGRESS"] = 11] = "EGRESS";
                                      Relationship2222222222[Relationship2222222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                                      Relationship2222222222[Relationship2222222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                                      Relationship2222222222[Relationship2222222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                                      Relationship2222222222[Relationship2222222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                                      Relationship2222222222[Relationship2222222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                                      Relationship2222222222[Relationship2222222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                                      Relationship2222222222[Relationship2222222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                                      Relationship2222222222[Relationship2222222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                                      Relationship2222222222[Relationship2222222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                                      Relationship2222222222[Relationship2222222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                                      Relationship2222222222[Relationship2222222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                                      Relationship2222222222[Relationship2222222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                                      Relationship2222222222[Relationship2222222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                                      Relationship2222222222[Relationship2222222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                                      Relationship2222222222[Relationship2222222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                                      Relationship2222222222[Relationship2222222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                                      Relationship2222222222[Relationship2222222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                                      Relationship2222222222[Relationship2222222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                                      return Relationship2222222222;
                                    })(Relationship222222222 || {});
                                    var Reliability222222222 = /* @__PURE__ */ ((Reliability2222222222) => {
                                      Reliability2222222222[Reliability2222222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                                      Reliability2222222222[Reliability2222222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                                      Reliability2222222222[Reliability2222222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                                      Reliability2222222222[Reliability2222222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                                      Reliability2222222222[Reliability2222222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                                      Reliability2222222222[Reliability2222222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                                      Reliability2222222222[Reliability2222222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                                      Reliability2222222222[Reliability2222222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                                      Reliability2222222222[Reliability2222222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                                      Reliability2222222222[Reliability2222222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                                      Reliability2222222222[Reliability2222222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                                      Reliability2222222222[Reliability2222222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                                      Reliability2222222222[Reliability2222222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                                      Reliability2222222222[Reliability2222222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                                      Reliability2222222222[Reliability2222222222["TRIPPED"] = 15] = "TRIPPED";
                                      Reliability2222222222[Reliability2222222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                                      Reliability2222222222[Reliability2222222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                                      Reliability2222222222[Reliability2222222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                                      Reliability2222222222[Reliability2222222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                                      Reliability2222222222[Reliability2222222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                                      Reliability2222222222[Reliability2222222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                                      Reliability2222222222[Reliability2222222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                                      Reliability2222222222[Reliability2222222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                                      Reliability2222222222[Reliability2222222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                                      return Reliability2222222222;
                                    })(Reliability222222222 || {});
                                    var RestartReason222222222 = /* @__PURE__ */ ((RestartReason2222222222) => {
                                      RestartReason2222222222[RestartReason2222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                      RestartReason2222222222[RestartReason2222222222["COLDSTART"] = 1] = "COLDSTART";
                                      RestartReason2222222222[RestartReason2222222222["WARMSTART"] = 2] = "WARMSTART";
                                      RestartReason2222222222[RestartReason2222222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                                      RestartReason2222222222[RestartReason2222222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                                      RestartReason2222222222[RestartReason2222222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                                      RestartReason2222222222[RestartReason2222222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                                      RestartReason2222222222[RestartReason2222222222["SUSPENDED"] = 7] = "SUSPENDED";
                                      RestartReason2222222222[RestartReason2222222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                                      return RestartReason2222222222;
                                    })(RestartReason222222222 || {});
                                    var SecurityLevel222222222 = /* @__PURE__ */ ((SecurityLevel2222222222) => {
                                      SecurityLevel2222222222[SecurityLevel2222222222["INCAPABLE"] = 0] = "INCAPABLE";
                                      SecurityLevel2222222222[SecurityLevel2222222222["PLAIN"] = 1] = "PLAIN";
                                      SecurityLevel2222222222[SecurityLevel2222222222["SIGNED"] = 2] = "SIGNED";
                                      SecurityLevel2222222222[SecurityLevel2222222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                                      SecurityLevel2222222222[SecurityLevel2222222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                                      SecurityLevel2222222222[SecurityLevel2222222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                                      return SecurityLevel2222222222;
                                    })(SecurityLevel222222222 || {});
                                    var SecurityPolicy222222222 = /* @__PURE__ */ ((SecurityPolicy2222222222) => {
                                      SecurityPolicy2222222222[SecurityPolicy2222222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                                      SecurityPolicy2222222222[SecurityPolicy2222222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                                      SecurityPolicy2222222222[SecurityPolicy2222222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                                      SecurityPolicy2222222222[SecurityPolicy2222222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                                      return SecurityPolicy2222222222;
                                    })(SecurityPolicy222222222 || {});
                                    var Segmentation222222222 = /* @__PURE__ */ ((Segmentation2222222222) => {
                                      Segmentation2222222222[Segmentation2222222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                                      Segmentation2222222222[Segmentation2222222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                                      Segmentation2222222222[Segmentation2222222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                                      Segmentation2222222222[Segmentation2222222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                                      return Segmentation2222222222;
                                    })(Segmentation222222222 || {});
                                    var ShedState222222222 = /* @__PURE__ */ ((ShedState2222222222) => {
                                      ShedState2222222222[ShedState2222222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                                      ShedState2222222222[ShedState2222222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                                      ShedState2222222222[ShedState2222222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                                      ShedState2222222222[ShedState2222222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                                      return ShedState2222222222;
                                    })(ShedState222222222 || {});
                                    var SilencedState222222222 = /* @__PURE__ */ ((SilencedState2222222222) => {
                                      SilencedState2222222222[SilencedState2222222222["UNSILENCED"] = 0] = "UNSILENCED";
                                      SilencedState2222222222[SilencedState2222222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                                      SilencedState2222222222[SilencedState2222222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                                      SilencedState2222222222[SilencedState2222222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                                      return SilencedState2222222222;
                                    })(SilencedState222222222 || {});
                                    var TimerState222222222 = /* @__PURE__ */ ((TimerState2222222222) => {
                                      TimerState2222222222[TimerState2222222222["IDLE"] = 0] = "IDLE";
                                      TimerState2222222222[TimerState2222222222["RUNNING"] = 1] = "RUNNING";
                                      TimerState2222222222[TimerState2222222222["EXPIRED"] = 2] = "EXPIRED";
                                      return TimerState2222222222;
                                    })(TimerState222222222 || {});
                                    var TimerTransition222222222 = /* @__PURE__ */ ((TimerTransition2222222222) => {
                                      TimerTransition2222222222[TimerTransition2222222222["NONE"] = 0] = "NONE";
                                      TimerTransition2222222222[TimerTransition2222222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                                      TimerTransition2222222222[TimerTransition2222222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                                      TimerTransition2222222222[TimerTransition2222222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                                      TimerTransition2222222222[TimerTransition2222222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                                      TimerTransition2222222222[TimerTransition2222222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                                      TimerTransition2222222222[TimerTransition2222222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                                      TimerTransition2222222222[TimerTransition2222222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                                      return TimerTransition2222222222;
                                    })(TimerTransition222222222 || {});
                                    var VTClass222222222 = /* @__PURE__ */ ((VTClass2222222222) => {
                                      VTClass2222222222[VTClass2222222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                                      VTClass2222222222[VTClass2222222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                                      VTClass2222222222[VTClass2222222222["DEC_VT52"] = 2] = "DEC_VT52";
                                      VTClass2222222222[VTClass2222222222["DEC_VT100"] = 3] = "DEC_VT100";
                                      VTClass2222222222[VTClass2222222222["DEC_VT220"] = 4] = "DEC_VT220";
                                      VTClass2222222222[VTClass2222222222["HP_700_94"] = 5] = "HP_700_94";
                                      VTClass2222222222[VTClass2222222222["IBM_3130"] = 6] = "IBM_3130";
                                      return VTClass2222222222;
                                    })(VTClass222222222 || {});
                                    var WriteStatus222222222 = /* @__PURE__ */ ((WriteStatus2222222222) => {
                                      WriteStatus2222222222[WriteStatus2222222222["IDLE"] = 0] = "IDLE";
                                      WriteStatus2222222222[WriteStatus2222222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                                      WriteStatus2222222222[WriteStatus2222222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                                      WriteStatus2222222222[WriteStatus2222222222["FAILED"] = 3] = "FAILED";
                                      return WriteStatus2222222222;
                                    })(WriteStatus222222222 || {});
                                    var DaysOfWeek222222222 = /* @__PURE__ */ ((DaysOfWeek2222222222) => {
                                      DaysOfWeek2222222222[DaysOfWeek2222222222["MONDAY"] = 0] = "MONDAY";
                                      DaysOfWeek2222222222[DaysOfWeek2222222222["TUESDAY"] = 1] = "TUESDAY";
                                      DaysOfWeek2222222222[DaysOfWeek2222222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                                      DaysOfWeek2222222222[DaysOfWeek2222222222["THURSDAY"] = 3] = "THURSDAY";
                                      DaysOfWeek2222222222[DaysOfWeek2222222222["FRIDAY"] = 4] = "FRIDAY";
                                      DaysOfWeek2222222222[DaysOfWeek2222222222["SATURDAY"] = 5] = "SATURDAY";
                                      DaysOfWeek2222222222[DaysOfWeek2222222222["SUNDAY"] = 6] = "SUNDAY";
                                      return DaysOfWeek2222222222;
                                    })(DaysOfWeek222222222 || {});
                                    var EventTransitionBits222222222 = /* @__PURE__ */ ((EventTransitionBits2222222222) => {
                                      EventTransitionBits2222222222[EventTransitionBits2222222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                                      EventTransitionBits2222222222[EventTransitionBits2222222222["TO_FAULT"] = 1] = "TO_FAULT";
                                      EventTransitionBits2222222222[EventTransitionBits2222222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                                      return EventTransitionBits2222222222;
                                    })(EventTransitionBits222222222 || {});
                                    var LimitEnable222222222 = /* @__PURE__ */ ((LimitEnable2222222222) => {
                                      LimitEnable2222222222[LimitEnable2222222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                                      LimitEnable2222222222[LimitEnable2222222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                                      return LimitEnable2222222222;
                                    })(LimitEnable222222222 || {});
                                    var LogStatus222222222 = /* @__PURE__ */ ((LogStatus2222222222) => {
                                      LogStatus2222222222[LogStatus2222222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                                      LogStatus2222222222[LogStatus2222222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                                      LogStatus2222222222[LogStatus2222222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                                      return LogStatus2222222222;
                                    })(LogStatus222222222 || {});
                                    var ObjectTypesSupported222222222 = /* @__PURE__ */ ((ObjectTypesSupported2222222222) => {
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["CALENDAR"] = 6] = "CALENDAR";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["COMMAND"] = 7] = "COMMAND";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["DEVICE"] = 8] = "DEVICE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["FILE"] = 10] = "FILE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["GROUP"] = 11] = "GROUP";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["LOOP"] = 12] = "LOOP";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["PROGRAM"] = 16] = "PROGRAM";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["AVERAGING"] = 18] = "AVERAGING";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["TIMER"] = 31] = "TIMER";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["CHANNEL"] = 53] = "CHANNEL";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                      ObjectTypesSupported2222222222[ObjectTypesSupported2222222222["LIFT"] = 59] = "LIFT";
                                      return ObjectTypesSupported2222222222;
                                    })(ObjectTypesSupported222222222 || {});
                                    var ResultFlags222222222 = /* @__PURE__ */ ((ResultFlags2222222222) => {
                                      ResultFlags2222222222[ResultFlags2222222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                                      ResultFlags2222222222[ResultFlags2222222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                                      ResultFlags2222222222[ResultFlags2222222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                                      return ResultFlags2222222222;
                                    })(ResultFlags222222222 || {});
                                    var ServicesSupported222222222 = /* @__PURE__ */ ((ServicesSupported2222222222) => {
                                      ServicesSupported2222222222[ServicesSupported2222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                      ServicesSupported2222222222[ServicesSupported2222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                      ServicesSupported2222222222[ServicesSupported2222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                      ServicesSupported2222222222[ServicesSupported2222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                      ServicesSupported2222222222[ServicesSupported2222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                      ServicesSupported2222222222[ServicesSupported2222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                      ServicesSupported2222222222[ServicesSupported2222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                      ServicesSupported2222222222[ServicesSupported2222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                      ServicesSupported2222222222[ServicesSupported2222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                      ServicesSupported2222222222[ServicesSupported2222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                      ServicesSupported2222222222[ServicesSupported2222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                      ServicesSupported2222222222[ServicesSupported2222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                      ServicesSupported2222222222[ServicesSupported2222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                      ServicesSupported2222222222[ServicesSupported2222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                      ServicesSupported2222222222[ServicesSupported2222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                      ServicesSupported2222222222[ServicesSupported2222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["VT_DATA"] = 23] = "VT_DATA";
                                      ServicesSupported2222222222[ServicesSupported2222222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                                      ServicesSupported2222222222[ServicesSupported2222222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                                      ServicesSupported2222222222[ServicesSupported2222222222["I_AM"] = 26] = "I_AM";
                                      ServicesSupported2222222222[ServicesSupported2222222222["I_HAVE"] = 27] = "I_HAVE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                                      ServicesSupported2222222222[ServicesSupported2222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                      ServicesSupported2222222222[ServicesSupported2222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                      ServicesSupported2222222222[ServicesSupported2222222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                                      ServicesSupported2222222222[ServicesSupported2222222222["WHO_HAS"] = 33] = "WHO_HAS";
                                      ServicesSupported2222222222[ServicesSupported2222222222["WHO_IS"] = 34] = "WHO_IS";
                                      ServicesSupported2222222222[ServicesSupported2222222222["READ_RANGE"] = 35] = "READ_RANGE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                                      ServicesSupported2222222222[ServicesSupported2222222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                                      ServicesSupported2222222222[ServicesSupported2222222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                                      ServicesSupported2222222222[ServicesSupported2222222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                                      ServicesSupported2222222222[ServicesSupported2222222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                                      ServicesSupported2222222222[ServicesSupported2222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                      ServicesSupported2222222222[ServicesSupported2222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                      return ServicesSupported2222222222;
                                    })(ServicesSupported222222222 || {});
                                    var StatusFlags222222222 = /* @__PURE__ */ ((StatusFlags2222222222) => {
                                      StatusFlags2222222222[StatusFlags2222222222["IN_ALARM"] = 0] = "IN_ALARM";
                                      StatusFlags2222222222[StatusFlags2222222222["FAULT"] = 1] = "FAULT";
                                      StatusFlags2222222222[StatusFlags2222222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                                      StatusFlags2222222222[StatusFlags2222222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                                      return StatusFlags2222222222;
                                    })(StatusFlags222222222 || {});
                                    var ApplicationTag222222222 = /* @__PURE__ */ ((ApplicationTag2222222222) => {
                                      ApplicationTag2222222222[ApplicationTag2222222222["NULL"] = 0] = "NULL";
                                      ApplicationTag2222222222[ApplicationTag2222222222["BOOLEAN"] = 1] = "BOOLEAN";
                                      ApplicationTag2222222222[ApplicationTag2222222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                                      ApplicationTag2222222222[ApplicationTag2222222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                                      ApplicationTag2222222222[ApplicationTag2222222222["REAL"] = 4] = "REAL";
                                      ApplicationTag2222222222[ApplicationTag2222222222["DOUBLE"] = 5] = "DOUBLE";
                                      ApplicationTag2222222222[ApplicationTag2222222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                                      ApplicationTag2222222222[ApplicationTag2222222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                                      ApplicationTag2222222222[ApplicationTag2222222222["BIT_STRING"] = 8] = "BIT_STRING";
                                      ApplicationTag2222222222[ApplicationTag2222222222["ENUMERATED"] = 9] = "ENUMERATED";
                                      ApplicationTag2222222222[ApplicationTag2222222222["DATE"] = 10] = "DATE";
                                      ApplicationTag2222222222[ApplicationTag2222222222["TIME"] = 11] = "TIME";
                                      ApplicationTag2222222222[ApplicationTag2222222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                                      ApplicationTag2222222222[ApplicationTag2222222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                                      ApplicationTag2222222222[ApplicationTag2222222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                                      ApplicationTag2222222222[ApplicationTag2222222222["DATERANGE"] = 102] = "DATERANGE";
                                      ApplicationTag2222222222[ApplicationTag2222222222["DATETIME"] = 103] = "DATETIME";
                                      ApplicationTag2222222222[ApplicationTag2222222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                                      ApplicationTag2222222222[ApplicationTag2222222222["ERROR"] = 105] = "ERROR";
                                      ApplicationTag2222222222[ApplicationTag2222222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                                      ApplicationTag2222222222[ApplicationTag2222222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                                      ApplicationTag2222222222[ApplicationTag2222222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                                      ApplicationTag2222222222[ApplicationTag2222222222["DESTINATION"] = 109] = "DESTINATION";
                                      ApplicationTag2222222222[ApplicationTag2222222222["RECIPIENT"] = 110] = "RECIPIENT";
                                      ApplicationTag2222222222[ApplicationTag2222222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                                      ApplicationTag2222222222[ApplicationTag2222222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                                      ApplicationTag2222222222[ApplicationTag2222222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                                      ApplicationTag2222222222[ApplicationTag2222222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                                      ApplicationTag2222222222[ApplicationTag2222222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                                      ApplicationTag2222222222[ApplicationTag2222222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                                      ApplicationTag2222222222[ApplicationTag2222222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                                      ApplicationTag2222222222[ApplicationTag2222222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                                      ApplicationTag2222222222[ApplicationTag2222222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                                      ApplicationTag2222222222[ApplicationTag2222222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                                      return ApplicationTag2222222222;
                                    })(ApplicationTag222222222 || {});
                                    var ApplicationTagName222222222 = invertEnum222222222(
                                      ApplicationTag222222222
                                    );
                                    var BvlcResultFormat222222222 = /* @__PURE__ */ ((BvlcResultFormat2222222222) => {
                                      BvlcResultFormat2222222222[BvlcResultFormat2222222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                                      BvlcResultFormat2222222222[BvlcResultFormat2222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                      BvlcResultFormat2222222222[BvlcResultFormat2222222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                      BvlcResultFormat2222222222[BvlcResultFormat2222222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                                      BvlcResultFormat2222222222[BvlcResultFormat2222222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                                      BvlcResultFormat2222222222[BvlcResultFormat2222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                                      BvlcResultFormat2222222222[BvlcResultFormat2222222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                                      return BvlcResultFormat2222222222;
                                    })(BvlcResultFormat222222222 || {});
                                    var BvlcResultPurpose222222222 = /* @__PURE__ */ ((BvlcResultPurpose2222222222) => {
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                                      BvlcResultPurpose2222222222[BvlcResultPurpose2222222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                                      return BvlcResultPurpose2222222222;
                                    })(BvlcResultPurpose222222222 || {});
                                    var CharacterStringEncoding222222222 = /* @__PURE__ */ ((CharacterStringEncoding2222222222) => {
                                      CharacterStringEncoding2222222222[CharacterStringEncoding2222222222["UTF_8"] = 0] = "UTF_8";
                                      CharacterStringEncoding2222222222[CharacterStringEncoding2222222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                                      CharacterStringEncoding2222222222[CharacterStringEncoding2222222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                                      CharacterStringEncoding2222222222[CharacterStringEncoding2222222222["UCS_4"] = 3] = "UCS_4";
                                      CharacterStringEncoding2222222222[CharacterStringEncoding2222222222["UCS_2"] = 4] = "UCS_2";
                                      CharacterStringEncoding2222222222[CharacterStringEncoding2222222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                                      return CharacterStringEncoding2222222222;
                                    })(CharacterStringEncoding222222222 || {});
                                    var CovType222222222 = /* @__PURE__ */ ((CovType2222222222) => {
                                      CovType2222222222[CovType2222222222["REAL"] = 0] = "REAL";
                                      CovType2222222222[CovType2222222222["BIT_STRING"] = 1] = "BIT_STRING";
                                      return CovType2222222222;
                                    })(CovType222222222 || {});
                                    var EnableDisable222222222 = /* @__PURE__ */ ((EnableDisable2222222222) => {
                                      EnableDisable2222222222[EnableDisable2222222222["ENABLE"] = 0] = "ENABLE";
                                      EnableDisable2222222222[EnableDisable2222222222["DISABLE"] = 1] = "DISABLE";
                                      EnableDisable2222222222[EnableDisable2222222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                                      return EnableDisable2222222222;
                                    })(EnableDisable222222222 || {});
                                    var MaxApduLengthAccepted222222222 = /* @__PURE__ */ ((MaxApduLengthAccepted2222222222) => {
                                      MaxApduLengthAccepted2222222222[MaxApduLengthAccepted2222222222["OCTETS_50"] = 0] = "OCTETS_50";
                                      MaxApduLengthAccepted2222222222[MaxApduLengthAccepted2222222222["OCTETS_128"] = 1] = "OCTETS_128";
                                      MaxApduLengthAccepted2222222222[MaxApduLengthAccepted2222222222["OCTETS_206"] = 2] = "OCTETS_206";
                                      MaxApduLengthAccepted2222222222[MaxApduLengthAccepted2222222222["OCTETS_480"] = 3] = "OCTETS_480";
                                      MaxApduLengthAccepted2222222222[MaxApduLengthAccepted2222222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                                      MaxApduLengthAccepted2222222222[MaxApduLengthAccepted2222222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                                      return MaxApduLengthAccepted2222222222;
                                    })(MaxApduLengthAccepted222222222 || {});
                                    var MaxSegmentsAccepted222222222 = /* @__PURE__ */ ((MaxSegmentsAccepted2222222222) => {
                                      MaxSegmentsAccepted2222222222[MaxSegmentsAccepted2222222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                                      MaxSegmentsAccepted2222222222[MaxSegmentsAccepted2222222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                                      MaxSegmentsAccepted2222222222[MaxSegmentsAccepted2222222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                                      MaxSegmentsAccepted2222222222[MaxSegmentsAccepted2222222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                                      MaxSegmentsAccepted2222222222[MaxSegmentsAccepted2222222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                                      MaxSegmentsAccepted2222222222[MaxSegmentsAccepted2222222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                                      MaxSegmentsAccepted2222222222[MaxSegmentsAccepted2222222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                                      MaxSegmentsAccepted2222222222[MaxSegmentsAccepted2222222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                                      return MaxSegmentsAccepted2222222222;
                                    })(MaxSegmentsAccepted222222222 || {});
                                    var NetworkLayerMessageType222222222 = /* @__PURE__ */ ((NetworkLayerMessageType2222222222) => {
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                                      NetworkLayerMessageType2222222222[NetworkLayerMessageType2222222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                                      return NetworkLayerMessageType2222222222;
                                    })(NetworkLayerMessageType222222222 || {});
                                    var NpduControlBit222222222 = /* @__PURE__ */ ((NpduControlBit2222222222) => {
                                      NpduControlBit2222222222[NpduControlBit2222222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                                      NpduControlBit2222222222[NpduControlBit2222222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                                      NpduControlBit2222222222[NpduControlBit2222222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                                      NpduControlBit2222222222[NpduControlBit2222222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                                      return NpduControlBit2222222222;
                                    })(NpduControlBit222222222 || {});
                                    var NpduControlPriority222222222 = /* @__PURE__ */ ((NpduControlPriority2222222222) => {
                                      NpduControlPriority2222222222[NpduControlPriority2222222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                                      NpduControlPriority2222222222[NpduControlPriority2222222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                                      NpduControlPriority2222222222[NpduControlPriority2222222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                                      NpduControlPriority2222222222[NpduControlPriority2222222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                                      return NpduControlPriority2222222222;
                                    })(NpduControlPriority222222222 || {});
                                    var PduConReqBit222222222 = /* @__PURE__ */ ((PduConReqBit2222222222) => {
                                      PduConReqBit2222222222[PduConReqBit2222222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                                      PduConReqBit2222222222[PduConReqBit2222222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                                      PduConReqBit2222222222[PduConReqBit2222222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                                      return PduConReqBit2222222222;
                                    })(PduConReqBit222222222 || {});
                                    var PduSegAckBit222222222 = /* @__PURE__ */ ((PduSegAckBit2222222222) => {
                                      PduSegAckBit2222222222[PduSegAckBit2222222222["SERVER"] = 1] = "SERVER";
                                      PduSegAckBit2222222222[PduSegAckBit2222222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                                      return PduSegAckBit2222222222;
                                    })(PduSegAckBit222222222 || {});
                                    var PduType222222222 = /* @__PURE__ */ ((PduType2222222222) => {
                                      PduType2222222222[PduType2222222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                                      PduType2222222222[PduType2222222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                                      PduType2222222222[PduType2222222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                                      PduType2222222222[PduType2222222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                                      PduType2222222222[PduType2222222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                                      PduType2222222222[PduType2222222222["ERROR"] = 80] = "ERROR";
                                      PduType2222222222[PduType2222222222["REJECT"] = 96] = "REJECT";
                                      PduType2222222222[PduType2222222222["ABORT"] = 112] = "ABORT";
                                      return PduType2222222222;
                                    })(PduType222222222 || {});
                                    var PropertyStates222222222 = /* @__PURE__ */ ((PropertyStates2222222222) => {
                                      PropertyStates2222222222[PropertyStates2222222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                                      PropertyStates2222222222[PropertyStates2222222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                                      PropertyStates2222222222[PropertyStates2222222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                                      PropertyStates2222222222[PropertyStates2222222222["POLARITY"] = 3] = "POLARITY";
                                      PropertyStates2222222222[PropertyStates2222222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                                      PropertyStates2222222222[PropertyStates2222222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                                      PropertyStates2222222222[PropertyStates2222222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                                      PropertyStates2222222222[PropertyStates2222222222["RELIABILITY"] = 7] = "RELIABILITY";
                                      PropertyStates2222222222[PropertyStates2222222222["STATE"] = 8] = "STATE";
                                      PropertyStates2222222222[PropertyStates2222222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                                      PropertyStates2222222222[PropertyStates2222222222["UNITS"] = 10] = "UNITS";
                                      PropertyStates2222222222[PropertyStates2222222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                                      PropertyStates2222222222[PropertyStates2222222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                                      PropertyStates2222222222[PropertyStates2222222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                                      PropertyStates2222222222[PropertyStates2222222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                                      PropertyStates2222222222[PropertyStates2222222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                                      PropertyStates2222222222[PropertyStates2222222222["ACTION"] = 16] = "ACTION";
                                      PropertyStates2222222222[PropertyStates2222222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                                      PropertyStates2222222222[PropertyStates2222222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                                      PropertyStates2222222222[PropertyStates2222222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                                      PropertyStates2222222222[PropertyStates2222222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                                      PropertyStates2222222222[PropertyStates2222222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                                      PropertyStates2222222222[PropertyStates2222222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                                      PropertyStates2222222222[PropertyStates2222222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                                      PropertyStates2222222222[PropertyStates2222222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                                      PropertyStates2222222222[PropertyStates2222222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                                      PropertyStates2222222222[PropertyStates2222222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                                      PropertyStates2222222222[PropertyStates2222222222["SHED_STATE"] = 27] = "SHED_STATE";
                                      PropertyStates2222222222[PropertyStates2222222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                                      PropertyStates2222222222[PropertyStates2222222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                                      PropertyStates2222222222[PropertyStates2222222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                                      PropertyStates2222222222[PropertyStates2222222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                                      PropertyStates2222222222[PropertyStates2222222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                                      PropertyStates2222222222[PropertyStates2222222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                                      PropertyStates2222222222[PropertyStates2222222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                                      PropertyStates2222222222[PropertyStates2222222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                                      PropertyStates2222222222[PropertyStates2222222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                                      PropertyStates2222222222[PropertyStates2222222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                                      PropertyStates2222222222[PropertyStates2222222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                                      PropertyStates2222222222[PropertyStates2222222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                                      PropertyStates2222222222[PropertyStates2222222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                                      PropertyStates2222222222[PropertyStates2222222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                                      PropertyStates2222222222[PropertyStates2222222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                                      PropertyStates2222222222[PropertyStates2222222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                                      PropertyStates2222222222[PropertyStates2222222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                                      PropertyStates2222222222[PropertyStates2222222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                                      PropertyStates2222222222[PropertyStates2222222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                                      PropertyStates2222222222[PropertyStates2222222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                                      PropertyStates2222222222[PropertyStates2222222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                                      PropertyStates2222222222[PropertyStates2222222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                                      PropertyStates2222222222[PropertyStates2222222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                                      PropertyStates2222222222[PropertyStates2222222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                                      PropertyStates2222222222[PropertyStates2222222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                                      PropertyStates2222222222[PropertyStates2222222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                                      PropertyStates2222222222[PropertyStates2222222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                                      PropertyStates2222222222[PropertyStates2222222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                                      PropertyStates2222222222[PropertyStates2222222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                                      PropertyStates2222222222[PropertyStates2222222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                                      return PropertyStates2222222222;
                                    })(PropertyStates222222222 || {});
                                    var ReadRangeType222222222 = /* @__PURE__ */ ((ReadRangeType2222222222) => {
                                      ReadRangeType2222222222[ReadRangeType2222222222["BY_POSITION"] = 0] = "BY_POSITION";
                                      ReadRangeType2222222222[ReadRangeType2222222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                                      ReadRangeType2222222222[ReadRangeType2222222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                                      return ReadRangeType2222222222;
                                    })(ReadRangeType222222222 || {});
                                    var ReinitializedState222222222 = /* @__PURE__ */ ((ReinitializedState2222222222) => {
                                      ReinitializedState2222222222[ReinitializedState2222222222["COLDSTART"] = 0] = "COLDSTART";
                                      ReinitializedState2222222222[ReinitializedState2222222222["WARMSTART"] = 1] = "WARMSTART";
                                      ReinitializedState2222222222[ReinitializedState2222222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                                      ReinitializedState2222222222[ReinitializedState2222222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                                      ReinitializedState2222222222[ReinitializedState2222222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                                      ReinitializedState2222222222[ReinitializedState2222222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                                      ReinitializedState2222222222[ReinitializedState2222222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                                      ReinitializedState2222222222[ReinitializedState2222222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                                      return ReinitializedState2222222222;
                                    })(ReinitializedState222222222 || {});
                                    var TimeStamp222222222 = /* @__PURE__ */ ((TimeStamp2222222222) => {
                                      TimeStamp2222222222[TimeStamp2222222222["TIME"] = 0] = "TIME";
                                      TimeStamp2222222222[TimeStamp2222222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                                      TimeStamp2222222222[TimeStamp2222222222["DATETIME"] = 2] = "DATETIME";
                                      return TimeStamp2222222222;
                                    })(TimeStamp222222222 || {});
                                    var import_events2222222222 = __toESM222222222(require("events"));
                                    var import_debug3222222222 = __toESM222222222(require("debug"));
                                    var import_dgram222222222 = require("dgram");
                                    var import_events322222222 = __toESM222222222(require("events"));
                                    var import_debug2222222222 = __toESM222222222(require("debug"));
                                    var EventEmitter322222222 = import_events322222222.default.EventEmitter;
                                    var debug2222222222 = (0, import_debug2222222222.default)("bacnet:client:debug");
                                    var DEFAULT_BACNET_PORT322222222 = 47808;
                                    var Transport222222222 = class extends EventEmitter322222222 {
                                      constructor(settings) {
                                        super();
                                        this._lastSendMessages = {};
                                        this._settings = settings;
                                        this._server = (0, import_dgram222222222.createSocket)({
                                          type: "udp4",
                                          reuseAddr: settings.reuseAddr
                                        });
                                        this._server.on("message", (msg, rinfo) => {
                                          if (this.ownAddress.port === rinfo.port) {
                                            for (let [messageKey, earlierSentBuffer] of Object.entries(
                                              this._lastSendMessages
                                            )) {
                                              if (msg.equals(earlierSentBuffer)) {
                                                debug2222222222(
                                                  `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                                );
                                                return;
                                              }
                                            }
                                          }
                                          debug2222222222(
                                            `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                              "hex"
                                            )}`
                                          );
                                          this.emit(
                                            "message",
                                            msg,
                                            rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT322222222 ? "" : ":" + rinfo.port)
                                          );
                                        });
                                        this._server.on("listening", () => {
                                          this.ownAddress = this._server.address();
                                          debug2222222222(
                                            `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                                          );
                                          this.emit("listening", this.ownAddress);
                                        });
                                        this._server.on("error", (err) => {
                                          debug2222222222("transport error", err.message);
                                          this.emit("error", err);
                                        });
                                        this._server.on("close", () => {
                                          debug2222222222("transport closed");
                                          this.emit("close");
                                        });
                                      }
                                      getBroadcastAddress() {
                                        return this._settings.broadcastAddress;
                                      }
                                      getMaxPayload() {
                                        return 1482;
                                      }
                                      send(buffer, offset, receiver) {
                                        if (!receiver) {
                                          receiver = this.getBroadcastAddress();
                                          const dataToSend = Buffer.alloc(offset);
                                          const hrTime = process.hrtime();
                                          const messageKey = hrTime[0] * 1e9 + hrTime[1];
                                          buffer.copy(dataToSend, 0, 0, offset);
                                          this._lastSendMessages[messageKey] = dataToSend;
                                          setTimeout(() => {
                                            delete this._lastSendMessages[messageKey];
                                          }, 1e4);
                                        }
                                        const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                                        const [address, port] = receiverAddress.split(":");
                                        debug2222222222(
                                          "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                                        );
                                        this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT322222222, address);
                                      }
                                      open() {
                                        this._server.bind(this._settings.port, this._settings.interface, () => {
                                          this._server.setBroadcast(true);
                                        });
                                      }
                                      close() {
                                        this._server.close();
                                      }
                                    };
                                    var services_exports222222222 = {};
                                    __export222222222(services_exports222222222, {
                                      addListElement: () => add_list_element_exports222222222,
                                      alarmAcknowledge: () => alarm_acknowledge_exports222222222,
                                      alarmSummary: () => alarm_summary_exports222222222,
                                      atomicReadFile: () => atomic_read_file_exports222222222,
                                      atomicWriteFile: () => atomic_write_file_exports222222222,
                                      covNotify: () => cov_notify_exports222222222,
                                      covNotifyUnconfirmed: () => cov_notify_exports222222222,
                                      createObject: () => create_object_exports222222222,
                                      deleteObject: () => delete_object_exports222222222,
                                      deviceCommunicationControl: () => device_communication_control_exports222222222,
                                      error: () => error_exports222222222,
                                      eventInformation: () => event_information_exports222222222,
                                      eventNotifyData: () => event_notify_data_exports222222222,
                                      getEnrollmentSummary: () => get_enrollment_summary_exports222222222,
                                      getEventInformation: () => get_event_information_exports222222222,
                                      iAm: () => i_am_exports222222222,
                                      iHave: () => i_have_exports222222222,
                                      lifeSafetyOperation: () => life_safety_operation_exports222222222,
                                      privateTransfer: () => private_transfer_exports222222222,
                                      readProperty: () => read_property_exports222222222,
                                      readPropertyMultiple: () => read_property_multiple_exports222222222,
                                      readRange: () => read_range_exports222222222,
                                      registerForeignDevice: () => register_foreign_device_exports222222222,
                                      reinitializeDevice: () => reinitialize_device_exports222222222,
                                      subscribeCov: () => subscribe_cov_exports222222222,
                                      subscribeProperty: () => subscribe_property_exports222222222,
                                      timeSync: () => time_sync_exports222222222,
                                      timeSyncUTC: () => time_sync_exports222222222,
                                      whoHas: () => who_has_exports222222222,
                                      whoIs: () => who_is_exports222222222,
                                      writeProperty: () => write_property_exports222222222,
                                      writePropertyMultiple: () => write_property_multiple_exports222222222
                                    });
                                    var add_list_element_exports222222222 = {};
                                    __export222222222(add_list_element_exports222222222, {
                                      decode: () => decode3322222222,
                                      encode: () => encode3322222222
                                    });
                                    var import_iconv_lite222222222 = __toESM222222222(require("iconv-lite"));
                                    var enums_default222222222 = enum_exports222222222;
                                    var START_YEAR222222222 = 1900;
                                    var MAX_YEARS222222222 = 256;
                                    var getBuffer222222222 = () => {
                                      return {
                                        buffer: Buffer.alloc(1472),
                                        offset: 0
                                      };
                                    };
                                    var getSignedLength222222222 = (value) => {
                                      if (value >= -128 && value < 128)
                                        return 1;
                                      else if (value >= -32768 && value < 32768)
                                        return 2;
                                      else if (value > -8388608 && value < 8388608)
                                        return 3;
                                      else
                                        return 4;
                                    };
                                    var getUnsignedLength222222222 = (value) => {
                                      if (value < 256)
                                        return 1;
                                      else if (value < 65536)
                                        return 2;
                                      else if (value < 16777216)
                                        return 3;
                                      else
                                        return 4;
                                    };
                                    var getEncodingType222222222 = (encoding, decodingBuffer, decodingOffset) => {
                                      switch (encoding) {
                                        case enums_default222222222.CharacterStringEncoding.UCS_2:
                                          if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                            return "ucs2";
                                          }
                                          return "UTF-16BE";
                                        case enums_default222222222.CharacterStringEncoding.ISO_8859_1:
                                          return "latin1";
                                        case enums_default222222222.CharacterStringEncoding.MICROSOFT_DBCS:
                                          return "cp850";
                                        case enums_default222222222.CharacterStringEncoding.JIS_X_0208:
                                          return "Shift_JIS";
                                        default:
                                          return "utf8";
                                      }
                                    };
                                    var encodeUnsigned222222222 = (buffer, value, length) => {
                                      buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                                      buffer.offset += length;
                                    };
                                    var encodeBacnetUnsigned222222222 = (buffer, value) => {
                                      encodeUnsigned222222222(buffer, value, getUnsignedLength222222222(value));
                                    };
                                    var encodeSigned222222222 = (buffer, value, length) => {
                                      buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                                      buffer.offset += length;
                                    };
                                    var encodeBacnetSigned222222222 = (buffer, value) => {
                                      encodeSigned222222222(buffer, value, getSignedLength222222222(value));
                                    };
                                    var encodeBacnetReal222222222 = (buffer, value) => {
                                      buffer.buffer.writeFloatBE(value, buffer.offset, true);
                                      buffer.offset += 4;
                                    };
                                    var encodeBacnetDouble222222222 = (buffer, value) => {
                                      buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                                      buffer.offset += 8;
                                    };
                                    var decodeUnsigned222222222 = (buffer, offset, length) => {
                                      if (length === 0) {
                                        return {
                                          len: 0,
                                          value: 0
                                        };
                                      }
                                      return {
                                        len: length,
                                        //@ts-ignore
                                        value: buffer.readUIntBE(offset, length)
                                      };
                                    };
                                    var decodeEnumerated222222222 = (buffer, offset, length) => {
                                      return decodeUnsigned222222222(buffer, offset, length);
                                    };
                                    var encodeBacnetObjectId222222222 = (buffer, objectType, instance) => {
                                      const value = ((objectType & enums_default222222222.ASN1_MAX_OBJECT) << enums_default222222222.ASN1_INSTANCE_BITS | instance & enums_default222222222.ASN1_MAX_INSTANCE) >>> 0;
                                      encodeUnsigned222222222(buffer, value, 4);
                                    };
                                    var encodeTag222222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                                      let len = 1;
                                      const tmp = new Array(3);
                                      tmp[0] = 0;
                                      if (contextSpecific) {
                                        tmp[0] |= 8;
                                      }
                                      if (tagNumber <= 14) {
                                        tmp[0] |= tagNumber << 4;
                                      } else {
                                        tmp[0] |= 240;
                                        tmp[1] = tagNumber;
                                        len++;
                                      }
                                      if (lenValueType <= 4) {
                                        tmp[0] |= lenValueType;
                                        Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                        buffer.offset += len;
                                      } else {
                                        tmp[0] |= 5;
                                        if (lenValueType <= 253) {
                                          tmp[len++] = lenValueType;
                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                          buffer.offset += len;
                                        } else if (lenValueType <= 65535) {
                                          tmp[len++] = 254;
                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                          buffer.offset += len;
                                          encodeUnsigned222222222(buffer, lenValueType, 2);
                                        } else {
                                          tmp[len++] = 255;
                                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                          buffer.offset += len;
                                          encodeUnsigned222222222(buffer, lenValueType, 4);
                                        }
                                      }
                                    };
                                    var encodeBacnetEnumerated222222222 = (buffer, value) => {
                                      encodeBacnetUnsigned222222222(buffer, value);
                                    };
                                    var isExtendedTagNumber222222222 = (x) => {
                                      return (x & 240) === 240;
                                    };
                                    var isExtendedValue222222222 = (x) => {
                                      return (x & 7) === 5;
                                    };
                                    var isContextSpecific222222222 = (x) => {
                                      return (x & 8) === 8;
                                    };
                                    var isOpeningTag222222222 = (x) => {
                                      return (x & 7) === 6;
                                    };
                                    var isClosingTag222222222 = (x) => {
                                      return (x & 7) === 7;
                                    };
                                    var encodeContextReal222222222 = (buffer, tagNumber, value) => {
                                      encodeTag222222222(buffer, tagNumber, true, 4);
                                      encodeBacnetReal222222222(buffer, value);
                                    };
                                    var encodeContextUnsigned222222222 = (buffer, tagNumber, value) => {
                                      encodeTag222222222(buffer, tagNumber, true, getUnsignedLength222222222(value));
                                      encodeBacnetUnsigned222222222(buffer, value);
                                    };
                                    var encodeContextEnumerated222222222 = (buffer, tagNumber, value) => {
                                      encodeContextUnsigned222222222(buffer, tagNumber, value);
                                    };
                                    var encodeOctetString222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                      if (octetString) {
                                        for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                                          buffer.buffer[buffer.offset++] = octetString[i];
                                        }
                                      }
                                    };
                                    var encodeApplicationOctetString222222222 = (buffer, octetString, octetOffset, octetCount) => {
                                      encodeTag222222222(buffer, enums_default222222222.ApplicationTag.OCTET_STRING, false, octetCount);
                                      encodeOctetString222222222(buffer, octetString, octetOffset, octetCount);
                                    };
                                    var encodeApplicationNull222222222 = (buffer) => {
                                      buffer.buffer[buffer.offset++] = enums_default222222222.ApplicationTag.NULL;
                                    };
                                    var encodeApplicationBoolean222222222 = (buffer, booleanValue) => {
                                      encodeTag222222222(buffer, enums_default222222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                                    };
                                    var encodeApplicationReal222222222 = (buffer, value) => {
                                      encodeTag222222222(buffer, enums_default222222222.ApplicationTag.REAL, false, 4);
                                      encodeBacnetReal222222222(buffer, value);
                                    };
                                    var encodeApplicationDouble222222222 = (buffer, value) => {
                                      encodeTag222222222(buffer, enums_default222222222.ApplicationTag.DOUBLE, false, 8);
                                      encodeBacnetDouble222222222(buffer, value);
                                    };
                                    var bitstringBytesUsed222222222 = (bitString) => {
                                      let len = 0;
                                      if (bitString.bitsUsed > 0) {
                                        const lastBit = bitString.bitsUsed - 1;
                                        const usedBytes = lastBit / 8 + 1;
                                        len = Math.floor(usedBytes);
                                      }
                                      return len;
                                    };
                                    var encodeApplicationObjectId222222222 = (buffer, objectType, instance) => {
                                      const tmp = getBuffer222222222();
                                      encodeBacnetObjectId222222222(tmp, objectType, instance);
                                      encodeTag222222222(buffer, enums_default222222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                      buffer.offset += tmp.offset;
                                    };
                                    var encodeApplicationUnsigned222222222 = (buffer, value) => {
                                      const tmp = getBuffer222222222();
                                      encodeBacnetUnsigned222222222(tmp, value);
                                      encodeTag222222222(buffer, enums_default222222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                      buffer.offset += tmp.offset;
                                    };
                                    var encodeApplicationEnumerated222222222 = (buffer, value) => {
                                      const tmp = getBuffer222222222();
                                      encodeBacnetEnumerated222222222(tmp, value);
                                      encodeTag222222222(buffer, enums_default222222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                      buffer.offset += tmp.offset;
                                    };
                                    var encodeApplicationSigned222222222 = (buffer, value) => {
                                      const tmp = getBuffer222222222();
                                      encodeBacnetSigned222222222(tmp, value);
                                      encodeTag222222222(buffer, enums_default222222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                      buffer.offset += tmp.offset;
                                    };
                                    var byteReverseBits222222222 = (inByte) => {
                                      let outByte = 0;
                                      if ((inByte & 1) > 0) {
                                        outByte |= 128;
                                      }
                                      if ((inByte & 2) > 0) {
                                        outByte |= 64;
                                      }
                                      if ((inByte & 4) > 0) {
                                        outByte |= 32;
                                      }
                                      if ((inByte & 8) > 0) {
                                        outByte |= 16;
                                      }
                                      if ((inByte & 16) > 0) {
                                        outByte |= 8;
                                      }
                                      if ((inByte & 32) > 0) {
                                        outByte |= 4;
                                      }
                                      if ((inByte & 64) > 0) {
                                        outByte |= 2;
                                      }
                                      if ((inByte & 128) > 0) {
                                        outByte |= 1;
                                      }
                                      return outByte;
                                    };
                                    var bitstringOctet222222222 = (bitString, octetIndex) => {
                                      let octet = 0;
                                      if (bitString.value && octetIndex < enums_default222222222.ASN1_MAX_BITSTRING_BYTES) {
                                        octet = bitString.value[octetIndex];
                                      }
                                      return octet;
                                    };
                                    var encodeBitstring222222222 = (buffer, bitString) => {
                                      if (bitString.bitsUsed === 0) {
                                        buffer.buffer[buffer.offset++] = 0;
                                      } else {
                                        const usedBytes = bitstringBytesUsed222222222(bitString);
                                        const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                                        buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                                        for (let i = 0; i < usedBytes; i++) {
                                          buffer.buffer[buffer.offset++] = byteReverseBits222222222(
                                            bitstringOctet222222222(bitString, i)
                                          );
                                        }
                                      }
                                    };
                                    var encodeApplicationBitstring222222222 = (buffer, bitString) => {
                                      let bitStringEncodedLength = 1;
                                      bitStringEncodedLength += bitstringBytesUsed222222222(bitString);
                                      encodeTag222222222(
                                        buffer,
                                        enums_default222222222.ApplicationTag.BIT_STRING,
                                        false,
                                        bitStringEncodedLength
                                      );
                                      encodeBitstring222222222(buffer, bitString);
                                    };
                                    var encodeBacnetDate222222222 = (buffer, value) => {
                                      if (value === new Date(1, 1, 1)) {
                                        buffer.buffer[buffer.offset++] = 255;
                                        buffer.buffer[buffer.offset++] = 255;
                                        buffer.buffer[buffer.offset++] = 255;
                                        buffer.buffer[buffer.offset++] = 255;
                                        return;
                                      }
                                      if (value.getFullYear() >= START_YEAR222222222) {
                                        buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR222222222;
                                      } else if (value.getFullYear() < MAX_YEARS222222222) {
                                        buffer.buffer[buffer.offset++] = value.getFullYear();
                                      } else {
                                        throw new Error("invaide year: " + value.getFullYear());
                                      }
                                      buffer.buffer[buffer.offset++] = value.getMonth();
                                      buffer.buffer[buffer.offset++] = value.getDate();
                                      buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                                    };
                                    var encodeApplicationDate222222222 = (buffer, value) => {
                                      encodeTag222222222(buffer, enums_default222222222.ApplicationTag.DATE, false, 4);
                                      encodeBacnetDate222222222(buffer, value);
                                    };
                                    var encodeBacnetTime222222222 = (buffer, value) => {
                                      buffer.buffer[buffer.offset++] = value.getHours();
                                      buffer.buffer[buffer.offset++] = value.getMinutes();
                                      buffer.buffer[buffer.offset++] = value.getSeconds();
                                      buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                                    };
                                    var encodeApplicationTime222222222 = (buffer, value) => {
                                      encodeTag222222222(buffer, enums_default222222222.ApplicationTag.TIME, false, 4);
                                      encodeBacnetTime222222222(buffer, value);
                                    };
                                    var bacappEncodeDatetime222222222 = (buffer, value) => {
                                      if (value !== new Date(1, 1, 1)) {
                                        encodeApplicationDate222222222(buffer, value);
                                        encodeApplicationTime222222222(buffer, value);
                                      }
                                    };
                                    var encodeContextObjectId222222222 = (buffer, tagNumber, objectType, instance) => {
                                      encodeTag222222222(buffer, tagNumber, true, 4);
                                      encodeBacnetObjectId222222222(buffer, objectType, instance);
                                    };
                                    var encodeOpeningTag222222222 = (buffer, tagNumber) => {
                                      let len = 1;
                                      const tmp = new Array(2);
                                      tmp[0] = 8;
                                      if (tagNumber <= 14) {
                                        tmp[0] |= tagNumber << 4;
                                      } else {
                                        tmp[0] |= 240;
                                        tmp[1] = tagNumber;
                                        len++;
                                      }
                                      tmp[0] |= 6;
                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                      buffer.offset += len;
                                    };
                                    var encodeClosingTag222222222 = (buffer, tagNumber) => {
                                      let len = 1;
                                      const tmp = new Array(2);
                                      tmp[0] = 8;
                                      if (tagNumber <= 14) {
                                        tmp[0] |= tagNumber << 4;
                                      } else {
                                        tmp[0] |= 240;
                                        tmp[1] = tagNumber;
                                        len++;
                                      }
                                      tmp[0] |= 7;
                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                      buffer.offset += len;
                                    };
                                    var encodeReadAccessSpecification222222222 = (buffer, value) => {
                                      encodeContextObjectId222222222(
                                        buffer,
                                        0,
                                        value.objectId.type,
                                        value.objectId.instance
                                      );
                                      encodeOpeningTag222222222(buffer, 1);
                                      value.properties.forEach((p) => {
                                        encodeContextEnumerated222222222(buffer, 0, p.id);
                                        if (p.index && p.index !== enums_default222222222.ASN1_ARRAY_ALL) {
                                          encodeContextUnsigned222222222(buffer, 1, p.index);
                                        }
                                      });
                                      encodeClosingTag222222222(buffer, 1);
                                    };
                                    var encodeContextBoolean222222222 = (buffer, tagNumber, booleanValue) => {
                                      encodeTag222222222(buffer, tagNumber, true, 1);
                                      buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                                      buffer.offset += 1;
                                    };
                                    var encodeCovSubscription222222222 = (buffer, value) => {
                                      encodeOpeningTag222222222(buffer, 0);
                                      encodeOpeningTag222222222(buffer, 0);
                                      encodeOpeningTag222222222(buffer, 1);
                                      encodeApplicationUnsigned222222222(buffer, value.recipient.network);
                                      if (value.recipient.network === 65535) {
                                        encodeApplicationOctetString222222222(buffer, 0, 0, 0);
                                      } else {
                                        encodeApplicationOctetString222222222(
                                          buffer,
                                          value.recipient.address,
                                          0,
                                          value.recipient.address.length
                                        );
                                      }
                                      encodeClosingTag222222222(buffer, 1);
                                      encodeClosingTag222222222(buffer, 0);
                                      encodeContextUnsigned222222222(buffer, 1, value.subscriptionProcessId);
                                      encodeClosingTag222222222(buffer, 0);
                                      encodeOpeningTag222222222(buffer, 1);
                                      encodeContextObjectId222222222(
                                        buffer,
                                        0,
                                        value.monitoredObjectId.type,
                                        value.monitoredObjectId.instance
                                      );
                                      encodeContextEnumerated222222222(buffer, 1, value.monitoredProperty.id);
                                      if (value.monitoredProperty.index !== enums_default222222222.ASN1_ARRAY_ALL) {
                                        encodeContextUnsigned222222222(buffer, 2, value.monitoredProperty.index);
                                      }
                                      encodeClosingTag222222222(buffer, 1);
                                      encodeContextBoolean222222222(buffer, 2, value.issueConfirmedNotifications);
                                      encodeContextUnsigned222222222(buffer, 3, value.timeRemaining);
                                      if (value.covIncrement > 0) {
                                        encodeContextReal222222222(buffer, 4, value.covIncrement);
                                      }
                                    };
                                    var bacappEncodeApplicationData222222222 = (buffer, value) => {
                                      if (value.value === null) {
                                        value.type = enums_default222222222.ApplicationTag.NULL;
                                      }
                                      switch (value.type) {
                                        case enums_default222222222.ApplicationTag.NULL:
                                          encodeApplicationNull222222222(buffer);
                                          break;
                                        case enums_default222222222.ApplicationTag.BOOLEAN:
                                          encodeApplicationBoolean222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.UNSIGNED_INTEGER:
                                          encodeApplicationUnsigned222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.SIGNED_INTEGER:
                                          encodeApplicationSigned222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.REAL:
                                          encodeApplicationReal222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.DOUBLE:
                                          encodeApplicationDouble222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.OCTET_STRING:
                                          encodeApplicationOctetString222222222(buffer, value.value, 0, value.value.length);
                                          break;
                                        case enums_default222222222.ApplicationTag.CHARACTER_STRING:
                                          encodeApplicationCharacterString222222222(buffer, value.value, value.encoding);
                                          break;
                                        case enums_default222222222.ApplicationTag.BIT_STRING:
                                          encodeApplicationBitstring222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.ENUMERATED:
                                          encodeApplicationEnumerated222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.DATE:
                                          encodeApplicationDate222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.TIME:
                                          encodeApplicationTime222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.TIMESTAMP:
                                          bacappEncodeTimestamp222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.DATETIME:
                                          bacappEncodeDatetime222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.OBJECTIDENTIFIER:
                                          encodeApplicationObjectId222222222(buffer, value.value.type, value.value.instance);
                                          break;
                                        case enums_default222222222.ApplicationTag.COV_SUBSCRIPTION:
                                          encodeCovSubscription222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.READ_ACCESS_RESULT:
                                          encodeReadAccessResult222222222(buffer, value.value);
                                          break;
                                        case enums_default222222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                          encodeReadAccessSpecification222222222(buffer, value.value);
                                          break;
                                        case void 0:
                                          throw new Error(
                                            "Cannot encode a value if the type has not been specified"
                                          );
                                        default:
                                          throw "No encode for ApplicationTag type: " + enums_default222222222.getEnumName(
                                            enums_default222222222.ApplicationTag,
                                            value.type
                                          );
                                      }
                                    };
                                    var bacappEncodeDeviceObjPropertyRef222222222 = (buffer, value) => {
                                      encodeContextObjectId222222222(
                                        buffer,
                                        0,
                                        value.objectId.type,
                                        value.objectId.instance
                                      );
                                      encodeContextEnumerated222222222(buffer, 1, value.id);
                                      if (value.arrayIndex !== enums_default222222222.ASN1_ARRAY_ALL) {
                                        encodeContextUnsigned222222222(buffer, 2, value.arrayIndex);
                                      }
                                      if (value.deviceIndentifier.type === enums_default222222222.ObjectType.DEVICE) {
                                        encodeContextObjectId222222222(
                                          buffer,
                                          3,
                                          value.deviceIndentifier.type,
                                          value.deviceIndentifier.instance
                                        );
                                      }
                                    };
                                    var bacappEncodeContextDeviceObjPropertyRef222222222 = (buffer, tagNumber, value) => {
                                      encodeOpeningTag222222222(buffer, tagNumber);
                                      bacappEncodeDeviceObjPropertyRef222222222(buffer, value);
                                      encodeClosingTag222222222(buffer, tagNumber);
                                    };
                                    var bacappEncodePropertyState222222222 = (buffer, value) => {
                                      switch (value.type) {
                                        case enums_default222222222.PropertyStates.BOOLEAN_VALUE:
                                          encodeContextBoolean222222222(buffer, 0, value.state === 1);
                                          break;
                                        case enums_default222222222.PropertyStates.BINARY_VALUE:
                                          encodeContextEnumerated222222222(buffer, 1, value.state);
                                          break;
                                        case enums_default222222222.PropertyStates.EVENT_TYPE:
                                          encodeContextEnumerated222222222(buffer, 2, value.state);
                                          break;
                                        case enums_default222222222.PropertyStates.POLARITY:
                                          encodeContextEnumerated222222222(buffer, 3, value.state);
                                          break;
                                        case enums_default222222222.PropertyStates.PROGRAM_CHANGE:
                                          encodeContextEnumerated222222222(buffer, 4, value.state);
                                          break;
                                        case enums_default222222222.PropertyStates.PROGRAM_STATE:
                                          encodeContextEnumerated222222222(buffer, 5, value.state);
                                          break;
                                        case enums_default222222222.PropertyStates.REASON_FOR_HALT:
                                          encodeContextEnumerated222222222(buffer, 6, value.state);
                                          break;
                                        case enums_default222222222.PropertyStates.RELIABILITY:
                                          encodeContextEnumerated222222222(buffer, 7, value.state);
                                          break;
                                        case enums_default222222222.PropertyStates.STATE:
                                          encodeContextEnumerated222222222(buffer, 8, value.state);
                                          break;
                                        case enums_default222222222.PropertyStates.SYSTEM_STATUS:
                                          encodeContextEnumerated222222222(buffer, 9, value.state);
                                          break;
                                        case enums_default222222222.PropertyStates.UNITS:
                                          encodeContextEnumerated222222222(buffer, 10, value.state);
                                          break;
                                        case enums_default222222222.PropertyStates.UNSIGNED_VALUE:
                                          encodeContextUnsigned222222222(buffer, 11, value.state);
                                          break;
                                        case enums_default222222222.PropertyStates.LIFE_SAFETY_MODE:
                                          encodeContextEnumerated222222222(buffer, 12, value.state);
                                          break;
                                        case enums_default222222222.PropertyStates.LIFE_SAFETY_STATE:
                                          encodeContextEnumerated222222222(buffer, 13, value.state);
                                          break;
                                        default:
                                          break;
                                      }
                                    };
                                    var encodeContextBitstring222222222 = (buffer, tagNumber, bitString) => {
                                      let bitStringEncodedLength = 1;
                                      bitStringEncodedLength += bitstringBytesUsed222222222(bitString);
                                      encodeTag222222222(buffer, tagNumber, true, bitStringEncodedLength);
                                      encodeBitstring222222222(buffer, bitString);
                                    };
                                    var encodeContextSigned222222222 = (buffer, tagNumber, value) => {
                                      encodeTag222222222(buffer, tagNumber, true, getSignedLength222222222(value));
                                      encodeBacnetSigned222222222(buffer, value);
                                    };
                                    var encodeContextTime222222222 = (buffer, tagNumber, value) => {
                                      encodeTag222222222(buffer, tagNumber, true, 4);
                                      encodeBacnetTime222222222(buffer, value);
                                    };
                                    var bacappEncodeContextDatetime222222222 = (buffer, tagNumber, value) => {
                                      if (value !== new Date(1, 1, 1)) {
                                        encodeOpeningTag222222222(buffer, tagNumber);
                                        bacappEncodeDatetime222222222(buffer, value);
                                        encodeClosingTag222222222(buffer, tagNumber);
                                      } else {
                                        throw new Error("wrong Datetime while bacapp encoding context");
                                      }
                                    };
                                    var decodeTagNumber222222222 = (buffer, offset) => {
                                      let len = 1;
                                      let tagNumber;
                                      if (isExtendedTagNumber222222222(buffer[offset])) {
                                        tagNumber = buffer[offset + 1];
                                        len++;
                                      } else {
                                        tagNumber = buffer[offset] >> 4;
                                      }
                                      return {
                                        len,
                                        tagNumber
                                      };
                                    };
                                    var decodeIsContextTag222222222 = (buffer, offset, tagNumber) => {
                                      const result = decodeTagNumber222222222(buffer, offset);
                                      return isContextSpecific222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                    };
                                    var decodeIsOpeningTagNumber222222222 = (buffer, offset, tagNumber) => {
                                      const result = decodeTagNumber222222222(buffer, offset);
                                      return isOpeningTag222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                    };
                                    var decodeIsClosingTagNumber222222222 = (buffer, offset, tagNumber) => {
                                      const result = decodeTagNumber222222222(buffer, offset);
                                      return isClosingTag222222222(buffer[offset]) && result.tagNumber === tagNumber;
                                    };
                                    var decodeIsClosingTag222222222 = (buffer, offset) => {
                                      return (buffer[offset] & 7) === 7;
                                    };
                                    var decodeIsOpeningTag222222222 = (buffer, offset) => {
                                      return (buffer[offset] & 7) === 6;
                                    };
                                    var decodeObjectId222222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                                      const result = decodeUnsigned222222222(buffer, offset, 4);
                                      const objectType = result.value >> enums_default222222222.ASN1_INSTANCE_BITS & enums_default222222222.ASN1_MAX_OBJECT;
                                      const instance = result.value & enums_default222222222.ASN1_MAX_INSTANCE;
                                      return {
                                        len: result.len,
                                        objectType,
                                        instance
                                      };
                                    };
                                    var decodeObjectIdSafe222222222 = (buffer, offset, lenValue) => {
                                      if (lenValue !== 4) {
                                        return {
                                          len: 0,
                                          objectType: 0,
                                          instance: 0
                                        };
                                      } else {
                                        return decodeObjectId222222222(buffer, offset);
                                      }
                                    };
                                    var decodeTagNumberAndValue222222222 = (buffer, offset) => {
                                      let value;
                                      let result = decodeTagNumber222222222(buffer, offset);
                                      let len = result.len;
                                      if (isExtendedValue222222222(buffer[offset])) {
                                        if (buffer[offset + len] === 255) {
                                          len++;
                                          result = decodeUnsigned222222222(buffer, offset + len, 4);
                                          len += result.len;
                                          value = result.value;
                                        } else if (buffer[offset + len] === 254) {
                                          len++;
                                          result = decodeUnsigned222222222(buffer, offset + len, 2);
                                          len += result.len;
                                          value = result.value;
                                        } else {
                                          value = buffer[offset + len];
                                          len++;
                                        }
                                      } else if (isOpeningTag222222222(buffer[offset])) {
                                        value = 0;
                                      } else if (isClosingTag222222222(buffer[offset])) {
                                        value = 0;
                                      } else {
                                        value = buffer[offset] & 7;
                                      }
                                      return {
                                        len,
                                        tagNumber: result.tagNumber,
                                        value
                                      };
                                    };
                                    var bacappDecodeApplicationData222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                      if (!isContextSpecific222222222(buffer[offset])) {
                                        let result = decodeTagNumberAndValue222222222(buffer, offset);
                                        if (result) {
                                          let len = result.len;
                                          result = bacappDecodeData222222222(
                                            buffer,
                                            offset + len,
                                            maxOffset,
                                            result.tagNumber,
                                            result.value
                                          );
                                          if (!result) {
                                            return void 0;
                                          }
                                          let resObj = {
                                            len: len + result.len,
                                            type: result.type,
                                            value: result.value
                                          };
                                          if (result.encoding !== void 0)
                                            resObj.encoding = result.encoding;
                                          return resObj;
                                        }
                                      } else {
                                        return bacappDecodeContextApplicationData222222222(
                                          buffer,
                                          offset,
                                          maxOffset,
                                          objectType,
                                          propertyId
                                        );
                                      }
                                    };
                                    var encodeReadAccessResult222222222 = (buffer, value) => {
                                      encodeContextObjectId222222222(
                                        buffer,
                                        0,
                                        value.objectId.type,
                                        value.objectId.instance
                                      );
                                      encodeOpeningTag222222222(buffer, 1);
                                      value.values.forEach((item) => {
                                        encodeContextEnumerated222222222(buffer, 2, item.property.id);
                                        if (item.property.index !== enums_default222222222.ASN1_ARRAY_ALL) {
                                          encodeContextUnsigned222222222(buffer, 3, item.property.index);
                                        }
                                        if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                                          encodeOpeningTag222222222(buffer, 5);
                                          encodeApplicationEnumerated222222222(buffer, item.value[0].value.errorClass);
                                          encodeApplicationEnumerated222222222(buffer, item.value[0].value.errorCode);
                                          encodeClosingTag222222222(buffer, 5);
                                        } else {
                                          if (!item.value)
                                            throw new Error("No value in item");
                                          encodeOpeningTag222222222(buffer, 4);
                                          item.value.forEach((subItem) => {
                                            bacappEncodeApplicationData222222222(buffer, subItem);
                                          });
                                          encodeClosingTag222222222(buffer, 4);
                                        }
                                      });
                                      encodeClosingTag222222222(buffer, 1);
                                    };
                                    var decodeReadAccessResult222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let value = {};
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      let result = decodeObjectId222222222(buffer, offset + len);
                                      value.objectId = {
                                        type: result.objectType,
                                        instance: result.instance
                                      };
                                      len += result.len;
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 1)) {
                                        return -1;
                                      }
                                      len++;
                                      const values = [];
                                      while (apduLen - len > 0) {
                                        let newEntry = {};
                                        if (decodeIsClosingTagNumber222222222(buffer, offset + len, 1)) {
                                          len++;
                                          break;
                                        }
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 2) {
                                          return void 0;
                                        }
                                        result = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        newEntry.id = result.value;
                                        len += result.len;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        if (result.tagNumber === 3) {
                                          len += result.len;
                                          result = decodeUnsigned222222222(buffer, offset + len, result.value);
                                          newEntry.index = result.value;
                                          len += result.len;
                                        } else {
                                          newEntry.index = enums_default222222222.ASN1_ARRAY_ALL;
                                        }
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber === 4) {
                                          const localValues = [];
                                          while (len + offset <= buffer.length && !decodeIsClosingTagNumber222222222(buffer, offset + len, 4)) {
                                            let localResult = bacappDecodeApplicationData222222222(
                                              buffer,
                                              offset + len,
                                              apduLen + offset - 1,
                                              value.objectId.type,
                                              newEntry.id
                                            );
                                            if (!localResult) {
                                              return void 0;
                                            }
                                            len += localResult.len;
                                            let resObj = {
                                              value: localResult.value,
                                              type: localResult.type
                                            };
                                            if (localResult.encoding !== void 0)
                                              resObj.encoding = localResult.encoding;
                                            localValues.push(resObj);
                                          }
                                          if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 4)) {
                                            return void 0;
                                          }
                                          if (localValues.count === 2 && localValues[0].type === enums_default222222222.ApplicationTag.DATE && localValues[1].type === enums_default222222222.ApplicationTag.TIME) {
                                            const date = localValues[0].value;
                                            const time = localValues[1].value;
                                            const bdatetime = new Date(
                                              date.year,
                                              date.month,
                                              date.day,
                                              time.hour,
                                              time.minute,
                                              time.second,
                                              time.millisecond
                                            );
                                            newEntry.value = [
                                              { type: enums_default222222222.ApplicationTag.DATETIME, value: bdatetime }
                                            ];
                                          } else {
                                            newEntry.value = localValues;
                                          }
                                          len++;
                                        } else if (result.tagNumber === 5) {
                                          let err = {};
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                          result = decodeEnumerated222222222(buffer, offset + len, result.value);
                                          len += result.len;
                                          err.errorClass = result.value;
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                          result = decodeEnumerated222222222(buffer, offset + len, result.value);
                                          len += result.len;
                                          err.errorCode = result.value;
                                          if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 5)) {
                                            return void 0;
                                          }
                                          len++;
                                          newEntry.value = [
                                            {
                                              type: enums_default222222222.ApplicationTag.ERROR,
                                              value: err
                                            }
                                          ];
                                        }
                                        values.push(newEntry);
                                      }
                                      value.values = values;
                                      return {
                                        len,
                                        value
                                      };
                                    };
                                    var decodeSigned222222222 = (buffer, offset, length) => {
                                      return {
                                        len: length,
                                        value: buffer.readIntBE(offset, length, true)
                                      };
                                    };
                                    var decodeReal222222222 = (buffer, offset) => {
                                      return {
                                        len: 4,
                                        value: buffer.readFloatBE(offset, true)
                                      };
                                    };
                                    var decodeRealSafe222222222 = (buffer, offset, lenValue) => {
                                      if (lenValue !== 4) {
                                        return {
                                          len: lenValue,
                                          value: 0
                                        };
                                      } else {
                                        return decodeReal222222222(buffer, offset);
                                      }
                                    };
                                    var decodeDouble222222222 = (buffer, offset) => {
                                      return {
                                        len: 8,
                                        value: buffer.readDoubleBE(offset, true)
                                      };
                                    };
                                    var decodeDoubleSafe222222222 = (buffer, offset, lenValue) => {
                                      if (lenValue !== 8) {
                                        return {
                                          len: lenValue,
                                          value: 0
                                        };
                                      } else {
                                        return decodeDouble222222222(buffer, offset);
                                      }
                                    };
                                    var decodeOctetString222222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                                      const octetString = [];
                                      for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                                        octetString.push(buffer[offset + i]);
                                      }
                                      return {
                                        len: octetStringLength,
                                        value: octetString
                                      };
                                    };
                                    var multiCharsetCharacterstringDecode222222222 = (buffer, offset, maxLength, encoding, length) => {
                                      const stringBuf = Buffer.alloc(length);
                                      buffer.copy(stringBuf, 0, offset, offset + length);
                                      return {
                                        value: import_iconv_lite222222222.default.decode(stringBuf, getEncodingType222222222(encoding, buffer, offset)),
                                        len: length + 1,
                                        encoding
                                      };
                                    };
                                    var decodeCharacterString222222222 = (buffer, offset, maxLength, lenValue) => {
                                      return multiCharsetCharacterstringDecode222222222(
                                        buffer,
                                        offset + 1,
                                        maxLength,
                                        buffer[offset],
                                        lenValue - 1
                                      );
                                    };
                                    var bitstringSetBitsUsed222222222 = (bitString, bytesUsed, unusedBits) => {
                                      bitString.bitsUsed = bytesUsed * 8;
                                      bitString.bitsUsed -= unusedBits;
                                    };
                                    var decodeBitstring222222222 = (buffer, offset, lenValue) => {
                                      let len = 0;
                                      let bitString = {};
                                      bitString.value = [];
                                      if (lenValue > 0) {
                                        const bytesUsed = lenValue - 1;
                                        if (bytesUsed <= enums_default222222222.ASN1_MAX_BITSTRING_BYTES) {
                                          len = 1;
                                          for (let i = 0; i < bytesUsed; i++) {
                                            bitString.value.push(byteReverseBits222222222(buffer[offset + len++]));
                                          }
                                          const unusedBits = buffer[offset] & 7;
                                          bitstringSetBitsUsed222222222(bitString, bytesUsed, unusedBits);
                                        }
                                      }
                                      return {
                                        len,
                                        value: bitString
                                      };
                                    };
                                    var decodeDate222222222 = (buffer, offset) => {
                                      let date;
                                      const year = buffer[offset] + 1900;
                                      const month = buffer[offset + 1];
                                      const day = buffer[offset + 2];
                                      const wday = buffer[offset + 3];
                                      if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                                        date = new Date(1, 1, 1);
                                      } else {
                                        date = new Date(year, month, day);
                                      }
                                      return {
                                        len: 4,
                                        value: date
                                      };
                                    };
                                    var decodeDateSafe222222222 = (buffer, offset, lenValue) => {
                                      if (lenValue !== 4) {
                                        return {
                                          len: lenValue,
                                          value: new Date(1, 1, 1)
                                        };
                                      } else {
                                        return decodeDate222222222(buffer, offset);
                                      }
                                    };
                                    var decodeApplicationDate222222222 = (buffer, offset) => {
                                      const result = decodeTagNumber222222222(buffer, offset);
                                      if (result.tagNumber === enums_default222222222.ApplicationTag.DATE) {
                                        const value = decodeDate222222222(buffer, offset + 1);
                                        return {
                                          len: value.len + 1,
                                          value
                                        };
                                      }
                                      return void 0;
                                    };
                                    var decodeBacnetTime222222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                                      const hour = buffer[offset + 0];
                                      const min = buffer[offset + 1];
                                      const sec = buffer[offset + 2];
                                      let hundredths = buffer[offset + 3];
                                      if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                                        value = new Date(1, 1, 1);
                                      } else {
                                        if (hundredths > 100)
                                          hundredths = 0;
                                        value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                                      }
                                      return {
                                        len: 4,
                                        value
                                      };
                                    };
                                    var decodeBacnetTimeSafe222222222 = (buffer, offset, lenValue) => {
                                      if (lenValue !== 4) {
                                        return {
                                          len: lenValue,
                                          value: new Date(1, 1, 1)
                                        };
                                      } else {
                                        return decodeBacnetTime222222222(buffer, offset);
                                      }
                                    };
                                    var decodeApplicationTime222222222 = (buffer, offset) => {
                                      const result = decodeTagNumber222222222(buffer, offset);
                                      if (result.tagNumber === enums_default222222222.ApplicationTag.TIME) {
                                        const value = decodeBacnetTime222222222(buffer, offset + 1);
                                        return {
                                          len: value.len + 1,
                                          value
                                        };
                                      }
                                      return void 0;
                                    };
                                    var decodeBacnetDatetime222222222 = (buffer, offset) => {
                                      let len = 0;
                                      const date = decodeApplicationDate222222222(buffer, offset + len);
                                      len += date.len;
                                      const time = decodeApplicationTime222222222(buffer, offset + len);
                                      len += time.len;
                                      return {
                                        len,
                                        value: new Date(
                                          date.year,
                                          date.month,
                                          date.day,
                                          time.hour,
                                          time.minute,
                                          time.second,
                                          time.millisecond
                                        )
                                      };
                                    };
                                    var bacappDecodeData222222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                                      let result;
                                      let value = {
                                        len: 0,
                                        type: tagDataType
                                      };
                                      switch (tagDataType) {
                                        case enums_default222222222.ApplicationTag.NULL:
                                          value.value = null;
                                          break;
                                        case enums_default222222222.ApplicationTag.BOOLEAN:
                                          value.value = lenValueType > 0;
                                          break;
                                        case enums_default222222222.ApplicationTag.UNSIGNED_INTEGER:
                                          result = decodeUnsigned222222222(buffer, offset, lenValueType);
                                          value.len += result.len;
                                          value.value = result.value;
                                          break;
                                        case enums_default222222222.ApplicationTag.SIGNED_INTEGER:
                                          result = decodeSigned222222222(buffer, offset, lenValueType);
                                          value.len += result.len;
                                          value.value = result.value;
                                          break;
                                        case enums_default222222222.ApplicationTag.REAL:
                                          result = decodeRealSafe222222222(buffer, offset, lenValueType);
                                          value.len += result.len;
                                          value.value = result.value;
                                          break;
                                        case enums_default222222222.ApplicationTag.DOUBLE:
                                          result = decodeDoubleSafe222222222(buffer, offset, lenValueType);
                                          value.len += result.len;
                                          value.value = result.value;
                                          break;
                                        case enums_default222222222.ApplicationTag.OCTET_STRING:
                                          result = decodeOctetString222222222(buffer, offset, maxLength, 0, lenValueType);
                                          value.len += result.len;
                                          value.value = result.value;
                                          break;
                                        case enums_default222222222.ApplicationTag.CHARACTER_STRING:
                                          result = decodeCharacterString222222222(buffer, offset, maxLength, lenValueType);
                                          value.len += result.len;
                                          value.value = result.value;
                                          value.encoding = result.encoding;
                                          break;
                                        case enums_default222222222.ApplicationTag.BIT_STRING:
                                          result = decodeBitstring222222222(buffer, offset, lenValueType);
                                          value.len += result.len;
                                          value.value = result.value;
                                          break;
                                        case enums_default222222222.ApplicationTag.ENUMERATED:
                                          result = decodeEnumerated222222222(buffer, offset, lenValueType);
                                          value.len += result.len;
                                          value.value = result.value;
                                          break;
                                        case enums_default222222222.ApplicationTag.DATE:
                                          result = decodeDateSafe222222222(buffer, offset, lenValueType);
                                          value.len += result.len;
                                          value.value = result.value;
                                          break;
                                        case enums_default222222222.ApplicationTag.TIME:
                                          result = decodeBacnetTimeSafe222222222(buffer, offset, lenValueType);
                                          value.len += result.len;
                                          value.value = result.value;
                                          break;
                                        case enums_default222222222.ApplicationTag.OBJECTIDENTIFIER:
                                          result = decodeObjectIdSafe222222222(buffer, offset, lenValueType);
                                          value.len += result.len;
                                          value.value = { type: result.objectType, instance: result.instance };
                                          break;
                                        default:
                                          break;
                                      }
                                      return value;
                                    };
                                    var bacappContextTagType222222222 = (property, tagNumber) => {
                                      let tag = 0;
                                      switch (property) {
                                        case enums_default222222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                                        case enums_default222222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                                        case enums_default222222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                                          switch (tagNumber) {
                                            case 0:
                                            case 1:
                                              tag = enums_default222222222.ApplicationTag.UNSIGNED_INTEGER;
                                              break;
                                            case 2:
                                              tag = enums_default222222222.ApplicationTag.REAL;
                                              break;
                                            default:
                                              break;
                                          }
                                          break;
                                        case enums_default222222222.PropertyIdentifier.ACTION:
                                          switch (tagNumber) {
                                            case 0:
                                            case 1:
                                              tag = enums_default222222222.ApplicationTag.OBJECTIDENTIFIER;
                                              break;
                                            case 2:
                                              tag = enums_default222222222.ApplicationTag.ENUMERATED;
                                              break;
                                            case 3:
                                            case 5:
                                            case 6:
                                              tag = enums_default222222222.ApplicationTag.UNSIGNED_INTEGER;
                                              break;
                                            case 7:
                                            case 8:
                                              tag = enums_default222222222.ApplicationTag.BOOLEAN;
                                              break;
                                            default:
                                              break;
                                          }
                                          break;
                                        case enums_default222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                                          switch (tagNumber) {
                                            case 0:
                                              tag = enums_default222222222.ApplicationTag.OBJECTIDENTIFIER;
                                              break;
                                            default:
                                              break;
                                          }
                                          break;
                                        case enums_default222222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                                          switch (tagNumber) {
                                            case 1:
                                              tag = enums_default222222222.ApplicationTag.OBJECTIDENTIFIER;
                                              break;
                                            case 3:
                                              tag = enums_default222222222.ApplicationTag.UNSIGNED_INTEGER;
                                              break;
                                            default:
                                              break;
                                          }
                                          break;
                                        case enums_default222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                                          switch (tagNumber) {
                                            case 0:
                                            case 3:
                                              tag = enums_default222222222.ApplicationTag.OBJECTIDENTIFIER;
                                              break;
                                            case 1:
                                              tag = enums_default222222222.ApplicationTag.ENUMERATED;
                                              break;
                                            case 2:
                                              tag = enums_default222222222.ApplicationTag.UNSIGNED_INTEGER;
                                              break;
                                            default:
                                              break;
                                          }
                                          break;
                                        case enums_default222222222.PropertyIdentifier.SUBORDINATE_LIST:
                                          switch (tagNumber) {
                                            case 0:
                                            case 1:
                                              tag = enums_default222222222.ApplicationTag.OBJECTIDENTIFIER;
                                              break;
                                            default:
                                              break;
                                          }
                                          break;
                                        case enums_default222222222.PropertyIdentifier.RECIPIENT_LIST:
                                          switch (tagNumber) {
                                            case 0:
                                              tag = enums_default222222222.ApplicationTag.OBJECTIDENTIFIER;
                                              break;
                                            default:
                                              break;
                                          }
                                          break;
                                        case enums_default222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                                          switch (tagNumber) {
                                            case 0:
                                            case 1:
                                              break;
                                            case 2:
                                              tag = enums_default222222222.ApplicationTag.BOOLEAN;
                                              break;
                                            case 3:
                                              tag = enums_default222222222.ApplicationTag.UNSIGNED_INTEGER;
                                              break;
                                            case 4:
                                              tag = enums_default222222222.ApplicationTag.REAL;
                                              break;
                                            default:
                                              break;
                                          }
                                          break;
                                        default:
                                          break;
                                      }
                                      return tag;
                                    };
                                    var decodeDeviceObjPropertyRef222222222 = (buffer, offset, NOTUSEDARG = 0) => {
                                      let len = 0;
                                      let arrayIndex = enums_default222222222.ASN1_ARRAY_ALL;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      let objectId = decodeObjectId222222222(buffer, offset + len);
                                      len += objectId.len;
                                      let result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 1) {
                                        return void 0;
                                      }
                                      let id = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += id.len;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      if (result.tagNumber === 2) {
                                        len += result.len;
                                        arrayIndex = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += arrayIndex.len;
                                      }
                                      if (decodeIsContextTag222222222(buffer, offset + len, 3)) {
                                        if (!isClosingTag222222222(buffer[offset + len])) {
                                          len++;
                                          objectId = decodeObjectId222222222(buffer, offset + len);
                                          len += objectId.len;
                                        }
                                      }
                                      return {
                                        len,
                                        value: {
                                          objectId,
                                          id
                                        }
                                      };
                                    };
                                    var decodeReadAccessSpecification222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let value = {};
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      let decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      value.objectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      len += decodedValue.len;
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      len++;
                                      const propertyIdAndArrayIndex = [];
                                      while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222(buffer, offset + len, 1)) {
                                        let propertyRef = {};
                                        if (!isContextSpecific222222222(buffer[offset + len])) {
                                          return void 0;
                                        }
                                        let result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 0) {
                                          return void 0;
                                        }
                                        if (len + result.value >= apduLen) {
                                          return void 0;
                                        }
                                        decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        propertyRef.id = decodedValue.value;
                                        len += decodedValue.len;
                                        propertyRef.index = enums_default222222222.ASN1_ARRAY_ALL;
                                        if (isContextSpecific222222222(buffer[offset + len]) && !isClosingTag222222222(buffer[offset + len])) {
                                          const tmp = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          if (tmp.tagNumber === 1) {
                                            len += tmp.len;
                                            if (len + tmp.value >= apduLen) {
                                              return void 0;
                                            }
                                            decodedValue = decodeUnsigned222222222(buffer, offset + len, tmp.value);
                                            propertyRef.index = decodedValue.value;
                                            len += decodedValue.len;
                                          }
                                        }
                                        propertyIdAndArrayIndex.push(propertyRef);
                                      }
                                      if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      len++;
                                      value.properties = propertyIdAndArrayIndex;
                                      return {
                                        len,
                                        value
                                      };
                                    };
                                    var decodeCovSubscription222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let value = {};
                                      let result;
                                      let decodedValue;
                                      value.recipient = {};
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      len++;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== enums_default222222222.ApplicationTag.UNSIGNED_INTEGER) {
                                        return void 0;
                                      }
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.recipient.net = decodedValue.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== enums_default222222222.ApplicationTag.OCTET_STRING) {
                                        return void 0;
                                      }
                                      decodedValue = decodeOctetString222222222(
                                        buffer,
                                        offset + len,
                                        apduLen,
                                        0,
                                        result.value
                                      );
                                      len += decodedValue.len;
                                      value.recipient.adr = decodedValue.value;
                                      if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      len++;
                                      if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 1) {
                                        return void 0;
                                      }
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.subscriptionProcessId = decodedValue.value;
                                      if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      len++;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 0) {
                                        return void 0;
                                      }
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      value.monitoredObjectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 1) {
                                        return void 0;
                                      }
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.monitoredProperty = {};
                                      value.monitoredProperty.id = decodedValue.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      if (result.tagNumber === 2) {
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.monitoredProperty.index = decodedValue.value;
                                      } else {
                                        value.monitoredProperty.index = enums_default222222222.ASN1_ARRAY_ALL;
                                      }
                                      if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      len++;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 2) {
                                        return void 0;
                                      }
                                      value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                      len++;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 3) {
                                        return void 0;
                                      }
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.timeRemaining = decodedValue.value;
                                      if (len < apduLen && !isClosingTag222222222(buffer[offset + len])) {
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 4) {
                                          return void 0;
                                        }
                                        decodedValue = decodeReal222222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        value.covIncrement = decodedValue.value;
                                      }
                                      return {
                                        len,
                                        value
                                      };
                                    };
                                    var decodeCalendarDate222222222 = (buffer, offset) => {
                                      return {
                                        len: 4,
                                        year: buffer[offset],
                                        month: buffer[offset + 1],
                                        day: buffer[offset + 2],
                                        wday: buffer[offset + 3]
                                      };
                                    };
                                    var decodeCalendarDateRange222222222 = (buffer, offset) => {
                                      let len = 1;
                                      const startDate = decodeDate222222222(buffer, offset + len);
                                      len += startDate.len + 1;
                                      const endDate = decodeDate222222222(buffer, offset + len);
                                      len += endDate.len + 1;
                                      return {
                                        len,
                                        startDate,
                                        endDate
                                      };
                                    };
                                    var decodeCalendarWeekDay222222222 = (buffer, offset) => {
                                      return {
                                        len: 3,
                                        month: buffer[offset],
                                        week: buffer[offset + 1],
                                        wday: buffer[offset + 2]
                                      };
                                    };
                                    var decodeCalendar222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      const entries = [];
                                      let decodedValue;
                                      while (len < apduLen) {
                                        const result = decodeTagNumber222222222(buffer, offset + len);
                                        len += result.len;
                                        switch (result.tagNumber) {
                                          case 0:
                                            decodedValue = decodeCalendarDate222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            entries.push(decodedValue);
                                            break;
                                          case 1:
                                            decodedValue = decodeCalendarDateRange222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            entries.push(decodedValue);
                                            break;
                                          case 2:
                                            decodedValue = decodeCalendarWeekDay222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            entries.push(decodedValue);
                                            break;
                                          default:
                                            return {
                                              len: len - 1,
                                              value: entries
                                            };
                                        }
                                      }
                                    };
                                    var bacappDecodeContextApplicationData222222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                      let len = 0;
                                      let result;
                                      if (isContextSpecific222222222(buffer[offset])) {
                                        if (propertyId === enums_default222222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                                          result = decodeReadAccessSpecification222222222(buffer, offset, maxOffset);
                                          if (!result) {
                                            return void 0;
                                          }
                                          return {
                                            type: enums_default222222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                            value: result.value,
                                            len: result.len
                                          };
                                        } else if (propertyId === enums_default222222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                                          result = decodeCovSubscription222222222(buffer, offset, maxOffset);
                                          if (!result) {
                                            return void 0;
                                          }
                                          return {
                                            type: enums_default222222222.ApplicationTag.COV_SUBSCRIPTION,
                                            value: result.value,
                                            len: result.len
                                          };
                                        } else if (objectType === enums_default222222222.ObjectType.GROUP && propertyId === enums_default222222222.PropertyIdentifier.PRESENT_VALUE) {
                                          result = decodeReadAccessResult222222222(buffer, offset, maxOffset);
                                          if (!result) {
                                            return void 0;
                                          }
                                          return {
                                            type: enums_default222222222.ApplicationTag.READ_ACCESS_RESULT,
                                            value: result.value,
                                            len: result.len
                                          };
                                        } else if (propertyId === enums_default222222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default222222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default222222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                                          result = decodeDeviceObjPropertyRef222222222(buffer, offset, maxOffset);
                                          if (!result) {
                                            return void 0;
                                          }
                                          return {
                                            type: enums_default222222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                            value: result.value,
                                            len: result.len
                                          };
                                        } else if (propertyId === enums_default222222222.PropertyIdentifier.DATE_LIST) {
                                          result = decodeCalendar222222222(buffer, offset, maxOffset);
                                          if (!result) {
                                            return void 0;
                                          }
                                          return {
                                            type: enums_default222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                            value: result.value,
                                            len: result.len
                                          };
                                        } else if (propertyId === enums_default222222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                                          let subEvtResult;
                                          let evtResult = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += 1;
                                          if (evtResult.tagNumber === 0) {
                                            subEvtResult = decodeBacnetTime222222222(buffer, offset + 1);
                                            return {
                                              type: enums_default222222222.ApplicationTag.TIMESTAMP,
                                              value: subEvtResult.value,
                                              len: subEvtResult.len + 1
                                            };
                                          } else if (evtResult.tagNumber === 1) {
                                            subEvtResult = decodeUnsigned222222222(buffer, offset + len, evtResult.value);
                                            return {
                                              type: enums_default222222222.ApplicationTag.UNSIGNED_INTEGER,
                                              value: subEvtResult.value,
                                              len: subEvtResult.len + 1
                                            };
                                          } else if (evtResult.tagNumber === 2) {
                                            subEvtResult = decodeBacnetDatetime222222222(buffer, offset + len);
                                            return {
                                              type: enums_default222222222.ApplicationTag.TIMESTAMP,
                                              value: subEvtResult.value,
                                              len: subEvtResult.len + 2
                                            };
                                          } else {
                                            return void 0;
                                          }
                                        }
                                        const list = [];
                                        let tagResult = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        let multipleValues = isOpeningTag222222222(buffer[offset + len]);
                                        while (len + offset <= maxOffset && !isClosingTag222222222(buffer[offset + len])) {
                                          let subResult = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          if (!subResult) {
                                            return void 0;
                                          }
                                          if (subResult.value === 0) {
                                            len += subResult.len;
                                            result = bacappDecodeApplicationData222222222(
                                              buffer,
                                              offset + len,
                                              maxOffset,
                                              enums_default222222222.ASN1_MAX_OBJECT_TYPE,
                                              enums_default222222222.ASN1_MAX_PROPERTY_ID
                                            );
                                            if (!result) {
                                              return void 0;
                                            }
                                            list.push(result);
                                            len += result.len;
                                          } else {
                                            const overrideTagNumber = bacappContextTagType222222222(
                                              propertyId,
                                              subResult.tagNumber
                                            );
                                            if (overrideTagNumber !== enums_default222222222.ASN1_MAX_APPLICATION_TAG) {
                                              subResult.tagNumber = overrideTagNumber;
                                            }
                                            let bacappResult = bacappDecodeData222222222(
                                              buffer,
                                              offset + len + subResult.len,
                                              maxOffset,
                                              subResult.tagNumber,
                                              subResult.value
                                            );
                                            if (!bacappResult) {
                                              return void 0;
                                            }
                                            if (bacappResult.len === subResult.value) {
                                              let resObj = {
                                                value: bacappResult.value,
                                                type: bacappResult.type
                                              };
                                              if (bacappResult.encoding !== void 0)
                                                resObj.encoding = bacappResult.encoding;
                                              list.push(resObj);
                                              len += subResult.len + subResult.value;
                                            } else {
                                              list.push({
                                                value: buffer.slice(
                                                  offset + len + subResult.len,
                                                  offset + len + subResult.len + subResult.value
                                                ),
                                                type: enums_default222222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                              });
                                              len += subResult.len + subResult.value;
                                            }
                                          }
                                          if (multipleValues === false) {
                                            return {
                                              len,
                                              value: list[0],
                                              type: enums_default222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                            };
                                          }
                                        }
                                        if (len + offset > maxOffset) {
                                          return void 0;
                                        }
                                        if (decodeIsClosingTagNumber222222222(buffer, offset + len, tagResult.tagNumber)) {
                                          len++;
                                        }
                                        return {
                                          len,
                                          value: list,
                                          type: enums_default222222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                        };
                                      }
                                      return void 0;
                                    };
                                    var bacappEncodeTimestamp222222222 = (buffer, value) => {
                                      switch (value.type) {
                                        case enums_default222222222.TimeStamp.TIME:
                                          encodeContextTime222222222(buffer, 0, value.value);
                                          break;
                                        case enums_default222222222.TimeStamp.SEQUENCE_NUMBER:
                                          encodeContextUnsigned222222222(buffer, 1, value.value);
                                          break;
                                        case enums_default222222222.TimeStamp.DATETIME:
                                          bacappEncodeContextDatetime222222222(buffer, 2, value.value);
                                          break;
                                        default:
                                          throw new Error("NOT_IMPLEMENTED");
                                      }
                                    };
                                    var bacappEncodeContextTimestamp222222222 = (buffer, tagNumber, value) => {
                                      encodeOpeningTag222222222(buffer, tagNumber);
                                      bacappEncodeTimestamp222222222(buffer, value);
                                      encodeClosingTag222222222(buffer, tagNumber);
                                    };
                                    var decodeContextCharacterString222222222 = (buffer, offset, maxLength, tagNumber) => {
                                      let len = 0;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, tagNumber)) {
                                        return void 0;
                                      }
                                      const result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      const decodedValue = multiCharsetCharacterstringDecode222222222(
                                        buffer,
                                        offset + 1 + len,
                                        maxLength,
                                        buffer[offset + len],
                                        result.value - 1
                                      );
                                      if (!decodedValue) {
                                        return void 0;
                                      }
                                      len += result.value;
                                      return {
                                        len,
                                        value: decodedValue.value,
                                        encoding: decodedValue.encoding
                                      };
                                    };
                                    var decodeIsContextTagWithLength222222222 = (buffer, offset, tagNumber) => {
                                      const result = decodeTagNumber222222222(buffer, offset);
                                      return {
                                        len: result.len,
                                        value: isContextSpecific222222222(buffer[offset]) && result.tagNumber === tagNumber
                                      };
                                    };
                                    var decodeContextObjectId222222222 = (buffer, offset, tagNumber) => {
                                      const result = decodeIsContextTagWithLength222222222(buffer, offset, tagNumber);
                                      if (!result.value) {
                                        return void 0;
                                      }
                                      const decodedValue = decodeObjectId222222222(buffer, offset + result.len);
                                      decodedValue.len = decodedValue.len + result.len;
                                      return decodedValue;
                                    };
                                    var encodeBacnetCharacterString222222222 = (buffer, value, encoding) => {
                                      encoding = encoding || enums_default222222222.CharacterStringEncoding.UTF_8;
                                      buffer.buffer[buffer.offset++] = encoding;
                                      const bufEncoded = import_iconv_lite222222222.default.encode(value, getEncodingType222222222(encoding));
                                      buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                                    };
                                    var encodeApplicationCharacterString222222222 = (buffer, value, encoding) => {
                                      const tmp = getBuffer222222222();
                                      encodeBacnetCharacterString222222222(tmp, value, encoding);
                                      encodeTag222222222(buffer, enums_default222222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                      buffer.offset += tmp.offset;
                                    };
                                    var encodeContextCharacterString222222222 = (buffer, tagNumber, value, encoding) => {
                                      const tmp = getBuffer222222222();
                                      encodeBacnetCharacterString222222222(tmp, value, encoding);
                                      encodeTag222222222(buffer, tagNumber, true, tmp.offset);
                                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                      buffer.offset += tmp.offset;
                                    };
                                    var encode3322222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                      encodeContextObjectId222222222(buffer, 0, objectId.type, objectId.instance);
                                      encodeContextEnumerated222222222(buffer, 1, propertyId);
                                      if (arrayIndex !== ASN1_ARRAY_ALL222222222) {
                                        encodeContextUnsigned222222222(buffer, 2, arrayIndex);
                                      }
                                      encodeOpeningTag222222222(buffer, 3);
                                      values.forEach((value) => {
                                        bacappEncodeApplicationData222222222(buffer, value);
                                      });
                                      encodeClosingTag222222222(buffer, 3);
                                    };
                                    var decode3322222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let value = {};
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      value.objectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.property = { id: decodedValue.value };
                                      if (len < apduLen && decodeIsContextTag222222222(buffer, offset + len, 2)) {
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.property.index = decodedValue.value;
                                      } else {
                                        value.property.index = ASN1_ARRAY_ALL222222222;
                                      }
                                      const values = [];
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 3)) {
                                        return void 0;
                                      }
                                      len++;
                                      while (apduLen - len > 1) {
                                        result = bacappDecodeApplicationData222222222(
                                          buffer,
                                          offset + len,
                                          apduLen + offset,
                                          value.objectId.type,
                                          value.property.id
                                        );
                                        if (!result) {
                                          return void 0;
                                        }
                                        len += result.len;
                                        delete result.len;
                                        values.push(result);
                                      }
                                      value.values = values;
                                      if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 3)) {
                                        return void 0;
                                      }
                                      len++;
                                      value.len = len;
                                      return value;
                                    };
                                    var alarm_acknowledge_exports222222222 = {};
                                    __export222222222(alarm_acknowledge_exports222222222, {
                                      decode: () => decode21022222222,
                                      encode: () => encode21022222222
                                    });
                                    var encode21022222222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                                      encodeContextUnsigned222222222(buffer, 0, ackProcessId);
                                      encodeContextObjectId222222222(
                                        buffer,
                                        1,
                                        eventObjectId.type,
                                        eventObjectId.instance
                                      );
                                      encodeContextEnumerated222222222(buffer, 2, eventStateAcknowledged);
                                      bacappEncodeContextTimestamp222222222(buffer, 3, eventTimeStamp);
                                      encodeContextCharacterString222222222(buffer, 4, ackSource);
                                      bacappEncodeContextTimestamp222222222(buffer, 5, ackTimeStamp);
                                    };
                                    var decode21022222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let value = {};
                                      let result;
                                      let decodedValue;
                                      let date;
                                      let time;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.acknowledgedProcessId = decodedValue.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      value.eventObjectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.eventStateAcknowledged = decodedValue.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber === 0) {
                                        decodedValue = decodeBacnetTime222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.eventTimeStamp = decodedValue.value;
                                      } else if (result.tagNumber === 1) {
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.eventTimeStamp = decodedValue.value;
                                      } else if (result.tagNumber === 2) {
                                        date = decodeApplicationDate222222222(buffer, offset + len);
                                        len += date.len;
                                        date = date.value.value;
                                        time = decodeApplicationTime222222222(buffer, offset + len);
                                        len += time.len;
                                        time = time.value.value;
                                        value.eventTimeStamp = new Date(
                                          date.getFullYear(),
                                          date.getMonth(),
                                          date.getDate(),
                                          time.getHours(),
                                          time.getMinutes(),
                                          time.getSeconds(),
                                          time.getMilliseconds()
                                        );
                                        len++;
                                      }
                                      len++;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeCharacterString222222222(
                                        buffer,
                                        offset + len,
                                        apduLen - (offset + len),
                                        result.value
                                      );
                                      value.acknowledgeSource = decodedValue.value;
                                      len += decodedValue.len;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber === 0) {
                                        decodedValue = decodeBacnetTime222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.acknowledgeTimeStamp = decodedValue.value;
                                      } else if (result.tagNumber === 1) {
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.acknowledgeTimeStamp = decodedValue.value;
                                      } else if (result.tagNumber === 2) {
                                        date = decodeApplicationDate222222222(buffer, offset + len);
                                        len += date.len;
                                        date = date.value.value;
                                        time = decodeApplicationTime222222222(buffer, offset + len);
                                        len += time.len;
                                        time = time.value.value;
                                        value.acknowledgeTimeStamp = new Date(
                                          date.getFullYear(),
                                          date.getMonth(),
                                          date.getDate(),
                                          time.getHours(),
                                          time.getMinutes(),
                                          time.getSeconds(),
                                          time.getMilliseconds()
                                        );
                                        len++;
                                      }
                                      len++;
                                      value.len = len;
                                      return value;
                                    };
                                    var alarm_summary_exports222222222 = {};
                                    __export222222222(alarm_summary_exports222222222, {
                                      decode: () => decode3422222222,
                                      encode: () => encode3422222222
                                    });
                                    var encode3422222222 = (buffer, alarms) => {
                                      alarms.forEach((alarm) => {
                                        encodeContextObjectId222222222(
                                          buffer,
                                          12,
                                          alarm.objectId.type,
                                          alarm.objectId.instance
                                        );
                                        encodeContextEnumerated222222222(buffer, 9, alarm.alarmState);
                                        encodeContextBitstring222222222(buffer, 8, alarm.acknowledgedTransitions);
                                      });
                                    };
                                    var decode3422222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      const alarms = [];
                                      while (apduLen - 3 - len > 0) {
                                        let value = {};
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeObjectId222222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        value.objectId = {
                                          type: decodedValue.objectType,
                                          instance: decodedValue.instance
                                        };
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.alarmState = decodedValue.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeBitstring222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.acknowledgedTransitions = decodedValue.value;
                                        alarms.push(value);
                                      }
                                      return {
                                        len,
                                        alarms
                                      };
                                    };
                                    var atomic_read_file_exports222222222 = {};
                                    __export222222222(atomic_read_file_exports222222222, {
                                      decode: () => decode4222222222,
                                      decodeAcknowledge: () => decodeAcknowledge822222222,
                                      encode: () => encode4222222222,
                                      encodeAcknowledge: () => encodeAcknowledge922222222
                                    });
                                    var encode4222222222 = (buffer, isStream, objectId, position, count) => {
                                      encodeApplicationObjectId222222222(buffer, objectId.type, objectId.instance);
                                      if (isStream) {
                                        encodeOpeningTag222222222(buffer, 0);
                                        encodeApplicationSigned222222222(buffer, position);
                                        encodeApplicationUnsigned222222222(buffer, count);
                                        encodeClosingTag222222222(buffer, 0);
                                      } else {
                                        encodeOpeningTag222222222(buffer, 1);
                                        encodeApplicationSigned222222222(buffer, position);
                                        encodeApplicationUnsigned222222222(buffer, count);
                                        encodeClosingTag222222222(buffer, 1);
                                      }
                                    };
                                    var decode4222222222 = (buffer, offset) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let isStream = true;
                                      let objectId = {};
                                      let position = -1;
                                      let count = 0;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 12) {
                                        return void 0;
                                      }
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                                      if (decodeIsOpeningTagNumber222222222(buffer, offset + len, 0)) {
                                        isStream = true;
                                        len++;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 3) {
                                          return void 0;
                                        }
                                        decodedValue = decodeSigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        position = decodedValue.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 2) {
                                          return void 0;
                                        }
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        count = decodedValue.value;
                                        if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 0)) {
                                          return void 0;
                                        }
                                        len++;
                                      } else if (decodeIsOpeningTagNumber222222222(buffer, offset + len, 1)) {
                                        isStream = false;
                                        len++;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 3) {
                                          return void 0;
                                        }
                                        decodedValue = decodeSigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        position = decodedValue.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 2) {
                                          return void 0;
                                        }
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        count = decodedValue.value;
                                        if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 1)) {
                                          return void 0;
                                        }
                                        len++;
                                      } else {
                                        return void 0;
                                      }
                                      return {
                                        len,
                                        isStream,
                                        objectId,
                                        position,
                                        count
                                      };
                                    };
                                    var encodeAcknowledge922222222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                                      encodeApplicationBoolean222222222(buffer, endOfFile);
                                      if (isStream) {
                                        encodeOpeningTag222222222(buffer, 0);
                                        encodeApplicationSigned222222222(buffer, position);
                                        encodeApplicationOctetString222222222(buffer, blocks[0], 0, counts[0]);
                                        encodeClosingTag222222222(buffer, 0);
                                      } else {
                                        encodeOpeningTag222222222(buffer, 1);
                                        encodeApplicationSigned222222222(buffer, position);
                                        encodeApplicationUnsigned222222222(buffer, blockCount);
                                        for (let i = 0; i < blockCount; i++) {
                                          encodeApplicationOctetString222222222(buffer, blocks[i], 0, counts[i]);
                                        }
                                        encodeClosingTag222222222(buffer, 1);
                                      }
                                    };
                                    var decodeAcknowledge822222222 = (buffer, offset, length = 0) => {
                                      let len = length;
                                      let result;
                                      let decodedValue;
                                      let endOfFile;
                                      let isStream;
                                      let position;
                                      let targetBuffer;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 1) {
                                        return void 0;
                                      }
                                      endOfFile = result.value > 0;
                                      if (decodeIsOpeningTagNumber222222222(buffer, offset + len, 0)) {
                                        isStream = true;
                                        len++;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 3) {
                                          return void 0;
                                        }
                                        decodedValue = decodeSigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        position = decodedValue.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 6) {
                                          return void 0;
                                        }
                                        targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                                        len += result.value;
                                        if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 0)) {
                                          return void 0;
                                        }
                                        len++;
                                      } else if (decodeIsOpeningTagNumber222222222(buffer, offset + len, 1)) {
                                        isStream = false;
                                        throw new Error("NotImplemented");
                                      } else {
                                        return void 0;
                                      }
                                      return {
                                        len,
                                        endOfFile,
                                        isStream,
                                        position,
                                        buffer: targetBuffer
                                      };
                                    };
                                    var atomic_write_file_exports222222222 = {};
                                    __export222222222(atomic_write_file_exports222222222, {
                                      decode: () => decode5222222222,
                                      decodeAcknowledge: () => decodeAcknowledge2222222222,
                                      encode: () => encode5222222222,
                                      encodeAcknowledge: () => encodeAcknowledge2222222222
                                    });
                                    var encode5222222222 = (buffer, isStream, objectId, position, blocks) => {
                                      encodeApplicationObjectId222222222(buffer, objectId.type, objectId.instance);
                                      if (isStream) {
                                        encodeOpeningTag222222222(buffer, 0);
                                        encodeApplicationSigned222222222(buffer, position);
                                        encodeApplicationOctetString222222222(buffer, blocks[0], 0, blocks[0].length);
                                        encodeClosingTag222222222(buffer, 0);
                                      } else {
                                        encodeOpeningTag222222222(buffer, 1);
                                        encodeApplicationSigned222222222(buffer, position);
                                        encodeApplicationUnsigned222222222(buffer, blocks.length);
                                        for (let i = 0; i < blocks.length; i++) {
                                          encodeApplicationOctetString222222222(
                                            buffer,
                                            blocks[i],
                                            0,
                                            blocks[i].length
                                          );
                                        }
                                        encodeClosingTag222222222(buffer, 1);
                                      }
                                    };
                                    var decode5222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let isStream;
                                      let position;
                                      let blocks = [];
                                      let blockCount;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 12) {
                                        return void 0;
                                      }
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      let objectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      if (decodeIsOpeningTagNumber222222222(buffer, offset + len, 0)) {
                                        isStream = true;
                                        len++;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 3) {
                                          return void 0;
                                        }
                                        decodedValue = decodeSigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        position = decodedValue.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 6) {
                                          return void 0;
                                        }
                                        decodedValue = decodeOctetString222222222(
                                          buffer,
                                          offset + len,
                                          apduLen,
                                          0,
                                          result.value
                                        );
                                        len += decodedValue.len;
                                        blocks.push(decodedValue.value);
                                        if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 0)) {
                                          return void 0;
                                        }
                                        len++;
                                      } else if (decodeIsOpeningTagNumber222222222(buffer, offset + len, 1)) {
                                        isStream = false;
                                        len++;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 3) {
                                          return void 0;
                                        }
                                        decodedValue = decodeSigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        position = decodedValue.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 2) {
                                          return void 0;
                                        }
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        blockCount = decodedValue.value;
                                        for (let i = 0; i < blockCount; i++) {
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber !== 6) {
                                            return void 0;
                                          }
                                          decodedValue = decodeOctetString222222222(
                                            buffer,
                                            offset + len,
                                            apduLen,
                                            0,
                                            result.value
                                          );
                                          len += decodedValue.len;
                                          blocks.push(decodedValue.value);
                                        }
                                        if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 1)) {
                                          return void 0;
                                        }
                                        len++;
                                      } else {
                                        return void 0;
                                      }
                                      return {
                                        len,
                                        isStream,
                                        objectId,
                                        position,
                                        blocks
                                      };
                                    };
                                    var encodeAcknowledge2222222222 = (buffer, isStream, position) => {
                                      if (isStream) {
                                        encodeContextSigned222222222(buffer, 0, position);
                                      } else {
                                        encodeContextSigned222222222(buffer, 1, position);
                                      }
                                    };
                                    var decodeAcknowledge2222222222 = (buffer, offset, length = 0) => {
                                      let len = length;
                                      let isStream = false;
                                      let position = 0;
                                      let decodedValue;
                                      const result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber === 0) {
                                        isStream = true;
                                      } else if (result.tagNumber === 1) {
                                        isStream = false;
                                      } else {
                                        return void 0;
                                      }
                                      decodedValue = decodeSigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      position = decodedValue.value;
                                      return {
                                        len,
                                        isStream,
                                        position
                                      };
                                    };
                                    var cov_notify_exports222222222 = {};
                                    __export222222222(cov_notify_exports222222222, {
                                      decode: () => decode6222222222,
                                      encode: () => encode6222222222
                                    });
                                    var encode6222222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                                      encodeContextUnsigned222222222(buffer, 0, subscriberProcessId);
                                      encodeContextObjectId222222222(
                                        buffer,
                                        1,
                                        8,
                                        initiatingDeviceId
                                      );
                                      encodeContextObjectId222222222(
                                        buffer,
                                        2,
                                        monitoredObjectId.type,
                                        monitoredObjectId.instance
                                      );
                                      encodeContextUnsigned222222222(buffer, 3, timeRemaining);
                                      encodeOpeningTag222222222(buffer, 4);
                                      values.forEach((value) => {
                                        encodeContextEnumerated222222222(buffer, 0, value.property.id);
                                        if (value.property.index === ASN1_ARRAY_ALL222222222) {
                                          encodeContextUnsigned222222222(buffer, 1, value.property.index);
                                        }
                                        encodeOpeningTag222222222(buffer, 2);
                                        value.value.forEach((v) => {
                                          bacappEncodeApplicationData222222222(buffer, v);
                                        });
                                        encodeClosingTag222222222(buffer, 2);
                                        if (value.priority === ASN1_NO_PRIORITY222222222) {
                                          encodeContextUnsigned222222222(buffer, 3, value.priority);
                                        }
                                      });
                                      encodeClosingTag222222222(buffer, 4);
                                    };
                                    var decode6222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      const subscriberProcessId = decodedValue.value;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      const initiatingDeviceId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 2)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      const monitoredObjectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 3)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      const timeRemaining = decodedValue.value;
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 4)) {
                                        return void 0;
                                      }
                                      len++;
                                      const values = [];
                                      while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222(buffer, offset + len, 4)) {
                                        let newEntry = {};
                                        newEntry.property = {};
                                        if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                          return void 0;
                                        }
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        newEntry.property.id = decodedValue.value;
                                        if (decodeIsContextTag222222222(buffer, offset + len, 1)) {
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          newEntry.property.index = decodedValue.value;
                                        } else {
                                          newEntry.property.index = ASN1_ARRAY_ALL222222222;
                                        }
                                        if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 2)) {
                                          return void 0;
                                        }
                                        len++;
                                        const properties = [];
                                        while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222(buffer, offset + len, 2)) {
                                          decodedValue = bacappDecodeApplicationData222222222(
                                            buffer,
                                            offset + len,
                                            apduLen + offset,
                                            monitoredObjectId.type,
                                            newEntry.property.id
                                          );
                                          if (!decodedValue) {
                                            return void 0;
                                          }
                                          len += decodedValue.len;
                                          delete decodedValue.len;
                                          properties.push(decodedValue);
                                        }
                                        newEntry.value = properties;
                                        len++;
                                        if (decodeIsContextTag222222222(buffer, offset + len, 3)) {
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          newEntry.priority = decodedValue.value;
                                        } else {
                                          newEntry.priority = ASN1_NO_PRIORITY222222222;
                                        }
                                        values.push(newEntry);
                                      }
                                      return {
                                        len,
                                        subscriberProcessId,
                                        initiatingDeviceId,
                                        monitoredObjectId,
                                        timeRemaining,
                                        values
                                      };
                                    };
                                    var create_object_exports222222222 = {};
                                    __export222222222(create_object_exports222222222, {
                                      decode: () => decode7222222222,
                                      encode: () => encode7222222222,
                                      encodeAcknowledge: () => encodeAcknowledge3222222222
                                    });
                                    var encode7222222222 = (buffer, objectId, values) => {
                                      encodeOpeningTag222222222(buffer, 0);
                                      encodeContextObjectId222222222(buffer, 1, objectId.type, objectId.instance);
                                      encodeClosingTag222222222(buffer, 0);
                                      encodeOpeningTag222222222(buffer, 1);
                                      values.forEach((propertyValue) => {
                                        encodeContextEnumerated222222222(buffer, 0, propertyValue.property.id);
                                        if (propertyValue.property.index !== ASN1_ARRAY_ALL222222222) {
                                          encodeContextUnsigned222222222(buffer, 1, propertyValue.property.index);
                                        }
                                        encodeOpeningTag222222222(buffer, 2);
                                        propertyValue.value.forEach((value) => {
                                          bacappEncodeApplicationData222222222(buffer, value);
                                        });
                                        encodeClosingTag222222222(buffer, 2);
                                        if (propertyValue.priority !== ASN1_NO_PRIORITY222222222) {
                                          encodeContextUnsigned222222222(buffer, 3, propertyValue.priority);
                                        }
                                      });
                                      encodeClosingTag222222222(buffer, 1);
                                    };
                                    var decode7222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let objectId;
                                      const valueList = [];
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber === 0 && apduLen > len) {
                                        apduLen -= len;
                                        if (apduLen < 4) {
                                          return void 0;
                                        }
                                        decodedValue = decodeContextObjectId222222222(buffer, offset + len, 1);
                                        len += decodedValue.len;
                                        objectId = {
                                          type: decodedValue.objectType,
                                          instance: decodedValue.instance
                                        };
                                      } else {
                                        return void 0;
                                      }
                                      if (decodeIsClosingTag222222222(buffer, offset + len)) {
                                        len++;
                                      }
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      len++;
                                      while (apduLen - len > 1) {
                                        let newEntry = {};
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 0) {
                                          return void 0;
                                        }
                                        decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        let propertyId = decodedValue.value;
                                        let arraIndex = ASN1_ARRAY_ALL222222222;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber === 1) {
                                          decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          arraIndex += decodedValue.value;
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                        }
                                        newEntry.property = { id: propertyId, index: arraIndex };
                                        if (result.tagNumber === 2 && decodeIsOpeningTag222222222(buffer, offset + len - 1)) {
                                          const values = [];
                                          while (!decodeIsClosingTag222222222(buffer, offset + len)) {
                                            decodedValue = bacappDecodeApplicationData222222222(
                                              buffer,
                                              offset + len,
                                              apduLen + offset,
                                              objectId.type,
                                              propertyId
                                            );
                                            if (!decodedValue) {
                                              return void 0;
                                            }
                                            len += decodedValue.len;
                                            delete decodedValue.len;
                                            values.push(decodedValue);
                                          }
                                          len++;
                                          newEntry.value = values;
                                        } else {
                                          return void 0;
                                        }
                                        valueList.push(newEntry);
                                      }
                                      if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      len++;
                                      return {
                                        len,
                                        objectId,
                                        values: valueList
                                      };
                                    };
                                    var encodeAcknowledge3222222222 = (buffer, objectId) => {
                                      encodeApplicationObjectId222222222(buffer, objectId.type, objectId.instance);
                                    };
                                    var delete_object_exports222222222 = {};
                                    __export222222222(delete_object_exports222222222, {
                                      decode: () => decode8222222222,
                                      encode: () => encode8222222222
                                    });
                                    var decode8222222222 = (buffer, offset, apduLen) => {
                                      const result = decodeTagNumberAndValue222222222(buffer, offset);
                                      if (result.tagNumber !== 12) {
                                        return void 0;
                                      }
                                      let len = 1;
                                      const value = decodeObjectId222222222(buffer, offset + len);
                                      len += value.len;
                                      if (len !== apduLen) {
                                        return void 0;
                                      }
                                      value.len = len;
                                      return value;
                                    };
                                    var encode8222222222 = (buffer, objectId) => {
                                      encodeApplicationObjectId222222222(buffer, objectId.type, objectId.instance);
                                    };
                                    var device_communication_control_exports222222222 = {};
                                    __export222222222(device_communication_control_exports222222222, {
                                      decode: () => decode9222222222,
                                      encode: () => encode9222222222
                                    });
                                    var encode9222222222 = (buffer, timeDuration, enableDisable, password) => {
                                      if (timeDuration > 0) {
                                        encodeContextUnsigned222222222(buffer, 0, timeDuration);
                                      }
                                      encodeContextEnumerated222222222(buffer, 1, enableDisable);
                                      if (password && password !== "") {
                                        encodeContextCharacterString222222222(buffer, 2, password);
                                      }
                                    };
                                    var decode9222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let value = {};
                                      let decodedValue;
                                      let result;
                                      if (decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        value.timeDuration = decodedValue.value;
                                        len += decodedValue.len;
                                      }
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      value.enableDisable = decodedValue.value;
                                      len += decodedValue.len;
                                      if (len < apduLen) {
                                        if (!decodeIsContextTag222222222(buffer, offset + len, 2)) {
                                          return void 0;
                                        }
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeCharacterString222222222(
                                          buffer,
                                          offset + len,
                                          apduLen - (offset + len),
                                          result.value
                                        );
                                        value.password = decodedValue.value;
                                        len += decodedValue.len;
                                      }
                                      value.len = len;
                                      return value;
                                    };
                                    var error_exports222222222 = {};
                                    __export222222222(error_exports222222222, {
                                      buildMessage: () => buildMessage222222222,
                                      decode: () => decode10222222222,
                                      encode: () => encode10222222222
                                    });
                                    var encode10222222222 = (buffer, errorClass, errorCode) => {
                                      encodeApplicationEnumerated222222222(buffer, errorClass);
                                      encodeApplicationEnumerated222222222(buffer, errorCode);
                                    };
                                    var decode10222222222 = (buffer, offset) => {
                                      const orgOffset = offset;
                                      let result;
                                      result = decodeTagNumberAndValue222222222(buffer, offset);
                                      offset += result.len;
                                      const errorClass = decodeEnumerated222222222(buffer, offset, result.value);
                                      offset += errorClass.len;
                                      result = decodeTagNumberAndValue222222222(buffer, offset);
                                      offset += result.len;
                                      const errorCode = decodeEnumerated222222222(buffer, offset, result.value);
                                      offset += errorClass.len;
                                      return {
                                        len: offset - orgOffset,
                                        class: errorClass.value,
                                        code: errorCode.value
                                      };
                                    };
                                    var buildMessage222222222 = function(result) {
                                      return "BacnetError Class: " + ErrorClassName222222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName222222222[result.code] + " (" + result.code + ")";
                                    };
                                    var event_information_exports222222222 = {};
                                    __export222222222(event_information_exports222222222, {
                                      decode: () => decode11222222222,
                                      encode: () => encode11222222222
                                    });
                                    var encode11222222222 = (buffer, events, moreEvents) => {
                                      encodeOpeningTag222222222(buffer, 0);
                                      events.forEach((event) => {
                                        encodeContextObjectId222222222(
                                          buffer,
                                          0,
                                          event.objectId.type,
                                          event.objectId.instance
                                        );
                                        encodeContextEnumerated222222222(buffer, 1, event.eventState);
                                        encodeContextBitstring222222222(buffer, 2, event.acknowledgedTransitions);
                                        encodeOpeningTag222222222(buffer, 3);
                                        for (let i = 0; i < 3; i++) {
                                          encodeApplicationDate222222222(buffer, event.eventTimeStamps[i]);
                                          encodeApplicationTime222222222(buffer, event.eventTimeStamps[i]);
                                        }
                                        encodeClosingTag222222222(buffer, 3);
                                        encodeContextEnumerated222222222(buffer, 4, event.notifyType);
                                        encodeContextBitstring222222222(buffer, 5, event.eventEnable);
                                        encodeOpeningTag222222222(buffer, 6);
                                        for (let i = 0; i < 3; i++) {
                                          encodeApplicationUnsigned222222222(buffer, event.eventPriorities[i]);
                                        }
                                        encodeClosingTag222222222(buffer, 6);
                                      });
                                      encodeClosingTag222222222(buffer, 0);
                                      encodeContextBoolean222222222(buffer, 1, moreEvents);
                                    };
                                    var decode11222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      len++;
                                      const alarms = [];
                                      let moreEvents;
                                      while (apduLen - 3 - len > 0) {
                                        let value = {};
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeObjectId222222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        value.objectId = {
                                          type: decodedValue.objectType,
                                          instance: decodedValue.instance
                                        };
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.eventState = decodedValue.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeBitstring222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.acknowledgedTransitions = decodedValue.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        value.eventTimeStamps = [];
                                        for (let i = 0; i < 3; i++) {
                                          if (result.tagNumber !== 0) {
                                            decodedValue = decodeApplicationDate222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            const date = decodedValue.value.value;
                                            decodedValue = decodeApplicationTime222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            const time = decodedValue.value.value;
                                            value.eventTimeStamps[i] = new Date(
                                              date.getFullYear(),
                                              date.getMonth(),
                                              date.getDate(),
                                              time.getHours(),
                                              time.getMinutes(),
                                              time.getSeconds(),
                                              time.getMilliseconds()
                                            );
                                          } else {
                                            len += result.value;
                                          }
                                        }
                                        len++;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.notifyType = decodedValue.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeBitstring222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.eventEnable = decodedValue.value;
                                        len++;
                                        value.eventPriorities = [];
                                        for (let i = 0; i < 3; i++) {
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.eventPriorities[i] = decodedValue.value;
                                        }
                                        len++;
                                        alarms.push(value);
                                      }
                                      moreEvents = buffer[apduLen - 1] === 1;
                                      return {
                                        len,
                                        alarms,
                                        moreEvents
                                      };
                                    };
                                    var event_notify_data_exports222222222 = {};
                                    __export222222222(event_notify_data_exports222222222, {
                                      decode: () => decode12222222222,
                                      encode: () => encode12222222222
                                    });
                                    var encode12222222222 = (buffer, data) => {
                                      encodeContextUnsigned222222222(buffer, 0, data.processId);
                                      encodeContextObjectId222222222(
                                        buffer,
                                        1,
                                        data.initiatingObjectId.type,
                                        data.initiatingObjectId.instance
                                      );
                                      encodeContextObjectId222222222(
                                        buffer,
                                        2,
                                        data.eventObjectId.type,
                                        data.eventObjectId.instance
                                      );
                                      bacappEncodeContextTimestamp222222222(buffer, 3, data.timeStamp);
                                      encodeContextUnsigned222222222(buffer, 4, data.notificationClass);
                                      encodeContextUnsigned222222222(buffer, 5, data.priority);
                                      encodeContextEnumerated222222222(buffer, 6, data.eventType);
                                      if (data.messageText && data.messageText !== "") {
                                        encodeContextCharacterString222222222(buffer, 7, data.messageText);
                                      }
                                      encodeContextEnumerated222222222(buffer, 8, data.notifyType);
                                      switch (data.notifyType) {
                                        case 0:
                                        case 1:
                                          encodeContextBoolean222222222(buffer, 9, data.ackRequired);
                                          encodeContextEnumerated222222222(buffer, 10, data.fromState);
                                          break;
                                        default:
                                          break;
                                      }
                                      encodeContextEnumerated222222222(buffer, 11, data.toState);
                                      switch (data.notifyType) {
                                        case 0:
                                        case 1:
                                          encodeOpeningTag222222222(buffer, 12);
                                          switch (data.eventType) {
                                            case 0:
                                              encodeOpeningTag222222222(buffer, 0);
                                              encodeContextBitstring222222222(
                                                buffer,
                                                0,
                                                data.changeOfBitstringReferencedBitString
                                              );
                                              encodeContextBitstring222222222(
                                                buffer,
                                                1,
                                                data.changeOfBitstringStatusFlags
                                              );
                                              encodeClosingTag222222222(buffer, 0);
                                              break;
                                            case 1:
                                              encodeOpeningTag222222222(buffer, 1);
                                              encodeOpeningTag222222222(buffer, 0);
                                              bacappEncodePropertyState222222222(buffer, data.changeOfStateNewState);
                                              encodeClosingTag222222222(buffer, 0);
                                              encodeContextBitstring222222222(
                                                buffer,
                                                1,
                                                data.changeOfStateStatusFlags
                                              );
                                              encodeClosingTag222222222(buffer, 1);
                                              break;
                                            case 2:
                                              encodeOpeningTag222222222(buffer, 2);
                                              encodeOpeningTag222222222(buffer, 0);
                                              switch (data.changeOfValueTag) {
                                                case 0:
                                                  encodeContextReal222222222(
                                                    buffer,
                                                    1,
                                                    data.changeOfValueChangeValue
                                                  );
                                                  break;
                                                case 1:
                                                  encodeContextBitstring222222222(
                                                    buffer,
                                                    0,
                                                    data.changeOfValueChangedBits
                                                  );
                                                  break;
                                                default:
                                                  throw new Error("NotImplemented");
                                              }
                                              encodeClosingTag222222222(buffer, 0);
                                              encodeContextBitstring222222222(
                                                buffer,
                                                1,
                                                data.changeOfValueStatusFlags
                                              );
                                              encodeClosingTag222222222(buffer, 2);
                                              break;
                                            case 4:
                                              encodeOpeningTag222222222(buffer, 4);
                                              encodeContextReal222222222(buffer, 0, data.floatingLimitReferenceValue);
                                              encodeContextBitstring222222222(
                                                buffer,
                                                1,
                                                data.floatingLimitStatusFlags
                                              );
                                              encodeContextReal222222222(buffer, 2, data.floatingLimitSetPointValue);
                                              encodeContextReal222222222(buffer, 3, data.floatingLimitErrorLimit);
                                              encodeClosingTag222222222(buffer, 4);
                                              break;
                                            case 5:
                                              encodeOpeningTag222222222(buffer, 5);
                                              encodeContextReal222222222(buffer, 0, data.outOfRangeExceedingValue);
                                              encodeContextBitstring222222222(buffer, 1, data.outOfRangeStatusFlags);
                                              encodeContextReal222222222(buffer, 2, data.outOfRangeDeadband);
                                              encodeContextReal222222222(buffer, 3, data.outOfRangeExceededLimit);
                                              encodeClosingTag222222222(buffer, 5);
                                              break;
                                            case 8:
                                              encodeOpeningTag222222222(buffer, 8);
                                              encodeContextEnumerated222222222(
                                                buffer,
                                                0,
                                                data.changeOfLifeSafetyNewState
                                              );
                                              encodeContextEnumerated222222222(
                                                buffer,
                                                1,
                                                data.changeOfLifeSafetyNewMode
                                              );
                                              encodeContextBitstring222222222(
                                                buffer,
                                                2,
                                                data.changeOfLifeSafetyStatusFlags
                                              );
                                              encodeContextEnumerated222222222(
                                                buffer,
                                                3,
                                                data.changeOfLifeSafetyOperationExpected
                                              );
                                              encodeClosingTag222222222(buffer, 8);
                                              break;
                                            case 10:
                                              encodeOpeningTag222222222(buffer, 10);
                                              bacappEncodeContextDeviceObjPropertyRef222222222(
                                                buffer,
                                                0,
                                                data.bufferReadyBufferProperty
                                              );
                                              encodeContextUnsigned222222222(
                                                buffer,
                                                1,
                                                data.bufferReadyPreviousNotification
                                              );
                                              encodeContextUnsigned222222222(
                                                buffer,
                                                2,
                                                data.bufferReadyCurrentNotification
                                              );
                                              encodeClosingTag222222222(buffer, 10);
                                              break;
                                            case 11:
                                              encodeOpeningTag222222222(buffer, 11);
                                              encodeContextUnsigned222222222(
                                                buffer,
                                                0,
                                                data.unsignedRangeExceedingValue
                                              );
                                              encodeContextBitstring222222222(
                                                buffer,
                                                1,
                                                data.unsignedRangeStatusFlags
                                              );
                                              encodeContextUnsigned222222222(
                                                buffer,
                                                2,
                                                data.unsignedRangeExceededLimit
                                              );
                                              encodeClosingTag222222222(buffer, 11);
                                              break;
                                            case 9:
                                            case 3:
                                              throw new Error("NotImplemented");
                                            default:
                                              throw new Error("NotImplemented");
                                          }
                                          encodeClosingTag222222222(buffer, 12);
                                          break;
                                        case 2:
                                          throw new Error("NotImplemented");
                                        default:
                                          break;
                                      }
                                    };
                                    var decode12222222222 = (buffer, offset) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let eventData = {};
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      eventData.processId = decodedValue.value;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      eventData.initiatingObjectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 2)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      eventData.eventObjectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 3)) {
                                        return void 0;
                                      }
                                      len += 2;
                                      decodedValue = decodeApplicationDate222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      const date = decodedValue.value.value;
                                      decodedValue = decodeApplicationTime222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      const time = decodedValue.value.value;
                                      eventData.timeStamp = new Date(
                                        date.getFullYear(),
                                        date.getMonth(),
                                        date.getDate(),
                                        time.getHours(),
                                        time.getMinutes(),
                                        time.getSeconds(),
                                        time.getMilliseconds()
                                      );
                                      len += 2;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 4)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      eventData.notificationClass = decodedValue.value;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 5)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      eventData.priority = decodedValue.value;
                                      if (eventData.priority > 255) {
                                        return void 0;
                                      }
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 6)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      eventData.eventType = decodedValue.value;
                                      if (decodeIsContextTag222222222(buffer, offset + len, 7)) {
                                        decodedValue = decodeContextCharacterString222222222(
                                          buffer,
                                          offset + len,
                                          2e4,
                                          7
                                        );
                                        len += decodedValue.len;
                                        eventData.messageText = decodedValue.value;
                                      }
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 8)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      eventData.notifyType = decodedValue.value;
                                      switch (eventData.notifyType) {
                                        case 0:
                                        case 1:
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned222222222(buffer, offset + len, 1);
                                          len += decodedValue.len;
                                          eventData.ackRequired = decodedValue.value > 0;
                                          if (!decodeIsContextTag222222222(buffer, offset + len, 10)) {
                                            return void 0;
                                          }
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeEnumerated222222222(
                                            buffer,
                                            offset + len,
                                            result.value
                                          );
                                          len += decodedValue.len;
                                          eventData.fromState = decodedValue.value;
                                          break;
                                        default:
                                          break;
                                      }
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 11)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      eventData.toState = decodedValue.value;
                                      eventData.len = len;
                                      return eventData;
                                    };
                                    var get_enrollment_summary_exports222222222 = {};
                                    __export222222222(get_enrollment_summary_exports222222222, {
                                      decode: () => decode13222222222,
                                      decodeAcknowledge: () => decodeAcknowledge3222222222,
                                      encode: () => encode13222222222,
                                      encodeAcknowledge: () => encodeAcknowledge4222222222
                                    });
                                    var encode13222222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                                      encodeContextEnumerated222222222(buffer, 0, acknowledgmentFilter);
                                      if (enrollmentFilter) {
                                        encodeOpeningTag222222222(buffer, 1);
                                        encodeOpeningTag222222222(buffer, 0);
                                        encodeContextObjectId222222222(
                                          buffer,
                                          0,
                                          enrollmentFilter.objectId.type,
                                          enrollmentFilter.objectId.instance
                                        );
                                        encodeClosingTag222222222(buffer, 0);
                                        encodeContextUnsigned222222222(buffer, 1, enrollmentFilter.processId);
                                        encodeClosingTag222222222(buffer, 1);
                                      }
                                      if (eventStateFilter) {
                                        encodeOpeningTag222222222(buffer, 2);
                                        encodeContextEnumerated222222222(buffer, 0, eventStateFilter);
                                        encodeClosingTag222222222(buffer, 2);
                                      }
                                      if (eventTypeFilter) {
                                        encodeOpeningTag222222222(buffer, 3);
                                        encodeContextEnumerated222222222(buffer, 0, eventTypeFilter);
                                        encodeClosingTag222222222(buffer, 3);
                                      }
                                      if (priorityFilter) {
                                        encodeOpeningTag222222222(buffer, 4);
                                        encodeContextUnsigned222222222(buffer, 0, priorityFilter.min);
                                        encodeContextUnsigned222222222(buffer, 1, priorityFilter.max);
                                        encodeClosingTag222222222(buffer, 4);
                                      }
                                      if (notificationClassFilter) {
                                        encodeOpeningTag222222222(buffer, 5);
                                        encodeContextUnsigned222222222(buffer, 0, notificationClassFilter);
                                        encodeClosingTag222222222(buffer, 5);
                                      }
                                    };
                                    var decode13222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let value = {};
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.acknowledgmentFilter = decodedValue.value;
                                      if (decodeIsContextTag222222222(buffer, offset + len, 1)) {
                                        len++;
                                        value.enrollmentFilter = {};
                                        if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                          return void 0;
                                        }
                                        len++;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeObjectId222222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        value.enrollmentFilter.objectId = {
                                          type: decodedValue.objectType,
                                          instance: decodedValue.instance
                                        };
                                        len++;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.enrollmentFilter.processId = decodedValue.value;
                                        len++;
                                      }
                                      if (decodeIsContextTag222222222(buffer, offset + len, 2)) {
                                        len++;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.eventStateFilter = decodedValue.value;
                                        len++;
                                      }
                                      if (decodeIsContextTag222222222(buffer, offset + len, 3)) {
                                        len++;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.eventTypeFilter = decodedValue.value;
                                        len++;
                                      }
                                      if (decodeIsContextTag222222222(buffer, offset + len, 4)) {
                                        len++;
                                        value.priorityFilter = {};
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.priorityFilter.min = decodedValue.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.priorityFilter.max = decodedValue.value;
                                        len++;
                                      }
                                      if (decodeIsContextTag222222222(buffer, offset + len, 5)) {
                                        len++;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.notificationClassFilter = decodedValue.value;
                                        len++;
                                      }
                                      value.len = len;
                                      return value;
                                    };
                                    var encodeAcknowledge4222222222 = (buffer, enrollmentSummaries) => {
                                      enrollmentSummaries.forEach((enrollmentSummary) => {
                                        encodeApplicationObjectId222222222(
                                          buffer,
                                          enrollmentSummary.objectId.type,
                                          enrollmentSummary.objectId.instance
                                        );
                                        encodeApplicationEnumerated222222222(buffer, enrollmentSummary.eventType);
                                        encodeApplicationEnumerated222222222(buffer, enrollmentSummary.eventState);
                                        encodeApplicationUnsigned222222222(buffer, enrollmentSummary.priority);
                                        encodeApplicationUnsigned222222222(
                                          buffer,
                                          enrollmentSummary.notificationClass
                                        );
                                      });
                                    };
                                    var decodeAcknowledge3222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      const enrollmentSummaries = [];
                                      while (apduLen - len > 0) {
                                        const enrollmentSummary = {};
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 12) {
                                          return void 0;
                                        }
                                        result = decodeObjectId222222222(buffer, offset + len);
                                        len += result.len;
                                        enrollmentSummary.objectId = {
                                          type: result.objectType,
                                          instance: result.instance
                                        };
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 9) {
                                          return void 0;
                                        }
                                        result = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        len += result.len;
                                        enrollmentSummary.eventType = result.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 9) {
                                          return void 0;
                                        }
                                        result = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        len += result.len;
                                        enrollmentSummary.eventState = result.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 2) {
                                          return void 0;
                                        }
                                        result = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += result.len;
                                        enrollmentSummary.priority = result.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 2) {
                                          return void 0;
                                        }
                                        result = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += result.len;
                                        enrollmentSummary.notificationClass = result.value;
                                        enrollmentSummaries.push(enrollmentSummary);
                                      }
                                      return {
                                        enrollmentSummaries,
                                        len
                                      };
                                    };
                                    var get_event_information_exports222222222 = {};
                                    __export222222222(get_event_information_exports222222222, {
                                      decode: () => decode14222222222,
                                      decodeAcknowledge: () => decodeAcknowledge4222222222,
                                      encode: () => encode14222222222,
                                      encodeAcknowledge: () => encodeAcknowledge5222222222
                                    });
                                    var encode14222222222 = (buffer, lastReceivedObjectId) => {
                                      encodeContextObjectId222222222(
                                        buffer,
                                        0,
                                        lastReceivedObjectId.type,
                                        lastReceivedObjectId.instance
                                      );
                                    };
                                    var decode14222222222 = (buffer, offset) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let value = {};
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      value.lastReceivedObjectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      value.len = len;
                                      return value;
                                    };
                                    var encodeAcknowledge5222222222 = (buffer, events, moreEvents) => {
                                      encodeOpeningTag222222222(buffer, 0);
                                      events.forEach((eventData) => {
                                        encodeContextObjectId222222222(
                                          buffer,
                                          0,
                                          eventData.objectId.type,
                                          eventData.objectId.instance
                                        );
                                        encodeContextEnumerated222222222(buffer, 1, eventData.eventState);
                                        encodeContextBitstring222222222(buffer, 2, eventData.acknowledgedTransitions);
                                        encodeOpeningTag222222222(buffer, 3);
                                        for (let i = 0; i < 3; i++) {
                                          bacappEncodeTimestamp222222222(buffer, eventData.eventTimeStamps[i]);
                                        }
                                        encodeClosingTag222222222(buffer, 3);
                                        encodeContextEnumerated222222222(buffer, 4, eventData.notifyType);
                                        encodeContextBitstring222222222(buffer, 5, eventData.eventEnable);
                                        encodeOpeningTag222222222(buffer, 6);
                                        for (let i = 0; i < 3; i++) {
                                          encodeApplicationUnsigned222222222(buffer, eventData.eventPriorities[i]);
                                        }
                                        encodeClosingTag222222222(buffer, 6);
                                      });
                                      encodeClosingTag222222222(buffer, 0);
                                      encodeContextBoolean222222222(buffer, 1, moreEvents);
                                    };
                                    var decodeAcknowledge4222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let value = {};
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      value.events = [];
                                      while (apduLen - len > 3) {
                                        let event = {};
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeObjectId222222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        event.objectId = {
                                          type: decodedValue.objectType,
                                          instance: decodedValue.instance
                                        };
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        event.eventState = decodedValue.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeBitstring222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        event.acknowledgedTransitions = decodedValue.value;
                                        if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 3)) {
                                          return void 0;
                                        }
                                        len++;
                                        event.eventTimeStamps = [];
                                        for (let i = 0; i < 3; i++) {
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                          if (result.tagNumber === 0) {
                                            decodedValue = decodeBacnetTime222222222(
                                              buffer,
                                              offset + len,
                                              result.value
                                            );
                                            len += decodedValue.len;
                                            event.eventTimeStamps[i] = {
                                              value: decodedValue.value,
                                              type: 0
                                              /* TIME */
                                            };
                                          } else if (result.tagNumber === 1) {
                                            decodedValue = decodeUnsigned222222222(
                                              buffer,
                                              offset + len,
                                              result.value
                                            );
                                            len += decodedValue.len;
                                            event.eventTimeStamps[i] = {
                                              value: decodedValue.value,
                                              type: 1
                                              /* SEQUENCE_NUMBER */
                                            };
                                          } else if (result.tagNumber === 2) {
                                            let date = decodeApplicationDate222222222(
                                              buffer,
                                              offset + len
                                            );
                                            len += date.len;
                                            date = date.value.value;
                                            let time = decodeApplicationTime222222222(
                                              buffer,
                                              offset + len
                                            );
                                            len += time.len;
                                            time = time.value.value;
                                            event.eventTimeStamps[i] = {
                                              value: new Date(
                                                date.getFullYear(),
                                                date.getMonth(),
                                                date.getDate(),
                                                time.getHours(),
                                                time.getMinutes(),
                                                time.getSeconds(),
                                                time.getMilliseconds()
                                              ),
                                              type: 2
                                              /* DATETIME */
                                            };
                                            len++;
                                          }
                                        }
                                        if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 3)) {
                                          return void 0;
                                        }
                                        len++;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        event.notifyType = decodedValue.value;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeBitstring222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        event.eventEnable = decodedValue.value;
                                        if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 6)) {
                                          return void 0;
                                        }
                                        len++;
                                        event.eventPriorities = [];
                                        for (let i = 0; i < 3; i++) {
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          event.eventPriorities[i] = decodedValue.value;
                                        }
                                        if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 6)) {
                                          return void 0;
                                        }
                                        len++;
                                        value.events.push(event);
                                      }
                                      if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      value.moreEvents = buffer[offset + len] > 0;
                                      len++;
                                      value.len = len;
                                      return value;
                                    };
                                    var i_am_exports222222222 = {};
                                    __export222222222(i_am_exports222222222, {
                                      decode: () => decode15222222222,
                                      encode: () => encode15222222222
                                    });
                                    var encode15222222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                                      encodeApplicationObjectId222222222(buffer, 8, deviceId);
                                      encodeApplicationUnsigned222222222(buffer, maxApdu);
                                      encodeApplicationEnumerated222222222(buffer, segmentation);
                                      encodeApplicationUnsigned222222222(buffer, vendorId);
                                    };
                                    var decode15222222222 = (buffer, offset) => {
                                      let result;
                                      let apduLen = 0;
                                      const orgOffset = offset;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + apduLen);
                                      apduLen += result.len;
                                      if (result.tagNumber !== 12) {
                                        return void 0;
                                      }
                                      result = decodeObjectId222222222(buffer, offset + apduLen);
                                      apduLen += result.len;
                                      if (result.objectType !== 8) {
                                        return void 0;
                                      }
                                      const deviceId = result.instance;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + apduLen);
                                      apduLen += result.len;
                                      if (result.tagNumber !== 2) {
                                        return void 0;
                                      }
                                      result = decodeUnsigned222222222(buffer, offset + apduLen, result.value);
                                      apduLen += result.len;
                                      const maxApdu = result.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + apduLen);
                                      apduLen += result.len;
                                      if (result.tagNumber !== 9) {
                                        return void 0;
                                      }
                                      result = decodeEnumerated222222222(buffer, offset + apduLen, result.value);
                                      apduLen += result.len;
                                      if (result.value > 3) {
                                        return void 0;
                                      }
                                      const segmentation = result.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + apduLen);
                                      apduLen += result.len;
                                      if (result.tagNumber !== 2) {
                                        return void 0;
                                      }
                                      result = decodeUnsigned222222222(buffer, offset + apduLen, result.value);
                                      apduLen += result.len;
                                      if (result.value > 65535) {
                                        return void 0;
                                      }
                                      const vendorId = result.value;
                                      return {
                                        len: offset - orgOffset,
                                        deviceId,
                                        maxApdu,
                                        segmentation,
                                        vendorId
                                      };
                                    };
                                    var i_have_exports222222222 = {};
                                    __export222222222(i_have_exports222222222, {
                                      decode: () => decode16222222222,
                                      encode: () => encode16222222222
                                    });
                                    var encode16222222222 = (buffer, deviceId, objectId, objectName) => {
                                      encodeApplicationObjectId222222222(buffer, deviceId.type, deviceId.instance);
                                      encodeApplicationObjectId222222222(buffer, objectId.type, objectId.instance);
                                      encodeApplicationCharacterString222222222(buffer, objectName);
                                    };
                                    var decode16222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let value = {};
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      value.deviceId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      value.objectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeCharacterString222222222(
                                        buffer,
                                        offset + len,
                                        apduLen - (offset + len),
                                        result.value
                                      );
                                      len += decodedValue.len;
                                      value.objectName = decodedValue.value;
                                      value.len = len;
                                      return value;
                                    };
                                    var life_safety_operation_exports222222222 = {};
                                    __export222222222(life_safety_operation_exports222222222, {
                                      decode: () => decode17222222222,
                                      encode: () => encode17222222222
                                    });
                                    var encode17222222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                                      encodeContextUnsigned222222222(buffer, 0, processId);
                                      encodeContextCharacterString222222222(buffer, 1, requestingSource);
                                      encodeContextEnumerated222222222(buffer, 2, operation);
                                      encodeContextObjectId222222222(
                                        buffer,
                                        3,
                                        targetObjectId.type,
                                        targetObjectId.instance
                                      );
                                    };
                                    var decode17222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let value = {};
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.processId = decodedValue.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeCharacterString222222222(
                                        buffer,
                                        offset + len,
                                        apduLen - (offset + len),
                                        result.value
                                      );
                                      len += decodedValue.len;
                                      value.requestingSource = decodedValue.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.operation = decodedValue.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      value.targetObjectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      value.len = len;
                                      return value;
                                    };
                                    var private_transfer_exports222222222 = {};
                                    __export222222222(private_transfer_exports222222222, {
                                      decode: () => decode18222222222,
                                      encode: () => encode18222222222
                                    });
                                    var encode18222222222 = (buffer, vendorId, serviceNumber, data) => {
                                      encodeContextUnsigned222222222(buffer, 0, vendorId);
                                      encodeContextUnsigned222222222(buffer, 1, serviceNumber);
                                      encodeOpeningTag222222222(buffer, 2);
                                      for (let i = 0; i < data.length; i++) {
                                        buffer.buffer[buffer.offset++] = data[i];
                                      }
                                      encodeClosingTag222222222(buffer, 2);
                                    };
                                    var decode18222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let value = {};
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.vendorId = decodedValue.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.serviceNumber = decodedValue.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      const size = apduLen - (offset + len + 1);
                                      const data = [];
                                      for (let i = 0; i < size; i++) {
                                        data.push(buffer[offset + len++]);
                                      }
                                      value.data = data;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      value.len = len;
                                      return value;
                                    };
                                    var read_property_exports222222222 = {};
                                    __export222222222(read_property_exports222222222, {
                                      decode: () => decode19222222222,
                                      decodeAcknowledge: () => decodeAcknowledge5222222222,
                                      encode: () => encode19222222222,
                                      encodeAcknowledge: () => encodeAcknowledge6222222222
                                    });
                                    var encode19222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                                      if (objectType <= ASN1_MAX_OBJECT222222222) {
                                        encodeContextObjectId222222222(buffer, 0, objectType, objectInstance);
                                      }
                                      if (propertyId <= ASN1_MAX_PROPERTY_ID222222222) {
                                        encodeContextEnumerated222222222(buffer, 1, propertyId);
                                      }
                                      if (arrayIndex !== ASN1_ARRAY_ALL222222222) {
                                        encodeContextUnsigned222222222(
                                          buffer,
                                          2,
                                          arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL222222222
                                        );
                                      }
                                    };
                                    var decode19222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      if (apduLen < 7) {
                                        return void 0;
                                      }
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      let objectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      let property = {};
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 1) {
                                        return void 0;
                                      }
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      property.id = decodedValue.value;
                                      property.index = ASN1_ARRAY_ALL222222222;
                                      if (len < apduLen) {
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber === 2 && len < apduLen) {
                                          decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          property.index = decodedValue.value;
                                        } else {
                                          return void 0;
                                        }
                                      }
                                      if (len < apduLen) {
                                        return void 0;
                                      }
                                      return {
                                        len,
                                        objectId,
                                        property
                                      };
                                    };
                                    var encodeAcknowledge6222222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                      encodeContextObjectId222222222(buffer, 0, objectId.type, objectId.instance);
                                      encodeContextEnumerated222222222(buffer, 1, propertyId);
                                      if (arrayIndex !== ASN1_ARRAY_ALL222222222) {
                                        encodeContextUnsigned222222222(buffer, 2, arrayIndex);
                                      }
                                      encodeOpeningTag222222222(buffer, 3);
                                      values.forEach((value) => {
                                        bacappEncodeApplicationData222222222(buffer, value);
                                      });
                                      encodeClosingTag222222222(buffer, 3);
                                    };
                                    var decodeAcknowledge5222222222 = (buffer, offset, apduLen) => {
                                      let result;
                                      let decodedValue;
                                      let objectId = {};
                                      let property = {};
                                      if (!decodeIsContextTag222222222(buffer, offset, 0)) {
                                        return void 0;
                                      }
                                      let len = 1;
                                      result = decodeObjectId222222222(buffer, offset + len);
                                      len += result.len;
                                      objectId.type = result.objectType;
                                      objectId.instance = result.instance;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 1) {
                                        return void 0;
                                      }
                                      result = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += result.len;
                                      property.id = result.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      if (result.tagNumber === 2) {
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        property.index = decodedValue.value;
                                      } else {
                                        property.index = ASN1_ARRAY_ALL222222222;
                                      }
                                      const values = [];
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 3)) {
                                        return void 0;
                                      }
                                      len++;
                                      while (apduLen - len > 1) {
                                        result = bacappDecodeApplicationData222222222(
                                          buffer,
                                          offset + len,
                                          apduLen + offset,
                                          objectId.type,
                                          property.id
                                        );
                                        if (!result) {
                                          return void 0;
                                        }
                                        len += result.len;
                                        delete result.len;
                                        values.push(result);
                                      }
                                      if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 3)) {
                                        return void 0;
                                      }
                                      len++;
                                      return {
                                        len,
                                        objectId,
                                        property,
                                        values
                                      };
                                    };
                                    var read_property_multiple_exports222222222 = {};
                                    __export222222222(read_property_multiple_exports222222222, {
                                      decode: () => decode20222222222,
                                      decodeAcknowledge: () => decodeAcknowledge6222222222,
                                      encode: () => encode20222222222,
                                      encodeAcknowledge: () => encodeAcknowledge7222222222
                                    });
                                    var encode20222222222 = (buffer, properties) => {
                                      properties.forEach((value) => {
                                        encodeReadAccessSpecification222222222(buffer, value);
                                      });
                                    };
                                    var decode20222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      const values = [];
                                      while (apduLen - len > 0) {
                                        const decodedValue = decodeReadAccessSpecification222222222(
                                          buffer,
                                          offset + len,
                                          apduLen - len
                                        );
                                        if (!decodedValue) {
                                          return void 0;
                                        }
                                        len += decodedValue.len;
                                        values.push(decodedValue.value);
                                      }
                                      return {
                                        len,
                                        properties: values
                                      };
                                    };
                                    var encodeAcknowledge7222222222 = (buffer, values) => {
                                      values.forEach((value) => {
                                        encodeReadAccessResult222222222(buffer, value);
                                      });
                                    };
                                    var decodeAcknowledge6222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      const values = [];
                                      while (apduLen - len > 0) {
                                        const result = decodeReadAccessResult222222222(
                                          buffer,
                                          offset + len,
                                          apduLen - len
                                        );
                                        if (!result || result === -1) {
                                          return void 0;
                                        }
                                        len += result.len;
                                        values.push(result.value);
                                      }
                                      return {
                                        len,
                                        values
                                      };
                                    };
                                    var read_range_exports222222222 = {};
                                    __export222222222(read_range_exports222222222, {
                                      decode: () => decode21222222222,
                                      decodeAcknowledge: () => decodeAcknowledge7222222222,
                                      encode: () => encode21222222222,
                                      encodeAcknowledge: () => encodeAcknowledge8222222222
                                    });
                                    var encode21222222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                                      encodeContextObjectId222222222(buffer, 0, objectId.type, objectId.instance);
                                      encodeContextEnumerated222222222(buffer, 1, propertyId);
                                      if (arrayIndex !== ASN1_ARRAY_ALL222222222) {
                                        encodeContextUnsigned222222222(buffer, 2, arrayIndex);
                                      }
                                      switch (requestType) {
                                        case 0:
                                          encodeOpeningTag222222222(buffer, 3);
                                          encodeApplicationUnsigned222222222(buffer, position);
                                          encodeApplicationSigned222222222(buffer, count);
                                          encodeClosingTag222222222(buffer, 3);
                                          break;
                                        case 1:
                                          encodeOpeningTag222222222(buffer, 6);
                                          encodeApplicationUnsigned222222222(buffer, position);
                                          encodeApplicationSigned222222222(buffer, count);
                                          encodeClosingTag222222222(buffer, 6);
                                          break;
                                        case 2:
                                          encodeOpeningTag222222222(buffer, 7);
                                          encodeApplicationDate222222222(buffer, time);
                                          encodeApplicationTime222222222(buffer, time);
                                          encodeApplicationSigned222222222(buffer, count);
                                          encodeClosingTag222222222(buffer, 7);
                                          break;
                                        default:
                                          break;
                                      }
                                    };
                                    var decode21222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let requestType;
                                      let position;
                                      let time;
                                      let count;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len, 0);
                                      len += decodedValue.len;
                                      let objectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      let property = {};
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 1) {
                                        return void 0;
                                      }
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      property.id = decodedValue.value;
                                      if (len < apduLen && decodeIsContextTag222222222(buffer, offset + len, 2)) {
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        property.index = decodedValue.value;
                                      } else {
                                        property.index = ASN1_ARRAY_ALL222222222;
                                      }
                                      if (len < apduLen) {
                                        result = decodeTagNumber222222222(buffer, offset + len);
                                        len += result.len;
                                        switch (result.tagNumber) {
                                          case 3:
                                            requestType = 0;
                                            result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeUnsigned222222222(
                                              buffer,
                                              offset + len,
                                              result.value
                                            );
                                            len += decodedValue.len;
                                            position = decodedValue.value;
                                            result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeSigned222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            count = decodedValue.value;
                                            break;
                                          case 6:
                                            requestType = 1;
                                            result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeUnsigned222222222(
                                              buffer,
                                              offset + len,
                                              result.value
                                            );
                                            len += decodedValue.len;
                                            position = decodedValue.value;
                                            result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeSigned222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            count = decodedValue.value;
                                            break;
                                          case 7:
                                            requestType = 2;
                                            decodedValue = decodeApplicationDate222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            const tmpDate = decodedValue.value.value;
                                            decodedValue = decodeApplicationTime222222222(buffer, offset + len);
                                            len += decodedValue.len;
                                            const tmpTime = decodedValue.value.value;
                                            time = new Date(
                                              tmpDate.getYear(),
                                              tmpDate.getMonth(),
                                              tmpDate.getDate(),
                                              tmpTime.getHours(),
                                              tmpTime.getMinutes(),
                                              tmpTime.getSeconds(),
                                              tmpTime.getMilliseconds()
                                            );
                                            result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                            len += result.len;
                                            decodedValue = decodeSigned222222222(buffer, offset + len, result.value);
                                            len += decodedValue.len;
                                            count = decodedValue.value;
                                            break;
                                          default:
                                            return void 0;
                                        }
                                        result = decodeTagNumber222222222(buffer, offset + len);
                                        len += result.len;
                                      }
                                      return {
                                        len,
                                        objectId,
                                        property,
                                        requestType,
                                        position,
                                        time,
                                        count
                                      };
                                    };
                                    var encodeAcknowledge8222222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                                      encodeContextObjectId222222222(buffer, 0, objectId.type, objectId.instance);
                                      encodeContextEnumerated222222222(buffer, 1, propertyId);
                                      if (arrayIndex !== ASN1_ARRAY_ALL222222222) {
                                        encodeContextUnsigned222222222(buffer, 2, arrayIndex);
                                      }
                                      encodeContextBitstring222222222(buffer, 3, resultFlags);
                                      encodeContextUnsigned222222222(buffer, 4, itemCount);
                                      encodeOpeningTag222222222(buffer, 5);
                                      if (itemCount !== 0) {
                                        applicationData.copy(
                                          buffer.buffer,
                                          buffer.offset,
                                          0,
                                          applicationData.length
                                        );
                                        buffer.offset += applicationData.length;
                                      }
                                      encodeClosingTag222222222(buffer, 5);
                                      if (itemCount !== 0 && requestType && requestType !== 0) {
                                        encodeContextUnsigned222222222(buffer, 6, firstSequence);
                                      }
                                    };
                                    var decodeAcknowledge7222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      const objectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      const property = { index: ASN1_ARRAY_ALL222222222 };
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 1) {
                                        return void 0;
                                      }
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      property.id = decodedValue.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      if (result.tagNumber === 2 && len < apduLen) {
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        property.index = decodedValue.value;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeBitstring222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      const resultFlag = decodedValue.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      const itemCount = decodedValue.value;
                                      if (!decodeIsOpeningTag222222222(buffer, offset + len)) {
                                        return void 0;
                                      }
                                      len++;
                                      const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                                      return {
                                        objectId,
                                        property,
                                        resultFlag,
                                        itemCount,
                                        rangeBuffer,
                                        len
                                      };
                                    };
                                    var register_foreign_device_exports222222222 = {};
                                    __export222222222(register_foreign_device_exports222222222, {
                                      decode: () => decode22222222222,
                                      encode: () => encode22222222222
                                    });
                                    var encode22222222222 = (buffer, ttl, length = 2) => {
                                      encodeUnsigned222222222(buffer, ttl, length);
                                    };
                                    var decode22222222222 = (buffer, offset, length = 2) => {
                                      let len = 0;
                                      let result = decodeUnsigned222222222(buffer, offset + len, length);
                                      len += result.len;
                                      return {
                                        len,
                                        ttl: result.value
                                      };
                                    };
                                    var reinitialize_device_exports222222222 = {};
                                    __export222222222(reinitialize_device_exports222222222, {
                                      decode: () => decode23222222222,
                                      encode: () => encode23222222222
                                    });
                                    var encode23222222222 = (buffer, state, password) => {
                                      encodeContextEnumerated222222222(buffer, 0, state);
                                      if (password && password !== "") {
                                        encodeContextCharacterString222222222(buffer, 1, password);
                                      }
                                    };
                                    var decode23222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let value = {};
                                      let result;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      let decodedValue = decodeEnumerated222222222(
                                        buffer,
                                        offset + len,
                                        result.value
                                      );
                                      value.state = decodedValue.value;
                                      len += decodedValue.len;
                                      if (len < apduLen) {
                                        if (!decodeIsContextTag222222222(buffer, offset + len, 1)) {
                                          return void 0;
                                        }
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeCharacterString222222222(
                                          buffer,
                                          offset + len,
                                          apduLen - (offset + len),
                                          result.value
                                        );
                                        value.password = decodedValue.value;
                                        len += decodedValue.len;
                                      }
                                      value.len = len;
                                      return value;
                                    };
                                    var subscribe_cov_exports222222222 = {};
                                    __export222222222(subscribe_cov_exports222222222, {
                                      decode: () => decode24222222222,
                                      encode: () => encode24222222222
                                    });
                                    var encode24222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                                      encodeContextUnsigned222222222(buffer, 0, subscriberProcessId);
                                      encodeContextObjectId222222222(
                                        buffer,
                                        1,
                                        monitoredObjectId.type,
                                        monitoredObjectId.instance
                                      );
                                      if (!cancellationRequest) {
                                        encodeContextBoolean222222222(buffer, 2, issueConfirmedNotifications);
                                        encodeContextUnsigned222222222(buffer, 3, lifetime);
                                      }
                                    };
                                    var decode24222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let value = {};
                                      let result;
                                      let decodedValue;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.subscriberProcessId = decodedValue.value;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      value.monitoredObjectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      value.cancellationRequest = true;
                                      if (len < apduLen) {
                                        value.issueConfirmedNotifications = false;
                                        if (decodeIsContextTag222222222(buffer, offset + len, 2)) {
                                          value.cancellationRequest = false;
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                          value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                          len++;
                                        }
                                        value.lifetime = 0;
                                        if (decodeIsContextTag222222222(buffer, offset + len, 3)) {
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                          decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          value.lifetime = decodedValue.value;
                                        }
                                      }
                                      value.len = len;
                                      return value;
                                    };
                                    var subscribe_property_exports222222222 = {};
                                    __export222222222(subscribe_property_exports222222222, {
                                      decode: () => decode25222222222,
                                      encode: () => encode25222222222
                                    });
                                    var encode25222222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                                      encodeContextUnsigned222222222(buffer, 0, subscriberProcessId);
                                      encodeContextObjectId222222222(
                                        buffer,
                                        1,
                                        monitoredObjectId.type,
                                        monitoredObjectId.instance
                                      );
                                      if (!cancellationRequest) {
                                        encodeContextBoolean222222222(buffer, 2, issueConfirmedNotifications);
                                        encodeContextUnsigned222222222(buffer, 3, lifetime);
                                      }
                                      encodeOpeningTag222222222(buffer, 4);
                                      encodeContextEnumerated222222222(buffer, 0, monitoredProperty.id);
                                      if (monitoredProperty.index !== ASN1_ARRAY_ALL222222222) {
                                        encodeContextUnsigned222222222(buffer, 1, monitoredProperty.index);
                                      }
                                      encodeClosingTag222222222(buffer, 4);
                                      if (covIncrementPresent) {
                                        encodeContextReal222222222(buffer, 5, covIncrement);
                                      }
                                    };
                                    var decode25222222222 = (buffer, offset) => {
                                      let len = 0;
                                      let value = {};
                                      let result;
                                      let decodedValue;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.subscriberProcessId = decodedValue.value;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      value.monitoredObjectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      value.cancellationRequest = true;
                                      value.issueConfirmedNotifications = false;
                                      if (decodeIsContextTag222222222(buffer, offset + len, 2)) {
                                        value.cancellationRequest = false;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                        len++;
                                      }
                                      value.lifetime = 0;
                                      if (decodeIsContextTag222222222(buffer, offset + len, 3)) {
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.lifetime = decodedValue.value;
                                      }
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 4)) {
                                        return void 0;
                                      }
                                      len++;
                                      value.monitoredProperty = {};
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.monitoredProperty.id = decodedValue.value;
                                      value.monitoredProperty.index = ASN1_ARRAY_ALL222222222;
                                      if (decodeIsContextTag222222222(buffer, offset + len, 1)) {
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.monitoredProperty.index = decodedValue.value;
                                      }
                                      if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 4)) {
                                        return void 0;
                                      }
                                      len++;
                                      value.covIncrement = 0;
                                      if (decodeIsContextTag222222222(buffer, offset + len, 5)) {
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeReal222222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        value.covIncrement = decodedValue.value;
                                      }
                                      value.len = len;
                                      return value;
                                    };
                                    var time_sync_exports222222222 = {};
                                    __export222222222(time_sync_exports222222222, {
                                      decode: () => decode26222222222,
                                      encode: () => encode26222222222
                                    });
                                    var encode26222222222 = (buffer, time) => {
                                      encodeApplicationDate222222222(buffer, time);
                                      encodeApplicationTime222222222(buffer, time);
                                    };
                                    var decode26222222222 = (buffer, offset, length) => {
                                      let len = 0;
                                      let result;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 10) {
                                        return void 0;
                                      }
                                      const date = decodeDate222222222(buffer, offset + len);
                                      len += date.len;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 11) {
                                        return void 0;
                                      }
                                      const time = decodeBacnetTime222222222(buffer, offset + len);
                                      len += time.len;
                                      return {
                                        len,
                                        value: new Date(
                                          date.value.getFullYear(),
                                          date.value.getMonth(),
                                          date.value.getDate(),
                                          time.value.getHours(),
                                          time.value.getMinutes(),
                                          time.value.getSeconds(),
                                          time.value.getMilliseconds()
                                        )
                                      };
                                    };
                                    var who_has_exports222222222 = {};
                                    __export222222222(who_has_exports222222222, {
                                      decode: () => decode27222222222,
                                      encode: () => encode27222222222
                                    });
                                    var encode27222222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                                      if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE222222222) {
                                        encodeContextUnsigned222222222(buffer, 0, lowLimit);
                                        encodeContextUnsigned222222222(buffer, 1, highLimit);
                                      }
                                      if (objectName && objectName !== "") {
                                        encodeContextCharacterString222222222(buffer, 3, objectName);
                                      } else {
                                        encodeContextObjectId222222222(buffer, 2, objectId.type, objectId.instance);
                                      }
                                    };
                                    var decode27222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let value = {};
                                      let decodedValue;
                                      let result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber === 0) {
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        if (decodedValue.value <= ASN1_MAX_INSTANCE222222222) {
                                          value.lowLimit = decodedValue.value;
                                        }
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                      }
                                      if (result.tagNumber === 1) {
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        if (decodedValue.value <= ASN1_MAX_INSTANCE222222222) {
                                          value.highLimit = decodedValue.value;
                                        }
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                      }
                                      if (result.tagNumber === 2) {
                                        decodedValue = decodeObjectId222222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        value.objectId = {
                                          type: decodedValue.objectType,
                                          instance: decodedValue.instance
                                        };
                                      }
                                      if (result.tagNumber === 3) {
                                        decodedValue = decodeCharacterString222222222(
                                          buffer,
                                          offset + len,
                                          apduLen - (offset + len),
                                          result.value
                                        );
                                        len += decodedValue.len;
                                        value.objectName = decodedValue.value;
                                      }
                                      value.len = len;
                                      return value;
                                    };
                                    var who_is_exports222222222 = {};
                                    __export222222222(who_is_exports222222222, {
                                      decode: () => decode28222222222,
                                      encode: () => encode28222222222
                                    });
                                    var encode28222222222 = (buffer, lowLimit, highLimit) => {
                                      if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE222222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE222222222) {
                                        encodeContextUnsigned222222222(buffer, 0, lowLimit);
                                        encodeContextUnsigned222222222(buffer, 1, highLimit);
                                      }
                                    };
                                    var decode28222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let value = {};
                                      if (apduLen <= 0) {
                                        return {};
                                      }
                                      let result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 0) {
                                        return void 0;
                                      }
                                      if (apduLen <= len) {
                                        return void 0;
                                      }
                                      let decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      if (decodedValue.value <= ASN1_MAX_INSTANCE222222222) {
                                        value.lowLimit = decodedValue.value;
                                      }
                                      if (apduLen <= len) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 1) {
                                        return void 0;
                                      }
                                      if (apduLen <= len) {
                                        return void 0;
                                      }
                                      decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      if (decodedValue.value <= ASN1_MAX_INSTANCE222222222) {
                                        value.highLimit = decodedValue.value;
                                      }
                                      value.len = len;
                                      return value;
                                    };
                                    var write_property_exports222222222 = {};
                                    __export222222222(write_property_exports222222222, {
                                      decode: () => decode29222222222,
                                      encode: () => encode29222222222
                                    });
                                    var encode29222222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                                      encodeContextObjectId222222222(buffer, 0, objectType, objectInstance);
                                      encodeContextEnumerated222222222(buffer, 1, propertyId);
                                      if (arrayIndex !== ASN1_ARRAY_ALL222222222) {
                                        encodeContextUnsigned222222222(buffer, 2, arrayIndex);
                                      }
                                      encodeOpeningTag222222222(buffer, 3);
                                      values.forEach((value) => {
                                        bacappEncodeApplicationData222222222(buffer, value);
                                      });
                                      encodeClosingTag222222222(buffer, 3);
                                      if (priority !== ASN1_NO_PRIORITY222222222) {
                                        encodeContextUnsigned222222222(buffer, 4, priority);
                                      }
                                    };
                                    var decode29222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let value = {
                                        property: {}
                                      };
                                      let decodedValue;
                                      let result;
                                      if (!decodeIsContextTag222222222(buffer, offset + len, 0)) {
                                        return void 0;
                                      }
                                      len++;
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      let objectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      len += decodedValue.len;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 1) {
                                        return void 0;
                                      }
                                      decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.property.id = decodedValue.value;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      if (result.tagNumber === 2) {
                                        len += result.len;
                                        decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        value.property.index = decodedValue.value;
                                      } else {
                                        value.property.index = ASN1_ARRAY_ALL222222222;
                                      }
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 3)) {
                                        return void 0;
                                      }
                                      len++;
                                      const values = [];
                                      while (apduLen - len > 1 && !decodeIsClosingTagNumber222222222(buffer, offset + len, 3)) {
                                        decodedValue = bacappDecodeApplicationData222222222(
                                          buffer,
                                          offset + len,
                                          apduLen + offset,
                                          objectId.type,
                                          value.property.id
                                        );
                                        if (!decodedValue) {
                                          return void 0;
                                        }
                                        len += decodedValue.len;
                                        delete decodedValue.len;
                                        values.push(decodedValue);
                                      }
                                      value.value = values;
                                      if (!decodeIsClosingTagNumber222222222(buffer, offset + len, 3)) {
                                        return void 0;
                                      }
                                      len++;
                                      value.priority = ASN1_MAX_PRIORITY222222222;
                                      if (len < apduLen) {
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        if (result.tagNumber === 4) {
                                          len += result.len;
                                          decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                          len += decodedValue;
                                          if (decodedValue.value >= ASN1_MIN_PRIORITY222222222 && decodedValue.value <= ASN1_MAX_PRIORITY222222222) {
                                            value.priority = decodedValue.value;
                                          } else {
                                            return void 0;
                                          }
                                        }
                                      }
                                      return {
                                        len,
                                        objectId,
                                        value
                                      };
                                    };
                                    var write_property_multiple_exports222222222 = {};
                                    __export222222222(write_property_multiple_exports222222222, {
                                      decode: () => decode30222222222,
                                      encode: () => encode30222222222,
                                      encodeObject: () => encodeObject222222222
                                    });
                                    var encode30222222222 = (buffer, objectId, values) => {
                                      encodeContextObjectId222222222(buffer, 0, objectId.type, objectId.instance);
                                      encodeOpeningTag222222222(buffer, 1);
                                      values.forEach((pValue) => {
                                        encodeContextEnumerated222222222(buffer, 0, pValue.property.id);
                                        if (pValue.property.index !== ASN1_ARRAY_ALL222222222) {
                                          encodeContextUnsigned222222222(buffer, 1, pValue.property.index);
                                        }
                                        encodeOpeningTag222222222(buffer, 2);
                                        pValue.value.forEach((value) => {
                                          bacappEncodeApplicationData222222222(buffer, value);
                                        });
                                        encodeClosingTag222222222(buffer, 2);
                                        if (pValue.priority !== ASN1_NO_PRIORITY222222222) {
                                          encodeContextUnsigned222222222(buffer, 3, pValue.priority);
                                        }
                                      });
                                      encodeClosingTag222222222(buffer, 1);
                                    };
                                    var decode30222222222 = (buffer, offset, apduLen) => {
                                      let len = 0;
                                      let result;
                                      let decodedValue;
                                      let objectId;
                                      result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 0 || apduLen <= len) {
                                        return void 0;
                                      }
                                      apduLen -= len;
                                      if (apduLen < 4) {
                                        return void 0;
                                      }
                                      decodedValue = decodeObjectId222222222(buffer, offset + len);
                                      len += decodedValue.len;
                                      objectId = {
                                        type: decodedValue.objectType,
                                        instance: decodedValue.instance
                                      };
                                      if (!decodeIsOpeningTagNumber222222222(buffer, offset + len, 1)) {
                                        return void 0;
                                      }
                                      len++;
                                      const _values = [];
                                      while (apduLen - len > 1) {
                                        let newEntry = {};
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber !== 0) {
                                          return void 0;
                                        }
                                        decodedValue = decodeEnumerated222222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        let propertyId = decodedValue.value;
                                        let arrayIndex = ASN1_ARRAY_ALL222222222;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber === 1) {
                                          decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          arrayIndex = decodedValue.value;
                                          result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                          len += result.len;
                                        }
                                        newEntry.property = { id: propertyId, index: arrayIndex };
                                        if (result.tagNumber !== 2 || !decodeIsOpeningTag222222222(buffer, offset + len - 1)) {
                                          return void 0;
                                        }
                                        const values = [];
                                        while (len + offset <= buffer.length && !decodeIsClosingTag222222222(buffer, offset + len)) {
                                          let value = bacappDecodeApplicationData222222222(
                                            buffer,
                                            offset + len,
                                            apduLen + offset,
                                            objectId.type,
                                            propertyId
                                          );
                                          if (!value) {
                                            return void 0;
                                          }
                                          len += value.len;
                                          delete value.len;
                                          values.push(value);
                                        }
                                        len++;
                                        newEntry.value = values;
                                        let priority = ASN1_NO_PRIORITY222222222;
                                        result = decodeTagNumberAndValue222222222(buffer, offset + len);
                                        len += result.len;
                                        if (result.tagNumber === 3) {
                                          decodedValue = decodeUnsigned222222222(buffer, offset + len, result.value);
                                          len += decodedValue.len;
                                          priority = decodedValue.value;
                                        } else {
                                          len--;
                                        }
                                        newEntry.priority = priority;
                                        _values.push(newEntry);
                                        if (decodeIsClosingTagNumber222222222(buffer, offset + len, 1)) {
                                          len++;
                                        }
                                      }
                                      if (decodeIsClosingTagNumber222222222(buffer, offset + len, 1)) {
                                        len++;
                                      }
                                      return {
                                        len,
                                        objectId,
                                        values: _values
                                      };
                                    };
                                    var encodeObject222222222 = (buffer, values) => {
                                      values.forEach((object) => {
                                        encode30222222222(buffer, object.objectId, object.values);
                                      });
                                    };
                                    var getDecodedType222222222 = (buffer, offset) => {
                                      return buffer[offset];
                                    };
                                    var encodeConfirmedServiceRequest222222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                                      buffer.buffer[buffer.offset++] = type;
                                      buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                                      buffer.buffer[buffer.offset++] = invokeId;
                                      if ((type & 8) > 0) {
                                        buffer.buffer[buffer.offset++] = sequencenumber;
                                        buffer.buffer[buffer.offset++] = proposedWindowSize;
                                      }
                                      buffer.buffer[buffer.offset++] = service;
                                    };
                                    var decodeConfirmedServiceRequest222222222 = (buffer, offset) => {
                                      const orgOffset = offset;
                                      const type = buffer[offset++];
                                      const maxSegments = buffer[offset] & 240;
                                      const maxApdu = buffer[offset++] & 15;
                                      const invokeId = buffer[offset++];
                                      let sequencenumber = 0;
                                      let proposedWindowNumber = 0;
                                      if ((type & 8) > 0) {
                                        sequencenumber = buffer[offset++];
                                        proposedWindowNumber = buffer[offset++];
                                      }
                                      const service = buffer[offset++];
                                      return {
                                        len: offset - orgOffset,
                                        type,
                                        service,
                                        maxSegments,
                                        maxApdu,
                                        invokeId,
                                        sequencenumber,
                                        proposedWindowNumber
                                      };
                                    };
                                    var encodeUnconfirmedServiceRequest222222222 = (buffer, type, service) => {
                                      buffer.buffer[buffer.offset++] = type;
                                      buffer.buffer[buffer.offset++] = service;
                                    };
                                    var decodeUnconfirmedServiceRequest222222222 = (buffer, offset) => {
                                      const orgOffset = offset;
                                      const type = buffer[offset++];
                                      const service = buffer[offset++];
                                      return {
                                        len: offset - orgOffset,
                                        type,
                                        service
                                      };
                                    };
                                    var encodeSimpleAck222222222 = (buffer, type, service, invokeId) => {
                                      buffer.buffer[buffer.offset++] = type;
                                      buffer.buffer[buffer.offset++] = invokeId;
                                      buffer.buffer[buffer.offset++] = service;
                                    };
                                    var decodeSimpleAck222222222 = (buffer, offset) => {
                                      const orgOffset = offset;
                                      const type = buffer[offset++];
                                      const invokeId = buffer[offset++];
                                      const service = buffer[offset++];
                                      return {
                                        len: offset - orgOffset,
                                        type,
                                        service,
                                        invokeId
                                      };
                                    };
                                    var encodeComplexAck222222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                                      let len = 3;
                                      buffer.buffer[buffer.offset++] = type;
                                      buffer.buffer[buffer.offset++] = invokeId;
                                      if ((type & 8) > 0) {
                                        buffer.buffer[buffer.offset++] = sequencenumber;
                                        buffer.buffer[buffer.offset++] = proposedWindowNumber;
                                        len += 2;
                                      }
                                      buffer.buffer[buffer.offset++] = service;
                                      return len;
                                    };
                                    var decodeComplexAck222222222 = (buffer, offset) => {
                                      const orgOffset = offset;
                                      const type = buffer[offset++];
                                      const invokeId = buffer[offset++];
                                      let sequencenumber = 0;
                                      let proposedWindowNumber = 0;
                                      if ((type & 8) > 0) {
                                        sequencenumber = buffer[offset++];
                                        proposedWindowNumber = buffer[offset++];
                                      }
                                      const service = buffer[offset++];
                                      return {
                                        len: offset - orgOffset,
                                        type,
                                        service,
                                        invokeId,
                                        sequencenumber,
                                        proposedWindowNumber
                                      };
                                    };
                                    var encodeSegmentAck222222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                                      buffer.buffer[buffer.offset++] = type;
                                      buffer.buffer[buffer.offset++] = originalInvokeId;
                                      buffer.buffer[buffer.offset++] = sequencenumber;
                                      buffer.buffer[buffer.offset++] = actualWindowSize;
                                    };
                                    var decodeSegmentAck222222222 = (buffer, offset) => {
                                      const orgOffset = offset;
                                      const type = buffer[offset++];
                                      const originalInvokeId = buffer[offset++];
                                      const sequencenumber = buffer[offset++];
                                      const actualWindowSize = buffer[offset++];
                                      return {
                                        len: offset - orgOffset,
                                        type,
                                        originalInvokeId,
                                        sequencenumber,
                                        actualWindowSize
                                      };
                                    };
                                    var encodeResult222222222 = (buffer, resultCode) => {
                                      encodeUnsigned222222222(buffer, resultCode, 2);
                                    };
                                    var encodeError222222222 = (buffer, type, service, invokeId) => {
                                      buffer.buffer[buffer.offset++] = type;
                                      buffer.buffer[buffer.offset++] = invokeId;
                                      buffer.buffer[buffer.offset++] = service;
                                    };
                                    var decodeError222222222 = (buffer, offset) => {
                                      const orgOffset = offset;
                                      const type = buffer[offset++];
                                      const invokeId = buffer[offset++];
                                      const service = buffer[offset++];
                                      return {
                                        len: offset - orgOffset,
                                        type,
                                        service,
                                        invokeId
                                      };
                                    };
                                    var decodeAbort222222222 = (buffer, offset) => {
                                      const orgOffset = offset;
                                      const type = buffer[offset++];
                                      const invokeId = buffer[offset++];
                                      const reason = buffer[offset++];
                                      return {
                                        len: offset - orgOffset,
                                        type,
                                        invokeId,
                                        reason
                                      };
                                    };
                                    var DEFAULT_HOP_COUNT322222222 = 255;
                                    var BACNET_PROTOCOL_VERSION222222222 = 1;
                                    var BACNET_ADDRESS_TYPES222222222 = {
                                      NONE: 0,
                                      IP: 1
                                    };
                                    var decodeTarget222222222 = (buffer, offset) => {
                                      let len = 0;
                                      const target = {
                                        type: BACNET_ADDRESS_TYPES222222222.NONE,
                                        net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                                      };
                                      const adrLen = buffer[offset + len++];
                                      if (adrLen > 0) {
                                        target.adr = [];
                                        for (let i = 0; i < adrLen; i++) {
                                          target.adr.push(buffer[offset + len++]);
                                        }
                                      }
                                      return {
                                        target,
                                        len
                                      };
                                    };
                                    var encodeTarget222222222 = (buffer, target) => {
                                      buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                                      buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                                      if (target.net === 65535 || !target.adr) {
                                        buffer.buffer[buffer.offset++] = 0;
                                      } else {
                                        buffer.buffer[buffer.offset++] = target.adr.length;
                                        if (target.adr.length > 0) {
                                          for (let i = 0; i < target.adr.length; i++) {
                                            buffer.buffer[buffer.offset++] = target.adr[i];
                                          }
                                        }
                                      }
                                    };
                                    var decode31222222222 = (buffer, offset) => {
                                      let adrLen;
                                      const orgOffset = offset;
                                      offset++;
                                      const funct = buffer[offset++];
                                      let destination;
                                      if (funct & 32) {
                                        const tmpDestination = decodeTarget222222222(buffer, offset);
                                        offset += tmpDestination.len;
                                        destination = tmpDestination.target;
                                      }
                                      let source;
                                      if (funct & 8) {
                                        const tmpSource = decodeTarget222222222(buffer, offset);
                                        offset += tmpSource.len;
                                        source = tmpSource.target;
                                      }
                                      let hopCount = 0;
                                      if (funct & 32) {
                                        hopCount = buffer[offset++];
                                      }
                                      let networkMsgType = 0;
                                      let vendorId = 0;
                                      if (funct & 128) {
                                        networkMsgType = buffer[offset++];
                                        if (networkMsgType >= 128) {
                                          vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                                        } else if (networkMsgType === 0) {
                                          offset += 2;
                                        }
                                      }
                                      if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION222222222) {
                                        return void 0;
                                      }
                                      return {
                                        len: offset - orgOffset,
                                        funct,
                                        destination,
                                        source,
                                        hopCount,
                                        networkMsgType,
                                        vendorId
                                      };
                                    };
                                    var encode31222222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                                      const hasDestination = destination && destination.net > 0;
                                      const hasSource = source && source.net > 0 && source.net !== 65535;
                                      buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION222222222;
                                      buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                                      if (hasDestination) {
                                        encodeTarget222222222(buffer, destination);
                                      }
                                      if (hasSource) {
                                        encodeTarget222222222(buffer, source);
                                      }
                                      if (hasDestination) {
                                        buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT322222222;
                                      }
                                      if ((funct & 128) > 0) {
                                        buffer.buffer[buffer.offset++] = networkMsgType;
                                        if (networkMsgType >= 128) {
                                          buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                                          buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                                        }
                                      }
                                    };
                                    var DEFAULT_BACNET_PORT2222222222 = 47808;
                                    var encode32222222222 = (buffer, func, msgLength, originatingIP) => {
                                      buffer[0] = BVLL_TYPE_BACNET_IP222222222;
                                      buffer[1] = func;
                                      buffer[2] = (msgLength & 65280) >> 8;
                                      buffer[3] = (msgLength & 255) >> 0;
                                      if (originatingIP) {
                                        if (func !== 4) {
                                          throw new Error(
                                            "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                                          );
                                        }
                                        const [ipstr, portstr] = originatingIP.split(":");
                                        const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT2222222222;
                                        const ip = ipstr.split(".");
                                        buffer[4] = parseInt(ip[0], 10);
                                        buffer[5] = parseInt(ip[1], 10);
                                        buffer[6] = parseInt(ip[2], 10);
                                        buffer[7] = parseInt(ip[3], 10);
                                        buffer[8] = (port & 65280) >> 8;
                                        buffer[9] = (port & 255) >> 0;
                                        return 6 + BVLC_HEADER_LENGTH322222222;
                                      } else {
                                        if (func === 4) {
                                          throw new Error(
                                            "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                                          );
                                        }
                                      }
                                      return BVLC_HEADER_LENGTH322222222;
                                    };
                                    var decode32222222222 = (buffer, _offset) => {
                                      let len;
                                      const func = buffer[1];
                                      const msgLength = buffer[2] << 8 | buffer[3] << 0;
                                      if (buffer[0] !== BVLL_TYPE_BACNET_IP222222222 || buffer.length !== msgLength) {
                                        return void 0;
                                      }
                                      let originatingIP = null;
                                      switch (func) {
                                        case 0:
                                        case 10:
                                        case 11:
                                        case 9:
                                        case 5:
                                        case 6:
                                        case 8:
                                        case 2:
                                        case 1:
                                        case 3:
                                        case 7:
                                          len = 4;
                                          break;
                                        case 4:
                                          const port = buffer[8] << 8 | buffer[9];
                                          originatingIP = buffer.slice(4, 8).join(".");
                                          if (port !== DEFAULT_BACNET_PORT2222222222) {
                                            originatingIP += ":" + port;
                                          }
                                          len = 10;
                                          break;
                                        case 12:
                                          return void 0;
                                        default:
                                          return void 0;
                                      }
                                      return {
                                        len,
                                        func,
                                        msgLength,
                                        // Originating IP is set to the IP address of the node that originally
                                        // sent the packet, when it has been forwarded to us by a BBMD (since the
                                        // BBMD's IP address will be in the sender field.
                                        originatingIP
                                      };
                                    };
                                    var EventEmitter2222222222 = import_events2222222222.default.EventEmitter;
                                    var debug3222222222 = (0, import_debug3222222222.default)("bacnet:client:debug");
                                    var trace2222222222 = (0, import_debug3222222222.default)("bacnet:client:trace");
                                    var ALL_INTERFACES222222222 = "0.0.0.0";
                                    var LOCALHOST_INTERFACES_IPV4222222222 = "127.0.0.1";
                                    var BROADCAST_ADDRESS222222222 = "255.255.255.255";
                                    var DEFAULT_HOP_COUNT2222222222 = 255;
                                    var BVLC_HEADER_LENGTH2222222222 = 4;
                                    var BVLC_FWD_HEADER_LENGTH222222222 = 10;
                                    var beU222222222 = UnconfirmedServiceChoice222222222;
                                    var unconfirmedServiceMap222222222 = {
                                      [beU222222222.I_AM]: "iAm",
                                      [beU222222222.WHO_IS]: "whoIs",
                                      [beU222222222.WHO_HAS]: "whoHas",
                                      [beU222222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                                      [beU222222222.TIME_SYNCHRONIZATION]: "timeSync",
                                      [beU222222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                                      [beU222222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                      [beU222222222.I_HAVE]: "iHave",
                                      [beU222222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                    };
                                    var beC222222222 = ConfirmedServiceChoice222222222;
                                    var confirmedServiceMap222222222 = {
                                      [beC222222222.READ_PROPERTY]: "readProperty",
                                      [beC222222222.WRITE_PROPERTY]: "writeProperty",
                                      [beC222222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                                      [beC222222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                                      [beC222222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                                      [beC222222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                                      [beC222222222.ATOMIC_READ_FILE]: "atomicReadFile",
                                      [beC222222222.SUBSCRIBE_COV]: "subscribeCov",
                                      [beC222222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                                      [beC222222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                                      [beC222222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                                      [beC222222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                      [beC222222222.READ_RANGE]: "readRange",
                                      [beC222222222.CREATE_OBJECT]: "createObject",
                                      [beC222222222.DELETE_OBJECT]: "deleteObject",
                                      [beC222222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                                      [beC222222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                                      [beC222222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                                      [beC222222222.GET_EVENT_INFORMATION]: "getEventInformation",
                                      [beC222222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                                      [beC222222222.ADD_LIST_ELEMENT]: "addListElement",
                                      [beC222222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                                      [beC222222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                    };
                                    var errorReasonEnums222222222 = {
                                      BacnetAbort: RejectReason222222222
                                    };
                                    var BacnetError222222222 = class extends Error {
                                      constructor(message, bacnetErrorClass, bacnetErrorCode) {
                                        super(message);
                                        this.bacnetErrorClass = bacnetErrorClass;
                                        this.bacnetErrorCode = bacnetErrorCode;
                                      }
                                    };
                                    function bacnetErrorToString222222222(err) {
                                      var _a;
                                      const isError = err instanceof Error || err instanceof BacnetError222222222;
                                      if (!isError)
                                        return;
                                      const message = err.message;
                                      const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                                      const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                                      if (!errorReasonEnums222222222[reasonClass])
                                        return;
                                      const reasonString = errorReasonEnums222222222[reasonClass][reason];
                                      return reasonClass + ": " + reasonString;
                                    }
                                    var Client222222222 = class extends EventEmitter2222222222 {
                                      /**
                                       *
                                       * @param options
                                       */
                                      constructor(options) {
                                        super();
                                        options = options || {};
                                        this._invokeCounter = 1;
                                        this._invokeStore = {};
                                        this._lastSequenceNumber = 0;
                                        this._segmentStore = [];
                                        this._settings = {
                                          port: options.port || 47808,
                                          interface: options.interface || ALL_INTERFACES222222222,
                                          transport: options.transport,
                                          broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS222222222,
                                          apduTimeout: options.apduTimeout || 3e3
                                        };
                                        options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                                        this._transport = this._settings.transport || new Transport222222222({
                                          port: this._settings.port,
                                          interface: this._settings.interface,
                                          broadcastAddress: this._settings.broadcastAddress,
                                          reuseAddr: options.reuseAddr
                                        });
                                        this._transport.on("message", this._receiveData.bind(this));
                                        this._transport.on("error", this._receiveError.bind(this));
                                        this._transport.on("listening", () => this.emit("listening"));
                                        this._transport.open();
                                      }
                                      /**
                                       *
                                       * @returns {number}
                                       * @private
                                       */
                                      _getInvokeId() {
                                        const id = this._invokeCounter++;
                                        if (id >= 256)
                                          this._invokeCounter = 1;
                                        return id - 1;
                                      }
                                      /**
                                       *
                                       * @param id
                                       * @param err
                                       * @param result
                                       * @returns {*}
                                       * @private
                                       */
                                      _invokeCallback(id, err, result) {
                                        const callback = this._invokeStore[id];
                                        if (callback) {
                                          return void callback(err, result);
                                        }
                                        debug3222222222("InvokeId", id, "not found -> drop package");
                                      }
                                      /**
                                       *
                                       * @param id
                                       * @param callback
                                       * @private
                                       */
                                      _addCallback(id, callback) {
                                        const timeout = setTimeout(() => {
                                          delete this._invokeStore[id];
                                          callback(new Error("ERR_TIMEOUT"));
                                        }, this._settings.apduTimeout);
                                        this._invokeStore[id] = (err, data) => {
                                          clearTimeout(timeout);
                                          delete this._invokeStore[id];
                                          callback(err, data);
                                        };
                                      }
                                      /**
                                       *
                                       * @param isForwarded
                                       * @returns {{offset: (number), buffer: *}}
                                       * @private
                                       */
                                      _getBuffer(isForwarded) {
                                        return Object.assign(
                                          {},
                                          {
                                            buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                            offset: isForwarded ? BVLC_FWD_HEADER_LENGTH222222222 : BVLC_HEADER_LENGTH2222222222
                                          }
                                        );
                                      }
                                      /**
                                       *
                                       * @param invokeId
                                       * @param buffer
                                       * @param offset
                                       * @param length
                                       * @returns {*}
                                       * @private
                                       */
                                      _processError(invokeId, buffer, offset, length) {
                                        const result = error_exports222222222.decode(buffer, offset);
                                        trace2222222222("Received error:", result);
                                        if (!result) {
                                          return debug3222222222("Couldn`t decode Error");
                                        }
                                        const err = new BacnetError222222222(error_exports222222222.buildMessage(result));
                                        err.bacnetErrorClass = result.class;
                                        err.bacnetErrorCode = result.code;
                                        this._invokeCallback(invokeId, err);
                                      }
                                      /**
                                       *
                                       * @param invokeId
                                       * @param reason
                                       * @private
                                       */
                                      _processAbort(invokeId, reason) {
                                        const err = new BacnetError222222222("BacnetAbort - Reason:" + reason);
                                        err.bacnetAbortReason = reason;
                                        err.bacnetErrorClass = AbortReason222222222;
                                        this._invokeCallback(invokeId, err);
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param negative
                                       * @param server
                                       * @param originalInvokeId
                                       * @param sequencenumber
                                       * @param actualWindowSize
                                       * @private
                                       */
                                      _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                                        const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                        encode31222222222(
                                          buffer,
                                          0,
                                          receiver,
                                          null,
                                          DEFAULT_HOP_COUNT2222222222,
                                          0,
                                          0
                                        );
                                        encodeSegmentAck222222222(
                                          buffer,
                                          64 | (negative ? 2 : 0) | (server ? 1 : 0),
                                          originalInvokeId,
                                          sequencenumber,
                                          actualWindowSize
                                        );
                                        this.sendBvlc(receiver, buffer);
                                      }
                                      /**
                                       *
                                       * @param msg
                                       * @param first
                                       * @param moreFollows
                                       * @param buffer
                                       * @param offset
                                       * @param length
                                       * @private
                                       */
                                      _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                                        if (first) {
                                          this._segmentStore = [];
                                          msg.type &= ~8;
                                          let apduHeaderLen = 3;
                                          if ((msg.type & PDU_TYPE_MASK222222222) === 0) {
                                            apduHeaderLen = 4;
                                          }
                                          const apdubuffer = this._getBuffer();
                                          apdubuffer.offset = 0;
                                          buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                                          if ((msg.type & PDU_TYPE_MASK222222222) === 0) {
                                            encodeConfirmedServiceRequest222222222(
                                              apdubuffer,
                                              msg.type,
                                              msg.service,
                                              msg.maxSegments,
                                              msg.maxApdu,
                                              msg.invokeId,
                                              0,
                                              0
                                            );
                                          } else {
                                            encodeComplexAck222222222(
                                              apdubuffer,
                                              msg.type,
                                              msg.service,
                                              msg.invokeId,
                                              0,
                                              0
                                            );
                                          }
                                          this._segmentStore.push(
                                            //@ts-ignore
                                            apdubuffer.buffer.slice(0, length + apduHeaderLen)
                                          );
                                        } else {
                                          this._segmentStore.push(buffer.slice(offset, offset + length));
                                        }
                                        if (!moreFollows) {
                                          const apduBuffer = Buffer.concat(this._segmentStore);
                                          this._segmentStore = [];
                                          msg.type &= ~8;
                                          this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                                        }
                                      }
                                      /**
                                       *
                                       * @param msg
                                       * @param server
                                       * @param buffer
                                       * @param offset
                                       * @param length
                                       * @private
                                       */
                                      _processSegment(msg, server, buffer, offset, length) {
                                        let first = false;
                                        if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                                          first = true;
                                        } else {
                                          if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                            return this._segmentAckResponse(
                                              msg.header.address,
                                              true,
                                              server,
                                              msg.invokeId,
                                              this._lastSequenceNumber,
                                              msg.proposedWindowNumber
                                            );
                                          }
                                        }
                                        this._lastSequenceNumber = msg.sequencenumber;
                                        const moreFollows = msg.type & 4;
                                        if (!moreFollows) {
                                          this._lastSequenceNumber = 0;
                                        }
                                        if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                                          this._segmentAckResponse(
                                            msg.header.address,
                                            false,
                                            server,
                                            msg.invokeId,
                                            msg.sequencenumber,
                                            msg.proposedWindowNumber
                                          );
                                        }
                                        this._performDefaultSegmentHandling(
                                          msg,
                                          first,
                                          moreFollows,
                                          buffer,
                                          offset,
                                          length
                                        );
                                      }
                                      /**
                                       *
                                       * @param serviceMap
                                       * @param content
                                       * @param buffer
                                       * @param offset
                                       * @param length
                                       * @returns {*}
                                       * @private
                                       */
                                      _processServiceRequest(serviceMap, content, buffer, offset, length) {
                                        let result;
                                        const sender = content.header.sender;
                                        if (sender.address === LOCALHOST_INTERFACES_IPV4222222222) {
                                          debug3222222222("Received and skipped localhost service request:", content.service);
                                          return;
                                        }
                                        const name = serviceMap[content.service];
                                        if (!name) {
                                          debug3222222222("Received unsupported service request:", content.service);
                                          return;
                                        }
                                        const id = content.invokeId ? "@" + content.invokeId : "";
                                        trace2222222222(`Received service request${id}:`, name);
                                        const serviceHandler = services_exports222222222[name];
                                        if (serviceHandler) {
                                          try {
                                            content.payload = serviceHandler.decode(buffer, offset, length);
                                            trace2222222222(`Handled service request${id}:`, name, JSON.stringify(content));
                                          } catch (e) {
                                            debug3222222222("Exception thrown when processing message:", e);
                                            debug3222222222("Original message was", name + ":", content);
                                            return;
                                          }
                                          if (!content.payload) {
                                            return debug3222222222("Received invalid", name, "message");
                                          }
                                        } else {
                                          debug3222222222("No serviceHandler defined for:", name);
                                        }
                                        if (this.listenerCount(name)) {
                                          trace2222222222("listener count by name emits " + name + " with content");
                                          this.emit(name, content);
                                        } else {
                                          if (this.listenerCount("unhandledEvent")) {
                                            trace2222222222("unhandled event emiting with content");
                                            this.emit("unhandledEvent", content);
                                          } else {
                                            trace2222222222(
                                              "no unhandled event handler with header: " + JSON.stringify(content.header)
                                            );
                                            if (content.header.expectingReply) {
                                              debug3222222222("Replying with error for unhandled service:", name);
                                              content.header.sender.forwardedFrom = null;
                                              this.errorResponse(
                                                content.header.sender,
                                                content.service,
                                                content.invokeId,
                                                5,
                                                67
                                                /* REJECT_UNRECOGNIZED_SERVICE */
                                              );
                                            }
                                          }
                                        }
                                      }
                                      /**
                                       *
                                       * @param buffer
                                       * @param offset
                                       * @param length
                                       * @param header
                                       * @private
                                       */
                                      _handlePdu(buffer, offset, length, header) {
                                        let msg;
                                        trace2222222222("handlePdu Header: ", header);
                                        switch (header.apduType & PDU_TYPE_MASK222222222) {
                                          case 16:
                                            msg = decodeUnconfirmedServiceRequest222222222(buffer, offset);
                                            msg.header = header;
                                            msg.header.confirmedService = false;
                                            this._processServiceRequest(
                                              unconfirmedServiceMap222222222,
                                              msg,
                                              buffer,
                                              offset + msg.len,
                                              length - msg.len
                                            );
                                            break;
                                          case 32:
                                            msg = decodeSimpleAck222222222(buffer, offset);
                                            offset += msg.len;
                                            length -= msg.len;
                                            this._invokeCallback(msg.invokeId, null, {
                                              msg,
                                              buffer,
                                              offset: offset + msg.len,
                                              length: length - msg.len
                                            });
                                            break;
                                          case 48:
                                            msg = decodeComplexAck222222222(buffer, offset);
                                            msg.header = header;
                                            if ((header.apduType & 8) === 0) {
                                              this._invokeCallback(msg.invokeId, null, {
                                                msg,
                                                buffer,
                                                offset: offset + msg.len,
                                                length: length - msg.len
                                              });
                                            } else {
                                              this._processSegment(
                                                msg,
                                                true,
                                                buffer,
                                                offset + msg.len,
                                                length - msg.len
                                              );
                                            }
                                            break;
                                          case 64:
                                            msg = decodeSegmentAck222222222(buffer, offset);
                                            msg.header = header;
                                            this._processSegment(
                                              msg,
                                              true,
                                              buffer,
                                              offset + msg.len,
                                              length - msg.len
                                            );
                                            break;
                                          case 80:
                                            msg = decodeError222222222(buffer, offset);
                                            this._processError(
                                              msg.invokeId,
                                              buffer,
                                              offset + msg.len,
                                              length - msg.len
                                            );
                                            break;
                                          case 96:
                                          case 112:
                                            msg = decodeAbort222222222(buffer, offset);
                                            this._processAbort(msg.invokeId, msg.reason);
                                            break;
                                          case 0:
                                            msg = decodeConfirmedServiceRequest222222222(buffer, offset);
                                            msg.header = header;
                                            msg.header.confirmedService = true;
                                            if ((header.apduType & 8) === 0) {
                                              this._processServiceRequest(
                                                confirmedServiceMap222222222,
                                                msg,
                                                buffer,
                                                offset + msg.len,
                                                length - msg.len
                                              );
                                            } else {
                                              this._processSegment(
                                                msg,
                                                true,
                                                buffer,
                                                offset + msg.len,
                                                length - msg.len
                                              );
                                            }
                                            break;
                                          default:
                                            debug3222222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                            break;
                                        }
                                      }
                                      /**
                                       *
                                       * @param buffer
                                       * @param offset
                                       * @param msgLength
                                       * @param header
                                       * @returns {*}
                                       * @private
                                       */
                                      _handleNpdu(buffer, offset, msgLength, header) {
                                        if (msgLength <= 0) {
                                          return trace2222222222("No NPDU data -> Drop package");
                                        }
                                        const result = decode31222222222(buffer, offset);
                                        if (!result) {
                                          return trace2222222222("Received invalid NPDU header -> Drop package");
                                        }
                                        if (result.funct & 128) {
                                          return trace2222222222("Received network layer message -> Drop package");
                                        }
                                        offset += result.len;
                                        msgLength -= result.len;
                                        if (msgLength <= 0) {
                                          return trace2222222222("No APDU data -> Drop package");
                                        }
                                        header.apduType = getDecodedType222222222(buffer, offset);
                                        header.expectingReply = !!(result.funct & 4);
                                        this._handlePdu(buffer, offset, msgLength, header);
                                      }
                                      /**
                                       *
                                       * @param buffer
                                       * @param remoteAddress
                                       * @returns {*}
                                       * @private
                                       */
                                      _receiveData(buffer, remoteAddress) {
                                        if (buffer.length < BVLC_HEADER_LENGTH322222222) {
                                          return trace2222222222("Received invalid data -> Drop package");
                                        }
                                        const result = decode32222222222(buffer, 0);
                                        if (!result) {
                                          return trace2222222222("Received invalid BVLC header -> Drop package");
                                        }
                                        let header = {
                                          // Which function the packet came in on, so later code can distinguish
                                          // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                                          func: result.func,
                                          sender: {
                                            // Address of the host we are directly connected to. String, IP:port.
                                            address: remoteAddress,
                                            // If the host is a BBMD passing messages along to another node, this
                                            // is the address of the distant BACnet node.  String, IP:port.
                                            // Typically we won't have network connectivity to this address, but
                                            // we have to include it in replies so the host we are connect to knows
                                            // where to forward the messages.
                                            forwardedFrom: null
                                          }
                                        };
                                        switch (result.func) {
                                          case 10:
                                          case 11:
                                            this._handleNpdu(
                                              buffer,
                                              result.len,
                                              buffer.length - result.len,
                                              header
                                            );
                                            break;
                                          case 4:
                                            header.sender.forwardedFrom = result.originatingIP;
                                            this._handleNpdu(
                                              buffer,
                                              result.len,
                                              buffer.length - result.len,
                                              header
                                            );
                                            break;
                                          case 5:
                                            let decodeResult = register_foreign_device_exports222222222.decode(
                                              buffer,
                                              result.len,
                                              buffer.length - result.len
                                            );
                                            if (!decodeResult) {
                                              return trace2222222222("Received invalid registerForeignDevice message");
                                            }
                                            this.emit("registerForeignDevice", {
                                              header,
                                              payload: decodeResult
                                            });
                                            break;
                                          case 9:
                                            this._handleNpdu(
                                              buffer,
                                              result.len,
                                              buffer.length - result.len,
                                              header
                                            );
                                            break;
                                          default:
                                            debug3222222222(
                                              "Received unknown BVLC function " + result.func + " -> Drop package"
                                            );
                                            break;
                                        }
                                      }
                                      /**
                                       * @event bacnet.error
                                       * @param {error} err - The error object thrown by the underlying transport layer.
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * client.on('error', (err) => {
                                       *   console.log('Error occurred: ', err);
                                       *   client.close();
                                       * });
                                       */
                                      _receiveError(err) {
                                        this.emit("error", err);
                                      }
                                      /**
                                       * The whoIs command discovers all BACNET devices in a network.
                                       * @function bacnet.whoIs
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {object=} options
                                       * @param {number=} options.lowLimit - Minimal device instance number to search for.
                                       * @param {number=} options.highLimit - Maximal device instance number to search for.
                                       * @fires bacnet.iAm
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * client.whoIs();
                                       */
                                      whoIs(receiver, options) {
                                        if (!options) {
                                          if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                            options = receiver;
                                            receiver = void 0;
                                          }
                                        }
                                        options = options || {};
                                        const settings = {
                                          lowLimit: options.lowLimit,
                                          highLimit: options.highLimit
                                        };
                                        const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                        encode31222222222(
                                          buffer,
                                          0,
                                          //@ts-ignore
                                          receiver,
                                          null,
                                          DEFAULT_HOP_COUNT2222222222,
                                          0,
                                          0
                                        );
                                        encodeUnconfirmedServiceRequest222222222(
                                          buffer,
                                          16,
                                          8
                                          /* WHO_IS */
                                        );
                                        who_is_exports222222222.encode(buffer, settings.lowLimit, settings.highLimit);
                                        this.sendBvlc(receiver, buffer);
                                      }
                                      /**
                                       * The timeSync command sets the time of a target device.
                                       * @function bacnet.timeSync
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {date} dateTime - The date and time to set on the target device.
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * client.timeSync('192.168.1.43', new Date());
                                       */
                                      timeSync(receiver, dateTime) {
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(buffer, 0, receiver);
                                        encodeUnconfirmedServiceRequest222222222(
                                          buffer,
                                          16,
                                          6
                                          /* TIME_SYNCHRONIZATION */
                                        );
                                        time_sync_exports222222222.encode(buffer, dateTime);
                                        this.sendBvlc(receiver, buffer);
                                      }
                                      /**
                                       * The timeSyncUTC command sets the UTC time of a target device.
                                       * @function bacnet.timeSyncUTC
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {date} dateTime - The date and time to set on the target device.
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * client.timeSyncUTC('192.168.1.43', new Date());
                                       */
                                      timeSyncUTC(receiver, dateTime) {
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(buffer, 0, receiver);
                                        encodeUnconfirmedServiceRequest222222222(
                                          buffer,
                                          16,
                                          9
                                          /* UTC_TIME_SYNCHRONIZATION */
                                        );
                                        time_sync_exports222222222.encode(buffer, dateTime);
                                        this.sendBvlc(receiver, buffer);
                                      }
                                      /**
                                       * The readProperty command reads a single property of an object from a device.
                                       * @function bacnet.readProperty
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {object} objectId - The BACNET object ID to read.
                                       * @param {number} objectId.type - The BACNET object type to read.
                                       * @param {number} objectId.instance - The BACNET object instance to read.
                                       * @param {number} propertyId - The BACNET property id in the specified object to read.
                                       * @param {object=} options
                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                       * @param {number=} options.arrayIndex - The array index of the property to be read.
                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                                       *   console.log('value: ', value);
                                       * });
                                       */
                                      readProperty(receiver, objectId, propertyId, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId(),
                                          arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL222222222
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          //@ts-ignore
                                          receiver,
                                          null,
                                          DEFAULT_HOP_COUNT2222222222,
                                          0,
                                          0
                                        );
                                        const type = 0 | //@ts-ignore
                                        (settings.maxSegments !== 0 ? 2 : 0);
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          type,
                                          12,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        read_property_exports222222222.encode(
                                          buffer,
                                          objectId.type,
                                          objectId.instance,
                                          propertyId,
                                          settings.arrayIndex
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          const result = read_property_exports222222222.decodeAcknowledge(
                                            data.buffer,
                                            data.offset,
                                            data.length
                                          );
                                          if (!result) {
                                            return void next(new Error("INVALID_DECODING"));
                                          }
                                          next(null, result);
                                        });
                                      }
                                      /**
                                       * The writeProperty command writes a single property of an object to a device.
                                       * @function bacnet.writeProperty
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {object} objectId - The BACNET object ID to write.
                                       * @param {number} objectId.type - The BACNET object type to write.
                                       * @param {number} objectId.instance - The BACNET object instance to write.
                                       * @param {number} propertyId - The BACNET property id in the specified object to write.
                                       * @param {object[]} values - A list of values to be written to the specified property.
                                       * @param {ApplicationTag} values.type - The data-type of the value to be written.
                                       * @param {number} values.value - The actual value to be written.
                                       * @param {object=} options
                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                       * @param {number=} options.arrayIndex - The array index of the property to be read.
                                       * @param {number=} options.priority - The priority of the value to be written.
                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                                       *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                                       * ], (err, value) => {
                                       *   console.log('value: ', value);
                                       * });
                                       */
                                      writeProperty(receiver, objectId, propertyId, values, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId(),
                                          arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL222222222,
                                          priority: options.priority || ASN1_NO_PRIORITY222222222
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          //@ts-ignore Todo somehow types do not match at all
                                          receiver,
                                          null,
                                          DEFAULT_HOP_COUNT2222222222,
                                          0,
                                          0
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          15,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        write_property_exports222222222.encode(
                                          buffer,
                                          objectId.type,
                                          objectId.instance,
                                          propertyId,
                                          settings.arrayIndex,
                                          settings.priority,
                                          values
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          next(err);
                                        });
                                      }
                                      /**
                                       * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                                       * @function bacnet.readPropertyMultiple
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {object[]} propertiesArray - List of object and property specifications to be read.
                                       * @param {object} propertiesArray.objectId - Specifies which object to read.
                                       * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                                       * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                                       * @param {object[]} propertiesArray.properties - List of properties to be read.
                                       * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                                       * @param {object=} options
                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * const requestArray = [
                                       *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                                       * ];
                                       * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                                       *   console.log('value: ', value);
                                       * });
                                       */
                                      readPropertyMultiple(receiver, propertiesArray, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                                        const buffer = this._getBuffer(!!isForwarded);
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          //@ts-ignore Todo somehow types do not match at all
                                          receiver,
                                          null,
                                          DEFAULT_HOP_COUNT2222222222,
                                          0,
                                          0
                                        );
                                        const type = 0 | //@ts-ignore
                                        (settings.maxSegments !== 0 ? 2 : 0);
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          type,
                                          14,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        read_property_multiple_exports222222222.encode(buffer, propertiesArray);
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return next(err);
                                          }
                                          const result = read_property_multiple_exports222222222.decodeAcknowledge(
                                            data.buffer,
                                            data.offset,
                                            data.length
                                          );
                                          if (!result) {
                                            return next(new Error("INVALID_DECODING"));
                                          }
                                          next(null, result);
                                        });
                                      }
                                      /**
                                       * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                                       * @function bacnet.writePropertyMultiple
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {object[]} values - List of object and property specifications to be written.
                                       * @param {object} values.objectId - Specifies which object to read.
                                       * @param {number} values.objectId.type - The BACNET object type to read.
                                       * @param {number} values.objectId.instance - The BACNET object instance to read.
                                       * @param {object[]} values.values - List of properties to be written.
                                       * @param {object} values.values.property - Property specifications to be written.
                                       * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                                       * @param {number} values.values.property.index - The array index of the property to be written.
                                       * @param {object[]} values.values.value - A list of values to be written to the specified property.
                                       * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                                       * @param {object} values.values.value.value - The actual value to be written.
                                       * @param {number} values.values.priority - The priority to be used for writing to the property.
                                       * @param {object=} options
                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * const values = [
                                       *   {objectId: {type: 8, instance: 44301}, values: [
                                       *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                                       *   ]}
                                       * ];
                                       * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                                       *   console.log('value: ', value);
                                       * });
                                       */
                                      writePropertyMultiple(receiver, values, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          //@ts-ignore
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          16,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId
                                        );
                                        write_property_multiple_exports222222222.encodeObject(buffer, values);
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          next(err);
                                        });
                                      }
                                      /**
                                       * The confirmedCOVNotification command is used to push notifications to other
                                       * systems that have registered with us via a subscribeCOV message.
                                       * @function bacnet.confirmedCOVNotification
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                                       * @param {number} monitoredObject.type - Object type.
                                       * @param {number} monitoredObject.instance - Object instance.
                                       * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                                       * @param {number} initiatingDeviceId - Our BACnet device ID.
                                       * @param {number} lifetime - Number of seconds left until the subscription expires.
                                       * @param {array} values - values for the monitored object.  See example.
                                       * @param {object=} options
                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * const settings = {deviceId: 123}; // our BACnet device
                                       *
                                       * // Items saved from subscribeCOV message
                                       * const monitoredObject = {type: 1, instance: 1};
                                       * const subscriberProcessId = 123;
                                       *
                                       * client.confirmedCOVNotification(
                                       *   '192.168.1.43',
                                       *   monitoredObject,
                                       *   subscriberProcessId,
                                       *   settings.deviceId,
                                       *   30, // should be lifetime of subscription really
                                       *   [
                                       *     {
                                       *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                                       *       value: [
                                       *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                                       *       ],
                                       *     },
                                       *   ],
                                       *   (err) => {
                                       *     console.log('error: ', err);
                                       *   }
                                       * );
                                       */
                                      confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer();
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          1,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        cov_notify_exports222222222.encode(
                                          buffer,
                                          subscribeId,
                                          initiatingDeviceId,
                                          monitoredObject,
                                          lifetime,
                                          values
                                        );
                                        encode32222222222(
                                          buffer.buffer,
                                          10,
                                          buffer.offset
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          next();
                                        });
                                      }
                                      /**
                                       * The deviceCommunicationControl command enables or disables network communication of the target device.
                                       * @function bacnet.deviceCommunicationControl
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                                       * @param {EnableDisable} enableDisable - The network communication state to set.
                                       * @param {object=} options
                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                       * @param {string=} options.password - The optional password used to set the network communication state.
                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                                       *   console.log('error: ', err);
                                       * });
                                       */
                                      deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId(),
                                          password: options.password
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          17,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        device_communication_control_exports222222222.encode(
                                          buffer,
                                          timeDuration,
                                          enableDisable,
                                          settings.password
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          next(err);
                                        });
                                      }
                                      /**
                                       * The reinitializeDevice command initiates a restart of the target device.
                                       * @function bacnet.reinitializeDevice
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {ReinitializedState} state - The type of restart to be initiated.
                                       * @param {object=} options
                                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                       * @param {string=} options.password - The optional password used to restart the device.
                                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                                       *   console.log('value: ', value);
                                       * });
                                       */
                                      reinitializeDevice(receiver, state, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId(),
                                          password: options.password
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          20,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        reinitialize_device_exports222222222.encode(buffer, state, settings.password);
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          next(err);
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param objectId
                                       * @param position
                                       * @param fileBuffer
                                       * @param options
                                       * @param next
                                       */
                                      writeFile(receiver, objectId, position, fileBuffer, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          7,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        atomic_write_file_exports222222222.encode(
                                          buffer,
                                          false,
                                          objectId,
                                          position,
                                          fileBuffer
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          const result = atomic_write_file_exports222222222.decodeAcknowledge(
                                            data.buffer,
                                            data.offset,
                                            data.length
                                          );
                                          if (!result) {
                                            return void next(new Error("INVALID_DECODING"));
                                          }
                                          next(null, result);
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param objectId
                                       * @param position
                                       * @param count
                                       * @param options
                                       * @param next
                                       */
                                      readFile(receiver, objectId, position, count, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          6,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        atomic_read_file_exports222222222.encode(buffer, true, objectId, position, count);
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          const result = atomic_read_file_exports222222222.decodeAcknowledge(
                                            data.buffer,
                                            data.offset,
                                            data.length
                                          );
                                          if (!result) {
                                            return void next(new Error("INVALID_DECODING"));
                                          }
                                          next(null, result);
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param objectId
                                       * @param idxBegin
                                       * @param quantity
                                       * @param options
                                       * @param next
                                       */
                                      readRange(receiver, objectId, idxBegin, quantity, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          26,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        read_range_exports222222222.encode(
                                          buffer,
                                          objectId,
                                          131,
                                          ASN1_ARRAY_ALL222222222,
                                          0,
                                          idxBegin,
                                          /* @__PURE__ */ new Date(),
                                          quantity
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          const result = read_range_exports222222222.decodeAcknowledge(
                                            data.buffer,
                                            data.offset,
                                            data.length
                                          );
                                          if (!result) {
                                            return void next(new Error("INVALID_DECODING"));
                                          }
                                          next(null, result);
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param objectId
                                       * @param subscribeId
                                       * @param cancel
                                       * @param issueConfirmedNotifications
                                       * @param lifetime
                                       * @param options
                                       * @param next
                                       */
                                      subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                                        const next = nextFunc || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          // @ts-ignore TODO types not matching with documentation and code
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          5,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        subscribe_cov_exports222222222.encode(
                                          buffer,
                                          subscribeId,
                                          objectId,
                                          cancel,
                                          issueConfirmedNotifications,
                                          lifetime
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          next();
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param objectId
                                       * @param monitoredProperty
                                       * @param subscribeId
                                       * @param cancel
                                       * @param issueConfirmedNotifications
                                       * @param options
                                       * @param next
                                       */
                                      subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          28,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        subscribe_property_exports222222222.encode(
                                          buffer,
                                          subscribeId,
                                          objectId,
                                          cancel,
                                          issueConfirmedNotifications,
                                          0,
                                          monitoredProperty,
                                          false,
                                          15
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          next();
                                        });
                                      }
                                      /**
                                       * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                                       * @function bacnet.unconfirmedCOVNotification
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                                       * @param {number} initiatingDeviceId - The id of this device.
                                       * @param {object} monitoredObjectId - Specifies about which object the notification is.
                                       * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                                       * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                                       * @param {number} timeRemaining - How long the subscription is still active in seconds.
                                       * @param {object[]} values - List of properties with updated values.
                                       * @param {object} values.property - Property specifications.
                                       * @param {number} values.property.id - The updated BACNET property id.
                                       * @param {number} values.property.index - The array index of the updated property.
                                       * @param {object[]} values.value - A list of updated values.
                                       * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                                       * @param {object} values.value.value - The actual updated value.
                                       * @param {number} values.priority - The priority of the updated property.
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * client.unconfirmedCOVNotification(
                                       *            '127.0.0.1',
                                       *            3,
                                       *            433,
                                       *            {type: 2, instance: 122},
                                       *            120,
                                       *            [
                                       *              {
                                       *                property: {id: 85},
                                       *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                                       *              },
                                       *              {
                                       *                property: {id: 111},
                                       *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                                       *              }
                                       *            ]);
                                       */
                                      unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                                        const buffer = this._getBuffer();
                                        encode31222222222(buffer, 0, receiver);
                                        encodeUnconfirmedServiceRequest222222222(
                                          buffer,
                                          16,
                                          2
                                          /* UNCONFIRMED_COV_NOTIFICATION */
                                        );
                                        cov_notify_exports222222222.encode(
                                          buffer,
                                          subscriberProcessId,
                                          initiatingDeviceId,
                                          monitoredObjectId,
                                          timeRemaining,
                                          values
                                        );
                                        encode32222222222(
                                          buffer.buffer,
                                          10,
                                          buffer.offset
                                        );
                                        this._transport.send(buffer.buffer, buffer.offset, receiver);
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param objectId
                                       * @param values
                                       * @param options
                                       * @param next
                                       */
                                      createObject(receiver, objectId, values, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          10,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        create_object_exports222222222.encode(buffer, objectId, values);
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          next();
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param objectId
                                       * @param options
                                       * @param next
                                       */
                                      deleteObject(receiver, objectId, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          11,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        delete_object_exports222222222.encode(buffer, objectId);
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          next();
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param objectId
                                       * @param reference
                                       * @param values
                                       * @param options
                                       * @param next
                                       */
                                      removeListElement(receiver, objectId, reference, values, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          9,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        add_list_element_exports222222222.encode(
                                          buffer,
                                          objectId,
                                          reference.id,
                                          reference.index,
                                          values
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          next();
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param objectId
                                       * @param reference
                                       * @param values
                                       * @param options
                                       * @param next
                                       */
                                      addListElement(receiver, objectId, reference, values, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          8,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        add_list_element_exports222222222.encode(
                                          buffer,
                                          objectId,
                                          reference.id,
                                          reference.index,
                                          values
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          next();
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param options
                                       * @param next
                                       */
                                      getAlarmSummary(receiver, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          3,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          const result = alarm_summary_exports222222222.decode(
                                            data.buffer,
                                            data.offset,
                                            data.length
                                          );
                                          if (!result) {
                                            return void next(new Error("INVALID_DECODING"));
                                          }
                                          next(null, result);
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param objectId
                                       * @param options
                                       * @param next
                                       */
                                      getEventInformation(receiver, objectId, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          29,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        encodeContextObjectId222222222(buffer, 0, objectId.type, objectId.instance);
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          const result = event_information_exports222222222.decode(
                                            data.buffer,
                                            data.offset,
                                            data.length
                                          );
                                          if (!result) {
                                            return void next(new Error("INVALID_DECODING"));
                                          }
                                          next(null, result);
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param objectId
                                       * @param eventState
                                       * @param ackText
                                       * @param evTimeStamp
                                       * @param ackTimeStamp
                                       * @param options
                                       * @param next
                                       */
                                      acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          0,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        alarm_acknowledge_exports222222222.encode(
                                          buffer,
                                          57,
                                          objectId,
                                          eventState,
                                          ackText,
                                          evTimeStamp,
                                          ackTimeStamp
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          next();
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param vendorId
                                       * @param serviceNumber
                                       * @param data
                                       * @param options
                                       * @param next
                                       */
                                      confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          18,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        private_transfer_exports222222222.encode(buffer, vendorId, serviceNumber, data);
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data2) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          next();
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param vendorId
                                       * @param serviceNumber
                                       * @param data
                                       */
                                      unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(buffer, 0, receiver);
                                        encodeUnconfirmedServiceRequest222222222(
                                          buffer,
                                          16,
                                          4
                                          /* UNCONFIRMED_PRIVATE_TRANSFER */
                                        );
                                        private_transfer_exports222222222.encode(buffer, vendorId, serviceNumber, data);
                                        this.sendBvlc(receiver, buffer);
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param acknowledgmentFilter
                                       * @param options
                                       * @param next
                                       */
                                      getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          4,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        get_enrollment_summary_exports222222222.encode(
                                          buffer,
                                          acknowledgmentFilter,
                                          options.enrollmentFilter,
                                          options.eventStateFilter,
                                          options.eventTypeFilter,
                                          options.priorityFilter,
                                          options.notificationClassFilter
                                        );
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          const result = get_enrollment_summary_exports222222222.decodeAcknowledge(
                                            data.buffer,
                                            data.offset,
                                            data.length
                                          );
                                          if (!result) {
                                            return void next(new Error("INVALID_DECODING"));
                                          }
                                          next(null, result);
                                        });
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param eventNotification
                                       */
                                      unconfirmedEventNotification(receiver, eventNotification) {
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(buffer, 0, receiver);
                                        encodeUnconfirmedServiceRequest222222222(
                                          buffer,
                                          16,
                                          3
                                          /* UNCONFIRMED_EVENT_NOTIFICATION */
                                        );
                                        event_notify_data_exports222222222.encode(buffer, eventNotification);
                                        this.sendBvlc(receiver, buffer);
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param eventNotification
                                       * @param options
                                       * @param next
                                       */
                                      confirmedEventNotification(receiver, eventNotification, options, next) {
                                        next = next || options;
                                        const settings = {
                                          maxSegments: options.maxSegments || 112,
                                          maxApdu: options.maxApdu || 5,
                                          invokeId: options.invokeId || this._getInvokeId()
                                        };
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(
                                          buffer,
                                          0 | 4,
                                          receiver
                                        );
                                        encodeConfirmedServiceRequest222222222(
                                          buffer,
                                          0,
                                          2,
                                          settings.maxSegments,
                                          settings.maxApdu,
                                          settings.invokeId,
                                          0,
                                          0
                                        );
                                        event_notify_data_exports222222222.encode(buffer, eventNotification);
                                        this.sendBvlc(receiver, buffer);
                                        this._addCallback(settings.invokeId, (err, data) => {
                                          if (err) {
                                            return void next(err);
                                          }
                                          next();
                                        });
                                      }
                                      /**
                                       * The readPropertyResponse call sends a response with information about one of our properties.
                                       * @function bacnet.readPropertyResponse
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {number} invokeId - ID of the original readProperty request.
                                       * @param {object} objectId - objectId from the original request,
                                       * @param {object} property - property being read, taken from the original request.
                                       * @param {object=} options varying behaviour for special circumstances
                                       * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                                       */
                                      readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(buffer, 0, receiver);
                                        encodeComplexAck222222222(
                                          buffer,
                                          48,
                                          12,
                                          invokeId
                                        );
                                        read_property_exports222222222.encodeAcknowledge(
                                          buffer,
                                          objectId,
                                          property.id,
                                          property.index,
                                          value
                                        );
                                        this.sendBvlc(receiver, buffer);
                                      }
                                      readPropertyMultipleResponse(receiver, invokeId, values) {
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(buffer, 0, receiver);
                                        encodeComplexAck222222222(
                                          buffer,
                                          48,
                                          14,
                                          invokeId
                                        );
                                        read_property_multiple_exports222222222.encodeAcknowledge(buffer, values);
                                        this.sendBvlc(receiver, buffer);
                                      }
                                      /**
                                       * The iAmResponse command is sent as a reply to a whoIs request.
                                       * @function bacnet.iAmResponse
                                       * @param {object} receiver - address to send packet to, null for local broadcast.
                                       * @param {number} deviceId - Our device ID.
                                       * @param {number} segmentation - an enum.Segmentation value.
                                       * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                                       */
                                      iAmResponse(receiver, deviceId, segmentation, vendorId) {
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(buffer, 0, receiver);
                                        encodeUnconfirmedServiceRequest222222222(
                                          buffer,
                                          16,
                                          0
                                          /* I_AM */
                                        );
                                        i_am_exports222222222.encode(
                                          buffer,
                                          deviceId,
                                          this._transport.getMaxPayload(),
                                          segmentation,
                                          vendorId
                                        );
                                        this.sendBvlc(receiver, buffer);
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param deviceId
                                       * @param objectId
                                       * @param objectName
                                       */
                                      iHaveResponse(receiver, deviceId, objectId, objectName) {
                                        const buffer = this._getBuffer(
                                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                        );
                                        encode31222222222(buffer, 0, receiver);
                                        encodeUnconfirmedServiceRequest222222222(
                                          buffer,
                                          16,
                                          1
                                          /* I_HAVE */
                                        );
                                        i_have_exports222222222.encode(buffer, deviceId, objectId, objectName);
                                        this.sendBvlc(receiver, buffer);
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param service
                                       * @param invokeId
                                       */
                                      simpleAckResponse(receiver, service, invokeId) {
                                        if (typeof receiver === "string")
                                          return;
                                        const buffer = this._getBuffer(!!receiver.forwardedFrom);
                                        encode31222222222(buffer, 0, receiver);
                                        encodeSimpleAck222222222(
                                          buffer,
                                          32,
                                          service,
                                          invokeId
                                        );
                                        this.sendBvlc(receiver, buffer);
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param service
                                       * @param invokeId
                                       * @param errorClass
                                       * @param errorCode
                                       */
                                      errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                                        trace2222222222(
                                          `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                            service
                                          )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                                        );
                                        trace2222222222(
                                          `error message ${error_exports222222222.buildMessage({
                                            class: errorClass,
                                            code: errorCode
                                          })}`
                                        );
                                        const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                                        if (typeof receiver === "string")
                                          throw new Error("receiver must be object");
                                        const buffer = this._getBuffer(hasSource);
                                        encode31222222222(buffer, 0, receiver);
                                        encodeError222222222(buffer, 80, service, invokeId);
                                        error_exports222222222.encode(buffer, errorClass, errorCode);
                                        this.sendBvlc(receiver, buffer);
                                      }
                                      /**
                                       *
                                       * @param receiver
                                       * @param buffer
                                       */
                                      sendBvlc(receiver, buffer) {
                                        if (typeof receiver === "string") {
                                          receiver = {
                                            address: receiver
                                          };
                                        }
                                        if (receiver && receiver.forwardedFrom) {
                                          encode32222222222(
                                            buffer.buffer,
                                            4,
                                            buffer.offset,
                                            receiver.forwardedFrom
                                          );
                                        } else if (receiver && receiver.address) {
                                          encode32222222222(
                                            buffer.buffer,
                                            10,
                                            buffer.offset
                                          );
                                        } else {
                                          encode32222222222(
                                            buffer.buffer,
                                            11,
                                            buffer.offset
                                          );
                                        }
                                        this._transport.send(
                                          buffer.buffer,
                                          buffer.offset,
                                          receiver && receiver.address || null
                                        );
                                      }
                                      /**
                                       * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                                       * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                                       * @function bacnet.resultResponse
                                       * @param {string} receiver - IP address of the target device.
                                       * @param {number} resultCode - Single value from BvlcResultFormat enum.
                                       */
                                      resultResponse(receiver, resultCode) {
                                        const buffer = this._getBuffer();
                                        encodeResult222222222(buffer, resultCode);
                                        encode32222222222(
                                          buffer.buffer,
                                          0,
                                          buffer.offset
                                        );
                                        this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                                      }
                                      /**
                                       * Unloads the current bacnet instance and closes the underlying UDP socket.
                                       * @function bacnet.close
                                       * @example
                                       * const bacnet = require('node-bacnet');
                                       * const client = new bacnet();
                                       *
                                       * client.close();
                                       */
                                      close() {
                                        this._transport.close();
                                      }
                                      /**
                                       * Helper function to take an array of enums and produce a bitstring suitable
                                       * for inclusion as a property.
                                       *
                                       * @example
                                       * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                                       *   {value: bacnet.createBitstring([
                                       *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                                       *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                                       *   ]),
                                       *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                                       * ],
                                       */
                                      static createBitstring(items) {
                                        let offset = 0;
                                        let bytes = [];
                                        let bitsUsed = 0;
                                        while (items.length) {
                                          let value = 0;
                                          items = items.filter((i) => {
                                            if (i >= offset + 8) {
                                              return true;
                                            }
                                            value |= 1 << i - offset;
                                            bitsUsed = Math.max(bitsUsed, i);
                                            return false;
                                          });
                                          bytes.push(value);
                                          offset += 8;
                                        }
                                        bitsUsed++;
                                        return {
                                          value: bytes,
                                          bitsUsed
                                        };
                                      }
                                    };
                                    var import_underscore222222222 = __toESM222222222(require("underscore"));
                                    var import_process222222222 = __toESM222222222(require("process"));
                                    var import__222222222 = __toESM222222222(require_dist222222222());
                                    var PropertyIdentifierToEnumMap222222222 = {};
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.OBJECT_TYPE] = import__222222222.enums.ObjectType;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__222222222.enums.Segmentation;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.EVENT_STATE] = import__222222222.enums.EventState;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.UNITS] = import__222222222.enums.EngineeringUnits;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.RELIABILITY] = import__222222222.enums.Reliability;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__222222222.enums.NotifyType;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.POLARITY] = import__222222222.enums.Polarity;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__222222222.enums.ServicesSupported;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__222222222.enums.ObjectTypesSupported;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.STATUS_FLAGS] = import__222222222.enums.StatusFlags;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__222222222.enums.LimitEnable;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.EVENT_ENABLE] = import__222222222.enums.EventTransitionBits;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__222222222.enums.EventTransitionBits;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__222222222.enums.DeviceStatus;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__222222222.enums.DeviceStatus;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.ACK_REQUIRED] = import__222222222.enums.EventTransitionBits;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.LOGGING_TYPE] = import__222222222.enums.LoggingType;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__222222222.enums.FileAccessMethod;
                                    PropertyIdentifierToEnumMap222222222[import__222222222.enums.PropertyIdentifier.NODE_TYPE] = import__222222222.enums.NodeType;
                                    var ObjectTypeSpecificPropertyIdentifierToEnumMap222222222 = {};
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BINARY_INPUT] = {};
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BINARY_INPUT][import__222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222.enums.BinaryPV;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BINARY_INPUT][import__222222222.enums.PropertyIdentifier.MODE] = import__222222222.enums.BinaryPV;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.ANALOG_INPUT] = {};
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.ANALOG_INPUT][import__222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222.enums.BinaryPV;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.ANALOG_OUTPUT] = {};
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.ANALOG_OUTPUT][import__222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222.enums.BinaryPV;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BINARY_OUTPUT] = {};
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BINARY_OUTPUT][import__222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222.enums.BinaryPV;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BINARY_OUTPUT][import__222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__222222222.enums.BinaryPV;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BINARY_VALUE] = {};
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BINARY_VALUE][import__222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222.enums.BinaryPV;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BINARY_VALUE][import__222222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__222222222.enums.BinaryPV;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222.enums.BinaryLightingPV;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BITSTRING_VALUE] = {};
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.BINARY_VALUE][import__222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222.enums.BinaryPV;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222.enums.LifeSafetyState;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222.enums.PropertyIdentifier.TRACKING_VALUE] = import__222222222.enums.LifeSafetyState;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222.enums.PropertyIdentifier.MODE] = import__222222222.enums.LifeSafetyMode;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__222222222.enums.LifeSafetyMode;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222.enums.PropertyIdentifier.SILENCED] = import__222222222.enums.LifeSafetyState;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__222222222.enums.LifeSafetyOperation;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222.enums.LifeSafetyState;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__222222222.enums.PropertyIdentifier.MODE] = import__222222222.enums.LifeSafetyMode;
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.LOAD_CONTROL] = {};
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[import__222222222.enums.ObjectType.LOAD_CONTROL][import__222222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222222.enums.ShedState;
                                    var propSubSet222222222 = import_process222222222.default.argv.includes("--all") ? Object.values(import__222222222.enums.PropertyIdentifier) : [
                                      /* normally supported from all devices */
                                      import__222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                                      import__222222222.enums.PropertyIdentifier.OBJECT_NAME,
                                      import__222222222.enums.PropertyIdentifier.OBJECT_TYPE,
                                      import__222222222.enums.PropertyIdentifier.PRESENT_VALUE,
                                      import__222222222.enums.PropertyIdentifier.STATUS_FLAGS,
                                      import__222222222.enums.PropertyIdentifier.EVENT_STATE,
                                      import__222222222.enums.PropertyIdentifier.RELIABILITY,
                                      import__222222222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                                      import__222222222.enums.PropertyIdentifier.UNITS,
                                      /* other properties */
                                      import__222222222.enums.PropertyIdentifier.DESCRIPTION,
                                      import__222222222.enums.PropertyIdentifier.SYSTEM_STATUS,
                                      import__222222222.enums.PropertyIdentifier.VENDOR_NAME,
                                      import__222222222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                                      import__222222222.enums.PropertyIdentifier.MODEL_NAME,
                                      import__222222222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                                      import__222222222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                                      import__222222222.enums.PropertyIdentifier.LOCATION,
                                      import__222222222.enums.PropertyIdentifier.LOCAL_DATE,
                                      import__222222222.enums.PropertyIdentifier.LOCAL_TIME,
                                      import__222222222.enums.PropertyIdentifier.UTC_OFFSET,
                                      import__222222222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                                      import__222222222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                                      import__222222222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                                      import__222222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                                      import__222222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                                      import__222222222.enums.PropertyIdentifier.OBJECT_LIST,
                                      import__222222222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                                      import__222222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                                      import__222222222.enums.PropertyIdentifier.APDU_TIMEOUT,
                                      import__222222222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                                      import__222222222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                                      import__222222222.enums.PropertyIdentifier.DATABASE_REVISION,
                                      import__222222222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                                      import__222222222.enums.PropertyIdentifier.MAX_MASTER,
                                      import__222222222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                                      import__222222222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                                    ];
                                    var debug4222222222 = import_process222222222.default.argv.includes("--debug");
                                    function getAllPropertiesManually222222222(address, objectId, callback, propList, result) {
                                      if (!propList) {
                                        propList = propSubSet222222222.map((x) => x);
                                      }
                                      if (!result) {
                                        result = [];
                                      }
                                      if (!propList.length) {
                                        return callback({
                                          values: [
                                            {
                                              objectId,
                                              values: result
                                            }
                                          ]
                                        });
                                      }
                                      const prop = propList.shift();
                                      bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                                        if (!err) {
                                          if (debug4222222222) {
                                            console.log("Handle value " + prop + ": ", JSON.stringify(value));
                                          }
                                          const objRes = value.property;
                                          objRes.value = value.values;
                                          result.push(objRes);
                                        } else {
                                        }
                                        getAllPropertiesManually222222222(address, objectId, callback, propList, result);
                                      });
                                    }
                                    function readBit222222222(buffer, i, bit) {
                                      return (buffer[i] >> bit) % 2;
                                    }
                                    function handleBitString222222222(buffer, bitsUsed, usedEnum) {
                                      const res = [];
                                      for (let i = 0; i < bitsUsed; i++) {
                                        const bufferIndex = Math.floor(i / 8);
                                        if (readBit222222222(buffer, bufferIndex, i % 8)) {
                                          res.push(import__222222222.enums.getEnumName(usedEnum, i));
                                        }
                                      }
                                      return res;
                                    }
                                    function parseValue222222222(address, objId2, parentType, value, supportsMultiple, callback) {
                                      let resValue = null;
                                      if (value && value.type && value.value !== null && value.value !== void 0) {
                                        switch (value.type) {
                                          case import__222222222.enums.ApplicationTag.NULL:
                                            resValue = null;
                                            break;
                                          case import__222222222.enums.ApplicationTag.BOOLEAN:
                                            resValue = !!value.value;
                                            break;
                                          case import__222222222.enums.ApplicationTag.UNSIGNED_INTEGER:
                                          case import__222222222.enums.ApplicationTag.SIGNED_INTEGER:
                                          case import__222222222.enums.ApplicationTag.REAL:
                                          case import__222222222.enums.ApplicationTag.DOUBLE:
                                          case import__222222222.enums.ApplicationTag.CHARACTER_STRING:
                                            resValue = value.value;
                                            break;
                                          case import__222222222.enums.ApplicationTag.DATE:
                                          case import__222222222.enums.ApplicationTag.TIME:
                                          case import__222222222.enums.ApplicationTag.TIMESTAMP:
                                            resValue = value.value;
                                            break;
                                          case import__222222222.enums.ApplicationTag.BIT_STRING:
                                            if (ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[parentType][objId2]) {
                                              resValue = handleBitString222222222(
                                                value.value.value,
                                                value.value.bitsUsed,
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[parentType][objId2]
                                              );
                                            } else if (PropertyIdentifierToEnumMap222222222[objId2]) {
                                              resValue = handleBitString222222222(
                                                value.value.value,
                                                value.value.bitsUsed,
                                                PropertyIdentifierToEnumMap222222222[objId2]
                                              );
                                            } else {
                                              if (parentType !== import__222222222.enums.ObjectType.BITSTRING_VALUE) {
                                                console.log(
                                                  "Unknown value for BIT_STRING type for objId " + import__222222222.enums.getEnumName(import__222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__222222222.enums.getEnumName(import__222222222.enums.ObjectType, parentType)
                                                );
                                              }
                                              resValue = value.value;
                                            }
                                            break;
                                          case import__222222222.enums.ApplicationTag.ENUMERATED:
                                            if (ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[parentType][objId2]) {
                                              resValue = import__222222222.enums.getEnumName(
                                                ObjectTypeSpecificPropertyIdentifierToEnumMap222222222[parentType][objId2],
                                                value.value
                                              );
                                            } else if (PropertyIdentifierToEnumMap222222222[objId2]) {
                                              resValue = import__222222222.enums.getEnumName(
                                                PropertyIdentifierToEnumMap222222222[objId2],
                                                value.value
                                              );
                                            } else {
                                              console.log(
                                                "Unknown value for ENUMERATED type for objId " + import__222222222.enums.getEnumName(import__222222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__222222222.enums.getEnumName(import__222222222.enums.ObjectType, parentType)
                                              );
                                              resValue = value.value;
                                            }
                                            break;
                                          case import__222222222.enums.ApplicationTag.OBJECTIDENTIFIER:
                                            if (objId2 === import__222222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__222222222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__222222222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                                              resValue = value.value;
                                            } else if (supportsMultiple) {
                                              const requestArray = [
                                                {
                                                  objectId: value.value,
                                                  properties: [{ id: 8 }]
                                                }
                                              ];
                                              bacnetClient.readPropertyMultiple(
                                                address,
                                                requestArray,
                                                (err, resValue2) => {
                                                  parseDeviceObject222222222(address, resValue2, value.value, true, callback);
                                                }
                                              );
                                              return;
                                            } else {
                                              getAllPropertiesManually222222222(address, value.value, (result) => {
                                                parseDeviceObject222222222(address, result, value.value, false, callback);
                                              });
                                              return;
                                            }
                                            break;
                                          case import__222222222.enums.ApplicationTag.OCTET_STRING:
                                            resValue = value.value;
                                            break;
                                          case import__222222222.enums.ApplicationTag.ERROR:
                                            resValue = {
                                              errorClass: import__222222222.enums.getEnumName(
                                                import__222222222.enums.ErrorClass,
                                                value.value.errorClass
                                              ),
                                              errorCode: import__222222222.enums.getEnumName(import__222222222.enums.ErrorCode, value.value.errorCode)
                                            };
                                            break;
                                          case import__222222222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                                          case import__222222222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                                          case import__222222222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                                          case import__222222222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                            resValue = value.value;
                                            break;
                                          case import__222222222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                            parseValue222222222(
                                              address,
                                              objId2,
                                              parentType,
                                              value.value,
                                              supportsMultiple,
                                              callback
                                            );
                                            return;
                                          case import__222222222.enums.ApplicationTag.READ_ACCESS_RESULT:
                                            resValue = value.value;
                                            break;
                                          default:
                                            console.log(
                                              "unknown type " + value.type + ": " + JSON.stringify(value)
                                            );
                                            resValue = value;
                                        }
                                      }
                                      setImmediate(() => callback(resValue));
                                    }
                                    function parseDeviceObject222222222(address, obj, parent, supportsMultiple, callback) {
                                      if (debug4222222222) {
                                        console.log(
                                          "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                                        );
                                      }
                                      if (!obj) {
                                        console.log("object not valid on parse device object");
                                        return;
                                      }
                                      if (!obj.values || !Array.isArray(obj.values)) {
                                        console.log("No device or invalid response");
                                        callback({ ERROR: "No device or invalid response" });
                                        return;
                                      }
                                      let cbCount = 0;
                                      let objDef = {};
                                      const finalize = () => {
                                        Object.keys(objDef).forEach((devId) => {
                                          Object.keys(objDef[devId]).forEach((objId2) => {
                                            if (objDef[devId][objId2].length === 1) {
                                              objDef[devId][objId2] = objDef[devId][objId2][0];
                                            }
                                          });
                                        });
                                        if (obj.values.length === 1) {
                                          objDef = objDef[obj.values[0].objectId.instance];
                                        }
                                        if (debug4222222222) {
                                          console.log(
                                            "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                                          );
                                        }
                                        callback(objDef);
                                      };
                                      obj.values.forEach((devBaseObj) => {
                                        if (!devBaseObj.objectId) {
                                          console.log("No device Id found in object data");
                                          return;
                                        }
                                        if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                                          console.log("No device type or instance found in object data");
                                          return;
                                        }
                                        if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                                          console.log("No device values response");
                                          return;
                                        }
                                        const deviceId = devBaseObj.objectId.instance;
                                        objDef[deviceId] = {};
                                        devBaseObj.values.forEach((devObj) => {
                                          let objId2 = import__222222222.enums.getEnumName(import__222222222.enums.PropertyIdentifier, devObj.id);
                                          if (devObj.index !== 4294967295) {
                                            objId2 += "-" + devObj.index;
                                          }
                                          if (debug4222222222) {
                                            console.log("Handle Object property:", deviceId, objId2, devObj.value);
                                          }
                                          devObj.value.forEach((val) => {
                                            if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                              objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                              objDef[deviceId][objId2].push(val.value);
                                              return;
                                            }
                                            cbCount++;
                                            parseValue222222222(
                                              address,
                                              devObj.id,
                                              parent.type,
                                              val,
                                              supportsMultiple,
                                              (parsedValue) => {
                                                if (debug4222222222) {
                                                  console.log(
                                                    "RETURN parsedValue",
                                                    deviceId,
                                                    objId2,
                                                    devObj.value,
                                                    parsedValue
                                                  );
                                                }
                                                objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                                objDef[deviceId][objId2].push(parsedValue);
                                                if (!--cbCount) {
                                                  finalize();
                                                }
                                              }
                                            );
                                          });
                                        });
                                      });
                                      if (cbCount === 0) {
                                        finalize();
                                      }
                                    }
                                    var limitToDevice222222222 = null;
                                    if (import_process222222222.default.argv.length === 3) {
                                      limitToDevice222222222 = parseInt(import_process222222222.default.argv[2]);
                                      if (isNaN(limitToDevice222222222)) {
                                        limitToDevice222222222 = null;
                                      }
                                    }
                                    var node_bacnet_default222222222 = Client222222222;
                                  }
                                });
                                var node_bacnet_exports22222222 = {};
                                __export22222222(node_bacnet_exports22222222, {
                                  _: () => import_underscore22222222.default,
                                  bacnetErrorToString: () => bacnetErrorToString22222222,
                                  default: () => node_bacnet_default22222222,
                                  enums: () => enum_exports22222222,
                                  parseValue: () => parseValue22222222
                                });
                                module22222222.exports = __toCommonJS22222222(node_bacnet_exports22222222);
                                var enum_exports22222222 = {};
                                __export22222222(enum_exports22222222, {
                                  ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL22222222,
                                  ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS22222222,
                                  ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG22222222,
                                  ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES22222222,
                                  ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE22222222,
                                  ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT22222222,
                                  ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE22222222,
                                  ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY22222222,
                                  ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID22222222,
                                  ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY22222222,
                                  ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY22222222,
                                  AbortReason: () => AbortReason22222222,
                                  AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable22222222,
                                  AccessCredentialDisable: () => AccessCredentialDisable22222222,
                                  AccessCredentialDisableReason: () => AccessCredentialDisableReason22222222,
                                  AccessEvent: () => AccessEvent22222222,
                                  AccessPassbackMode: () => AccessPassbackMode22222222,
                                  AccessUserType: () => AccessUserType22222222,
                                  AccessZoneOccupancyState: () => AccessZoneOccupancyState22222222,
                                  Action: () => Action22222222,
                                  ApplicationTag: () => ApplicationTag22222222,
                                  ApplicationTagName: () => ApplicationTagName22222222,
                                  AuthenticationFactorType: () => AuthenticationFactorType22222222,
                                  AuthenticationStatus: () => AuthenticationStatus22222222,
                                  AuthorizationExemption: () => AuthorizationExemption22222222,
                                  AuthorizationMode: () => AuthorizationMode22222222,
                                  BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH32222222,
                                  BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP22222222,
                                  BackupState: () => BackupState22222222,
                                  BinaryLightingPV: () => BinaryLightingPV22222222,
                                  BinaryPV: () => BinaryPV22222222,
                                  BvlcResultFormat: () => BvlcResultFormat22222222,
                                  BvlcResultPurpose: () => BvlcResultPurpose22222222,
                                  CharacterStringEncoding: () => CharacterStringEncoding22222222,
                                  ConfirmedServiceChoice: () => ConfirmedServiceChoice22222222,
                                  CovType: () => CovType22222222,
                                  DaysOfWeek: () => DaysOfWeek22222222,
                                  DeviceStatus: () => DeviceStatus22222222,
                                  DoorAlarmState: () => DoorAlarmState22222222,
                                  DoorSecuredStatus: () => DoorSecuredStatus22222222,
                                  DoorStatus: () => DoorStatus22222222,
                                  DoorValue: () => DoorValue22222222,
                                  EnableDisable: () => EnableDisable22222222,
                                  EngineeringUnits: () => EngineeringUnits22222222,
                                  ErrorClass: () => ErrorClass22222222,
                                  ErrorClassName: () => ErrorClassName22222222,
                                  ErrorCode: () => ErrorCode22222222,
                                  ErrorCodeName: () => ErrorCodeName22222222,
                                  EscalatorFault: () => EscalatorFault22222222,
                                  EscalatorMode: () => EscalatorMode22222222,
                                  EscalatorOperationDirection: () => EscalatorOperationDirection22222222,
                                  EventState: () => EventState22222222,
                                  EventTransitionBits: () => EventTransitionBits22222222,
                                  EventType: () => EventType22222222,
                                  FaultType: () => FaultType22222222,
                                  FileAccessMethod: () => FileAccessMethod22222222,
                                  IPMode: () => IPMode22222222,
                                  LifeSafetyMode: () => LifeSafetyMode22222222,
                                  LifeSafetyOperation: () => LifeSafetyOperation22222222,
                                  LifeSafetyState: () => LifeSafetyState22222222,
                                  LiftCarDirection: () => LiftCarDirection22222222,
                                  LiftCarDoorCommand: () => LiftCarDoorCommand22222222,
                                  LiftCarDriveStatus: () => LiftCarDriveStatus22222222,
                                  LiftCarMode: () => LiftCarMode22222222,
                                  LiftFault: () => LiftFault22222222,
                                  LiftGroupMode: () => LiftGroupMode22222222,
                                  LightingInProgress: () => LightingInProgress22222222,
                                  LightingOperation: () => LightingOperation22222222,
                                  LightingTransition: () => LightingTransition22222222,
                                  LimitEnable: () => LimitEnable22222222,
                                  LockStatus: () => LockStatus22222222,
                                  LogStatus: () => LogStatus22222222,
                                  LoggingType: () => LoggingType22222222,
                                  Maintenance: () => Maintenance22222222,
                                  MaxApduLengthAccepted: () => MaxApduLengthAccepted22222222,
                                  MaxSegmentsAccepted: () => MaxSegmentsAccepted22222222,
                                  NetworkLayerMessageType: () => NetworkLayerMessageType22222222,
                                  NetworkNumberQuality: () => NetworkNumberQuality22222222,
                                  NetworkPortCommand: () => NetworkPortCommand22222222,
                                  NetworkType: () => NetworkType22222222,
                                  NodeType: () => NodeType22222222,
                                  NotifyType: () => NotifyType22222222,
                                  NpduControlBit: () => NpduControlBit22222222,
                                  NpduControlPriority: () => NpduControlPriority22222222,
                                  ObjectType: () => ObjectType22222222,
                                  ObjectTypesSupported: () => ObjectTypesSupported22222222,
                                  PDU_TYPE_MASK: () => PDU_TYPE_MASK22222222,
                                  PduConReqBit: () => PduConReqBit22222222,
                                  PduSegAckBit: () => PduSegAckBit22222222,
                                  PduType: () => PduType22222222,
                                  Polarity: () => Polarity22222222,
                                  ProgramError: () => ProgramError22222222,
                                  ProgramRequest: () => ProgramRequest22222222,
                                  ProgramState: () => ProgramState22222222,
                                  PropertyIdentifier: () => PropertyIdentifier22222222,
                                  PropertyStates: () => PropertyStates22222222,
                                  ProtocolLevel: () => ProtocolLevel22222222,
                                  ReadRangeType: () => ReadRangeType22222222,
                                  ReinitializedState: () => ReinitializedState22222222,
                                  RejectReason: () => RejectReason22222222,
                                  Relationship: () => Relationship22222222,
                                  Reliability: () => Reliability22222222,
                                  RestartReason: () => RestartReason22222222,
                                  ResultFlags: () => ResultFlags22222222,
                                  SecurityLevel: () => SecurityLevel22222222,
                                  SecurityPolicy: () => SecurityPolicy22222222,
                                  Segmentation: () => Segmentation22222222,
                                  ServicesSupported: () => ServicesSupported22222222,
                                  ShedState: () => ShedState22222222,
                                  SilencedState: () => SilencedState22222222,
                                  StatusFlags: () => StatusFlags22222222,
                                  TimeStamp: () => TimeStamp22222222,
                                  TimerState: () => TimerState22222222,
                                  TimerTransition: () => TimerTransition22222222,
                                  UnconfirmedServiceChoice: () => UnconfirmedServiceChoice22222222,
                                  VTClass: () => VTClass22222222,
                                  WriteStatus: () => WriteStatus22222222,
                                  getEnumName: () => getEnumName22222222
                                });
                                var import_debug42222222 = __toESM22222222(require("debug"));
                                var debug52222222 = (0, import_debug42222222.default)("bacnet=enum=debug");
                                var trace32222222 = (0, import_debug42222222.default)("bacnet=enum=trace");
                                function invertEnum22222222(enumToInvert) {
                                  const invertedEnum = {};
                                  Object.keys(enumToInvert).forEach((key) => {
                                    invertedEnum[enumToInvert[key]] = key;
                                  });
                                  return invertedEnum;
                                }
                                function getEnumName22222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                                  if (!Number.isInteger(value)) {
                                    throw new Error(
                                      'getEnumName() can only be passed an integer value, was given "' + value + '"'
                                    );
                                  }
                                  let foundEntry;
                                  try {
                                    const invertedGroup = invertEnum22222222(group);
                                    foundEntry = invertedGroup[value];
                                    if (foundEntry === void 0 && undefinedFallbackValue) {
                                      foundEntry = undefinedFallbackValue;
                                    }
                                    if (foundEntry === void 0) {
                                      foundEntry = value.toString();
                                    } else if (addNumberValue) {
                                      foundEntry += "(" + value + ")";
                                    }
                                  } catch (e) {
                                    trace32222222(e.message);
                                    foundEntry = null;
                                  }
                                  return foundEntry;
                                }
                                var PDU_TYPE_MASK22222222 = 240;
                                var ASN1_MAX_OBJECT22222222 = 1023;
                                var ASN1_INSTANCE_BITS22222222 = 22;
                                var ASN1_MAX_INSTANCE22222222 = 4194303;
                                var ASN1_MAX_BITSTRING_BYTES22222222 = 15;
                                var ASN1_ARRAY_ALL22222222 = 4294967295;
                                var ASN1_NO_PRIORITY22222222 = 0;
                                var ASN1_MIN_PRIORITY22222222 = 1;
                                var ASN1_MAX_PRIORITY22222222 = 16;
                                var ASN1_MAX_APPLICATION_TAG22222222 = 16;
                                var ASN1_MAX_OBJECT_TYPE22222222 = 1024;
                                var ASN1_MAX_PROPERTY_ID22222222 = 4194303;
                                var BVLL_TYPE_BACNET_IP22222222 = 129;
                                var BVLC_HEADER_LENGTH32222222 = 4;
                                var ConfirmedServiceChoice22222222 = /* @__PURE__ */ ((ConfirmedServiceChoice222222222) => {
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["VT_DATA"] = 23] = "VT_DATA";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["READ_RANGE"] = 26] = "READ_RANGE";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                  ConfirmedServiceChoice222222222[ConfirmedServiceChoice222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                  return ConfirmedServiceChoice222222222;
                                })(ConfirmedServiceChoice22222222 || {});
                                var UnconfirmedServiceChoice22222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice222222222) => {
                                  UnconfirmedServiceChoice222222222[UnconfirmedServiceChoice222222222["I_AM"] = 0] = "I_AM";
                                  UnconfirmedServiceChoice222222222[UnconfirmedServiceChoice222222222["I_HAVE"] = 1] = "I_HAVE";
                                  UnconfirmedServiceChoice222222222[UnconfirmedServiceChoice222222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                                  UnconfirmedServiceChoice222222222[UnconfirmedServiceChoice222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                  UnconfirmedServiceChoice222222222[UnconfirmedServiceChoice222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                  UnconfirmedServiceChoice222222222[UnconfirmedServiceChoice222222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                                  UnconfirmedServiceChoice222222222[UnconfirmedServiceChoice222222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                                  UnconfirmedServiceChoice222222222[UnconfirmedServiceChoice222222222["WHO_HAS"] = 7] = "WHO_HAS";
                                  UnconfirmedServiceChoice222222222[UnconfirmedServiceChoice222222222["WHO_IS"] = 8] = "WHO_IS";
                                  UnconfirmedServiceChoice222222222[UnconfirmedServiceChoice222222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                                  UnconfirmedServiceChoice222222222[UnconfirmedServiceChoice222222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                                  UnconfirmedServiceChoice222222222[UnconfirmedServiceChoice222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                  return UnconfirmedServiceChoice222222222;
                                })(UnconfirmedServiceChoice22222222 || {});
                                var AbortReason22222222 = /* @__PURE__ */ ((AbortReason222222222) => {
                                  AbortReason222222222[AbortReason222222222["OTHER"] = 0] = "OTHER";
                                  AbortReason222222222[AbortReason222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                  AbortReason222222222[AbortReason222222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                                  AbortReason222222222[AbortReason222222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                  AbortReason222222222[AbortReason222222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                                  AbortReason222222222[AbortReason222222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                                  AbortReason222222222[AbortReason222222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                                  AbortReason222222222[AbortReason222222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                                  AbortReason222222222[AbortReason222222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                                  AbortReason222222222[AbortReason222222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                                  AbortReason222222222[AbortReason222222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                                  AbortReason222222222[AbortReason222222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                                  return AbortReason222222222;
                                })(AbortReason22222222 || {});
                                var RejectReason22222222 = /* @__PURE__ */ ((RejectReason222222222) => {
                                  RejectReason222222222[RejectReason222222222["OTHER"] = 0] = "OTHER";
                                  RejectReason222222222[RejectReason222222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                                  RejectReason222222222[RejectReason222222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                                  RejectReason222222222[RejectReason222222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                                  RejectReason222222222[RejectReason222222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                                  RejectReason222222222[RejectReason222222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                                  RejectReason222222222[RejectReason222222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                                  RejectReason222222222[RejectReason222222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                                  RejectReason222222222[RejectReason222222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                                  RejectReason222222222[RejectReason222222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                                  return RejectReason222222222;
                                })(RejectReason22222222 || {});
                                var ErrorClass22222222 = /* @__PURE__ */ ((ErrorClass222222222) => {
                                  ErrorClass222222222[ErrorClass222222222["DEVICE"] = 0] = "DEVICE";
                                  ErrorClass222222222[ErrorClass222222222["OBJECT"] = 1] = "OBJECT";
                                  ErrorClass222222222[ErrorClass222222222["PROPERTY"] = 2] = "PROPERTY";
                                  ErrorClass222222222[ErrorClass222222222["RESOURCES"] = 3] = "RESOURCES";
                                  ErrorClass222222222[ErrorClass222222222["SECURITY"] = 4] = "SECURITY";
                                  ErrorClass222222222[ErrorClass222222222["SERVICES"] = 5] = "SERVICES";
                                  ErrorClass222222222[ErrorClass222222222["VT"] = 6] = "VT";
                                  ErrorClass222222222[ErrorClass222222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                                  return ErrorClass222222222;
                                })(ErrorClass22222222 || {});
                                var ErrorClassName22222222 = invertEnum22222222(
                                  ErrorClass22222222
                                );
                                var ErrorCode22222222 = /* @__PURE__ */ ((ErrorCode222222222) => {
                                  ErrorCode222222222[ErrorCode222222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                                  ErrorCode222222222[ErrorCode222222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                                  ErrorCode222222222[ErrorCode222222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                                  ErrorCode222222222[ErrorCode222222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                                  ErrorCode222222222[ErrorCode222222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                                  ErrorCode222222222[ErrorCode222222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                                  ErrorCode222222222[ErrorCode222222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                                  ErrorCode222222222[ErrorCode222222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                                  ErrorCode222222222[ErrorCode222222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                                  ErrorCode222222222[ErrorCode222222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                                  ErrorCode222222222[ErrorCode222222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                                  ErrorCode222222222[ErrorCode222222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                                  ErrorCode222222222[ErrorCode222222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                                  ErrorCode222222222[ErrorCode222222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                                  ErrorCode222222222[ErrorCode222222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                                  ErrorCode222222222[ErrorCode222222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                                  ErrorCode222222222[ErrorCode222222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                                  ErrorCode222222222[ErrorCode222222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                                  ErrorCode222222222[ErrorCode222222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                                  ErrorCode222222222[ErrorCode222222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                                  ErrorCode222222222[ErrorCode222222222["BUSY"] = 82] = "BUSY";
                                  ErrorCode222222222[ErrorCode222222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                                  ErrorCode222222222[ErrorCode222222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                                  ErrorCode222222222[ErrorCode222222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                                  ErrorCode222222222[ErrorCode222222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                                  ErrorCode222222222[ErrorCode222222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                                  ErrorCode222222222[ErrorCode222222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                                  ErrorCode222222222[ErrorCode222222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                                  ErrorCode222222222[ErrorCode222222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                                  ErrorCode222222222[ErrorCode222222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                                  ErrorCode222222222[ErrorCode222222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                                  ErrorCode222222222[ErrorCode222222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                                  ErrorCode222222222[ErrorCode222222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                                  ErrorCode222222222[ErrorCode222222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                                  ErrorCode222222222[ErrorCode222222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                                  ErrorCode222222222[ErrorCode222222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                                  ErrorCode222222222[ErrorCode222222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                                  ErrorCode222222222[ErrorCode222222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                                  ErrorCode222222222[ErrorCode222222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                                  ErrorCode222222222[ErrorCode222222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                                  ErrorCode222222222[ErrorCode222222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                                  ErrorCode222222222[ErrorCode222222222["FILE_FULL"] = 128] = "FILE_FULL";
                                  ErrorCode222222222[ErrorCode222222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                                  ErrorCode222222222[ErrorCode222222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                                  ErrorCode222222222[ErrorCode222222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                                  ErrorCode222222222[ErrorCode222222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                                  ErrorCode222222222[ErrorCode222222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                                  ErrorCode222222222[ErrorCode222222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                                  ErrorCode222222222[ErrorCode222222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                                  ErrorCode222222222[ErrorCode222222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                                  ErrorCode222222222[ErrorCode222222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                                  ErrorCode222222222[ErrorCode222222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                                  ErrorCode222222222[ErrorCode222222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                                  ErrorCode222222222[ErrorCode222222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                                  ErrorCode222222222[ErrorCode222222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                                  ErrorCode222222222[ErrorCode222222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                                  ErrorCode222222222[ErrorCode222222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                                  ErrorCode222222222[ErrorCode222222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                                  ErrorCode222222222[ErrorCode222222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                                  ErrorCode222222222[ErrorCode222222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                                  ErrorCode222222222[ErrorCode222222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                                  ErrorCode222222222[ErrorCode222222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                                  ErrorCode222222222[ErrorCode222222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                                  ErrorCode222222222[ErrorCode222222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                                  ErrorCode222222222[ErrorCode222222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                                  ErrorCode222222222[ErrorCode222222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                                  ErrorCode222222222[ErrorCode222222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                                  ErrorCode222222222[ErrorCode222222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                                  ErrorCode222222222[ErrorCode222222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                                  ErrorCode222222222[ErrorCode222222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                                  ErrorCode222222222[ErrorCode222222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                                  ErrorCode222222222[ErrorCode222222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                                  ErrorCode222222222[ErrorCode222222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                                  ErrorCode222222222[ErrorCode222222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                                  ErrorCode222222222[ErrorCode222222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                                  ErrorCode222222222[ErrorCode222222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                                  ErrorCode222222222[ErrorCode222222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                                  ErrorCode222222222[ErrorCode222222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                                  ErrorCode222222222[ErrorCode222222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                                  ErrorCode222222222[ErrorCode222222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                                  ErrorCode222222222[ErrorCode222222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                                  ErrorCode222222222[ErrorCode222222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                                  ErrorCode222222222[ErrorCode222222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                                  ErrorCode222222222[ErrorCode222222222["OTHER"] = 0] = "OTHER";
                                  ErrorCode222222222[ErrorCode222222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                                  ErrorCode222222222[ErrorCode222222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                                  ErrorCode222222222[ErrorCode222222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                                  ErrorCode222222222[ErrorCode222222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                                  ErrorCode222222222[ErrorCode222222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                                  ErrorCode222222222[ErrorCode222222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                                  ErrorCode222222222[ErrorCode222222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                                  ErrorCode222222222[ErrorCode222222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                                  ErrorCode222222222[ErrorCode222222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                                  ErrorCode222222222[ErrorCode222222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                                  ErrorCode222222222[ErrorCode222222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                                  ErrorCode222222222[ErrorCode222222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                                  ErrorCode222222222[ErrorCode222222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                                  ErrorCode222222222[ErrorCode222222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                                  ErrorCode222222222[ErrorCode222222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                                  ErrorCode222222222[ErrorCode222222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                                  ErrorCode222222222[ErrorCode222222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                                  ErrorCode222222222[ErrorCode222222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                                  ErrorCode222222222[ErrorCode222222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                                  ErrorCode222222222[ErrorCode222222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                                  ErrorCode222222222[ErrorCode222222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                                  ErrorCode222222222[ErrorCode222222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                                  ErrorCode222222222[ErrorCode222222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                                  ErrorCode222222222[ErrorCode222222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                                  ErrorCode222222222[ErrorCode222222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                                  ErrorCode222222222[ErrorCode222222222["SUCCESS"] = 84] = "SUCCESS";
                                  ErrorCode222222222[ErrorCode222222222["TIMEOUT"] = 30] = "TIMEOUT";
                                  ErrorCode222222222[ErrorCode222222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                                  ErrorCode222222222[ErrorCode222222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                                  ErrorCode222222222[ErrorCode222222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                                  ErrorCode222222222[ErrorCode222222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                                  ErrorCode222222222[ErrorCode222222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                                  ErrorCode222222222[ErrorCode222222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                                  ErrorCode222222222[ErrorCode222222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                                  ErrorCode222222222[ErrorCode222222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                                  ErrorCode222222222[ErrorCode222222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                                  ErrorCode222222222[ErrorCode222222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                                  return ErrorCode222222222;
                                })(ErrorCode22222222 || {});
                                var ErrorCodeName22222222 = invertEnum22222222(
                                  ErrorCode22222222
                                );
                                var AccessAuthenticationFactorDisable22222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable222222222) => {
                                  AccessAuthenticationFactorDisable222222222[AccessAuthenticationFactorDisable222222222["NONE"] = 0] = "NONE";
                                  AccessAuthenticationFactorDisable222222222[AccessAuthenticationFactorDisable222222222["DISABLED"] = 1] = "DISABLED";
                                  AccessAuthenticationFactorDisable222222222[AccessAuthenticationFactorDisable222222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                                  AccessAuthenticationFactorDisable222222222[AccessAuthenticationFactorDisable222222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                                  AccessAuthenticationFactorDisable222222222[AccessAuthenticationFactorDisable222222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                                  AccessAuthenticationFactorDisable222222222[AccessAuthenticationFactorDisable222222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                                  return AccessAuthenticationFactorDisable222222222;
                                })(AccessAuthenticationFactorDisable22222222 || {});
                                var AccessCredentialDisable22222222 = /* @__PURE__ */ ((AccessCredentialDisable222222222) => {
                                  AccessCredentialDisable222222222[AccessCredentialDisable222222222["NONE"] = 0] = "NONE";
                                  AccessCredentialDisable222222222[AccessCredentialDisable222222222["DISABLE"] = 1] = "DISABLE";
                                  AccessCredentialDisable222222222[AccessCredentialDisable222222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                                  AccessCredentialDisable222222222[AccessCredentialDisable222222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                                  return AccessCredentialDisable222222222;
                                })(AccessCredentialDisable22222222 || {});
                                var AccessCredentialDisableReason22222222 = /* @__PURE__ */ ((AccessCredentialDisableReason222222222) => {
                                  AccessCredentialDisableReason222222222[AccessCredentialDisableReason222222222["DISABLED"] = 0] = "DISABLED";
                                  AccessCredentialDisableReason222222222[AccessCredentialDisableReason222222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                                  AccessCredentialDisableReason222222222[AccessCredentialDisableReason222222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                                  AccessCredentialDisableReason222222222[AccessCredentialDisableReason222222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                                  AccessCredentialDisableReason222222222[AccessCredentialDisableReason222222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                                  AccessCredentialDisableReason222222222[AccessCredentialDisableReason222222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                                  AccessCredentialDisableReason222222222[AccessCredentialDisableReason222222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                                  AccessCredentialDisableReason222222222[AccessCredentialDisableReason222222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                                  AccessCredentialDisableReason222222222[AccessCredentialDisableReason222222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                                  AccessCredentialDisableReason222222222[AccessCredentialDisableReason222222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                                  return AccessCredentialDisableReason222222222;
                                })(AccessCredentialDisableReason22222222 || {});
                                var AccessEvent22222222 = /* @__PURE__ */ ((AccessEvent222222222) => {
                                  AccessEvent222222222[AccessEvent222222222["NONE"] = 0] = "NONE";
                                  AccessEvent222222222[AccessEvent222222222["GRANTED"] = 1] = "GRANTED";
                                  AccessEvent222222222[AccessEvent222222222["MUSTER"] = 2] = "MUSTER";
                                  AccessEvent222222222[AccessEvent222222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                                  AccessEvent222222222[AccessEvent222222222["DURESS"] = 4] = "DURESS";
                                  AccessEvent222222222[AccessEvent222222222["TRACE"] = 5] = "TRACE";
                                  AccessEvent222222222[AccessEvent222222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                                  AccessEvent222222222[AccessEvent222222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                                  AccessEvent222222222[AccessEvent222222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                                  AccessEvent222222222[AccessEvent222222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                                  AccessEvent222222222[AccessEvent222222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                                  AccessEvent222222222[AccessEvent222222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                                  AccessEvent222222222[AccessEvent222222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                                  AccessEvent222222222[AccessEvent222222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                                  AccessEvent222222222[AccessEvent222222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                                  AccessEvent222222222[AccessEvent222222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                                  AccessEvent222222222[AccessEvent222222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                                  AccessEvent222222222[AccessEvent222222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                                  return AccessEvent222222222;
                                })(AccessEvent22222222 || {});
                                var AccessPassbackMode22222222 = /* @__PURE__ */ ((AccessPassbackMode222222222) => {
                                  AccessPassbackMode222222222[AccessPassbackMode222222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                                  AccessPassbackMode222222222[AccessPassbackMode222222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                                  AccessPassbackMode222222222[AccessPassbackMode222222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                                  return AccessPassbackMode222222222;
                                })(AccessPassbackMode22222222 || {});
                                var AccessUserType22222222 = /* @__PURE__ */ ((AccessUserType222222222) => {
                                  AccessUserType222222222[AccessUserType222222222["ASSET"] = 0] = "ASSET";
                                  AccessUserType222222222[AccessUserType222222222["GROUP"] = 1] = "GROUP";
                                  AccessUserType222222222[AccessUserType222222222["PERSON"] = 2] = "PERSON";
                                  return AccessUserType222222222;
                                })(AccessUserType22222222 || {});
                                var AccessZoneOccupancyState22222222 = /* @__PURE__ */ ((AccessZoneOccupancyState222222222) => {
                                  AccessZoneOccupancyState222222222[AccessZoneOccupancyState222222222["NORMAL"] = 0] = "NORMAL";
                                  AccessZoneOccupancyState222222222[AccessZoneOccupancyState222222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                                  AccessZoneOccupancyState222222222[AccessZoneOccupancyState222222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                                  AccessZoneOccupancyState222222222[AccessZoneOccupancyState222222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                                  AccessZoneOccupancyState222222222[AccessZoneOccupancyState222222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                                  AccessZoneOccupancyState222222222[AccessZoneOccupancyState222222222["DISABLED"] = 5] = "DISABLED";
                                  AccessZoneOccupancyState222222222[AccessZoneOccupancyState222222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                                  return AccessZoneOccupancyState222222222;
                                })(AccessZoneOccupancyState22222222 || {});
                                var Action22222222 = /* @__PURE__ */ ((Action222222222) => {
                                  Action222222222[Action222222222["DIRECT"] = 0] = "DIRECT";
                                  Action222222222[Action222222222["REVERSE"] = 1] = "REVERSE";
                                  return Action222222222;
                                })(Action22222222 || {});
                                var AuthenticationFactorType22222222 = /* @__PURE__ */ ((AuthenticationFactorType222222222) => {
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["UNDEFINED"] = 0] = "UNDEFINED";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["ERROR"] = 1] = "ERROR";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["CUSTOM"] = 2] = "CUSTOM";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["WIEGAND26"] = 8] = "WIEGAND26";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["WIEGAND37"] = 9] = "WIEGAND37";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["FASC_N"] = 13] = "FASC_N";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["GSA75"] = 17] = "GSA75";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["CHUID"] = 18] = "CHUID";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["GUID"] = 20] = "GUID";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["CBEFF_A"] = 21] = "CBEFF_A";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["CBEFF_B"] = 22] = "CBEFF_B";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["CBEFF_C"] = 23] = "CBEFF_C";
                                  AuthenticationFactorType222222222[AuthenticationFactorType222222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                                  return AuthenticationFactorType222222222;
                                })(AuthenticationFactorType22222222 || {});
                                var AuthenticationStatus22222222 = /* @__PURE__ */ ((AuthenticationStatus222222222) => {
                                  AuthenticationStatus222222222[AuthenticationStatus222222222["NOT_READY"] = 0] = "NOT_READY";
                                  AuthenticationStatus222222222[AuthenticationStatus222222222["READY"] = 1] = "READY";
                                  AuthenticationStatus222222222[AuthenticationStatus222222222["DISABLED"] = 2] = "DISABLED";
                                  AuthenticationStatus222222222[AuthenticationStatus222222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                                  AuthenticationStatus222222222[AuthenticationStatus222222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                                  AuthenticationStatus222222222[AuthenticationStatus222222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                                  AuthenticationStatus222222222[AuthenticationStatus222222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                                  return AuthenticationStatus222222222;
                                })(AuthenticationStatus22222222 || {});
                                var AuthorizationExemption22222222 = /* @__PURE__ */ ((AuthorizationExemption222222222) => {
                                  AuthorizationExemption222222222[AuthorizationExemption222222222["PASSBACK"] = 0] = "PASSBACK";
                                  AuthorizationExemption222222222[AuthorizationExemption222222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                                  AuthorizationExemption222222222[AuthorizationExemption222222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                                  AuthorizationExemption222222222[AuthorizationExemption222222222["LOCKOUT"] = 3] = "LOCKOUT";
                                  AuthorizationExemption222222222[AuthorizationExemption222222222["DENY"] = 4] = "DENY";
                                  AuthorizationExemption222222222[AuthorizationExemption222222222["VERIFICATION"] = 5] = "VERIFICATION";
                                  AuthorizationExemption222222222[AuthorizationExemption222222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                                  return AuthorizationExemption222222222;
                                })(AuthorizationExemption22222222 || {});
                                var AuthorizationMode22222222 = /* @__PURE__ */ ((AuthorizationMode222222222) => {
                                  AuthorizationMode222222222[AuthorizationMode222222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                                  AuthorizationMode222222222[AuthorizationMode222222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                                  AuthorizationMode222222222[AuthorizationMode222222222["DENY_ALL"] = 2] = "DENY_ALL";
                                  AuthorizationMode222222222[AuthorizationMode222222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                                  AuthorizationMode222222222[AuthorizationMode222222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                                  AuthorizationMode222222222[AuthorizationMode222222222["NONE"] = 5] = "NONE";
                                  return AuthorizationMode222222222;
                                })(AuthorizationMode22222222 || {});
                                var BackupState22222222 = /* @__PURE__ */ ((BackupState222222222) => {
                                  BackupState222222222[BackupState222222222["IDLE"] = 0] = "IDLE";
                                  BackupState222222222[BackupState222222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                                  BackupState222222222[BackupState222222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                                  BackupState222222222[BackupState222222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                                  BackupState222222222[BackupState222222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                                  BackupState222222222[BackupState222222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                                  BackupState222222222[BackupState222222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                                  return BackupState222222222;
                                })(BackupState22222222 || {});
                                var BinaryLightingPV22222222 = /* @__PURE__ */ ((BinaryLightingPV222222222) => {
                                  BinaryLightingPV222222222[BinaryLightingPV222222222["OFF"] = 0] = "OFF";
                                  BinaryLightingPV222222222[BinaryLightingPV222222222["ON"] = 1] = "ON";
                                  BinaryLightingPV222222222[BinaryLightingPV222222222["WARN"] = 2] = "WARN";
                                  BinaryLightingPV222222222[BinaryLightingPV222222222["WARN_OFF"] = 3] = "WARN_OFF";
                                  BinaryLightingPV222222222[BinaryLightingPV222222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                                  BinaryLightingPV222222222[BinaryLightingPV222222222["STOP"] = 5] = "STOP";
                                  return BinaryLightingPV222222222;
                                })(BinaryLightingPV22222222 || {});
                                var BinaryPV22222222 = /* @__PURE__ */ ((BinaryPV222222222) => {
                                  BinaryPV222222222[BinaryPV222222222["INACTIVE"] = 0] = "INACTIVE";
                                  BinaryPV222222222[BinaryPV222222222["ACTIVE"] = 1] = "ACTIVE";
                                  return BinaryPV222222222;
                                })(BinaryPV22222222 || {});
                                var DeviceStatus22222222 = /* @__PURE__ */ ((DeviceStatus222222222) => {
                                  DeviceStatus222222222[DeviceStatus222222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                                  DeviceStatus222222222[DeviceStatus222222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                                  DeviceStatus222222222[DeviceStatus222222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                                  DeviceStatus222222222[DeviceStatus222222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                                  DeviceStatus222222222[DeviceStatus222222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                                  DeviceStatus222222222[DeviceStatus222222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                                  return DeviceStatus222222222;
                                })(DeviceStatus22222222 || {});
                                var DoorAlarmState22222222 = /* @__PURE__ */ ((DoorAlarmState222222222) => {
                                  DoorAlarmState222222222[DoorAlarmState222222222["NORMAL"] = 0] = "NORMAL";
                                  DoorAlarmState222222222[DoorAlarmState222222222["ALARM"] = 1] = "ALARM";
                                  DoorAlarmState222222222[DoorAlarmState222222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                                  DoorAlarmState222222222[DoorAlarmState222222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                                  DoorAlarmState222222222[DoorAlarmState222222222["TAMPER"] = 4] = "TAMPER";
                                  DoorAlarmState222222222[DoorAlarmState222222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                                  DoorAlarmState222222222[DoorAlarmState222222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                                  DoorAlarmState222222222[DoorAlarmState222222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                                  DoorAlarmState222222222[DoorAlarmState222222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                                  return DoorAlarmState222222222;
                                })(DoorAlarmState22222222 || {});
                                var DoorSecuredStatus22222222 = /* @__PURE__ */ ((DoorSecuredStatus222222222) => {
                                  DoorSecuredStatus222222222[DoorSecuredStatus222222222["SECURED"] = 0] = "SECURED";
                                  DoorSecuredStatus222222222[DoorSecuredStatus222222222["UNSECURED"] = 1] = "UNSECURED";
                                  DoorSecuredStatus222222222[DoorSecuredStatus222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                  return DoorSecuredStatus222222222;
                                })(DoorSecuredStatus22222222 || {});
                                var DoorStatus22222222 = /* @__PURE__ */ ((DoorStatus222222222) => {
                                  DoorStatus222222222[DoorStatus222222222["CLOSED"] = 0] = "CLOSED";
                                  DoorStatus222222222[DoorStatus222222222["OPENED"] = 1] = "OPENED";
                                  DoorStatus222222222[DoorStatus222222222["UNKNOWN"] = 2] = "UNKNOWN";
                                  DoorStatus222222222[DoorStatus222222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                                  DoorStatus222222222[DoorStatus222222222["UNUSED"] = 4] = "UNUSED";
                                  DoorStatus222222222[DoorStatus222222222["NONE"] = 5] = "NONE";
                                  DoorStatus222222222[DoorStatus222222222["CLOSING"] = 6] = "CLOSING";
                                  DoorStatus222222222[DoorStatus222222222["OPENING"] = 7] = "OPENING";
                                  DoorStatus222222222[DoorStatus222222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                                  DoorStatus222222222[DoorStatus222222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                                  return DoorStatus222222222;
                                })(DoorStatus22222222 || {});
                                var DoorValue22222222 = /* @__PURE__ */ ((DoorValue222222222) => {
                                  DoorValue222222222[DoorValue222222222["LOCK"] = 0] = "LOCK";
                                  DoorValue222222222[DoorValue222222222["UNLOCK"] = 1] = "UNLOCK";
                                  DoorValue222222222[DoorValue222222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                                  DoorValue222222222[DoorValue222222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                                  return DoorValue222222222;
                                })(DoorValue22222222 || {});
                                var EngineeringUnits22222222 = /* @__PURE__ */ ((EngineeringUnits222222222) => {
                                  EngineeringUnits222222222[EngineeringUnits222222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                                  EngineeringUnits222222222[EngineeringUnits222222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CURRENCY1"] = 105] = "CURRENCY1";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CURRENCY2"] = 106] = "CURRENCY2";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CURRENCY3"] = 107] = "CURRENCY3";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CURRENCY4"] = 108] = "CURRENCY4";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CURRENCY5"] = 109] = "CURRENCY5";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CURRENCY6"] = 110] = "CURRENCY6";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CURRENCY7"] = 111] = "CURRENCY7";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CURRENCY8"] = 112] = "CURRENCY8";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CURRENCY9"] = 113] = "CURRENCY9";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CURRENCY10"] = 114] = "CURRENCY10";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["AMPERES"] = 3] = "AMPERES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DECIBELS"] = 199] = "DECIBELS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["FARADS"] = 170] = "FARADS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["HENRYS"] = 171] = "HENRYS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["OHMS"] = 4] = "OHMS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["OHM_METERS"] = 172] = "OHM_METERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOHMS"] = 122] = "KILOHMS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGOHMS"] = 123] = "MEGOHMS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["SIEMENS"] = 173] = "SIEMENS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["TESLAS"] = 175] = "TESLAS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["VOLTS"] = 5] = "VOLTS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                                  EngineeringUnits222222222[EngineeringUnits222222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["WEBERS"] = 178] = "WEBERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["JOULES"] = 16] = "JOULES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOJOULES"] = 17] = "KILOJOULES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["BTUS"] = 20] = "BTUS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["THERMS"] = 21] = "THERMS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["TON_HOURS"] = 22] = "TON_HOURS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                                  EngineeringUnits222222222[EngineeringUnits222222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                                  EngineeringUnits222222222[EngineeringUnits222222222["NEWTON"] = 153] = "NEWTON";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["HERTZ"] = 27] = "HERTZ";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PER_HOUR"] = 131] = "PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MICROMETERS"] = 194] = "MICROMETERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOMETERS"] = 193] = "KILOMETERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["METERS"] = 31] = "METERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["INCHES"] = 32] = "INCHES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["FEET"] = 33] = "FEET";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CANDELAS"] = 179] = "CANDELAS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["LUMENS"] = 36] = "LUMENS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["LUXES"] = 37] = "LUXES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["GRAMS"] = 195] = "GRAMS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["TONS"] = 41] = "TONS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["WATTS"] = 47] = "WATTS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOWATTS"] = 48] = "KILOWATTS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PASCALS"] = 53] = "PASCALS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIBARS"] = 134] = "MILLIBARS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["BARS"] = 55] = "BARS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                                  EngineeringUnits222222222[EngineeringUnits222222222["YEARS"] = 67] = "YEARS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MONTHS"] = 68] = "MONTHS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["WEEKS"] = 69] = "WEEKS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DAYS"] = 70] = "DAYS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["HOURS"] = 71] = "HOURS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MINUTES"] = 72] = "MINUTES";
                                  EngineeringUnits222222222[EngineeringUnits222222222["SECONDS"] = 73] = "SECONDS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLILITERS"] = 197] = "MILLILITERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["LITERS"] = 82] = "LITERS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["US_GALLONS"] = 83] = "US_GALLONS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["NO_UNITS"] = 95] = "NO_UNITS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PERCENT"] = 98] = "PERCENT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PER_SECOND"] = 101] = "PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["RADIANS"] = 103] = "RADIANS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                                  EngineeringUnits222222222[EngineeringUnits222222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                                  EngineeringUnits222222222[EngineeringUnits222222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                                  EngineeringUnits222222222[EngineeringUnits222222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PER_MILLE"] = 207] = "PER_MILLE";
                                  EngineeringUnits222222222[EngineeringUnits222222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                                  EngineeringUnits222222222[EngineeringUnits222222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                                  EngineeringUnits222222222[EngineeringUnits222222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["BECQUERELS"] = 222] = "BECQUERELS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["GRAY"] = 225] = "GRAY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MICROGRAY"] = 227] = "MICROGRAY";
                                  EngineeringUnits222222222[EngineeringUnits222222222["SIEVERTS"] = 228] = "SIEVERTS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIREMS"] = 47814] = "MILLIREMS";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                                  EngineeringUnits222222222[EngineeringUnits222222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                                  EngineeringUnits222222222[EngineeringUnits222222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                                  EngineeringUnits222222222[EngineeringUnits222222222["PH"] = 234] = "PH";
                                  EngineeringUnits222222222[EngineeringUnits222222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                                  EngineeringUnits222222222[EngineeringUnits222222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                                  return EngineeringUnits222222222;
                                })(EngineeringUnits22222222 || {});
                                var EscalatorFault22222222 = /* @__PURE__ */ ((EscalatorFault222222222) => {
                                  EscalatorFault222222222[EscalatorFault222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                  EscalatorFault222222222[EscalatorFault222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                  EscalatorFault222222222[EscalatorFault222222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                                  EscalatorFault222222222[EscalatorFault222222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                                  EscalatorFault222222222[EscalatorFault222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                  EscalatorFault222222222[EscalatorFault222222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                                  EscalatorFault222222222[EscalatorFault222222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                                  EscalatorFault222222222[EscalatorFault222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                                  EscalatorFault222222222[EscalatorFault222222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                                  return EscalatorFault222222222;
                                })(EscalatorFault22222222 || {});
                                var EscalatorMode22222222 = /* @__PURE__ */ ((EscalatorMode222222222) => {
                                  EscalatorMode222222222[EscalatorMode222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                  EscalatorMode222222222[EscalatorMode222222222["STOP"] = 1] = "STOP";
                                  EscalatorMode222222222[EscalatorMode222222222["UP"] = 2] = "UP";
                                  EscalatorMode222222222[EscalatorMode222222222["DOWN"] = 3] = "DOWN";
                                  EscalatorMode222222222[EscalatorMode222222222["INSPECTION"] = 4] = "INSPECTION";
                                  EscalatorMode222222222[EscalatorMode222222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                                  return EscalatorMode222222222;
                                })(EscalatorMode22222222 || {});
                                var EscalatorOperationDirection22222222 = /* @__PURE__ */ ((EscalatorOperationDirection222222222) => {
                                  EscalatorOperationDirection222222222[EscalatorOperationDirection222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                  EscalatorOperationDirection222222222[EscalatorOperationDirection222222222["STOPPED"] = 1] = "STOPPED";
                                  EscalatorOperationDirection222222222[EscalatorOperationDirection222222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                                  EscalatorOperationDirection222222222[EscalatorOperationDirection222222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                                  EscalatorOperationDirection222222222[EscalatorOperationDirection222222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                                  EscalatorOperationDirection222222222[EscalatorOperationDirection222222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                                  return EscalatorOperationDirection222222222;
                                })(EscalatorOperationDirection22222222 || {});
                                var EventState22222222 = /* @__PURE__ */ ((EventState222222222) => {
                                  EventState222222222[EventState222222222["NORMAL"] = 0] = "NORMAL";
                                  EventState222222222[EventState222222222["FAULT"] = 1] = "FAULT";
                                  EventState222222222[EventState222222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                                  EventState222222222[EventState222222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                                  EventState222222222[EventState222222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                                  EventState222222222[EventState222222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                                  return EventState222222222;
                                })(EventState22222222 || {});
                                var EventType22222222 = /* @__PURE__ */ ((EventType222222222) => {
                                  EventType222222222[EventType222222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                                  EventType222222222[EventType222222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                                  EventType222222222[EventType222222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                                  EventType222222222[EventType222222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                                  EventType222222222[EventType222222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                                  EventType222222222[EventType222222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                                  EventType222222222[EventType222222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                                  EventType222222222[EventType222222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                                  EventType222222222[EventType222222222["EXTENDED"] = 9] = "EXTENDED";
                                  EventType222222222[EventType222222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                                  EventType222222222[EventType222222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                                  EventType222222222[EventType222222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                                  EventType222222222[EventType222222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                                  EventType222222222[EventType222222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                                  EventType222222222[EventType222222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                                  EventType222222222[EventType222222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                                  EventType222222222[EventType222222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                                  EventType222222222[EventType222222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                                  EventType222222222[EventType222222222["NONE"] = 20] = "NONE";
                                  EventType222222222[EventType222222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                                  EventType222222222[EventType222222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                                  return EventType222222222;
                                })(EventType22222222 || {});
                                var FaultType22222222 = /* @__PURE__ */ ((FaultType222222222) => {
                                  FaultType222222222[FaultType222222222["NONE"] = 0] = "NONE";
                                  FaultType222222222[FaultType222222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                                  FaultType222222222[FaultType222222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                                  FaultType222222222[FaultType222222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                                  FaultType222222222[FaultType222222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                                  FaultType222222222[FaultType222222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                                  FaultType222222222[FaultType222222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                                  FaultType222222222[FaultType222222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                                  return FaultType222222222;
                                })(FaultType22222222 || {});
                                var FileAccessMethod22222222 = /* @__PURE__ */ ((FileAccessMethod222222222) => {
                                  FileAccessMethod222222222[FileAccessMethod222222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                                  FileAccessMethod222222222[FileAccessMethod222222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                                  return FileAccessMethod222222222;
                                })(FileAccessMethod22222222 || {});
                                var IPMode22222222 = /* @__PURE__ */ ((IPMode222222222) => {
                                  IPMode222222222[IPMode222222222["NORMAL"] = 0] = "NORMAL";
                                  IPMode222222222[IPMode222222222["FOREIGN"] = 1] = "FOREIGN";
                                  IPMode222222222[IPMode222222222["BBMD"] = 2] = "BBMD";
                                  return IPMode222222222;
                                })(IPMode22222222 || {});
                                var LifeSafetyMode22222222 = /* @__PURE__ */ ((LifeSafetyMode222222222) => {
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["OFF"] = 0] = "OFF";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["ON"] = 1] = "ON";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["TEST"] = 2] = "TEST";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["MANNED"] = 3] = "MANNED";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["UNMANNED"] = 4] = "UNMANNED";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["ARMED"] = 5] = "ARMED";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["DISARMED"] = 6] = "DISARMED";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["PREARMED"] = 7] = "PREARMED";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["SLOW"] = 8] = "SLOW";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["FAST"] = 9] = "FAST";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["ENABLED"] = 11] = "ENABLED";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["DISABLED"] = 12] = "DISABLED";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                                  LifeSafetyMode222222222[LifeSafetyMode222222222["DEFAULT"] = 14] = "DEFAULT";
                                  return LifeSafetyMode222222222;
                                })(LifeSafetyMode22222222 || {});
                                var LifeSafetyOperation22222222 = /* @__PURE__ */ ((LifeSafetyOperation222222222) => {
                                  LifeSafetyOperation222222222[LifeSafetyOperation222222222["NONE"] = 0] = "NONE";
                                  LifeSafetyOperation222222222[LifeSafetyOperation222222222["SILENCE"] = 1] = "SILENCE";
                                  LifeSafetyOperation222222222[LifeSafetyOperation222222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                                  LifeSafetyOperation222222222[LifeSafetyOperation222222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                                  LifeSafetyOperation222222222[LifeSafetyOperation222222222["RESET"] = 4] = "RESET";
                                  LifeSafetyOperation222222222[LifeSafetyOperation222222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                                  LifeSafetyOperation222222222[LifeSafetyOperation222222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                                  LifeSafetyOperation222222222[LifeSafetyOperation222222222["UNSILENCE"] = 7] = "UNSILENCE";
                                  LifeSafetyOperation222222222[LifeSafetyOperation222222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                                  LifeSafetyOperation222222222[LifeSafetyOperation222222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                                  return LifeSafetyOperation222222222;
                                })(LifeSafetyOperation22222222 || {});
                                var LifeSafetyState22222222 = /* @__PURE__ */ ((LifeSafetyState222222222) => {
                                  LifeSafetyState222222222[LifeSafetyState222222222["QUIET"] = 0] = "QUIET";
                                  LifeSafetyState222222222[LifeSafetyState222222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                                  LifeSafetyState222222222[LifeSafetyState222222222["ALARM"] = 2] = "ALARM";
                                  LifeSafetyState222222222[LifeSafetyState222222222["FAULT"] = 3] = "FAULT";
                                  LifeSafetyState222222222[LifeSafetyState222222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                                  LifeSafetyState222222222[LifeSafetyState222222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                                  LifeSafetyState222222222[LifeSafetyState222222222["NOT_READY"] = 6] = "NOT_READY";
                                  LifeSafetyState222222222[LifeSafetyState222222222["ACTIVE"] = 7] = "ACTIVE";
                                  LifeSafetyState222222222[LifeSafetyState222222222["TAMPER"] = 8] = "TAMPER";
                                  LifeSafetyState222222222[LifeSafetyState222222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                                  LifeSafetyState222222222[LifeSafetyState222222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                                  LifeSafetyState222222222[LifeSafetyState222222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                                  LifeSafetyState222222222[LifeSafetyState222222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                                  LifeSafetyState222222222[LifeSafetyState222222222["HOLDUP"] = 13] = "HOLDUP";
                                  LifeSafetyState222222222[LifeSafetyState222222222["DURESS"] = 14] = "DURESS";
                                  LifeSafetyState222222222[LifeSafetyState222222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                                  LifeSafetyState222222222[LifeSafetyState222222222["ABNORMAL"] = 16] = "ABNORMAL";
                                  LifeSafetyState222222222[LifeSafetyState222222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                                  LifeSafetyState222222222[LifeSafetyState222222222["DELAYED"] = 18] = "DELAYED";
                                  LifeSafetyState222222222[LifeSafetyState222222222["BLOCKED"] = 19] = "BLOCKED";
                                  LifeSafetyState222222222[LifeSafetyState222222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                                  LifeSafetyState222222222[LifeSafetyState222222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                                  LifeSafetyState222222222[LifeSafetyState222222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                                  LifeSafetyState222222222[LifeSafetyState222222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                                  return LifeSafetyState222222222;
                                })(LifeSafetyState22222222 || {});
                                var LiftCarDirection22222222 = /* @__PURE__ */ ((LiftCarDirection222222222) => {
                                  LiftCarDirection222222222[LiftCarDirection222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                  LiftCarDirection222222222[LiftCarDirection222222222["NONE"] = 1] = "NONE";
                                  LiftCarDirection222222222[LiftCarDirection222222222["STOPPED"] = 2] = "STOPPED";
                                  LiftCarDirection222222222[LiftCarDirection222222222["UP"] = 3] = "UP";
                                  LiftCarDirection222222222[LiftCarDirection222222222["DOWN"] = 4] = "DOWN";
                                  LiftCarDirection222222222[LiftCarDirection222222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                                  return LiftCarDirection222222222;
                                })(LiftCarDirection22222222 || {});
                                var LiftCarDoorCommand22222222 = /* @__PURE__ */ ((LiftCarDoorCommand222222222) => {
                                  LiftCarDoorCommand222222222[LiftCarDoorCommand222222222["NONE"] = 0] = "NONE";
                                  LiftCarDoorCommand222222222[LiftCarDoorCommand222222222["OPEN"] = 1] = "OPEN";
                                  LiftCarDoorCommand222222222[LiftCarDoorCommand222222222["CLOSE"] = 2] = "CLOSE";
                                  return LiftCarDoorCommand222222222;
                                })(LiftCarDoorCommand22222222 || {});
                                var LiftCarDriveStatus22222222 = /* @__PURE__ */ ((LiftCarDriveStatus222222222) => {
                                  LiftCarDriveStatus222222222[LiftCarDriveStatus222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                  LiftCarDriveStatus222222222[LiftCarDriveStatus222222222["STATIONARY"] = 1] = "STATIONARY";
                                  LiftCarDriveStatus222222222[LiftCarDriveStatus222222222["BRAKING"] = 2] = "BRAKING";
                                  LiftCarDriveStatus222222222[LiftCarDriveStatus222222222["ACCELERATE"] = 3] = "ACCELERATE";
                                  LiftCarDriveStatus222222222[LiftCarDriveStatus222222222["DECELERATE"] = 4] = "DECELERATE";
                                  LiftCarDriveStatus222222222[LiftCarDriveStatus222222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                                  LiftCarDriveStatus222222222[LiftCarDriveStatus222222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                                  LiftCarDriveStatus222222222[LiftCarDriveStatus222222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                                  LiftCarDriveStatus222222222[LiftCarDriveStatus222222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                                  LiftCarDriveStatus222222222[LiftCarDriveStatus222222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                                  return LiftCarDriveStatus222222222;
                                })(LiftCarDriveStatus22222222 || {});
                                var LiftCarMode22222222 = /* @__PURE__ */ ((LiftCarMode222222222) => {
                                  LiftCarMode222222222[LiftCarMode222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                  LiftCarMode222222222[LiftCarMode222222222["NORMAL"] = 1] = "NORMAL";
                                  LiftCarMode222222222[LiftCarMode222222222["VIP"] = 2] = "VIP";
                                  LiftCarMode222222222[LiftCarMode222222222["HOMING"] = 3] = "HOMING";
                                  LiftCarMode222222222[LiftCarMode222222222["PARKING"] = 4] = "PARKING";
                                  LiftCarMode222222222[LiftCarMode222222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                                  LiftCarMode222222222[LiftCarMode222222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                                  LiftCarMode222222222[LiftCarMode222222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                                  LiftCarMode222222222[LiftCarMode222222222["INSPECTION"] = 8] = "INSPECTION";
                                  LiftCarMode222222222[LiftCarMode222222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                                  LiftCarMode222222222[LiftCarMode222222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                                  LiftCarMode222222222[LiftCarMode222222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                                  LiftCarMode222222222[LiftCarMode222222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                                  LiftCarMode222222222[LiftCarMode222222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                                  return LiftCarMode222222222;
                                })(LiftCarMode22222222 || {});
                                var LiftFault22222222 = /* @__PURE__ */ ((LiftFault222222222) => {
                                  LiftFault222222222[LiftFault222222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                                  LiftFault222222222[LiftFault222222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                                  LiftFault222222222[LiftFault222222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                                  LiftFault222222222[LiftFault222222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                                  LiftFault222222222[LiftFault222222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                                  LiftFault222222222[LiftFault222222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                                  LiftFault222222222[LiftFault222222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                                  LiftFault222222222[LiftFault222222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                                  LiftFault222222222[LiftFault222222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                                  LiftFault222222222[LiftFault222222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                                  LiftFault222222222[LiftFault222222222["START_FAILURE"] = 10] = "START_FAILURE";
                                  LiftFault222222222[LiftFault222222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                                  LiftFault222222222[LiftFault222222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                                  LiftFault222222222[LiftFault222222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                                  LiftFault222222222[LiftFault222222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                                  LiftFault222222222[LiftFault222222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                                  LiftFault222222222[LiftFault222222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                                  return LiftFault222222222;
                                })(LiftFault22222222 || {});
                                var LiftGroupMode22222222 = /* @__PURE__ */ ((LiftGroupMode222222222) => {
                                  LiftGroupMode222222222[LiftGroupMode222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                  LiftGroupMode222222222[LiftGroupMode222222222["NORMAL"] = 1] = "NORMAL";
                                  LiftGroupMode222222222[LiftGroupMode222222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                                  LiftGroupMode222222222[LiftGroupMode222222222["TWO_WAY"] = 3] = "TWO_WAY";
                                  LiftGroupMode222222222[LiftGroupMode222222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                                  LiftGroupMode222222222[LiftGroupMode222222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                                  LiftGroupMode222222222[LiftGroupMode222222222["UP_PEAK"] = 6] = "UP_PEAK";
                                  return LiftGroupMode222222222;
                                })(LiftGroupMode22222222 || {});
                                var LightingInProgress22222222 = /* @__PURE__ */ ((LightingInProgress222222222) => {
                                  LightingInProgress222222222[LightingInProgress222222222["IDLE"] = 0] = "IDLE";
                                  LightingInProgress222222222[LightingInProgress222222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                                  LightingInProgress222222222[LightingInProgress222222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                                  LightingInProgress222222222[LightingInProgress222222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                                  LightingInProgress222222222[LightingInProgress222222222["OTHER"] = 4] = "OTHER";
                                  return LightingInProgress222222222;
                                })(LightingInProgress22222222 || {});
                                var LightingOperation22222222 = /* @__PURE__ */ ((LightingOperation222222222) => {
                                  LightingOperation222222222[LightingOperation222222222["NONE"] = 0] = "NONE";
                                  LightingOperation222222222[LightingOperation222222222["FADE_TO"] = 1] = "FADE_TO";
                                  LightingOperation222222222[LightingOperation222222222["RAMP_TO"] = 2] = "RAMP_TO";
                                  LightingOperation222222222[LightingOperation222222222["STEP_UP"] = 3] = "STEP_UP";
                                  LightingOperation222222222[LightingOperation222222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                                  LightingOperation222222222[LightingOperation222222222["STEP_ON"] = 5] = "STEP_ON";
                                  LightingOperation222222222[LightingOperation222222222["STEP_OFF"] = 6] = "STEP_OFF";
                                  LightingOperation222222222[LightingOperation222222222["WARN"] = 7] = "WARN";
                                  LightingOperation222222222[LightingOperation222222222["WARN_OFF"] = 8] = "WARN_OFF";
                                  LightingOperation222222222[LightingOperation222222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                                  LightingOperation222222222[LightingOperation222222222["STOP"] = 10] = "STOP";
                                  return LightingOperation222222222;
                                })(LightingOperation22222222 || {});
                                var LightingTransition22222222 = /* @__PURE__ */ ((LightingTransition222222222) => {
                                  LightingTransition222222222[LightingTransition222222222["NONE"] = 0] = "NONE";
                                  LightingTransition222222222[LightingTransition222222222["FADE"] = 1] = "FADE";
                                  LightingTransition222222222[LightingTransition222222222["RAMP"] = 2] = "RAMP";
                                  return LightingTransition222222222;
                                })(LightingTransition22222222 || {});
                                var LockStatus22222222 = /* @__PURE__ */ ((LockStatus222222222) => {
                                  LockStatus222222222[LockStatus222222222["LOCKED"] = 0] = "LOCKED";
                                  LockStatus222222222[LockStatus222222222["UNLOCKED"] = 1] = "UNLOCKED";
                                  LockStatus222222222[LockStatus222222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                                  LockStatus222222222[LockStatus222222222["UNUSED"] = 3] = "UNUSED";
                                  LockStatus222222222[LockStatus222222222["UNKNOWN"] = 4] = "UNKNOWN";
                                  return LockStatus222222222;
                                })(LockStatus22222222 || {});
                                var LoggingType22222222 = /* @__PURE__ */ ((LoggingType222222222) => {
                                  LoggingType222222222[LoggingType222222222["POLLED"] = 0] = "POLLED";
                                  LoggingType222222222[LoggingType222222222["COV"] = 1] = "COV";
                                  LoggingType222222222[LoggingType222222222["TRIGGERED"] = 2] = "TRIGGERED";
                                  return LoggingType222222222;
                                })(LoggingType22222222 || {});
                                var Maintenance22222222 = /* @__PURE__ */ ((Maintenance222222222) => {
                                  Maintenance222222222[Maintenance222222222["NONE"] = 0] = "NONE";
                                  Maintenance222222222[Maintenance222222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                                  Maintenance222222222[Maintenance222222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                                  Maintenance222222222[Maintenance222222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                                  return Maintenance222222222;
                                })(Maintenance22222222 || {});
                                var NetworkNumberQuality22222222 = /* @__PURE__ */ ((NetworkNumberQuality222222222) => {
                                  NetworkNumberQuality222222222[NetworkNumberQuality222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                  NetworkNumberQuality222222222[NetworkNumberQuality222222222["LEARNED"] = 1] = "LEARNED";
                                  NetworkNumberQuality222222222[NetworkNumberQuality222222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                                  NetworkNumberQuality222222222[NetworkNumberQuality222222222["CONFIGURED"] = 3] = "CONFIGURED";
                                  return NetworkNumberQuality222222222;
                                })(NetworkNumberQuality22222222 || {});
                                var NetworkPortCommand22222222 = /* @__PURE__ */ ((NetworkPortCommand222222222) => {
                                  NetworkPortCommand222222222[NetworkPortCommand222222222["IDLE"] = 0] = "IDLE";
                                  NetworkPortCommand222222222[NetworkPortCommand222222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                                  NetworkPortCommand222222222[NetworkPortCommand222222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                                  NetworkPortCommand222222222[NetworkPortCommand222222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                                  NetworkPortCommand222222222[NetworkPortCommand222222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                                  NetworkPortCommand222222222[NetworkPortCommand222222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                                  NetworkPortCommand222222222[NetworkPortCommand222222222["DISCONNECT"] = 6] = "DISCONNECT";
                                  NetworkPortCommand222222222[NetworkPortCommand222222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                                  return NetworkPortCommand222222222;
                                })(NetworkPortCommand22222222 || {});
                                var NetworkType22222222 = /* @__PURE__ */ ((NetworkType222222222) => {
                                  NetworkType222222222[NetworkType222222222["ETHERNET"] = 0] = "ETHERNET";
                                  NetworkType222222222[NetworkType222222222["ARCNET"] = 1] = "ARCNET";
                                  NetworkType222222222[NetworkType222222222["MSTP"] = 2] = "MSTP";
                                  NetworkType222222222[NetworkType222222222["PTP"] = 3] = "PTP";
                                  NetworkType222222222[NetworkType222222222["LONTALK"] = 4] = "LONTALK";
                                  NetworkType222222222[NetworkType222222222["IPV4"] = 5] = "IPV4";
                                  NetworkType222222222[NetworkType222222222["ZIGBEE"] = 6] = "ZIGBEE";
                                  NetworkType222222222[NetworkType222222222["VIRTUAL"] = 7] = "VIRTUAL";
                                  NetworkType222222222[NetworkType222222222["IPV6"] = 9] = "IPV6";
                                  NetworkType222222222[NetworkType222222222["SERIAL"] = 10] = "SERIAL";
                                  return NetworkType222222222;
                                })(NetworkType22222222 || {});
                                var NodeType22222222 = /* @__PURE__ */ ((NodeType222222222) => {
                                  NodeType222222222[NodeType222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                  NodeType222222222[NodeType222222222["SYSTEM"] = 1] = "SYSTEM";
                                  NodeType222222222[NodeType222222222["NETWORK"] = 2] = "NETWORK";
                                  NodeType222222222[NodeType222222222["DEVICE"] = 3] = "DEVICE";
                                  NodeType222222222[NodeType222222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                                  NodeType222222222[NodeType222222222["AREA"] = 5] = "AREA";
                                  NodeType222222222[NodeType222222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                                  NodeType222222222[NodeType222222222["POINT"] = 7] = "POINT";
                                  NodeType222222222[NodeType222222222["COLLECTION"] = 8] = "COLLECTION";
                                  NodeType222222222[NodeType222222222["PROPERTY"] = 9] = "PROPERTY";
                                  NodeType222222222[NodeType222222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                                  NodeType222222222[NodeType222222222["OTHER"] = 11] = "OTHER";
                                  NodeType222222222[NodeType222222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                                  NodeType222222222[NodeType222222222["BUILDING"] = 13] = "BUILDING";
                                  NodeType222222222[NodeType222222222["FLOOR"] = 14] = "FLOOR";
                                  NodeType222222222[NodeType222222222["SECTION"] = 15] = "SECTION";
                                  NodeType222222222[NodeType222222222["MODULE"] = 16] = "MODULE";
                                  NodeType222222222[NodeType222222222["TREE"] = 17] = "TREE";
                                  NodeType222222222[NodeType222222222["MEMBER"] = 18] = "MEMBER";
                                  NodeType222222222[NodeType222222222["PROTOCOL"] = 19] = "PROTOCOL";
                                  NodeType222222222[NodeType222222222["ROOM"] = 20] = "ROOM";
                                  NodeType222222222[NodeType222222222["ZONE"] = 21] = "ZONE";
                                  return NodeType222222222;
                                })(NodeType22222222 || {});
                                var NotifyType22222222 = /* @__PURE__ */ ((NotifyType222222222) => {
                                  NotifyType222222222[NotifyType222222222["ALARM"] = 0] = "ALARM";
                                  NotifyType222222222[NotifyType222222222["EVENT"] = 1] = "EVENT";
                                  NotifyType222222222[NotifyType222222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                                  return NotifyType222222222;
                                })(NotifyType22222222 || {});
                                var ObjectType22222222 = /* @__PURE__ */ ((ObjectType222222222) => {
                                  ObjectType222222222[ObjectType222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                  ObjectType222222222[ObjectType222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                  ObjectType222222222[ObjectType222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                  ObjectType222222222[ObjectType222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                  ObjectType222222222[ObjectType222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                  ObjectType222222222[ObjectType222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                  ObjectType222222222[ObjectType222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                  ObjectType222222222[ObjectType222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                  ObjectType222222222[ObjectType222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                  ObjectType222222222[ObjectType222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                  ObjectType222222222[ObjectType222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                  ObjectType222222222[ObjectType222222222["AVERAGING"] = 18] = "AVERAGING";
                                  ObjectType222222222[ObjectType222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                  ObjectType222222222[ObjectType222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                  ObjectType222222222[ObjectType222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                  ObjectType222222222[ObjectType222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                  ObjectType222222222[ObjectType222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                  ObjectType222222222[ObjectType222222222["CALENDAR"] = 6] = "CALENDAR";
                                  ObjectType222222222[ObjectType222222222["CHANNEL"] = 53] = "CHANNEL";
                                  ObjectType222222222[ObjectType222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                  ObjectType222222222[ObjectType222222222["COMMAND"] = 7] = "COMMAND";
                                  ObjectType222222222[ObjectType222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                  ObjectType222222222[ObjectType222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                  ObjectType222222222[ObjectType222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                  ObjectType222222222[ObjectType222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                  ObjectType222222222[ObjectType222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                  ObjectType222222222[ObjectType222222222["DEVICE"] = 8] = "DEVICE";
                                  ObjectType222222222[ObjectType222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                  ObjectType222222222[ObjectType222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                  ObjectType222222222[ObjectType222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                  ObjectType222222222[ObjectType222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                  ObjectType222222222[ObjectType222222222["FILE"] = 10] = "FILE";
                                  ObjectType222222222[ObjectType222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                  ObjectType222222222[ObjectType222222222["GROUP"] = 11] = "GROUP";
                                  ObjectType222222222[ObjectType222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                  ObjectType222222222[ObjectType222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                  ObjectType222222222[ObjectType222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                  ObjectType222222222[ObjectType222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                  ObjectType222222222[ObjectType222222222["LIFT"] = 59] = "LIFT";
                                  ObjectType222222222[ObjectType222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                  ObjectType222222222[ObjectType222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                  ObjectType222222222[ObjectType222222222["LOOP"] = 12] = "LOOP";
                                  ObjectType222222222[ObjectType222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                  ObjectType222222222[ObjectType222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                  ObjectType222222222[ObjectType222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                  ObjectType222222222[ObjectType222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                  ObjectType222222222[ObjectType222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                  ObjectType222222222[ObjectType222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                  ObjectType222222222[ObjectType222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                  ObjectType222222222[ObjectType222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                  ObjectType222222222[ObjectType222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                  ObjectType222222222[ObjectType222222222["PROGRAM"] = 16] = "PROGRAM";
                                  ObjectType222222222[ObjectType222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                  ObjectType222222222[ObjectType222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                  ObjectType222222222[ObjectType222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                  ObjectType222222222[ObjectType222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                  ObjectType222222222[ObjectType222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                  ObjectType222222222[ObjectType222222222["TIMER"] = 31] = "TIMER";
                                  ObjectType222222222[ObjectType222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                  ObjectType222222222[ObjectType222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                  return ObjectType222222222;
                                })(ObjectType22222222 || {});
                                var Polarity22222222 = /* @__PURE__ */ ((Polarity222222222) => {
                                  Polarity222222222[Polarity222222222["NORMAL"] = 0] = "NORMAL";
                                  Polarity222222222[Polarity222222222["REVERSE"] = 1] = "REVERSE";
                                  return Polarity222222222;
                                })(Polarity22222222 || {});
                                var ProgramError22222222 = /* @__PURE__ */ ((ProgramError222222222) => {
                                  ProgramError222222222[ProgramError222222222["NORMAL"] = 0] = "NORMAL";
                                  ProgramError222222222[ProgramError222222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                                  ProgramError222222222[ProgramError222222222["INTERNAL"] = 2] = "INTERNAL";
                                  ProgramError222222222[ProgramError222222222["PROGRAM"] = 3] = "PROGRAM";
                                  ProgramError222222222[ProgramError222222222["OTHER"] = 4] = "OTHER";
                                  return ProgramError222222222;
                                })(ProgramError22222222 || {});
                                var ProgramRequest22222222 = /* @__PURE__ */ ((ProgramRequest222222222) => {
                                  ProgramRequest222222222[ProgramRequest222222222["READY"] = 0] = "READY";
                                  ProgramRequest222222222[ProgramRequest222222222["LOAD"] = 1] = "LOAD";
                                  ProgramRequest222222222[ProgramRequest222222222["RUN"] = 2] = "RUN";
                                  ProgramRequest222222222[ProgramRequest222222222["HALT"] = 3] = "HALT";
                                  ProgramRequest222222222[ProgramRequest222222222["RESTART"] = 4] = "RESTART";
                                  ProgramRequest222222222[ProgramRequest222222222["UNLOAD"] = 5] = "UNLOAD";
                                  return ProgramRequest222222222;
                                })(ProgramRequest22222222 || {});
                                var ProgramState22222222 = /* @__PURE__ */ ((ProgramState222222222) => {
                                  ProgramState222222222[ProgramState222222222["IDLE"] = 0] = "IDLE";
                                  ProgramState222222222[ProgramState222222222["LOADING"] = 1] = "LOADING";
                                  ProgramState222222222[ProgramState222222222["RUNNING"] = 2] = "RUNNING";
                                  ProgramState222222222[ProgramState222222222["WAITING"] = 3] = "WAITING";
                                  ProgramState222222222[ProgramState222222222["HALTED"] = 4] = "HALTED";
                                  ProgramState222222222[ProgramState222222222["UNLOADING"] = 5] = "UNLOADING";
                                  return ProgramState222222222;
                                })(ProgramState22222222 || {});
                                var PropertyIdentifier22222222 = /* @__PURE__ */ ((PropertyIdentifier222222222) => {
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACTION"] = 2] = "ACTION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ALL"] = 8] = "ALL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ARCHIVE"] = 13] = "ARCHIVE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BIAS"] = 14] = "BIAS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BIT_MASK"] = 342] = "BIT_MASK";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CAR_MODE"] = 456] = "CAR_MODE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["COMMAND"] = 417] = "COMMAND";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["COUNT"] = 177] = "COUNT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DATE_LIST"] = 23] = "DATE_LIST";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DEADBAND"] = 25] = "DEADBAND";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ENABLE"] = 133] = "ENABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["GROUP_ID"] = 465] = "GROUP_ID";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["IS_UTC"] = 344] = "IS_UTC";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["KEY_SETS"] = 330] = "KEY_SETS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOCATION"] = 58] = "LOCATION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOCKOUT"] = 282] = "LOCKOUT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MEMBERS"] = 286] = "MEMBERS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MODE"] = 160] = "MODE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OPTIONAL"] = 80] = "OPTIONAL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["POLARITY"] = 84] = "POLARITY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["POWER"] = 384] = "POWER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["POWER_MODE"] = 479] = "POWER_MODE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PRESCALE"] = 185] = "PRESCALE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PRIORITY"] = 86] = "PRIORITY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["READ_ONLY"] = 99] = "READ_ONLY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["RELIABILITY"] = 103] = "RELIABILITY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["REPRESENTS"] = 491] = "REPRESENTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["REQUIRED"] = 105] = "REQUIRED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["RESOLUTION"] = 106] = "RESOLUTION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SCALE"] = 187] = "SCALE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SETPOINT"] = 108] = "SETPOINT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SETTING"] = 162] = "SETTING";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SILENCED"] = 163] = "SILENCED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["START_TIME"] = 142] = "START_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["STOP_TIME"] = 143] = "STOP_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TAGS"] = 486] = "TAGS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TRANSITION"] = 385] = "TRANSITION";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["TRIGGER"] = 205] = "TRIGGER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["UNITS"] = 117] = "UNITS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["USER_NAME"] = 317] = "USER_NAME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["USER_TYPE"] = 318] = "USER_TYPE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["VALUE_SET"] = 191] = "VALUE_SET";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                                  PropertyIdentifier222222222[PropertyIdentifier222222222["ZONE_TO"] = 321] = "ZONE_TO";
                                  return PropertyIdentifier222222222;
                                })(PropertyIdentifier22222222 || {});
                                var ProtocolLevel22222222 = /* @__PURE__ */ ((ProtocolLevel222222222) => {
                                  ProtocolLevel222222222[ProtocolLevel222222222["PHYSICAL"] = 0] = "PHYSICAL";
                                  ProtocolLevel222222222[ProtocolLevel222222222["PROTOCOL"] = 1] = "PROTOCOL";
                                  ProtocolLevel222222222[ProtocolLevel222222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                                  ProtocolLevel222222222[ProtocolLevel222222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                                  return ProtocolLevel222222222;
                                })(ProtocolLevel22222222 || {});
                                var Relationship22222222 = /* @__PURE__ */ ((Relationship222222222) => {
                                  Relationship222222222[Relationship222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                  Relationship222222222[Relationship222222222["DEFAULT"] = 1] = "DEFAULT";
                                  Relationship222222222[Relationship222222222["CONTAINS"] = 2] = "CONTAINS";
                                  Relationship222222222[Relationship222222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                                  Relationship222222222[Relationship222222222["USES"] = 4] = "USES";
                                  Relationship222222222[Relationship222222222["USED_BY"] = 5] = "USED_BY";
                                  Relationship222222222[Relationship222222222["COMMANDS"] = 6] = "COMMANDS";
                                  Relationship222222222[Relationship222222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                                  Relationship222222222[Relationship222222222["ADJUSTS"] = 8] = "ADJUSTS";
                                  Relationship222222222[Relationship222222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                                  Relationship222222222[Relationship222222222["INGRESS"] = 10] = "INGRESS";
                                  Relationship222222222[Relationship222222222["EGRESS"] = 11] = "EGRESS";
                                  Relationship222222222[Relationship222222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                                  Relationship222222222[Relationship222222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                                  Relationship222222222[Relationship222222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                                  Relationship222222222[Relationship222222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                                  Relationship222222222[Relationship222222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                                  Relationship222222222[Relationship222222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                                  Relationship222222222[Relationship222222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                                  Relationship222222222[Relationship222222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                                  Relationship222222222[Relationship222222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                                  Relationship222222222[Relationship222222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                                  Relationship222222222[Relationship222222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                                  Relationship222222222[Relationship222222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                                  Relationship222222222[Relationship222222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                                  Relationship222222222[Relationship222222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                                  Relationship222222222[Relationship222222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                                  Relationship222222222[Relationship222222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                                  Relationship222222222[Relationship222222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                                  Relationship222222222[Relationship222222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                                  return Relationship222222222;
                                })(Relationship22222222 || {});
                                var Reliability22222222 = /* @__PURE__ */ ((Reliability222222222) => {
                                  Reliability222222222[Reliability222222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                                  Reliability222222222[Reliability222222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                                  Reliability222222222[Reliability222222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                                  Reliability222222222[Reliability222222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                                  Reliability222222222[Reliability222222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                                  Reliability222222222[Reliability222222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                                  Reliability222222222[Reliability222222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                                  Reliability222222222[Reliability222222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                                  Reliability222222222[Reliability222222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                                  Reliability222222222[Reliability222222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                                  Reliability222222222[Reliability222222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                                  Reliability222222222[Reliability222222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                                  Reliability222222222[Reliability222222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                                  Reliability222222222[Reliability222222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                                  Reliability222222222[Reliability222222222["TRIPPED"] = 15] = "TRIPPED";
                                  Reliability222222222[Reliability222222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                                  Reliability222222222[Reliability222222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                                  Reliability222222222[Reliability222222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                                  Reliability222222222[Reliability222222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                                  Reliability222222222[Reliability222222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                                  Reliability222222222[Reliability222222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                                  Reliability222222222[Reliability222222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                                  Reliability222222222[Reliability222222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                                  Reliability222222222[Reliability222222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                                  return Reliability222222222;
                                })(Reliability22222222 || {});
                                var RestartReason22222222 = /* @__PURE__ */ ((RestartReason222222222) => {
                                  RestartReason222222222[RestartReason222222222["UNKNOWN"] = 0] = "UNKNOWN";
                                  RestartReason222222222[RestartReason222222222["COLDSTART"] = 1] = "COLDSTART";
                                  RestartReason222222222[RestartReason222222222["WARMSTART"] = 2] = "WARMSTART";
                                  RestartReason222222222[RestartReason222222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                                  RestartReason222222222[RestartReason222222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                                  RestartReason222222222[RestartReason222222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                                  RestartReason222222222[RestartReason222222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                                  RestartReason222222222[RestartReason222222222["SUSPENDED"] = 7] = "SUSPENDED";
                                  RestartReason222222222[RestartReason222222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                                  return RestartReason222222222;
                                })(RestartReason22222222 || {});
                                var SecurityLevel22222222 = /* @__PURE__ */ ((SecurityLevel222222222) => {
                                  SecurityLevel222222222[SecurityLevel222222222["INCAPABLE"] = 0] = "INCAPABLE";
                                  SecurityLevel222222222[SecurityLevel222222222["PLAIN"] = 1] = "PLAIN";
                                  SecurityLevel222222222[SecurityLevel222222222["SIGNED"] = 2] = "SIGNED";
                                  SecurityLevel222222222[SecurityLevel222222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                                  SecurityLevel222222222[SecurityLevel222222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                                  SecurityLevel222222222[SecurityLevel222222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                                  return SecurityLevel222222222;
                                })(SecurityLevel22222222 || {});
                                var SecurityPolicy22222222 = /* @__PURE__ */ ((SecurityPolicy222222222) => {
                                  SecurityPolicy222222222[SecurityPolicy222222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                                  SecurityPolicy222222222[SecurityPolicy222222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                                  SecurityPolicy222222222[SecurityPolicy222222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                                  SecurityPolicy222222222[SecurityPolicy222222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                                  return SecurityPolicy222222222;
                                })(SecurityPolicy22222222 || {});
                                var Segmentation22222222 = /* @__PURE__ */ ((Segmentation222222222) => {
                                  Segmentation222222222[Segmentation222222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                                  Segmentation222222222[Segmentation222222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                                  Segmentation222222222[Segmentation222222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                                  Segmentation222222222[Segmentation222222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                                  return Segmentation222222222;
                                })(Segmentation22222222 || {});
                                var ShedState22222222 = /* @__PURE__ */ ((ShedState222222222) => {
                                  ShedState222222222[ShedState222222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                                  ShedState222222222[ShedState222222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                                  ShedState222222222[ShedState222222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                                  ShedState222222222[ShedState222222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                                  return ShedState222222222;
                                })(ShedState22222222 || {});
                                var SilencedState22222222 = /* @__PURE__ */ ((SilencedState222222222) => {
                                  SilencedState222222222[SilencedState222222222["UNSILENCED"] = 0] = "UNSILENCED";
                                  SilencedState222222222[SilencedState222222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                                  SilencedState222222222[SilencedState222222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                                  SilencedState222222222[SilencedState222222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                                  return SilencedState222222222;
                                })(SilencedState22222222 || {});
                                var TimerState22222222 = /* @__PURE__ */ ((TimerState222222222) => {
                                  TimerState222222222[TimerState222222222["IDLE"] = 0] = "IDLE";
                                  TimerState222222222[TimerState222222222["RUNNING"] = 1] = "RUNNING";
                                  TimerState222222222[TimerState222222222["EXPIRED"] = 2] = "EXPIRED";
                                  return TimerState222222222;
                                })(TimerState22222222 || {});
                                var TimerTransition22222222 = /* @__PURE__ */ ((TimerTransition222222222) => {
                                  TimerTransition222222222[TimerTransition222222222["NONE"] = 0] = "NONE";
                                  TimerTransition222222222[TimerTransition222222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                                  TimerTransition222222222[TimerTransition222222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                                  TimerTransition222222222[TimerTransition222222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                                  TimerTransition222222222[TimerTransition222222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                                  TimerTransition222222222[TimerTransition222222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                                  TimerTransition222222222[TimerTransition222222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                                  TimerTransition222222222[TimerTransition222222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                                  return TimerTransition222222222;
                                })(TimerTransition22222222 || {});
                                var VTClass22222222 = /* @__PURE__ */ ((VTClass222222222) => {
                                  VTClass222222222[VTClass222222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                                  VTClass222222222[VTClass222222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                                  VTClass222222222[VTClass222222222["DEC_VT52"] = 2] = "DEC_VT52";
                                  VTClass222222222[VTClass222222222["DEC_VT100"] = 3] = "DEC_VT100";
                                  VTClass222222222[VTClass222222222["DEC_VT220"] = 4] = "DEC_VT220";
                                  VTClass222222222[VTClass222222222["HP_700_94"] = 5] = "HP_700_94";
                                  VTClass222222222[VTClass222222222["IBM_3130"] = 6] = "IBM_3130";
                                  return VTClass222222222;
                                })(VTClass22222222 || {});
                                var WriteStatus22222222 = /* @__PURE__ */ ((WriteStatus222222222) => {
                                  WriteStatus222222222[WriteStatus222222222["IDLE"] = 0] = "IDLE";
                                  WriteStatus222222222[WriteStatus222222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                                  WriteStatus222222222[WriteStatus222222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                                  WriteStatus222222222[WriteStatus222222222["FAILED"] = 3] = "FAILED";
                                  return WriteStatus222222222;
                                })(WriteStatus22222222 || {});
                                var DaysOfWeek22222222 = /* @__PURE__ */ ((DaysOfWeek222222222) => {
                                  DaysOfWeek222222222[DaysOfWeek222222222["MONDAY"] = 0] = "MONDAY";
                                  DaysOfWeek222222222[DaysOfWeek222222222["TUESDAY"] = 1] = "TUESDAY";
                                  DaysOfWeek222222222[DaysOfWeek222222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                                  DaysOfWeek222222222[DaysOfWeek222222222["THURSDAY"] = 3] = "THURSDAY";
                                  DaysOfWeek222222222[DaysOfWeek222222222["FRIDAY"] = 4] = "FRIDAY";
                                  DaysOfWeek222222222[DaysOfWeek222222222["SATURDAY"] = 5] = "SATURDAY";
                                  DaysOfWeek222222222[DaysOfWeek222222222["SUNDAY"] = 6] = "SUNDAY";
                                  return DaysOfWeek222222222;
                                })(DaysOfWeek22222222 || {});
                                var EventTransitionBits22222222 = /* @__PURE__ */ ((EventTransitionBits222222222) => {
                                  EventTransitionBits222222222[EventTransitionBits222222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                                  EventTransitionBits222222222[EventTransitionBits222222222["TO_FAULT"] = 1] = "TO_FAULT";
                                  EventTransitionBits222222222[EventTransitionBits222222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                                  return EventTransitionBits222222222;
                                })(EventTransitionBits22222222 || {});
                                var LimitEnable22222222 = /* @__PURE__ */ ((LimitEnable222222222) => {
                                  LimitEnable222222222[LimitEnable222222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                                  LimitEnable222222222[LimitEnable222222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                                  return LimitEnable222222222;
                                })(LimitEnable22222222 || {});
                                var LogStatus22222222 = /* @__PURE__ */ ((LogStatus222222222) => {
                                  LogStatus222222222[LogStatus222222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                                  LogStatus222222222[LogStatus222222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                                  LogStatus222222222[LogStatus222222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                                  return LogStatus222222222;
                                })(LogStatus22222222 || {});
                                var ObjectTypesSupported22222222 = /* @__PURE__ */ ((ObjectTypesSupported222222222) => {
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["CALENDAR"] = 6] = "CALENDAR";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["COMMAND"] = 7] = "COMMAND";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["DEVICE"] = 8] = "DEVICE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["FILE"] = 10] = "FILE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["GROUP"] = 11] = "GROUP";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["LOOP"] = 12] = "LOOP";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["PROGRAM"] = 16] = "PROGRAM";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["SCHEDULE"] = 17] = "SCHEDULE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["AVERAGING"] = 18] = "AVERAGING";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["TREND_LOG"] = 20] = "TREND_LOG";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["TIMER"] = 31] = "TIMER";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["CHANNEL"] = 53] = "CHANNEL";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["ESCALATOR"] = 58] = "ESCALATOR";
                                  ObjectTypesSupported222222222[ObjectTypesSupported222222222["LIFT"] = 59] = "LIFT";
                                  return ObjectTypesSupported222222222;
                                })(ObjectTypesSupported22222222 || {});
                                var ResultFlags22222222 = /* @__PURE__ */ ((ResultFlags222222222) => {
                                  ResultFlags222222222[ResultFlags222222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                                  ResultFlags222222222[ResultFlags222222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                                  ResultFlags222222222[ResultFlags222222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                                  return ResultFlags222222222;
                                })(ResultFlags22222222 || {});
                                var ServicesSupported22222222 = /* @__PURE__ */ ((ServicesSupported222222222) => {
                                  ServicesSupported222222222[ServicesSupported222222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                                  ServicesSupported222222222[ServicesSupported222222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                                  ServicesSupported222222222[ServicesSupported222222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                                  ServicesSupported222222222[ServicesSupported222222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                                  ServicesSupported222222222[ServicesSupported222222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                                  ServicesSupported222222222[ServicesSupported222222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                                  ServicesSupported222222222[ServicesSupported222222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                                  ServicesSupported222222222[ServicesSupported222222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                                  ServicesSupported222222222[ServicesSupported222222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                                  ServicesSupported222222222[ServicesSupported222222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                                  ServicesSupported222222222[ServicesSupported222222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                                  ServicesSupported222222222[ServicesSupported222222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                                  ServicesSupported222222222[ServicesSupported222222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                                  ServicesSupported222222222[ServicesSupported222222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                                  ServicesSupported222222222[ServicesSupported222222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                                  ServicesSupported222222222[ServicesSupported222222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                                  ServicesSupported222222222[ServicesSupported222222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                                  ServicesSupported222222222[ServicesSupported222222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                                  ServicesSupported222222222[ServicesSupported222222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                                  ServicesSupported222222222[ServicesSupported222222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                                  ServicesSupported222222222[ServicesSupported222222222["VT_OPEN"] = 21] = "VT_OPEN";
                                  ServicesSupported222222222[ServicesSupported222222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                                  ServicesSupported222222222[ServicesSupported222222222["VT_DATA"] = 23] = "VT_DATA";
                                  ServicesSupported222222222[ServicesSupported222222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                                  ServicesSupported222222222[ServicesSupported222222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                                  ServicesSupported222222222[ServicesSupported222222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                                  ServicesSupported222222222[ServicesSupported222222222["I_AM"] = 26] = "I_AM";
                                  ServicesSupported222222222[ServicesSupported222222222["I_HAVE"] = 27] = "I_HAVE";
                                  ServicesSupported222222222[ServicesSupported222222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                                  ServicesSupported222222222[ServicesSupported222222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                                  ServicesSupported222222222[ServicesSupported222222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                                  ServicesSupported222222222[ServicesSupported222222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                                  ServicesSupported222222222[ServicesSupported222222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                                  ServicesSupported222222222[ServicesSupported222222222["WHO_HAS"] = 33] = "WHO_HAS";
                                  ServicesSupported222222222[ServicesSupported222222222["WHO_IS"] = 34] = "WHO_IS";
                                  ServicesSupported222222222[ServicesSupported222222222["READ_RANGE"] = 35] = "READ_RANGE";
                                  ServicesSupported222222222[ServicesSupported222222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                                  ServicesSupported222222222[ServicesSupported222222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                                  ServicesSupported222222222[ServicesSupported222222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                                  ServicesSupported222222222[ServicesSupported222222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                                  ServicesSupported222222222[ServicesSupported222222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                                  ServicesSupported222222222[ServicesSupported222222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                                  ServicesSupported222222222[ServicesSupported222222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                  ServicesSupported222222222[ServicesSupported222222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                                  return ServicesSupported222222222;
                                })(ServicesSupported22222222 || {});
                                var StatusFlags22222222 = /* @__PURE__ */ ((StatusFlags222222222) => {
                                  StatusFlags222222222[StatusFlags222222222["IN_ALARM"] = 0] = "IN_ALARM";
                                  StatusFlags222222222[StatusFlags222222222["FAULT"] = 1] = "FAULT";
                                  StatusFlags222222222[StatusFlags222222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                                  StatusFlags222222222[StatusFlags222222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                                  return StatusFlags222222222;
                                })(StatusFlags22222222 || {});
                                var ApplicationTag22222222 = /* @__PURE__ */ ((ApplicationTag222222222) => {
                                  ApplicationTag222222222[ApplicationTag222222222["NULL"] = 0] = "NULL";
                                  ApplicationTag222222222[ApplicationTag222222222["BOOLEAN"] = 1] = "BOOLEAN";
                                  ApplicationTag222222222[ApplicationTag222222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                                  ApplicationTag222222222[ApplicationTag222222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                                  ApplicationTag222222222[ApplicationTag222222222["REAL"] = 4] = "REAL";
                                  ApplicationTag222222222[ApplicationTag222222222["DOUBLE"] = 5] = "DOUBLE";
                                  ApplicationTag222222222[ApplicationTag222222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                                  ApplicationTag222222222[ApplicationTag222222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                                  ApplicationTag222222222[ApplicationTag222222222["BIT_STRING"] = 8] = "BIT_STRING";
                                  ApplicationTag222222222[ApplicationTag222222222["ENUMERATED"] = 9] = "ENUMERATED";
                                  ApplicationTag222222222[ApplicationTag222222222["DATE"] = 10] = "DATE";
                                  ApplicationTag222222222[ApplicationTag222222222["TIME"] = 11] = "TIME";
                                  ApplicationTag222222222[ApplicationTag222222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                                  ApplicationTag222222222[ApplicationTag222222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                                  ApplicationTag222222222[ApplicationTag222222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                                  ApplicationTag222222222[ApplicationTag222222222["DATERANGE"] = 102] = "DATERANGE";
                                  ApplicationTag222222222[ApplicationTag222222222["DATETIME"] = 103] = "DATETIME";
                                  ApplicationTag222222222[ApplicationTag222222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                                  ApplicationTag222222222[ApplicationTag222222222["ERROR"] = 105] = "ERROR";
                                  ApplicationTag222222222[ApplicationTag222222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                                  ApplicationTag222222222[ApplicationTag222222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                                  ApplicationTag222222222[ApplicationTag222222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                                  ApplicationTag222222222[ApplicationTag222222222["DESTINATION"] = 109] = "DESTINATION";
                                  ApplicationTag222222222[ApplicationTag222222222["RECIPIENT"] = 110] = "RECIPIENT";
                                  ApplicationTag222222222[ApplicationTag222222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                                  ApplicationTag222222222[ApplicationTag222222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                                  ApplicationTag222222222[ApplicationTag222222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                                  ApplicationTag222222222[ApplicationTag222222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                                  ApplicationTag222222222[ApplicationTag222222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                                  ApplicationTag222222222[ApplicationTag222222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                                  ApplicationTag222222222[ApplicationTag222222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                                  ApplicationTag222222222[ApplicationTag222222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                                  ApplicationTag222222222[ApplicationTag222222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                                  ApplicationTag222222222[ApplicationTag222222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                                  return ApplicationTag222222222;
                                })(ApplicationTag22222222 || {});
                                var ApplicationTagName22222222 = invertEnum22222222(
                                  ApplicationTag22222222
                                );
                                var BvlcResultFormat22222222 = /* @__PURE__ */ ((BvlcResultFormat222222222) => {
                                  BvlcResultFormat222222222[BvlcResultFormat222222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                                  BvlcResultFormat222222222[BvlcResultFormat222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                  BvlcResultFormat222222222[BvlcResultFormat222222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                                  BvlcResultFormat222222222[BvlcResultFormat222222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                                  BvlcResultFormat222222222[BvlcResultFormat222222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                                  BvlcResultFormat222222222[BvlcResultFormat222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                                  BvlcResultFormat222222222[BvlcResultFormat222222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                                  return BvlcResultFormat222222222;
                                })(BvlcResultFormat22222222 || {});
                                var BvlcResultPurpose22222222 = /* @__PURE__ */ ((BvlcResultPurpose222222222) => {
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                                  BvlcResultPurpose222222222[BvlcResultPurpose222222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                                  return BvlcResultPurpose222222222;
                                })(BvlcResultPurpose22222222 || {});
                                var CharacterStringEncoding22222222 = /* @__PURE__ */ ((CharacterStringEncoding222222222) => {
                                  CharacterStringEncoding222222222[CharacterStringEncoding222222222["UTF_8"] = 0] = "UTF_8";
                                  CharacterStringEncoding222222222[CharacterStringEncoding222222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                                  CharacterStringEncoding222222222[CharacterStringEncoding222222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                                  CharacterStringEncoding222222222[CharacterStringEncoding222222222["UCS_4"] = 3] = "UCS_4";
                                  CharacterStringEncoding222222222[CharacterStringEncoding222222222["UCS_2"] = 4] = "UCS_2";
                                  CharacterStringEncoding222222222[CharacterStringEncoding222222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                                  return CharacterStringEncoding222222222;
                                })(CharacterStringEncoding22222222 || {});
                                var CovType22222222 = /* @__PURE__ */ ((CovType222222222) => {
                                  CovType222222222[CovType222222222["REAL"] = 0] = "REAL";
                                  CovType222222222[CovType222222222["BIT_STRING"] = 1] = "BIT_STRING";
                                  return CovType222222222;
                                })(CovType22222222 || {});
                                var EnableDisable22222222 = /* @__PURE__ */ ((EnableDisable222222222) => {
                                  EnableDisable222222222[EnableDisable222222222["ENABLE"] = 0] = "ENABLE";
                                  EnableDisable222222222[EnableDisable222222222["DISABLE"] = 1] = "DISABLE";
                                  EnableDisable222222222[EnableDisable222222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                                  return EnableDisable222222222;
                                })(EnableDisable22222222 || {});
                                var MaxApduLengthAccepted22222222 = /* @__PURE__ */ ((MaxApduLengthAccepted222222222) => {
                                  MaxApduLengthAccepted222222222[MaxApduLengthAccepted222222222["OCTETS_50"] = 0] = "OCTETS_50";
                                  MaxApduLengthAccepted222222222[MaxApduLengthAccepted222222222["OCTETS_128"] = 1] = "OCTETS_128";
                                  MaxApduLengthAccepted222222222[MaxApduLengthAccepted222222222["OCTETS_206"] = 2] = "OCTETS_206";
                                  MaxApduLengthAccepted222222222[MaxApduLengthAccepted222222222["OCTETS_480"] = 3] = "OCTETS_480";
                                  MaxApduLengthAccepted222222222[MaxApduLengthAccepted222222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                                  MaxApduLengthAccepted222222222[MaxApduLengthAccepted222222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                                  return MaxApduLengthAccepted222222222;
                                })(MaxApduLengthAccepted22222222 || {});
                                var MaxSegmentsAccepted22222222 = /* @__PURE__ */ ((MaxSegmentsAccepted222222222) => {
                                  MaxSegmentsAccepted222222222[MaxSegmentsAccepted222222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                                  MaxSegmentsAccepted222222222[MaxSegmentsAccepted222222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                                  MaxSegmentsAccepted222222222[MaxSegmentsAccepted222222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                                  MaxSegmentsAccepted222222222[MaxSegmentsAccepted222222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                                  MaxSegmentsAccepted222222222[MaxSegmentsAccepted222222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                                  MaxSegmentsAccepted222222222[MaxSegmentsAccepted222222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                                  MaxSegmentsAccepted222222222[MaxSegmentsAccepted222222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                                  MaxSegmentsAccepted222222222[MaxSegmentsAccepted222222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                                  return MaxSegmentsAccepted222222222;
                                })(MaxSegmentsAccepted22222222 || {});
                                var NetworkLayerMessageType22222222 = /* @__PURE__ */ ((NetworkLayerMessageType222222222) => {
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                                  NetworkLayerMessageType222222222[NetworkLayerMessageType222222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                                  return NetworkLayerMessageType222222222;
                                })(NetworkLayerMessageType22222222 || {});
                                var NpduControlBit22222222 = /* @__PURE__ */ ((NpduControlBit222222222) => {
                                  NpduControlBit222222222[NpduControlBit222222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                                  NpduControlBit222222222[NpduControlBit222222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                                  NpduControlBit222222222[NpduControlBit222222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                                  NpduControlBit222222222[NpduControlBit222222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                                  return NpduControlBit222222222;
                                })(NpduControlBit22222222 || {});
                                var NpduControlPriority22222222 = /* @__PURE__ */ ((NpduControlPriority222222222) => {
                                  NpduControlPriority222222222[NpduControlPriority222222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                                  NpduControlPriority222222222[NpduControlPriority222222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                                  NpduControlPriority222222222[NpduControlPriority222222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                                  NpduControlPriority222222222[NpduControlPriority222222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                                  return NpduControlPriority222222222;
                                })(NpduControlPriority22222222 || {});
                                var PduConReqBit22222222 = /* @__PURE__ */ ((PduConReqBit222222222) => {
                                  PduConReqBit222222222[PduConReqBit222222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                                  PduConReqBit222222222[PduConReqBit222222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                                  PduConReqBit222222222[PduConReqBit222222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                                  return PduConReqBit222222222;
                                })(PduConReqBit22222222 || {});
                                var PduSegAckBit22222222 = /* @__PURE__ */ ((PduSegAckBit222222222) => {
                                  PduSegAckBit222222222[PduSegAckBit222222222["SERVER"] = 1] = "SERVER";
                                  PduSegAckBit222222222[PduSegAckBit222222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                                  return PduSegAckBit222222222;
                                })(PduSegAckBit22222222 || {});
                                var PduType22222222 = /* @__PURE__ */ ((PduType222222222) => {
                                  PduType222222222[PduType222222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                                  PduType222222222[PduType222222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                                  PduType222222222[PduType222222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                                  PduType222222222[PduType222222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                                  PduType222222222[PduType222222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                                  PduType222222222[PduType222222222["ERROR"] = 80] = "ERROR";
                                  PduType222222222[PduType222222222["REJECT"] = 96] = "REJECT";
                                  PduType222222222[PduType222222222["ABORT"] = 112] = "ABORT";
                                  return PduType222222222;
                                })(PduType22222222 || {});
                                var PropertyStates22222222 = /* @__PURE__ */ ((PropertyStates222222222) => {
                                  PropertyStates222222222[PropertyStates222222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                                  PropertyStates222222222[PropertyStates222222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                                  PropertyStates222222222[PropertyStates222222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                                  PropertyStates222222222[PropertyStates222222222["POLARITY"] = 3] = "POLARITY";
                                  PropertyStates222222222[PropertyStates222222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                                  PropertyStates222222222[PropertyStates222222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                                  PropertyStates222222222[PropertyStates222222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                                  PropertyStates222222222[PropertyStates222222222["RELIABILITY"] = 7] = "RELIABILITY";
                                  PropertyStates222222222[PropertyStates222222222["STATE"] = 8] = "STATE";
                                  PropertyStates222222222[PropertyStates222222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                                  PropertyStates222222222[PropertyStates222222222["UNITS"] = 10] = "UNITS";
                                  PropertyStates222222222[PropertyStates222222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                                  PropertyStates222222222[PropertyStates222222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                                  PropertyStates222222222[PropertyStates222222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                                  PropertyStates222222222[PropertyStates222222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                                  PropertyStates222222222[PropertyStates222222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                                  PropertyStates222222222[PropertyStates222222222["ACTION"] = 16] = "ACTION";
                                  PropertyStates222222222[PropertyStates222222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                                  PropertyStates222222222[PropertyStates222222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                                  PropertyStates222222222[PropertyStates222222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                                  PropertyStates222222222[PropertyStates222222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                                  PropertyStates222222222[PropertyStates222222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                                  PropertyStates222222222[PropertyStates222222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                                  PropertyStates222222222[PropertyStates222222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                                  PropertyStates222222222[PropertyStates222222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                                  PropertyStates222222222[PropertyStates222222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                                  PropertyStates222222222[PropertyStates222222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                                  PropertyStates222222222[PropertyStates222222222["SHED_STATE"] = 27] = "SHED_STATE";
                                  PropertyStates222222222[PropertyStates222222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                                  PropertyStates222222222[PropertyStates222222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                                  PropertyStates222222222[PropertyStates222222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                                  PropertyStates222222222[PropertyStates222222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                                  PropertyStates222222222[PropertyStates222222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                                  PropertyStates222222222[PropertyStates222222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                                  PropertyStates222222222[PropertyStates222222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                                  PropertyStates222222222[PropertyStates222222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                                  PropertyStates222222222[PropertyStates222222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                                  PropertyStates222222222[PropertyStates222222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                                  PropertyStates222222222[PropertyStates222222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                                  PropertyStates222222222[PropertyStates222222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                                  PropertyStates222222222[PropertyStates222222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                                  PropertyStates222222222[PropertyStates222222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                                  PropertyStates222222222[PropertyStates222222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                                  PropertyStates222222222[PropertyStates222222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                                  PropertyStates222222222[PropertyStates222222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                                  PropertyStates222222222[PropertyStates222222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                                  PropertyStates222222222[PropertyStates222222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                                  PropertyStates222222222[PropertyStates222222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                                  PropertyStates222222222[PropertyStates222222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                                  PropertyStates222222222[PropertyStates222222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                                  PropertyStates222222222[PropertyStates222222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                                  PropertyStates222222222[PropertyStates222222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                                  PropertyStates222222222[PropertyStates222222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                                  PropertyStates222222222[PropertyStates222222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                                  PropertyStates222222222[PropertyStates222222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                                  PropertyStates222222222[PropertyStates222222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                                  PropertyStates222222222[PropertyStates222222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                                  PropertyStates222222222[PropertyStates222222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                                  return PropertyStates222222222;
                                })(PropertyStates22222222 || {});
                                var ReadRangeType22222222 = /* @__PURE__ */ ((ReadRangeType222222222) => {
                                  ReadRangeType222222222[ReadRangeType222222222["BY_POSITION"] = 0] = "BY_POSITION";
                                  ReadRangeType222222222[ReadRangeType222222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                                  ReadRangeType222222222[ReadRangeType222222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                                  return ReadRangeType222222222;
                                })(ReadRangeType22222222 || {});
                                var ReinitializedState22222222 = /* @__PURE__ */ ((ReinitializedState222222222) => {
                                  ReinitializedState222222222[ReinitializedState222222222["COLDSTART"] = 0] = "COLDSTART";
                                  ReinitializedState222222222[ReinitializedState222222222["WARMSTART"] = 1] = "WARMSTART";
                                  ReinitializedState222222222[ReinitializedState222222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                                  ReinitializedState222222222[ReinitializedState222222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                                  ReinitializedState222222222[ReinitializedState222222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                                  ReinitializedState222222222[ReinitializedState222222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                                  ReinitializedState222222222[ReinitializedState222222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                                  ReinitializedState222222222[ReinitializedState222222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                                  return ReinitializedState222222222;
                                })(ReinitializedState22222222 || {});
                                var TimeStamp22222222 = /* @__PURE__ */ ((TimeStamp222222222) => {
                                  TimeStamp222222222[TimeStamp222222222["TIME"] = 0] = "TIME";
                                  TimeStamp222222222[TimeStamp222222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                                  TimeStamp222222222[TimeStamp222222222["DATETIME"] = 2] = "DATETIME";
                                  return TimeStamp222222222;
                                })(TimeStamp22222222 || {});
                                var import_events222222222 = __toESM22222222(require("events"));
                                var import_debug322222222 = __toESM22222222(require("debug"));
                                var import_dgram22222222 = require("dgram");
                                var import_events32222222 = __toESM22222222(require("events"));
                                var import_debug222222222 = __toESM22222222(require("debug"));
                                var EventEmitter32222222 = import_events32222222.default.EventEmitter;
                                var debug222222222 = (0, import_debug222222222.default)("bacnet:client:debug");
                                var DEFAULT_BACNET_PORT32222222 = 47808;
                                var Transport22222222 = class extends EventEmitter32222222 {
                                  constructor(settings) {
                                    super();
                                    this._lastSendMessages = {};
                                    this._settings = settings;
                                    this._server = (0, import_dgram22222222.createSocket)({
                                      type: "udp4",
                                      reuseAddr: settings.reuseAddr
                                    });
                                    this._server.on("message", (msg, rinfo) => {
                                      if (this.ownAddress.port === rinfo.port) {
                                        for (let [messageKey, earlierSentBuffer] of Object.entries(
                                          this._lastSendMessages
                                        )) {
                                          if (msg.equals(earlierSentBuffer)) {
                                            debug222222222(
                                              `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                            );
                                            return;
                                          }
                                        }
                                      }
                                      debug222222222(
                                        `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                          "hex"
                                        )}`
                                      );
                                      this.emit(
                                        "message",
                                        msg,
                                        rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT32222222 ? "" : ":" + rinfo.port)
                                      );
                                    });
                                    this._server.on("listening", () => {
                                      this.ownAddress = this._server.address();
                                      debug222222222(
                                        `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                                      );
                                      this.emit("listening", this.ownAddress);
                                    });
                                    this._server.on("error", (err) => {
                                      debug222222222("transport error", err.message);
                                      this.emit("error", err);
                                    });
                                    this._server.on("close", () => {
                                      debug222222222("transport closed");
                                      this.emit("close");
                                    });
                                  }
                                  getBroadcastAddress() {
                                    return this._settings.broadcastAddress;
                                  }
                                  getMaxPayload() {
                                    return 1482;
                                  }
                                  send(buffer, offset, receiver) {
                                    if (!receiver) {
                                      receiver = this.getBroadcastAddress();
                                      const dataToSend = Buffer.alloc(offset);
                                      const hrTime = process.hrtime();
                                      const messageKey = hrTime[0] * 1e9 + hrTime[1];
                                      buffer.copy(dataToSend, 0, 0, offset);
                                      this._lastSendMessages[messageKey] = dataToSend;
                                      setTimeout(() => {
                                        delete this._lastSendMessages[messageKey];
                                      }, 1e4);
                                    }
                                    const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                                    const [address, port] = receiverAddress.split(":");
                                    debug222222222(
                                      "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                                    );
                                    this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT32222222, address);
                                  }
                                  open() {
                                    this._server.bind(this._settings.port, this._settings.interface, () => {
                                      this._server.setBroadcast(true);
                                    });
                                  }
                                  close() {
                                    this._server.close();
                                  }
                                };
                                var services_exports22222222 = {};
                                __export22222222(services_exports22222222, {
                                  addListElement: () => add_list_element_exports22222222,
                                  alarmAcknowledge: () => alarm_acknowledge_exports22222222,
                                  alarmSummary: () => alarm_summary_exports22222222,
                                  atomicReadFile: () => atomic_read_file_exports22222222,
                                  atomicWriteFile: () => atomic_write_file_exports22222222,
                                  covNotify: () => cov_notify_exports22222222,
                                  covNotifyUnconfirmed: () => cov_notify_exports22222222,
                                  createObject: () => create_object_exports22222222,
                                  deleteObject: () => delete_object_exports22222222,
                                  deviceCommunicationControl: () => device_communication_control_exports22222222,
                                  error: () => error_exports22222222,
                                  eventInformation: () => event_information_exports22222222,
                                  eventNotifyData: () => event_notify_data_exports22222222,
                                  getEnrollmentSummary: () => get_enrollment_summary_exports22222222,
                                  getEventInformation: () => get_event_information_exports22222222,
                                  iAm: () => i_am_exports22222222,
                                  iHave: () => i_have_exports22222222,
                                  lifeSafetyOperation: () => life_safety_operation_exports22222222,
                                  privateTransfer: () => private_transfer_exports22222222,
                                  readProperty: () => read_property_exports22222222,
                                  readPropertyMultiple: () => read_property_multiple_exports22222222,
                                  readRange: () => read_range_exports22222222,
                                  registerForeignDevice: () => register_foreign_device_exports22222222,
                                  reinitializeDevice: () => reinitialize_device_exports22222222,
                                  subscribeCov: () => subscribe_cov_exports22222222,
                                  subscribeProperty: () => subscribe_property_exports22222222,
                                  timeSync: () => time_sync_exports22222222,
                                  timeSyncUTC: () => time_sync_exports22222222,
                                  whoHas: () => who_has_exports22222222,
                                  whoIs: () => who_is_exports22222222,
                                  writeProperty: () => write_property_exports22222222,
                                  writePropertyMultiple: () => write_property_multiple_exports22222222
                                });
                                var add_list_element_exports22222222 = {};
                                __export22222222(add_list_element_exports22222222, {
                                  decode: () => decode332222222,
                                  encode: () => encode332222222
                                });
                                var import_iconv_lite22222222 = __toESM22222222(require("iconv-lite"));
                                var enums_default22222222 = enum_exports22222222;
                                var START_YEAR22222222 = 1900;
                                var MAX_YEARS22222222 = 256;
                                var getBuffer22222222 = () => {
                                  return {
                                    buffer: Buffer.alloc(1472),
                                    offset: 0
                                  };
                                };
                                var getSignedLength22222222 = (value) => {
                                  if (value >= -128 && value < 128)
                                    return 1;
                                  else if (value >= -32768 && value < 32768)
                                    return 2;
                                  else if (value > -8388608 && value < 8388608)
                                    return 3;
                                  else
                                    return 4;
                                };
                                var getUnsignedLength22222222 = (value) => {
                                  if (value < 256)
                                    return 1;
                                  else if (value < 65536)
                                    return 2;
                                  else if (value < 16777216)
                                    return 3;
                                  else
                                    return 4;
                                };
                                var getEncodingType22222222 = (encoding, decodingBuffer, decodingOffset) => {
                                  switch (encoding) {
                                    case enums_default22222222.CharacterStringEncoding.UCS_2:
                                      if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                        return "ucs2";
                                      }
                                      return "UTF-16BE";
                                    case enums_default22222222.CharacterStringEncoding.ISO_8859_1:
                                      return "latin1";
                                    case enums_default22222222.CharacterStringEncoding.MICROSOFT_DBCS:
                                      return "cp850";
                                    case enums_default22222222.CharacterStringEncoding.JIS_X_0208:
                                      return "Shift_JIS";
                                    default:
                                      return "utf8";
                                  }
                                };
                                var encodeUnsigned22222222 = (buffer, value, length) => {
                                  buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                                  buffer.offset += length;
                                };
                                var encodeBacnetUnsigned22222222 = (buffer, value) => {
                                  encodeUnsigned22222222(buffer, value, getUnsignedLength22222222(value));
                                };
                                var encodeSigned22222222 = (buffer, value, length) => {
                                  buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                                  buffer.offset += length;
                                };
                                var encodeBacnetSigned22222222 = (buffer, value) => {
                                  encodeSigned22222222(buffer, value, getSignedLength22222222(value));
                                };
                                var encodeBacnetReal22222222 = (buffer, value) => {
                                  buffer.buffer.writeFloatBE(value, buffer.offset, true);
                                  buffer.offset += 4;
                                };
                                var encodeBacnetDouble22222222 = (buffer, value) => {
                                  buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                                  buffer.offset += 8;
                                };
                                var decodeUnsigned22222222 = (buffer, offset, length) => {
                                  if (length === 0) {
                                    return {
                                      len: 0,
                                      value: 0
                                    };
                                  }
                                  return {
                                    len: length,
                                    //@ts-ignore
                                    value: buffer.readUIntBE(offset, length)
                                  };
                                };
                                var decodeEnumerated22222222 = (buffer, offset, length) => {
                                  return decodeUnsigned22222222(buffer, offset, length);
                                };
                                var encodeBacnetObjectId22222222 = (buffer, objectType, instance) => {
                                  const value = ((objectType & enums_default22222222.ASN1_MAX_OBJECT) << enums_default22222222.ASN1_INSTANCE_BITS | instance & enums_default22222222.ASN1_MAX_INSTANCE) >>> 0;
                                  encodeUnsigned22222222(buffer, value, 4);
                                };
                                var encodeTag22222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                                  let len = 1;
                                  const tmp = new Array(3);
                                  tmp[0] = 0;
                                  if (contextSpecific) {
                                    tmp[0] |= 8;
                                  }
                                  if (tagNumber <= 14) {
                                    tmp[0] |= tagNumber << 4;
                                  } else {
                                    tmp[0] |= 240;
                                    tmp[1] = tagNumber;
                                    len++;
                                  }
                                  if (lenValueType <= 4) {
                                    tmp[0] |= lenValueType;
                                    Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                    buffer.offset += len;
                                  } else {
                                    tmp[0] |= 5;
                                    if (lenValueType <= 253) {
                                      tmp[len++] = lenValueType;
                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                      buffer.offset += len;
                                    } else if (lenValueType <= 65535) {
                                      tmp[len++] = 254;
                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                      buffer.offset += len;
                                      encodeUnsigned22222222(buffer, lenValueType, 2);
                                    } else {
                                      tmp[len++] = 255;
                                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                      buffer.offset += len;
                                      encodeUnsigned22222222(buffer, lenValueType, 4);
                                    }
                                  }
                                };
                                var encodeBacnetEnumerated22222222 = (buffer, value) => {
                                  encodeBacnetUnsigned22222222(buffer, value);
                                };
                                var isExtendedTagNumber22222222 = (x) => {
                                  return (x & 240) === 240;
                                };
                                var isExtendedValue22222222 = (x) => {
                                  return (x & 7) === 5;
                                };
                                var isContextSpecific22222222 = (x) => {
                                  return (x & 8) === 8;
                                };
                                var isOpeningTag22222222 = (x) => {
                                  return (x & 7) === 6;
                                };
                                var isClosingTag22222222 = (x) => {
                                  return (x & 7) === 7;
                                };
                                var encodeContextReal22222222 = (buffer, tagNumber, value) => {
                                  encodeTag22222222(buffer, tagNumber, true, 4);
                                  encodeBacnetReal22222222(buffer, value);
                                };
                                var encodeContextUnsigned22222222 = (buffer, tagNumber, value) => {
                                  encodeTag22222222(buffer, tagNumber, true, getUnsignedLength22222222(value));
                                  encodeBacnetUnsigned22222222(buffer, value);
                                };
                                var encodeContextEnumerated22222222 = (buffer, tagNumber, value) => {
                                  encodeContextUnsigned22222222(buffer, tagNumber, value);
                                };
                                var encodeOctetString22222222 = (buffer, octetString, octetOffset, octetCount) => {
                                  if (octetString) {
                                    for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                                      buffer.buffer[buffer.offset++] = octetString[i];
                                    }
                                  }
                                };
                                var encodeApplicationOctetString22222222 = (buffer, octetString, octetOffset, octetCount) => {
                                  encodeTag22222222(buffer, enums_default22222222.ApplicationTag.OCTET_STRING, false, octetCount);
                                  encodeOctetString22222222(buffer, octetString, octetOffset, octetCount);
                                };
                                var encodeApplicationNull22222222 = (buffer) => {
                                  buffer.buffer[buffer.offset++] = enums_default22222222.ApplicationTag.NULL;
                                };
                                var encodeApplicationBoolean22222222 = (buffer, booleanValue) => {
                                  encodeTag22222222(buffer, enums_default22222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                                };
                                var encodeApplicationReal22222222 = (buffer, value) => {
                                  encodeTag22222222(buffer, enums_default22222222.ApplicationTag.REAL, false, 4);
                                  encodeBacnetReal22222222(buffer, value);
                                };
                                var encodeApplicationDouble22222222 = (buffer, value) => {
                                  encodeTag22222222(buffer, enums_default22222222.ApplicationTag.DOUBLE, false, 8);
                                  encodeBacnetDouble22222222(buffer, value);
                                };
                                var bitstringBytesUsed22222222 = (bitString) => {
                                  let len = 0;
                                  if (bitString.bitsUsed > 0) {
                                    const lastBit = bitString.bitsUsed - 1;
                                    const usedBytes = lastBit / 8 + 1;
                                    len = Math.floor(usedBytes);
                                  }
                                  return len;
                                };
                                var encodeApplicationObjectId22222222 = (buffer, objectType, instance) => {
                                  const tmp = getBuffer22222222();
                                  encodeBacnetObjectId22222222(tmp, objectType, instance);
                                  encodeTag22222222(buffer, enums_default22222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                  buffer.offset += tmp.offset;
                                };
                                var encodeApplicationUnsigned22222222 = (buffer, value) => {
                                  const tmp = getBuffer22222222();
                                  encodeBacnetUnsigned22222222(tmp, value);
                                  encodeTag22222222(buffer, enums_default22222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                  buffer.offset += tmp.offset;
                                };
                                var encodeApplicationEnumerated22222222 = (buffer, value) => {
                                  const tmp = getBuffer22222222();
                                  encodeBacnetEnumerated22222222(tmp, value);
                                  encodeTag22222222(buffer, enums_default22222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                  buffer.offset += tmp.offset;
                                };
                                var encodeApplicationSigned22222222 = (buffer, value) => {
                                  const tmp = getBuffer22222222();
                                  encodeBacnetSigned22222222(tmp, value);
                                  encodeTag22222222(buffer, enums_default22222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                  buffer.offset += tmp.offset;
                                };
                                var byteReverseBits22222222 = (inByte) => {
                                  let outByte = 0;
                                  if ((inByte & 1) > 0) {
                                    outByte |= 128;
                                  }
                                  if ((inByte & 2) > 0) {
                                    outByte |= 64;
                                  }
                                  if ((inByte & 4) > 0) {
                                    outByte |= 32;
                                  }
                                  if ((inByte & 8) > 0) {
                                    outByte |= 16;
                                  }
                                  if ((inByte & 16) > 0) {
                                    outByte |= 8;
                                  }
                                  if ((inByte & 32) > 0) {
                                    outByte |= 4;
                                  }
                                  if ((inByte & 64) > 0) {
                                    outByte |= 2;
                                  }
                                  if ((inByte & 128) > 0) {
                                    outByte |= 1;
                                  }
                                  return outByte;
                                };
                                var bitstringOctet22222222 = (bitString, octetIndex) => {
                                  let octet = 0;
                                  if (bitString.value && octetIndex < enums_default22222222.ASN1_MAX_BITSTRING_BYTES) {
                                    octet = bitString.value[octetIndex];
                                  }
                                  return octet;
                                };
                                var encodeBitstring22222222 = (buffer, bitString) => {
                                  if (bitString.bitsUsed === 0) {
                                    buffer.buffer[buffer.offset++] = 0;
                                  } else {
                                    const usedBytes = bitstringBytesUsed22222222(bitString);
                                    const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                                    buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                                    for (let i = 0; i < usedBytes; i++) {
                                      buffer.buffer[buffer.offset++] = byteReverseBits22222222(
                                        bitstringOctet22222222(bitString, i)
                                      );
                                    }
                                  }
                                };
                                var encodeApplicationBitstring22222222 = (buffer, bitString) => {
                                  let bitStringEncodedLength = 1;
                                  bitStringEncodedLength += bitstringBytesUsed22222222(bitString);
                                  encodeTag22222222(
                                    buffer,
                                    enums_default22222222.ApplicationTag.BIT_STRING,
                                    false,
                                    bitStringEncodedLength
                                  );
                                  encodeBitstring22222222(buffer, bitString);
                                };
                                var encodeBacnetDate22222222 = (buffer, value) => {
                                  if (value === new Date(1, 1, 1)) {
                                    buffer.buffer[buffer.offset++] = 255;
                                    buffer.buffer[buffer.offset++] = 255;
                                    buffer.buffer[buffer.offset++] = 255;
                                    buffer.buffer[buffer.offset++] = 255;
                                    return;
                                  }
                                  if (value.getFullYear() >= START_YEAR22222222) {
                                    buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR22222222;
                                  } else if (value.getFullYear() < MAX_YEARS22222222) {
                                    buffer.buffer[buffer.offset++] = value.getFullYear();
                                  } else {
                                    throw new Error("invaide year: " + value.getFullYear());
                                  }
                                  buffer.buffer[buffer.offset++] = value.getMonth();
                                  buffer.buffer[buffer.offset++] = value.getDate();
                                  buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                                };
                                var encodeApplicationDate22222222 = (buffer, value) => {
                                  encodeTag22222222(buffer, enums_default22222222.ApplicationTag.DATE, false, 4);
                                  encodeBacnetDate22222222(buffer, value);
                                };
                                var encodeBacnetTime22222222 = (buffer, value) => {
                                  buffer.buffer[buffer.offset++] = value.getHours();
                                  buffer.buffer[buffer.offset++] = value.getMinutes();
                                  buffer.buffer[buffer.offset++] = value.getSeconds();
                                  buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                                };
                                var encodeApplicationTime22222222 = (buffer, value) => {
                                  encodeTag22222222(buffer, enums_default22222222.ApplicationTag.TIME, false, 4);
                                  encodeBacnetTime22222222(buffer, value);
                                };
                                var bacappEncodeDatetime22222222 = (buffer, value) => {
                                  if (value !== new Date(1, 1, 1)) {
                                    encodeApplicationDate22222222(buffer, value);
                                    encodeApplicationTime22222222(buffer, value);
                                  }
                                };
                                var encodeContextObjectId22222222 = (buffer, tagNumber, objectType, instance) => {
                                  encodeTag22222222(buffer, tagNumber, true, 4);
                                  encodeBacnetObjectId22222222(buffer, objectType, instance);
                                };
                                var encodeOpeningTag22222222 = (buffer, tagNumber) => {
                                  let len = 1;
                                  const tmp = new Array(2);
                                  tmp[0] = 8;
                                  if (tagNumber <= 14) {
                                    tmp[0] |= tagNumber << 4;
                                  } else {
                                    tmp[0] |= 240;
                                    tmp[1] = tagNumber;
                                    len++;
                                  }
                                  tmp[0] |= 6;
                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                  buffer.offset += len;
                                };
                                var encodeClosingTag22222222 = (buffer, tagNumber) => {
                                  let len = 1;
                                  const tmp = new Array(2);
                                  tmp[0] = 8;
                                  if (tagNumber <= 14) {
                                    tmp[0] |= tagNumber << 4;
                                  } else {
                                    tmp[0] |= 240;
                                    tmp[1] = tagNumber;
                                    len++;
                                  }
                                  tmp[0] |= 7;
                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                  buffer.offset += len;
                                };
                                var encodeReadAccessSpecification22222222 = (buffer, value) => {
                                  encodeContextObjectId22222222(
                                    buffer,
                                    0,
                                    value.objectId.type,
                                    value.objectId.instance
                                  );
                                  encodeOpeningTag22222222(buffer, 1);
                                  value.properties.forEach((p) => {
                                    encodeContextEnumerated22222222(buffer, 0, p.id);
                                    if (p.index && p.index !== enums_default22222222.ASN1_ARRAY_ALL) {
                                      encodeContextUnsigned22222222(buffer, 1, p.index);
                                    }
                                  });
                                  encodeClosingTag22222222(buffer, 1);
                                };
                                var encodeContextBoolean22222222 = (buffer, tagNumber, booleanValue) => {
                                  encodeTag22222222(buffer, tagNumber, true, 1);
                                  buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                                  buffer.offset += 1;
                                };
                                var encodeCovSubscription22222222 = (buffer, value) => {
                                  encodeOpeningTag22222222(buffer, 0);
                                  encodeOpeningTag22222222(buffer, 0);
                                  encodeOpeningTag22222222(buffer, 1);
                                  encodeApplicationUnsigned22222222(buffer, value.recipient.network);
                                  if (value.recipient.network === 65535) {
                                    encodeApplicationOctetString22222222(buffer, 0, 0, 0);
                                  } else {
                                    encodeApplicationOctetString22222222(
                                      buffer,
                                      value.recipient.address,
                                      0,
                                      value.recipient.address.length
                                    );
                                  }
                                  encodeClosingTag22222222(buffer, 1);
                                  encodeClosingTag22222222(buffer, 0);
                                  encodeContextUnsigned22222222(buffer, 1, value.subscriptionProcessId);
                                  encodeClosingTag22222222(buffer, 0);
                                  encodeOpeningTag22222222(buffer, 1);
                                  encodeContextObjectId22222222(
                                    buffer,
                                    0,
                                    value.monitoredObjectId.type,
                                    value.monitoredObjectId.instance
                                  );
                                  encodeContextEnumerated22222222(buffer, 1, value.monitoredProperty.id);
                                  if (value.monitoredProperty.index !== enums_default22222222.ASN1_ARRAY_ALL) {
                                    encodeContextUnsigned22222222(buffer, 2, value.monitoredProperty.index);
                                  }
                                  encodeClosingTag22222222(buffer, 1);
                                  encodeContextBoolean22222222(buffer, 2, value.issueConfirmedNotifications);
                                  encodeContextUnsigned22222222(buffer, 3, value.timeRemaining);
                                  if (value.covIncrement > 0) {
                                    encodeContextReal22222222(buffer, 4, value.covIncrement);
                                  }
                                };
                                var bacappEncodeApplicationData22222222 = (buffer, value) => {
                                  if (value.value === null) {
                                    value.type = enums_default22222222.ApplicationTag.NULL;
                                  }
                                  switch (value.type) {
                                    case enums_default22222222.ApplicationTag.NULL:
                                      encodeApplicationNull22222222(buffer);
                                      break;
                                    case enums_default22222222.ApplicationTag.BOOLEAN:
                                      encodeApplicationBoolean22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.UNSIGNED_INTEGER:
                                      encodeApplicationUnsigned22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.SIGNED_INTEGER:
                                      encodeApplicationSigned22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.REAL:
                                      encodeApplicationReal22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.DOUBLE:
                                      encodeApplicationDouble22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.OCTET_STRING:
                                      encodeApplicationOctetString22222222(buffer, value.value, 0, value.value.length);
                                      break;
                                    case enums_default22222222.ApplicationTag.CHARACTER_STRING:
                                      encodeApplicationCharacterString22222222(buffer, value.value, value.encoding);
                                      break;
                                    case enums_default22222222.ApplicationTag.BIT_STRING:
                                      encodeApplicationBitstring22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.ENUMERATED:
                                      encodeApplicationEnumerated22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.DATE:
                                      encodeApplicationDate22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.TIME:
                                      encodeApplicationTime22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.TIMESTAMP:
                                      bacappEncodeTimestamp22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.DATETIME:
                                      bacappEncodeDatetime22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.OBJECTIDENTIFIER:
                                      encodeApplicationObjectId22222222(buffer, value.value.type, value.value.instance);
                                      break;
                                    case enums_default22222222.ApplicationTag.COV_SUBSCRIPTION:
                                      encodeCovSubscription22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.READ_ACCESS_RESULT:
                                      encodeReadAccessResult22222222(buffer, value.value);
                                      break;
                                    case enums_default22222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                      encodeReadAccessSpecification22222222(buffer, value.value);
                                      break;
                                    case void 0:
                                      throw new Error(
                                        "Cannot encode a value if the type has not been specified"
                                      );
                                    default:
                                      throw "No encode for ApplicationTag type: " + enums_default22222222.getEnumName(
                                        enums_default22222222.ApplicationTag,
                                        value.type
                                      );
                                  }
                                };
                                var bacappEncodeDeviceObjPropertyRef22222222 = (buffer, value) => {
                                  encodeContextObjectId22222222(
                                    buffer,
                                    0,
                                    value.objectId.type,
                                    value.objectId.instance
                                  );
                                  encodeContextEnumerated22222222(buffer, 1, value.id);
                                  if (value.arrayIndex !== enums_default22222222.ASN1_ARRAY_ALL) {
                                    encodeContextUnsigned22222222(buffer, 2, value.arrayIndex);
                                  }
                                  if (value.deviceIndentifier.type === enums_default22222222.ObjectType.DEVICE) {
                                    encodeContextObjectId22222222(
                                      buffer,
                                      3,
                                      value.deviceIndentifier.type,
                                      value.deviceIndentifier.instance
                                    );
                                  }
                                };
                                var bacappEncodeContextDeviceObjPropertyRef22222222 = (buffer, tagNumber, value) => {
                                  encodeOpeningTag22222222(buffer, tagNumber);
                                  bacappEncodeDeviceObjPropertyRef22222222(buffer, value);
                                  encodeClosingTag22222222(buffer, tagNumber);
                                };
                                var bacappEncodePropertyState22222222 = (buffer, value) => {
                                  switch (value.type) {
                                    case enums_default22222222.PropertyStates.BOOLEAN_VALUE:
                                      encodeContextBoolean22222222(buffer, 0, value.state === 1);
                                      break;
                                    case enums_default22222222.PropertyStates.BINARY_VALUE:
                                      encodeContextEnumerated22222222(buffer, 1, value.state);
                                      break;
                                    case enums_default22222222.PropertyStates.EVENT_TYPE:
                                      encodeContextEnumerated22222222(buffer, 2, value.state);
                                      break;
                                    case enums_default22222222.PropertyStates.POLARITY:
                                      encodeContextEnumerated22222222(buffer, 3, value.state);
                                      break;
                                    case enums_default22222222.PropertyStates.PROGRAM_CHANGE:
                                      encodeContextEnumerated22222222(buffer, 4, value.state);
                                      break;
                                    case enums_default22222222.PropertyStates.PROGRAM_STATE:
                                      encodeContextEnumerated22222222(buffer, 5, value.state);
                                      break;
                                    case enums_default22222222.PropertyStates.REASON_FOR_HALT:
                                      encodeContextEnumerated22222222(buffer, 6, value.state);
                                      break;
                                    case enums_default22222222.PropertyStates.RELIABILITY:
                                      encodeContextEnumerated22222222(buffer, 7, value.state);
                                      break;
                                    case enums_default22222222.PropertyStates.STATE:
                                      encodeContextEnumerated22222222(buffer, 8, value.state);
                                      break;
                                    case enums_default22222222.PropertyStates.SYSTEM_STATUS:
                                      encodeContextEnumerated22222222(buffer, 9, value.state);
                                      break;
                                    case enums_default22222222.PropertyStates.UNITS:
                                      encodeContextEnumerated22222222(buffer, 10, value.state);
                                      break;
                                    case enums_default22222222.PropertyStates.UNSIGNED_VALUE:
                                      encodeContextUnsigned22222222(buffer, 11, value.state);
                                      break;
                                    case enums_default22222222.PropertyStates.LIFE_SAFETY_MODE:
                                      encodeContextEnumerated22222222(buffer, 12, value.state);
                                      break;
                                    case enums_default22222222.PropertyStates.LIFE_SAFETY_STATE:
                                      encodeContextEnumerated22222222(buffer, 13, value.state);
                                      break;
                                    default:
                                      break;
                                  }
                                };
                                var encodeContextBitstring22222222 = (buffer, tagNumber, bitString) => {
                                  let bitStringEncodedLength = 1;
                                  bitStringEncodedLength += bitstringBytesUsed22222222(bitString);
                                  encodeTag22222222(buffer, tagNumber, true, bitStringEncodedLength);
                                  encodeBitstring22222222(buffer, bitString);
                                };
                                var encodeContextSigned22222222 = (buffer, tagNumber, value) => {
                                  encodeTag22222222(buffer, tagNumber, true, getSignedLength22222222(value));
                                  encodeBacnetSigned22222222(buffer, value);
                                };
                                var encodeContextTime22222222 = (buffer, tagNumber, value) => {
                                  encodeTag22222222(buffer, tagNumber, true, 4);
                                  encodeBacnetTime22222222(buffer, value);
                                };
                                var bacappEncodeContextDatetime22222222 = (buffer, tagNumber, value) => {
                                  if (value !== new Date(1, 1, 1)) {
                                    encodeOpeningTag22222222(buffer, tagNumber);
                                    bacappEncodeDatetime22222222(buffer, value);
                                    encodeClosingTag22222222(buffer, tagNumber);
                                  } else {
                                    throw new Error("wrong Datetime while bacapp encoding context");
                                  }
                                };
                                var decodeTagNumber22222222 = (buffer, offset) => {
                                  let len = 1;
                                  let tagNumber;
                                  if (isExtendedTagNumber22222222(buffer[offset])) {
                                    tagNumber = buffer[offset + 1];
                                    len++;
                                  } else {
                                    tagNumber = buffer[offset] >> 4;
                                  }
                                  return {
                                    len,
                                    tagNumber
                                  };
                                };
                                var decodeIsContextTag22222222 = (buffer, offset, tagNumber) => {
                                  const result = decodeTagNumber22222222(buffer, offset);
                                  return isContextSpecific22222222(buffer[offset]) && result.tagNumber === tagNumber;
                                };
                                var decodeIsOpeningTagNumber22222222 = (buffer, offset, tagNumber) => {
                                  const result = decodeTagNumber22222222(buffer, offset);
                                  return isOpeningTag22222222(buffer[offset]) && result.tagNumber === tagNumber;
                                };
                                var decodeIsClosingTagNumber22222222 = (buffer, offset, tagNumber) => {
                                  const result = decodeTagNumber22222222(buffer, offset);
                                  return isClosingTag22222222(buffer[offset]) && result.tagNumber === tagNumber;
                                };
                                var decodeIsClosingTag22222222 = (buffer, offset) => {
                                  return (buffer[offset] & 7) === 7;
                                };
                                var decodeIsOpeningTag22222222 = (buffer, offset) => {
                                  return (buffer[offset] & 7) === 6;
                                };
                                var decodeObjectId22222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                                  const result = decodeUnsigned22222222(buffer, offset, 4);
                                  const objectType = result.value >> enums_default22222222.ASN1_INSTANCE_BITS & enums_default22222222.ASN1_MAX_OBJECT;
                                  const instance = result.value & enums_default22222222.ASN1_MAX_INSTANCE;
                                  return {
                                    len: result.len,
                                    objectType,
                                    instance
                                  };
                                };
                                var decodeObjectIdSafe22222222 = (buffer, offset, lenValue) => {
                                  if (lenValue !== 4) {
                                    return {
                                      len: 0,
                                      objectType: 0,
                                      instance: 0
                                    };
                                  } else {
                                    return decodeObjectId22222222(buffer, offset);
                                  }
                                };
                                var decodeTagNumberAndValue22222222 = (buffer, offset) => {
                                  let value;
                                  let result = decodeTagNumber22222222(buffer, offset);
                                  let len = result.len;
                                  if (isExtendedValue22222222(buffer[offset])) {
                                    if (buffer[offset + len] === 255) {
                                      len++;
                                      result = decodeUnsigned22222222(buffer, offset + len, 4);
                                      len += result.len;
                                      value = result.value;
                                    } else if (buffer[offset + len] === 254) {
                                      len++;
                                      result = decodeUnsigned22222222(buffer, offset + len, 2);
                                      len += result.len;
                                      value = result.value;
                                    } else {
                                      value = buffer[offset + len];
                                      len++;
                                    }
                                  } else if (isOpeningTag22222222(buffer[offset])) {
                                    value = 0;
                                  } else if (isClosingTag22222222(buffer[offset])) {
                                    value = 0;
                                  } else {
                                    value = buffer[offset] & 7;
                                  }
                                  return {
                                    len,
                                    tagNumber: result.tagNumber,
                                    value
                                  };
                                };
                                var bacappDecodeApplicationData22222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                  if (!isContextSpecific22222222(buffer[offset])) {
                                    let result = decodeTagNumberAndValue22222222(buffer, offset);
                                    if (result) {
                                      let len = result.len;
                                      result = bacappDecodeData22222222(
                                        buffer,
                                        offset + len,
                                        maxOffset,
                                        result.tagNumber,
                                        result.value
                                      );
                                      if (!result) {
                                        return void 0;
                                      }
                                      let resObj = {
                                        len: len + result.len,
                                        type: result.type,
                                        value: result.value
                                      };
                                      if (result.encoding !== void 0)
                                        resObj.encoding = result.encoding;
                                      return resObj;
                                    }
                                  } else {
                                    return bacappDecodeContextApplicationData22222222(
                                      buffer,
                                      offset,
                                      maxOffset,
                                      objectType,
                                      propertyId
                                    );
                                  }
                                };
                                var encodeReadAccessResult22222222 = (buffer, value) => {
                                  encodeContextObjectId22222222(
                                    buffer,
                                    0,
                                    value.objectId.type,
                                    value.objectId.instance
                                  );
                                  encodeOpeningTag22222222(buffer, 1);
                                  value.values.forEach((item) => {
                                    encodeContextEnumerated22222222(buffer, 2, item.property.id);
                                    if (item.property.index !== enums_default22222222.ASN1_ARRAY_ALL) {
                                      encodeContextUnsigned22222222(buffer, 3, item.property.index);
                                    }
                                    if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                                      encodeOpeningTag22222222(buffer, 5);
                                      encodeApplicationEnumerated22222222(buffer, item.value[0].value.errorClass);
                                      encodeApplicationEnumerated22222222(buffer, item.value[0].value.errorCode);
                                      encodeClosingTag22222222(buffer, 5);
                                    } else {
                                      if (!item.value)
                                        throw new Error("No value in item");
                                      encodeOpeningTag22222222(buffer, 4);
                                      item.value.forEach((subItem) => {
                                        bacappEncodeApplicationData22222222(buffer, subItem);
                                      });
                                      encodeClosingTag22222222(buffer, 4);
                                    }
                                  });
                                  encodeClosingTag22222222(buffer, 1);
                                };
                                var decodeReadAccessResult22222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let value = {};
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  let result = decodeObjectId22222222(buffer, offset + len);
                                  value.objectId = {
                                    type: result.objectType,
                                    instance: result.instance
                                  };
                                  len += result.len;
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 1)) {
                                    return -1;
                                  }
                                  len++;
                                  const values = [];
                                  while (apduLen - len > 0) {
                                    let newEntry = {};
                                    if (decodeIsClosingTagNumber22222222(buffer, offset + len, 1)) {
                                      len++;
                                      break;
                                    }
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 2) {
                                      return void 0;
                                    }
                                    result = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    newEntry.id = result.value;
                                    len += result.len;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    if (result.tagNumber === 3) {
                                      len += result.len;
                                      result = decodeUnsigned22222222(buffer, offset + len, result.value);
                                      newEntry.index = result.value;
                                      len += result.len;
                                    } else {
                                      newEntry.index = enums_default22222222.ASN1_ARRAY_ALL;
                                    }
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber === 4) {
                                      const localValues = [];
                                      while (len + offset <= buffer.length && !decodeIsClosingTagNumber22222222(buffer, offset + len, 4)) {
                                        let localResult = bacappDecodeApplicationData22222222(
                                          buffer,
                                          offset + len,
                                          apduLen + offset - 1,
                                          value.objectId.type,
                                          newEntry.id
                                        );
                                        if (!localResult) {
                                          return void 0;
                                        }
                                        len += localResult.len;
                                        let resObj = {
                                          value: localResult.value,
                                          type: localResult.type
                                        };
                                        if (localResult.encoding !== void 0)
                                          resObj.encoding = localResult.encoding;
                                        localValues.push(resObj);
                                      }
                                      if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 4)) {
                                        return void 0;
                                      }
                                      if (localValues.count === 2 && localValues[0].type === enums_default22222222.ApplicationTag.DATE && localValues[1].type === enums_default22222222.ApplicationTag.TIME) {
                                        const date = localValues[0].value;
                                        const time = localValues[1].value;
                                        const bdatetime = new Date(
                                          date.year,
                                          date.month,
                                          date.day,
                                          time.hour,
                                          time.minute,
                                          time.second,
                                          time.millisecond
                                        );
                                        newEntry.value = [
                                          { type: enums_default22222222.ApplicationTag.DATETIME, value: bdatetime }
                                        ];
                                      } else {
                                        newEntry.value = localValues;
                                      }
                                      len++;
                                    } else if (result.tagNumber === 5) {
                                      let err = {};
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                      result = decodeEnumerated22222222(buffer, offset + len, result.value);
                                      len += result.len;
                                      err.errorClass = result.value;
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                      result = decodeEnumerated22222222(buffer, offset + len, result.value);
                                      len += result.len;
                                      err.errorCode = result.value;
                                      if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 5)) {
                                        return void 0;
                                      }
                                      len++;
                                      newEntry.value = [
                                        {
                                          type: enums_default22222222.ApplicationTag.ERROR,
                                          value: err
                                        }
                                      ];
                                    }
                                    values.push(newEntry);
                                  }
                                  value.values = values;
                                  return {
                                    len,
                                    value
                                  };
                                };
                                var decodeSigned22222222 = (buffer, offset, length) => {
                                  return {
                                    len: length,
                                    value: buffer.readIntBE(offset, length, true)
                                  };
                                };
                                var decodeReal22222222 = (buffer, offset) => {
                                  return {
                                    len: 4,
                                    value: buffer.readFloatBE(offset, true)
                                  };
                                };
                                var decodeRealSafe22222222 = (buffer, offset, lenValue) => {
                                  if (lenValue !== 4) {
                                    return {
                                      len: lenValue,
                                      value: 0
                                    };
                                  } else {
                                    return decodeReal22222222(buffer, offset);
                                  }
                                };
                                var decodeDouble22222222 = (buffer, offset) => {
                                  return {
                                    len: 8,
                                    value: buffer.readDoubleBE(offset, true)
                                  };
                                };
                                var decodeDoubleSafe22222222 = (buffer, offset, lenValue) => {
                                  if (lenValue !== 8) {
                                    return {
                                      len: lenValue,
                                      value: 0
                                    };
                                  } else {
                                    return decodeDouble22222222(buffer, offset);
                                  }
                                };
                                var decodeOctetString22222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                                  const octetString = [];
                                  for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                                    octetString.push(buffer[offset + i]);
                                  }
                                  return {
                                    len: octetStringLength,
                                    value: octetString
                                  };
                                };
                                var multiCharsetCharacterstringDecode22222222 = (buffer, offset, maxLength, encoding, length) => {
                                  const stringBuf = Buffer.alloc(length);
                                  buffer.copy(stringBuf, 0, offset, offset + length);
                                  return {
                                    value: import_iconv_lite22222222.default.decode(stringBuf, getEncodingType22222222(encoding, buffer, offset)),
                                    len: length + 1,
                                    encoding
                                  };
                                };
                                var decodeCharacterString22222222 = (buffer, offset, maxLength, lenValue) => {
                                  return multiCharsetCharacterstringDecode22222222(
                                    buffer,
                                    offset + 1,
                                    maxLength,
                                    buffer[offset],
                                    lenValue - 1
                                  );
                                };
                                var bitstringSetBitsUsed22222222 = (bitString, bytesUsed, unusedBits) => {
                                  bitString.bitsUsed = bytesUsed * 8;
                                  bitString.bitsUsed -= unusedBits;
                                };
                                var decodeBitstring22222222 = (buffer, offset, lenValue) => {
                                  let len = 0;
                                  let bitString = {};
                                  bitString.value = [];
                                  if (lenValue > 0) {
                                    const bytesUsed = lenValue - 1;
                                    if (bytesUsed <= enums_default22222222.ASN1_MAX_BITSTRING_BYTES) {
                                      len = 1;
                                      for (let i = 0; i < bytesUsed; i++) {
                                        bitString.value.push(byteReverseBits22222222(buffer[offset + len++]));
                                      }
                                      const unusedBits = buffer[offset] & 7;
                                      bitstringSetBitsUsed22222222(bitString, bytesUsed, unusedBits);
                                    }
                                  }
                                  return {
                                    len,
                                    value: bitString
                                  };
                                };
                                var decodeDate22222222 = (buffer, offset) => {
                                  let date;
                                  const year = buffer[offset] + 1900;
                                  const month = buffer[offset + 1];
                                  const day = buffer[offset + 2];
                                  const wday = buffer[offset + 3];
                                  if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                                    date = new Date(1, 1, 1);
                                  } else {
                                    date = new Date(year, month, day);
                                  }
                                  return {
                                    len: 4,
                                    value: date
                                  };
                                };
                                var decodeDateSafe22222222 = (buffer, offset, lenValue) => {
                                  if (lenValue !== 4) {
                                    return {
                                      len: lenValue,
                                      value: new Date(1, 1, 1)
                                    };
                                  } else {
                                    return decodeDate22222222(buffer, offset);
                                  }
                                };
                                var decodeApplicationDate22222222 = (buffer, offset) => {
                                  const result = decodeTagNumber22222222(buffer, offset);
                                  if (result.tagNumber === enums_default22222222.ApplicationTag.DATE) {
                                    const value = decodeDate22222222(buffer, offset + 1);
                                    return {
                                      len: value.len + 1,
                                      value
                                    };
                                  }
                                  return void 0;
                                };
                                var decodeBacnetTime22222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                                  const hour = buffer[offset + 0];
                                  const min = buffer[offset + 1];
                                  const sec = buffer[offset + 2];
                                  let hundredths = buffer[offset + 3];
                                  if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                                    value = new Date(1, 1, 1);
                                  } else {
                                    if (hundredths > 100)
                                      hundredths = 0;
                                    value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                                  }
                                  return {
                                    len: 4,
                                    value
                                  };
                                };
                                var decodeBacnetTimeSafe22222222 = (buffer, offset, lenValue) => {
                                  if (lenValue !== 4) {
                                    return {
                                      len: lenValue,
                                      value: new Date(1, 1, 1)
                                    };
                                  } else {
                                    return decodeBacnetTime22222222(buffer, offset);
                                  }
                                };
                                var decodeApplicationTime22222222 = (buffer, offset) => {
                                  const result = decodeTagNumber22222222(buffer, offset);
                                  if (result.tagNumber === enums_default22222222.ApplicationTag.TIME) {
                                    const value = decodeBacnetTime22222222(buffer, offset + 1);
                                    return {
                                      len: value.len + 1,
                                      value
                                    };
                                  }
                                  return void 0;
                                };
                                var decodeBacnetDatetime22222222 = (buffer, offset) => {
                                  let len = 0;
                                  const date = decodeApplicationDate22222222(buffer, offset + len);
                                  len += date.len;
                                  const time = decodeApplicationTime22222222(buffer, offset + len);
                                  len += time.len;
                                  return {
                                    len,
                                    value: new Date(
                                      date.year,
                                      date.month,
                                      date.day,
                                      time.hour,
                                      time.minute,
                                      time.second,
                                      time.millisecond
                                    )
                                  };
                                };
                                var bacappDecodeData22222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                                  let result;
                                  let value = {
                                    len: 0,
                                    type: tagDataType
                                  };
                                  switch (tagDataType) {
                                    case enums_default22222222.ApplicationTag.NULL:
                                      value.value = null;
                                      break;
                                    case enums_default22222222.ApplicationTag.BOOLEAN:
                                      value.value = lenValueType > 0;
                                      break;
                                    case enums_default22222222.ApplicationTag.UNSIGNED_INTEGER:
                                      result = decodeUnsigned22222222(buffer, offset, lenValueType);
                                      value.len += result.len;
                                      value.value = result.value;
                                      break;
                                    case enums_default22222222.ApplicationTag.SIGNED_INTEGER:
                                      result = decodeSigned22222222(buffer, offset, lenValueType);
                                      value.len += result.len;
                                      value.value = result.value;
                                      break;
                                    case enums_default22222222.ApplicationTag.REAL:
                                      result = decodeRealSafe22222222(buffer, offset, lenValueType);
                                      value.len += result.len;
                                      value.value = result.value;
                                      break;
                                    case enums_default22222222.ApplicationTag.DOUBLE:
                                      result = decodeDoubleSafe22222222(buffer, offset, lenValueType);
                                      value.len += result.len;
                                      value.value = result.value;
                                      break;
                                    case enums_default22222222.ApplicationTag.OCTET_STRING:
                                      result = decodeOctetString22222222(buffer, offset, maxLength, 0, lenValueType);
                                      value.len += result.len;
                                      value.value = result.value;
                                      break;
                                    case enums_default22222222.ApplicationTag.CHARACTER_STRING:
                                      result = decodeCharacterString22222222(buffer, offset, maxLength, lenValueType);
                                      value.len += result.len;
                                      value.value = result.value;
                                      value.encoding = result.encoding;
                                      break;
                                    case enums_default22222222.ApplicationTag.BIT_STRING:
                                      result = decodeBitstring22222222(buffer, offset, lenValueType);
                                      value.len += result.len;
                                      value.value = result.value;
                                      break;
                                    case enums_default22222222.ApplicationTag.ENUMERATED:
                                      result = decodeEnumerated22222222(buffer, offset, lenValueType);
                                      value.len += result.len;
                                      value.value = result.value;
                                      break;
                                    case enums_default22222222.ApplicationTag.DATE:
                                      result = decodeDateSafe22222222(buffer, offset, lenValueType);
                                      value.len += result.len;
                                      value.value = result.value;
                                      break;
                                    case enums_default22222222.ApplicationTag.TIME:
                                      result = decodeBacnetTimeSafe22222222(buffer, offset, lenValueType);
                                      value.len += result.len;
                                      value.value = result.value;
                                      break;
                                    case enums_default22222222.ApplicationTag.OBJECTIDENTIFIER:
                                      result = decodeObjectIdSafe22222222(buffer, offset, lenValueType);
                                      value.len += result.len;
                                      value.value = { type: result.objectType, instance: result.instance };
                                      break;
                                    default:
                                      break;
                                  }
                                  return value;
                                };
                                var bacappContextTagType22222222 = (property, tagNumber) => {
                                  let tag = 0;
                                  switch (property) {
                                    case enums_default22222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                                    case enums_default22222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                                    case enums_default22222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                                      switch (tagNumber) {
                                        case 0:
                                        case 1:
                                          tag = enums_default22222222.ApplicationTag.UNSIGNED_INTEGER;
                                          break;
                                        case 2:
                                          tag = enums_default22222222.ApplicationTag.REAL;
                                          break;
                                        default:
                                          break;
                                      }
                                      break;
                                    case enums_default22222222.PropertyIdentifier.ACTION:
                                      switch (tagNumber) {
                                        case 0:
                                        case 1:
                                          tag = enums_default22222222.ApplicationTag.OBJECTIDENTIFIER;
                                          break;
                                        case 2:
                                          tag = enums_default22222222.ApplicationTag.ENUMERATED;
                                          break;
                                        case 3:
                                        case 5:
                                        case 6:
                                          tag = enums_default22222222.ApplicationTag.UNSIGNED_INTEGER;
                                          break;
                                        case 7:
                                        case 8:
                                          tag = enums_default22222222.ApplicationTag.BOOLEAN;
                                          break;
                                        default:
                                          break;
                                      }
                                      break;
                                    case enums_default22222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                                      switch (tagNumber) {
                                        case 0:
                                          tag = enums_default22222222.ApplicationTag.OBJECTIDENTIFIER;
                                          break;
                                        default:
                                          break;
                                      }
                                      break;
                                    case enums_default22222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                                      switch (tagNumber) {
                                        case 1:
                                          tag = enums_default22222222.ApplicationTag.OBJECTIDENTIFIER;
                                          break;
                                        case 3:
                                          tag = enums_default22222222.ApplicationTag.UNSIGNED_INTEGER;
                                          break;
                                        default:
                                          break;
                                      }
                                      break;
                                    case enums_default22222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                                      switch (tagNumber) {
                                        case 0:
                                        case 3:
                                          tag = enums_default22222222.ApplicationTag.OBJECTIDENTIFIER;
                                          break;
                                        case 1:
                                          tag = enums_default22222222.ApplicationTag.ENUMERATED;
                                          break;
                                        case 2:
                                          tag = enums_default22222222.ApplicationTag.UNSIGNED_INTEGER;
                                          break;
                                        default:
                                          break;
                                      }
                                      break;
                                    case enums_default22222222.PropertyIdentifier.SUBORDINATE_LIST:
                                      switch (tagNumber) {
                                        case 0:
                                        case 1:
                                          tag = enums_default22222222.ApplicationTag.OBJECTIDENTIFIER;
                                          break;
                                        default:
                                          break;
                                      }
                                      break;
                                    case enums_default22222222.PropertyIdentifier.RECIPIENT_LIST:
                                      switch (tagNumber) {
                                        case 0:
                                          tag = enums_default22222222.ApplicationTag.OBJECTIDENTIFIER;
                                          break;
                                        default:
                                          break;
                                      }
                                      break;
                                    case enums_default22222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                                      switch (tagNumber) {
                                        case 0:
                                        case 1:
                                          break;
                                        case 2:
                                          tag = enums_default22222222.ApplicationTag.BOOLEAN;
                                          break;
                                        case 3:
                                          tag = enums_default22222222.ApplicationTag.UNSIGNED_INTEGER;
                                          break;
                                        case 4:
                                          tag = enums_default22222222.ApplicationTag.REAL;
                                          break;
                                        default:
                                          break;
                                      }
                                      break;
                                    default:
                                      break;
                                  }
                                  return tag;
                                };
                                var decodeDeviceObjPropertyRef22222222 = (buffer, offset, NOTUSEDARG = 0) => {
                                  let len = 0;
                                  let arrayIndex = enums_default22222222.ASN1_ARRAY_ALL;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  let objectId = decodeObjectId22222222(buffer, offset + len);
                                  len += objectId.len;
                                  let result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 1) {
                                    return void 0;
                                  }
                                  let id = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += id.len;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  if (result.tagNumber === 2) {
                                    len += result.len;
                                    arrayIndex = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += arrayIndex.len;
                                  }
                                  if (decodeIsContextTag22222222(buffer, offset + len, 3)) {
                                    if (!isClosingTag22222222(buffer[offset + len])) {
                                      len++;
                                      objectId = decodeObjectId22222222(buffer, offset + len);
                                      len += objectId.len;
                                    }
                                  }
                                  return {
                                    len,
                                    value: {
                                      objectId,
                                      id
                                    }
                                  };
                                };
                                var decodeReadAccessSpecification22222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let value = {};
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  let decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  value.objectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  len += decodedValue.len;
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  len++;
                                  const propertyIdAndArrayIndex = [];
                                  while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222(buffer, offset + len, 1)) {
                                    let propertyRef = {};
                                    if (!isContextSpecific22222222(buffer[offset + len])) {
                                      return void 0;
                                    }
                                    let result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 0) {
                                      return void 0;
                                    }
                                    if (len + result.value >= apduLen) {
                                      return void 0;
                                    }
                                    decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    propertyRef.id = decodedValue.value;
                                    len += decodedValue.len;
                                    propertyRef.index = enums_default22222222.ASN1_ARRAY_ALL;
                                    if (isContextSpecific22222222(buffer[offset + len]) && !isClosingTag22222222(buffer[offset + len])) {
                                      const tmp = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      if (tmp.tagNumber === 1) {
                                        len += tmp.len;
                                        if (len + tmp.value >= apduLen) {
                                          return void 0;
                                        }
                                        decodedValue = decodeUnsigned22222222(buffer, offset + len, tmp.value);
                                        propertyRef.index = decodedValue.value;
                                        len += decodedValue.len;
                                      }
                                    }
                                    propertyIdAndArrayIndex.push(propertyRef);
                                  }
                                  if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  len++;
                                  value.properties = propertyIdAndArrayIndex;
                                  return {
                                    len,
                                    value
                                  };
                                };
                                var decodeCovSubscription22222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let value = {};
                                  let result;
                                  let decodedValue;
                                  value.recipient = {};
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  len++;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== enums_default22222222.ApplicationTag.UNSIGNED_INTEGER) {
                                    return void 0;
                                  }
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.recipient.net = decodedValue.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== enums_default22222222.ApplicationTag.OCTET_STRING) {
                                    return void 0;
                                  }
                                  decodedValue = decodeOctetString22222222(
                                    buffer,
                                    offset + len,
                                    apduLen,
                                    0,
                                    result.value
                                  );
                                  len += decodedValue.len;
                                  value.recipient.adr = decodedValue.value;
                                  if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  len++;
                                  if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 1) {
                                    return void 0;
                                  }
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.subscriptionProcessId = decodedValue.value;
                                  if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  len++;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 0) {
                                    return void 0;
                                  }
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  value.monitoredObjectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 1) {
                                    return void 0;
                                  }
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.monitoredProperty = {};
                                  value.monitoredProperty.id = decodedValue.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  if (result.tagNumber === 2) {
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.monitoredProperty.index = decodedValue.value;
                                  } else {
                                    value.monitoredProperty.index = enums_default22222222.ASN1_ARRAY_ALL;
                                  }
                                  if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  len++;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 2) {
                                    return void 0;
                                  }
                                  value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                  len++;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 3) {
                                    return void 0;
                                  }
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.timeRemaining = decodedValue.value;
                                  if (len < apduLen && !isClosingTag22222222(buffer[offset + len])) {
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 4) {
                                      return void 0;
                                    }
                                    decodedValue = decodeReal22222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    value.covIncrement = decodedValue.value;
                                  }
                                  return {
                                    len,
                                    value
                                  };
                                };
                                var decodeCalendarDate22222222 = (buffer, offset) => {
                                  return {
                                    len: 4,
                                    year: buffer[offset],
                                    month: buffer[offset + 1],
                                    day: buffer[offset + 2],
                                    wday: buffer[offset + 3]
                                  };
                                };
                                var decodeCalendarDateRange22222222 = (buffer, offset) => {
                                  let len = 1;
                                  const startDate = decodeDate22222222(buffer, offset + len);
                                  len += startDate.len + 1;
                                  const endDate = decodeDate22222222(buffer, offset + len);
                                  len += endDate.len + 1;
                                  return {
                                    len,
                                    startDate,
                                    endDate
                                  };
                                };
                                var decodeCalendarWeekDay22222222 = (buffer, offset) => {
                                  return {
                                    len: 3,
                                    month: buffer[offset],
                                    week: buffer[offset + 1],
                                    wday: buffer[offset + 2]
                                  };
                                };
                                var decodeCalendar22222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  const entries = [];
                                  let decodedValue;
                                  while (len < apduLen) {
                                    const result = decodeTagNumber22222222(buffer, offset + len);
                                    len += result.len;
                                    switch (result.tagNumber) {
                                      case 0:
                                        decodedValue = decodeCalendarDate22222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        entries.push(decodedValue);
                                        break;
                                      case 1:
                                        decodedValue = decodeCalendarDateRange22222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        entries.push(decodedValue);
                                        break;
                                      case 2:
                                        decodedValue = decodeCalendarWeekDay22222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        entries.push(decodedValue);
                                        break;
                                      default:
                                        return {
                                          len: len - 1,
                                          value: entries
                                        };
                                    }
                                  }
                                };
                                var bacappDecodeContextApplicationData22222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                                  let len = 0;
                                  let result;
                                  if (isContextSpecific22222222(buffer[offset])) {
                                    if (propertyId === enums_default22222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                                      result = decodeReadAccessSpecification22222222(buffer, offset, maxOffset);
                                      if (!result) {
                                        return void 0;
                                      }
                                      return {
                                        type: enums_default22222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                        value: result.value,
                                        len: result.len
                                      };
                                    } else if (propertyId === enums_default22222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                                      result = decodeCovSubscription22222222(buffer, offset, maxOffset);
                                      if (!result) {
                                        return void 0;
                                      }
                                      return {
                                        type: enums_default22222222.ApplicationTag.COV_SUBSCRIPTION,
                                        value: result.value,
                                        len: result.len
                                      };
                                    } else if (objectType === enums_default22222222.ObjectType.GROUP && propertyId === enums_default22222222.PropertyIdentifier.PRESENT_VALUE) {
                                      result = decodeReadAccessResult22222222(buffer, offset, maxOffset);
                                      if (!result) {
                                        return void 0;
                                      }
                                      return {
                                        type: enums_default22222222.ApplicationTag.READ_ACCESS_RESULT,
                                        value: result.value,
                                        len: result.len
                                      };
                                    } else if (propertyId === enums_default22222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default22222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default22222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                                      result = decodeDeviceObjPropertyRef22222222(buffer, offset, maxOffset);
                                      if (!result) {
                                        return void 0;
                                      }
                                      return {
                                        type: enums_default22222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                        value: result.value,
                                        len: result.len
                                      };
                                    } else if (propertyId === enums_default22222222.PropertyIdentifier.DATE_LIST) {
                                      result = decodeCalendar22222222(buffer, offset, maxOffset);
                                      if (!result) {
                                        return void 0;
                                      }
                                      return {
                                        type: enums_default22222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                        value: result.value,
                                        len: result.len
                                      };
                                    } else if (propertyId === enums_default22222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                                      let subEvtResult;
                                      let evtResult = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += 1;
                                      if (evtResult.tagNumber === 0) {
                                        subEvtResult = decodeBacnetTime22222222(buffer, offset + 1);
                                        return {
                                          type: enums_default22222222.ApplicationTag.TIMESTAMP,
                                          value: subEvtResult.value,
                                          len: subEvtResult.len + 1
                                        };
                                      } else if (evtResult.tagNumber === 1) {
                                        subEvtResult = decodeUnsigned22222222(buffer, offset + len, evtResult.value);
                                        return {
                                          type: enums_default22222222.ApplicationTag.UNSIGNED_INTEGER,
                                          value: subEvtResult.value,
                                          len: subEvtResult.len + 1
                                        };
                                      } else if (evtResult.tagNumber === 2) {
                                        subEvtResult = decodeBacnetDatetime22222222(buffer, offset + len);
                                        return {
                                          type: enums_default22222222.ApplicationTag.TIMESTAMP,
                                          value: subEvtResult.value,
                                          len: subEvtResult.len + 2
                                        };
                                      } else {
                                        return void 0;
                                      }
                                    }
                                    const list = [];
                                    let tagResult = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    let multipleValues = isOpeningTag22222222(buffer[offset + len]);
                                    while (len + offset <= maxOffset && !isClosingTag22222222(buffer[offset + len])) {
                                      let subResult = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      if (!subResult) {
                                        return void 0;
                                      }
                                      if (subResult.value === 0) {
                                        len += subResult.len;
                                        result = bacappDecodeApplicationData22222222(
                                          buffer,
                                          offset + len,
                                          maxOffset,
                                          enums_default22222222.ASN1_MAX_OBJECT_TYPE,
                                          enums_default22222222.ASN1_MAX_PROPERTY_ID
                                        );
                                        if (!result) {
                                          return void 0;
                                        }
                                        list.push(result);
                                        len += result.len;
                                      } else {
                                        const overrideTagNumber = bacappContextTagType22222222(
                                          propertyId,
                                          subResult.tagNumber
                                        );
                                        if (overrideTagNumber !== enums_default22222222.ASN1_MAX_APPLICATION_TAG) {
                                          subResult.tagNumber = overrideTagNumber;
                                        }
                                        let bacappResult = bacappDecodeData22222222(
                                          buffer,
                                          offset + len + subResult.len,
                                          maxOffset,
                                          subResult.tagNumber,
                                          subResult.value
                                        );
                                        if (!bacappResult) {
                                          return void 0;
                                        }
                                        if (bacappResult.len === subResult.value) {
                                          let resObj = {
                                            value: bacappResult.value,
                                            type: bacappResult.type
                                          };
                                          if (bacappResult.encoding !== void 0)
                                            resObj.encoding = bacappResult.encoding;
                                          list.push(resObj);
                                          len += subResult.len + subResult.value;
                                        } else {
                                          list.push({
                                            value: buffer.slice(
                                              offset + len + subResult.len,
                                              offset + len + subResult.len + subResult.value
                                            ),
                                            type: enums_default22222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                          });
                                          len += subResult.len + subResult.value;
                                        }
                                      }
                                      if (multipleValues === false) {
                                        return {
                                          len,
                                          value: list[0],
                                          type: enums_default22222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                        };
                                      }
                                    }
                                    if (len + offset > maxOffset) {
                                      return void 0;
                                    }
                                    if (decodeIsClosingTagNumber22222222(buffer, offset + len, tagResult.tagNumber)) {
                                      len++;
                                    }
                                    return {
                                      len,
                                      value: list,
                                      type: enums_default22222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                    };
                                  }
                                  return void 0;
                                };
                                var bacappEncodeTimestamp22222222 = (buffer, value) => {
                                  switch (value.type) {
                                    case enums_default22222222.TimeStamp.TIME:
                                      encodeContextTime22222222(buffer, 0, value.value);
                                      break;
                                    case enums_default22222222.TimeStamp.SEQUENCE_NUMBER:
                                      encodeContextUnsigned22222222(buffer, 1, value.value);
                                      break;
                                    case enums_default22222222.TimeStamp.DATETIME:
                                      bacappEncodeContextDatetime22222222(buffer, 2, value.value);
                                      break;
                                    default:
                                      throw new Error("NOT_IMPLEMENTED");
                                  }
                                };
                                var bacappEncodeContextTimestamp22222222 = (buffer, tagNumber, value) => {
                                  encodeOpeningTag22222222(buffer, tagNumber);
                                  bacappEncodeTimestamp22222222(buffer, value);
                                  encodeClosingTag22222222(buffer, tagNumber);
                                };
                                var decodeContextCharacterString22222222 = (buffer, offset, maxLength, tagNumber) => {
                                  let len = 0;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, tagNumber)) {
                                    return void 0;
                                  }
                                  const result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  const decodedValue = multiCharsetCharacterstringDecode22222222(
                                    buffer,
                                    offset + 1 + len,
                                    maxLength,
                                    buffer[offset + len],
                                    result.value - 1
                                  );
                                  if (!decodedValue) {
                                    return void 0;
                                  }
                                  len += result.value;
                                  return {
                                    len,
                                    value: decodedValue.value,
                                    encoding: decodedValue.encoding
                                  };
                                };
                                var decodeIsContextTagWithLength22222222 = (buffer, offset, tagNumber) => {
                                  const result = decodeTagNumber22222222(buffer, offset);
                                  return {
                                    len: result.len,
                                    value: isContextSpecific22222222(buffer[offset]) && result.tagNumber === tagNumber
                                  };
                                };
                                var decodeContextObjectId22222222 = (buffer, offset, tagNumber) => {
                                  const result = decodeIsContextTagWithLength22222222(buffer, offset, tagNumber);
                                  if (!result.value) {
                                    return void 0;
                                  }
                                  const decodedValue = decodeObjectId22222222(buffer, offset + result.len);
                                  decodedValue.len = decodedValue.len + result.len;
                                  return decodedValue;
                                };
                                var encodeBacnetCharacterString22222222 = (buffer, value, encoding) => {
                                  encoding = encoding || enums_default22222222.CharacterStringEncoding.UTF_8;
                                  buffer.buffer[buffer.offset++] = encoding;
                                  const bufEncoded = import_iconv_lite22222222.default.encode(value, getEncodingType22222222(encoding));
                                  buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                                };
                                var encodeApplicationCharacterString22222222 = (buffer, value, encoding) => {
                                  const tmp = getBuffer22222222();
                                  encodeBacnetCharacterString22222222(tmp, value, encoding);
                                  encodeTag22222222(buffer, enums_default22222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                  buffer.offset += tmp.offset;
                                };
                                var encodeContextCharacterString22222222 = (buffer, tagNumber, value, encoding) => {
                                  const tmp = getBuffer22222222();
                                  encodeBacnetCharacterString22222222(tmp, value, encoding);
                                  encodeTag22222222(buffer, tagNumber, true, tmp.offset);
                                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                                  buffer.offset += tmp.offset;
                                };
                                var encode332222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                  encodeContextObjectId22222222(buffer, 0, objectId.type, objectId.instance);
                                  encodeContextEnumerated22222222(buffer, 1, propertyId);
                                  if (arrayIndex !== ASN1_ARRAY_ALL22222222) {
                                    encodeContextUnsigned22222222(buffer, 2, arrayIndex);
                                  }
                                  encodeOpeningTag22222222(buffer, 3);
                                  values.forEach((value) => {
                                    bacappEncodeApplicationData22222222(buffer, value);
                                  });
                                  encodeClosingTag22222222(buffer, 3);
                                };
                                var decode332222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let value = {};
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  value.objectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.property = { id: decodedValue.value };
                                  if (len < apduLen && decodeIsContextTag22222222(buffer, offset + len, 2)) {
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.property.index = decodedValue.value;
                                  } else {
                                    value.property.index = ASN1_ARRAY_ALL22222222;
                                  }
                                  const values = [];
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 3)) {
                                    return void 0;
                                  }
                                  len++;
                                  while (apduLen - len > 1) {
                                    result = bacappDecodeApplicationData22222222(
                                      buffer,
                                      offset + len,
                                      apduLen + offset,
                                      value.objectId.type,
                                      value.property.id
                                    );
                                    if (!result) {
                                      return void 0;
                                    }
                                    len += result.len;
                                    delete result.len;
                                    values.push(result);
                                  }
                                  value.values = values;
                                  if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 3)) {
                                    return void 0;
                                  }
                                  len++;
                                  value.len = len;
                                  return value;
                                };
                                var alarm_acknowledge_exports22222222 = {};
                                __export22222222(alarm_acknowledge_exports22222222, {
                                  decode: () => decode2102222222,
                                  encode: () => encode2102222222
                                });
                                var encode2102222222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                                  encodeContextUnsigned22222222(buffer, 0, ackProcessId);
                                  encodeContextObjectId22222222(
                                    buffer,
                                    1,
                                    eventObjectId.type,
                                    eventObjectId.instance
                                  );
                                  encodeContextEnumerated22222222(buffer, 2, eventStateAcknowledged);
                                  bacappEncodeContextTimestamp22222222(buffer, 3, eventTimeStamp);
                                  encodeContextCharacterString22222222(buffer, 4, ackSource);
                                  bacappEncodeContextTimestamp22222222(buffer, 5, ackTimeStamp);
                                };
                                var decode2102222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let value = {};
                                  let result;
                                  let decodedValue;
                                  let date;
                                  let time;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.acknowledgedProcessId = decodedValue.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  value.eventObjectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.eventStateAcknowledged = decodedValue.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber === 0) {
                                    decodedValue = decodeBacnetTime22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.eventTimeStamp = decodedValue.value;
                                  } else if (result.tagNumber === 1) {
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.eventTimeStamp = decodedValue.value;
                                  } else if (result.tagNumber === 2) {
                                    date = decodeApplicationDate22222222(buffer, offset + len);
                                    len += date.len;
                                    date = date.value.value;
                                    time = decodeApplicationTime22222222(buffer, offset + len);
                                    len += time.len;
                                    time = time.value.value;
                                    value.eventTimeStamp = new Date(
                                      date.getFullYear(),
                                      date.getMonth(),
                                      date.getDate(),
                                      time.getHours(),
                                      time.getMinutes(),
                                      time.getSeconds(),
                                      time.getMilliseconds()
                                    );
                                    len++;
                                  }
                                  len++;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeCharacterString22222222(
                                    buffer,
                                    offset + len,
                                    apduLen - (offset + len),
                                    result.value
                                  );
                                  value.acknowledgeSource = decodedValue.value;
                                  len += decodedValue.len;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber === 0) {
                                    decodedValue = decodeBacnetTime22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.acknowledgeTimeStamp = decodedValue.value;
                                  } else if (result.tagNumber === 1) {
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.acknowledgeTimeStamp = decodedValue.value;
                                  } else if (result.tagNumber === 2) {
                                    date = decodeApplicationDate22222222(buffer, offset + len);
                                    len += date.len;
                                    date = date.value.value;
                                    time = decodeApplicationTime22222222(buffer, offset + len);
                                    len += time.len;
                                    time = time.value.value;
                                    value.acknowledgeTimeStamp = new Date(
                                      date.getFullYear(),
                                      date.getMonth(),
                                      date.getDate(),
                                      time.getHours(),
                                      time.getMinutes(),
                                      time.getSeconds(),
                                      time.getMilliseconds()
                                    );
                                    len++;
                                  }
                                  len++;
                                  value.len = len;
                                  return value;
                                };
                                var alarm_summary_exports22222222 = {};
                                __export22222222(alarm_summary_exports22222222, {
                                  decode: () => decode342222222,
                                  encode: () => encode342222222
                                });
                                var encode342222222 = (buffer, alarms) => {
                                  alarms.forEach((alarm) => {
                                    encodeContextObjectId22222222(
                                      buffer,
                                      12,
                                      alarm.objectId.type,
                                      alarm.objectId.instance
                                    );
                                    encodeContextEnumerated22222222(buffer, 9, alarm.alarmState);
                                    encodeContextBitstring22222222(buffer, 8, alarm.acknowledgedTransitions);
                                  });
                                };
                                var decode342222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  const alarms = [];
                                  while (apduLen - 3 - len > 0) {
                                    let value = {};
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeObjectId22222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    value.objectId = {
                                      type: decodedValue.objectType,
                                      instance: decodedValue.instance
                                    };
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.alarmState = decodedValue.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeBitstring22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.acknowledgedTransitions = decodedValue.value;
                                    alarms.push(value);
                                  }
                                  return {
                                    len,
                                    alarms
                                  };
                                };
                                var atomic_read_file_exports22222222 = {};
                                __export22222222(atomic_read_file_exports22222222, {
                                  decode: () => decode422222222,
                                  decodeAcknowledge: () => decodeAcknowledge82222222,
                                  encode: () => encode422222222,
                                  encodeAcknowledge: () => encodeAcknowledge92222222
                                });
                                var encode422222222 = (buffer, isStream, objectId, position, count) => {
                                  encodeApplicationObjectId22222222(buffer, objectId.type, objectId.instance);
                                  if (isStream) {
                                    encodeOpeningTag22222222(buffer, 0);
                                    encodeApplicationSigned22222222(buffer, position);
                                    encodeApplicationUnsigned22222222(buffer, count);
                                    encodeClosingTag22222222(buffer, 0);
                                  } else {
                                    encodeOpeningTag22222222(buffer, 1);
                                    encodeApplicationSigned22222222(buffer, position);
                                    encodeApplicationUnsigned22222222(buffer, count);
                                    encodeClosingTag22222222(buffer, 1);
                                  }
                                };
                                var decode422222222 = (buffer, offset) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let isStream = true;
                                  let objectId = {};
                                  let position = -1;
                                  let count = 0;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 12) {
                                    return void 0;
                                  }
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                                  if (decodeIsOpeningTagNumber22222222(buffer, offset + len, 0)) {
                                    isStream = true;
                                    len++;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 3) {
                                      return void 0;
                                    }
                                    decodedValue = decodeSigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    position = decodedValue.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 2) {
                                      return void 0;
                                    }
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    count = decodedValue.value;
                                    if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 0)) {
                                      return void 0;
                                    }
                                    len++;
                                  } else if (decodeIsOpeningTagNumber22222222(buffer, offset + len, 1)) {
                                    isStream = false;
                                    len++;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 3) {
                                      return void 0;
                                    }
                                    decodedValue = decodeSigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    position = decodedValue.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 2) {
                                      return void 0;
                                    }
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    count = decodedValue.value;
                                    if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 1)) {
                                      return void 0;
                                    }
                                    len++;
                                  } else {
                                    return void 0;
                                  }
                                  return {
                                    len,
                                    isStream,
                                    objectId,
                                    position,
                                    count
                                  };
                                };
                                var encodeAcknowledge92222222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                                  encodeApplicationBoolean22222222(buffer, endOfFile);
                                  if (isStream) {
                                    encodeOpeningTag22222222(buffer, 0);
                                    encodeApplicationSigned22222222(buffer, position);
                                    encodeApplicationOctetString22222222(buffer, blocks[0], 0, counts[0]);
                                    encodeClosingTag22222222(buffer, 0);
                                  } else {
                                    encodeOpeningTag22222222(buffer, 1);
                                    encodeApplicationSigned22222222(buffer, position);
                                    encodeApplicationUnsigned22222222(buffer, blockCount);
                                    for (let i = 0; i < blockCount; i++) {
                                      encodeApplicationOctetString22222222(buffer, blocks[i], 0, counts[i]);
                                    }
                                    encodeClosingTag22222222(buffer, 1);
                                  }
                                };
                                var decodeAcknowledge82222222 = (buffer, offset, length = 0) => {
                                  let len = length;
                                  let result;
                                  let decodedValue;
                                  let endOfFile;
                                  let isStream;
                                  let position;
                                  let targetBuffer;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 1) {
                                    return void 0;
                                  }
                                  endOfFile = result.value > 0;
                                  if (decodeIsOpeningTagNumber22222222(buffer, offset + len, 0)) {
                                    isStream = true;
                                    len++;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 3) {
                                      return void 0;
                                    }
                                    decodedValue = decodeSigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    position = decodedValue.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 6) {
                                      return void 0;
                                    }
                                    targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                                    len += result.value;
                                    if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 0)) {
                                      return void 0;
                                    }
                                    len++;
                                  } else if (decodeIsOpeningTagNumber22222222(buffer, offset + len, 1)) {
                                    isStream = false;
                                    throw new Error("NotImplemented");
                                  } else {
                                    return void 0;
                                  }
                                  return {
                                    len,
                                    endOfFile,
                                    isStream,
                                    position,
                                    buffer: targetBuffer
                                  };
                                };
                                var atomic_write_file_exports22222222 = {};
                                __export22222222(atomic_write_file_exports22222222, {
                                  decode: () => decode522222222,
                                  decodeAcknowledge: () => decodeAcknowledge222222222,
                                  encode: () => encode522222222,
                                  encodeAcknowledge: () => encodeAcknowledge222222222
                                });
                                var encode522222222 = (buffer, isStream, objectId, position, blocks) => {
                                  encodeApplicationObjectId22222222(buffer, objectId.type, objectId.instance);
                                  if (isStream) {
                                    encodeOpeningTag22222222(buffer, 0);
                                    encodeApplicationSigned22222222(buffer, position);
                                    encodeApplicationOctetString22222222(buffer, blocks[0], 0, blocks[0].length);
                                    encodeClosingTag22222222(buffer, 0);
                                  } else {
                                    encodeOpeningTag22222222(buffer, 1);
                                    encodeApplicationSigned22222222(buffer, position);
                                    encodeApplicationUnsigned22222222(buffer, blocks.length);
                                    for (let i = 0; i < blocks.length; i++) {
                                      encodeApplicationOctetString22222222(
                                        buffer,
                                        blocks[i],
                                        0,
                                        blocks[i].length
                                      );
                                    }
                                    encodeClosingTag22222222(buffer, 1);
                                  }
                                };
                                var decode522222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let isStream;
                                  let position;
                                  let blocks = [];
                                  let blockCount;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 12) {
                                    return void 0;
                                  }
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  let objectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  if (decodeIsOpeningTagNumber22222222(buffer, offset + len, 0)) {
                                    isStream = true;
                                    len++;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 3) {
                                      return void 0;
                                    }
                                    decodedValue = decodeSigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    position = decodedValue.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 6) {
                                      return void 0;
                                    }
                                    decodedValue = decodeOctetString22222222(
                                      buffer,
                                      offset + len,
                                      apduLen,
                                      0,
                                      result.value
                                    );
                                    len += decodedValue.len;
                                    blocks.push(decodedValue.value);
                                    if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 0)) {
                                      return void 0;
                                    }
                                    len++;
                                  } else if (decodeIsOpeningTagNumber22222222(buffer, offset + len, 1)) {
                                    isStream = false;
                                    len++;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 3) {
                                      return void 0;
                                    }
                                    decodedValue = decodeSigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    position = decodedValue.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 2) {
                                      return void 0;
                                    }
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    blockCount = decodedValue.value;
                                    for (let i = 0; i < blockCount; i++) {
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber !== 6) {
                                        return void 0;
                                      }
                                      decodedValue = decodeOctetString22222222(
                                        buffer,
                                        offset + len,
                                        apduLen,
                                        0,
                                        result.value
                                      );
                                      len += decodedValue.len;
                                      blocks.push(decodedValue.value);
                                    }
                                    if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 1)) {
                                      return void 0;
                                    }
                                    len++;
                                  } else {
                                    return void 0;
                                  }
                                  return {
                                    len,
                                    isStream,
                                    objectId,
                                    position,
                                    blocks
                                  };
                                };
                                var encodeAcknowledge222222222 = (buffer, isStream, position) => {
                                  if (isStream) {
                                    encodeContextSigned22222222(buffer, 0, position);
                                  } else {
                                    encodeContextSigned22222222(buffer, 1, position);
                                  }
                                };
                                var decodeAcknowledge222222222 = (buffer, offset, length = 0) => {
                                  let len = length;
                                  let isStream = false;
                                  let position = 0;
                                  let decodedValue;
                                  const result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber === 0) {
                                    isStream = true;
                                  } else if (result.tagNumber === 1) {
                                    isStream = false;
                                  } else {
                                    return void 0;
                                  }
                                  decodedValue = decodeSigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  position = decodedValue.value;
                                  return {
                                    len,
                                    isStream,
                                    position
                                  };
                                };
                                var cov_notify_exports22222222 = {};
                                __export22222222(cov_notify_exports22222222, {
                                  decode: () => decode622222222,
                                  encode: () => encode622222222
                                });
                                var encode622222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                                  encodeContextUnsigned22222222(buffer, 0, subscriberProcessId);
                                  encodeContextObjectId22222222(
                                    buffer,
                                    1,
                                    8,
                                    initiatingDeviceId
                                  );
                                  encodeContextObjectId22222222(
                                    buffer,
                                    2,
                                    monitoredObjectId.type,
                                    monitoredObjectId.instance
                                  );
                                  encodeContextUnsigned22222222(buffer, 3, timeRemaining);
                                  encodeOpeningTag22222222(buffer, 4);
                                  values.forEach((value) => {
                                    encodeContextEnumerated22222222(buffer, 0, value.property.id);
                                    if (value.property.index === ASN1_ARRAY_ALL22222222) {
                                      encodeContextUnsigned22222222(buffer, 1, value.property.index);
                                    }
                                    encodeOpeningTag22222222(buffer, 2);
                                    value.value.forEach((v) => {
                                      bacappEncodeApplicationData22222222(buffer, v);
                                    });
                                    encodeClosingTag22222222(buffer, 2);
                                    if (value.priority === ASN1_NO_PRIORITY22222222) {
                                      encodeContextUnsigned22222222(buffer, 3, value.priority);
                                    }
                                  });
                                  encodeClosingTag22222222(buffer, 4);
                                };
                                var decode622222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  const subscriberProcessId = decodedValue.value;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  const initiatingDeviceId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 2)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  const monitoredObjectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 3)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  const timeRemaining = decodedValue.value;
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 4)) {
                                    return void 0;
                                  }
                                  len++;
                                  const values = [];
                                  while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222(buffer, offset + len, 4)) {
                                    let newEntry = {};
                                    newEntry.property = {};
                                    if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                      return void 0;
                                    }
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    newEntry.property.id = decodedValue.value;
                                    if (decodeIsContextTag22222222(buffer, offset + len, 1)) {
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      newEntry.property.index = decodedValue.value;
                                    } else {
                                      newEntry.property.index = ASN1_ARRAY_ALL22222222;
                                    }
                                    if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 2)) {
                                      return void 0;
                                    }
                                    len++;
                                    const properties = [];
                                    while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222(buffer, offset + len, 2)) {
                                      decodedValue = bacappDecodeApplicationData22222222(
                                        buffer,
                                        offset + len,
                                        apduLen + offset,
                                        monitoredObjectId.type,
                                        newEntry.property.id
                                      );
                                      if (!decodedValue) {
                                        return void 0;
                                      }
                                      len += decodedValue.len;
                                      delete decodedValue.len;
                                      properties.push(decodedValue);
                                    }
                                    newEntry.value = properties;
                                    len++;
                                    if (decodeIsContextTag22222222(buffer, offset + len, 3)) {
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      newEntry.priority = decodedValue.value;
                                    } else {
                                      newEntry.priority = ASN1_NO_PRIORITY22222222;
                                    }
                                    values.push(newEntry);
                                  }
                                  return {
                                    len,
                                    subscriberProcessId,
                                    initiatingDeviceId,
                                    monitoredObjectId,
                                    timeRemaining,
                                    values
                                  };
                                };
                                var create_object_exports22222222 = {};
                                __export22222222(create_object_exports22222222, {
                                  decode: () => decode722222222,
                                  encode: () => encode722222222,
                                  encodeAcknowledge: () => encodeAcknowledge322222222
                                });
                                var encode722222222 = (buffer, objectId, values) => {
                                  encodeOpeningTag22222222(buffer, 0);
                                  encodeContextObjectId22222222(buffer, 1, objectId.type, objectId.instance);
                                  encodeClosingTag22222222(buffer, 0);
                                  encodeOpeningTag22222222(buffer, 1);
                                  values.forEach((propertyValue) => {
                                    encodeContextEnumerated22222222(buffer, 0, propertyValue.property.id);
                                    if (propertyValue.property.index !== ASN1_ARRAY_ALL22222222) {
                                      encodeContextUnsigned22222222(buffer, 1, propertyValue.property.index);
                                    }
                                    encodeOpeningTag22222222(buffer, 2);
                                    propertyValue.value.forEach((value) => {
                                      bacappEncodeApplicationData22222222(buffer, value);
                                    });
                                    encodeClosingTag22222222(buffer, 2);
                                    if (propertyValue.priority !== ASN1_NO_PRIORITY22222222) {
                                      encodeContextUnsigned22222222(buffer, 3, propertyValue.priority);
                                    }
                                  });
                                  encodeClosingTag22222222(buffer, 1);
                                };
                                var decode722222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let objectId;
                                  const valueList = [];
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber === 0 && apduLen > len) {
                                    apduLen -= len;
                                    if (apduLen < 4) {
                                      return void 0;
                                    }
                                    decodedValue = decodeContextObjectId22222222(buffer, offset + len, 1);
                                    len += decodedValue.len;
                                    objectId = {
                                      type: decodedValue.objectType,
                                      instance: decodedValue.instance
                                    };
                                  } else {
                                    return void 0;
                                  }
                                  if (decodeIsClosingTag22222222(buffer, offset + len)) {
                                    len++;
                                  }
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  len++;
                                  while (apduLen - len > 1) {
                                    let newEntry = {};
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 0) {
                                      return void 0;
                                    }
                                    decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    let propertyId = decodedValue.value;
                                    let arraIndex = ASN1_ARRAY_ALL22222222;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber === 1) {
                                      decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      arraIndex += decodedValue.value;
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                    }
                                    newEntry.property = { id: propertyId, index: arraIndex };
                                    if (result.tagNumber === 2 && decodeIsOpeningTag22222222(buffer, offset + len - 1)) {
                                      const values = [];
                                      while (!decodeIsClosingTag22222222(buffer, offset + len)) {
                                        decodedValue = bacappDecodeApplicationData22222222(
                                          buffer,
                                          offset + len,
                                          apduLen + offset,
                                          objectId.type,
                                          propertyId
                                        );
                                        if (!decodedValue) {
                                          return void 0;
                                        }
                                        len += decodedValue.len;
                                        delete decodedValue.len;
                                        values.push(decodedValue);
                                      }
                                      len++;
                                      newEntry.value = values;
                                    } else {
                                      return void 0;
                                    }
                                    valueList.push(newEntry);
                                  }
                                  if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  len++;
                                  return {
                                    len,
                                    objectId,
                                    values: valueList
                                  };
                                };
                                var encodeAcknowledge322222222 = (buffer, objectId) => {
                                  encodeApplicationObjectId22222222(buffer, objectId.type, objectId.instance);
                                };
                                var delete_object_exports22222222 = {};
                                __export22222222(delete_object_exports22222222, {
                                  decode: () => decode822222222,
                                  encode: () => encode822222222
                                });
                                var decode822222222 = (buffer, offset, apduLen) => {
                                  const result = decodeTagNumberAndValue22222222(buffer, offset);
                                  if (result.tagNumber !== 12) {
                                    return void 0;
                                  }
                                  let len = 1;
                                  const value = decodeObjectId22222222(buffer, offset + len);
                                  len += value.len;
                                  if (len !== apduLen) {
                                    return void 0;
                                  }
                                  value.len = len;
                                  return value;
                                };
                                var encode822222222 = (buffer, objectId) => {
                                  encodeApplicationObjectId22222222(buffer, objectId.type, objectId.instance);
                                };
                                var device_communication_control_exports22222222 = {};
                                __export22222222(device_communication_control_exports22222222, {
                                  decode: () => decode922222222,
                                  encode: () => encode922222222
                                });
                                var encode922222222 = (buffer, timeDuration, enableDisable, password) => {
                                  if (timeDuration > 0) {
                                    encodeContextUnsigned22222222(buffer, 0, timeDuration);
                                  }
                                  encodeContextEnumerated22222222(buffer, 1, enableDisable);
                                  if (password && password !== "") {
                                    encodeContextCharacterString22222222(buffer, 2, password);
                                  }
                                };
                                var decode922222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let value = {};
                                  let decodedValue;
                                  let result;
                                  if (decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    value.timeDuration = decodedValue.value;
                                    len += decodedValue.len;
                                  }
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  value.enableDisable = decodedValue.value;
                                  len += decodedValue.len;
                                  if (len < apduLen) {
                                    if (!decodeIsContextTag22222222(buffer, offset + len, 2)) {
                                      return void 0;
                                    }
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeCharacterString22222222(
                                      buffer,
                                      offset + len,
                                      apduLen - (offset + len),
                                      result.value
                                    );
                                    value.password = decodedValue.value;
                                    len += decodedValue.len;
                                  }
                                  value.len = len;
                                  return value;
                                };
                                var error_exports22222222 = {};
                                __export22222222(error_exports22222222, {
                                  buildMessage: () => buildMessage22222222,
                                  decode: () => decode1022222222,
                                  encode: () => encode1022222222
                                });
                                var encode1022222222 = (buffer, errorClass, errorCode) => {
                                  encodeApplicationEnumerated22222222(buffer, errorClass);
                                  encodeApplicationEnumerated22222222(buffer, errorCode);
                                };
                                var decode1022222222 = (buffer, offset) => {
                                  const orgOffset = offset;
                                  let result;
                                  result = decodeTagNumberAndValue22222222(buffer, offset);
                                  offset += result.len;
                                  const errorClass = decodeEnumerated22222222(buffer, offset, result.value);
                                  offset += errorClass.len;
                                  result = decodeTagNumberAndValue22222222(buffer, offset);
                                  offset += result.len;
                                  const errorCode = decodeEnumerated22222222(buffer, offset, result.value);
                                  offset += errorClass.len;
                                  return {
                                    len: offset - orgOffset,
                                    class: errorClass.value,
                                    code: errorCode.value
                                  };
                                };
                                var buildMessage22222222 = function(result) {
                                  return "BacnetError Class: " + ErrorClassName22222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName22222222[result.code] + " (" + result.code + ")";
                                };
                                var event_information_exports22222222 = {};
                                __export22222222(event_information_exports22222222, {
                                  decode: () => decode1122222222,
                                  encode: () => encode1122222222
                                });
                                var encode1122222222 = (buffer, events, moreEvents) => {
                                  encodeOpeningTag22222222(buffer, 0);
                                  events.forEach((event) => {
                                    encodeContextObjectId22222222(
                                      buffer,
                                      0,
                                      event.objectId.type,
                                      event.objectId.instance
                                    );
                                    encodeContextEnumerated22222222(buffer, 1, event.eventState);
                                    encodeContextBitstring22222222(buffer, 2, event.acknowledgedTransitions);
                                    encodeOpeningTag22222222(buffer, 3);
                                    for (let i = 0; i < 3; i++) {
                                      encodeApplicationDate22222222(buffer, event.eventTimeStamps[i]);
                                      encodeApplicationTime22222222(buffer, event.eventTimeStamps[i]);
                                    }
                                    encodeClosingTag22222222(buffer, 3);
                                    encodeContextEnumerated22222222(buffer, 4, event.notifyType);
                                    encodeContextBitstring22222222(buffer, 5, event.eventEnable);
                                    encodeOpeningTag22222222(buffer, 6);
                                    for (let i = 0; i < 3; i++) {
                                      encodeApplicationUnsigned22222222(buffer, event.eventPriorities[i]);
                                    }
                                    encodeClosingTag22222222(buffer, 6);
                                  });
                                  encodeClosingTag22222222(buffer, 0);
                                  encodeContextBoolean22222222(buffer, 1, moreEvents);
                                };
                                var decode1122222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  len++;
                                  const alarms = [];
                                  let moreEvents;
                                  while (apduLen - 3 - len > 0) {
                                    let value = {};
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeObjectId22222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    value.objectId = {
                                      type: decodedValue.objectType,
                                      instance: decodedValue.instance
                                    };
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.eventState = decodedValue.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeBitstring22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.acknowledgedTransitions = decodedValue.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    value.eventTimeStamps = [];
                                    for (let i = 0; i < 3; i++) {
                                      if (result.tagNumber !== 0) {
                                        decodedValue = decodeApplicationDate22222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        const date = decodedValue.value.value;
                                        decodedValue = decodeApplicationTime22222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        const time = decodedValue.value.value;
                                        value.eventTimeStamps[i] = new Date(
                                          date.getFullYear(),
                                          date.getMonth(),
                                          date.getDate(),
                                          time.getHours(),
                                          time.getMinutes(),
                                          time.getSeconds(),
                                          time.getMilliseconds()
                                        );
                                      } else {
                                        len += result.value;
                                      }
                                    }
                                    len++;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.notifyType = decodedValue.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeBitstring22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.eventEnable = decodedValue.value;
                                    len++;
                                    value.eventPriorities = [];
                                    for (let i = 0; i < 3; i++) {
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.eventPriorities[i] = decodedValue.value;
                                    }
                                    len++;
                                    alarms.push(value);
                                  }
                                  moreEvents = buffer[apduLen - 1] === 1;
                                  return {
                                    len,
                                    alarms,
                                    moreEvents
                                  };
                                };
                                var event_notify_data_exports22222222 = {};
                                __export22222222(event_notify_data_exports22222222, {
                                  decode: () => decode1222222222,
                                  encode: () => encode1222222222
                                });
                                var encode1222222222 = (buffer, data) => {
                                  encodeContextUnsigned22222222(buffer, 0, data.processId);
                                  encodeContextObjectId22222222(
                                    buffer,
                                    1,
                                    data.initiatingObjectId.type,
                                    data.initiatingObjectId.instance
                                  );
                                  encodeContextObjectId22222222(
                                    buffer,
                                    2,
                                    data.eventObjectId.type,
                                    data.eventObjectId.instance
                                  );
                                  bacappEncodeContextTimestamp22222222(buffer, 3, data.timeStamp);
                                  encodeContextUnsigned22222222(buffer, 4, data.notificationClass);
                                  encodeContextUnsigned22222222(buffer, 5, data.priority);
                                  encodeContextEnumerated22222222(buffer, 6, data.eventType);
                                  if (data.messageText && data.messageText !== "") {
                                    encodeContextCharacterString22222222(buffer, 7, data.messageText);
                                  }
                                  encodeContextEnumerated22222222(buffer, 8, data.notifyType);
                                  switch (data.notifyType) {
                                    case 0:
                                    case 1:
                                      encodeContextBoolean22222222(buffer, 9, data.ackRequired);
                                      encodeContextEnumerated22222222(buffer, 10, data.fromState);
                                      break;
                                    default:
                                      break;
                                  }
                                  encodeContextEnumerated22222222(buffer, 11, data.toState);
                                  switch (data.notifyType) {
                                    case 0:
                                    case 1:
                                      encodeOpeningTag22222222(buffer, 12);
                                      switch (data.eventType) {
                                        case 0:
                                          encodeOpeningTag22222222(buffer, 0);
                                          encodeContextBitstring22222222(
                                            buffer,
                                            0,
                                            data.changeOfBitstringReferencedBitString
                                          );
                                          encodeContextBitstring22222222(
                                            buffer,
                                            1,
                                            data.changeOfBitstringStatusFlags
                                          );
                                          encodeClosingTag22222222(buffer, 0);
                                          break;
                                        case 1:
                                          encodeOpeningTag22222222(buffer, 1);
                                          encodeOpeningTag22222222(buffer, 0);
                                          bacappEncodePropertyState22222222(buffer, data.changeOfStateNewState);
                                          encodeClosingTag22222222(buffer, 0);
                                          encodeContextBitstring22222222(
                                            buffer,
                                            1,
                                            data.changeOfStateStatusFlags
                                          );
                                          encodeClosingTag22222222(buffer, 1);
                                          break;
                                        case 2:
                                          encodeOpeningTag22222222(buffer, 2);
                                          encodeOpeningTag22222222(buffer, 0);
                                          switch (data.changeOfValueTag) {
                                            case 0:
                                              encodeContextReal22222222(
                                                buffer,
                                                1,
                                                data.changeOfValueChangeValue
                                              );
                                              break;
                                            case 1:
                                              encodeContextBitstring22222222(
                                                buffer,
                                                0,
                                                data.changeOfValueChangedBits
                                              );
                                              break;
                                            default:
                                              throw new Error("NotImplemented");
                                          }
                                          encodeClosingTag22222222(buffer, 0);
                                          encodeContextBitstring22222222(
                                            buffer,
                                            1,
                                            data.changeOfValueStatusFlags
                                          );
                                          encodeClosingTag22222222(buffer, 2);
                                          break;
                                        case 4:
                                          encodeOpeningTag22222222(buffer, 4);
                                          encodeContextReal22222222(buffer, 0, data.floatingLimitReferenceValue);
                                          encodeContextBitstring22222222(
                                            buffer,
                                            1,
                                            data.floatingLimitStatusFlags
                                          );
                                          encodeContextReal22222222(buffer, 2, data.floatingLimitSetPointValue);
                                          encodeContextReal22222222(buffer, 3, data.floatingLimitErrorLimit);
                                          encodeClosingTag22222222(buffer, 4);
                                          break;
                                        case 5:
                                          encodeOpeningTag22222222(buffer, 5);
                                          encodeContextReal22222222(buffer, 0, data.outOfRangeExceedingValue);
                                          encodeContextBitstring22222222(buffer, 1, data.outOfRangeStatusFlags);
                                          encodeContextReal22222222(buffer, 2, data.outOfRangeDeadband);
                                          encodeContextReal22222222(buffer, 3, data.outOfRangeExceededLimit);
                                          encodeClosingTag22222222(buffer, 5);
                                          break;
                                        case 8:
                                          encodeOpeningTag22222222(buffer, 8);
                                          encodeContextEnumerated22222222(
                                            buffer,
                                            0,
                                            data.changeOfLifeSafetyNewState
                                          );
                                          encodeContextEnumerated22222222(
                                            buffer,
                                            1,
                                            data.changeOfLifeSafetyNewMode
                                          );
                                          encodeContextBitstring22222222(
                                            buffer,
                                            2,
                                            data.changeOfLifeSafetyStatusFlags
                                          );
                                          encodeContextEnumerated22222222(
                                            buffer,
                                            3,
                                            data.changeOfLifeSafetyOperationExpected
                                          );
                                          encodeClosingTag22222222(buffer, 8);
                                          break;
                                        case 10:
                                          encodeOpeningTag22222222(buffer, 10);
                                          bacappEncodeContextDeviceObjPropertyRef22222222(
                                            buffer,
                                            0,
                                            data.bufferReadyBufferProperty
                                          );
                                          encodeContextUnsigned22222222(
                                            buffer,
                                            1,
                                            data.bufferReadyPreviousNotification
                                          );
                                          encodeContextUnsigned22222222(
                                            buffer,
                                            2,
                                            data.bufferReadyCurrentNotification
                                          );
                                          encodeClosingTag22222222(buffer, 10);
                                          break;
                                        case 11:
                                          encodeOpeningTag22222222(buffer, 11);
                                          encodeContextUnsigned22222222(
                                            buffer,
                                            0,
                                            data.unsignedRangeExceedingValue
                                          );
                                          encodeContextBitstring22222222(
                                            buffer,
                                            1,
                                            data.unsignedRangeStatusFlags
                                          );
                                          encodeContextUnsigned22222222(
                                            buffer,
                                            2,
                                            data.unsignedRangeExceededLimit
                                          );
                                          encodeClosingTag22222222(buffer, 11);
                                          break;
                                        case 9:
                                        case 3:
                                          throw new Error("NotImplemented");
                                        default:
                                          throw new Error("NotImplemented");
                                      }
                                      encodeClosingTag22222222(buffer, 12);
                                      break;
                                    case 2:
                                      throw new Error("NotImplemented");
                                    default:
                                      break;
                                  }
                                };
                                var decode1222222222 = (buffer, offset) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let eventData = {};
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  eventData.processId = decodedValue.value;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  eventData.initiatingObjectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 2)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  eventData.eventObjectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 3)) {
                                    return void 0;
                                  }
                                  len += 2;
                                  decodedValue = decodeApplicationDate22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  const date = decodedValue.value.value;
                                  decodedValue = decodeApplicationTime22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  const time = decodedValue.value.value;
                                  eventData.timeStamp = new Date(
                                    date.getFullYear(),
                                    date.getMonth(),
                                    date.getDate(),
                                    time.getHours(),
                                    time.getMinutes(),
                                    time.getSeconds(),
                                    time.getMilliseconds()
                                  );
                                  len += 2;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 4)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  eventData.notificationClass = decodedValue.value;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 5)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  eventData.priority = decodedValue.value;
                                  if (eventData.priority > 255) {
                                    return void 0;
                                  }
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 6)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  eventData.eventType = decodedValue.value;
                                  if (decodeIsContextTag22222222(buffer, offset + len, 7)) {
                                    decodedValue = decodeContextCharacterString22222222(
                                      buffer,
                                      offset + len,
                                      2e4,
                                      7
                                    );
                                    len += decodedValue.len;
                                    eventData.messageText = decodedValue.value;
                                  }
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 8)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  eventData.notifyType = decodedValue.value;
                                  switch (eventData.notifyType) {
                                    case 0:
                                    case 1:
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned22222222(buffer, offset + len, 1);
                                      len += decodedValue.len;
                                      eventData.ackRequired = decodedValue.value > 0;
                                      if (!decodeIsContextTag22222222(buffer, offset + len, 10)) {
                                        return void 0;
                                      }
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeEnumerated22222222(
                                        buffer,
                                        offset + len,
                                        result.value
                                      );
                                      len += decodedValue.len;
                                      eventData.fromState = decodedValue.value;
                                      break;
                                    default:
                                      break;
                                  }
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 11)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  eventData.toState = decodedValue.value;
                                  eventData.len = len;
                                  return eventData;
                                };
                                var get_enrollment_summary_exports22222222 = {};
                                __export22222222(get_enrollment_summary_exports22222222, {
                                  decode: () => decode1322222222,
                                  decodeAcknowledge: () => decodeAcknowledge322222222,
                                  encode: () => encode1322222222,
                                  encodeAcknowledge: () => encodeAcknowledge422222222
                                });
                                var encode1322222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                                  encodeContextEnumerated22222222(buffer, 0, acknowledgmentFilter);
                                  if (enrollmentFilter) {
                                    encodeOpeningTag22222222(buffer, 1);
                                    encodeOpeningTag22222222(buffer, 0);
                                    encodeContextObjectId22222222(
                                      buffer,
                                      0,
                                      enrollmentFilter.objectId.type,
                                      enrollmentFilter.objectId.instance
                                    );
                                    encodeClosingTag22222222(buffer, 0);
                                    encodeContextUnsigned22222222(buffer, 1, enrollmentFilter.processId);
                                    encodeClosingTag22222222(buffer, 1);
                                  }
                                  if (eventStateFilter) {
                                    encodeOpeningTag22222222(buffer, 2);
                                    encodeContextEnumerated22222222(buffer, 0, eventStateFilter);
                                    encodeClosingTag22222222(buffer, 2);
                                  }
                                  if (eventTypeFilter) {
                                    encodeOpeningTag22222222(buffer, 3);
                                    encodeContextEnumerated22222222(buffer, 0, eventTypeFilter);
                                    encodeClosingTag22222222(buffer, 3);
                                  }
                                  if (priorityFilter) {
                                    encodeOpeningTag22222222(buffer, 4);
                                    encodeContextUnsigned22222222(buffer, 0, priorityFilter.min);
                                    encodeContextUnsigned22222222(buffer, 1, priorityFilter.max);
                                    encodeClosingTag22222222(buffer, 4);
                                  }
                                  if (notificationClassFilter) {
                                    encodeOpeningTag22222222(buffer, 5);
                                    encodeContextUnsigned22222222(buffer, 0, notificationClassFilter);
                                    encodeClosingTag22222222(buffer, 5);
                                  }
                                };
                                var decode1322222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let value = {};
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.acknowledgmentFilter = decodedValue.value;
                                  if (decodeIsContextTag22222222(buffer, offset + len, 1)) {
                                    len++;
                                    value.enrollmentFilter = {};
                                    if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                      return void 0;
                                    }
                                    len++;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeObjectId22222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    value.enrollmentFilter.objectId = {
                                      type: decodedValue.objectType,
                                      instance: decodedValue.instance
                                    };
                                    len++;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.enrollmentFilter.processId = decodedValue.value;
                                    len++;
                                  }
                                  if (decodeIsContextTag22222222(buffer, offset + len, 2)) {
                                    len++;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.eventStateFilter = decodedValue.value;
                                    len++;
                                  }
                                  if (decodeIsContextTag22222222(buffer, offset + len, 3)) {
                                    len++;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.eventTypeFilter = decodedValue.value;
                                    len++;
                                  }
                                  if (decodeIsContextTag22222222(buffer, offset + len, 4)) {
                                    len++;
                                    value.priorityFilter = {};
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.priorityFilter.min = decodedValue.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.priorityFilter.max = decodedValue.value;
                                    len++;
                                  }
                                  if (decodeIsContextTag22222222(buffer, offset + len, 5)) {
                                    len++;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.notificationClassFilter = decodedValue.value;
                                    len++;
                                  }
                                  value.len = len;
                                  return value;
                                };
                                var encodeAcknowledge422222222 = (buffer, enrollmentSummaries) => {
                                  enrollmentSummaries.forEach((enrollmentSummary) => {
                                    encodeApplicationObjectId22222222(
                                      buffer,
                                      enrollmentSummary.objectId.type,
                                      enrollmentSummary.objectId.instance
                                    );
                                    encodeApplicationEnumerated22222222(buffer, enrollmentSummary.eventType);
                                    encodeApplicationEnumerated22222222(buffer, enrollmentSummary.eventState);
                                    encodeApplicationUnsigned22222222(buffer, enrollmentSummary.priority);
                                    encodeApplicationUnsigned22222222(
                                      buffer,
                                      enrollmentSummary.notificationClass
                                    );
                                  });
                                };
                                var decodeAcknowledge322222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  const enrollmentSummaries = [];
                                  while (apduLen - len > 0) {
                                    const enrollmentSummary = {};
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 12) {
                                      return void 0;
                                    }
                                    result = decodeObjectId22222222(buffer, offset + len);
                                    len += result.len;
                                    enrollmentSummary.objectId = {
                                      type: result.objectType,
                                      instance: result.instance
                                    };
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 9) {
                                      return void 0;
                                    }
                                    result = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    len += result.len;
                                    enrollmentSummary.eventType = result.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 9) {
                                      return void 0;
                                    }
                                    result = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    len += result.len;
                                    enrollmentSummary.eventState = result.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 2) {
                                      return void 0;
                                    }
                                    result = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += result.len;
                                    enrollmentSummary.priority = result.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 2) {
                                      return void 0;
                                    }
                                    result = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += result.len;
                                    enrollmentSummary.notificationClass = result.value;
                                    enrollmentSummaries.push(enrollmentSummary);
                                  }
                                  return {
                                    enrollmentSummaries,
                                    len
                                  };
                                };
                                var get_event_information_exports22222222 = {};
                                __export22222222(get_event_information_exports22222222, {
                                  decode: () => decode1422222222,
                                  decodeAcknowledge: () => decodeAcknowledge422222222,
                                  encode: () => encode1422222222,
                                  encodeAcknowledge: () => encodeAcknowledge522222222
                                });
                                var encode1422222222 = (buffer, lastReceivedObjectId) => {
                                  encodeContextObjectId22222222(
                                    buffer,
                                    0,
                                    lastReceivedObjectId.type,
                                    lastReceivedObjectId.instance
                                  );
                                };
                                var decode1422222222 = (buffer, offset) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let value = {};
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  value.lastReceivedObjectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  value.len = len;
                                  return value;
                                };
                                var encodeAcknowledge522222222 = (buffer, events, moreEvents) => {
                                  encodeOpeningTag22222222(buffer, 0);
                                  events.forEach((eventData) => {
                                    encodeContextObjectId22222222(
                                      buffer,
                                      0,
                                      eventData.objectId.type,
                                      eventData.objectId.instance
                                    );
                                    encodeContextEnumerated22222222(buffer, 1, eventData.eventState);
                                    encodeContextBitstring22222222(buffer, 2, eventData.acknowledgedTransitions);
                                    encodeOpeningTag22222222(buffer, 3);
                                    for (let i = 0; i < 3; i++) {
                                      bacappEncodeTimestamp22222222(buffer, eventData.eventTimeStamps[i]);
                                    }
                                    encodeClosingTag22222222(buffer, 3);
                                    encodeContextEnumerated22222222(buffer, 4, eventData.notifyType);
                                    encodeContextBitstring22222222(buffer, 5, eventData.eventEnable);
                                    encodeOpeningTag22222222(buffer, 6);
                                    for (let i = 0; i < 3; i++) {
                                      encodeApplicationUnsigned22222222(buffer, eventData.eventPriorities[i]);
                                    }
                                    encodeClosingTag22222222(buffer, 6);
                                  });
                                  encodeClosingTag22222222(buffer, 0);
                                  encodeContextBoolean22222222(buffer, 1, moreEvents);
                                };
                                var decodeAcknowledge422222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let value = {};
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  value.events = [];
                                  while (apduLen - len > 3) {
                                    let event = {};
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeObjectId22222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    event.objectId = {
                                      type: decodedValue.objectType,
                                      instance: decodedValue.instance
                                    };
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    event.eventState = decodedValue.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeBitstring22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    event.acknowledgedTransitions = decodedValue.value;
                                    if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 3)) {
                                      return void 0;
                                    }
                                    len++;
                                    event.eventTimeStamps = [];
                                    for (let i = 0; i < 3; i++) {
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                      if (result.tagNumber === 0) {
                                        decodedValue = decodeBacnetTime22222222(
                                          buffer,
                                          offset + len,
                                          result.value
                                        );
                                        len += decodedValue.len;
                                        event.eventTimeStamps[i] = {
                                          value: decodedValue.value,
                                          type: 0
                                          /* TIME */
                                        };
                                      } else if (result.tagNumber === 1) {
                                        decodedValue = decodeUnsigned22222222(
                                          buffer,
                                          offset + len,
                                          result.value
                                        );
                                        len += decodedValue.len;
                                        event.eventTimeStamps[i] = {
                                          value: decodedValue.value,
                                          type: 1
                                          /* SEQUENCE_NUMBER */
                                        };
                                      } else if (result.tagNumber === 2) {
                                        let date = decodeApplicationDate22222222(
                                          buffer,
                                          offset + len
                                        );
                                        len += date.len;
                                        date = date.value.value;
                                        let time = decodeApplicationTime22222222(
                                          buffer,
                                          offset + len
                                        );
                                        len += time.len;
                                        time = time.value.value;
                                        event.eventTimeStamps[i] = {
                                          value: new Date(
                                            date.getFullYear(),
                                            date.getMonth(),
                                            date.getDate(),
                                            time.getHours(),
                                            time.getMinutes(),
                                            time.getSeconds(),
                                            time.getMilliseconds()
                                          ),
                                          type: 2
                                          /* DATETIME */
                                        };
                                        len++;
                                      }
                                    }
                                    if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 3)) {
                                      return void 0;
                                    }
                                    len++;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    event.notifyType = decodedValue.value;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeBitstring22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    event.eventEnable = decodedValue.value;
                                    if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 6)) {
                                      return void 0;
                                    }
                                    len++;
                                    event.eventPriorities = [];
                                    for (let i = 0; i < 3; i++) {
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      event.eventPriorities[i] = decodedValue.value;
                                    }
                                    if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 6)) {
                                      return void 0;
                                    }
                                    len++;
                                    value.events.push(event);
                                  }
                                  if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  value.moreEvents = buffer[offset + len] > 0;
                                  len++;
                                  value.len = len;
                                  return value;
                                };
                                var i_am_exports22222222 = {};
                                __export22222222(i_am_exports22222222, {
                                  decode: () => decode1522222222,
                                  encode: () => encode1522222222
                                });
                                var encode1522222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                                  encodeApplicationObjectId22222222(buffer, 8, deviceId);
                                  encodeApplicationUnsigned22222222(buffer, maxApdu);
                                  encodeApplicationEnumerated22222222(buffer, segmentation);
                                  encodeApplicationUnsigned22222222(buffer, vendorId);
                                };
                                var decode1522222222 = (buffer, offset) => {
                                  let result;
                                  let apduLen = 0;
                                  const orgOffset = offset;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + apduLen);
                                  apduLen += result.len;
                                  if (result.tagNumber !== 12) {
                                    return void 0;
                                  }
                                  result = decodeObjectId22222222(buffer, offset + apduLen);
                                  apduLen += result.len;
                                  if (result.objectType !== 8) {
                                    return void 0;
                                  }
                                  const deviceId = result.instance;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + apduLen);
                                  apduLen += result.len;
                                  if (result.tagNumber !== 2) {
                                    return void 0;
                                  }
                                  result = decodeUnsigned22222222(buffer, offset + apduLen, result.value);
                                  apduLen += result.len;
                                  const maxApdu = result.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + apduLen);
                                  apduLen += result.len;
                                  if (result.tagNumber !== 9) {
                                    return void 0;
                                  }
                                  result = decodeEnumerated22222222(buffer, offset + apduLen, result.value);
                                  apduLen += result.len;
                                  if (result.value > 3) {
                                    return void 0;
                                  }
                                  const segmentation = result.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + apduLen);
                                  apduLen += result.len;
                                  if (result.tagNumber !== 2) {
                                    return void 0;
                                  }
                                  result = decodeUnsigned22222222(buffer, offset + apduLen, result.value);
                                  apduLen += result.len;
                                  if (result.value > 65535) {
                                    return void 0;
                                  }
                                  const vendorId = result.value;
                                  return {
                                    len: offset - orgOffset,
                                    deviceId,
                                    maxApdu,
                                    segmentation,
                                    vendorId
                                  };
                                };
                                var i_have_exports22222222 = {};
                                __export22222222(i_have_exports22222222, {
                                  decode: () => decode1622222222,
                                  encode: () => encode1622222222
                                });
                                var encode1622222222 = (buffer, deviceId, objectId, objectName) => {
                                  encodeApplicationObjectId22222222(buffer, deviceId.type, deviceId.instance);
                                  encodeApplicationObjectId22222222(buffer, objectId.type, objectId.instance);
                                  encodeApplicationCharacterString22222222(buffer, objectName);
                                };
                                var decode1622222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let value = {};
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  value.deviceId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  value.objectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeCharacterString22222222(
                                    buffer,
                                    offset + len,
                                    apduLen - (offset + len),
                                    result.value
                                  );
                                  len += decodedValue.len;
                                  value.objectName = decodedValue.value;
                                  value.len = len;
                                  return value;
                                };
                                var life_safety_operation_exports22222222 = {};
                                __export22222222(life_safety_operation_exports22222222, {
                                  decode: () => decode1722222222,
                                  encode: () => encode1722222222
                                });
                                var encode1722222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                                  encodeContextUnsigned22222222(buffer, 0, processId);
                                  encodeContextCharacterString22222222(buffer, 1, requestingSource);
                                  encodeContextEnumerated22222222(buffer, 2, operation);
                                  encodeContextObjectId22222222(
                                    buffer,
                                    3,
                                    targetObjectId.type,
                                    targetObjectId.instance
                                  );
                                };
                                var decode1722222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let value = {};
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.processId = decodedValue.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeCharacterString22222222(
                                    buffer,
                                    offset + len,
                                    apduLen - (offset + len),
                                    result.value
                                  );
                                  len += decodedValue.len;
                                  value.requestingSource = decodedValue.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.operation = decodedValue.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  value.targetObjectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  value.len = len;
                                  return value;
                                };
                                var private_transfer_exports22222222 = {};
                                __export22222222(private_transfer_exports22222222, {
                                  decode: () => decode1822222222,
                                  encode: () => encode1822222222
                                });
                                var encode1822222222 = (buffer, vendorId, serviceNumber, data) => {
                                  encodeContextUnsigned22222222(buffer, 0, vendorId);
                                  encodeContextUnsigned22222222(buffer, 1, serviceNumber);
                                  encodeOpeningTag22222222(buffer, 2);
                                  for (let i = 0; i < data.length; i++) {
                                    buffer.buffer[buffer.offset++] = data[i];
                                  }
                                  encodeClosingTag22222222(buffer, 2);
                                };
                                var decode1822222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let value = {};
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.vendorId = decodedValue.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.serviceNumber = decodedValue.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  const size = apduLen - (offset + len + 1);
                                  const data = [];
                                  for (let i = 0; i < size; i++) {
                                    data.push(buffer[offset + len++]);
                                  }
                                  value.data = data;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  value.len = len;
                                  return value;
                                };
                                var read_property_exports22222222 = {};
                                __export22222222(read_property_exports22222222, {
                                  decode: () => decode1922222222,
                                  decodeAcknowledge: () => decodeAcknowledge522222222,
                                  encode: () => encode1922222222,
                                  encodeAcknowledge: () => encodeAcknowledge622222222
                                });
                                var encode1922222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                                  if (objectType <= ASN1_MAX_OBJECT22222222) {
                                    encodeContextObjectId22222222(buffer, 0, objectType, objectInstance);
                                  }
                                  if (propertyId <= ASN1_MAX_PROPERTY_ID22222222) {
                                    encodeContextEnumerated22222222(buffer, 1, propertyId);
                                  }
                                  if (arrayIndex !== ASN1_ARRAY_ALL22222222) {
                                    encodeContextUnsigned22222222(
                                      buffer,
                                      2,
                                      arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL22222222
                                    );
                                  }
                                };
                                var decode1922222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  if (apduLen < 7) {
                                    return void 0;
                                  }
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  let objectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  let property = {};
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 1) {
                                    return void 0;
                                  }
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  property.id = decodedValue.value;
                                  property.index = ASN1_ARRAY_ALL22222222;
                                  if (len < apduLen) {
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber === 2 && len < apduLen) {
                                      decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      property.index = decodedValue.value;
                                    } else {
                                      return void 0;
                                    }
                                  }
                                  if (len < apduLen) {
                                    return void 0;
                                  }
                                  return {
                                    len,
                                    objectId,
                                    property
                                  };
                                };
                                var encodeAcknowledge622222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                                  encodeContextObjectId22222222(buffer, 0, objectId.type, objectId.instance);
                                  encodeContextEnumerated22222222(buffer, 1, propertyId);
                                  if (arrayIndex !== ASN1_ARRAY_ALL22222222) {
                                    encodeContextUnsigned22222222(buffer, 2, arrayIndex);
                                  }
                                  encodeOpeningTag22222222(buffer, 3);
                                  values.forEach((value) => {
                                    bacappEncodeApplicationData22222222(buffer, value);
                                  });
                                  encodeClosingTag22222222(buffer, 3);
                                };
                                var decodeAcknowledge522222222 = (buffer, offset, apduLen) => {
                                  let result;
                                  let decodedValue;
                                  let objectId = {};
                                  let property = {};
                                  if (!decodeIsContextTag22222222(buffer, offset, 0)) {
                                    return void 0;
                                  }
                                  let len = 1;
                                  result = decodeObjectId22222222(buffer, offset + len);
                                  len += result.len;
                                  objectId.type = result.objectType;
                                  objectId.instance = result.instance;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 1) {
                                    return void 0;
                                  }
                                  result = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += result.len;
                                  property.id = result.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  if (result.tagNumber === 2) {
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    property.index = decodedValue.value;
                                  } else {
                                    property.index = ASN1_ARRAY_ALL22222222;
                                  }
                                  const values = [];
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 3)) {
                                    return void 0;
                                  }
                                  len++;
                                  while (apduLen - len > 1) {
                                    result = bacappDecodeApplicationData22222222(
                                      buffer,
                                      offset + len,
                                      apduLen + offset,
                                      objectId.type,
                                      property.id
                                    );
                                    if (!result) {
                                      return void 0;
                                    }
                                    len += result.len;
                                    delete result.len;
                                    values.push(result);
                                  }
                                  if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 3)) {
                                    return void 0;
                                  }
                                  len++;
                                  return {
                                    len,
                                    objectId,
                                    property,
                                    values
                                  };
                                };
                                var read_property_multiple_exports22222222 = {};
                                __export22222222(read_property_multiple_exports22222222, {
                                  decode: () => decode2022222222,
                                  decodeAcknowledge: () => decodeAcknowledge622222222,
                                  encode: () => encode2022222222,
                                  encodeAcknowledge: () => encodeAcknowledge722222222
                                });
                                var encode2022222222 = (buffer, properties) => {
                                  properties.forEach((value) => {
                                    encodeReadAccessSpecification22222222(buffer, value);
                                  });
                                };
                                var decode2022222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  const values = [];
                                  while (apduLen - len > 0) {
                                    const decodedValue = decodeReadAccessSpecification22222222(
                                      buffer,
                                      offset + len,
                                      apduLen - len
                                    );
                                    if (!decodedValue) {
                                      return void 0;
                                    }
                                    len += decodedValue.len;
                                    values.push(decodedValue.value);
                                  }
                                  return {
                                    len,
                                    properties: values
                                  };
                                };
                                var encodeAcknowledge722222222 = (buffer, values) => {
                                  values.forEach((value) => {
                                    encodeReadAccessResult22222222(buffer, value);
                                  });
                                };
                                var decodeAcknowledge622222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  const values = [];
                                  while (apduLen - len > 0) {
                                    const result = decodeReadAccessResult22222222(
                                      buffer,
                                      offset + len,
                                      apduLen - len
                                    );
                                    if (!result || result === -1) {
                                      return void 0;
                                    }
                                    len += result.len;
                                    values.push(result.value);
                                  }
                                  return {
                                    len,
                                    values
                                  };
                                };
                                var read_range_exports22222222 = {};
                                __export22222222(read_range_exports22222222, {
                                  decode: () => decode2122222222,
                                  decodeAcknowledge: () => decodeAcknowledge722222222,
                                  encode: () => encode2122222222,
                                  encodeAcknowledge: () => encodeAcknowledge822222222
                                });
                                var encode2122222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                                  encodeContextObjectId22222222(buffer, 0, objectId.type, objectId.instance);
                                  encodeContextEnumerated22222222(buffer, 1, propertyId);
                                  if (arrayIndex !== ASN1_ARRAY_ALL22222222) {
                                    encodeContextUnsigned22222222(buffer, 2, arrayIndex);
                                  }
                                  switch (requestType) {
                                    case 0:
                                      encodeOpeningTag22222222(buffer, 3);
                                      encodeApplicationUnsigned22222222(buffer, position);
                                      encodeApplicationSigned22222222(buffer, count);
                                      encodeClosingTag22222222(buffer, 3);
                                      break;
                                    case 1:
                                      encodeOpeningTag22222222(buffer, 6);
                                      encodeApplicationUnsigned22222222(buffer, position);
                                      encodeApplicationSigned22222222(buffer, count);
                                      encodeClosingTag22222222(buffer, 6);
                                      break;
                                    case 2:
                                      encodeOpeningTag22222222(buffer, 7);
                                      encodeApplicationDate22222222(buffer, time);
                                      encodeApplicationTime22222222(buffer, time);
                                      encodeApplicationSigned22222222(buffer, count);
                                      encodeClosingTag22222222(buffer, 7);
                                      break;
                                    default:
                                      break;
                                  }
                                };
                                var decode2122222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let requestType;
                                  let position;
                                  let time;
                                  let count;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len, 0);
                                  len += decodedValue.len;
                                  let objectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  let property = {};
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 1) {
                                    return void 0;
                                  }
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  property.id = decodedValue.value;
                                  if (len < apduLen && decodeIsContextTag22222222(buffer, offset + len, 2)) {
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    property.index = decodedValue.value;
                                  } else {
                                    property.index = ASN1_ARRAY_ALL22222222;
                                  }
                                  if (len < apduLen) {
                                    result = decodeTagNumber22222222(buffer, offset + len);
                                    len += result.len;
                                    switch (result.tagNumber) {
                                      case 3:
                                        requestType = 0;
                                        result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeUnsigned22222222(
                                          buffer,
                                          offset + len,
                                          result.value
                                        );
                                        len += decodedValue.len;
                                        position = decodedValue.value;
                                        result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeSigned22222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        count = decodedValue.value;
                                        break;
                                      case 6:
                                        requestType = 1;
                                        result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeUnsigned22222222(
                                          buffer,
                                          offset + len,
                                          result.value
                                        );
                                        len += decodedValue.len;
                                        position = decodedValue.value;
                                        result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeSigned22222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        count = decodedValue.value;
                                        break;
                                      case 7:
                                        requestType = 2;
                                        decodedValue = decodeApplicationDate22222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        const tmpDate = decodedValue.value.value;
                                        decodedValue = decodeApplicationTime22222222(buffer, offset + len);
                                        len += decodedValue.len;
                                        const tmpTime = decodedValue.value.value;
                                        time = new Date(
                                          tmpDate.getYear(),
                                          tmpDate.getMonth(),
                                          tmpDate.getDate(),
                                          tmpTime.getHours(),
                                          tmpTime.getMinutes(),
                                          tmpTime.getSeconds(),
                                          tmpTime.getMilliseconds()
                                        );
                                        result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                        len += result.len;
                                        decodedValue = decodeSigned22222222(buffer, offset + len, result.value);
                                        len += decodedValue.len;
                                        count = decodedValue.value;
                                        break;
                                      default:
                                        return void 0;
                                    }
                                    result = decodeTagNumber22222222(buffer, offset + len);
                                    len += result.len;
                                  }
                                  return {
                                    len,
                                    objectId,
                                    property,
                                    requestType,
                                    position,
                                    time,
                                    count
                                  };
                                };
                                var encodeAcknowledge822222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                                  encodeContextObjectId22222222(buffer, 0, objectId.type, objectId.instance);
                                  encodeContextEnumerated22222222(buffer, 1, propertyId);
                                  if (arrayIndex !== ASN1_ARRAY_ALL22222222) {
                                    encodeContextUnsigned22222222(buffer, 2, arrayIndex);
                                  }
                                  encodeContextBitstring22222222(buffer, 3, resultFlags);
                                  encodeContextUnsigned22222222(buffer, 4, itemCount);
                                  encodeOpeningTag22222222(buffer, 5);
                                  if (itemCount !== 0) {
                                    applicationData.copy(
                                      buffer.buffer,
                                      buffer.offset,
                                      0,
                                      applicationData.length
                                    );
                                    buffer.offset += applicationData.length;
                                  }
                                  encodeClosingTag22222222(buffer, 5);
                                  if (itemCount !== 0 && requestType && requestType !== 0) {
                                    encodeContextUnsigned22222222(buffer, 6, firstSequence);
                                  }
                                };
                                var decodeAcknowledge722222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  const objectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  const property = { index: ASN1_ARRAY_ALL22222222 };
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 1) {
                                    return void 0;
                                  }
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  property.id = decodedValue.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  if (result.tagNumber === 2 && len < apduLen) {
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    property.index = decodedValue.value;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeBitstring22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  const resultFlag = decodedValue.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  const itemCount = decodedValue.value;
                                  if (!decodeIsOpeningTag22222222(buffer, offset + len)) {
                                    return void 0;
                                  }
                                  len++;
                                  const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                                  return {
                                    objectId,
                                    property,
                                    resultFlag,
                                    itemCount,
                                    rangeBuffer,
                                    len
                                  };
                                };
                                var register_foreign_device_exports22222222 = {};
                                __export22222222(register_foreign_device_exports22222222, {
                                  decode: () => decode2222222222,
                                  encode: () => encode2222222222
                                });
                                var encode2222222222 = (buffer, ttl, length = 2) => {
                                  encodeUnsigned22222222(buffer, ttl, length);
                                };
                                var decode2222222222 = (buffer, offset, length = 2) => {
                                  let len = 0;
                                  let result = decodeUnsigned22222222(buffer, offset + len, length);
                                  len += result.len;
                                  return {
                                    len,
                                    ttl: result.value
                                  };
                                };
                                var reinitialize_device_exports22222222 = {};
                                __export22222222(reinitialize_device_exports22222222, {
                                  decode: () => decode2322222222,
                                  encode: () => encode2322222222
                                });
                                var encode2322222222 = (buffer, state, password) => {
                                  encodeContextEnumerated22222222(buffer, 0, state);
                                  if (password && password !== "") {
                                    encodeContextCharacterString22222222(buffer, 1, password);
                                  }
                                };
                                var decode2322222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let value = {};
                                  let result;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  let decodedValue = decodeEnumerated22222222(
                                    buffer,
                                    offset + len,
                                    result.value
                                  );
                                  value.state = decodedValue.value;
                                  len += decodedValue.len;
                                  if (len < apduLen) {
                                    if (!decodeIsContextTag22222222(buffer, offset + len, 1)) {
                                      return void 0;
                                    }
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeCharacterString22222222(
                                      buffer,
                                      offset + len,
                                      apduLen - (offset + len),
                                      result.value
                                    );
                                    value.password = decodedValue.value;
                                    len += decodedValue.len;
                                  }
                                  value.len = len;
                                  return value;
                                };
                                var subscribe_cov_exports22222222 = {};
                                __export22222222(subscribe_cov_exports22222222, {
                                  decode: () => decode2422222222,
                                  encode: () => encode2422222222
                                });
                                var encode2422222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                                  encodeContextUnsigned22222222(buffer, 0, subscriberProcessId);
                                  encodeContextObjectId22222222(
                                    buffer,
                                    1,
                                    monitoredObjectId.type,
                                    monitoredObjectId.instance
                                  );
                                  if (!cancellationRequest) {
                                    encodeContextBoolean22222222(buffer, 2, issueConfirmedNotifications);
                                    encodeContextUnsigned22222222(buffer, 3, lifetime);
                                  }
                                };
                                var decode2422222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let value = {};
                                  let result;
                                  let decodedValue;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.subscriberProcessId = decodedValue.value;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  value.monitoredObjectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  value.cancellationRequest = true;
                                  if (len < apduLen) {
                                    value.issueConfirmedNotifications = false;
                                    if (decodeIsContextTag22222222(buffer, offset + len, 2)) {
                                      value.cancellationRequest = false;
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                      value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                      len++;
                                    }
                                    value.lifetime = 0;
                                    if (decodeIsContextTag22222222(buffer, offset + len, 3)) {
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                      decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      value.lifetime = decodedValue.value;
                                    }
                                  }
                                  value.len = len;
                                  return value;
                                };
                                var subscribe_property_exports22222222 = {};
                                __export22222222(subscribe_property_exports22222222, {
                                  decode: () => decode2522222222,
                                  encode: () => encode2522222222
                                });
                                var encode2522222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                                  encodeContextUnsigned22222222(buffer, 0, subscriberProcessId);
                                  encodeContextObjectId22222222(
                                    buffer,
                                    1,
                                    monitoredObjectId.type,
                                    monitoredObjectId.instance
                                  );
                                  if (!cancellationRequest) {
                                    encodeContextBoolean22222222(buffer, 2, issueConfirmedNotifications);
                                    encodeContextUnsigned22222222(buffer, 3, lifetime);
                                  }
                                  encodeOpeningTag22222222(buffer, 4);
                                  encodeContextEnumerated22222222(buffer, 0, monitoredProperty.id);
                                  if (monitoredProperty.index !== ASN1_ARRAY_ALL22222222) {
                                    encodeContextUnsigned22222222(buffer, 1, monitoredProperty.index);
                                  }
                                  encodeClosingTag22222222(buffer, 4);
                                  if (covIncrementPresent) {
                                    encodeContextReal22222222(buffer, 5, covIncrement);
                                  }
                                };
                                var decode2522222222 = (buffer, offset) => {
                                  let len = 0;
                                  let value = {};
                                  let result;
                                  let decodedValue;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.subscriberProcessId = decodedValue.value;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  value.monitoredObjectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  value.cancellationRequest = true;
                                  value.issueConfirmedNotifications = false;
                                  if (decodeIsContextTag22222222(buffer, offset + len, 2)) {
                                    value.cancellationRequest = false;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                    len++;
                                  }
                                  value.lifetime = 0;
                                  if (decodeIsContextTag22222222(buffer, offset + len, 3)) {
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.lifetime = decodedValue.value;
                                  }
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 4)) {
                                    return void 0;
                                  }
                                  len++;
                                  value.monitoredProperty = {};
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.monitoredProperty.id = decodedValue.value;
                                  value.monitoredProperty.index = ASN1_ARRAY_ALL22222222;
                                  if (decodeIsContextTag22222222(buffer, offset + len, 1)) {
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.monitoredProperty.index = decodedValue.value;
                                  }
                                  if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 4)) {
                                    return void 0;
                                  }
                                  len++;
                                  value.covIncrement = 0;
                                  if (decodeIsContextTag22222222(buffer, offset + len, 5)) {
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeReal22222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    value.covIncrement = decodedValue.value;
                                  }
                                  value.len = len;
                                  return value;
                                };
                                var time_sync_exports22222222 = {};
                                __export22222222(time_sync_exports22222222, {
                                  decode: () => decode2622222222,
                                  encode: () => encode2622222222
                                });
                                var encode2622222222 = (buffer, time) => {
                                  encodeApplicationDate22222222(buffer, time);
                                  encodeApplicationTime22222222(buffer, time);
                                };
                                var decode2622222222 = (buffer, offset, length) => {
                                  let len = 0;
                                  let result;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 10) {
                                    return void 0;
                                  }
                                  const date = decodeDate22222222(buffer, offset + len);
                                  len += date.len;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 11) {
                                    return void 0;
                                  }
                                  const time = decodeBacnetTime22222222(buffer, offset + len);
                                  len += time.len;
                                  return {
                                    len,
                                    value: new Date(
                                      date.value.getFullYear(),
                                      date.value.getMonth(),
                                      date.value.getDate(),
                                      time.value.getHours(),
                                      time.value.getMinutes(),
                                      time.value.getSeconds(),
                                      time.value.getMilliseconds()
                                    )
                                  };
                                };
                                var who_has_exports22222222 = {};
                                __export22222222(who_has_exports22222222, {
                                  decode: () => decode2722222222,
                                  encode: () => encode2722222222
                                });
                                var encode2722222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                                  if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE22222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE22222222) {
                                    encodeContextUnsigned22222222(buffer, 0, lowLimit);
                                    encodeContextUnsigned22222222(buffer, 1, highLimit);
                                  }
                                  if (objectName && objectName !== "") {
                                    encodeContextCharacterString22222222(buffer, 3, objectName);
                                  } else {
                                    encodeContextObjectId22222222(buffer, 2, objectId.type, objectId.instance);
                                  }
                                };
                                var decode2722222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let value = {};
                                  let decodedValue;
                                  let result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber === 0) {
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    if (decodedValue.value <= ASN1_MAX_INSTANCE22222222) {
                                      value.lowLimit = decodedValue.value;
                                    }
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                  }
                                  if (result.tagNumber === 1) {
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    if (decodedValue.value <= ASN1_MAX_INSTANCE22222222) {
                                      value.highLimit = decodedValue.value;
                                    }
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                  }
                                  if (result.tagNumber === 2) {
                                    decodedValue = decodeObjectId22222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    value.objectId = {
                                      type: decodedValue.objectType,
                                      instance: decodedValue.instance
                                    };
                                  }
                                  if (result.tagNumber === 3) {
                                    decodedValue = decodeCharacterString22222222(
                                      buffer,
                                      offset + len,
                                      apduLen - (offset + len),
                                      result.value
                                    );
                                    len += decodedValue.len;
                                    value.objectName = decodedValue.value;
                                  }
                                  value.len = len;
                                  return value;
                                };
                                var who_is_exports22222222 = {};
                                __export22222222(who_is_exports22222222, {
                                  decode: () => decode2822222222,
                                  encode: () => encode2822222222
                                });
                                var encode2822222222 = (buffer, lowLimit, highLimit) => {
                                  if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE22222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE22222222) {
                                    encodeContextUnsigned22222222(buffer, 0, lowLimit);
                                    encodeContextUnsigned22222222(buffer, 1, highLimit);
                                  }
                                };
                                var decode2822222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let value = {};
                                  if (apduLen <= 0) {
                                    return {};
                                  }
                                  let result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 0) {
                                    return void 0;
                                  }
                                  if (apduLen <= len) {
                                    return void 0;
                                  }
                                  let decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  if (decodedValue.value <= ASN1_MAX_INSTANCE22222222) {
                                    value.lowLimit = decodedValue.value;
                                  }
                                  if (apduLen <= len) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 1) {
                                    return void 0;
                                  }
                                  if (apduLen <= len) {
                                    return void 0;
                                  }
                                  decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  if (decodedValue.value <= ASN1_MAX_INSTANCE22222222) {
                                    value.highLimit = decodedValue.value;
                                  }
                                  value.len = len;
                                  return value;
                                };
                                var write_property_exports22222222 = {};
                                __export22222222(write_property_exports22222222, {
                                  decode: () => decode2922222222,
                                  encode: () => encode2922222222
                                });
                                var encode2922222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                                  encodeContextObjectId22222222(buffer, 0, objectType, objectInstance);
                                  encodeContextEnumerated22222222(buffer, 1, propertyId);
                                  if (arrayIndex !== ASN1_ARRAY_ALL22222222) {
                                    encodeContextUnsigned22222222(buffer, 2, arrayIndex);
                                  }
                                  encodeOpeningTag22222222(buffer, 3);
                                  values.forEach((value) => {
                                    bacappEncodeApplicationData22222222(buffer, value);
                                  });
                                  encodeClosingTag22222222(buffer, 3);
                                  if (priority !== ASN1_NO_PRIORITY22222222) {
                                    encodeContextUnsigned22222222(buffer, 4, priority);
                                  }
                                };
                                var decode2922222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let value = {
                                    property: {}
                                  };
                                  let decodedValue;
                                  let result;
                                  if (!decodeIsContextTag22222222(buffer, offset + len, 0)) {
                                    return void 0;
                                  }
                                  len++;
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  let objectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  len += decodedValue.len;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 1) {
                                    return void 0;
                                  }
                                  decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.property.id = decodedValue.value;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  if (result.tagNumber === 2) {
                                    len += result.len;
                                    decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    value.property.index = decodedValue.value;
                                  } else {
                                    value.property.index = ASN1_ARRAY_ALL22222222;
                                  }
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 3)) {
                                    return void 0;
                                  }
                                  len++;
                                  const values = [];
                                  while (apduLen - len > 1 && !decodeIsClosingTagNumber22222222(buffer, offset + len, 3)) {
                                    decodedValue = bacappDecodeApplicationData22222222(
                                      buffer,
                                      offset + len,
                                      apduLen + offset,
                                      objectId.type,
                                      value.property.id
                                    );
                                    if (!decodedValue) {
                                      return void 0;
                                    }
                                    len += decodedValue.len;
                                    delete decodedValue.len;
                                    values.push(decodedValue);
                                  }
                                  value.value = values;
                                  if (!decodeIsClosingTagNumber22222222(buffer, offset + len, 3)) {
                                    return void 0;
                                  }
                                  len++;
                                  value.priority = ASN1_MAX_PRIORITY22222222;
                                  if (len < apduLen) {
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    if (result.tagNumber === 4) {
                                      len += result.len;
                                      decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                      len += decodedValue;
                                      if (decodedValue.value >= ASN1_MIN_PRIORITY22222222 && decodedValue.value <= ASN1_MAX_PRIORITY22222222) {
                                        value.priority = decodedValue.value;
                                      } else {
                                        return void 0;
                                      }
                                    }
                                  }
                                  return {
                                    len,
                                    objectId,
                                    value
                                  };
                                };
                                var write_property_multiple_exports22222222 = {};
                                __export22222222(write_property_multiple_exports22222222, {
                                  decode: () => decode3022222222,
                                  encode: () => encode3022222222,
                                  encodeObject: () => encodeObject22222222
                                });
                                var encode3022222222 = (buffer, objectId, values) => {
                                  encodeContextObjectId22222222(buffer, 0, objectId.type, objectId.instance);
                                  encodeOpeningTag22222222(buffer, 1);
                                  values.forEach((pValue) => {
                                    encodeContextEnumerated22222222(buffer, 0, pValue.property.id);
                                    if (pValue.property.index !== ASN1_ARRAY_ALL22222222) {
                                      encodeContextUnsigned22222222(buffer, 1, pValue.property.index);
                                    }
                                    encodeOpeningTag22222222(buffer, 2);
                                    pValue.value.forEach((value) => {
                                      bacappEncodeApplicationData22222222(buffer, value);
                                    });
                                    encodeClosingTag22222222(buffer, 2);
                                    if (pValue.priority !== ASN1_NO_PRIORITY22222222) {
                                      encodeContextUnsigned22222222(buffer, 3, pValue.priority);
                                    }
                                  });
                                  encodeClosingTag22222222(buffer, 1);
                                };
                                var decode3022222222 = (buffer, offset, apduLen) => {
                                  let len = 0;
                                  let result;
                                  let decodedValue;
                                  let objectId;
                                  result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 0 || apduLen <= len) {
                                    return void 0;
                                  }
                                  apduLen -= len;
                                  if (apduLen < 4) {
                                    return void 0;
                                  }
                                  decodedValue = decodeObjectId22222222(buffer, offset + len);
                                  len += decodedValue.len;
                                  objectId = {
                                    type: decodedValue.objectType,
                                    instance: decodedValue.instance
                                  };
                                  if (!decodeIsOpeningTagNumber22222222(buffer, offset + len, 1)) {
                                    return void 0;
                                  }
                                  len++;
                                  const _values = [];
                                  while (apduLen - len > 1) {
                                    let newEntry = {};
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber !== 0) {
                                      return void 0;
                                    }
                                    decodedValue = decodeEnumerated22222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    let propertyId = decodedValue.value;
                                    let arrayIndex = ASN1_ARRAY_ALL22222222;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber === 1) {
                                      decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      arrayIndex = decodedValue.value;
                                      result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                      len += result.len;
                                    }
                                    newEntry.property = { id: propertyId, index: arrayIndex };
                                    if (result.tagNumber !== 2 || !decodeIsOpeningTag22222222(buffer, offset + len - 1)) {
                                      return void 0;
                                    }
                                    const values = [];
                                    while (len + offset <= buffer.length && !decodeIsClosingTag22222222(buffer, offset + len)) {
                                      let value = bacappDecodeApplicationData22222222(
                                        buffer,
                                        offset + len,
                                        apduLen + offset,
                                        objectId.type,
                                        propertyId
                                      );
                                      if (!value) {
                                        return void 0;
                                      }
                                      len += value.len;
                                      delete value.len;
                                      values.push(value);
                                    }
                                    len++;
                                    newEntry.value = values;
                                    let priority = ASN1_NO_PRIORITY22222222;
                                    result = decodeTagNumberAndValue22222222(buffer, offset + len);
                                    len += result.len;
                                    if (result.tagNumber === 3) {
                                      decodedValue = decodeUnsigned22222222(buffer, offset + len, result.value);
                                      len += decodedValue.len;
                                      priority = decodedValue.value;
                                    } else {
                                      len--;
                                    }
                                    newEntry.priority = priority;
                                    _values.push(newEntry);
                                    if (decodeIsClosingTagNumber22222222(buffer, offset + len, 1)) {
                                      len++;
                                    }
                                  }
                                  if (decodeIsClosingTagNumber22222222(buffer, offset + len, 1)) {
                                    len++;
                                  }
                                  return {
                                    len,
                                    objectId,
                                    values: _values
                                  };
                                };
                                var encodeObject22222222 = (buffer, values) => {
                                  values.forEach((object) => {
                                    encode3022222222(buffer, object.objectId, object.values);
                                  });
                                };
                                var getDecodedType22222222 = (buffer, offset) => {
                                  return buffer[offset];
                                };
                                var encodeConfirmedServiceRequest22222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                                  buffer.buffer[buffer.offset++] = type;
                                  buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                                  buffer.buffer[buffer.offset++] = invokeId;
                                  if ((type & 8) > 0) {
                                    buffer.buffer[buffer.offset++] = sequencenumber;
                                    buffer.buffer[buffer.offset++] = proposedWindowSize;
                                  }
                                  buffer.buffer[buffer.offset++] = service;
                                };
                                var decodeConfirmedServiceRequest22222222 = (buffer, offset) => {
                                  const orgOffset = offset;
                                  const type = buffer[offset++];
                                  const maxSegments = buffer[offset] & 240;
                                  const maxApdu = buffer[offset++] & 15;
                                  const invokeId = buffer[offset++];
                                  let sequencenumber = 0;
                                  let proposedWindowNumber = 0;
                                  if ((type & 8) > 0) {
                                    sequencenumber = buffer[offset++];
                                    proposedWindowNumber = buffer[offset++];
                                  }
                                  const service = buffer[offset++];
                                  return {
                                    len: offset - orgOffset,
                                    type,
                                    service,
                                    maxSegments,
                                    maxApdu,
                                    invokeId,
                                    sequencenumber,
                                    proposedWindowNumber
                                  };
                                };
                                var encodeUnconfirmedServiceRequest22222222 = (buffer, type, service) => {
                                  buffer.buffer[buffer.offset++] = type;
                                  buffer.buffer[buffer.offset++] = service;
                                };
                                var decodeUnconfirmedServiceRequest22222222 = (buffer, offset) => {
                                  const orgOffset = offset;
                                  const type = buffer[offset++];
                                  const service = buffer[offset++];
                                  return {
                                    len: offset - orgOffset,
                                    type,
                                    service
                                  };
                                };
                                var encodeSimpleAck22222222 = (buffer, type, service, invokeId) => {
                                  buffer.buffer[buffer.offset++] = type;
                                  buffer.buffer[buffer.offset++] = invokeId;
                                  buffer.buffer[buffer.offset++] = service;
                                };
                                var decodeSimpleAck22222222 = (buffer, offset) => {
                                  const orgOffset = offset;
                                  const type = buffer[offset++];
                                  const invokeId = buffer[offset++];
                                  const service = buffer[offset++];
                                  return {
                                    len: offset - orgOffset,
                                    type,
                                    service,
                                    invokeId
                                  };
                                };
                                var encodeComplexAck22222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                                  let len = 3;
                                  buffer.buffer[buffer.offset++] = type;
                                  buffer.buffer[buffer.offset++] = invokeId;
                                  if ((type & 8) > 0) {
                                    buffer.buffer[buffer.offset++] = sequencenumber;
                                    buffer.buffer[buffer.offset++] = proposedWindowNumber;
                                    len += 2;
                                  }
                                  buffer.buffer[buffer.offset++] = service;
                                  return len;
                                };
                                var decodeComplexAck22222222 = (buffer, offset) => {
                                  const orgOffset = offset;
                                  const type = buffer[offset++];
                                  const invokeId = buffer[offset++];
                                  let sequencenumber = 0;
                                  let proposedWindowNumber = 0;
                                  if ((type & 8) > 0) {
                                    sequencenumber = buffer[offset++];
                                    proposedWindowNumber = buffer[offset++];
                                  }
                                  const service = buffer[offset++];
                                  return {
                                    len: offset - orgOffset,
                                    type,
                                    service,
                                    invokeId,
                                    sequencenumber,
                                    proposedWindowNumber
                                  };
                                };
                                var encodeSegmentAck22222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                                  buffer.buffer[buffer.offset++] = type;
                                  buffer.buffer[buffer.offset++] = originalInvokeId;
                                  buffer.buffer[buffer.offset++] = sequencenumber;
                                  buffer.buffer[buffer.offset++] = actualWindowSize;
                                };
                                var decodeSegmentAck22222222 = (buffer, offset) => {
                                  const orgOffset = offset;
                                  const type = buffer[offset++];
                                  const originalInvokeId = buffer[offset++];
                                  const sequencenumber = buffer[offset++];
                                  const actualWindowSize = buffer[offset++];
                                  return {
                                    len: offset - orgOffset,
                                    type,
                                    originalInvokeId,
                                    sequencenumber,
                                    actualWindowSize
                                  };
                                };
                                var encodeResult22222222 = (buffer, resultCode) => {
                                  encodeUnsigned22222222(buffer, resultCode, 2);
                                };
                                var encodeError22222222 = (buffer, type, service, invokeId) => {
                                  buffer.buffer[buffer.offset++] = type;
                                  buffer.buffer[buffer.offset++] = invokeId;
                                  buffer.buffer[buffer.offset++] = service;
                                };
                                var decodeError22222222 = (buffer, offset) => {
                                  const orgOffset = offset;
                                  const type = buffer[offset++];
                                  const invokeId = buffer[offset++];
                                  const service = buffer[offset++];
                                  return {
                                    len: offset - orgOffset,
                                    type,
                                    service,
                                    invokeId
                                  };
                                };
                                var decodeAbort22222222 = (buffer, offset) => {
                                  const orgOffset = offset;
                                  const type = buffer[offset++];
                                  const invokeId = buffer[offset++];
                                  const reason = buffer[offset++];
                                  return {
                                    len: offset - orgOffset,
                                    type,
                                    invokeId,
                                    reason
                                  };
                                };
                                var DEFAULT_HOP_COUNT32222222 = 255;
                                var BACNET_PROTOCOL_VERSION22222222 = 1;
                                var BACNET_ADDRESS_TYPES22222222 = {
                                  NONE: 0,
                                  IP: 1
                                };
                                var decodeTarget22222222 = (buffer, offset) => {
                                  let len = 0;
                                  const target = {
                                    type: BACNET_ADDRESS_TYPES22222222.NONE,
                                    net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                                  };
                                  const adrLen = buffer[offset + len++];
                                  if (adrLen > 0) {
                                    target.adr = [];
                                    for (let i = 0; i < adrLen; i++) {
                                      target.adr.push(buffer[offset + len++]);
                                    }
                                  }
                                  return {
                                    target,
                                    len
                                  };
                                };
                                var encodeTarget22222222 = (buffer, target) => {
                                  buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                                  buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                                  if (target.net === 65535 || !target.adr) {
                                    buffer.buffer[buffer.offset++] = 0;
                                  } else {
                                    buffer.buffer[buffer.offset++] = target.adr.length;
                                    if (target.adr.length > 0) {
                                      for (let i = 0; i < target.adr.length; i++) {
                                        buffer.buffer[buffer.offset++] = target.adr[i];
                                      }
                                    }
                                  }
                                };
                                var decode3122222222 = (buffer, offset) => {
                                  let adrLen;
                                  const orgOffset = offset;
                                  offset++;
                                  const funct = buffer[offset++];
                                  let destination;
                                  if (funct & 32) {
                                    const tmpDestination = decodeTarget22222222(buffer, offset);
                                    offset += tmpDestination.len;
                                    destination = tmpDestination.target;
                                  }
                                  let source;
                                  if (funct & 8) {
                                    const tmpSource = decodeTarget22222222(buffer, offset);
                                    offset += tmpSource.len;
                                    source = tmpSource.target;
                                  }
                                  let hopCount = 0;
                                  if (funct & 32) {
                                    hopCount = buffer[offset++];
                                  }
                                  let networkMsgType = 0;
                                  let vendorId = 0;
                                  if (funct & 128) {
                                    networkMsgType = buffer[offset++];
                                    if (networkMsgType >= 128) {
                                      vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                                    } else if (networkMsgType === 0) {
                                      offset += 2;
                                    }
                                  }
                                  if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION22222222) {
                                    return void 0;
                                  }
                                  return {
                                    len: offset - orgOffset,
                                    funct,
                                    destination,
                                    source,
                                    hopCount,
                                    networkMsgType,
                                    vendorId
                                  };
                                };
                                var encode3122222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                                  const hasDestination = destination && destination.net > 0;
                                  const hasSource = source && source.net > 0 && source.net !== 65535;
                                  buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION22222222;
                                  buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                                  if (hasDestination) {
                                    encodeTarget22222222(buffer, destination);
                                  }
                                  if (hasSource) {
                                    encodeTarget22222222(buffer, source);
                                  }
                                  if (hasDestination) {
                                    buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT32222222;
                                  }
                                  if ((funct & 128) > 0) {
                                    buffer.buffer[buffer.offset++] = networkMsgType;
                                    if (networkMsgType >= 128) {
                                      buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                                      buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                                    }
                                  }
                                };
                                var DEFAULT_BACNET_PORT222222222 = 47808;
                                var encode3222222222 = (buffer, func, msgLength, originatingIP) => {
                                  buffer[0] = BVLL_TYPE_BACNET_IP22222222;
                                  buffer[1] = func;
                                  buffer[2] = (msgLength & 65280) >> 8;
                                  buffer[3] = (msgLength & 255) >> 0;
                                  if (originatingIP) {
                                    if (func !== 4) {
                                      throw new Error(
                                        "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                                      );
                                    }
                                    const [ipstr, portstr] = originatingIP.split(":");
                                    const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT222222222;
                                    const ip = ipstr.split(".");
                                    buffer[4] = parseInt(ip[0], 10);
                                    buffer[5] = parseInt(ip[1], 10);
                                    buffer[6] = parseInt(ip[2], 10);
                                    buffer[7] = parseInt(ip[3], 10);
                                    buffer[8] = (port & 65280) >> 8;
                                    buffer[9] = (port & 255) >> 0;
                                    return 6 + BVLC_HEADER_LENGTH32222222;
                                  } else {
                                    if (func === 4) {
                                      throw new Error(
                                        "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                                      );
                                    }
                                  }
                                  return BVLC_HEADER_LENGTH32222222;
                                };
                                var decode3222222222 = (buffer, _offset) => {
                                  let len;
                                  const func = buffer[1];
                                  const msgLength = buffer[2] << 8 | buffer[3] << 0;
                                  if (buffer[0] !== BVLL_TYPE_BACNET_IP22222222 || buffer.length !== msgLength) {
                                    return void 0;
                                  }
                                  let originatingIP = null;
                                  switch (func) {
                                    case 0:
                                    case 10:
                                    case 11:
                                    case 9:
                                    case 5:
                                    case 6:
                                    case 8:
                                    case 2:
                                    case 1:
                                    case 3:
                                    case 7:
                                      len = 4;
                                      break;
                                    case 4:
                                      const port = buffer[8] << 8 | buffer[9];
                                      originatingIP = buffer.slice(4, 8).join(".");
                                      if (port !== DEFAULT_BACNET_PORT222222222) {
                                        originatingIP += ":" + port;
                                      }
                                      len = 10;
                                      break;
                                    case 12:
                                      return void 0;
                                    default:
                                      return void 0;
                                  }
                                  return {
                                    len,
                                    func,
                                    msgLength,
                                    // Originating IP is set to the IP address of the node that originally
                                    // sent the packet, when it has been forwarded to us by a BBMD (since the
                                    // BBMD's IP address will be in the sender field.
                                    originatingIP
                                  };
                                };
                                var EventEmitter222222222 = import_events222222222.default.EventEmitter;
                                var debug322222222 = (0, import_debug322222222.default)("bacnet:client:debug");
                                var trace222222222 = (0, import_debug322222222.default)("bacnet:client:trace");
                                var ALL_INTERFACES22222222 = "0.0.0.0";
                                var LOCALHOST_INTERFACES_IPV422222222 = "127.0.0.1";
                                var BROADCAST_ADDRESS22222222 = "255.255.255.255";
                                var DEFAULT_HOP_COUNT222222222 = 255;
                                var BVLC_HEADER_LENGTH222222222 = 4;
                                var BVLC_FWD_HEADER_LENGTH22222222 = 10;
                                var beU22222222 = UnconfirmedServiceChoice22222222;
                                var unconfirmedServiceMap22222222 = {
                                  [beU22222222.I_AM]: "iAm",
                                  [beU22222222.WHO_IS]: "whoIs",
                                  [beU22222222.WHO_HAS]: "whoHas",
                                  [beU22222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                                  [beU22222222.TIME_SYNCHRONIZATION]: "timeSync",
                                  [beU22222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                                  [beU22222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                  [beU22222222.I_HAVE]: "iHave",
                                  [beU22222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                };
                                var beC22222222 = ConfirmedServiceChoice22222222;
                                var confirmedServiceMap22222222 = {
                                  [beC22222222.READ_PROPERTY]: "readProperty",
                                  [beC22222222.WRITE_PROPERTY]: "writeProperty",
                                  [beC22222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                                  [beC22222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                                  [beC22222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                                  [beC22222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                                  [beC22222222.ATOMIC_READ_FILE]: "atomicReadFile",
                                  [beC22222222.SUBSCRIBE_COV]: "subscribeCov",
                                  [beC22222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                                  [beC22222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                                  [beC22222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                                  [beC22222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                                  [beC22222222.READ_RANGE]: "readRange",
                                  [beC22222222.CREATE_OBJECT]: "createObject",
                                  [beC22222222.DELETE_OBJECT]: "deleteObject",
                                  [beC22222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                                  [beC22222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                                  [beC22222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                                  [beC22222222.GET_EVENT_INFORMATION]: "getEventInformation",
                                  [beC22222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                                  [beC22222222.ADD_LIST_ELEMENT]: "addListElement",
                                  [beC22222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                                  [beC22222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                                };
                                var errorReasonEnums22222222 = {
                                  BacnetAbort: RejectReason22222222
                                };
                                var BacnetError22222222 = class extends Error {
                                  constructor(message, bacnetErrorClass, bacnetErrorCode) {
                                    super(message);
                                    this.bacnetErrorClass = bacnetErrorClass;
                                    this.bacnetErrorCode = bacnetErrorCode;
                                  }
                                };
                                function bacnetErrorToString22222222(err) {
                                  var _a;
                                  const isError = err instanceof Error || err instanceof BacnetError22222222;
                                  if (!isError)
                                    return;
                                  const message = err.message;
                                  const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                                  const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                                  if (!errorReasonEnums22222222[reasonClass])
                                    return;
                                  const reasonString = errorReasonEnums22222222[reasonClass][reason];
                                  return reasonClass + ": " + reasonString;
                                }
                                var Client22222222 = class extends EventEmitter222222222 {
                                  /**
                                   *
                                   * @param options
                                   */
                                  constructor(options) {
                                    super();
                                    options = options || {};
                                    this._invokeCounter = 1;
                                    this._invokeStore = {};
                                    this._lastSequenceNumber = 0;
                                    this._segmentStore = [];
                                    this._settings = {
                                      port: options.port || 47808,
                                      interface: options.interface || ALL_INTERFACES22222222,
                                      transport: options.transport,
                                      broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS22222222,
                                      apduTimeout: options.apduTimeout || 3e3
                                    };
                                    options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                                    this._transport = this._settings.transport || new Transport22222222({
                                      port: this._settings.port,
                                      interface: this._settings.interface,
                                      broadcastAddress: this._settings.broadcastAddress,
                                      reuseAddr: options.reuseAddr
                                    });
                                    this._transport.on("message", this._receiveData.bind(this));
                                    this._transport.on("error", this._receiveError.bind(this));
                                    this._transport.on("listening", () => this.emit("listening"));
                                    this._transport.open();
                                  }
                                  /**
                                   *
                                   * @returns {number}
                                   * @private
                                   */
                                  _getInvokeId() {
                                    const id = this._invokeCounter++;
                                    if (id >= 256)
                                      this._invokeCounter = 1;
                                    return id - 1;
                                  }
                                  /**
                                   *
                                   * @param id
                                   * @param err
                                   * @param result
                                   * @returns {*}
                                   * @private
                                   */
                                  _invokeCallback(id, err, result) {
                                    const callback = this._invokeStore[id];
                                    if (callback) {
                                      return void callback(err, result);
                                    }
                                    debug322222222("InvokeId", id, "not found -> drop package");
                                  }
                                  /**
                                   *
                                   * @param id
                                   * @param callback
                                   * @private
                                   */
                                  _addCallback(id, callback) {
                                    const timeout = setTimeout(() => {
                                      delete this._invokeStore[id];
                                      callback(new Error("ERR_TIMEOUT"));
                                    }, this._settings.apduTimeout);
                                    this._invokeStore[id] = (err, data) => {
                                      clearTimeout(timeout);
                                      delete this._invokeStore[id];
                                      callback(err, data);
                                    };
                                  }
                                  /**
                                   *
                                   * @param isForwarded
                                   * @returns {{offset: (number), buffer: *}}
                                   * @private
                                   */
                                  _getBuffer(isForwarded) {
                                    return Object.assign(
                                      {},
                                      {
                                        buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                        offset: isForwarded ? BVLC_FWD_HEADER_LENGTH22222222 : BVLC_HEADER_LENGTH222222222
                                      }
                                    );
                                  }
                                  /**
                                   *
                                   * @param invokeId
                                   * @param buffer
                                   * @param offset
                                   * @param length
                                   * @returns {*}
                                   * @private
                                   */
                                  _processError(invokeId, buffer, offset, length) {
                                    const result = error_exports22222222.decode(buffer, offset);
                                    trace222222222("Received error:", result);
                                    if (!result) {
                                      return debug322222222("Couldn`t decode Error");
                                    }
                                    const err = new BacnetError22222222(error_exports22222222.buildMessage(result));
                                    err.bacnetErrorClass = result.class;
                                    err.bacnetErrorCode = result.code;
                                    this._invokeCallback(invokeId, err);
                                  }
                                  /**
                                   *
                                   * @param invokeId
                                   * @param reason
                                   * @private
                                   */
                                  _processAbort(invokeId, reason) {
                                    const err = new BacnetError22222222("BacnetAbort - Reason:" + reason);
                                    err.bacnetAbortReason = reason;
                                    err.bacnetErrorClass = AbortReason22222222;
                                    this._invokeCallback(invokeId, err);
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param negative
                                   * @param server
                                   * @param originalInvokeId
                                   * @param sequencenumber
                                   * @param actualWindowSize
                                   * @private
                                   */
                                  _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                                    const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                    encode3122222222(
                                      buffer,
                                      0,
                                      receiver,
                                      null,
                                      DEFAULT_HOP_COUNT222222222,
                                      0,
                                      0
                                    );
                                    encodeSegmentAck22222222(
                                      buffer,
                                      64 | (negative ? 2 : 0) | (server ? 1 : 0),
                                      originalInvokeId,
                                      sequencenumber,
                                      actualWindowSize
                                    );
                                    this.sendBvlc(receiver, buffer);
                                  }
                                  /**
                                   *
                                   * @param msg
                                   * @param first
                                   * @param moreFollows
                                   * @param buffer
                                   * @param offset
                                   * @param length
                                   * @private
                                   */
                                  _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                                    if (first) {
                                      this._segmentStore = [];
                                      msg.type &= ~8;
                                      let apduHeaderLen = 3;
                                      if ((msg.type & PDU_TYPE_MASK22222222) === 0) {
                                        apduHeaderLen = 4;
                                      }
                                      const apdubuffer = this._getBuffer();
                                      apdubuffer.offset = 0;
                                      buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                                      if ((msg.type & PDU_TYPE_MASK22222222) === 0) {
                                        encodeConfirmedServiceRequest22222222(
                                          apdubuffer,
                                          msg.type,
                                          msg.service,
                                          msg.maxSegments,
                                          msg.maxApdu,
                                          msg.invokeId,
                                          0,
                                          0
                                        );
                                      } else {
                                        encodeComplexAck22222222(
                                          apdubuffer,
                                          msg.type,
                                          msg.service,
                                          msg.invokeId,
                                          0,
                                          0
                                        );
                                      }
                                      this._segmentStore.push(
                                        //@ts-ignore
                                        apdubuffer.buffer.slice(0, length + apduHeaderLen)
                                      );
                                    } else {
                                      this._segmentStore.push(buffer.slice(offset, offset + length));
                                    }
                                    if (!moreFollows) {
                                      const apduBuffer = Buffer.concat(this._segmentStore);
                                      this._segmentStore = [];
                                      msg.type &= ~8;
                                      this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                                    }
                                  }
                                  /**
                                   *
                                   * @param msg
                                   * @param server
                                   * @param buffer
                                   * @param offset
                                   * @param length
                                   * @private
                                   */
                                  _processSegment(msg, server, buffer, offset, length) {
                                    let first = false;
                                    if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                                      first = true;
                                    } else {
                                      if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                        return this._segmentAckResponse(
                                          msg.header.address,
                                          true,
                                          server,
                                          msg.invokeId,
                                          this._lastSequenceNumber,
                                          msg.proposedWindowNumber
                                        );
                                      }
                                    }
                                    this._lastSequenceNumber = msg.sequencenumber;
                                    const moreFollows = msg.type & 4;
                                    if (!moreFollows) {
                                      this._lastSequenceNumber = 0;
                                    }
                                    if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                                      this._segmentAckResponse(
                                        msg.header.address,
                                        false,
                                        server,
                                        msg.invokeId,
                                        msg.sequencenumber,
                                        msg.proposedWindowNumber
                                      );
                                    }
                                    this._performDefaultSegmentHandling(
                                      msg,
                                      first,
                                      moreFollows,
                                      buffer,
                                      offset,
                                      length
                                    );
                                  }
                                  /**
                                   *
                                   * @param serviceMap
                                   * @param content
                                   * @param buffer
                                   * @param offset
                                   * @param length
                                   * @returns {*}
                                   * @private
                                   */
                                  _processServiceRequest(serviceMap, content, buffer, offset, length) {
                                    let result;
                                    const sender = content.header.sender;
                                    if (sender.address === LOCALHOST_INTERFACES_IPV422222222) {
                                      debug322222222("Received and skipped localhost service request:", content.service);
                                      return;
                                    }
                                    const name = serviceMap[content.service];
                                    if (!name) {
                                      debug322222222("Received unsupported service request:", content.service);
                                      return;
                                    }
                                    const id = content.invokeId ? "@" + content.invokeId : "";
                                    trace222222222(`Received service request${id}:`, name);
                                    const serviceHandler = services_exports22222222[name];
                                    if (serviceHandler) {
                                      try {
                                        content.payload = serviceHandler.decode(buffer, offset, length);
                                        trace222222222(`Handled service request${id}:`, name, JSON.stringify(content));
                                      } catch (e) {
                                        debug322222222("Exception thrown when processing message:", e);
                                        debug322222222("Original message was", name + ":", content);
                                        return;
                                      }
                                      if (!content.payload) {
                                        return debug322222222("Received invalid", name, "message");
                                      }
                                    } else {
                                      debug322222222("No serviceHandler defined for:", name);
                                    }
                                    if (this.listenerCount(name)) {
                                      trace222222222("listener count by name emits " + name + " with content");
                                      this.emit(name, content);
                                    } else {
                                      if (this.listenerCount("unhandledEvent")) {
                                        trace222222222("unhandled event emiting with content");
                                        this.emit("unhandledEvent", content);
                                      } else {
                                        trace222222222(
                                          "no unhandled event handler with header: " + JSON.stringify(content.header)
                                        );
                                        if (content.header.expectingReply) {
                                          debug322222222("Replying with error for unhandled service:", name);
                                          content.header.sender.forwardedFrom = null;
                                          this.errorResponse(
                                            content.header.sender,
                                            content.service,
                                            content.invokeId,
                                            5,
                                            67
                                            /* REJECT_UNRECOGNIZED_SERVICE */
                                          );
                                        }
                                      }
                                    }
                                  }
                                  /**
                                   *
                                   * @param buffer
                                   * @param offset
                                   * @param length
                                   * @param header
                                   * @private
                                   */
                                  _handlePdu(buffer, offset, length, header) {
                                    let msg;
                                    trace222222222("handlePdu Header: ", header);
                                    switch (header.apduType & PDU_TYPE_MASK22222222) {
                                      case 16:
                                        msg = decodeUnconfirmedServiceRequest22222222(buffer, offset);
                                        msg.header = header;
                                        msg.header.confirmedService = false;
                                        this._processServiceRequest(
                                          unconfirmedServiceMap22222222,
                                          msg,
                                          buffer,
                                          offset + msg.len,
                                          length - msg.len
                                        );
                                        break;
                                      case 32:
                                        msg = decodeSimpleAck22222222(buffer, offset);
                                        offset += msg.len;
                                        length -= msg.len;
                                        this._invokeCallback(msg.invokeId, null, {
                                          msg,
                                          buffer,
                                          offset: offset + msg.len,
                                          length: length - msg.len
                                        });
                                        break;
                                      case 48:
                                        msg = decodeComplexAck22222222(buffer, offset);
                                        msg.header = header;
                                        if ((header.apduType & 8) === 0) {
                                          this._invokeCallback(msg.invokeId, null, {
                                            msg,
                                            buffer,
                                            offset: offset + msg.len,
                                            length: length - msg.len
                                          });
                                        } else {
                                          this._processSegment(
                                            msg,
                                            true,
                                            buffer,
                                            offset + msg.len,
                                            length - msg.len
                                          );
                                        }
                                        break;
                                      case 64:
                                        msg = decodeSegmentAck22222222(buffer, offset);
                                        msg.header = header;
                                        this._processSegment(
                                          msg,
                                          true,
                                          buffer,
                                          offset + msg.len,
                                          length - msg.len
                                        );
                                        break;
                                      case 80:
                                        msg = decodeError22222222(buffer, offset);
                                        this._processError(
                                          msg.invokeId,
                                          buffer,
                                          offset + msg.len,
                                          length - msg.len
                                        );
                                        break;
                                      case 96:
                                      case 112:
                                        msg = decodeAbort22222222(buffer, offset);
                                        this._processAbort(msg.invokeId, msg.reason);
                                        break;
                                      case 0:
                                        msg = decodeConfirmedServiceRequest22222222(buffer, offset);
                                        msg.header = header;
                                        msg.header.confirmedService = true;
                                        if ((header.apduType & 8) === 0) {
                                          this._processServiceRequest(
                                            confirmedServiceMap22222222,
                                            msg,
                                            buffer,
                                            offset + msg.len,
                                            length - msg.len
                                          );
                                        } else {
                                          this._processSegment(
                                            msg,
                                            true,
                                            buffer,
                                            offset + msg.len,
                                            length - msg.len
                                          );
                                        }
                                        break;
                                      default:
                                        debug322222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                        break;
                                    }
                                  }
                                  /**
                                   *
                                   * @param buffer
                                   * @param offset
                                   * @param msgLength
                                   * @param header
                                   * @returns {*}
                                   * @private
                                   */
                                  _handleNpdu(buffer, offset, msgLength, header) {
                                    if (msgLength <= 0) {
                                      return trace222222222("No NPDU data -> Drop package");
                                    }
                                    const result = decode3122222222(buffer, offset);
                                    if (!result) {
                                      return trace222222222("Received invalid NPDU header -> Drop package");
                                    }
                                    if (result.funct & 128) {
                                      return trace222222222("Received network layer message -> Drop package");
                                    }
                                    offset += result.len;
                                    msgLength -= result.len;
                                    if (msgLength <= 0) {
                                      return trace222222222("No APDU data -> Drop package");
                                    }
                                    header.apduType = getDecodedType22222222(buffer, offset);
                                    header.expectingReply = !!(result.funct & 4);
                                    this._handlePdu(buffer, offset, msgLength, header);
                                  }
                                  /**
                                   *
                                   * @param buffer
                                   * @param remoteAddress
                                   * @returns {*}
                                   * @private
                                   */
                                  _receiveData(buffer, remoteAddress) {
                                    if (buffer.length < BVLC_HEADER_LENGTH32222222) {
                                      return trace222222222("Received invalid data -> Drop package");
                                    }
                                    const result = decode3222222222(buffer, 0);
                                    if (!result) {
                                      return trace222222222("Received invalid BVLC header -> Drop package");
                                    }
                                    let header = {
                                      // Which function the packet came in on, so later code can distinguish
                                      // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                                      func: result.func,
                                      sender: {
                                        // Address of the host we are directly connected to. String, IP:port.
                                        address: remoteAddress,
                                        // If the host is a BBMD passing messages along to another node, this
                                        // is the address of the distant BACnet node.  String, IP:port.
                                        // Typically we won't have network connectivity to this address, but
                                        // we have to include it in replies so the host we are connect to knows
                                        // where to forward the messages.
                                        forwardedFrom: null
                                      }
                                    };
                                    switch (result.func) {
                                      case 10:
                                      case 11:
                                        this._handleNpdu(
                                          buffer,
                                          result.len,
                                          buffer.length - result.len,
                                          header
                                        );
                                        break;
                                      case 4:
                                        header.sender.forwardedFrom = result.originatingIP;
                                        this._handleNpdu(
                                          buffer,
                                          result.len,
                                          buffer.length - result.len,
                                          header
                                        );
                                        break;
                                      case 5:
                                        let decodeResult = register_foreign_device_exports22222222.decode(
                                          buffer,
                                          result.len,
                                          buffer.length - result.len
                                        );
                                        if (!decodeResult) {
                                          return trace222222222("Received invalid registerForeignDevice message");
                                        }
                                        this.emit("registerForeignDevice", {
                                          header,
                                          payload: decodeResult
                                        });
                                        break;
                                      case 9:
                                        this._handleNpdu(
                                          buffer,
                                          result.len,
                                          buffer.length - result.len,
                                          header
                                        );
                                        break;
                                      default:
                                        debug322222222(
                                          "Received unknown BVLC function " + result.func + " -> Drop package"
                                        );
                                        break;
                                    }
                                  }
                                  /**
                                   * @event bacnet.error
                                   * @param {error} err - The error object thrown by the underlying transport layer.
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * client.on('error', (err) => {
                                   *   console.log('Error occurred: ', err);
                                   *   client.close();
                                   * });
                                   */
                                  _receiveError(err) {
                                    this.emit("error", err);
                                  }
                                  /**
                                   * The whoIs command discovers all BACNET devices in a network.
                                   * @function bacnet.whoIs
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {object=} options
                                   * @param {number=} options.lowLimit - Minimal device instance number to search for.
                                   * @param {number=} options.highLimit - Maximal device instance number to search for.
                                   * @fires bacnet.iAm
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * client.whoIs();
                                   */
                                  whoIs(receiver, options) {
                                    if (!options) {
                                      if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                        options = receiver;
                                        receiver = void 0;
                                      }
                                    }
                                    options = options || {};
                                    const settings = {
                                      lowLimit: options.lowLimit,
                                      highLimit: options.highLimit
                                    };
                                    const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                    encode3122222222(
                                      buffer,
                                      0,
                                      //@ts-ignore
                                      receiver,
                                      null,
                                      DEFAULT_HOP_COUNT222222222,
                                      0,
                                      0
                                    );
                                    encodeUnconfirmedServiceRequest22222222(
                                      buffer,
                                      16,
                                      8
                                      /* WHO_IS */
                                    );
                                    who_is_exports22222222.encode(buffer, settings.lowLimit, settings.highLimit);
                                    this.sendBvlc(receiver, buffer);
                                  }
                                  /**
                                   * The timeSync command sets the time of a target device.
                                   * @function bacnet.timeSync
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {date} dateTime - The date and time to set on the target device.
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * client.timeSync('192.168.1.43', new Date());
                                   */
                                  timeSync(receiver, dateTime) {
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(buffer, 0, receiver);
                                    encodeUnconfirmedServiceRequest22222222(
                                      buffer,
                                      16,
                                      6
                                      /* TIME_SYNCHRONIZATION */
                                    );
                                    time_sync_exports22222222.encode(buffer, dateTime);
                                    this.sendBvlc(receiver, buffer);
                                  }
                                  /**
                                   * The timeSyncUTC command sets the UTC time of a target device.
                                   * @function bacnet.timeSyncUTC
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {date} dateTime - The date and time to set on the target device.
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * client.timeSyncUTC('192.168.1.43', new Date());
                                   */
                                  timeSyncUTC(receiver, dateTime) {
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(buffer, 0, receiver);
                                    encodeUnconfirmedServiceRequest22222222(
                                      buffer,
                                      16,
                                      9
                                      /* UTC_TIME_SYNCHRONIZATION */
                                    );
                                    time_sync_exports22222222.encode(buffer, dateTime);
                                    this.sendBvlc(receiver, buffer);
                                  }
                                  /**
                                   * The readProperty command reads a single property of an object from a device.
                                   * @function bacnet.readProperty
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {object} objectId - The BACNET object ID to read.
                                   * @param {number} objectId.type - The BACNET object type to read.
                                   * @param {number} objectId.instance - The BACNET object instance to read.
                                   * @param {number} propertyId - The BACNET property id in the specified object to read.
                                   * @param {object=} options
                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                   * @param {number=} options.arrayIndex - The array index of the property to be read.
                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                                   *   console.log('value: ', value);
                                   * });
                                   */
                                  readProperty(receiver, objectId, propertyId, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId(),
                                      arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL22222222
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      //@ts-ignore
                                      receiver,
                                      null,
                                      DEFAULT_HOP_COUNT222222222,
                                      0,
                                      0
                                    );
                                    const type = 0 | //@ts-ignore
                                    (settings.maxSegments !== 0 ? 2 : 0);
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      type,
                                      12,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    read_property_exports22222222.encode(
                                      buffer,
                                      objectId.type,
                                      objectId.instance,
                                      propertyId,
                                      settings.arrayIndex
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      const result = read_property_exports22222222.decodeAcknowledge(
                                        data.buffer,
                                        data.offset,
                                        data.length
                                      );
                                      if (!result) {
                                        return void next(new Error("INVALID_DECODING"));
                                      }
                                      next(null, result);
                                    });
                                  }
                                  /**
                                   * The writeProperty command writes a single property of an object to a device.
                                   * @function bacnet.writeProperty
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {object} objectId - The BACNET object ID to write.
                                   * @param {number} objectId.type - The BACNET object type to write.
                                   * @param {number} objectId.instance - The BACNET object instance to write.
                                   * @param {number} propertyId - The BACNET property id in the specified object to write.
                                   * @param {object[]} values - A list of values to be written to the specified property.
                                   * @param {ApplicationTag} values.type - The data-type of the value to be written.
                                   * @param {number} values.value - The actual value to be written.
                                   * @param {object=} options
                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                   * @param {number=} options.arrayIndex - The array index of the property to be read.
                                   * @param {number=} options.priority - The priority of the value to be written.
                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                                   *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                                   * ], (err, value) => {
                                   *   console.log('value: ', value);
                                   * });
                                   */
                                  writeProperty(receiver, objectId, propertyId, values, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId(),
                                      arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL22222222,
                                      priority: options.priority || ASN1_NO_PRIORITY22222222
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      //@ts-ignore Todo somehow types do not match at all
                                      receiver,
                                      null,
                                      DEFAULT_HOP_COUNT222222222,
                                      0,
                                      0
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      15,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    write_property_exports22222222.encode(
                                      buffer,
                                      objectId.type,
                                      objectId.instance,
                                      propertyId,
                                      settings.arrayIndex,
                                      settings.priority,
                                      values
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      next(err);
                                    });
                                  }
                                  /**
                                   * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                                   * @function bacnet.readPropertyMultiple
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {object[]} propertiesArray - List of object and property specifications to be read.
                                   * @param {object} propertiesArray.objectId - Specifies which object to read.
                                   * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                                   * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                                   * @param {object[]} propertiesArray.properties - List of properties to be read.
                                   * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                                   * @param {object=} options
                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * const requestArray = [
                                   *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                                   * ];
                                   * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                                   *   console.log('value: ', value);
                                   * });
                                   */
                                  readPropertyMultiple(receiver, propertiesArray, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                                    const buffer = this._getBuffer(!!isForwarded);
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      //@ts-ignore Todo somehow types do not match at all
                                      receiver,
                                      null,
                                      DEFAULT_HOP_COUNT222222222,
                                      0,
                                      0
                                    );
                                    const type = 0 | //@ts-ignore
                                    (settings.maxSegments !== 0 ? 2 : 0);
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      type,
                                      14,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    read_property_multiple_exports22222222.encode(buffer, propertiesArray);
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return next(err);
                                      }
                                      const result = read_property_multiple_exports22222222.decodeAcknowledge(
                                        data.buffer,
                                        data.offset,
                                        data.length
                                      );
                                      if (!result) {
                                        return next(new Error("INVALID_DECODING"));
                                      }
                                      next(null, result);
                                    });
                                  }
                                  /**
                                   * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                                   * @function bacnet.writePropertyMultiple
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {object[]} values - List of object and property specifications to be written.
                                   * @param {object} values.objectId - Specifies which object to read.
                                   * @param {number} values.objectId.type - The BACNET object type to read.
                                   * @param {number} values.objectId.instance - The BACNET object instance to read.
                                   * @param {object[]} values.values - List of properties to be written.
                                   * @param {object} values.values.property - Property specifications to be written.
                                   * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                                   * @param {number} values.values.property.index - The array index of the property to be written.
                                   * @param {object[]} values.values.value - A list of values to be written to the specified property.
                                   * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                                   * @param {object} values.values.value.value - The actual value to be written.
                                   * @param {number} values.values.priority - The priority to be used for writing to the property.
                                   * @param {object=} options
                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * const values = [
                                   *   {objectId: {type: 8, instance: 44301}, values: [
                                   *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                                   *   ]}
                                   * ];
                                   * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                                   *   console.log('value: ', value);
                                   * });
                                   */
                                  writePropertyMultiple(receiver, values, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      //@ts-ignore
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      16,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId
                                    );
                                    write_property_multiple_exports22222222.encodeObject(buffer, values);
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      next(err);
                                    });
                                  }
                                  /**
                                   * The confirmedCOVNotification command is used to push notifications to other
                                   * systems that have registered with us via a subscribeCOV message.
                                   * @function bacnet.confirmedCOVNotification
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                                   * @param {number} monitoredObject.type - Object type.
                                   * @param {number} monitoredObject.instance - Object instance.
                                   * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                                   * @param {number} initiatingDeviceId - Our BACnet device ID.
                                   * @param {number} lifetime - Number of seconds left until the subscription expires.
                                   * @param {array} values - values for the monitored object.  See example.
                                   * @param {object=} options
                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * const settings = {deviceId: 123}; // our BACnet device
                                   *
                                   * // Items saved from subscribeCOV message
                                   * const monitoredObject = {type: 1, instance: 1};
                                   * const subscriberProcessId = 123;
                                   *
                                   * client.confirmedCOVNotification(
                                   *   '192.168.1.43',
                                   *   monitoredObject,
                                   *   subscriberProcessId,
                                   *   settings.deviceId,
                                   *   30, // should be lifetime of subscription really
                                   *   [
                                   *     {
                                   *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                                   *       value: [
                                   *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                                   *       ],
                                   *     },
                                   *   ],
                                   *   (err) => {
                                   *     console.log('error: ', err);
                                   *   }
                                   * );
                                   */
                                  confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer();
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      1,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    cov_notify_exports22222222.encode(
                                      buffer,
                                      subscribeId,
                                      initiatingDeviceId,
                                      monitoredObject,
                                      lifetime,
                                      values
                                    );
                                    encode3222222222(
                                      buffer.buffer,
                                      10,
                                      buffer.offset
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      next();
                                    });
                                  }
                                  /**
                                   * The deviceCommunicationControl command enables or disables network communication of the target device.
                                   * @function bacnet.deviceCommunicationControl
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                                   * @param {EnableDisable} enableDisable - The network communication state to set.
                                   * @param {object=} options
                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                   * @param {string=} options.password - The optional password used to set the network communication state.
                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                                   *   console.log('error: ', err);
                                   * });
                                   */
                                  deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId(),
                                      password: options.password
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      17,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    device_communication_control_exports22222222.encode(
                                      buffer,
                                      timeDuration,
                                      enableDisable,
                                      settings.password
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      next(err);
                                    });
                                  }
                                  /**
                                   * The reinitializeDevice command initiates a restart of the target device.
                                   * @function bacnet.reinitializeDevice
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {ReinitializedState} state - The type of restart to be initiated.
                                   * @param {object=} options
                                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                                   * @param {string=} options.password - The optional password used to restart the device.
                                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                                   *   console.log('value: ', value);
                                   * });
                                   */
                                  reinitializeDevice(receiver, state, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId(),
                                      password: options.password
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      20,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    reinitialize_device_exports22222222.encode(buffer, state, settings.password);
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      next(err);
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param objectId
                                   * @param position
                                   * @param fileBuffer
                                   * @param options
                                   * @param next
                                   */
                                  writeFile(receiver, objectId, position, fileBuffer, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      7,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    atomic_write_file_exports22222222.encode(
                                      buffer,
                                      false,
                                      objectId,
                                      position,
                                      fileBuffer
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      const result = atomic_write_file_exports22222222.decodeAcknowledge(
                                        data.buffer,
                                        data.offset,
                                        data.length
                                      );
                                      if (!result) {
                                        return void next(new Error("INVALID_DECODING"));
                                      }
                                      next(null, result);
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param objectId
                                   * @param position
                                   * @param count
                                   * @param options
                                   * @param next
                                   */
                                  readFile(receiver, objectId, position, count, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      6,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    atomic_read_file_exports22222222.encode(buffer, true, objectId, position, count);
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      const result = atomic_read_file_exports22222222.decodeAcknowledge(
                                        data.buffer,
                                        data.offset,
                                        data.length
                                      );
                                      if (!result) {
                                        return void next(new Error("INVALID_DECODING"));
                                      }
                                      next(null, result);
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param objectId
                                   * @param idxBegin
                                   * @param quantity
                                   * @param options
                                   * @param next
                                   */
                                  readRange(receiver, objectId, idxBegin, quantity, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      26,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    read_range_exports22222222.encode(
                                      buffer,
                                      objectId,
                                      131,
                                      ASN1_ARRAY_ALL22222222,
                                      0,
                                      idxBegin,
                                      /* @__PURE__ */ new Date(),
                                      quantity
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      const result = read_range_exports22222222.decodeAcknowledge(
                                        data.buffer,
                                        data.offset,
                                        data.length
                                      );
                                      if (!result) {
                                        return void next(new Error("INVALID_DECODING"));
                                      }
                                      next(null, result);
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param objectId
                                   * @param subscribeId
                                   * @param cancel
                                   * @param issueConfirmedNotifications
                                   * @param lifetime
                                   * @param options
                                   * @param next
                                   */
                                  subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                                    const next = nextFunc || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      // @ts-ignore TODO types not matching with documentation and code
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      5,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    subscribe_cov_exports22222222.encode(
                                      buffer,
                                      subscribeId,
                                      objectId,
                                      cancel,
                                      issueConfirmedNotifications,
                                      lifetime
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      next();
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param objectId
                                   * @param monitoredProperty
                                   * @param subscribeId
                                   * @param cancel
                                   * @param issueConfirmedNotifications
                                   * @param options
                                   * @param next
                                   */
                                  subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      28,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    subscribe_property_exports22222222.encode(
                                      buffer,
                                      subscribeId,
                                      objectId,
                                      cancel,
                                      issueConfirmedNotifications,
                                      0,
                                      monitoredProperty,
                                      false,
                                      15
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      next();
                                    });
                                  }
                                  /**
                                   * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                                   * @function bacnet.unconfirmedCOVNotification
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                                   * @param {number} initiatingDeviceId - The id of this device.
                                   * @param {object} monitoredObjectId - Specifies about which object the notification is.
                                   * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                                   * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                                   * @param {number} timeRemaining - How long the subscription is still active in seconds.
                                   * @param {object[]} values - List of properties with updated values.
                                   * @param {object} values.property - Property specifications.
                                   * @param {number} values.property.id - The updated BACNET property id.
                                   * @param {number} values.property.index - The array index of the updated property.
                                   * @param {object[]} values.value - A list of updated values.
                                   * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                                   * @param {object} values.value.value - The actual updated value.
                                   * @param {number} values.priority - The priority of the updated property.
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * client.unconfirmedCOVNotification(
                                   *            '127.0.0.1',
                                   *            3,
                                   *            433,
                                   *            {type: 2, instance: 122},
                                   *            120,
                                   *            [
                                   *              {
                                   *                property: {id: 85},
                                   *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                                   *              },
                                   *              {
                                   *                property: {id: 111},
                                   *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                                   *              }
                                   *            ]);
                                   */
                                  unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                                    const buffer = this._getBuffer();
                                    encode3122222222(buffer, 0, receiver);
                                    encodeUnconfirmedServiceRequest22222222(
                                      buffer,
                                      16,
                                      2
                                      /* UNCONFIRMED_COV_NOTIFICATION */
                                    );
                                    cov_notify_exports22222222.encode(
                                      buffer,
                                      subscriberProcessId,
                                      initiatingDeviceId,
                                      monitoredObjectId,
                                      timeRemaining,
                                      values
                                    );
                                    encode3222222222(
                                      buffer.buffer,
                                      10,
                                      buffer.offset
                                    );
                                    this._transport.send(buffer.buffer, buffer.offset, receiver);
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param objectId
                                   * @param values
                                   * @param options
                                   * @param next
                                   */
                                  createObject(receiver, objectId, values, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      10,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    create_object_exports22222222.encode(buffer, objectId, values);
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      next();
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param objectId
                                   * @param options
                                   * @param next
                                   */
                                  deleteObject(receiver, objectId, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      11,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    delete_object_exports22222222.encode(buffer, objectId);
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      next();
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param objectId
                                   * @param reference
                                   * @param values
                                   * @param options
                                   * @param next
                                   */
                                  removeListElement(receiver, objectId, reference, values, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      9,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    add_list_element_exports22222222.encode(
                                      buffer,
                                      objectId,
                                      reference.id,
                                      reference.index,
                                      values
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      next();
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param objectId
                                   * @param reference
                                   * @param values
                                   * @param options
                                   * @param next
                                   */
                                  addListElement(receiver, objectId, reference, values, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      8,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    add_list_element_exports22222222.encode(
                                      buffer,
                                      objectId,
                                      reference.id,
                                      reference.index,
                                      values
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      next();
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param options
                                   * @param next
                                   */
                                  getAlarmSummary(receiver, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      3,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      const result = alarm_summary_exports22222222.decode(
                                        data.buffer,
                                        data.offset,
                                        data.length
                                      );
                                      if (!result) {
                                        return void next(new Error("INVALID_DECODING"));
                                      }
                                      next(null, result);
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param objectId
                                   * @param options
                                   * @param next
                                   */
                                  getEventInformation(receiver, objectId, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      29,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    encodeContextObjectId22222222(buffer, 0, objectId.type, objectId.instance);
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      const result = event_information_exports22222222.decode(
                                        data.buffer,
                                        data.offset,
                                        data.length
                                      );
                                      if (!result) {
                                        return void next(new Error("INVALID_DECODING"));
                                      }
                                      next(null, result);
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param objectId
                                   * @param eventState
                                   * @param ackText
                                   * @param evTimeStamp
                                   * @param ackTimeStamp
                                   * @param options
                                   * @param next
                                   */
                                  acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      0,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    alarm_acknowledge_exports22222222.encode(
                                      buffer,
                                      57,
                                      objectId,
                                      eventState,
                                      ackText,
                                      evTimeStamp,
                                      ackTimeStamp
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      next();
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param vendorId
                                   * @param serviceNumber
                                   * @param data
                                   * @param options
                                   * @param next
                                   */
                                  confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      18,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    private_transfer_exports22222222.encode(buffer, vendorId, serviceNumber, data);
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data2) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      next();
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param vendorId
                                   * @param serviceNumber
                                   * @param data
                                   */
                                  unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(buffer, 0, receiver);
                                    encodeUnconfirmedServiceRequest22222222(
                                      buffer,
                                      16,
                                      4
                                      /* UNCONFIRMED_PRIVATE_TRANSFER */
                                    );
                                    private_transfer_exports22222222.encode(buffer, vendorId, serviceNumber, data);
                                    this.sendBvlc(receiver, buffer);
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param acknowledgmentFilter
                                   * @param options
                                   * @param next
                                   */
                                  getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      4,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    get_enrollment_summary_exports22222222.encode(
                                      buffer,
                                      acknowledgmentFilter,
                                      options.enrollmentFilter,
                                      options.eventStateFilter,
                                      options.eventTypeFilter,
                                      options.priorityFilter,
                                      options.notificationClassFilter
                                    );
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      const result = get_enrollment_summary_exports22222222.decodeAcknowledge(
                                        data.buffer,
                                        data.offset,
                                        data.length
                                      );
                                      if (!result) {
                                        return void next(new Error("INVALID_DECODING"));
                                      }
                                      next(null, result);
                                    });
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param eventNotification
                                   */
                                  unconfirmedEventNotification(receiver, eventNotification) {
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(buffer, 0, receiver);
                                    encodeUnconfirmedServiceRequest22222222(
                                      buffer,
                                      16,
                                      3
                                      /* UNCONFIRMED_EVENT_NOTIFICATION */
                                    );
                                    event_notify_data_exports22222222.encode(buffer, eventNotification);
                                    this.sendBvlc(receiver, buffer);
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param eventNotification
                                   * @param options
                                   * @param next
                                   */
                                  confirmedEventNotification(receiver, eventNotification, options, next) {
                                    next = next || options;
                                    const settings = {
                                      maxSegments: options.maxSegments || 112,
                                      maxApdu: options.maxApdu || 5,
                                      invokeId: options.invokeId || this._getInvokeId()
                                    };
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(
                                      buffer,
                                      0 | 4,
                                      receiver
                                    );
                                    encodeConfirmedServiceRequest22222222(
                                      buffer,
                                      0,
                                      2,
                                      settings.maxSegments,
                                      settings.maxApdu,
                                      settings.invokeId,
                                      0,
                                      0
                                    );
                                    event_notify_data_exports22222222.encode(buffer, eventNotification);
                                    this.sendBvlc(receiver, buffer);
                                    this._addCallback(settings.invokeId, (err, data) => {
                                      if (err) {
                                        return void next(err);
                                      }
                                      next();
                                    });
                                  }
                                  /**
                                   * The readPropertyResponse call sends a response with information about one of our properties.
                                   * @function bacnet.readPropertyResponse
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {number} invokeId - ID of the original readProperty request.
                                   * @param {object} objectId - objectId from the original request,
                                   * @param {object} property - property being read, taken from the original request.
                                   * @param {object=} options varying behaviour for special circumstances
                                   * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                                   */
                                  readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(buffer, 0, receiver);
                                    encodeComplexAck22222222(
                                      buffer,
                                      48,
                                      12,
                                      invokeId
                                    );
                                    read_property_exports22222222.encodeAcknowledge(
                                      buffer,
                                      objectId,
                                      property.id,
                                      property.index,
                                      value
                                    );
                                    this.sendBvlc(receiver, buffer);
                                  }
                                  readPropertyMultipleResponse(receiver, invokeId, values) {
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(buffer, 0, receiver);
                                    encodeComplexAck22222222(
                                      buffer,
                                      48,
                                      14,
                                      invokeId
                                    );
                                    read_property_multiple_exports22222222.encodeAcknowledge(buffer, values);
                                    this.sendBvlc(receiver, buffer);
                                  }
                                  /**
                                   * The iAmResponse command is sent as a reply to a whoIs request.
                                   * @function bacnet.iAmResponse
                                   * @param {object} receiver - address to send packet to, null for local broadcast.
                                   * @param {number} deviceId - Our device ID.
                                   * @param {number} segmentation - an enum.Segmentation value.
                                   * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                                   */
                                  iAmResponse(receiver, deviceId, segmentation, vendorId) {
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(buffer, 0, receiver);
                                    encodeUnconfirmedServiceRequest22222222(
                                      buffer,
                                      16,
                                      0
                                      /* I_AM */
                                    );
                                    i_am_exports22222222.encode(
                                      buffer,
                                      deviceId,
                                      this._transport.getMaxPayload(),
                                      segmentation,
                                      vendorId
                                    );
                                    this.sendBvlc(receiver, buffer);
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param deviceId
                                   * @param objectId
                                   * @param objectName
                                   */
                                  iHaveResponse(receiver, deviceId, objectId, objectName) {
                                    const buffer = this._getBuffer(
                                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                    );
                                    encode3122222222(buffer, 0, receiver);
                                    encodeUnconfirmedServiceRequest22222222(
                                      buffer,
                                      16,
                                      1
                                      /* I_HAVE */
                                    );
                                    i_have_exports22222222.encode(buffer, deviceId, objectId, objectName);
                                    this.sendBvlc(receiver, buffer);
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param service
                                   * @param invokeId
                                   */
                                  simpleAckResponse(receiver, service, invokeId) {
                                    if (typeof receiver === "string")
                                      return;
                                    const buffer = this._getBuffer(!!receiver.forwardedFrom);
                                    encode3122222222(buffer, 0, receiver);
                                    encodeSimpleAck22222222(
                                      buffer,
                                      32,
                                      service,
                                      invokeId
                                    );
                                    this.sendBvlc(receiver, buffer);
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param service
                                   * @param invokeId
                                   * @param errorClass
                                   * @param errorCode
                                   */
                                  errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                                    trace222222222(
                                      `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                        service
                                      )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                                    );
                                    trace222222222(
                                      `error message ${error_exports22222222.buildMessage({
                                        class: errorClass,
                                        code: errorCode
                                      })}`
                                    );
                                    const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                                    if (typeof receiver === "string")
                                      throw new Error("receiver must be object");
                                    const buffer = this._getBuffer(hasSource);
                                    encode3122222222(buffer, 0, receiver);
                                    encodeError22222222(buffer, 80, service, invokeId);
                                    error_exports22222222.encode(buffer, errorClass, errorCode);
                                    this.sendBvlc(receiver, buffer);
                                  }
                                  /**
                                   *
                                   * @param receiver
                                   * @param buffer
                                   */
                                  sendBvlc(receiver, buffer) {
                                    if (typeof receiver === "string") {
                                      receiver = {
                                        address: receiver
                                      };
                                    }
                                    if (receiver && receiver.forwardedFrom) {
                                      encode3222222222(
                                        buffer.buffer,
                                        4,
                                        buffer.offset,
                                        receiver.forwardedFrom
                                      );
                                    } else if (receiver && receiver.address) {
                                      encode3222222222(
                                        buffer.buffer,
                                        10,
                                        buffer.offset
                                      );
                                    } else {
                                      encode3222222222(
                                        buffer.buffer,
                                        11,
                                        buffer.offset
                                      );
                                    }
                                    this._transport.send(
                                      buffer.buffer,
                                      buffer.offset,
                                      receiver && receiver.address || null
                                    );
                                  }
                                  /**
                                   * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                                   * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                                   * @function bacnet.resultResponse
                                   * @param {string} receiver - IP address of the target device.
                                   * @param {number} resultCode - Single value from BvlcResultFormat enum.
                                   */
                                  resultResponse(receiver, resultCode) {
                                    const buffer = this._getBuffer();
                                    encodeResult22222222(buffer, resultCode);
                                    encode3222222222(
                                      buffer.buffer,
                                      0,
                                      buffer.offset
                                    );
                                    this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                                  }
                                  /**
                                   * Unloads the current bacnet instance and closes the underlying UDP socket.
                                   * @function bacnet.close
                                   * @example
                                   * const bacnet = require('node-bacnet');
                                   * const client = new bacnet();
                                   *
                                   * client.close();
                                   */
                                  close() {
                                    this._transport.close();
                                  }
                                  /**
                                   * Helper function to take an array of enums and produce a bitstring suitable
                                   * for inclusion as a property.
                                   *
                                   * @example
                                   * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                                   *   {value: bacnet.createBitstring([
                                   *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                                   *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                                   *   ]),
                                   *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                                   * ],
                                   */
                                  static createBitstring(items) {
                                    let offset = 0;
                                    let bytes = [];
                                    let bitsUsed = 0;
                                    while (items.length) {
                                      let value = 0;
                                      items = items.filter((i) => {
                                        if (i >= offset + 8) {
                                          return true;
                                        }
                                        value |= 1 << i - offset;
                                        bitsUsed = Math.max(bitsUsed, i);
                                        return false;
                                      });
                                      bytes.push(value);
                                      offset += 8;
                                    }
                                    bitsUsed++;
                                    return {
                                      value: bytes,
                                      bitsUsed
                                    };
                                  }
                                };
                                var import_underscore22222222 = __toESM22222222(require("underscore"));
                                var import_process22222222 = __toESM22222222(require("process"));
                                var import__22222222 = __toESM22222222(require_dist22222222());
                                var PropertyIdentifierToEnumMap22222222 = {};
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.OBJECT_TYPE] = import__22222222.enums.ObjectType;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__22222222.enums.Segmentation;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.EVENT_STATE] = import__22222222.enums.EventState;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.UNITS] = import__22222222.enums.EngineeringUnits;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.RELIABILITY] = import__22222222.enums.Reliability;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__22222222.enums.NotifyType;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.POLARITY] = import__22222222.enums.Polarity;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__22222222.enums.ServicesSupported;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__22222222.enums.ObjectTypesSupported;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.STATUS_FLAGS] = import__22222222.enums.StatusFlags;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__22222222.enums.LimitEnable;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.EVENT_ENABLE] = import__22222222.enums.EventTransitionBits;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__22222222.enums.EventTransitionBits;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__22222222.enums.DeviceStatus;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__22222222.enums.DeviceStatus;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.ACK_REQUIRED] = import__22222222.enums.EventTransitionBits;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.LOGGING_TYPE] = import__22222222.enums.LoggingType;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__22222222.enums.FileAccessMethod;
                                PropertyIdentifierToEnumMap22222222[import__22222222.enums.PropertyIdentifier.NODE_TYPE] = import__22222222.enums.NodeType;
                                var ObjectTypeSpecificPropertyIdentifierToEnumMap22222222 = {};
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BINARY_INPUT] = {};
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BINARY_INPUT][import__22222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222.enums.BinaryPV;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BINARY_INPUT][import__22222222.enums.PropertyIdentifier.MODE] = import__22222222.enums.BinaryPV;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.ANALOG_INPUT] = {};
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.ANALOG_INPUT][import__22222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222.enums.BinaryPV;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.ANALOG_OUTPUT] = {};
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.ANALOG_OUTPUT][import__22222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222.enums.BinaryPV;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BINARY_OUTPUT] = {};
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BINARY_OUTPUT][import__22222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222.enums.BinaryPV;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BINARY_OUTPUT][import__22222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__22222222.enums.BinaryPV;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BINARY_VALUE] = {};
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BINARY_VALUE][import__22222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222.enums.BinaryPV;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BINARY_VALUE][import__22222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__22222222.enums.BinaryPV;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__22222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222.enums.BinaryLightingPV;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BITSTRING_VALUE] = {};
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.BINARY_VALUE][import__22222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222.enums.BinaryPV;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222.enums.LifeSafetyState;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222.enums.PropertyIdentifier.TRACKING_VALUE] = import__22222222.enums.LifeSafetyState;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222.enums.PropertyIdentifier.MODE] = import__22222222.enums.LifeSafetyMode;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__22222222.enums.LifeSafetyMode;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222.enums.PropertyIdentifier.SILENCED] = import__22222222.enums.LifeSafetyState;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__22222222.enums.LifeSafetyOperation;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__22222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222.enums.LifeSafetyState;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__22222222.enums.PropertyIdentifier.MODE] = import__22222222.enums.LifeSafetyMode;
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.LOAD_CONTROL] = {};
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[import__22222222.enums.ObjectType.LOAD_CONTROL][import__22222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222222.enums.ShedState;
                                var propSubSet22222222 = import_process22222222.default.argv.includes("--all") ? Object.values(import__22222222.enums.PropertyIdentifier) : [
                                  /* normally supported from all devices */
                                  import__22222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                                  import__22222222.enums.PropertyIdentifier.OBJECT_NAME,
                                  import__22222222.enums.PropertyIdentifier.OBJECT_TYPE,
                                  import__22222222.enums.PropertyIdentifier.PRESENT_VALUE,
                                  import__22222222.enums.PropertyIdentifier.STATUS_FLAGS,
                                  import__22222222.enums.PropertyIdentifier.EVENT_STATE,
                                  import__22222222.enums.PropertyIdentifier.RELIABILITY,
                                  import__22222222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                                  import__22222222.enums.PropertyIdentifier.UNITS,
                                  /* other properties */
                                  import__22222222.enums.PropertyIdentifier.DESCRIPTION,
                                  import__22222222.enums.PropertyIdentifier.SYSTEM_STATUS,
                                  import__22222222.enums.PropertyIdentifier.VENDOR_NAME,
                                  import__22222222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                                  import__22222222.enums.PropertyIdentifier.MODEL_NAME,
                                  import__22222222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                                  import__22222222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                                  import__22222222.enums.PropertyIdentifier.LOCATION,
                                  import__22222222.enums.PropertyIdentifier.LOCAL_DATE,
                                  import__22222222.enums.PropertyIdentifier.LOCAL_TIME,
                                  import__22222222.enums.PropertyIdentifier.UTC_OFFSET,
                                  import__22222222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                                  import__22222222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                                  import__22222222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                                  import__22222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                                  import__22222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                                  import__22222222.enums.PropertyIdentifier.OBJECT_LIST,
                                  import__22222222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                                  import__22222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                                  import__22222222.enums.PropertyIdentifier.APDU_TIMEOUT,
                                  import__22222222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                                  import__22222222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                                  import__22222222.enums.PropertyIdentifier.DATABASE_REVISION,
                                  import__22222222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                                  import__22222222.enums.PropertyIdentifier.MAX_MASTER,
                                  import__22222222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                                  import__22222222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                                ];
                                var debug422222222 = import_process22222222.default.argv.includes("--debug");
                                function getAllPropertiesManually22222222(address, objectId, callback, propList, result) {
                                  if (!propList) {
                                    propList = propSubSet22222222.map((x) => x);
                                  }
                                  if (!result) {
                                    result = [];
                                  }
                                  if (!propList.length) {
                                    return callback({
                                      values: [
                                        {
                                          objectId,
                                          values: result
                                        }
                                      ]
                                    });
                                  }
                                  const prop = propList.shift();
                                  bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                                    if (!err) {
                                      if (debug422222222) {
                                        console.log("Handle value " + prop + ": ", JSON.stringify(value));
                                      }
                                      const objRes = value.property;
                                      objRes.value = value.values;
                                      result.push(objRes);
                                    } else {
                                    }
                                    getAllPropertiesManually22222222(address, objectId, callback, propList, result);
                                  });
                                }
                                function readBit22222222(buffer, i, bit) {
                                  return (buffer[i] >> bit) % 2;
                                }
                                function handleBitString22222222(buffer, bitsUsed, usedEnum) {
                                  const res = [];
                                  for (let i = 0; i < bitsUsed; i++) {
                                    const bufferIndex = Math.floor(i / 8);
                                    if (readBit22222222(buffer, bufferIndex, i % 8)) {
                                      res.push(import__22222222.enums.getEnumName(usedEnum, i));
                                    }
                                  }
                                  return res;
                                }
                                function parseValue22222222(address, objId2, parentType, value, supportsMultiple, callback) {
                                  let resValue = null;
                                  if (value && value.type && value.value !== null && value.value !== void 0) {
                                    switch (value.type) {
                                      case import__22222222.enums.ApplicationTag.NULL:
                                        resValue = null;
                                        break;
                                      case import__22222222.enums.ApplicationTag.BOOLEAN:
                                        resValue = !!value.value;
                                        break;
                                      case import__22222222.enums.ApplicationTag.UNSIGNED_INTEGER:
                                      case import__22222222.enums.ApplicationTag.SIGNED_INTEGER:
                                      case import__22222222.enums.ApplicationTag.REAL:
                                      case import__22222222.enums.ApplicationTag.DOUBLE:
                                      case import__22222222.enums.ApplicationTag.CHARACTER_STRING:
                                        resValue = value.value;
                                        break;
                                      case import__22222222.enums.ApplicationTag.DATE:
                                      case import__22222222.enums.ApplicationTag.TIME:
                                      case import__22222222.enums.ApplicationTag.TIMESTAMP:
                                        resValue = value.value;
                                        break;
                                      case import__22222222.enums.ApplicationTag.BIT_STRING:
                                        if (ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[parentType][objId2]) {
                                          resValue = handleBitString22222222(
                                            value.value.value,
                                            value.value.bitsUsed,
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[parentType][objId2]
                                          );
                                        } else if (PropertyIdentifierToEnumMap22222222[objId2]) {
                                          resValue = handleBitString22222222(
                                            value.value.value,
                                            value.value.bitsUsed,
                                            PropertyIdentifierToEnumMap22222222[objId2]
                                          );
                                        } else {
                                          if (parentType !== import__22222222.enums.ObjectType.BITSTRING_VALUE) {
                                            console.log(
                                              "Unknown value for BIT_STRING type for objId " + import__22222222.enums.getEnumName(import__22222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__22222222.enums.getEnumName(import__22222222.enums.ObjectType, parentType)
                                            );
                                          }
                                          resValue = value.value;
                                        }
                                        break;
                                      case import__22222222.enums.ApplicationTag.ENUMERATED:
                                        if (ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[parentType][objId2]) {
                                          resValue = import__22222222.enums.getEnumName(
                                            ObjectTypeSpecificPropertyIdentifierToEnumMap22222222[parentType][objId2],
                                            value.value
                                          );
                                        } else if (PropertyIdentifierToEnumMap22222222[objId2]) {
                                          resValue = import__22222222.enums.getEnumName(
                                            PropertyIdentifierToEnumMap22222222[objId2],
                                            value.value
                                          );
                                        } else {
                                          console.log(
                                            "Unknown value for ENUMERATED type for objId " + import__22222222.enums.getEnumName(import__22222222.enums.PropertyIdentifier, objId2) + " and parent type " + import__22222222.enums.getEnumName(import__22222222.enums.ObjectType, parentType)
                                          );
                                          resValue = value.value;
                                        }
                                        break;
                                      case import__22222222.enums.ApplicationTag.OBJECTIDENTIFIER:
                                        if (objId2 === import__22222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__22222222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__22222222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                                          resValue = value.value;
                                        } else if (supportsMultiple) {
                                          const requestArray = [
                                            {
                                              objectId: value.value,
                                              properties: [{ id: 8 }]
                                            }
                                          ];
                                          bacnetClient.readPropertyMultiple(
                                            address,
                                            requestArray,
                                            (err, resValue2) => {
                                              parseDeviceObject22222222(address, resValue2, value.value, true, callback);
                                            }
                                          );
                                          return;
                                        } else {
                                          getAllPropertiesManually22222222(address, value.value, (result) => {
                                            parseDeviceObject22222222(address, result, value.value, false, callback);
                                          });
                                          return;
                                        }
                                        break;
                                      case import__22222222.enums.ApplicationTag.OCTET_STRING:
                                        resValue = value.value;
                                        break;
                                      case import__22222222.enums.ApplicationTag.ERROR:
                                        resValue = {
                                          errorClass: import__22222222.enums.getEnumName(
                                            import__22222222.enums.ErrorClass,
                                            value.value.errorClass
                                          ),
                                          errorCode: import__22222222.enums.getEnumName(import__22222222.enums.ErrorCode, value.value.errorCode)
                                        };
                                        break;
                                      case import__22222222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                                      case import__22222222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                                      case import__22222222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                                      case import__22222222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                        resValue = value.value;
                                        break;
                                      case import__22222222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                        parseValue22222222(
                                          address,
                                          objId2,
                                          parentType,
                                          value.value,
                                          supportsMultiple,
                                          callback
                                        );
                                        return;
                                      case import__22222222.enums.ApplicationTag.READ_ACCESS_RESULT:
                                        resValue = value.value;
                                        break;
                                      default:
                                        console.log(
                                          "unknown type " + value.type + ": " + JSON.stringify(value)
                                        );
                                        resValue = value;
                                    }
                                  }
                                  setImmediate(() => callback(resValue));
                                }
                                function parseDeviceObject22222222(address, obj, parent, supportsMultiple, callback) {
                                  if (debug422222222) {
                                    console.log(
                                      "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                                    );
                                  }
                                  if (!obj) {
                                    console.log("object not valid on parse device object");
                                    return;
                                  }
                                  if (!obj.values || !Array.isArray(obj.values)) {
                                    console.log("No device or invalid response");
                                    callback({ ERROR: "No device or invalid response" });
                                    return;
                                  }
                                  let cbCount = 0;
                                  let objDef = {};
                                  const finalize = () => {
                                    Object.keys(objDef).forEach((devId) => {
                                      Object.keys(objDef[devId]).forEach((objId2) => {
                                        if (objDef[devId][objId2].length === 1) {
                                          objDef[devId][objId2] = objDef[devId][objId2][0];
                                        }
                                      });
                                    });
                                    if (obj.values.length === 1) {
                                      objDef = objDef[obj.values[0].objectId.instance];
                                    }
                                    if (debug422222222) {
                                      console.log(
                                        "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                                      );
                                    }
                                    callback(objDef);
                                  };
                                  obj.values.forEach((devBaseObj) => {
                                    if (!devBaseObj.objectId) {
                                      console.log("No device Id found in object data");
                                      return;
                                    }
                                    if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                                      console.log("No device type or instance found in object data");
                                      return;
                                    }
                                    if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                                      console.log("No device values response");
                                      return;
                                    }
                                    const deviceId = devBaseObj.objectId.instance;
                                    objDef[deviceId] = {};
                                    devBaseObj.values.forEach((devObj) => {
                                      let objId2 = import__22222222.enums.getEnumName(import__22222222.enums.PropertyIdentifier, devObj.id);
                                      if (devObj.index !== 4294967295) {
                                        objId2 += "-" + devObj.index;
                                      }
                                      if (debug422222222) {
                                        console.log("Handle Object property:", deviceId, objId2, devObj.value);
                                      }
                                      devObj.value.forEach((val) => {
                                        if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                          objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                          objDef[deviceId][objId2].push(val.value);
                                          return;
                                        }
                                        cbCount++;
                                        parseValue22222222(
                                          address,
                                          devObj.id,
                                          parent.type,
                                          val,
                                          supportsMultiple,
                                          (parsedValue) => {
                                            if (debug422222222) {
                                              console.log(
                                                "RETURN parsedValue",
                                                deviceId,
                                                objId2,
                                                devObj.value,
                                                parsedValue
                                              );
                                            }
                                            objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                            objDef[deviceId][objId2].push(parsedValue);
                                            if (!--cbCount) {
                                              finalize();
                                            }
                                          }
                                        );
                                      });
                                    });
                                  });
                                  if (cbCount === 0) {
                                    finalize();
                                  }
                                }
                                var limitToDevice22222222 = null;
                                if (import_process22222222.default.argv.length === 3) {
                                  limitToDevice22222222 = parseInt(import_process22222222.default.argv[2]);
                                  if (isNaN(limitToDevice22222222)) {
                                    limitToDevice22222222 = null;
                                  }
                                }
                                var node_bacnet_default22222222 = Client22222222;
                              }
                            });
                            var node_bacnet_exports2222222 = {};
                            __export2222222(node_bacnet_exports2222222, {
                              _: () => import_underscore2222222.default,
                              bacnetErrorToString: () => bacnetErrorToString2222222,
                              default: () => node_bacnet_default2222222,
                              enums: () => enum_exports2222222,
                              parseValue: () => parseValue2222222
                            });
                            module2222222.exports = __toCommonJS2222222(node_bacnet_exports2222222);
                            var enum_exports2222222 = {};
                            __export2222222(enum_exports2222222, {
                              ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL2222222,
                              ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS2222222,
                              ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG2222222,
                              ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES2222222,
                              ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE2222222,
                              ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT2222222,
                              ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE2222222,
                              ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY2222222,
                              ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID2222222,
                              ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY2222222,
                              ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY2222222,
                              AbortReason: () => AbortReason2222222,
                              AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable2222222,
                              AccessCredentialDisable: () => AccessCredentialDisable2222222,
                              AccessCredentialDisableReason: () => AccessCredentialDisableReason2222222,
                              AccessEvent: () => AccessEvent2222222,
                              AccessPassbackMode: () => AccessPassbackMode2222222,
                              AccessUserType: () => AccessUserType2222222,
                              AccessZoneOccupancyState: () => AccessZoneOccupancyState2222222,
                              Action: () => Action2222222,
                              ApplicationTag: () => ApplicationTag2222222,
                              ApplicationTagName: () => ApplicationTagName2222222,
                              AuthenticationFactorType: () => AuthenticationFactorType2222222,
                              AuthenticationStatus: () => AuthenticationStatus2222222,
                              AuthorizationExemption: () => AuthorizationExemption2222222,
                              AuthorizationMode: () => AuthorizationMode2222222,
                              BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH3222222,
                              BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP2222222,
                              BackupState: () => BackupState2222222,
                              BinaryLightingPV: () => BinaryLightingPV2222222,
                              BinaryPV: () => BinaryPV2222222,
                              BvlcResultFormat: () => BvlcResultFormat2222222,
                              BvlcResultPurpose: () => BvlcResultPurpose2222222,
                              CharacterStringEncoding: () => CharacterStringEncoding2222222,
                              ConfirmedServiceChoice: () => ConfirmedServiceChoice2222222,
                              CovType: () => CovType2222222,
                              DaysOfWeek: () => DaysOfWeek2222222,
                              DeviceStatus: () => DeviceStatus2222222,
                              DoorAlarmState: () => DoorAlarmState2222222,
                              DoorSecuredStatus: () => DoorSecuredStatus2222222,
                              DoorStatus: () => DoorStatus2222222,
                              DoorValue: () => DoorValue2222222,
                              EnableDisable: () => EnableDisable2222222,
                              EngineeringUnits: () => EngineeringUnits2222222,
                              ErrorClass: () => ErrorClass2222222,
                              ErrorClassName: () => ErrorClassName2222222,
                              ErrorCode: () => ErrorCode2222222,
                              ErrorCodeName: () => ErrorCodeName2222222,
                              EscalatorFault: () => EscalatorFault2222222,
                              EscalatorMode: () => EscalatorMode2222222,
                              EscalatorOperationDirection: () => EscalatorOperationDirection2222222,
                              EventState: () => EventState2222222,
                              EventTransitionBits: () => EventTransitionBits2222222,
                              EventType: () => EventType2222222,
                              FaultType: () => FaultType2222222,
                              FileAccessMethod: () => FileAccessMethod2222222,
                              IPMode: () => IPMode2222222,
                              LifeSafetyMode: () => LifeSafetyMode2222222,
                              LifeSafetyOperation: () => LifeSafetyOperation2222222,
                              LifeSafetyState: () => LifeSafetyState2222222,
                              LiftCarDirection: () => LiftCarDirection2222222,
                              LiftCarDoorCommand: () => LiftCarDoorCommand2222222,
                              LiftCarDriveStatus: () => LiftCarDriveStatus2222222,
                              LiftCarMode: () => LiftCarMode2222222,
                              LiftFault: () => LiftFault2222222,
                              LiftGroupMode: () => LiftGroupMode2222222,
                              LightingInProgress: () => LightingInProgress2222222,
                              LightingOperation: () => LightingOperation2222222,
                              LightingTransition: () => LightingTransition2222222,
                              LimitEnable: () => LimitEnable2222222,
                              LockStatus: () => LockStatus2222222,
                              LogStatus: () => LogStatus2222222,
                              LoggingType: () => LoggingType2222222,
                              Maintenance: () => Maintenance2222222,
                              MaxApduLengthAccepted: () => MaxApduLengthAccepted2222222,
                              MaxSegmentsAccepted: () => MaxSegmentsAccepted2222222,
                              NetworkLayerMessageType: () => NetworkLayerMessageType2222222,
                              NetworkNumberQuality: () => NetworkNumberQuality2222222,
                              NetworkPortCommand: () => NetworkPortCommand2222222,
                              NetworkType: () => NetworkType2222222,
                              NodeType: () => NodeType2222222,
                              NotifyType: () => NotifyType2222222,
                              NpduControlBit: () => NpduControlBit2222222,
                              NpduControlPriority: () => NpduControlPriority2222222,
                              ObjectType: () => ObjectType2222222,
                              ObjectTypesSupported: () => ObjectTypesSupported2222222,
                              PDU_TYPE_MASK: () => PDU_TYPE_MASK2222222,
                              PduConReqBit: () => PduConReqBit2222222,
                              PduSegAckBit: () => PduSegAckBit2222222,
                              PduType: () => PduType2222222,
                              Polarity: () => Polarity2222222,
                              ProgramError: () => ProgramError2222222,
                              ProgramRequest: () => ProgramRequest2222222,
                              ProgramState: () => ProgramState2222222,
                              PropertyIdentifier: () => PropertyIdentifier2222222,
                              PropertyStates: () => PropertyStates2222222,
                              ProtocolLevel: () => ProtocolLevel2222222,
                              ReadRangeType: () => ReadRangeType2222222,
                              ReinitializedState: () => ReinitializedState2222222,
                              RejectReason: () => RejectReason2222222,
                              Relationship: () => Relationship2222222,
                              Reliability: () => Reliability2222222,
                              RestartReason: () => RestartReason2222222,
                              ResultFlags: () => ResultFlags2222222,
                              SecurityLevel: () => SecurityLevel2222222,
                              SecurityPolicy: () => SecurityPolicy2222222,
                              Segmentation: () => Segmentation2222222,
                              ServicesSupported: () => ServicesSupported2222222,
                              ShedState: () => ShedState2222222,
                              SilencedState: () => SilencedState2222222,
                              StatusFlags: () => StatusFlags2222222,
                              TimeStamp: () => TimeStamp2222222,
                              TimerState: () => TimerState2222222,
                              TimerTransition: () => TimerTransition2222222,
                              UnconfirmedServiceChoice: () => UnconfirmedServiceChoice2222222,
                              VTClass: () => VTClass2222222,
                              WriteStatus: () => WriteStatus2222222,
                              getEnumName: () => getEnumName2222222
                            });
                            var import_debug4222222 = __toESM2222222(require("debug"));
                            var debug5222222 = (0, import_debug4222222.default)("bacnet=enum=debug");
                            var trace3222222 = (0, import_debug4222222.default)("bacnet=enum=trace");
                            function invertEnum2222222(enumToInvert) {
                              const invertedEnum = {};
                              Object.keys(enumToInvert).forEach((key) => {
                                invertedEnum[enumToInvert[key]] = key;
                              });
                              return invertedEnum;
                            }
                            function getEnumName2222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                              if (!Number.isInteger(value)) {
                                throw new Error(
                                  'getEnumName() can only be passed an integer value, was given "' + value + '"'
                                );
                              }
                              let foundEntry;
                              try {
                                const invertedGroup = invertEnum2222222(group);
                                foundEntry = invertedGroup[value];
                                if (foundEntry === void 0 && undefinedFallbackValue) {
                                  foundEntry = undefinedFallbackValue;
                                }
                                if (foundEntry === void 0) {
                                  foundEntry = value.toString();
                                } else if (addNumberValue) {
                                  foundEntry += "(" + value + ")";
                                }
                              } catch (e) {
                                trace3222222(e.message);
                                foundEntry = null;
                              }
                              return foundEntry;
                            }
                            var PDU_TYPE_MASK2222222 = 240;
                            var ASN1_MAX_OBJECT2222222 = 1023;
                            var ASN1_INSTANCE_BITS2222222 = 22;
                            var ASN1_MAX_INSTANCE2222222 = 4194303;
                            var ASN1_MAX_BITSTRING_BYTES2222222 = 15;
                            var ASN1_ARRAY_ALL2222222 = 4294967295;
                            var ASN1_NO_PRIORITY2222222 = 0;
                            var ASN1_MIN_PRIORITY2222222 = 1;
                            var ASN1_MAX_PRIORITY2222222 = 16;
                            var ASN1_MAX_APPLICATION_TAG2222222 = 16;
                            var ASN1_MAX_OBJECT_TYPE2222222 = 1024;
                            var ASN1_MAX_PROPERTY_ID2222222 = 4194303;
                            var BVLL_TYPE_BACNET_IP2222222 = 129;
                            var BVLC_HEADER_LENGTH3222222 = 4;
                            var ConfirmedServiceChoice2222222 = /* @__PURE__ */ ((ConfirmedServiceChoice22222222) => {
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["VT_OPEN"] = 21] = "VT_OPEN";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["VT_DATA"] = 23] = "VT_DATA";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["READ_RANGE"] = 26] = "READ_RANGE";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                              ConfirmedServiceChoice22222222[ConfirmedServiceChoice22222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                              return ConfirmedServiceChoice22222222;
                            })(ConfirmedServiceChoice2222222 || {});
                            var UnconfirmedServiceChoice2222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice22222222) => {
                              UnconfirmedServiceChoice22222222[UnconfirmedServiceChoice22222222["I_AM"] = 0] = "I_AM";
                              UnconfirmedServiceChoice22222222[UnconfirmedServiceChoice22222222["I_HAVE"] = 1] = "I_HAVE";
                              UnconfirmedServiceChoice22222222[UnconfirmedServiceChoice22222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                              UnconfirmedServiceChoice22222222[UnconfirmedServiceChoice22222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                              UnconfirmedServiceChoice22222222[UnconfirmedServiceChoice22222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                              UnconfirmedServiceChoice22222222[UnconfirmedServiceChoice22222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                              UnconfirmedServiceChoice22222222[UnconfirmedServiceChoice22222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                              UnconfirmedServiceChoice22222222[UnconfirmedServiceChoice22222222["WHO_HAS"] = 7] = "WHO_HAS";
                              UnconfirmedServiceChoice22222222[UnconfirmedServiceChoice22222222["WHO_IS"] = 8] = "WHO_IS";
                              UnconfirmedServiceChoice22222222[UnconfirmedServiceChoice22222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                              UnconfirmedServiceChoice22222222[UnconfirmedServiceChoice22222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                              UnconfirmedServiceChoice22222222[UnconfirmedServiceChoice22222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                              return UnconfirmedServiceChoice22222222;
                            })(UnconfirmedServiceChoice2222222 || {});
                            var AbortReason2222222 = /* @__PURE__ */ ((AbortReason22222222) => {
                              AbortReason22222222[AbortReason22222222["OTHER"] = 0] = "OTHER";
                              AbortReason22222222[AbortReason22222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                              AbortReason22222222[AbortReason22222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                              AbortReason22222222[AbortReason22222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                              AbortReason22222222[AbortReason22222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                              AbortReason22222222[AbortReason22222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                              AbortReason22222222[AbortReason22222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                              AbortReason22222222[AbortReason22222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                              AbortReason22222222[AbortReason22222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                              AbortReason22222222[AbortReason22222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                              AbortReason22222222[AbortReason22222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                              AbortReason22222222[AbortReason22222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                              return AbortReason22222222;
                            })(AbortReason2222222 || {});
                            var RejectReason2222222 = /* @__PURE__ */ ((RejectReason22222222) => {
                              RejectReason22222222[RejectReason22222222["OTHER"] = 0] = "OTHER";
                              RejectReason22222222[RejectReason22222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                              RejectReason22222222[RejectReason22222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                              RejectReason22222222[RejectReason22222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                              RejectReason22222222[RejectReason22222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                              RejectReason22222222[RejectReason22222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                              RejectReason22222222[RejectReason22222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                              RejectReason22222222[RejectReason22222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                              RejectReason22222222[RejectReason22222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                              RejectReason22222222[RejectReason22222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                              return RejectReason22222222;
                            })(RejectReason2222222 || {});
                            var ErrorClass2222222 = /* @__PURE__ */ ((ErrorClass22222222) => {
                              ErrorClass22222222[ErrorClass22222222["DEVICE"] = 0] = "DEVICE";
                              ErrorClass22222222[ErrorClass22222222["OBJECT"] = 1] = "OBJECT";
                              ErrorClass22222222[ErrorClass22222222["PROPERTY"] = 2] = "PROPERTY";
                              ErrorClass22222222[ErrorClass22222222["RESOURCES"] = 3] = "RESOURCES";
                              ErrorClass22222222[ErrorClass22222222["SECURITY"] = 4] = "SECURITY";
                              ErrorClass22222222[ErrorClass22222222["SERVICES"] = 5] = "SERVICES";
                              ErrorClass22222222[ErrorClass22222222["VT"] = 6] = "VT";
                              ErrorClass22222222[ErrorClass22222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                              return ErrorClass22222222;
                            })(ErrorClass2222222 || {});
                            var ErrorClassName2222222 = invertEnum2222222(
                              ErrorClass2222222
                            );
                            var ErrorCode2222222 = /* @__PURE__ */ ((ErrorCode22222222) => {
                              ErrorCode22222222[ErrorCode22222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                              ErrorCode22222222[ErrorCode22222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                              ErrorCode22222222[ErrorCode22222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                              ErrorCode22222222[ErrorCode22222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                              ErrorCode22222222[ErrorCode22222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                              ErrorCode22222222[ErrorCode22222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                              ErrorCode22222222[ErrorCode22222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                              ErrorCode22222222[ErrorCode22222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                              ErrorCode22222222[ErrorCode22222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                              ErrorCode22222222[ErrorCode22222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                              ErrorCode22222222[ErrorCode22222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                              ErrorCode22222222[ErrorCode22222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                              ErrorCode22222222[ErrorCode22222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                              ErrorCode22222222[ErrorCode22222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                              ErrorCode22222222[ErrorCode22222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                              ErrorCode22222222[ErrorCode22222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                              ErrorCode22222222[ErrorCode22222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                              ErrorCode22222222[ErrorCode22222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                              ErrorCode22222222[ErrorCode22222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                              ErrorCode22222222[ErrorCode22222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                              ErrorCode22222222[ErrorCode22222222["BUSY"] = 82] = "BUSY";
                              ErrorCode22222222[ErrorCode22222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                              ErrorCode22222222[ErrorCode22222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                              ErrorCode22222222[ErrorCode22222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                              ErrorCode22222222[ErrorCode22222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                              ErrorCode22222222[ErrorCode22222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                              ErrorCode22222222[ErrorCode22222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                              ErrorCode22222222[ErrorCode22222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                              ErrorCode22222222[ErrorCode22222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                              ErrorCode22222222[ErrorCode22222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                              ErrorCode22222222[ErrorCode22222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                              ErrorCode22222222[ErrorCode22222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                              ErrorCode22222222[ErrorCode22222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                              ErrorCode22222222[ErrorCode22222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                              ErrorCode22222222[ErrorCode22222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                              ErrorCode22222222[ErrorCode22222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                              ErrorCode22222222[ErrorCode22222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                              ErrorCode22222222[ErrorCode22222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                              ErrorCode22222222[ErrorCode22222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                              ErrorCode22222222[ErrorCode22222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                              ErrorCode22222222[ErrorCode22222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                              ErrorCode22222222[ErrorCode22222222["FILE_FULL"] = 128] = "FILE_FULL";
                              ErrorCode22222222[ErrorCode22222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                              ErrorCode22222222[ErrorCode22222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                              ErrorCode22222222[ErrorCode22222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                              ErrorCode22222222[ErrorCode22222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                              ErrorCode22222222[ErrorCode22222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                              ErrorCode22222222[ErrorCode22222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                              ErrorCode22222222[ErrorCode22222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                              ErrorCode22222222[ErrorCode22222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                              ErrorCode22222222[ErrorCode22222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                              ErrorCode22222222[ErrorCode22222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                              ErrorCode22222222[ErrorCode22222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                              ErrorCode22222222[ErrorCode22222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                              ErrorCode22222222[ErrorCode22222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                              ErrorCode22222222[ErrorCode22222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                              ErrorCode22222222[ErrorCode22222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                              ErrorCode22222222[ErrorCode22222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                              ErrorCode22222222[ErrorCode22222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                              ErrorCode22222222[ErrorCode22222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                              ErrorCode22222222[ErrorCode22222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                              ErrorCode22222222[ErrorCode22222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                              ErrorCode22222222[ErrorCode22222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                              ErrorCode22222222[ErrorCode22222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                              ErrorCode22222222[ErrorCode22222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                              ErrorCode22222222[ErrorCode22222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                              ErrorCode22222222[ErrorCode22222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                              ErrorCode22222222[ErrorCode22222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                              ErrorCode22222222[ErrorCode22222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                              ErrorCode22222222[ErrorCode22222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                              ErrorCode22222222[ErrorCode22222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                              ErrorCode22222222[ErrorCode22222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                              ErrorCode22222222[ErrorCode22222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                              ErrorCode22222222[ErrorCode22222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                              ErrorCode22222222[ErrorCode22222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                              ErrorCode22222222[ErrorCode22222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                              ErrorCode22222222[ErrorCode22222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                              ErrorCode22222222[ErrorCode22222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                              ErrorCode22222222[ErrorCode22222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                              ErrorCode22222222[ErrorCode22222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                              ErrorCode22222222[ErrorCode22222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                              ErrorCode22222222[ErrorCode22222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                              ErrorCode22222222[ErrorCode22222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                              ErrorCode22222222[ErrorCode22222222["OTHER"] = 0] = "OTHER";
                              ErrorCode22222222[ErrorCode22222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                              ErrorCode22222222[ErrorCode22222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                              ErrorCode22222222[ErrorCode22222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                              ErrorCode22222222[ErrorCode22222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                              ErrorCode22222222[ErrorCode22222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                              ErrorCode22222222[ErrorCode22222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                              ErrorCode22222222[ErrorCode22222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                              ErrorCode22222222[ErrorCode22222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                              ErrorCode22222222[ErrorCode22222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                              ErrorCode22222222[ErrorCode22222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                              ErrorCode22222222[ErrorCode22222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                              ErrorCode22222222[ErrorCode22222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                              ErrorCode22222222[ErrorCode22222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                              ErrorCode22222222[ErrorCode22222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                              ErrorCode22222222[ErrorCode22222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                              ErrorCode22222222[ErrorCode22222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                              ErrorCode22222222[ErrorCode22222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                              ErrorCode22222222[ErrorCode22222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                              ErrorCode22222222[ErrorCode22222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                              ErrorCode22222222[ErrorCode22222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                              ErrorCode22222222[ErrorCode22222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                              ErrorCode22222222[ErrorCode22222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                              ErrorCode22222222[ErrorCode22222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                              ErrorCode22222222[ErrorCode22222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                              ErrorCode22222222[ErrorCode22222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                              ErrorCode22222222[ErrorCode22222222["SUCCESS"] = 84] = "SUCCESS";
                              ErrorCode22222222[ErrorCode22222222["TIMEOUT"] = 30] = "TIMEOUT";
                              ErrorCode22222222[ErrorCode22222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                              ErrorCode22222222[ErrorCode22222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                              ErrorCode22222222[ErrorCode22222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                              ErrorCode22222222[ErrorCode22222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                              ErrorCode22222222[ErrorCode22222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                              ErrorCode22222222[ErrorCode22222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                              ErrorCode22222222[ErrorCode22222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                              ErrorCode22222222[ErrorCode22222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                              ErrorCode22222222[ErrorCode22222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                              ErrorCode22222222[ErrorCode22222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                              return ErrorCode22222222;
                            })(ErrorCode2222222 || {});
                            var ErrorCodeName2222222 = invertEnum2222222(
                              ErrorCode2222222
                            );
                            var AccessAuthenticationFactorDisable2222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable22222222) => {
                              AccessAuthenticationFactorDisable22222222[AccessAuthenticationFactorDisable22222222["NONE"] = 0] = "NONE";
                              AccessAuthenticationFactorDisable22222222[AccessAuthenticationFactorDisable22222222["DISABLED"] = 1] = "DISABLED";
                              AccessAuthenticationFactorDisable22222222[AccessAuthenticationFactorDisable22222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                              AccessAuthenticationFactorDisable22222222[AccessAuthenticationFactorDisable22222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                              AccessAuthenticationFactorDisable22222222[AccessAuthenticationFactorDisable22222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                              AccessAuthenticationFactorDisable22222222[AccessAuthenticationFactorDisable22222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                              return AccessAuthenticationFactorDisable22222222;
                            })(AccessAuthenticationFactorDisable2222222 || {});
                            var AccessCredentialDisable2222222 = /* @__PURE__ */ ((AccessCredentialDisable22222222) => {
                              AccessCredentialDisable22222222[AccessCredentialDisable22222222["NONE"] = 0] = "NONE";
                              AccessCredentialDisable22222222[AccessCredentialDisable22222222["DISABLE"] = 1] = "DISABLE";
                              AccessCredentialDisable22222222[AccessCredentialDisable22222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                              AccessCredentialDisable22222222[AccessCredentialDisable22222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                              return AccessCredentialDisable22222222;
                            })(AccessCredentialDisable2222222 || {});
                            var AccessCredentialDisableReason2222222 = /* @__PURE__ */ ((AccessCredentialDisableReason22222222) => {
                              AccessCredentialDisableReason22222222[AccessCredentialDisableReason22222222["DISABLED"] = 0] = "DISABLED";
                              AccessCredentialDisableReason22222222[AccessCredentialDisableReason22222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                              AccessCredentialDisableReason22222222[AccessCredentialDisableReason22222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                              AccessCredentialDisableReason22222222[AccessCredentialDisableReason22222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                              AccessCredentialDisableReason22222222[AccessCredentialDisableReason22222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                              AccessCredentialDisableReason22222222[AccessCredentialDisableReason22222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                              AccessCredentialDisableReason22222222[AccessCredentialDisableReason22222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                              AccessCredentialDisableReason22222222[AccessCredentialDisableReason22222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                              AccessCredentialDisableReason22222222[AccessCredentialDisableReason22222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                              AccessCredentialDisableReason22222222[AccessCredentialDisableReason22222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                              return AccessCredentialDisableReason22222222;
                            })(AccessCredentialDisableReason2222222 || {});
                            var AccessEvent2222222 = /* @__PURE__ */ ((AccessEvent22222222) => {
                              AccessEvent22222222[AccessEvent22222222["NONE"] = 0] = "NONE";
                              AccessEvent22222222[AccessEvent22222222["GRANTED"] = 1] = "GRANTED";
                              AccessEvent22222222[AccessEvent22222222["MUSTER"] = 2] = "MUSTER";
                              AccessEvent22222222[AccessEvent22222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                              AccessEvent22222222[AccessEvent22222222["DURESS"] = 4] = "DURESS";
                              AccessEvent22222222[AccessEvent22222222["TRACE"] = 5] = "TRACE";
                              AccessEvent22222222[AccessEvent22222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                              AccessEvent22222222[AccessEvent22222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                              AccessEvent22222222[AccessEvent22222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                              AccessEvent22222222[AccessEvent22222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                              AccessEvent22222222[AccessEvent22222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                              AccessEvent22222222[AccessEvent22222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                              AccessEvent22222222[AccessEvent22222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                              AccessEvent22222222[AccessEvent22222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                              AccessEvent22222222[AccessEvent22222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                              AccessEvent22222222[AccessEvent22222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                              AccessEvent22222222[AccessEvent22222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                              AccessEvent22222222[AccessEvent22222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                              AccessEvent22222222[AccessEvent22222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                              AccessEvent22222222[AccessEvent22222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                              AccessEvent22222222[AccessEvent22222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                              AccessEvent22222222[AccessEvent22222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                              AccessEvent22222222[AccessEvent22222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                              AccessEvent22222222[AccessEvent22222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                              AccessEvent22222222[AccessEvent22222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                              AccessEvent22222222[AccessEvent22222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                              AccessEvent22222222[AccessEvent22222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                              AccessEvent22222222[AccessEvent22222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                              AccessEvent22222222[AccessEvent22222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                              AccessEvent22222222[AccessEvent22222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                              AccessEvent22222222[AccessEvent22222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                              AccessEvent22222222[AccessEvent22222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                              AccessEvent22222222[AccessEvent22222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                              AccessEvent22222222[AccessEvent22222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                              AccessEvent22222222[AccessEvent22222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                              AccessEvent22222222[AccessEvent22222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                              AccessEvent22222222[AccessEvent22222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                              AccessEvent22222222[AccessEvent22222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                              AccessEvent22222222[AccessEvent22222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                              AccessEvent22222222[AccessEvent22222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                              AccessEvent22222222[AccessEvent22222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                              AccessEvent22222222[AccessEvent22222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                              AccessEvent22222222[AccessEvent22222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                              AccessEvent22222222[AccessEvent22222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                              AccessEvent22222222[AccessEvent22222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                              AccessEvent22222222[AccessEvent22222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                              AccessEvent22222222[AccessEvent22222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                              AccessEvent22222222[AccessEvent22222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                              AccessEvent22222222[AccessEvent22222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                              AccessEvent22222222[AccessEvent22222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                              AccessEvent22222222[AccessEvent22222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                              AccessEvent22222222[AccessEvent22222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                              AccessEvent22222222[AccessEvent22222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                              AccessEvent22222222[AccessEvent22222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                              return AccessEvent22222222;
                            })(AccessEvent2222222 || {});
                            var AccessPassbackMode2222222 = /* @__PURE__ */ ((AccessPassbackMode22222222) => {
                              AccessPassbackMode22222222[AccessPassbackMode22222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                              AccessPassbackMode22222222[AccessPassbackMode22222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                              AccessPassbackMode22222222[AccessPassbackMode22222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                              return AccessPassbackMode22222222;
                            })(AccessPassbackMode2222222 || {});
                            var AccessUserType2222222 = /* @__PURE__ */ ((AccessUserType22222222) => {
                              AccessUserType22222222[AccessUserType22222222["ASSET"] = 0] = "ASSET";
                              AccessUserType22222222[AccessUserType22222222["GROUP"] = 1] = "GROUP";
                              AccessUserType22222222[AccessUserType22222222["PERSON"] = 2] = "PERSON";
                              return AccessUserType22222222;
                            })(AccessUserType2222222 || {});
                            var AccessZoneOccupancyState2222222 = /* @__PURE__ */ ((AccessZoneOccupancyState22222222) => {
                              AccessZoneOccupancyState22222222[AccessZoneOccupancyState22222222["NORMAL"] = 0] = "NORMAL";
                              AccessZoneOccupancyState22222222[AccessZoneOccupancyState22222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                              AccessZoneOccupancyState22222222[AccessZoneOccupancyState22222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                              AccessZoneOccupancyState22222222[AccessZoneOccupancyState22222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                              AccessZoneOccupancyState22222222[AccessZoneOccupancyState22222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                              AccessZoneOccupancyState22222222[AccessZoneOccupancyState22222222["DISABLED"] = 5] = "DISABLED";
                              AccessZoneOccupancyState22222222[AccessZoneOccupancyState22222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                              return AccessZoneOccupancyState22222222;
                            })(AccessZoneOccupancyState2222222 || {});
                            var Action2222222 = /* @__PURE__ */ ((Action22222222) => {
                              Action22222222[Action22222222["DIRECT"] = 0] = "DIRECT";
                              Action22222222[Action22222222["REVERSE"] = 1] = "REVERSE";
                              return Action22222222;
                            })(Action2222222 || {});
                            var AuthenticationFactorType2222222 = /* @__PURE__ */ ((AuthenticationFactorType22222222) => {
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["UNDEFINED"] = 0] = "UNDEFINED";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["ERROR"] = 1] = "ERROR";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["CUSTOM"] = 2] = "CUSTOM";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["WIEGAND26"] = 8] = "WIEGAND26";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["WIEGAND37"] = 9] = "WIEGAND37";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["FASC_N"] = 13] = "FASC_N";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["GSA75"] = 17] = "GSA75";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["CHUID"] = 18] = "CHUID";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["GUID"] = 20] = "GUID";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["CBEFF_A"] = 21] = "CBEFF_A";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["CBEFF_B"] = 22] = "CBEFF_B";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["CBEFF_C"] = 23] = "CBEFF_C";
                              AuthenticationFactorType22222222[AuthenticationFactorType22222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                              return AuthenticationFactorType22222222;
                            })(AuthenticationFactorType2222222 || {});
                            var AuthenticationStatus2222222 = /* @__PURE__ */ ((AuthenticationStatus22222222) => {
                              AuthenticationStatus22222222[AuthenticationStatus22222222["NOT_READY"] = 0] = "NOT_READY";
                              AuthenticationStatus22222222[AuthenticationStatus22222222["READY"] = 1] = "READY";
                              AuthenticationStatus22222222[AuthenticationStatus22222222["DISABLED"] = 2] = "DISABLED";
                              AuthenticationStatus22222222[AuthenticationStatus22222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                              AuthenticationStatus22222222[AuthenticationStatus22222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                              AuthenticationStatus22222222[AuthenticationStatus22222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                              AuthenticationStatus22222222[AuthenticationStatus22222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                              return AuthenticationStatus22222222;
                            })(AuthenticationStatus2222222 || {});
                            var AuthorizationExemption2222222 = /* @__PURE__ */ ((AuthorizationExemption22222222) => {
                              AuthorizationExemption22222222[AuthorizationExemption22222222["PASSBACK"] = 0] = "PASSBACK";
                              AuthorizationExemption22222222[AuthorizationExemption22222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                              AuthorizationExemption22222222[AuthorizationExemption22222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                              AuthorizationExemption22222222[AuthorizationExemption22222222["LOCKOUT"] = 3] = "LOCKOUT";
                              AuthorizationExemption22222222[AuthorizationExemption22222222["DENY"] = 4] = "DENY";
                              AuthorizationExemption22222222[AuthorizationExemption22222222["VERIFICATION"] = 5] = "VERIFICATION";
                              AuthorizationExemption22222222[AuthorizationExemption22222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                              return AuthorizationExemption22222222;
                            })(AuthorizationExemption2222222 || {});
                            var AuthorizationMode2222222 = /* @__PURE__ */ ((AuthorizationMode22222222) => {
                              AuthorizationMode22222222[AuthorizationMode22222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                              AuthorizationMode22222222[AuthorizationMode22222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                              AuthorizationMode22222222[AuthorizationMode22222222["DENY_ALL"] = 2] = "DENY_ALL";
                              AuthorizationMode22222222[AuthorizationMode22222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                              AuthorizationMode22222222[AuthorizationMode22222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                              AuthorizationMode22222222[AuthorizationMode22222222["NONE"] = 5] = "NONE";
                              return AuthorizationMode22222222;
                            })(AuthorizationMode2222222 || {});
                            var BackupState2222222 = /* @__PURE__ */ ((BackupState22222222) => {
                              BackupState22222222[BackupState22222222["IDLE"] = 0] = "IDLE";
                              BackupState22222222[BackupState22222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                              BackupState22222222[BackupState22222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                              BackupState22222222[BackupState22222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                              BackupState22222222[BackupState22222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                              BackupState22222222[BackupState22222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                              BackupState22222222[BackupState22222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                              return BackupState22222222;
                            })(BackupState2222222 || {});
                            var BinaryLightingPV2222222 = /* @__PURE__ */ ((BinaryLightingPV22222222) => {
                              BinaryLightingPV22222222[BinaryLightingPV22222222["OFF"] = 0] = "OFF";
                              BinaryLightingPV22222222[BinaryLightingPV22222222["ON"] = 1] = "ON";
                              BinaryLightingPV22222222[BinaryLightingPV22222222["WARN"] = 2] = "WARN";
                              BinaryLightingPV22222222[BinaryLightingPV22222222["WARN_OFF"] = 3] = "WARN_OFF";
                              BinaryLightingPV22222222[BinaryLightingPV22222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                              BinaryLightingPV22222222[BinaryLightingPV22222222["STOP"] = 5] = "STOP";
                              return BinaryLightingPV22222222;
                            })(BinaryLightingPV2222222 || {});
                            var BinaryPV2222222 = /* @__PURE__ */ ((BinaryPV22222222) => {
                              BinaryPV22222222[BinaryPV22222222["INACTIVE"] = 0] = "INACTIVE";
                              BinaryPV22222222[BinaryPV22222222["ACTIVE"] = 1] = "ACTIVE";
                              return BinaryPV22222222;
                            })(BinaryPV2222222 || {});
                            var DeviceStatus2222222 = /* @__PURE__ */ ((DeviceStatus22222222) => {
                              DeviceStatus22222222[DeviceStatus22222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                              DeviceStatus22222222[DeviceStatus22222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                              DeviceStatus22222222[DeviceStatus22222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                              DeviceStatus22222222[DeviceStatus22222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                              DeviceStatus22222222[DeviceStatus22222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                              DeviceStatus22222222[DeviceStatus22222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                              return DeviceStatus22222222;
                            })(DeviceStatus2222222 || {});
                            var DoorAlarmState2222222 = /* @__PURE__ */ ((DoorAlarmState22222222) => {
                              DoorAlarmState22222222[DoorAlarmState22222222["NORMAL"] = 0] = "NORMAL";
                              DoorAlarmState22222222[DoorAlarmState22222222["ALARM"] = 1] = "ALARM";
                              DoorAlarmState22222222[DoorAlarmState22222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                              DoorAlarmState22222222[DoorAlarmState22222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                              DoorAlarmState22222222[DoorAlarmState22222222["TAMPER"] = 4] = "TAMPER";
                              DoorAlarmState22222222[DoorAlarmState22222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                              DoorAlarmState22222222[DoorAlarmState22222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                              DoorAlarmState22222222[DoorAlarmState22222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                              DoorAlarmState22222222[DoorAlarmState22222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                              return DoorAlarmState22222222;
                            })(DoorAlarmState2222222 || {});
                            var DoorSecuredStatus2222222 = /* @__PURE__ */ ((DoorSecuredStatus22222222) => {
                              DoorSecuredStatus22222222[DoorSecuredStatus22222222["SECURED"] = 0] = "SECURED";
                              DoorSecuredStatus22222222[DoorSecuredStatus22222222["UNSECURED"] = 1] = "UNSECURED";
                              DoorSecuredStatus22222222[DoorSecuredStatus22222222["UNKNOWN"] = 2] = "UNKNOWN";
                              return DoorSecuredStatus22222222;
                            })(DoorSecuredStatus2222222 || {});
                            var DoorStatus2222222 = /* @__PURE__ */ ((DoorStatus22222222) => {
                              DoorStatus22222222[DoorStatus22222222["CLOSED"] = 0] = "CLOSED";
                              DoorStatus22222222[DoorStatus22222222["OPENED"] = 1] = "OPENED";
                              DoorStatus22222222[DoorStatus22222222["UNKNOWN"] = 2] = "UNKNOWN";
                              DoorStatus22222222[DoorStatus22222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                              DoorStatus22222222[DoorStatus22222222["UNUSED"] = 4] = "UNUSED";
                              DoorStatus22222222[DoorStatus22222222["NONE"] = 5] = "NONE";
                              DoorStatus22222222[DoorStatus22222222["CLOSING"] = 6] = "CLOSING";
                              DoorStatus22222222[DoorStatus22222222["OPENING"] = 7] = "OPENING";
                              DoorStatus22222222[DoorStatus22222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                              DoorStatus22222222[DoorStatus22222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                              return DoorStatus22222222;
                            })(DoorStatus2222222 || {});
                            var DoorValue2222222 = /* @__PURE__ */ ((DoorValue22222222) => {
                              DoorValue22222222[DoorValue22222222["LOCK"] = 0] = "LOCK";
                              DoorValue22222222[DoorValue22222222["UNLOCK"] = 1] = "UNLOCK";
                              DoorValue22222222[DoorValue22222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                              DoorValue22222222[DoorValue22222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                              return DoorValue22222222;
                            })(DoorValue2222222 || {});
                            var EngineeringUnits2222222 = /* @__PURE__ */ ((EngineeringUnits22222222) => {
                              EngineeringUnits22222222[EngineeringUnits22222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                              EngineeringUnits22222222[EngineeringUnits22222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                              EngineeringUnits22222222[EngineeringUnits22222222["CURRENCY1"] = 105] = "CURRENCY1";
                              EngineeringUnits22222222[EngineeringUnits22222222["CURRENCY2"] = 106] = "CURRENCY2";
                              EngineeringUnits22222222[EngineeringUnits22222222["CURRENCY3"] = 107] = "CURRENCY3";
                              EngineeringUnits22222222[EngineeringUnits22222222["CURRENCY4"] = 108] = "CURRENCY4";
                              EngineeringUnits22222222[EngineeringUnits22222222["CURRENCY5"] = 109] = "CURRENCY5";
                              EngineeringUnits22222222[EngineeringUnits22222222["CURRENCY6"] = 110] = "CURRENCY6";
                              EngineeringUnits22222222[EngineeringUnits22222222["CURRENCY7"] = 111] = "CURRENCY7";
                              EngineeringUnits22222222[EngineeringUnits22222222["CURRENCY8"] = 112] = "CURRENCY8";
                              EngineeringUnits22222222[EngineeringUnits22222222["CURRENCY9"] = 113] = "CURRENCY9";
                              EngineeringUnits22222222[EngineeringUnits22222222["CURRENCY10"] = 114] = "CURRENCY10";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                              EngineeringUnits22222222[EngineeringUnits22222222["AMPERES"] = 3] = "AMPERES";
                              EngineeringUnits22222222[EngineeringUnits22222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["DECIBELS"] = 199] = "DECIBELS";
                              EngineeringUnits22222222[EngineeringUnits22222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                              EngineeringUnits22222222[EngineeringUnits22222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                              EngineeringUnits22222222[EngineeringUnits22222222["FARADS"] = 170] = "FARADS";
                              EngineeringUnits22222222[EngineeringUnits22222222["HENRYS"] = 171] = "HENRYS";
                              EngineeringUnits22222222[EngineeringUnits22222222["OHMS"] = 4] = "OHMS";
                              EngineeringUnits22222222[EngineeringUnits22222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["OHM_METERS"] = 172] = "OHM_METERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOHMS"] = 122] = "KILOHMS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGOHMS"] = 123] = "MEGOHMS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                              EngineeringUnits22222222[EngineeringUnits22222222["SIEMENS"] = 173] = "SIEMENS";
                              EngineeringUnits22222222[EngineeringUnits22222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["TESLAS"] = 175] = "TESLAS";
                              EngineeringUnits22222222[EngineeringUnits22222222["VOLTS"] = 5] = "VOLTS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                              EngineeringUnits22222222[EngineeringUnits22222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                              EngineeringUnits22222222[EngineeringUnits22222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                              EngineeringUnits22222222[EngineeringUnits22222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                              EngineeringUnits22222222[EngineeringUnits22222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                              EngineeringUnits22222222[EngineeringUnits22222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                              EngineeringUnits22222222[EngineeringUnits22222222["WEBERS"] = 178] = "WEBERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                              EngineeringUnits22222222[EngineeringUnits22222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                              EngineeringUnits22222222[EngineeringUnits22222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                              EngineeringUnits22222222[EngineeringUnits22222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                              EngineeringUnits22222222[EngineeringUnits22222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                              EngineeringUnits22222222[EngineeringUnits22222222["JOULES"] = 16] = "JOULES";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOJOULES"] = 17] = "KILOJOULES";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                              EngineeringUnits22222222[EngineeringUnits22222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                              EngineeringUnits22222222[EngineeringUnits22222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                              EngineeringUnits22222222[EngineeringUnits22222222["BTUS"] = 20] = "BTUS";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                              EngineeringUnits22222222[EngineeringUnits22222222["THERMS"] = 21] = "THERMS";
                              EngineeringUnits22222222[EngineeringUnits22222222["TON_HOURS"] = 22] = "TON_HOURS";
                              EngineeringUnits22222222[EngineeringUnits22222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                              EngineeringUnits22222222[EngineeringUnits22222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                              EngineeringUnits22222222[EngineeringUnits22222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                              EngineeringUnits22222222[EngineeringUnits22222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                              EngineeringUnits22222222[EngineeringUnits22222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                              EngineeringUnits22222222[EngineeringUnits22222222["NEWTON"] = 153] = "NEWTON";
                              EngineeringUnits22222222[EngineeringUnits22222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["HERTZ"] = 27] = "HERTZ";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                              EngineeringUnits22222222[EngineeringUnits22222222["PER_HOUR"] = 131] = "PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                              EngineeringUnits22222222[EngineeringUnits22222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                              EngineeringUnits22222222[EngineeringUnits22222222["MICROMETERS"] = 194] = "MICROMETERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOMETERS"] = 193] = "KILOMETERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["METERS"] = 31] = "METERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["INCHES"] = 32] = "INCHES";
                              EngineeringUnits22222222[EngineeringUnits22222222["FEET"] = 33] = "FEET";
                              EngineeringUnits22222222[EngineeringUnits22222222["CANDELAS"] = 179] = "CANDELAS";
                              EngineeringUnits22222222[EngineeringUnits22222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                              EngineeringUnits22222222[EngineeringUnits22222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["LUMENS"] = 36] = "LUMENS";
                              EngineeringUnits22222222[EngineeringUnits22222222["LUXES"] = 37] = "LUXES";
                              EngineeringUnits22222222[EngineeringUnits22222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                              EngineeringUnits22222222[EngineeringUnits22222222["GRAMS"] = 195] = "GRAMS";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                              EngineeringUnits22222222[EngineeringUnits22222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                              EngineeringUnits22222222[EngineeringUnits22222222["TONS"] = 41] = "TONS";
                              EngineeringUnits22222222[EngineeringUnits22222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                              EngineeringUnits22222222[EngineeringUnits22222222["WATTS"] = 47] = "WATTS";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOWATTS"] = 48] = "KILOWATTS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                              EngineeringUnits22222222[EngineeringUnits22222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                              EngineeringUnits22222222[EngineeringUnits22222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                              EngineeringUnits22222222[EngineeringUnits22222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                              EngineeringUnits22222222[EngineeringUnits22222222["PASCALS"] = 53] = "PASCALS";
                              EngineeringUnits22222222[EngineeringUnits22222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIBARS"] = 134] = "MILLIBARS";
                              EngineeringUnits22222222[EngineeringUnits22222222["BARS"] = 55] = "BARS";
                              EngineeringUnits22222222[EngineeringUnits22222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                              EngineeringUnits22222222[EngineeringUnits22222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                              EngineeringUnits22222222[EngineeringUnits22222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                              EngineeringUnits22222222[EngineeringUnits22222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                              EngineeringUnits22222222[EngineeringUnits22222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                              EngineeringUnits22222222[EngineeringUnits22222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                              EngineeringUnits22222222[EngineeringUnits22222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                              EngineeringUnits22222222[EngineeringUnits22222222["YEARS"] = 67] = "YEARS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MONTHS"] = 68] = "MONTHS";
                              EngineeringUnits22222222[EngineeringUnits22222222["WEEKS"] = 69] = "WEEKS";
                              EngineeringUnits22222222[EngineeringUnits22222222["DAYS"] = 70] = "DAYS";
                              EngineeringUnits22222222[EngineeringUnits22222222["HOURS"] = 71] = "HOURS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MINUTES"] = 72] = "MINUTES";
                              EngineeringUnits22222222[EngineeringUnits22222222["SECONDS"] = 73] = "SECONDS";
                              EngineeringUnits22222222[EngineeringUnits22222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                              EngineeringUnits22222222[EngineeringUnits22222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                              EngineeringUnits22222222[EngineeringUnits22222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLILITERS"] = 197] = "MILLILITERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["LITERS"] = 82] = "LITERS";
                              EngineeringUnits22222222[EngineeringUnits22222222["US_GALLONS"] = 83] = "US_GALLONS";
                              EngineeringUnits22222222[EngineeringUnits22222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                              EngineeringUnits22222222[EngineeringUnits22222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                              EngineeringUnits22222222[EngineeringUnits22222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                              EngineeringUnits22222222[EngineeringUnits22222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                              EngineeringUnits22222222[EngineeringUnits22222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                              EngineeringUnits22222222[EngineeringUnits22222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                              EngineeringUnits22222222[EngineeringUnits22222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                              EngineeringUnits22222222[EngineeringUnits22222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                              EngineeringUnits22222222[EngineeringUnits22222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                              EngineeringUnits22222222[EngineeringUnits22222222["NO_UNITS"] = 95] = "NO_UNITS";
                              EngineeringUnits22222222[EngineeringUnits22222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                              EngineeringUnits22222222[EngineeringUnits22222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                              EngineeringUnits22222222[EngineeringUnits22222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                              EngineeringUnits22222222[EngineeringUnits22222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                              EngineeringUnits22222222[EngineeringUnits22222222["PERCENT"] = 98] = "PERCENT";
                              EngineeringUnits22222222[EngineeringUnits22222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                              EngineeringUnits22222222[EngineeringUnits22222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["PER_SECOND"] = 101] = "PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                              EngineeringUnits22222222[EngineeringUnits22222222["RADIANS"] = 103] = "RADIANS";
                              EngineeringUnits22222222[EngineeringUnits22222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                              EngineeringUnits22222222[EngineeringUnits22222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                              EngineeringUnits22222222[EngineeringUnits22222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                              EngineeringUnits22222222[EngineeringUnits22222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                              EngineeringUnits22222222[EngineeringUnits22222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                              EngineeringUnits22222222[EngineeringUnits22222222["PER_MILLE"] = 207] = "PER_MILLE";
                              EngineeringUnits22222222[EngineeringUnits22222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                              EngineeringUnits22222222[EngineeringUnits22222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                              EngineeringUnits22222222[EngineeringUnits22222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                              EngineeringUnits22222222[EngineeringUnits22222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                              EngineeringUnits22222222[EngineeringUnits22222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                              EngineeringUnits22222222[EngineeringUnits22222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                              EngineeringUnits22222222[EngineeringUnits22222222["BECQUERELS"] = 222] = "BECQUERELS";
                              EngineeringUnits22222222[EngineeringUnits22222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                              EngineeringUnits22222222[EngineeringUnits22222222["GRAY"] = 225] = "GRAY";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                              EngineeringUnits22222222[EngineeringUnits22222222["MICROGRAY"] = 227] = "MICROGRAY";
                              EngineeringUnits22222222[EngineeringUnits22222222["SIEVERTS"] = 228] = "SIEVERTS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIREMS"] = 47814] = "MILLIREMS";
                              EngineeringUnits22222222[EngineeringUnits22222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                              EngineeringUnits22222222[EngineeringUnits22222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                              EngineeringUnits22222222[EngineeringUnits22222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                              EngineeringUnits22222222[EngineeringUnits22222222["PH"] = 234] = "PH";
                              EngineeringUnits22222222[EngineeringUnits22222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                              EngineeringUnits22222222[EngineeringUnits22222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                              return EngineeringUnits22222222;
                            })(EngineeringUnits2222222 || {});
                            var EscalatorFault2222222 = /* @__PURE__ */ ((EscalatorFault22222222) => {
                              EscalatorFault22222222[EscalatorFault22222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                              EscalatorFault22222222[EscalatorFault22222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                              EscalatorFault22222222[EscalatorFault22222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                              EscalatorFault22222222[EscalatorFault22222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                              EscalatorFault22222222[EscalatorFault22222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                              EscalatorFault22222222[EscalatorFault22222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                              EscalatorFault22222222[EscalatorFault22222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                              EscalatorFault22222222[EscalatorFault22222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                              EscalatorFault22222222[EscalatorFault22222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                              return EscalatorFault22222222;
                            })(EscalatorFault2222222 || {});
                            var EscalatorMode2222222 = /* @__PURE__ */ ((EscalatorMode22222222) => {
                              EscalatorMode22222222[EscalatorMode22222222["UNKNOWN"] = 0] = "UNKNOWN";
                              EscalatorMode22222222[EscalatorMode22222222["STOP"] = 1] = "STOP";
                              EscalatorMode22222222[EscalatorMode22222222["UP"] = 2] = "UP";
                              EscalatorMode22222222[EscalatorMode22222222["DOWN"] = 3] = "DOWN";
                              EscalatorMode22222222[EscalatorMode22222222["INSPECTION"] = 4] = "INSPECTION";
                              EscalatorMode22222222[EscalatorMode22222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                              return EscalatorMode22222222;
                            })(EscalatorMode2222222 || {});
                            var EscalatorOperationDirection2222222 = /* @__PURE__ */ ((EscalatorOperationDirection22222222) => {
                              EscalatorOperationDirection22222222[EscalatorOperationDirection22222222["UNKNOWN"] = 0] = "UNKNOWN";
                              EscalatorOperationDirection22222222[EscalatorOperationDirection22222222["STOPPED"] = 1] = "STOPPED";
                              EscalatorOperationDirection22222222[EscalatorOperationDirection22222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                              EscalatorOperationDirection22222222[EscalatorOperationDirection22222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                              EscalatorOperationDirection22222222[EscalatorOperationDirection22222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                              EscalatorOperationDirection22222222[EscalatorOperationDirection22222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                              return EscalatorOperationDirection22222222;
                            })(EscalatorOperationDirection2222222 || {});
                            var EventState2222222 = /* @__PURE__ */ ((EventState22222222) => {
                              EventState22222222[EventState22222222["NORMAL"] = 0] = "NORMAL";
                              EventState22222222[EventState22222222["FAULT"] = 1] = "FAULT";
                              EventState22222222[EventState22222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                              EventState22222222[EventState22222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                              EventState22222222[EventState22222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                              EventState22222222[EventState22222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                              return EventState22222222;
                            })(EventState2222222 || {});
                            var EventType2222222 = /* @__PURE__ */ ((EventType22222222) => {
                              EventType22222222[EventType22222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                              EventType22222222[EventType22222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                              EventType22222222[EventType22222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                              EventType22222222[EventType22222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                              EventType22222222[EventType22222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                              EventType22222222[EventType22222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                              EventType22222222[EventType22222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                              EventType22222222[EventType22222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                              EventType22222222[EventType22222222["EXTENDED"] = 9] = "EXTENDED";
                              EventType22222222[EventType22222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                              EventType22222222[EventType22222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                              EventType22222222[EventType22222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                              EventType22222222[EventType22222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                              EventType22222222[EventType22222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                              EventType22222222[EventType22222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                              EventType22222222[EventType22222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                              EventType22222222[EventType22222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                              EventType22222222[EventType22222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                              EventType22222222[EventType22222222["NONE"] = 20] = "NONE";
                              EventType22222222[EventType22222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                              EventType22222222[EventType22222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                              return EventType22222222;
                            })(EventType2222222 || {});
                            var FaultType2222222 = /* @__PURE__ */ ((FaultType22222222) => {
                              FaultType22222222[FaultType22222222["NONE"] = 0] = "NONE";
                              FaultType22222222[FaultType22222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                              FaultType22222222[FaultType22222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                              FaultType22222222[FaultType22222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                              FaultType22222222[FaultType22222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                              FaultType22222222[FaultType22222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                              FaultType22222222[FaultType22222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                              FaultType22222222[FaultType22222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                              return FaultType22222222;
                            })(FaultType2222222 || {});
                            var FileAccessMethod2222222 = /* @__PURE__ */ ((FileAccessMethod22222222) => {
                              FileAccessMethod22222222[FileAccessMethod22222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                              FileAccessMethod22222222[FileAccessMethod22222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                              return FileAccessMethod22222222;
                            })(FileAccessMethod2222222 || {});
                            var IPMode2222222 = /* @__PURE__ */ ((IPMode22222222) => {
                              IPMode22222222[IPMode22222222["NORMAL"] = 0] = "NORMAL";
                              IPMode22222222[IPMode22222222["FOREIGN"] = 1] = "FOREIGN";
                              IPMode22222222[IPMode22222222["BBMD"] = 2] = "BBMD";
                              return IPMode22222222;
                            })(IPMode2222222 || {});
                            var LifeSafetyMode2222222 = /* @__PURE__ */ ((LifeSafetyMode22222222) => {
                              LifeSafetyMode22222222[LifeSafetyMode22222222["OFF"] = 0] = "OFF";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["ON"] = 1] = "ON";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["TEST"] = 2] = "TEST";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["MANNED"] = 3] = "MANNED";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["UNMANNED"] = 4] = "UNMANNED";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["ARMED"] = 5] = "ARMED";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["DISARMED"] = 6] = "DISARMED";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["PREARMED"] = 7] = "PREARMED";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["SLOW"] = 8] = "SLOW";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["FAST"] = 9] = "FAST";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["ENABLED"] = 11] = "ENABLED";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["DISABLED"] = 12] = "DISABLED";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                              LifeSafetyMode22222222[LifeSafetyMode22222222["DEFAULT"] = 14] = "DEFAULT";
                              return LifeSafetyMode22222222;
                            })(LifeSafetyMode2222222 || {});
                            var LifeSafetyOperation2222222 = /* @__PURE__ */ ((LifeSafetyOperation22222222) => {
                              LifeSafetyOperation22222222[LifeSafetyOperation22222222["NONE"] = 0] = "NONE";
                              LifeSafetyOperation22222222[LifeSafetyOperation22222222["SILENCE"] = 1] = "SILENCE";
                              LifeSafetyOperation22222222[LifeSafetyOperation22222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                              LifeSafetyOperation22222222[LifeSafetyOperation22222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                              LifeSafetyOperation22222222[LifeSafetyOperation22222222["RESET"] = 4] = "RESET";
                              LifeSafetyOperation22222222[LifeSafetyOperation22222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                              LifeSafetyOperation22222222[LifeSafetyOperation22222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                              LifeSafetyOperation22222222[LifeSafetyOperation22222222["UNSILENCE"] = 7] = "UNSILENCE";
                              LifeSafetyOperation22222222[LifeSafetyOperation22222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                              LifeSafetyOperation22222222[LifeSafetyOperation22222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                              return LifeSafetyOperation22222222;
                            })(LifeSafetyOperation2222222 || {});
                            var LifeSafetyState2222222 = /* @__PURE__ */ ((LifeSafetyState22222222) => {
                              LifeSafetyState22222222[LifeSafetyState22222222["QUIET"] = 0] = "QUIET";
                              LifeSafetyState22222222[LifeSafetyState22222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                              LifeSafetyState22222222[LifeSafetyState22222222["ALARM"] = 2] = "ALARM";
                              LifeSafetyState22222222[LifeSafetyState22222222["FAULT"] = 3] = "FAULT";
                              LifeSafetyState22222222[LifeSafetyState22222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                              LifeSafetyState22222222[LifeSafetyState22222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                              LifeSafetyState22222222[LifeSafetyState22222222["NOT_READY"] = 6] = "NOT_READY";
                              LifeSafetyState22222222[LifeSafetyState22222222["ACTIVE"] = 7] = "ACTIVE";
                              LifeSafetyState22222222[LifeSafetyState22222222["TAMPER"] = 8] = "TAMPER";
                              LifeSafetyState22222222[LifeSafetyState22222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                              LifeSafetyState22222222[LifeSafetyState22222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                              LifeSafetyState22222222[LifeSafetyState22222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                              LifeSafetyState22222222[LifeSafetyState22222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                              LifeSafetyState22222222[LifeSafetyState22222222["HOLDUP"] = 13] = "HOLDUP";
                              LifeSafetyState22222222[LifeSafetyState22222222["DURESS"] = 14] = "DURESS";
                              LifeSafetyState22222222[LifeSafetyState22222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                              LifeSafetyState22222222[LifeSafetyState22222222["ABNORMAL"] = 16] = "ABNORMAL";
                              LifeSafetyState22222222[LifeSafetyState22222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                              LifeSafetyState22222222[LifeSafetyState22222222["DELAYED"] = 18] = "DELAYED";
                              LifeSafetyState22222222[LifeSafetyState22222222["BLOCKED"] = 19] = "BLOCKED";
                              LifeSafetyState22222222[LifeSafetyState22222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                              LifeSafetyState22222222[LifeSafetyState22222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                              LifeSafetyState22222222[LifeSafetyState22222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                              LifeSafetyState22222222[LifeSafetyState22222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                              return LifeSafetyState22222222;
                            })(LifeSafetyState2222222 || {});
                            var LiftCarDirection2222222 = /* @__PURE__ */ ((LiftCarDirection22222222) => {
                              LiftCarDirection22222222[LiftCarDirection22222222["UNKNOWN"] = 0] = "UNKNOWN";
                              LiftCarDirection22222222[LiftCarDirection22222222["NONE"] = 1] = "NONE";
                              LiftCarDirection22222222[LiftCarDirection22222222["STOPPED"] = 2] = "STOPPED";
                              LiftCarDirection22222222[LiftCarDirection22222222["UP"] = 3] = "UP";
                              LiftCarDirection22222222[LiftCarDirection22222222["DOWN"] = 4] = "DOWN";
                              LiftCarDirection22222222[LiftCarDirection22222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                              return LiftCarDirection22222222;
                            })(LiftCarDirection2222222 || {});
                            var LiftCarDoorCommand2222222 = /* @__PURE__ */ ((LiftCarDoorCommand22222222) => {
                              LiftCarDoorCommand22222222[LiftCarDoorCommand22222222["NONE"] = 0] = "NONE";
                              LiftCarDoorCommand22222222[LiftCarDoorCommand22222222["OPEN"] = 1] = "OPEN";
                              LiftCarDoorCommand22222222[LiftCarDoorCommand22222222["CLOSE"] = 2] = "CLOSE";
                              return LiftCarDoorCommand22222222;
                            })(LiftCarDoorCommand2222222 || {});
                            var LiftCarDriveStatus2222222 = /* @__PURE__ */ ((LiftCarDriveStatus22222222) => {
                              LiftCarDriveStatus22222222[LiftCarDriveStatus22222222["UNKNOWN"] = 0] = "UNKNOWN";
                              LiftCarDriveStatus22222222[LiftCarDriveStatus22222222["STATIONARY"] = 1] = "STATIONARY";
                              LiftCarDriveStatus22222222[LiftCarDriveStatus22222222["BRAKING"] = 2] = "BRAKING";
                              LiftCarDriveStatus22222222[LiftCarDriveStatus22222222["ACCELERATE"] = 3] = "ACCELERATE";
                              LiftCarDriveStatus22222222[LiftCarDriveStatus22222222["DECELERATE"] = 4] = "DECELERATE";
                              LiftCarDriveStatus22222222[LiftCarDriveStatus22222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                              LiftCarDriveStatus22222222[LiftCarDriveStatus22222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                              LiftCarDriveStatus22222222[LiftCarDriveStatus22222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                              LiftCarDriveStatus22222222[LiftCarDriveStatus22222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                              LiftCarDriveStatus22222222[LiftCarDriveStatus22222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                              return LiftCarDriveStatus22222222;
                            })(LiftCarDriveStatus2222222 || {});
                            var LiftCarMode2222222 = /* @__PURE__ */ ((LiftCarMode22222222) => {
                              LiftCarMode22222222[LiftCarMode22222222["UNKNOWN"] = 0] = "UNKNOWN";
                              LiftCarMode22222222[LiftCarMode22222222["NORMAL"] = 1] = "NORMAL";
                              LiftCarMode22222222[LiftCarMode22222222["VIP"] = 2] = "VIP";
                              LiftCarMode22222222[LiftCarMode22222222["HOMING"] = 3] = "HOMING";
                              LiftCarMode22222222[LiftCarMode22222222["PARKING"] = 4] = "PARKING";
                              LiftCarMode22222222[LiftCarMode22222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                              LiftCarMode22222222[LiftCarMode22222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                              LiftCarMode22222222[LiftCarMode22222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                              LiftCarMode22222222[LiftCarMode22222222["INSPECTION"] = 8] = "INSPECTION";
                              LiftCarMode22222222[LiftCarMode22222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                              LiftCarMode22222222[LiftCarMode22222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                              LiftCarMode22222222[LiftCarMode22222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                              LiftCarMode22222222[LiftCarMode22222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                              LiftCarMode22222222[LiftCarMode22222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                              return LiftCarMode22222222;
                            })(LiftCarMode2222222 || {});
                            var LiftFault2222222 = /* @__PURE__ */ ((LiftFault22222222) => {
                              LiftFault22222222[LiftFault22222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                              LiftFault22222222[LiftFault22222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                              LiftFault22222222[LiftFault22222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                              LiftFault22222222[LiftFault22222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                              LiftFault22222222[LiftFault22222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                              LiftFault22222222[LiftFault22222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                              LiftFault22222222[LiftFault22222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                              LiftFault22222222[LiftFault22222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                              LiftFault22222222[LiftFault22222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                              LiftFault22222222[LiftFault22222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                              LiftFault22222222[LiftFault22222222["START_FAILURE"] = 10] = "START_FAILURE";
                              LiftFault22222222[LiftFault22222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                              LiftFault22222222[LiftFault22222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                              LiftFault22222222[LiftFault22222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                              LiftFault22222222[LiftFault22222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                              LiftFault22222222[LiftFault22222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                              LiftFault22222222[LiftFault22222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                              return LiftFault22222222;
                            })(LiftFault2222222 || {});
                            var LiftGroupMode2222222 = /* @__PURE__ */ ((LiftGroupMode22222222) => {
                              LiftGroupMode22222222[LiftGroupMode22222222["UNKNOWN"] = 0] = "UNKNOWN";
                              LiftGroupMode22222222[LiftGroupMode22222222["NORMAL"] = 1] = "NORMAL";
                              LiftGroupMode22222222[LiftGroupMode22222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                              LiftGroupMode22222222[LiftGroupMode22222222["TWO_WAY"] = 3] = "TWO_WAY";
                              LiftGroupMode22222222[LiftGroupMode22222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                              LiftGroupMode22222222[LiftGroupMode22222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                              LiftGroupMode22222222[LiftGroupMode22222222["UP_PEAK"] = 6] = "UP_PEAK";
                              return LiftGroupMode22222222;
                            })(LiftGroupMode2222222 || {});
                            var LightingInProgress2222222 = /* @__PURE__ */ ((LightingInProgress22222222) => {
                              LightingInProgress22222222[LightingInProgress22222222["IDLE"] = 0] = "IDLE";
                              LightingInProgress22222222[LightingInProgress22222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                              LightingInProgress22222222[LightingInProgress22222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                              LightingInProgress22222222[LightingInProgress22222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                              LightingInProgress22222222[LightingInProgress22222222["OTHER"] = 4] = "OTHER";
                              return LightingInProgress22222222;
                            })(LightingInProgress2222222 || {});
                            var LightingOperation2222222 = /* @__PURE__ */ ((LightingOperation22222222) => {
                              LightingOperation22222222[LightingOperation22222222["NONE"] = 0] = "NONE";
                              LightingOperation22222222[LightingOperation22222222["FADE_TO"] = 1] = "FADE_TO";
                              LightingOperation22222222[LightingOperation22222222["RAMP_TO"] = 2] = "RAMP_TO";
                              LightingOperation22222222[LightingOperation22222222["STEP_UP"] = 3] = "STEP_UP";
                              LightingOperation22222222[LightingOperation22222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                              LightingOperation22222222[LightingOperation22222222["STEP_ON"] = 5] = "STEP_ON";
                              LightingOperation22222222[LightingOperation22222222["STEP_OFF"] = 6] = "STEP_OFF";
                              LightingOperation22222222[LightingOperation22222222["WARN"] = 7] = "WARN";
                              LightingOperation22222222[LightingOperation22222222["WARN_OFF"] = 8] = "WARN_OFF";
                              LightingOperation22222222[LightingOperation22222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                              LightingOperation22222222[LightingOperation22222222["STOP"] = 10] = "STOP";
                              return LightingOperation22222222;
                            })(LightingOperation2222222 || {});
                            var LightingTransition2222222 = /* @__PURE__ */ ((LightingTransition22222222) => {
                              LightingTransition22222222[LightingTransition22222222["NONE"] = 0] = "NONE";
                              LightingTransition22222222[LightingTransition22222222["FADE"] = 1] = "FADE";
                              LightingTransition22222222[LightingTransition22222222["RAMP"] = 2] = "RAMP";
                              return LightingTransition22222222;
                            })(LightingTransition2222222 || {});
                            var LockStatus2222222 = /* @__PURE__ */ ((LockStatus22222222) => {
                              LockStatus22222222[LockStatus22222222["LOCKED"] = 0] = "LOCKED";
                              LockStatus22222222[LockStatus22222222["UNLOCKED"] = 1] = "UNLOCKED";
                              LockStatus22222222[LockStatus22222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                              LockStatus22222222[LockStatus22222222["UNUSED"] = 3] = "UNUSED";
                              LockStatus22222222[LockStatus22222222["UNKNOWN"] = 4] = "UNKNOWN";
                              return LockStatus22222222;
                            })(LockStatus2222222 || {});
                            var LoggingType2222222 = /* @__PURE__ */ ((LoggingType22222222) => {
                              LoggingType22222222[LoggingType22222222["POLLED"] = 0] = "POLLED";
                              LoggingType22222222[LoggingType22222222["COV"] = 1] = "COV";
                              LoggingType22222222[LoggingType22222222["TRIGGERED"] = 2] = "TRIGGERED";
                              return LoggingType22222222;
                            })(LoggingType2222222 || {});
                            var Maintenance2222222 = /* @__PURE__ */ ((Maintenance22222222) => {
                              Maintenance22222222[Maintenance22222222["NONE"] = 0] = "NONE";
                              Maintenance22222222[Maintenance22222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                              Maintenance22222222[Maintenance22222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                              Maintenance22222222[Maintenance22222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                              return Maintenance22222222;
                            })(Maintenance2222222 || {});
                            var NetworkNumberQuality2222222 = /* @__PURE__ */ ((NetworkNumberQuality22222222) => {
                              NetworkNumberQuality22222222[NetworkNumberQuality22222222["UNKNOWN"] = 0] = "UNKNOWN";
                              NetworkNumberQuality22222222[NetworkNumberQuality22222222["LEARNED"] = 1] = "LEARNED";
                              NetworkNumberQuality22222222[NetworkNumberQuality22222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                              NetworkNumberQuality22222222[NetworkNumberQuality22222222["CONFIGURED"] = 3] = "CONFIGURED";
                              return NetworkNumberQuality22222222;
                            })(NetworkNumberQuality2222222 || {});
                            var NetworkPortCommand2222222 = /* @__PURE__ */ ((NetworkPortCommand22222222) => {
                              NetworkPortCommand22222222[NetworkPortCommand22222222["IDLE"] = 0] = "IDLE";
                              NetworkPortCommand22222222[NetworkPortCommand22222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                              NetworkPortCommand22222222[NetworkPortCommand22222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                              NetworkPortCommand22222222[NetworkPortCommand22222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                              NetworkPortCommand22222222[NetworkPortCommand22222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                              NetworkPortCommand22222222[NetworkPortCommand22222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                              NetworkPortCommand22222222[NetworkPortCommand22222222["DISCONNECT"] = 6] = "DISCONNECT";
                              NetworkPortCommand22222222[NetworkPortCommand22222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                              return NetworkPortCommand22222222;
                            })(NetworkPortCommand2222222 || {});
                            var NetworkType2222222 = /* @__PURE__ */ ((NetworkType22222222) => {
                              NetworkType22222222[NetworkType22222222["ETHERNET"] = 0] = "ETHERNET";
                              NetworkType22222222[NetworkType22222222["ARCNET"] = 1] = "ARCNET";
                              NetworkType22222222[NetworkType22222222["MSTP"] = 2] = "MSTP";
                              NetworkType22222222[NetworkType22222222["PTP"] = 3] = "PTP";
                              NetworkType22222222[NetworkType22222222["LONTALK"] = 4] = "LONTALK";
                              NetworkType22222222[NetworkType22222222["IPV4"] = 5] = "IPV4";
                              NetworkType22222222[NetworkType22222222["ZIGBEE"] = 6] = "ZIGBEE";
                              NetworkType22222222[NetworkType22222222["VIRTUAL"] = 7] = "VIRTUAL";
                              NetworkType22222222[NetworkType22222222["IPV6"] = 9] = "IPV6";
                              NetworkType22222222[NetworkType22222222["SERIAL"] = 10] = "SERIAL";
                              return NetworkType22222222;
                            })(NetworkType2222222 || {});
                            var NodeType2222222 = /* @__PURE__ */ ((NodeType22222222) => {
                              NodeType22222222[NodeType22222222["UNKNOWN"] = 0] = "UNKNOWN";
                              NodeType22222222[NodeType22222222["SYSTEM"] = 1] = "SYSTEM";
                              NodeType22222222[NodeType22222222["NETWORK"] = 2] = "NETWORK";
                              NodeType22222222[NodeType22222222["DEVICE"] = 3] = "DEVICE";
                              NodeType22222222[NodeType22222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                              NodeType22222222[NodeType22222222["AREA"] = 5] = "AREA";
                              NodeType22222222[NodeType22222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                              NodeType22222222[NodeType22222222["POINT"] = 7] = "POINT";
                              NodeType22222222[NodeType22222222["COLLECTION"] = 8] = "COLLECTION";
                              NodeType22222222[NodeType22222222["PROPERTY"] = 9] = "PROPERTY";
                              NodeType22222222[NodeType22222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                              NodeType22222222[NodeType22222222["OTHER"] = 11] = "OTHER";
                              NodeType22222222[NodeType22222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                              NodeType22222222[NodeType22222222["BUILDING"] = 13] = "BUILDING";
                              NodeType22222222[NodeType22222222["FLOOR"] = 14] = "FLOOR";
                              NodeType22222222[NodeType22222222["SECTION"] = 15] = "SECTION";
                              NodeType22222222[NodeType22222222["MODULE"] = 16] = "MODULE";
                              NodeType22222222[NodeType22222222["TREE"] = 17] = "TREE";
                              NodeType22222222[NodeType22222222["MEMBER"] = 18] = "MEMBER";
                              NodeType22222222[NodeType22222222["PROTOCOL"] = 19] = "PROTOCOL";
                              NodeType22222222[NodeType22222222["ROOM"] = 20] = "ROOM";
                              NodeType22222222[NodeType22222222["ZONE"] = 21] = "ZONE";
                              return NodeType22222222;
                            })(NodeType2222222 || {});
                            var NotifyType2222222 = /* @__PURE__ */ ((NotifyType22222222) => {
                              NotifyType22222222[NotifyType22222222["ALARM"] = 0] = "ALARM";
                              NotifyType22222222[NotifyType22222222["EVENT"] = 1] = "EVENT";
                              NotifyType22222222[NotifyType22222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                              return NotifyType22222222;
                            })(NotifyType2222222 || {});
                            var ObjectType2222222 = /* @__PURE__ */ ((ObjectType22222222) => {
                              ObjectType22222222[ObjectType22222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                              ObjectType22222222[ObjectType22222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                              ObjectType22222222[ObjectType22222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                              ObjectType22222222[ObjectType22222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                              ObjectType22222222[ObjectType22222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                              ObjectType22222222[ObjectType22222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                              ObjectType22222222[ObjectType22222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                              ObjectType22222222[ObjectType22222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                              ObjectType22222222[ObjectType22222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                              ObjectType22222222[ObjectType22222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                              ObjectType22222222[ObjectType22222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                              ObjectType22222222[ObjectType22222222["AVERAGING"] = 18] = "AVERAGING";
                              ObjectType22222222[ObjectType22222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                              ObjectType22222222[ObjectType22222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                              ObjectType22222222[ObjectType22222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                              ObjectType22222222[ObjectType22222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                              ObjectType22222222[ObjectType22222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                              ObjectType22222222[ObjectType22222222["CALENDAR"] = 6] = "CALENDAR";
                              ObjectType22222222[ObjectType22222222["CHANNEL"] = 53] = "CHANNEL";
                              ObjectType22222222[ObjectType22222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                              ObjectType22222222[ObjectType22222222["COMMAND"] = 7] = "COMMAND";
                              ObjectType22222222[ObjectType22222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                              ObjectType22222222[ObjectType22222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                              ObjectType22222222[ObjectType22222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                              ObjectType22222222[ObjectType22222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                              ObjectType22222222[ObjectType22222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                              ObjectType22222222[ObjectType22222222["DEVICE"] = 8] = "DEVICE";
                              ObjectType22222222[ObjectType22222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                              ObjectType22222222[ObjectType22222222["ESCALATOR"] = 58] = "ESCALATOR";
                              ObjectType22222222[ObjectType22222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                              ObjectType22222222[ObjectType22222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                              ObjectType22222222[ObjectType22222222["FILE"] = 10] = "FILE";
                              ObjectType22222222[ObjectType22222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                              ObjectType22222222[ObjectType22222222["GROUP"] = 11] = "GROUP";
                              ObjectType22222222[ObjectType22222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                              ObjectType22222222[ObjectType22222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                              ObjectType22222222[ObjectType22222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                              ObjectType22222222[ObjectType22222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                              ObjectType22222222[ObjectType22222222["LIFT"] = 59] = "LIFT";
                              ObjectType22222222[ObjectType22222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                              ObjectType22222222[ObjectType22222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                              ObjectType22222222[ObjectType22222222["LOOP"] = 12] = "LOOP";
                              ObjectType22222222[ObjectType22222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                              ObjectType22222222[ObjectType22222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                              ObjectType22222222[ObjectType22222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                              ObjectType22222222[ObjectType22222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                              ObjectType22222222[ObjectType22222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                              ObjectType22222222[ObjectType22222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                              ObjectType22222222[ObjectType22222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                              ObjectType22222222[ObjectType22222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                              ObjectType22222222[ObjectType22222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                              ObjectType22222222[ObjectType22222222["PROGRAM"] = 16] = "PROGRAM";
                              ObjectType22222222[ObjectType22222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                              ObjectType22222222[ObjectType22222222["SCHEDULE"] = 17] = "SCHEDULE";
                              ObjectType22222222[ObjectType22222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                              ObjectType22222222[ObjectType22222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                              ObjectType22222222[ObjectType22222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                              ObjectType22222222[ObjectType22222222["TIMER"] = 31] = "TIMER";
                              ObjectType22222222[ObjectType22222222["TREND_LOG"] = 20] = "TREND_LOG";
                              ObjectType22222222[ObjectType22222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                              return ObjectType22222222;
                            })(ObjectType2222222 || {});
                            var Polarity2222222 = /* @__PURE__ */ ((Polarity22222222) => {
                              Polarity22222222[Polarity22222222["NORMAL"] = 0] = "NORMAL";
                              Polarity22222222[Polarity22222222["REVERSE"] = 1] = "REVERSE";
                              return Polarity22222222;
                            })(Polarity2222222 || {});
                            var ProgramError2222222 = /* @__PURE__ */ ((ProgramError22222222) => {
                              ProgramError22222222[ProgramError22222222["NORMAL"] = 0] = "NORMAL";
                              ProgramError22222222[ProgramError22222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                              ProgramError22222222[ProgramError22222222["INTERNAL"] = 2] = "INTERNAL";
                              ProgramError22222222[ProgramError22222222["PROGRAM"] = 3] = "PROGRAM";
                              ProgramError22222222[ProgramError22222222["OTHER"] = 4] = "OTHER";
                              return ProgramError22222222;
                            })(ProgramError2222222 || {});
                            var ProgramRequest2222222 = /* @__PURE__ */ ((ProgramRequest22222222) => {
                              ProgramRequest22222222[ProgramRequest22222222["READY"] = 0] = "READY";
                              ProgramRequest22222222[ProgramRequest22222222["LOAD"] = 1] = "LOAD";
                              ProgramRequest22222222[ProgramRequest22222222["RUN"] = 2] = "RUN";
                              ProgramRequest22222222[ProgramRequest22222222["HALT"] = 3] = "HALT";
                              ProgramRequest22222222[ProgramRequest22222222["RESTART"] = 4] = "RESTART";
                              ProgramRequest22222222[ProgramRequest22222222["UNLOAD"] = 5] = "UNLOAD";
                              return ProgramRequest22222222;
                            })(ProgramRequest2222222 || {});
                            var ProgramState2222222 = /* @__PURE__ */ ((ProgramState22222222) => {
                              ProgramState22222222[ProgramState22222222["IDLE"] = 0] = "IDLE";
                              ProgramState22222222[ProgramState22222222["LOADING"] = 1] = "LOADING";
                              ProgramState22222222[ProgramState22222222["RUNNING"] = 2] = "RUNNING";
                              ProgramState22222222[ProgramState22222222["WAITING"] = 3] = "WAITING";
                              ProgramState22222222[ProgramState22222222["HALTED"] = 4] = "HALTED";
                              ProgramState22222222[ProgramState22222222["UNLOADING"] = 5] = "UNLOADING";
                              return ProgramState22222222;
                            })(ProgramState2222222 || {});
                            var PropertyIdentifier2222222 = /* @__PURE__ */ ((PropertyIdentifier22222222) => {
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACTION"] = 2] = "ACTION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ALL"] = 8] = "ALL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ARCHIVE"] = 13] = "ARCHIVE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BIAS"] = 14] = "BIAS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BIT_MASK"] = 342] = "BIT_MASK";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CAR_MODE"] = 456] = "CAR_MODE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["COMMAND"] = 417] = "COMMAND";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["COUNT"] = 177] = "COUNT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DATE_LIST"] = 23] = "DATE_LIST";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DEADBAND"] = 25] = "DEADBAND";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ENABLE"] = 133] = "ENABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["GROUP_ID"] = 465] = "GROUP_ID";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["IS_UTC"] = 344] = "IS_UTC";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["KEY_SETS"] = 330] = "KEY_SETS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOCATION"] = 58] = "LOCATION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOCKOUT"] = 282] = "LOCKOUT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MEMBERS"] = 286] = "MEMBERS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MODE"] = 160] = "MODE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OPTIONAL"] = 80] = "OPTIONAL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["POLARITY"] = 84] = "POLARITY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["POWER"] = 384] = "POWER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["POWER_MODE"] = 479] = "POWER_MODE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PRESCALE"] = 185] = "PRESCALE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PRIORITY"] = 86] = "PRIORITY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["READ_ONLY"] = 99] = "READ_ONLY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["RELIABILITY"] = 103] = "RELIABILITY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["REPRESENTS"] = 491] = "REPRESENTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["REQUIRED"] = 105] = "REQUIRED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["RESOLUTION"] = 106] = "RESOLUTION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SCALE"] = 187] = "SCALE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SETPOINT"] = 108] = "SETPOINT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SETTING"] = 162] = "SETTING";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SILENCED"] = 163] = "SILENCED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["START_TIME"] = 142] = "START_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["STOP_TIME"] = 143] = "STOP_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TAGS"] = 486] = "TAGS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TRANSITION"] = 385] = "TRANSITION";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["TRIGGER"] = 205] = "TRIGGER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["UNITS"] = 117] = "UNITS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["USER_NAME"] = 317] = "USER_NAME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["USER_TYPE"] = 318] = "USER_TYPE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["VALUE_SET"] = 191] = "VALUE_SET";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                              PropertyIdentifier22222222[PropertyIdentifier22222222["ZONE_TO"] = 321] = "ZONE_TO";
                              return PropertyIdentifier22222222;
                            })(PropertyIdentifier2222222 || {});
                            var ProtocolLevel2222222 = /* @__PURE__ */ ((ProtocolLevel22222222) => {
                              ProtocolLevel22222222[ProtocolLevel22222222["PHYSICAL"] = 0] = "PHYSICAL";
                              ProtocolLevel22222222[ProtocolLevel22222222["PROTOCOL"] = 1] = "PROTOCOL";
                              ProtocolLevel22222222[ProtocolLevel22222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                              ProtocolLevel22222222[ProtocolLevel22222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                              return ProtocolLevel22222222;
                            })(ProtocolLevel2222222 || {});
                            var Relationship2222222 = /* @__PURE__ */ ((Relationship22222222) => {
                              Relationship22222222[Relationship22222222["UNKNOWN"] = 0] = "UNKNOWN";
                              Relationship22222222[Relationship22222222["DEFAULT"] = 1] = "DEFAULT";
                              Relationship22222222[Relationship22222222["CONTAINS"] = 2] = "CONTAINS";
                              Relationship22222222[Relationship22222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                              Relationship22222222[Relationship22222222["USES"] = 4] = "USES";
                              Relationship22222222[Relationship22222222["USED_BY"] = 5] = "USED_BY";
                              Relationship22222222[Relationship22222222["COMMANDS"] = 6] = "COMMANDS";
                              Relationship22222222[Relationship22222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                              Relationship22222222[Relationship22222222["ADJUSTS"] = 8] = "ADJUSTS";
                              Relationship22222222[Relationship22222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                              Relationship22222222[Relationship22222222["INGRESS"] = 10] = "INGRESS";
                              Relationship22222222[Relationship22222222["EGRESS"] = 11] = "EGRESS";
                              Relationship22222222[Relationship22222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                              Relationship22222222[Relationship22222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                              Relationship22222222[Relationship22222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                              Relationship22222222[Relationship22222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                              Relationship22222222[Relationship22222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                              Relationship22222222[Relationship22222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                              Relationship22222222[Relationship22222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                              Relationship22222222[Relationship22222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                              Relationship22222222[Relationship22222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                              Relationship22222222[Relationship22222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                              Relationship22222222[Relationship22222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                              Relationship22222222[Relationship22222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                              Relationship22222222[Relationship22222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                              Relationship22222222[Relationship22222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                              Relationship22222222[Relationship22222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                              Relationship22222222[Relationship22222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                              Relationship22222222[Relationship22222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                              Relationship22222222[Relationship22222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                              return Relationship22222222;
                            })(Relationship2222222 || {});
                            var Reliability2222222 = /* @__PURE__ */ ((Reliability22222222) => {
                              Reliability22222222[Reliability22222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                              Reliability22222222[Reliability22222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                              Reliability22222222[Reliability22222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                              Reliability22222222[Reliability22222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                              Reliability22222222[Reliability22222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                              Reliability22222222[Reliability22222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                              Reliability22222222[Reliability22222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                              Reliability22222222[Reliability22222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                              Reliability22222222[Reliability22222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                              Reliability22222222[Reliability22222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                              Reliability22222222[Reliability22222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                              Reliability22222222[Reliability22222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                              Reliability22222222[Reliability22222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                              Reliability22222222[Reliability22222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                              Reliability22222222[Reliability22222222["TRIPPED"] = 15] = "TRIPPED";
                              Reliability22222222[Reliability22222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                              Reliability22222222[Reliability22222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                              Reliability22222222[Reliability22222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                              Reliability22222222[Reliability22222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                              Reliability22222222[Reliability22222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                              Reliability22222222[Reliability22222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                              Reliability22222222[Reliability22222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                              Reliability22222222[Reliability22222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                              Reliability22222222[Reliability22222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                              return Reliability22222222;
                            })(Reliability2222222 || {});
                            var RestartReason2222222 = /* @__PURE__ */ ((RestartReason22222222) => {
                              RestartReason22222222[RestartReason22222222["UNKNOWN"] = 0] = "UNKNOWN";
                              RestartReason22222222[RestartReason22222222["COLDSTART"] = 1] = "COLDSTART";
                              RestartReason22222222[RestartReason22222222["WARMSTART"] = 2] = "WARMSTART";
                              RestartReason22222222[RestartReason22222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                              RestartReason22222222[RestartReason22222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                              RestartReason22222222[RestartReason22222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                              RestartReason22222222[RestartReason22222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                              RestartReason22222222[RestartReason22222222["SUSPENDED"] = 7] = "SUSPENDED";
                              RestartReason22222222[RestartReason22222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                              return RestartReason22222222;
                            })(RestartReason2222222 || {});
                            var SecurityLevel2222222 = /* @__PURE__ */ ((SecurityLevel22222222) => {
                              SecurityLevel22222222[SecurityLevel22222222["INCAPABLE"] = 0] = "INCAPABLE";
                              SecurityLevel22222222[SecurityLevel22222222["PLAIN"] = 1] = "PLAIN";
                              SecurityLevel22222222[SecurityLevel22222222["SIGNED"] = 2] = "SIGNED";
                              SecurityLevel22222222[SecurityLevel22222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                              SecurityLevel22222222[SecurityLevel22222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                              SecurityLevel22222222[SecurityLevel22222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                              return SecurityLevel22222222;
                            })(SecurityLevel2222222 || {});
                            var SecurityPolicy2222222 = /* @__PURE__ */ ((SecurityPolicy22222222) => {
                              SecurityPolicy22222222[SecurityPolicy22222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                              SecurityPolicy22222222[SecurityPolicy22222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                              SecurityPolicy22222222[SecurityPolicy22222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                              SecurityPolicy22222222[SecurityPolicy22222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                              return SecurityPolicy22222222;
                            })(SecurityPolicy2222222 || {});
                            var Segmentation2222222 = /* @__PURE__ */ ((Segmentation22222222) => {
                              Segmentation22222222[Segmentation22222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                              Segmentation22222222[Segmentation22222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                              Segmentation22222222[Segmentation22222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                              Segmentation22222222[Segmentation22222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                              return Segmentation22222222;
                            })(Segmentation2222222 || {});
                            var ShedState2222222 = /* @__PURE__ */ ((ShedState22222222) => {
                              ShedState22222222[ShedState22222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                              ShedState22222222[ShedState22222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                              ShedState22222222[ShedState22222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                              ShedState22222222[ShedState22222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                              return ShedState22222222;
                            })(ShedState2222222 || {});
                            var SilencedState2222222 = /* @__PURE__ */ ((SilencedState22222222) => {
                              SilencedState22222222[SilencedState22222222["UNSILENCED"] = 0] = "UNSILENCED";
                              SilencedState22222222[SilencedState22222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                              SilencedState22222222[SilencedState22222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                              SilencedState22222222[SilencedState22222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                              return SilencedState22222222;
                            })(SilencedState2222222 || {});
                            var TimerState2222222 = /* @__PURE__ */ ((TimerState22222222) => {
                              TimerState22222222[TimerState22222222["IDLE"] = 0] = "IDLE";
                              TimerState22222222[TimerState22222222["RUNNING"] = 1] = "RUNNING";
                              TimerState22222222[TimerState22222222["EXPIRED"] = 2] = "EXPIRED";
                              return TimerState22222222;
                            })(TimerState2222222 || {});
                            var TimerTransition2222222 = /* @__PURE__ */ ((TimerTransition22222222) => {
                              TimerTransition22222222[TimerTransition22222222["NONE"] = 0] = "NONE";
                              TimerTransition22222222[TimerTransition22222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                              TimerTransition22222222[TimerTransition22222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                              TimerTransition22222222[TimerTransition22222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                              TimerTransition22222222[TimerTransition22222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                              TimerTransition22222222[TimerTransition22222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                              TimerTransition22222222[TimerTransition22222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                              TimerTransition22222222[TimerTransition22222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                              return TimerTransition22222222;
                            })(TimerTransition2222222 || {});
                            var VTClass2222222 = /* @__PURE__ */ ((VTClass22222222) => {
                              VTClass22222222[VTClass22222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                              VTClass22222222[VTClass22222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                              VTClass22222222[VTClass22222222["DEC_VT52"] = 2] = "DEC_VT52";
                              VTClass22222222[VTClass22222222["DEC_VT100"] = 3] = "DEC_VT100";
                              VTClass22222222[VTClass22222222["DEC_VT220"] = 4] = "DEC_VT220";
                              VTClass22222222[VTClass22222222["HP_700_94"] = 5] = "HP_700_94";
                              VTClass22222222[VTClass22222222["IBM_3130"] = 6] = "IBM_3130";
                              return VTClass22222222;
                            })(VTClass2222222 || {});
                            var WriteStatus2222222 = /* @__PURE__ */ ((WriteStatus22222222) => {
                              WriteStatus22222222[WriteStatus22222222["IDLE"] = 0] = "IDLE";
                              WriteStatus22222222[WriteStatus22222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                              WriteStatus22222222[WriteStatus22222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                              WriteStatus22222222[WriteStatus22222222["FAILED"] = 3] = "FAILED";
                              return WriteStatus22222222;
                            })(WriteStatus2222222 || {});
                            var DaysOfWeek2222222 = /* @__PURE__ */ ((DaysOfWeek22222222) => {
                              DaysOfWeek22222222[DaysOfWeek22222222["MONDAY"] = 0] = "MONDAY";
                              DaysOfWeek22222222[DaysOfWeek22222222["TUESDAY"] = 1] = "TUESDAY";
                              DaysOfWeek22222222[DaysOfWeek22222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                              DaysOfWeek22222222[DaysOfWeek22222222["THURSDAY"] = 3] = "THURSDAY";
                              DaysOfWeek22222222[DaysOfWeek22222222["FRIDAY"] = 4] = "FRIDAY";
                              DaysOfWeek22222222[DaysOfWeek22222222["SATURDAY"] = 5] = "SATURDAY";
                              DaysOfWeek22222222[DaysOfWeek22222222["SUNDAY"] = 6] = "SUNDAY";
                              return DaysOfWeek22222222;
                            })(DaysOfWeek2222222 || {});
                            var EventTransitionBits2222222 = /* @__PURE__ */ ((EventTransitionBits22222222) => {
                              EventTransitionBits22222222[EventTransitionBits22222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                              EventTransitionBits22222222[EventTransitionBits22222222["TO_FAULT"] = 1] = "TO_FAULT";
                              EventTransitionBits22222222[EventTransitionBits22222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                              return EventTransitionBits22222222;
                            })(EventTransitionBits2222222 || {});
                            var LimitEnable2222222 = /* @__PURE__ */ ((LimitEnable22222222) => {
                              LimitEnable22222222[LimitEnable22222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                              LimitEnable22222222[LimitEnable22222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                              return LimitEnable22222222;
                            })(LimitEnable2222222 || {});
                            var LogStatus2222222 = /* @__PURE__ */ ((LogStatus22222222) => {
                              LogStatus22222222[LogStatus22222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                              LogStatus22222222[LogStatus22222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                              LogStatus22222222[LogStatus22222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                              return LogStatus22222222;
                            })(LogStatus2222222 || {});
                            var ObjectTypesSupported2222222 = /* @__PURE__ */ ((ObjectTypesSupported22222222) => {
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["CALENDAR"] = 6] = "CALENDAR";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["COMMAND"] = 7] = "COMMAND";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["DEVICE"] = 8] = "DEVICE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["FILE"] = 10] = "FILE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["GROUP"] = 11] = "GROUP";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["LOOP"] = 12] = "LOOP";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["PROGRAM"] = 16] = "PROGRAM";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["SCHEDULE"] = 17] = "SCHEDULE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["AVERAGING"] = 18] = "AVERAGING";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["TREND_LOG"] = 20] = "TREND_LOG";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["TIMER"] = 31] = "TIMER";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["CHANNEL"] = 53] = "CHANNEL";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["ESCALATOR"] = 58] = "ESCALATOR";
                              ObjectTypesSupported22222222[ObjectTypesSupported22222222["LIFT"] = 59] = "LIFT";
                              return ObjectTypesSupported22222222;
                            })(ObjectTypesSupported2222222 || {});
                            var ResultFlags2222222 = /* @__PURE__ */ ((ResultFlags22222222) => {
                              ResultFlags22222222[ResultFlags22222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                              ResultFlags22222222[ResultFlags22222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                              ResultFlags22222222[ResultFlags22222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                              return ResultFlags22222222;
                            })(ResultFlags2222222 || {});
                            var ServicesSupported2222222 = /* @__PURE__ */ ((ServicesSupported22222222) => {
                              ServicesSupported22222222[ServicesSupported22222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                              ServicesSupported22222222[ServicesSupported22222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                              ServicesSupported22222222[ServicesSupported22222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                              ServicesSupported22222222[ServicesSupported22222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                              ServicesSupported22222222[ServicesSupported22222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                              ServicesSupported22222222[ServicesSupported22222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                              ServicesSupported22222222[ServicesSupported22222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                              ServicesSupported22222222[ServicesSupported22222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                              ServicesSupported22222222[ServicesSupported22222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                              ServicesSupported22222222[ServicesSupported22222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                              ServicesSupported22222222[ServicesSupported22222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                              ServicesSupported22222222[ServicesSupported22222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                              ServicesSupported22222222[ServicesSupported22222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                              ServicesSupported22222222[ServicesSupported22222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                              ServicesSupported22222222[ServicesSupported22222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                              ServicesSupported22222222[ServicesSupported22222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                              ServicesSupported22222222[ServicesSupported22222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                              ServicesSupported22222222[ServicesSupported22222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                              ServicesSupported22222222[ServicesSupported22222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                              ServicesSupported22222222[ServicesSupported22222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                              ServicesSupported22222222[ServicesSupported22222222["VT_OPEN"] = 21] = "VT_OPEN";
                              ServicesSupported22222222[ServicesSupported22222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                              ServicesSupported22222222[ServicesSupported22222222["VT_DATA"] = 23] = "VT_DATA";
                              ServicesSupported22222222[ServicesSupported22222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                              ServicesSupported22222222[ServicesSupported22222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                              ServicesSupported22222222[ServicesSupported22222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                              ServicesSupported22222222[ServicesSupported22222222["I_AM"] = 26] = "I_AM";
                              ServicesSupported22222222[ServicesSupported22222222["I_HAVE"] = 27] = "I_HAVE";
                              ServicesSupported22222222[ServicesSupported22222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                              ServicesSupported22222222[ServicesSupported22222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                              ServicesSupported22222222[ServicesSupported22222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                              ServicesSupported22222222[ServicesSupported22222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                              ServicesSupported22222222[ServicesSupported22222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                              ServicesSupported22222222[ServicesSupported22222222["WHO_HAS"] = 33] = "WHO_HAS";
                              ServicesSupported22222222[ServicesSupported22222222["WHO_IS"] = 34] = "WHO_IS";
                              ServicesSupported22222222[ServicesSupported22222222["READ_RANGE"] = 35] = "READ_RANGE";
                              ServicesSupported22222222[ServicesSupported22222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                              ServicesSupported22222222[ServicesSupported22222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                              ServicesSupported22222222[ServicesSupported22222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                              ServicesSupported22222222[ServicesSupported22222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                              ServicesSupported22222222[ServicesSupported22222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                              ServicesSupported22222222[ServicesSupported22222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                              ServicesSupported22222222[ServicesSupported22222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                              ServicesSupported22222222[ServicesSupported22222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                              return ServicesSupported22222222;
                            })(ServicesSupported2222222 || {});
                            var StatusFlags2222222 = /* @__PURE__ */ ((StatusFlags22222222) => {
                              StatusFlags22222222[StatusFlags22222222["IN_ALARM"] = 0] = "IN_ALARM";
                              StatusFlags22222222[StatusFlags22222222["FAULT"] = 1] = "FAULT";
                              StatusFlags22222222[StatusFlags22222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                              StatusFlags22222222[StatusFlags22222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                              return StatusFlags22222222;
                            })(StatusFlags2222222 || {});
                            var ApplicationTag2222222 = /* @__PURE__ */ ((ApplicationTag22222222) => {
                              ApplicationTag22222222[ApplicationTag22222222["NULL"] = 0] = "NULL";
                              ApplicationTag22222222[ApplicationTag22222222["BOOLEAN"] = 1] = "BOOLEAN";
                              ApplicationTag22222222[ApplicationTag22222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                              ApplicationTag22222222[ApplicationTag22222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                              ApplicationTag22222222[ApplicationTag22222222["REAL"] = 4] = "REAL";
                              ApplicationTag22222222[ApplicationTag22222222["DOUBLE"] = 5] = "DOUBLE";
                              ApplicationTag22222222[ApplicationTag22222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                              ApplicationTag22222222[ApplicationTag22222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                              ApplicationTag22222222[ApplicationTag22222222["BIT_STRING"] = 8] = "BIT_STRING";
                              ApplicationTag22222222[ApplicationTag22222222["ENUMERATED"] = 9] = "ENUMERATED";
                              ApplicationTag22222222[ApplicationTag22222222["DATE"] = 10] = "DATE";
                              ApplicationTag22222222[ApplicationTag22222222["TIME"] = 11] = "TIME";
                              ApplicationTag22222222[ApplicationTag22222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                              ApplicationTag22222222[ApplicationTag22222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                              ApplicationTag22222222[ApplicationTag22222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                              ApplicationTag22222222[ApplicationTag22222222["DATERANGE"] = 102] = "DATERANGE";
                              ApplicationTag22222222[ApplicationTag22222222["DATETIME"] = 103] = "DATETIME";
                              ApplicationTag22222222[ApplicationTag22222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                              ApplicationTag22222222[ApplicationTag22222222["ERROR"] = 105] = "ERROR";
                              ApplicationTag22222222[ApplicationTag22222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                              ApplicationTag22222222[ApplicationTag22222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                              ApplicationTag22222222[ApplicationTag22222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                              ApplicationTag22222222[ApplicationTag22222222["DESTINATION"] = 109] = "DESTINATION";
                              ApplicationTag22222222[ApplicationTag22222222["RECIPIENT"] = 110] = "RECIPIENT";
                              ApplicationTag22222222[ApplicationTag22222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                              ApplicationTag22222222[ApplicationTag22222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                              ApplicationTag22222222[ApplicationTag22222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                              ApplicationTag22222222[ApplicationTag22222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                              ApplicationTag22222222[ApplicationTag22222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                              ApplicationTag22222222[ApplicationTag22222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                              ApplicationTag22222222[ApplicationTag22222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                              ApplicationTag22222222[ApplicationTag22222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                              ApplicationTag22222222[ApplicationTag22222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                              ApplicationTag22222222[ApplicationTag22222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                              return ApplicationTag22222222;
                            })(ApplicationTag2222222 || {});
                            var ApplicationTagName2222222 = invertEnum2222222(
                              ApplicationTag2222222
                            );
                            var BvlcResultFormat2222222 = /* @__PURE__ */ ((BvlcResultFormat22222222) => {
                              BvlcResultFormat22222222[BvlcResultFormat22222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                              BvlcResultFormat22222222[BvlcResultFormat22222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                              BvlcResultFormat22222222[BvlcResultFormat22222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                              BvlcResultFormat22222222[BvlcResultFormat22222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                              BvlcResultFormat22222222[BvlcResultFormat22222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                              BvlcResultFormat22222222[BvlcResultFormat22222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                              BvlcResultFormat22222222[BvlcResultFormat22222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                              return BvlcResultFormat22222222;
                            })(BvlcResultFormat2222222 || {});
                            var BvlcResultPurpose2222222 = /* @__PURE__ */ ((BvlcResultPurpose22222222) => {
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                              BvlcResultPurpose22222222[BvlcResultPurpose22222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                              return BvlcResultPurpose22222222;
                            })(BvlcResultPurpose2222222 || {});
                            var CharacterStringEncoding2222222 = /* @__PURE__ */ ((CharacterStringEncoding22222222) => {
                              CharacterStringEncoding22222222[CharacterStringEncoding22222222["UTF_8"] = 0] = "UTF_8";
                              CharacterStringEncoding22222222[CharacterStringEncoding22222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                              CharacterStringEncoding22222222[CharacterStringEncoding22222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                              CharacterStringEncoding22222222[CharacterStringEncoding22222222["UCS_4"] = 3] = "UCS_4";
                              CharacterStringEncoding22222222[CharacterStringEncoding22222222["UCS_2"] = 4] = "UCS_2";
                              CharacterStringEncoding22222222[CharacterStringEncoding22222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                              return CharacterStringEncoding22222222;
                            })(CharacterStringEncoding2222222 || {});
                            var CovType2222222 = /* @__PURE__ */ ((CovType22222222) => {
                              CovType22222222[CovType22222222["REAL"] = 0] = "REAL";
                              CovType22222222[CovType22222222["BIT_STRING"] = 1] = "BIT_STRING";
                              return CovType22222222;
                            })(CovType2222222 || {});
                            var EnableDisable2222222 = /* @__PURE__ */ ((EnableDisable22222222) => {
                              EnableDisable22222222[EnableDisable22222222["ENABLE"] = 0] = "ENABLE";
                              EnableDisable22222222[EnableDisable22222222["DISABLE"] = 1] = "DISABLE";
                              EnableDisable22222222[EnableDisable22222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                              return EnableDisable22222222;
                            })(EnableDisable2222222 || {});
                            var MaxApduLengthAccepted2222222 = /* @__PURE__ */ ((MaxApduLengthAccepted22222222) => {
                              MaxApduLengthAccepted22222222[MaxApduLengthAccepted22222222["OCTETS_50"] = 0] = "OCTETS_50";
                              MaxApduLengthAccepted22222222[MaxApduLengthAccepted22222222["OCTETS_128"] = 1] = "OCTETS_128";
                              MaxApduLengthAccepted22222222[MaxApduLengthAccepted22222222["OCTETS_206"] = 2] = "OCTETS_206";
                              MaxApduLengthAccepted22222222[MaxApduLengthAccepted22222222["OCTETS_480"] = 3] = "OCTETS_480";
                              MaxApduLengthAccepted22222222[MaxApduLengthAccepted22222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                              MaxApduLengthAccepted22222222[MaxApduLengthAccepted22222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                              return MaxApduLengthAccepted22222222;
                            })(MaxApduLengthAccepted2222222 || {});
                            var MaxSegmentsAccepted2222222 = /* @__PURE__ */ ((MaxSegmentsAccepted22222222) => {
                              MaxSegmentsAccepted22222222[MaxSegmentsAccepted22222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                              MaxSegmentsAccepted22222222[MaxSegmentsAccepted22222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                              MaxSegmentsAccepted22222222[MaxSegmentsAccepted22222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                              MaxSegmentsAccepted22222222[MaxSegmentsAccepted22222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                              MaxSegmentsAccepted22222222[MaxSegmentsAccepted22222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                              MaxSegmentsAccepted22222222[MaxSegmentsAccepted22222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                              MaxSegmentsAccepted22222222[MaxSegmentsAccepted22222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                              MaxSegmentsAccepted22222222[MaxSegmentsAccepted22222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                              return MaxSegmentsAccepted22222222;
                            })(MaxSegmentsAccepted2222222 || {});
                            var NetworkLayerMessageType2222222 = /* @__PURE__ */ ((NetworkLayerMessageType22222222) => {
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                              NetworkLayerMessageType22222222[NetworkLayerMessageType22222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                              return NetworkLayerMessageType22222222;
                            })(NetworkLayerMessageType2222222 || {});
                            var NpduControlBit2222222 = /* @__PURE__ */ ((NpduControlBit22222222) => {
                              NpduControlBit22222222[NpduControlBit22222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                              NpduControlBit22222222[NpduControlBit22222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                              NpduControlBit22222222[NpduControlBit22222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                              NpduControlBit22222222[NpduControlBit22222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                              return NpduControlBit22222222;
                            })(NpduControlBit2222222 || {});
                            var NpduControlPriority2222222 = /* @__PURE__ */ ((NpduControlPriority22222222) => {
                              NpduControlPriority22222222[NpduControlPriority22222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                              NpduControlPriority22222222[NpduControlPriority22222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                              NpduControlPriority22222222[NpduControlPriority22222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                              NpduControlPriority22222222[NpduControlPriority22222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                              return NpduControlPriority22222222;
                            })(NpduControlPriority2222222 || {});
                            var PduConReqBit2222222 = /* @__PURE__ */ ((PduConReqBit22222222) => {
                              PduConReqBit22222222[PduConReqBit22222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                              PduConReqBit22222222[PduConReqBit22222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                              PduConReqBit22222222[PduConReqBit22222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                              return PduConReqBit22222222;
                            })(PduConReqBit2222222 || {});
                            var PduSegAckBit2222222 = /* @__PURE__ */ ((PduSegAckBit22222222) => {
                              PduSegAckBit22222222[PduSegAckBit22222222["SERVER"] = 1] = "SERVER";
                              PduSegAckBit22222222[PduSegAckBit22222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                              return PduSegAckBit22222222;
                            })(PduSegAckBit2222222 || {});
                            var PduType2222222 = /* @__PURE__ */ ((PduType22222222) => {
                              PduType22222222[PduType22222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                              PduType22222222[PduType22222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                              PduType22222222[PduType22222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                              PduType22222222[PduType22222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                              PduType22222222[PduType22222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                              PduType22222222[PduType22222222["ERROR"] = 80] = "ERROR";
                              PduType22222222[PduType22222222["REJECT"] = 96] = "REJECT";
                              PduType22222222[PduType22222222["ABORT"] = 112] = "ABORT";
                              return PduType22222222;
                            })(PduType2222222 || {});
                            var PropertyStates2222222 = /* @__PURE__ */ ((PropertyStates22222222) => {
                              PropertyStates22222222[PropertyStates22222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                              PropertyStates22222222[PropertyStates22222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                              PropertyStates22222222[PropertyStates22222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                              PropertyStates22222222[PropertyStates22222222["POLARITY"] = 3] = "POLARITY";
                              PropertyStates22222222[PropertyStates22222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                              PropertyStates22222222[PropertyStates22222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                              PropertyStates22222222[PropertyStates22222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                              PropertyStates22222222[PropertyStates22222222["RELIABILITY"] = 7] = "RELIABILITY";
                              PropertyStates22222222[PropertyStates22222222["STATE"] = 8] = "STATE";
                              PropertyStates22222222[PropertyStates22222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                              PropertyStates22222222[PropertyStates22222222["UNITS"] = 10] = "UNITS";
                              PropertyStates22222222[PropertyStates22222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                              PropertyStates22222222[PropertyStates22222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                              PropertyStates22222222[PropertyStates22222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                              PropertyStates22222222[PropertyStates22222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                              PropertyStates22222222[PropertyStates22222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                              PropertyStates22222222[PropertyStates22222222["ACTION"] = 16] = "ACTION";
                              PropertyStates22222222[PropertyStates22222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                              PropertyStates22222222[PropertyStates22222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                              PropertyStates22222222[PropertyStates22222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                              PropertyStates22222222[PropertyStates22222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                              PropertyStates22222222[PropertyStates22222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                              PropertyStates22222222[PropertyStates22222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                              PropertyStates22222222[PropertyStates22222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                              PropertyStates22222222[PropertyStates22222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                              PropertyStates22222222[PropertyStates22222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                              PropertyStates22222222[PropertyStates22222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                              PropertyStates22222222[PropertyStates22222222["SHED_STATE"] = 27] = "SHED_STATE";
                              PropertyStates22222222[PropertyStates22222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                              PropertyStates22222222[PropertyStates22222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                              PropertyStates22222222[PropertyStates22222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                              PropertyStates22222222[PropertyStates22222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                              PropertyStates22222222[PropertyStates22222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                              PropertyStates22222222[PropertyStates22222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                              PropertyStates22222222[PropertyStates22222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                              PropertyStates22222222[PropertyStates22222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                              PropertyStates22222222[PropertyStates22222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                              PropertyStates22222222[PropertyStates22222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                              PropertyStates22222222[PropertyStates22222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                              PropertyStates22222222[PropertyStates22222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                              PropertyStates22222222[PropertyStates22222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                              PropertyStates22222222[PropertyStates22222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                              PropertyStates22222222[PropertyStates22222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                              PropertyStates22222222[PropertyStates22222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                              PropertyStates22222222[PropertyStates22222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                              PropertyStates22222222[PropertyStates22222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                              PropertyStates22222222[PropertyStates22222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                              PropertyStates22222222[PropertyStates22222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                              PropertyStates22222222[PropertyStates22222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                              PropertyStates22222222[PropertyStates22222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                              PropertyStates22222222[PropertyStates22222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                              PropertyStates22222222[PropertyStates22222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                              PropertyStates22222222[PropertyStates22222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                              PropertyStates22222222[PropertyStates22222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                              PropertyStates22222222[PropertyStates22222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                              PropertyStates22222222[PropertyStates22222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                              PropertyStates22222222[PropertyStates22222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                              PropertyStates22222222[PropertyStates22222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                              return PropertyStates22222222;
                            })(PropertyStates2222222 || {});
                            var ReadRangeType2222222 = /* @__PURE__ */ ((ReadRangeType22222222) => {
                              ReadRangeType22222222[ReadRangeType22222222["BY_POSITION"] = 0] = "BY_POSITION";
                              ReadRangeType22222222[ReadRangeType22222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                              ReadRangeType22222222[ReadRangeType22222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                              return ReadRangeType22222222;
                            })(ReadRangeType2222222 || {});
                            var ReinitializedState2222222 = /* @__PURE__ */ ((ReinitializedState22222222) => {
                              ReinitializedState22222222[ReinitializedState22222222["COLDSTART"] = 0] = "COLDSTART";
                              ReinitializedState22222222[ReinitializedState22222222["WARMSTART"] = 1] = "WARMSTART";
                              ReinitializedState22222222[ReinitializedState22222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                              ReinitializedState22222222[ReinitializedState22222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                              ReinitializedState22222222[ReinitializedState22222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                              ReinitializedState22222222[ReinitializedState22222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                              ReinitializedState22222222[ReinitializedState22222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                              ReinitializedState22222222[ReinitializedState22222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                              return ReinitializedState22222222;
                            })(ReinitializedState2222222 || {});
                            var TimeStamp2222222 = /* @__PURE__ */ ((TimeStamp22222222) => {
                              TimeStamp22222222[TimeStamp22222222["TIME"] = 0] = "TIME";
                              TimeStamp22222222[TimeStamp22222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                              TimeStamp22222222[TimeStamp22222222["DATETIME"] = 2] = "DATETIME";
                              return TimeStamp22222222;
                            })(TimeStamp2222222 || {});
                            var import_events22222222 = __toESM2222222(require("events"));
                            var import_debug32222222 = __toESM2222222(require("debug"));
                            var import_dgram2222222 = require("dgram");
                            var import_events3222222 = __toESM2222222(require("events"));
                            var import_debug22222222 = __toESM2222222(require("debug"));
                            var EventEmitter3222222 = import_events3222222.default.EventEmitter;
                            var debug22222222 = (0, import_debug22222222.default)("bacnet:client:debug");
                            var DEFAULT_BACNET_PORT3222222 = 47808;
                            var Transport2222222 = class extends EventEmitter3222222 {
                              constructor(settings) {
                                super();
                                this._lastSendMessages = {};
                                this._settings = settings;
                                this._server = (0, import_dgram2222222.createSocket)({
                                  type: "udp4",
                                  reuseAddr: settings.reuseAddr
                                });
                                this._server.on("message", (msg, rinfo) => {
                                  if (this.ownAddress.port === rinfo.port) {
                                    for (let [messageKey, earlierSentBuffer] of Object.entries(
                                      this._lastSendMessages
                                    )) {
                                      if (msg.equals(earlierSentBuffer)) {
                                        debug22222222(
                                          `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                        );
                                        return;
                                      }
                                    }
                                  }
                                  debug22222222(
                                    `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                      "hex"
                                    )}`
                                  );
                                  this.emit(
                                    "message",
                                    msg,
                                    rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT3222222 ? "" : ":" + rinfo.port)
                                  );
                                });
                                this._server.on("listening", () => {
                                  this.ownAddress = this._server.address();
                                  debug22222222(
                                    `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                                  );
                                  this.emit("listening", this.ownAddress);
                                });
                                this._server.on("error", (err) => {
                                  debug22222222("transport error", err.message);
                                  this.emit("error", err);
                                });
                                this._server.on("close", () => {
                                  debug22222222("transport closed");
                                  this.emit("close");
                                });
                              }
                              getBroadcastAddress() {
                                return this._settings.broadcastAddress;
                              }
                              getMaxPayload() {
                                return 1482;
                              }
                              send(buffer, offset, receiver) {
                                if (!receiver) {
                                  receiver = this.getBroadcastAddress();
                                  const dataToSend = Buffer.alloc(offset);
                                  const hrTime = process.hrtime();
                                  const messageKey = hrTime[0] * 1e9 + hrTime[1];
                                  buffer.copy(dataToSend, 0, 0, offset);
                                  this._lastSendMessages[messageKey] = dataToSend;
                                  setTimeout(() => {
                                    delete this._lastSendMessages[messageKey];
                                  }, 1e4);
                                }
                                const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                                const [address, port] = receiverAddress.split(":");
                                debug22222222(
                                  "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                                );
                                this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT3222222, address);
                              }
                              open() {
                                this._server.bind(this._settings.port, this._settings.interface, () => {
                                  this._server.setBroadcast(true);
                                });
                              }
                              close() {
                                this._server.close();
                              }
                            };
                            var services_exports2222222 = {};
                            __export2222222(services_exports2222222, {
                              addListElement: () => add_list_element_exports2222222,
                              alarmAcknowledge: () => alarm_acknowledge_exports2222222,
                              alarmSummary: () => alarm_summary_exports2222222,
                              atomicReadFile: () => atomic_read_file_exports2222222,
                              atomicWriteFile: () => atomic_write_file_exports2222222,
                              covNotify: () => cov_notify_exports2222222,
                              covNotifyUnconfirmed: () => cov_notify_exports2222222,
                              createObject: () => create_object_exports2222222,
                              deleteObject: () => delete_object_exports2222222,
                              deviceCommunicationControl: () => device_communication_control_exports2222222,
                              error: () => error_exports2222222,
                              eventInformation: () => event_information_exports2222222,
                              eventNotifyData: () => event_notify_data_exports2222222,
                              getEnrollmentSummary: () => get_enrollment_summary_exports2222222,
                              getEventInformation: () => get_event_information_exports2222222,
                              iAm: () => i_am_exports2222222,
                              iHave: () => i_have_exports2222222,
                              lifeSafetyOperation: () => life_safety_operation_exports2222222,
                              privateTransfer: () => private_transfer_exports2222222,
                              readProperty: () => read_property_exports2222222,
                              readPropertyMultiple: () => read_property_multiple_exports2222222,
                              readRange: () => read_range_exports2222222,
                              registerForeignDevice: () => register_foreign_device_exports2222222,
                              reinitializeDevice: () => reinitialize_device_exports2222222,
                              subscribeCov: () => subscribe_cov_exports2222222,
                              subscribeProperty: () => subscribe_property_exports2222222,
                              timeSync: () => time_sync_exports2222222,
                              timeSyncUTC: () => time_sync_exports2222222,
                              whoHas: () => who_has_exports2222222,
                              whoIs: () => who_is_exports2222222,
                              writeProperty: () => write_property_exports2222222,
                              writePropertyMultiple: () => write_property_multiple_exports2222222
                            });
                            var add_list_element_exports2222222 = {};
                            __export2222222(add_list_element_exports2222222, {
                              decode: () => decode33222222,
                              encode: () => encode33222222
                            });
                            var import_iconv_lite2222222 = __toESM2222222(require("iconv-lite"));
                            var enums_default2222222 = enum_exports2222222;
                            var START_YEAR2222222 = 1900;
                            var MAX_YEARS2222222 = 256;
                            var getBuffer2222222 = () => {
                              return {
                                buffer: Buffer.alloc(1472),
                                offset: 0
                              };
                            };
                            var getSignedLength2222222 = (value) => {
                              if (value >= -128 && value < 128)
                                return 1;
                              else if (value >= -32768 && value < 32768)
                                return 2;
                              else if (value > -8388608 && value < 8388608)
                                return 3;
                              else
                                return 4;
                            };
                            var getUnsignedLength2222222 = (value) => {
                              if (value < 256)
                                return 1;
                              else if (value < 65536)
                                return 2;
                              else if (value < 16777216)
                                return 3;
                              else
                                return 4;
                            };
                            var getEncodingType2222222 = (encoding, decodingBuffer, decodingOffset) => {
                              switch (encoding) {
                                case enums_default2222222.CharacterStringEncoding.UCS_2:
                                  if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                    return "ucs2";
                                  }
                                  return "UTF-16BE";
                                case enums_default2222222.CharacterStringEncoding.ISO_8859_1:
                                  return "latin1";
                                case enums_default2222222.CharacterStringEncoding.MICROSOFT_DBCS:
                                  return "cp850";
                                case enums_default2222222.CharacterStringEncoding.JIS_X_0208:
                                  return "Shift_JIS";
                                default:
                                  return "utf8";
                              }
                            };
                            var encodeUnsigned2222222 = (buffer, value, length) => {
                              buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                              buffer.offset += length;
                            };
                            var encodeBacnetUnsigned2222222 = (buffer, value) => {
                              encodeUnsigned2222222(buffer, value, getUnsignedLength2222222(value));
                            };
                            var encodeSigned2222222 = (buffer, value, length) => {
                              buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                              buffer.offset += length;
                            };
                            var encodeBacnetSigned2222222 = (buffer, value) => {
                              encodeSigned2222222(buffer, value, getSignedLength2222222(value));
                            };
                            var encodeBacnetReal2222222 = (buffer, value) => {
                              buffer.buffer.writeFloatBE(value, buffer.offset, true);
                              buffer.offset += 4;
                            };
                            var encodeBacnetDouble2222222 = (buffer, value) => {
                              buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                              buffer.offset += 8;
                            };
                            var decodeUnsigned2222222 = (buffer, offset, length) => {
                              if (length === 0) {
                                return {
                                  len: 0,
                                  value: 0
                                };
                              }
                              return {
                                len: length,
                                //@ts-ignore
                                value: buffer.readUIntBE(offset, length)
                              };
                            };
                            var decodeEnumerated2222222 = (buffer, offset, length) => {
                              return decodeUnsigned2222222(buffer, offset, length);
                            };
                            var encodeBacnetObjectId2222222 = (buffer, objectType, instance) => {
                              const value = ((objectType & enums_default2222222.ASN1_MAX_OBJECT) << enums_default2222222.ASN1_INSTANCE_BITS | instance & enums_default2222222.ASN1_MAX_INSTANCE) >>> 0;
                              encodeUnsigned2222222(buffer, value, 4);
                            };
                            var encodeTag2222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                              let len = 1;
                              const tmp = new Array(3);
                              tmp[0] = 0;
                              if (contextSpecific) {
                                tmp[0] |= 8;
                              }
                              if (tagNumber <= 14) {
                                tmp[0] |= tagNumber << 4;
                              } else {
                                tmp[0] |= 240;
                                tmp[1] = tagNumber;
                                len++;
                              }
                              if (lenValueType <= 4) {
                                tmp[0] |= lenValueType;
                                Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                buffer.offset += len;
                              } else {
                                tmp[0] |= 5;
                                if (lenValueType <= 253) {
                                  tmp[len++] = lenValueType;
                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                  buffer.offset += len;
                                } else if (lenValueType <= 65535) {
                                  tmp[len++] = 254;
                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                  buffer.offset += len;
                                  encodeUnsigned2222222(buffer, lenValueType, 2);
                                } else {
                                  tmp[len++] = 255;
                                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                                  buffer.offset += len;
                                  encodeUnsigned2222222(buffer, lenValueType, 4);
                                }
                              }
                            };
                            var encodeBacnetEnumerated2222222 = (buffer, value) => {
                              encodeBacnetUnsigned2222222(buffer, value);
                            };
                            var isExtendedTagNumber2222222 = (x) => {
                              return (x & 240) === 240;
                            };
                            var isExtendedValue2222222 = (x) => {
                              return (x & 7) === 5;
                            };
                            var isContextSpecific2222222 = (x) => {
                              return (x & 8) === 8;
                            };
                            var isOpeningTag2222222 = (x) => {
                              return (x & 7) === 6;
                            };
                            var isClosingTag2222222 = (x) => {
                              return (x & 7) === 7;
                            };
                            var encodeContextReal2222222 = (buffer, tagNumber, value) => {
                              encodeTag2222222(buffer, tagNumber, true, 4);
                              encodeBacnetReal2222222(buffer, value);
                            };
                            var encodeContextUnsigned2222222 = (buffer, tagNumber, value) => {
                              encodeTag2222222(buffer, tagNumber, true, getUnsignedLength2222222(value));
                              encodeBacnetUnsigned2222222(buffer, value);
                            };
                            var encodeContextEnumerated2222222 = (buffer, tagNumber, value) => {
                              encodeContextUnsigned2222222(buffer, tagNumber, value);
                            };
                            var encodeOctetString2222222 = (buffer, octetString, octetOffset, octetCount) => {
                              if (octetString) {
                                for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                                  buffer.buffer[buffer.offset++] = octetString[i];
                                }
                              }
                            };
                            var encodeApplicationOctetString2222222 = (buffer, octetString, octetOffset, octetCount) => {
                              encodeTag2222222(buffer, enums_default2222222.ApplicationTag.OCTET_STRING, false, octetCount);
                              encodeOctetString2222222(buffer, octetString, octetOffset, octetCount);
                            };
                            var encodeApplicationNull2222222 = (buffer) => {
                              buffer.buffer[buffer.offset++] = enums_default2222222.ApplicationTag.NULL;
                            };
                            var encodeApplicationBoolean2222222 = (buffer, booleanValue) => {
                              encodeTag2222222(buffer, enums_default2222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                            };
                            var encodeApplicationReal2222222 = (buffer, value) => {
                              encodeTag2222222(buffer, enums_default2222222.ApplicationTag.REAL, false, 4);
                              encodeBacnetReal2222222(buffer, value);
                            };
                            var encodeApplicationDouble2222222 = (buffer, value) => {
                              encodeTag2222222(buffer, enums_default2222222.ApplicationTag.DOUBLE, false, 8);
                              encodeBacnetDouble2222222(buffer, value);
                            };
                            var bitstringBytesUsed2222222 = (bitString) => {
                              let len = 0;
                              if (bitString.bitsUsed > 0) {
                                const lastBit = bitString.bitsUsed - 1;
                                const usedBytes = lastBit / 8 + 1;
                                len = Math.floor(usedBytes);
                              }
                              return len;
                            };
                            var encodeApplicationObjectId2222222 = (buffer, objectType, instance) => {
                              const tmp = getBuffer2222222();
                              encodeBacnetObjectId2222222(tmp, objectType, instance);
                              encodeTag2222222(buffer, enums_default2222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                              buffer.offset += tmp.offset;
                            };
                            var encodeApplicationUnsigned2222222 = (buffer, value) => {
                              const tmp = getBuffer2222222();
                              encodeBacnetUnsigned2222222(tmp, value);
                              encodeTag2222222(buffer, enums_default2222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                              buffer.offset += tmp.offset;
                            };
                            var encodeApplicationEnumerated2222222 = (buffer, value) => {
                              const tmp = getBuffer2222222();
                              encodeBacnetEnumerated2222222(tmp, value);
                              encodeTag2222222(buffer, enums_default2222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                              buffer.offset += tmp.offset;
                            };
                            var encodeApplicationSigned2222222 = (buffer, value) => {
                              const tmp = getBuffer2222222();
                              encodeBacnetSigned2222222(tmp, value);
                              encodeTag2222222(buffer, enums_default2222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                              buffer.offset += tmp.offset;
                            };
                            var byteReverseBits2222222 = (inByte) => {
                              let outByte = 0;
                              if ((inByte & 1) > 0) {
                                outByte |= 128;
                              }
                              if ((inByte & 2) > 0) {
                                outByte |= 64;
                              }
                              if ((inByte & 4) > 0) {
                                outByte |= 32;
                              }
                              if ((inByte & 8) > 0) {
                                outByte |= 16;
                              }
                              if ((inByte & 16) > 0) {
                                outByte |= 8;
                              }
                              if ((inByte & 32) > 0) {
                                outByte |= 4;
                              }
                              if ((inByte & 64) > 0) {
                                outByte |= 2;
                              }
                              if ((inByte & 128) > 0) {
                                outByte |= 1;
                              }
                              return outByte;
                            };
                            var bitstringOctet2222222 = (bitString, octetIndex) => {
                              let octet = 0;
                              if (bitString.value && octetIndex < enums_default2222222.ASN1_MAX_BITSTRING_BYTES) {
                                octet = bitString.value[octetIndex];
                              }
                              return octet;
                            };
                            var encodeBitstring2222222 = (buffer, bitString) => {
                              if (bitString.bitsUsed === 0) {
                                buffer.buffer[buffer.offset++] = 0;
                              } else {
                                const usedBytes = bitstringBytesUsed2222222(bitString);
                                const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                                buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                                for (let i = 0; i < usedBytes; i++) {
                                  buffer.buffer[buffer.offset++] = byteReverseBits2222222(
                                    bitstringOctet2222222(bitString, i)
                                  );
                                }
                              }
                            };
                            var encodeApplicationBitstring2222222 = (buffer, bitString) => {
                              let bitStringEncodedLength = 1;
                              bitStringEncodedLength += bitstringBytesUsed2222222(bitString);
                              encodeTag2222222(
                                buffer,
                                enums_default2222222.ApplicationTag.BIT_STRING,
                                false,
                                bitStringEncodedLength
                              );
                              encodeBitstring2222222(buffer, bitString);
                            };
                            var encodeBacnetDate2222222 = (buffer, value) => {
                              if (value === new Date(1, 1, 1)) {
                                buffer.buffer[buffer.offset++] = 255;
                                buffer.buffer[buffer.offset++] = 255;
                                buffer.buffer[buffer.offset++] = 255;
                                buffer.buffer[buffer.offset++] = 255;
                                return;
                              }
                              if (value.getFullYear() >= START_YEAR2222222) {
                                buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR2222222;
                              } else if (value.getFullYear() < MAX_YEARS2222222) {
                                buffer.buffer[buffer.offset++] = value.getFullYear();
                              } else {
                                throw new Error("invaide year: " + value.getFullYear());
                              }
                              buffer.buffer[buffer.offset++] = value.getMonth();
                              buffer.buffer[buffer.offset++] = value.getDate();
                              buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                            };
                            var encodeApplicationDate2222222 = (buffer, value) => {
                              encodeTag2222222(buffer, enums_default2222222.ApplicationTag.DATE, false, 4);
                              encodeBacnetDate2222222(buffer, value);
                            };
                            var encodeBacnetTime2222222 = (buffer, value) => {
                              buffer.buffer[buffer.offset++] = value.getHours();
                              buffer.buffer[buffer.offset++] = value.getMinutes();
                              buffer.buffer[buffer.offset++] = value.getSeconds();
                              buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                            };
                            var encodeApplicationTime2222222 = (buffer, value) => {
                              encodeTag2222222(buffer, enums_default2222222.ApplicationTag.TIME, false, 4);
                              encodeBacnetTime2222222(buffer, value);
                            };
                            var bacappEncodeDatetime2222222 = (buffer, value) => {
                              if (value !== new Date(1, 1, 1)) {
                                encodeApplicationDate2222222(buffer, value);
                                encodeApplicationTime2222222(buffer, value);
                              }
                            };
                            var encodeContextObjectId2222222 = (buffer, tagNumber, objectType, instance) => {
                              encodeTag2222222(buffer, tagNumber, true, 4);
                              encodeBacnetObjectId2222222(buffer, objectType, instance);
                            };
                            var encodeOpeningTag2222222 = (buffer, tagNumber) => {
                              let len = 1;
                              const tmp = new Array(2);
                              tmp[0] = 8;
                              if (tagNumber <= 14) {
                                tmp[0] |= tagNumber << 4;
                              } else {
                                tmp[0] |= 240;
                                tmp[1] = tagNumber;
                                len++;
                              }
                              tmp[0] |= 6;
                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                              buffer.offset += len;
                            };
                            var encodeClosingTag2222222 = (buffer, tagNumber) => {
                              let len = 1;
                              const tmp = new Array(2);
                              tmp[0] = 8;
                              if (tagNumber <= 14) {
                                tmp[0] |= tagNumber << 4;
                              } else {
                                tmp[0] |= 240;
                                tmp[1] = tagNumber;
                                len++;
                              }
                              tmp[0] |= 7;
                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                              buffer.offset += len;
                            };
                            var encodeReadAccessSpecification2222222 = (buffer, value) => {
                              encodeContextObjectId2222222(
                                buffer,
                                0,
                                value.objectId.type,
                                value.objectId.instance
                              );
                              encodeOpeningTag2222222(buffer, 1);
                              value.properties.forEach((p) => {
                                encodeContextEnumerated2222222(buffer, 0, p.id);
                                if (p.index && p.index !== enums_default2222222.ASN1_ARRAY_ALL) {
                                  encodeContextUnsigned2222222(buffer, 1, p.index);
                                }
                              });
                              encodeClosingTag2222222(buffer, 1);
                            };
                            var encodeContextBoolean2222222 = (buffer, tagNumber, booleanValue) => {
                              encodeTag2222222(buffer, tagNumber, true, 1);
                              buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                              buffer.offset += 1;
                            };
                            var encodeCovSubscription2222222 = (buffer, value) => {
                              encodeOpeningTag2222222(buffer, 0);
                              encodeOpeningTag2222222(buffer, 0);
                              encodeOpeningTag2222222(buffer, 1);
                              encodeApplicationUnsigned2222222(buffer, value.recipient.network);
                              if (value.recipient.network === 65535) {
                                encodeApplicationOctetString2222222(buffer, 0, 0, 0);
                              } else {
                                encodeApplicationOctetString2222222(
                                  buffer,
                                  value.recipient.address,
                                  0,
                                  value.recipient.address.length
                                );
                              }
                              encodeClosingTag2222222(buffer, 1);
                              encodeClosingTag2222222(buffer, 0);
                              encodeContextUnsigned2222222(buffer, 1, value.subscriptionProcessId);
                              encodeClosingTag2222222(buffer, 0);
                              encodeOpeningTag2222222(buffer, 1);
                              encodeContextObjectId2222222(
                                buffer,
                                0,
                                value.monitoredObjectId.type,
                                value.monitoredObjectId.instance
                              );
                              encodeContextEnumerated2222222(buffer, 1, value.monitoredProperty.id);
                              if (value.monitoredProperty.index !== enums_default2222222.ASN1_ARRAY_ALL) {
                                encodeContextUnsigned2222222(buffer, 2, value.monitoredProperty.index);
                              }
                              encodeClosingTag2222222(buffer, 1);
                              encodeContextBoolean2222222(buffer, 2, value.issueConfirmedNotifications);
                              encodeContextUnsigned2222222(buffer, 3, value.timeRemaining);
                              if (value.covIncrement > 0) {
                                encodeContextReal2222222(buffer, 4, value.covIncrement);
                              }
                            };
                            var bacappEncodeApplicationData2222222 = (buffer, value) => {
                              if (value.value === null) {
                                value.type = enums_default2222222.ApplicationTag.NULL;
                              }
                              switch (value.type) {
                                case enums_default2222222.ApplicationTag.NULL:
                                  encodeApplicationNull2222222(buffer);
                                  break;
                                case enums_default2222222.ApplicationTag.BOOLEAN:
                                  encodeApplicationBoolean2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.UNSIGNED_INTEGER:
                                  encodeApplicationUnsigned2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.SIGNED_INTEGER:
                                  encodeApplicationSigned2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.REAL:
                                  encodeApplicationReal2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.DOUBLE:
                                  encodeApplicationDouble2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.OCTET_STRING:
                                  encodeApplicationOctetString2222222(buffer, value.value, 0, value.value.length);
                                  break;
                                case enums_default2222222.ApplicationTag.CHARACTER_STRING:
                                  encodeApplicationCharacterString2222222(buffer, value.value, value.encoding);
                                  break;
                                case enums_default2222222.ApplicationTag.BIT_STRING:
                                  encodeApplicationBitstring2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.ENUMERATED:
                                  encodeApplicationEnumerated2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.DATE:
                                  encodeApplicationDate2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.TIME:
                                  encodeApplicationTime2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.TIMESTAMP:
                                  bacappEncodeTimestamp2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.DATETIME:
                                  bacappEncodeDatetime2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.OBJECTIDENTIFIER:
                                  encodeApplicationObjectId2222222(buffer, value.value.type, value.value.instance);
                                  break;
                                case enums_default2222222.ApplicationTag.COV_SUBSCRIPTION:
                                  encodeCovSubscription2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.READ_ACCESS_RESULT:
                                  encodeReadAccessResult2222222(buffer, value.value);
                                  break;
                                case enums_default2222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                  encodeReadAccessSpecification2222222(buffer, value.value);
                                  break;
                                case void 0:
                                  throw new Error(
                                    "Cannot encode a value if the type has not been specified"
                                  );
                                default:
                                  throw "No encode for ApplicationTag type: " + enums_default2222222.getEnumName(
                                    enums_default2222222.ApplicationTag,
                                    value.type
                                  );
                              }
                            };
                            var bacappEncodeDeviceObjPropertyRef2222222 = (buffer, value) => {
                              encodeContextObjectId2222222(
                                buffer,
                                0,
                                value.objectId.type,
                                value.objectId.instance
                              );
                              encodeContextEnumerated2222222(buffer, 1, value.id);
                              if (value.arrayIndex !== enums_default2222222.ASN1_ARRAY_ALL) {
                                encodeContextUnsigned2222222(buffer, 2, value.arrayIndex);
                              }
                              if (value.deviceIndentifier.type === enums_default2222222.ObjectType.DEVICE) {
                                encodeContextObjectId2222222(
                                  buffer,
                                  3,
                                  value.deviceIndentifier.type,
                                  value.deviceIndentifier.instance
                                );
                              }
                            };
                            var bacappEncodeContextDeviceObjPropertyRef2222222 = (buffer, tagNumber, value) => {
                              encodeOpeningTag2222222(buffer, tagNumber);
                              bacappEncodeDeviceObjPropertyRef2222222(buffer, value);
                              encodeClosingTag2222222(buffer, tagNumber);
                            };
                            var bacappEncodePropertyState2222222 = (buffer, value) => {
                              switch (value.type) {
                                case enums_default2222222.PropertyStates.BOOLEAN_VALUE:
                                  encodeContextBoolean2222222(buffer, 0, value.state === 1);
                                  break;
                                case enums_default2222222.PropertyStates.BINARY_VALUE:
                                  encodeContextEnumerated2222222(buffer, 1, value.state);
                                  break;
                                case enums_default2222222.PropertyStates.EVENT_TYPE:
                                  encodeContextEnumerated2222222(buffer, 2, value.state);
                                  break;
                                case enums_default2222222.PropertyStates.POLARITY:
                                  encodeContextEnumerated2222222(buffer, 3, value.state);
                                  break;
                                case enums_default2222222.PropertyStates.PROGRAM_CHANGE:
                                  encodeContextEnumerated2222222(buffer, 4, value.state);
                                  break;
                                case enums_default2222222.PropertyStates.PROGRAM_STATE:
                                  encodeContextEnumerated2222222(buffer, 5, value.state);
                                  break;
                                case enums_default2222222.PropertyStates.REASON_FOR_HALT:
                                  encodeContextEnumerated2222222(buffer, 6, value.state);
                                  break;
                                case enums_default2222222.PropertyStates.RELIABILITY:
                                  encodeContextEnumerated2222222(buffer, 7, value.state);
                                  break;
                                case enums_default2222222.PropertyStates.STATE:
                                  encodeContextEnumerated2222222(buffer, 8, value.state);
                                  break;
                                case enums_default2222222.PropertyStates.SYSTEM_STATUS:
                                  encodeContextEnumerated2222222(buffer, 9, value.state);
                                  break;
                                case enums_default2222222.PropertyStates.UNITS:
                                  encodeContextEnumerated2222222(buffer, 10, value.state);
                                  break;
                                case enums_default2222222.PropertyStates.UNSIGNED_VALUE:
                                  encodeContextUnsigned2222222(buffer, 11, value.state);
                                  break;
                                case enums_default2222222.PropertyStates.LIFE_SAFETY_MODE:
                                  encodeContextEnumerated2222222(buffer, 12, value.state);
                                  break;
                                case enums_default2222222.PropertyStates.LIFE_SAFETY_STATE:
                                  encodeContextEnumerated2222222(buffer, 13, value.state);
                                  break;
                                default:
                                  break;
                              }
                            };
                            var encodeContextBitstring2222222 = (buffer, tagNumber, bitString) => {
                              let bitStringEncodedLength = 1;
                              bitStringEncodedLength += bitstringBytesUsed2222222(bitString);
                              encodeTag2222222(buffer, tagNumber, true, bitStringEncodedLength);
                              encodeBitstring2222222(buffer, bitString);
                            };
                            var encodeContextSigned2222222 = (buffer, tagNumber, value) => {
                              encodeTag2222222(buffer, tagNumber, true, getSignedLength2222222(value));
                              encodeBacnetSigned2222222(buffer, value);
                            };
                            var encodeContextTime2222222 = (buffer, tagNumber, value) => {
                              encodeTag2222222(buffer, tagNumber, true, 4);
                              encodeBacnetTime2222222(buffer, value);
                            };
                            var bacappEncodeContextDatetime2222222 = (buffer, tagNumber, value) => {
                              if (value !== new Date(1, 1, 1)) {
                                encodeOpeningTag2222222(buffer, tagNumber);
                                bacappEncodeDatetime2222222(buffer, value);
                                encodeClosingTag2222222(buffer, tagNumber);
                              } else {
                                throw new Error("wrong Datetime while bacapp encoding context");
                              }
                            };
                            var decodeTagNumber2222222 = (buffer, offset) => {
                              let len = 1;
                              let tagNumber;
                              if (isExtendedTagNumber2222222(buffer[offset])) {
                                tagNumber = buffer[offset + 1];
                                len++;
                              } else {
                                tagNumber = buffer[offset] >> 4;
                              }
                              return {
                                len,
                                tagNumber
                              };
                            };
                            var decodeIsContextTag2222222 = (buffer, offset, tagNumber) => {
                              const result = decodeTagNumber2222222(buffer, offset);
                              return isContextSpecific2222222(buffer[offset]) && result.tagNumber === tagNumber;
                            };
                            var decodeIsOpeningTagNumber2222222 = (buffer, offset, tagNumber) => {
                              const result = decodeTagNumber2222222(buffer, offset);
                              return isOpeningTag2222222(buffer[offset]) && result.tagNumber === tagNumber;
                            };
                            var decodeIsClosingTagNumber2222222 = (buffer, offset, tagNumber) => {
                              const result = decodeTagNumber2222222(buffer, offset);
                              return isClosingTag2222222(buffer[offset]) && result.tagNumber === tagNumber;
                            };
                            var decodeIsClosingTag2222222 = (buffer, offset) => {
                              return (buffer[offset] & 7) === 7;
                            };
                            var decodeIsOpeningTag2222222 = (buffer, offset) => {
                              return (buffer[offset] & 7) === 6;
                            };
                            var decodeObjectId2222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                              const result = decodeUnsigned2222222(buffer, offset, 4);
                              const objectType = result.value >> enums_default2222222.ASN1_INSTANCE_BITS & enums_default2222222.ASN1_MAX_OBJECT;
                              const instance = result.value & enums_default2222222.ASN1_MAX_INSTANCE;
                              return {
                                len: result.len,
                                objectType,
                                instance
                              };
                            };
                            var decodeObjectIdSafe2222222 = (buffer, offset, lenValue) => {
                              if (lenValue !== 4) {
                                return {
                                  len: 0,
                                  objectType: 0,
                                  instance: 0
                                };
                              } else {
                                return decodeObjectId2222222(buffer, offset);
                              }
                            };
                            var decodeTagNumberAndValue2222222 = (buffer, offset) => {
                              let value;
                              let result = decodeTagNumber2222222(buffer, offset);
                              let len = result.len;
                              if (isExtendedValue2222222(buffer[offset])) {
                                if (buffer[offset + len] === 255) {
                                  len++;
                                  result = decodeUnsigned2222222(buffer, offset + len, 4);
                                  len += result.len;
                                  value = result.value;
                                } else if (buffer[offset + len] === 254) {
                                  len++;
                                  result = decodeUnsigned2222222(buffer, offset + len, 2);
                                  len += result.len;
                                  value = result.value;
                                } else {
                                  value = buffer[offset + len];
                                  len++;
                                }
                              } else if (isOpeningTag2222222(buffer[offset])) {
                                value = 0;
                              } else if (isClosingTag2222222(buffer[offset])) {
                                value = 0;
                              } else {
                                value = buffer[offset] & 7;
                              }
                              return {
                                len,
                                tagNumber: result.tagNumber,
                                value
                              };
                            };
                            var bacappDecodeApplicationData2222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                              if (!isContextSpecific2222222(buffer[offset])) {
                                let result = decodeTagNumberAndValue2222222(buffer, offset);
                                if (result) {
                                  let len = result.len;
                                  result = bacappDecodeData2222222(
                                    buffer,
                                    offset + len,
                                    maxOffset,
                                    result.tagNumber,
                                    result.value
                                  );
                                  if (!result) {
                                    return void 0;
                                  }
                                  let resObj = {
                                    len: len + result.len,
                                    type: result.type,
                                    value: result.value
                                  };
                                  if (result.encoding !== void 0)
                                    resObj.encoding = result.encoding;
                                  return resObj;
                                }
                              } else {
                                return bacappDecodeContextApplicationData2222222(
                                  buffer,
                                  offset,
                                  maxOffset,
                                  objectType,
                                  propertyId
                                );
                              }
                            };
                            var encodeReadAccessResult2222222 = (buffer, value) => {
                              encodeContextObjectId2222222(
                                buffer,
                                0,
                                value.objectId.type,
                                value.objectId.instance
                              );
                              encodeOpeningTag2222222(buffer, 1);
                              value.values.forEach((item) => {
                                encodeContextEnumerated2222222(buffer, 2, item.property.id);
                                if (item.property.index !== enums_default2222222.ASN1_ARRAY_ALL) {
                                  encodeContextUnsigned2222222(buffer, 3, item.property.index);
                                }
                                if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                                  encodeOpeningTag2222222(buffer, 5);
                                  encodeApplicationEnumerated2222222(buffer, item.value[0].value.errorClass);
                                  encodeApplicationEnumerated2222222(buffer, item.value[0].value.errorCode);
                                  encodeClosingTag2222222(buffer, 5);
                                } else {
                                  if (!item.value)
                                    throw new Error("No value in item");
                                  encodeOpeningTag2222222(buffer, 4);
                                  item.value.forEach((subItem) => {
                                    bacappEncodeApplicationData2222222(buffer, subItem);
                                  });
                                  encodeClosingTag2222222(buffer, 4);
                                }
                              });
                              encodeClosingTag2222222(buffer, 1);
                            };
                            var decodeReadAccessResult2222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let value = {};
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              let result = decodeObjectId2222222(buffer, offset + len);
                              value.objectId = {
                                type: result.objectType,
                                instance: result.instance
                              };
                              len += result.len;
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 1)) {
                                return -1;
                              }
                              len++;
                              const values = [];
                              while (apduLen - len > 0) {
                                let newEntry = {};
                                if (decodeIsClosingTagNumber2222222(buffer, offset + len, 1)) {
                                  len++;
                                  break;
                                }
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 2) {
                                  return void 0;
                                }
                                result = decodeEnumerated2222222(buffer, offset + len, result.value);
                                newEntry.id = result.value;
                                len += result.len;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                if (result.tagNumber === 3) {
                                  len += result.len;
                                  result = decodeUnsigned2222222(buffer, offset + len, result.value);
                                  newEntry.index = result.value;
                                  len += result.len;
                                } else {
                                  newEntry.index = enums_default2222222.ASN1_ARRAY_ALL;
                                }
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber === 4) {
                                  const localValues = [];
                                  while (len + offset <= buffer.length && !decodeIsClosingTagNumber2222222(buffer, offset + len, 4)) {
                                    let localResult = bacappDecodeApplicationData2222222(
                                      buffer,
                                      offset + len,
                                      apduLen + offset - 1,
                                      value.objectId.type,
                                      newEntry.id
                                    );
                                    if (!localResult) {
                                      return void 0;
                                    }
                                    len += localResult.len;
                                    let resObj = {
                                      value: localResult.value,
                                      type: localResult.type
                                    };
                                    if (localResult.encoding !== void 0)
                                      resObj.encoding = localResult.encoding;
                                    localValues.push(resObj);
                                  }
                                  if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 4)) {
                                    return void 0;
                                  }
                                  if (localValues.count === 2 && localValues[0].type === enums_default2222222.ApplicationTag.DATE && localValues[1].type === enums_default2222222.ApplicationTag.TIME) {
                                    const date = localValues[0].value;
                                    const time = localValues[1].value;
                                    const bdatetime = new Date(
                                      date.year,
                                      date.month,
                                      date.day,
                                      time.hour,
                                      time.minute,
                                      time.second,
                                      time.millisecond
                                    );
                                    newEntry.value = [
                                      { type: enums_default2222222.ApplicationTag.DATETIME, value: bdatetime }
                                    ];
                                  } else {
                                    newEntry.value = localValues;
                                  }
                                  len++;
                                } else if (result.tagNumber === 5) {
                                  let err = {};
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                  result = decodeEnumerated2222222(buffer, offset + len, result.value);
                                  len += result.len;
                                  err.errorClass = result.value;
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                  result = decodeEnumerated2222222(buffer, offset + len, result.value);
                                  len += result.len;
                                  err.errorCode = result.value;
                                  if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 5)) {
                                    return void 0;
                                  }
                                  len++;
                                  newEntry.value = [
                                    {
                                      type: enums_default2222222.ApplicationTag.ERROR,
                                      value: err
                                    }
                                  ];
                                }
                                values.push(newEntry);
                              }
                              value.values = values;
                              return {
                                len,
                                value
                              };
                            };
                            var decodeSigned2222222 = (buffer, offset, length) => {
                              return {
                                len: length,
                                value: buffer.readIntBE(offset, length, true)
                              };
                            };
                            var decodeReal2222222 = (buffer, offset) => {
                              return {
                                len: 4,
                                value: buffer.readFloatBE(offset, true)
                              };
                            };
                            var decodeRealSafe2222222 = (buffer, offset, lenValue) => {
                              if (lenValue !== 4) {
                                return {
                                  len: lenValue,
                                  value: 0
                                };
                              } else {
                                return decodeReal2222222(buffer, offset);
                              }
                            };
                            var decodeDouble2222222 = (buffer, offset) => {
                              return {
                                len: 8,
                                value: buffer.readDoubleBE(offset, true)
                              };
                            };
                            var decodeDoubleSafe2222222 = (buffer, offset, lenValue) => {
                              if (lenValue !== 8) {
                                return {
                                  len: lenValue,
                                  value: 0
                                };
                              } else {
                                return decodeDouble2222222(buffer, offset);
                              }
                            };
                            var decodeOctetString2222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                              const octetString = [];
                              for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                                octetString.push(buffer[offset + i]);
                              }
                              return {
                                len: octetStringLength,
                                value: octetString
                              };
                            };
                            var multiCharsetCharacterstringDecode2222222 = (buffer, offset, maxLength, encoding, length) => {
                              const stringBuf = Buffer.alloc(length);
                              buffer.copy(stringBuf, 0, offset, offset + length);
                              return {
                                value: import_iconv_lite2222222.default.decode(stringBuf, getEncodingType2222222(encoding, buffer, offset)),
                                len: length + 1,
                                encoding
                              };
                            };
                            var decodeCharacterString2222222 = (buffer, offset, maxLength, lenValue) => {
                              return multiCharsetCharacterstringDecode2222222(
                                buffer,
                                offset + 1,
                                maxLength,
                                buffer[offset],
                                lenValue - 1
                              );
                            };
                            var bitstringSetBitsUsed2222222 = (bitString, bytesUsed, unusedBits) => {
                              bitString.bitsUsed = bytesUsed * 8;
                              bitString.bitsUsed -= unusedBits;
                            };
                            var decodeBitstring2222222 = (buffer, offset, lenValue) => {
                              let len = 0;
                              let bitString = {};
                              bitString.value = [];
                              if (lenValue > 0) {
                                const bytesUsed = lenValue - 1;
                                if (bytesUsed <= enums_default2222222.ASN1_MAX_BITSTRING_BYTES) {
                                  len = 1;
                                  for (let i = 0; i < bytesUsed; i++) {
                                    bitString.value.push(byteReverseBits2222222(buffer[offset + len++]));
                                  }
                                  const unusedBits = buffer[offset] & 7;
                                  bitstringSetBitsUsed2222222(bitString, bytesUsed, unusedBits);
                                }
                              }
                              return {
                                len,
                                value: bitString
                              };
                            };
                            var decodeDate2222222 = (buffer, offset) => {
                              let date;
                              const year = buffer[offset] + 1900;
                              const month = buffer[offset + 1];
                              const day = buffer[offset + 2];
                              const wday = buffer[offset + 3];
                              if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                                date = new Date(1, 1, 1);
                              } else {
                                date = new Date(year, month, day);
                              }
                              return {
                                len: 4,
                                value: date
                              };
                            };
                            var decodeDateSafe2222222 = (buffer, offset, lenValue) => {
                              if (lenValue !== 4) {
                                return {
                                  len: lenValue,
                                  value: new Date(1, 1, 1)
                                };
                              } else {
                                return decodeDate2222222(buffer, offset);
                              }
                            };
                            var decodeApplicationDate2222222 = (buffer, offset) => {
                              const result = decodeTagNumber2222222(buffer, offset);
                              if (result.tagNumber === enums_default2222222.ApplicationTag.DATE) {
                                const value = decodeDate2222222(buffer, offset + 1);
                                return {
                                  len: value.len + 1,
                                  value
                                };
                              }
                              return void 0;
                            };
                            var decodeBacnetTime2222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                              const hour = buffer[offset + 0];
                              const min = buffer[offset + 1];
                              const sec = buffer[offset + 2];
                              let hundredths = buffer[offset + 3];
                              if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                                value = new Date(1, 1, 1);
                              } else {
                                if (hundredths > 100)
                                  hundredths = 0;
                                value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                              }
                              return {
                                len: 4,
                                value
                              };
                            };
                            var decodeBacnetTimeSafe2222222 = (buffer, offset, lenValue) => {
                              if (lenValue !== 4) {
                                return {
                                  len: lenValue,
                                  value: new Date(1, 1, 1)
                                };
                              } else {
                                return decodeBacnetTime2222222(buffer, offset);
                              }
                            };
                            var decodeApplicationTime2222222 = (buffer, offset) => {
                              const result = decodeTagNumber2222222(buffer, offset);
                              if (result.tagNumber === enums_default2222222.ApplicationTag.TIME) {
                                const value = decodeBacnetTime2222222(buffer, offset + 1);
                                return {
                                  len: value.len + 1,
                                  value
                                };
                              }
                              return void 0;
                            };
                            var decodeBacnetDatetime2222222 = (buffer, offset) => {
                              let len = 0;
                              const date = decodeApplicationDate2222222(buffer, offset + len);
                              len += date.len;
                              const time = decodeApplicationTime2222222(buffer, offset + len);
                              len += time.len;
                              return {
                                len,
                                value: new Date(
                                  date.year,
                                  date.month,
                                  date.day,
                                  time.hour,
                                  time.minute,
                                  time.second,
                                  time.millisecond
                                )
                              };
                            };
                            var bacappDecodeData2222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                              let result;
                              let value = {
                                len: 0,
                                type: tagDataType
                              };
                              switch (tagDataType) {
                                case enums_default2222222.ApplicationTag.NULL:
                                  value.value = null;
                                  break;
                                case enums_default2222222.ApplicationTag.BOOLEAN:
                                  value.value = lenValueType > 0;
                                  break;
                                case enums_default2222222.ApplicationTag.UNSIGNED_INTEGER:
                                  result = decodeUnsigned2222222(buffer, offset, lenValueType);
                                  value.len += result.len;
                                  value.value = result.value;
                                  break;
                                case enums_default2222222.ApplicationTag.SIGNED_INTEGER:
                                  result = decodeSigned2222222(buffer, offset, lenValueType);
                                  value.len += result.len;
                                  value.value = result.value;
                                  break;
                                case enums_default2222222.ApplicationTag.REAL:
                                  result = decodeRealSafe2222222(buffer, offset, lenValueType);
                                  value.len += result.len;
                                  value.value = result.value;
                                  break;
                                case enums_default2222222.ApplicationTag.DOUBLE:
                                  result = decodeDoubleSafe2222222(buffer, offset, lenValueType);
                                  value.len += result.len;
                                  value.value = result.value;
                                  break;
                                case enums_default2222222.ApplicationTag.OCTET_STRING:
                                  result = decodeOctetString2222222(buffer, offset, maxLength, 0, lenValueType);
                                  value.len += result.len;
                                  value.value = result.value;
                                  break;
                                case enums_default2222222.ApplicationTag.CHARACTER_STRING:
                                  result = decodeCharacterString2222222(buffer, offset, maxLength, lenValueType);
                                  value.len += result.len;
                                  value.value = result.value;
                                  value.encoding = result.encoding;
                                  break;
                                case enums_default2222222.ApplicationTag.BIT_STRING:
                                  result = decodeBitstring2222222(buffer, offset, lenValueType);
                                  value.len += result.len;
                                  value.value = result.value;
                                  break;
                                case enums_default2222222.ApplicationTag.ENUMERATED:
                                  result = decodeEnumerated2222222(buffer, offset, lenValueType);
                                  value.len += result.len;
                                  value.value = result.value;
                                  break;
                                case enums_default2222222.ApplicationTag.DATE:
                                  result = decodeDateSafe2222222(buffer, offset, lenValueType);
                                  value.len += result.len;
                                  value.value = result.value;
                                  break;
                                case enums_default2222222.ApplicationTag.TIME:
                                  result = decodeBacnetTimeSafe2222222(buffer, offset, lenValueType);
                                  value.len += result.len;
                                  value.value = result.value;
                                  break;
                                case enums_default2222222.ApplicationTag.OBJECTIDENTIFIER:
                                  result = decodeObjectIdSafe2222222(buffer, offset, lenValueType);
                                  value.len += result.len;
                                  value.value = { type: result.objectType, instance: result.instance };
                                  break;
                                default:
                                  break;
                              }
                              return value;
                            };
                            var bacappContextTagType2222222 = (property, tagNumber) => {
                              let tag = 0;
                              switch (property) {
                                case enums_default2222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                                case enums_default2222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                                case enums_default2222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                                  switch (tagNumber) {
                                    case 0:
                                    case 1:
                                      tag = enums_default2222222.ApplicationTag.UNSIGNED_INTEGER;
                                      break;
                                    case 2:
                                      tag = enums_default2222222.ApplicationTag.REAL;
                                      break;
                                    default:
                                      break;
                                  }
                                  break;
                                case enums_default2222222.PropertyIdentifier.ACTION:
                                  switch (tagNumber) {
                                    case 0:
                                    case 1:
                                      tag = enums_default2222222.ApplicationTag.OBJECTIDENTIFIER;
                                      break;
                                    case 2:
                                      tag = enums_default2222222.ApplicationTag.ENUMERATED;
                                      break;
                                    case 3:
                                    case 5:
                                    case 6:
                                      tag = enums_default2222222.ApplicationTag.UNSIGNED_INTEGER;
                                      break;
                                    case 7:
                                    case 8:
                                      tag = enums_default2222222.ApplicationTag.BOOLEAN;
                                      break;
                                    default:
                                      break;
                                  }
                                  break;
                                case enums_default2222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                                  switch (tagNumber) {
                                    case 0:
                                      tag = enums_default2222222.ApplicationTag.OBJECTIDENTIFIER;
                                      break;
                                    default:
                                      break;
                                  }
                                  break;
                                case enums_default2222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                                  switch (tagNumber) {
                                    case 1:
                                      tag = enums_default2222222.ApplicationTag.OBJECTIDENTIFIER;
                                      break;
                                    case 3:
                                      tag = enums_default2222222.ApplicationTag.UNSIGNED_INTEGER;
                                      break;
                                    default:
                                      break;
                                  }
                                  break;
                                case enums_default2222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                                  switch (tagNumber) {
                                    case 0:
                                    case 3:
                                      tag = enums_default2222222.ApplicationTag.OBJECTIDENTIFIER;
                                      break;
                                    case 1:
                                      tag = enums_default2222222.ApplicationTag.ENUMERATED;
                                      break;
                                    case 2:
                                      tag = enums_default2222222.ApplicationTag.UNSIGNED_INTEGER;
                                      break;
                                    default:
                                      break;
                                  }
                                  break;
                                case enums_default2222222.PropertyIdentifier.SUBORDINATE_LIST:
                                  switch (tagNumber) {
                                    case 0:
                                    case 1:
                                      tag = enums_default2222222.ApplicationTag.OBJECTIDENTIFIER;
                                      break;
                                    default:
                                      break;
                                  }
                                  break;
                                case enums_default2222222.PropertyIdentifier.RECIPIENT_LIST:
                                  switch (tagNumber) {
                                    case 0:
                                      tag = enums_default2222222.ApplicationTag.OBJECTIDENTIFIER;
                                      break;
                                    default:
                                      break;
                                  }
                                  break;
                                case enums_default2222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                                  switch (tagNumber) {
                                    case 0:
                                    case 1:
                                      break;
                                    case 2:
                                      tag = enums_default2222222.ApplicationTag.BOOLEAN;
                                      break;
                                    case 3:
                                      tag = enums_default2222222.ApplicationTag.UNSIGNED_INTEGER;
                                      break;
                                    case 4:
                                      tag = enums_default2222222.ApplicationTag.REAL;
                                      break;
                                    default:
                                      break;
                                  }
                                  break;
                                default:
                                  break;
                              }
                              return tag;
                            };
                            var decodeDeviceObjPropertyRef2222222 = (buffer, offset, NOTUSEDARG = 0) => {
                              let len = 0;
                              let arrayIndex = enums_default2222222.ASN1_ARRAY_ALL;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              let objectId = decodeObjectId2222222(buffer, offset + len);
                              len += objectId.len;
                              let result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 1) {
                                return void 0;
                              }
                              let id = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += id.len;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              if (result.tagNumber === 2) {
                                len += result.len;
                                arrayIndex = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += arrayIndex.len;
                              }
                              if (decodeIsContextTag2222222(buffer, offset + len, 3)) {
                                if (!isClosingTag2222222(buffer[offset + len])) {
                                  len++;
                                  objectId = decodeObjectId2222222(buffer, offset + len);
                                  len += objectId.len;
                                }
                              }
                              return {
                                len,
                                value: {
                                  objectId,
                                  id
                                }
                              };
                            };
                            var decodeReadAccessSpecification2222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let value = {};
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              let decodedValue = decodeObjectId2222222(buffer, offset + len);
                              value.objectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              len += decodedValue.len;
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              len++;
                              const propertyIdAndArrayIndex = [];
                              while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222(buffer, offset + len, 1)) {
                                let propertyRef = {};
                                if (!isContextSpecific2222222(buffer[offset + len])) {
                                  return void 0;
                                }
                                let result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 0) {
                                  return void 0;
                                }
                                if (len + result.value >= apduLen) {
                                  return void 0;
                                }
                                decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                                propertyRef.id = decodedValue.value;
                                len += decodedValue.len;
                                propertyRef.index = enums_default2222222.ASN1_ARRAY_ALL;
                                if (isContextSpecific2222222(buffer[offset + len]) && !isClosingTag2222222(buffer[offset + len])) {
                                  const tmp = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  if (tmp.tagNumber === 1) {
                                    len += tmp.len;
                                    if (len + tmp.value >= apduLen) {
                                      return void 0;
                                    }
                                    decodedValue = decodeUnsigned2222222(buffer, offset + len, tmp.value);
                                    propertyRef.index = decodedValue.value;
                                    len += decodedValue.len;
                                  }
                                }
                                propertyIdAndArrayIndex.push(propertyRef);
                              }
                              if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              len++;
                              value.properties = propertyIdAndArrayIndex;
                              return {
                                len,
                                value
                              };
                            };
                            var decodeCovSubscription2222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let value = {};
                              let result;
                              let decodedValue;
                              value.recipient = {};
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              len++;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== enums_default2222222.ApplicationTag.UNSIGNED_INTEGER) {
                                return void 0;
                              }
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.recipient.net = decodedValue.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== enums_default2222222.ApplicationTag.OCTET_STRING) {
                                return void 0;
                              }
                              decodedValue = decodeOctetString2222222(
                                buffer,
                                offset + len,
                                apduLen,
                                0,
                                result.value
                              );
                              len += decodedValue.len;
                              value.recipient.adr = decodedValue.value;
                              if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              len++;
                              if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 1) {
                                return void 0;
                              }
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.subscriptionProcessId = decodedValue.value;
                              if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              len++;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 0) {
                                return void 0;
                              }
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              value.monitoredObjectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 1) {
                                return void 0;
                              }
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.monitoredProperty = {};
                              value.monitoredProperty.id = decodedValue.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              if (result.tagNumber === 2) {
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.monitoredProperty.index = decodedValue.value;
                              } else {
                                value.monitoredProperty.index = enums_default2222222.ASN1_ARRAY_ALL;
                              }
                              if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              len++;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 2) {
                                return void 0;
                              }
                              value.issueConfirmedNotifications = buffer[offset + len] > 0;
                              len++;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 3) {
                                return void 0;
                              }
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.timeRemaining = decodedValue.value;
                              if (len < apduLen && !isClosingTag2222222(buffer[offset + len])) {
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 4) {
                                  return void 0;
                                }
                                decodedValue = decodeReal2222222(buffer, offset + len);
                                len += decodedValue.len;
                                value.covIncrement = decodedValue.value;
                              }
                              return {
                                len,
                                value
                              };
                            };
                            var decodeCalendarDate2222222 = (buffer, offset) => {
                              return {
                                len: 4,
                                year: buffer[offset],
                                month: buffer[offset + 1],
                                day: buffer[offset + 2],
                                wday: buffer[offset + 3]
                              };
                            };
                            var decodeCalendarDateRange2222222 = (buffer, offset) => {
                              let len = 1;
                              const startDate = decodeDate2222222(buffer, offset + len);
                              len += startDate.len + 1;
                              const endDate = decodeDate2222222(buffer, offset + len);
                              len += endDate.len + 1;
                              return {
                                len,
                                startDate,
                                endDate
                              };
                            };
                            var decodeCalendarWeekDay2222222 = (buffer, offset) => {
                              return {
                                len: 3,
                                month: buffer[offset],
                                week: buffer[offset + 1],
                                wday: buffer[offset + 2]
                              };
                            };
                            var decodeCalendar2222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              const entries = [];
                              let decodedValue;
                              while (len < apduLen) {
                                const result = decodeTagNumber2222222(buffer, offset + len);
                                len += result.len;
                                switch (result.tagNumber) {
                                  case 0:
                                    decodedValue = decodeCalendarDate2222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    entries.push(decodedValue);
                                    break;
                                  case 1:
                                    decodedValue = decodeCalendarDateRange2222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    entries.push(decodedValue);
                                    break;
                                  case 2:
                                    decodedValue = decodeCalendarWeekDay2222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    entries.push(decodedValue);
                                    break;
                                  default:
                                    return {
                                      len: len - 1,
                                      value: entries
                                    };
                                }
                              }
                            };
                            var bacappDecodeContextApplicationData2222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                              let len = 0;
                              let result;
                              if (isContextSpecific2222222(buffer[offset])) {
                                if (propertyId === enums_default2222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                                  result = decodeReadAccessSpecification2222222(buffer, offset, maxOffset);
                                  if (!result) {
                                    return void 0;
                                  }
                                  return {
                                    type: enums_default2222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                    value: result.value,
                                    len: result.len
                                  };
                                } else if (propertyId === enums_default2222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                                  result = decodeCovSubscription2222222(buffer, offset, maxOffset);
                                  if (!result) {
                                    return void 0;
                                  }
                                  return {
                                    type: enums_default2222222.ApplicationTag.COV_SUBSCRIPTION,
                                    value: result.value,
                                    len: result.len
                                  };
                                } else if (objectType === enums_default2222222.ObjectType.GROUP && propertyId === enums_default2222222.PropertyIdentifier.PRESENT_VALUE) {
                                  result = decodeReadAccessResult2222222(buffer, offset, maxOffset);
                                  if (!result) {
                                    return void 0;
                                  }
                                  return {
                                    type: enums_default2222222.ApplicationTag.READ_ACCESS_RESULT,
                                    value: result.value,
                                    len: result.len
                                  };
                                } else if (propertyId === enums_default2222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default2222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default2222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                                  result = decodeDeviceObjPropertyRef2222222(buffer, offset, maxOffset);
                                  if (!result) {
                                    return void 0;
                                  }
                                  return {
                                    type: enums_default2222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                    value: result.value,
                                    len: result.len
                                  };
                                } else if (propertyId === enums_default2222222.PropertyIdentifier.DATE_LIST) {
                                  result = decodeCalendar2222222(buffer, offset, maxOffset);
                                  if (!result) {
                                    return void 0;
                                  }
                                  return {
                                    type: enums_default2222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                    value: result.value,
                                    len: result.len
                                  };
                                } else if (propertyId === enums_default2222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                                  let subEvtResult;
                                  let evtResult = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += 1;
                                  if (evtResult.tagNumber === 0) {
                                    subEvtResult = decodeBacnetTime2222222(buffer, offset + 1);
                                    return {
                                      type: enums_default2222222.ApplicationTag.TIMESTAMP,
                                      value: subEvtResult.value,
                                      len: subEvtResult.len + 1
                                    };
                                  } else if (evtResult.tagNumber === 1) {
                                    subEvtResult = decodeUnsigned2222222(buffer, offset + len, evtResult.value);
                                    return {
                                      type: enums_default2222222.ApplicationTag.UNSIGNED_INTEGER,
                                      value: subEvtResult.value,
                                      len: subEvtResult.len + 1
                                    };
                                  } else if (evtResult.tagNumber === 2) {
                                    subEvtResult = decodeBacnetDatetime2222222(buffer, offset + len);
                                    return {
                                      type: enums_default2222222.ApplicationTag.TIMESTAMP,
                                      value: subEvtResult.value,
                                      len: subEvtResult.len + 2
                                    };
                                  } else {
                                    return void 0;
                                  }
                                }
                                const list = [];
                                let tagResult = decodeTagNumberAndValue2222222(buffer, offset + len);
                                let multipleValues = isOpeningTag2222222(buffer[offset + len]);
                                while (len + offset <= maxOffset && !isClosingTag2222222(buffer[offset + len])) {
                                  let subResult = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  if (!subResult) {
                                    return void 0;
                                  }
                                  if (subResult.value === 0) {
                                    len += subResult.len;
                                    result = bacappDecodeApplicationData2222222(
                                      buffer,
                                      offset + len,
                                      maxOffset,
                                      enums_default2222222.ASN1_MAX_OBJECT_TYPE,
                                      enums_default2222222.ASN1_MAX_PROPERTY_ID
                                    );
                                    if (!result) {
                                      return void 0;
                                    }
                                    list.push(result);
                                    len += result.len;
                                  } else {
                                    const overrideTagNumber = bacappContextTagType2222222(
                                      propertyId,
                                      subResult.tagNumber
                                    );
                                    if (overrideTagNumber !== enums_default2222222.ASN1_MAX_APPLICATION_TAG) {
                                      subResult.tagNumber = overrideTagNumber;
                                    }
                                    let bacappResult = bacappDecodeData2222222(
                                      buffer,
                                      offset + len + subResult.len,
                                      maxOffset,
                                      subResult.tagNumber,
                                      subResult.value
                                    );
                                    if (!bacappResult) {
                                      return void 0;
                                    }
                                    if (bacappResult.len === subResult.value) {
                                      let resObj = {
                                        value: bacappResult.value,
                                        type: bacappResult.type
                                      };
                                      if (bacappResult.encoding !== void 0)
                                        resObj.encoding = bacappResult.encoding;
                                      list.push(resObj);
                                      len += subResult.len + subResult.value;
                                    } else {
                                      list.push({
                                        value: buffer.slice(
                                          offset + len + subResult.len,
                                          offset + len + subResult.len + subResult.value
                                        ),
                                        type: enums_default2222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                      });
                                      len += subResult.len + subResult.value;
                                    }
                                  }
                                  if (multipleValues === false) {
                                    return {
                                      len,
                                      value: list[0],
                                      type: enums_default2222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                    };
                                  }
                                }
                                if (len + offset > maxOffset) {
                                  return void 0;
                                }
                                if (decodeIsClosingTagNumber2222222(buffer, offset + len, tagResult.tagNumber)) {
                                  len++;
                                }
                                return {
                                  len,
                                  value: list,
                                  type: enums_default2222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                };
                              }
                              return void 0;
                            };
                            var bacappEncodeTimestamp2222222 = (buffer, value) => {
                              switch (value.type) {
                                case enums_default2222222.TimeStamp.TIME:
                                  encodeContextTime2222222(buffer, 0, value.value);
                                  break;
                                case enums_default2222222.TimeStamp.SEQUENCE_NUMBER:
                                  encodeContextUnsigned2222222(buffer, 1, value.value);
                                  break;
                                case enums_default2222222.TimeStamp.DATETIME:
                                  bacappEncodeContextDatetime2222222(buffer, 2, value.value);
                                  break;
                                default:
                                  throw new Error("NOT_IMPLEMENTED");
                              }
                            };
                            var bacappEncodeContextTimestamp2222222 = (buffer, tagNumber, value) => {
                              encodeOpeningTag2222222(buffer, tagNumber);
                              bacappEncodeTimestamp2222222(buffer, value);
                              encodeClosingTag2222222(buffer, tagNumber);
                            };
                            var decodeContextCharacterString2222222 = (buffer, offset, maxLength, tagNumber) => {
                              let len = 0;
                              if (!decodeIsContextTag2222222(buffer, offset + len, tagNumber)) {
                                return void 0;
                              }
                              const result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              const decodedValue = multiCharsetCharacterstringDecode2222222(
                                buffer,
                                offset + 1 + len,
                                maxLength,
                                buffer[offset + len],
                                result.value - 1
                              );
                              if (!decodedValue) {
                                return void 0;
                              }
                              len += result.value;
                              return {
                                len,
                                value: decodedValue.value,
                                encoding: decodedValue.encoding
                              };
                            };
                            var decodeIsContextTagWithLength2222222 = (buffer, offset, tagNumber) => {
                              const result = decodeTagNumber2222222(buffer, offset);
                              return {
                                len: result.len,
                                value: isContextSpecific2222222(buffer[offset]) && result.tagNumber === tagNumber
                              };
                            };
                            var decodeContextObjectId2222222 = (buffer, offset, tagNumber) => {
                              const result = decodeIsContextTagWithLength2222222(buffer, offset, tagNumber);
                              if (!result.value) {
                                return void 0;
                              }
                              const decodedValue = decodeObjectId2222222(buffer, offset + result.len);
                              decodedValue.len = decodedValue.len + result.len;
                              return decodedValue;
                            };
                            var encodeBacnetCharacterString2222222 = (buffer, value, encoding) => {
                              encoding = encoding || enums_default2222222.CharacterStringEncoding.UTF_8;
                              buffer.buffer[buffer.offset++] = encoding;
                              const bufEncoded = import_iconv_lite2222222.default.encode(value, getEncodingType2222222(encoding));
                              buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                            };
                            var encodeApplicationCharacterString2222222 = (buffer, value, encoding) => {
                              const tmp = getBuffer2222222();
                              encodeBacnetCharacterString2222222(tmp, value, encoding);
                              encodeTag2222222(buffer, enums_default2222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                              buffer.offset += tmp.offset;
                            };
                            var encodeContextCharacterString2222222 = (buffer, tagNumber, value, encoding) => {
                              const tmp = getBuffer2222222();
                              encodeBacnetCharacterString2222222(tmp, value, encoding);
                              encodeTag2222222(buffer, tagNumber, true, tmp.offset);
                              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                              buffer.offset += tmp.offset;
                            };
                            var encode33222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                              encodeContextObjectId2222222(buffer, 0, objectId.type, objectId.instance);
                              encodeContextEnumerated2222222(buffer, 1, propertyId);
                              if (arrayIndex !== ASN1_ARRAY_ALL2222222) {
                                encodeContextUnsigned2222222(buffer, 2, arrayIndex);
                              }
                              encodeOpeningTag2222222(buffer, 3);
                              values.forEach((value) => {
                                bacappEncodeApplicationData2222222(buffer, value);
                              });
                              encodeClosingTag2222222(buffer, 3);
                            };
                            var decode33222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let value = {};
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              value.objectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.property = { id: decodedValue.value };
                              if (len < apduLen && decodeIsContextTag2222222(buffer, offset + len, 2)) {
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.property.index = decodedValue.value;
                              } else {
                                value.property.index = ASN1_ARRAY_ALL2222222;
                              }
                              const values = [];
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 3)) {
                                return void 0;
                              }
                              len++;
                              while (apduLen - len > 1) {
                                result = bacappDecodeApplicationData2222222(
                                  buffer,
                                  offset + len,
                                  apduLen + offset,
                                  value.objectId.type,
                                  value.property.id
                                );
                                if (!result) {
                                  return void 0;
                                }
                                len += result.len;
                                delete result.len;
                                values.push(result);
                              }
                              value.values = values;
                              if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 3)) {
                                return void 0;
                              }
                              len++;
                              value.len = len;
                              return value;
                            };
                            var alarm_acknowledge_exports2222222 = {};
                            __export2222222(alarm_acknowledge_exports2222222, {
                              decode: () => decode210222222,
                              encode: () => encode210222222
                            });
                            var encode210222222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                              encodeContextUnsigned2222222(buffer, 0, ackProcessId);
                              encodeContextObjectId2222222(
                                buffer,
                                1,
                                eventObjectId.type,
                                eventObjectId.instance
                              );
                              encodeContextEnumerated2222222(buffer, 2, eventStateAcknowledged);
                              bacappEncodeContextTimestamp2222222(buffer, 3, eventTimeStamp);
                              encodeContextCharacterString2222222(buffer, 4, ackSource);
                              bacappEncodeContextTimestamp2222222(buffer, 5, ackTimeStamp);
                            };
                            var decode210222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let value = {};
                              let result;
                              let decodedValue;
                              let date;
                              let time;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.acknowledgedProcessId = decodedValue.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              value.eventObjectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.eventStateAcknowledged = decodedValue.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber === 0) {
                                decodedValue = decodeBacnetTime2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.eventTimeStamp = decodedValue.value;
                              } else if (result.tagNumber === 1) {
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.eventTimeStamp = decodedValue.value;
                              } else if (result.tagNumber === 2) {
                                date = decodeApplicationDate2222222(buffer, offset + len);
                                len += date.len;
                                date = date.value.value;
                                time = decodeApplicationTime2222222(buffer, offset + len);
                                len += time.len;
                                time = time.value.value;
                                value.eventTimeStamp = new Date(
                                  date.getFullYear(),
                                  date.getMonth(),
                                  date.getDate(),
                                  time.getHours(),
                                  time.getMinutes(),
                                  time.getSeconds(),
                                  time.getMilliseconds()
                                );
                                len++;
                              }
                              len++;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeCharacterString2222222(
                                buffer,
                                offset + len,
                                apduLen - (offset + len),
                                result.value
                              );
                              value.acknowledgeSource = decodedValue.value;
                              len += decodedValue.len;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber === 0) {
                                decodedValue = decodeBacnetTime2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.acknowledgeTimeStamp = decodedValue.value;
                              } else if (result.tagNumber === 1) {
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.acknowledgeTimeStamp = decodedValue.value;
                              } else if (result.tagNumber === 2) {
                                date = decodeApplicationDate2222222(buffer, offset + len);
                                len += date.len;
                                date = date.value.value;
                                time = decodeApplicationTime2222222(buffer, offset + len);
                                len += time.len;
                                time = time.value.value;
                                value.acknowledgeTimeStamp = new Date(
                                  date.getFullYear(),
                                  date.getMonth(),
                                  date.getDate(),
                                  time.getHours(),
                                  time.getMinutes(),
                                  time.getSeconds(),
                                  time.getMilliseconds()
                                );
                                len++;
                              }
                              len++;
                              value.len = len;
                              return value;
                            };
                            var alarm_summary_exports2222222 = {};
                            __export2222222(alarm_summary_exports2222222, {
                              decode: () => decode34222222,
                              encode: () => encode34222222
                            });
                            var encode34222222 = (buffer, alarms) => {
                              alarms.forEach((alarm) => {
                                encodeContextObjectId2222222(
                                  buffer,
                                  12,
                                  alarm.objectId.type,
                                  alarm.objectId.instance
                                );
                                encodeContextEnumerated2222222(buffer, 9, alarm.alarmState);
                                encodeContextBitstring2222222(buffer, 8, alarm.acknowledgedTransitions);
                              });
                            };
                            var decode34222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              const alarms = [];
                              while (apduLen - 3 - len > 0) {
                                let value = {};
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeObjectId2222222(buffer, offset + len);
                                len += decodedValue.len;
                                value.objectId = {
                                  type: decodedValue.objectType,
                                  instance: decodedValue.instance
                                };
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.alarmState = decodedValue.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeBitstring2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.acknowledgedTransitions = decodedValue.value;
                                alarms.push(value);
                              }
                              return {
                                len,
                                alarms
                              };
                            };
                            var atomic_read_file_exports2222222 = {};
                            __export2222222(atomic_read_file_exports2222222, {
                              decode: () => decode42222222,
                              decodeAcknowledge: () => decodeAcknowledge8222222,
                              encode: () => encode42222222,
                              encodeAcknowledge: () => encodeAcknowledge9222222
                            });
                            var encode42222222 = (buffer, isStream, objectId, position, count) => {
                              encodeApplicationObjectId2222222(buffer, objectId.type, objectId.instance);
                              if (isStream) {
                                encodeOpeningTag2222222(buffer, 0);
                                encodeApplicationSigned2222222(buffer, position);
                                encodeApplicationUnsigned2222222(buffer, count);
                                encodeClosingTag2222222(buffer, 0);
                              } else {
                                encodeOpeningTag2222222(buffer, 1);
                                encodeApplicationSigned2222222(buffer, position);
                                encodeApplicationUnsigned2222222(buffer, count);
                                encodeClosingTag2222222(buffer, 1);
                              }
                            };
                            var decode42222222 = (buffer, offset) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let isStream = true;
                              let objectId = {};
                              let position = -1;
                              let count = 0;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 12) {
                                return void 0;
                              }
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                              if (decodeIsOpeningTagNumber2222222(buffer, offset + len, 0)) {
                                isStream = true;
                                len++;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 3) {
                                  return void 0;
                                }
                                decodedValue = decodeSigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                position = decodedValue.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 2) {
                                  return void 0;
                                }
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                count = decodedValue.value;
                                if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 0)) {
                                  return void 0;
                                }
                                len++;
                              } else if (decodeIsOpeningTagNumber2222222(buffer, offset + len, 1)) {
                                isStream = false;
                                len++;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 3) {
                                  return void 0;
                                }
                                decodedValue = decodeSigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                position = decodedValue.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 2) {
                                  return void 0;
                                }
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                count = decodedValue.value;
                                if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 1)) {
                                  return void 0;
                                }
                                len++;
                              } else {
                                return void 0;
                              }
                              return {
                                len,
                                isStream,
                                objectId,
                                position,
                                count
                              };
                            };
                            var encodeAcknowledge9222222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                              encodeApplicationBoolean2222222(buffer, endOfFile);
                              if (isStream) {
                                encodeOpeningTag2222222(buffer, 0);
                                encodeApplicationSigned2222222(buffer, position);
                                encodeApplicationOctetString2222222(buffer, blocks[0], 0, counts[0]);
                                encodeClosingTag2222222(buffer, 0);
                              } else {
                                encodeOpeningTag2222222(buffer, 1);
                                encodeApplicationSigned2222222(buffer, position);
                                encodeApplicationUnsigned2222222(buffer, blockCount);
                                for (let i = 0; i < blockCount; i++) {
                                  encodeApplicationOctetString2222222(buffer, blocks[i], 0, counts[i]);
                                }
                                encodeClosingTag2222222(buffer, 1);
                              }
                            };
                            var decodeAcknowledge8222222 = (buffer, offset, length = 0) => {
                              let len = length;
                              let result;
                              let decodedValue;
                              let endOfFile;
                              let isStream;
                              let position;
                              let targetBuffer;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 1) {
                                return void 0;
                              }
                              endOfFile = result.value > 0;
                              if (decodeIsOpeningTagNumber2222222(buffer, offset + len, 0)) {
                                isStream = true;
                                len++;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 3) {
                                  return void 0;
                                }
                                decodedValue = decodeSigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                position = decodedValue.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 6) {
                                  return void 0;
                                }
                                targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                                len += result.value;
                                if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 0)) {
                                  return void 0;
                                }
                                len++;
                              } else if (decodeIsOpeningTagNumber2222222(buffer, offset + len, 1)) {
                                isStream = false;
                                throw new Error("NotImplemented");
                              } else {
                                return void 0;
                              }
                              return {
                                len,
                                endOfFile,
                                isStream,
                                position,
                                buffer: targetBuffer
                              };
                            };
                            var atomic_write_file_exports2222222 = {};
                            __export2222222(atomic_write_file_exports2222222, {
                              decode: () => decode52222222,
                              decodeAcknowledge: () => decodeAcknowledge22222222,
                              encode: () => encode52222222,
                              encodeAcknowledge: () => encodeAcknowledge22222222
                            });
                            var encode52222222 = (buffer, isStream, objectId, position, blocks) => {
                              encodeApplicationObjectId2222222(buffer, objectId.type, objectId.instance);
                              if (isStream) {
                                encodeOpeningTag2222222(buffer, 0);
                                encodeApplicationSigned2222222(buffer, position);
                                encodeApplicationOctetString2222222(buffer, blocks[0], 0, blocks[0].length);
                                encodeClosingTag2222222(buffer, 0);
                              } else {
                                encodeOpeningTag2222222(buffer, 1);
                                encodeApplicationSigned2222222(buffer, position);
                                encodeApplicationUnsigned2222222(buffer, blocks.length);
                                for (let i = 0; i < blocks.length; i++) {
                                  encodeApplicationOctetString2222222(
                                    buffer,
                                    blocks[i],
                                    0,
                                    blocks[i].length
                                  );
                                }
                                encodeClosingTag2222222(buffer, 1);
                              }
                            };
                            var decode52222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let isStream;
                              let position;
                              let blocks = [];
                              let blockCount;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 12) {
                                return void 0;
                              }
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              let objectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              if (decodeIsOpeningTagNumber2222222(buffer, offset + len, 0)) {
                                isStream = true;
                                len++;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 3) {
                                  return void 0;
                                }
                                decodedValue = decodeSigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                position = decodedValue.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 6) {
                                  return void 0;
                                }
                                decodedValue = decodeOctetString2222222(
                                  buffer,
                                  offset + len,
                                  apduLen,
                                  0,
                                  result.value
                                );
                                len += decodedValue.len;
                                blocks.push(decodedValue.value);
                                if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 0)) {
                                  return void 0;
                                }
                                len++;
                              } else if (decodeIsOpeningTagNumber2222222(buffer, offset + len, 1)) {
                                isStream = false;
                                len++;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 3) {
                                  return void 0;
                                }
                                decodedValue = decodeSigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                position = decodedValue.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 2) {
                                  return void 0;
                                }
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                blockCount = decodedValue.value;
                                for (let i = 0; i < blockCount; i++) {
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber !== 6) {
                                    return void 0;
                                  }
                                  decodedValue = decodeOctetString2222222(
                                    buffer,
                                    offset + len,
                                    apduLen,
                                    0,
                                    result.value
                                  );
                                  len += decodedValue.len;
                                  blocks.push(decodedValue.value);
                                }
                                if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 1)) {
                                  return void 0;
                                }
                                len++;
                              } else {
                                return void 0;
                              }
                              return {
                                len,
                                isStream,
                                objectId,
                                position,
                                blocks
                              };
                            };
                            var encodeAcknowledge22222222 = (buffer, isStream, position) => {
                              if (isStream) {
                                encodeContextSigned2222222(buffer, 0, position);
                              } else {
                                encodeContextSigned2222222(buffer, 1, position);
                              }
                            };
                            var decodeAcknowledge22222222 = (buffer, offset, length = 0) => {
                              let len = length;
                              let isStream = false;
                              let position = 0;
                              let decodedValue;
                              const result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber === 0) {
                                isStream = true;
                              } else if (result.tagNumber === 1) {
                                isStream = false;
                              } else {
                                return void 0;
                              }
                              decodedValue = decodeSigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              position = decodedValue.value;
                              return {
                                len,
                                isStream,
                                position
                              };
                            };
                            var cov_notify_exports2222222 = {};
                            __export2222222(cov_notify_exports2222222, {
                              decode: () => decode62222222,
                              encode: () => encode62222222
                            });
                            var encode62222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                              encodeContextUnsigned2222222(buffer, 0, subscriberProcessId);
                              encodeContextObjectId2222222(
                                buffer,
                                1,
                                8,
                                initiatingDeviceId
                              );
                              encodeContextObjectId2222222(
                                buffer,
                                2,
                                monitoredObjectId.type,
                                monitoredObjectId.instance
                              );
                              encodeContextUnsigned2222222(buffer, 3, timeRemaining);
                              encodeOpeningTag2222222(buffer, 4);
                              values.forEach((value) => {
                                encodeContextEnumerated2222222(buffer, 0, value.property.id);
                                if (value.property.index === ASN1_ARRAY_ALL2222222) {
                                  encodeContextUnsigned2222222(buffer, 1, value.property.index);
                                }
                                encodeOpeningTag2222222(buffer, 2);
                                value.value.forEach((v) => {
                                  bacappEncodeApplicationData2222222(buffer, v);
                                });
                                encodeClosingTag2222222(buffer, 2);
                                if (value.priority === ASN1_NO_PRIORITY2222222) {
                                  encodeContextUnsigned2222222(buffer, 3, value.priority);
                                }
                              });
                              encodeClosingTag2222222(buffer, 4);
                            };
                            var decode62222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              const subscriberProcessId = decodedValue.value;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              const initiatingDeviceId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              if (!decodeIsContextTag2222222(buffer, offset + len, 2)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              const monitoredObjectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              if (!decodeIsContextTag2222222(buffer, offset + len, 3)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              const timeRemaining = decodedValue.value;
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 4)) {
                                return void 0;
                              }
                              len++;
                              const values = [];
                              while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222(buffer, offset + len, 4)) {
                                let newEntry = {};
                                newEntry.property = {};
                                if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                  return void 0;
                                }
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                newEntry.property.id = decodedValue.value;
                                if (decodeIsContextTag2222222(buffer, offset + len, 1)) {
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  newEntry.property.index = decodedValue.value;
                                } else {
                                  newEntry.property.index = ASN1_ARRAY_ALL2222222;
                                }
                                if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 2)) {
                                  return void 0;
                                }
                                len++;
                                const properties = [];
                                while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222(buffer, offset + len, 2)) {
                                  decodedValue = bacappDecodeApplicationData2222222(
                                    buffer,
                                    offset + len,
                                    apduLen + offset,
                                    monitoredObjectId.type,
                                    newEntry.property.id
                                  );
                                  if (!decodedValue) {
                                    return void 0;
                                  }
                                  len += decodedValue.len;
                                  delete decodedValue.len;
                                  properties.push(decodedValue);
                                }
                                newEntry.value = properties;
                                len++;
                                if (decodeIsContextTag2222222(buffer, offset + len, 3)) {
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  newEntry.priority = decodedValue.value;
                                } else {
                                  newEntry.priority = ASN1_NO_PRIORITY2222222;
                                }
                                values.push(newEntry);
                              }
                              return {
                                len,
                                subscriberProcessId,
                                initiatingDeviceId,
                                monitoredObjectId,
                                timeRemaining,
                                values
                              };
                            };
                            var create_object_exports2222222 = {};
                            __export2222222(create_object_exports2222222, {
                              decode: () => decode72222222,
                              encode: () => encode72222222,
                              encodeAcknowledge: () => encodeAcknowledge32222222
                            });
                            var encode72222222 = (buffer, objectId, values) => {
                              encodeOpeningTag2222222(buffer, 0);
                              encodeContextObjectId2222222(buffer, 1, objectId.type, objectId.instance);
                              encodeClosingTag2222222(buffer, 0);
                              encodeOpeningTag2222222(buffer, 1);
                              values.forEach((propertyValue) => {
                                encodeContextEnumerated2222222(buffer, 0, propertyValue.property.id);
                                if (propertyValue.property.index !== ASN1_ARRAY_ALL2222222) {
                                  encodeContextUnsigned2222222(buffer, 1, propertyValue.property.index);
                                }
                                encodeOpeningTag2222222(buffer, 2);
                                propertyValue.value.forEach((value) => {
                                  bacappEncodeApplicationData2222222(buffer, value);
                                });
                                encodeClosingTag2222222(buffer, 2);
                                if (propertyValue.priority !== ASN1_NO_PRIORITY2222222) {
                                  encodeContextUnsigned2222222(buffer, 3, propertyValue.priority);
                                }
                              });
                              encodeClosingTag2222222(buffer, 1);
                            };
                            var decode72222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let objectId;
                              const valueList = [];
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber === 0 && apduLen > len) {
                                apduLen -= len;
                                if (apduLen < 4) {
                                  return void 0;
                                }
                                decodedValue = decodeContextObjectId2222222(buffer, offset + len, 1);
                                len += decodedValue.len;
                                objectId = {
                                  type: decodedValue.objectType,
                                  instance: decodedValue.instance
                                };
                              } else {
                                return void 0;
                              }
                              if (decodeIsClosingTag2222222(buffer, offset + len)) {
                                len++;
                              }
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              len++;
                              while (apduLen - len > 1) {
                                let newEntry = {};
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 0) {
                                  return void 0;
                                }
                                decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                let propertyId = decodedValue.value;
                                let arraIndex = ASN1_ARRAY_ALL2222222;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber === 1) {
                                  decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  arraIndex += decodedValue.value;
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                }
                                newEntry.property = { id: propertyId, index: arraIndex };
                                if (result.tagNumber === 2 && decodeIsOpeningTag2222222(buffer, offset + len - 1)) {
                                  const values = [];
                                  while (!decodeIsClosingTag2222222(buffer, offset + len)) {
                                    decodedValue = bacappDecodeApplicationData2222222(
                                      buffer,
                                      offset + len,
                                      apduLen + offset,
                                      objectId.type,
                                      propertyId
                                    );
                                    if (!decodedValue) {
                                      return void 0;
                                    }
                                    len += decodedValue.len;
                                    delete decodedValue.len;
                                    values.push(decodedValue);
                                  }
                                  len++;
                                  newEntry.value = values;
                                } else {
                                  return void 0;
                                }
                                valueList.push(newEntry);
                              }
                              if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              len++;
                              return {
                                len,
                                objectId,
                                values: valueList
                              };
                            };
                            var encodeAcknowledge32222222 = (buffer, objectId) => {
                              encodeApplicationObjectId2222222(buffer, objectId.type, objectId.instance);
                            };
                            var delete_object_exports2222222 = {};
                            __export2222222(delete_object_exports2222222, {
                              decode: () => decode82222222,
                              encode: () => encode82222222
                            });
                            var decode82222222 = (buffer, offset, apduLen) => {
                              const result = decodeTagNumberAndValue2222222(buffer, offset);
                              if (result.tagNumber !== 12) {
                                return void 0;
                              }
                              let len = 1;
                              const value = decodeObjectId2222222(buffer, offset + len);
                              len += value.len;
                              if (len !== apduLen) {
                                return void 0;
                              }
                              value.len = len;
                              return value;
                            };
                            var encode82222222 = (buffer, objectId) => {
                              encodeApplicationObjectId2222222(buffer, objectId.type, objectId.instance);
                            };
                            var device_communication_control_exports2222222 = {};
                            __export2222222(device_communication_control_exports2222222, {
                              decode: () => decode92222222,
                              encode: () => encode92222222
                            });
                            var encode92222222 = (buffer, timeDuration, enableDisable, password) => {
                              if (timeDuration > 0) {
                                encodeContextUnsigned2222222(buffer, 0, timeDuration);
                              }
                              encodeContextEnumerated2222222(buffer, 1, enableDisable);
                              if (password && password !== "") {
                                encodeContextCharacterString2222222(buffer, 2, password);
                              }
                            };
                            var decode92222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let value = {};
                              let decodedValue;
                              let result;
                              if (decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                value.timeDuration = decodedValue.value;
                                len += decodedValue.len;
                              }
                              if (!decodeIsContextTag2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              value.enableDisable = decodedValue.value;
                              len += decodedValue.len;
                              if (len < apduLen) {
                                if (!decodeIsContextTag2222222(buffer, offset + len, 2)) {
                                  return void 0;
                                }
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeCharacterString2222222(
                                  buffer,
                                  offset + len,
                                  apduLen - (offset + len),
                                  result.value
                                );
                                value.password = decodedValue.value;
                                len += decodedValue.len;
                              }
                              value.len = len;
                              return value;
                            };
                            var error_exports2222222 = {};
                            __export2222222(error_exports2222222, {
                              buildMessage: () => buildMessage2222222,
                              decode: () => decode102222222,
                              encode: () => encode102222222
                            });
                            var encode102222222 = (buffer, errorClass, errorCode) => {
                              encodeApplicationEnumerated2222222(buffer, errorClass);
                              encodeApplicationEnumerated2222222(buffer, errorCode);
                            };
                            var decode102222222 = (buffer, offset) => {
                              const orgOffset = offset;
                              let result;
                              result = decodeTagNumberAndValue2222222(buffer, offset);
                              offset += result.len;
                              const errorClass = decodeEnumerated2222222(buffer, offset, result.value);
                              offset += errorClass.len;
                              result = decodeTagNumberAndValue2222222(buffer, offset);
                              offset += result.len;
                              const errorCode = decodeEnumerated2222222(buffer, offset, result.value);
                              offset += errorClass.len;
                              return {
                                len: offset - orgOffset,
                                class: errorClass.value,
                                code: errorCode.value
                              };
                            };
                            var buildMessage2222222 = function(result) {
                              return "BacnetError Class: " + ErrorClassName2222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName2222222[result.code] + " (" + result.code + ")";
                            };
                            var event_information_exports2222222 = {};
                            __export2222222(event_information_exports2222222, {
                              decode: () => decode112222222,
                              encode: () => encode112222222
                            });
                            var encode112222222 = (buffer, events, moreEvents) => {
                              encodeOpeningTag2222222(buffer, 0);
                              events.forEach((event) => {
                                encodeContextObjectId2222222(
                                  buffer,
                                  0,
                                  event.objectId.type,
                                  event.objectId.instance
                                );
                                encodeContextEnumerated2222222(buffer, 1, event.eventState);
                                encodeContextBitstring2222222(buffer, 2, event.acknowledgedTransitions);
                                encodeOpeningTag2222222(buffer, 3);
                                for (let i = 0; i < 3; i++) {
                                  encodeApplicationDate2222222(buffer, event.eventTimeStamps[i]);
                                  encodeApplicationTime2222222(buffer, event.eventTimeStamps[i]);
                                }
                                encodeClosingTag2222222(buffer, 3);
                                encodeContextEnumerated2222222(buffer, 4, event.notifyType);
                                encodeContextBitstring2222222(buffer, 5, event.eventEnable);
                                encodeOpeningTag2222222(buffer, 6);
                                for (let i = 0; i < 3; i++) {
                                  encodeApplicationUnsigned2222222(buffer, event.eventPriorities[i]);
                                }
                                encodeClosingTag2222222(buffer, 6);
                              });
                              encodeClosingTag2222222(buffer, 0);
                              encodeContextBoolean2222222(buffer, 1, moreEvents);
                            };
                            var decode112222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              len++;
                              const alarms = [];
                              let moreEvents;
                              while (apduLen - 3 - len > 0) {
                                let value = {};
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeObjectId2222222(buffer, offset + len);
                                len += decodedValue.len;
                                value.objectId = {
                                  type: decodedValue.objectType,
                                  instance: decodedValue.instance
                                };
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.eventState = decodedValue.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeBitstring2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.acknowledgedTransitions = decodedValue.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                value.eventTimeStamps = [];
                                for (let i = 0; i < 3; i++) {
                                  if (result.tagNumber !== 0) {
                                    decodedValue = decodeApplicationDate2222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    const date = decodedValue.value.value;
                                    decodedValue = decodeApplicationTime2222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    const time = decodedValue.value.value;
                                    value.eventTimeStamps[i] = new Date(
                                      date.getFullYear(),
                                      date.getMonth(),
                                      date.getDate(),
                                      time.getHours(),
                                      time.getMinutes(),
                                      time.getSeconds(),
                                      time.getMilliseconds()
                                    );
                                  } else {
                                    len += result.value;
                                  }
                                }
                                len++;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.notifyType = decodedValue.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeBitstring2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.eventEnable = decodedValue.value;
                                len++;
                                value.eventPriorities = [];
                                for (let i = 0; i < 3; i++) {
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.eventPriorities[i] = decodedValue.value;
                                }
                                len++;
                                alarms.push(value);
                              }
                              moreEvents = buffer[apduLen - 1] === 1;
                              return {
                                len,
                                alarms,
                                moreEvents
                              };
                            };
                            var event_notify_data_exports2222222 = {};
                            __export2222222(event_notify_data_exports2222222, {
                              decode: () => decode122222222,
                              encode: () => encode122222222
                            });
                            var encode122222222 = (buffer, data) => {
                              encodeContextUnsigned2222222(buffer, 0, data.processId);
                              encodeContextObjectId2222222(
                                buffer,
                                1,
                                data.initiatingObjectId.type,
                                data.initiatingObjectId.instance
                              );
                              encodeContextObjectId2222222(
                                buffer,
                                2,
                                data.eventObjectId.type,
                                data.eventObjectId.instance
                              );
                              bacappEncodeContextTimestamp2222222(buffer, 3, data.timeStamp);
                              encodeContextUnsigned2222222(buffer, 4, data.notificationClass);
                              encodeContextUnsigned2222222(buffer, 5, data.priority);
                              encodeContextEnumerated2222222(buffer, 6, data.eventType);
                              if (data.messageText && data.messageText !== "") {
                                encodeContextCharacterString2222222(buffer, 7, data.messageText);
                              }
                              encodeContextEnumerated2222222(buffer, 8, data.notifyType);
                              switch (data.notifyType) {
                                case 0:
                                case 1:
                                  encodeContextBoolean2222222(buffer, 9, data.ackRequired);
                                  encodeContextEnumerated2222222(buffer, 10, data.fromState);
                                  break;
                                default:
                                  break;
                              }
                              encodeContextEnumerated2222222(buffer, 11, data.toState);
                              switch (data.notifyType) {
                                case 0:
                                case 1:
                                  encodeOpeningTag2222222(buffer, 12);
                                  switch (data.eventType) {
                                    case 0:
                                      encodeOpeningTag2222222(buffer, 0);
                                      encodeContextBitstring2222222(
                                        buffer,
                                        0,
                                        data.changeOfBitstringReferencedBitString
                                      );
                                      encodeContextBitstring2222222(
                                        buffer,
                                        1,
                                        data.changeOfBitstringStatusFlags
                                      );
                                      encodeClosingTag2222222(buffer, 0);
                                      break;
                                    case 1:
                                      encodeOpeningTag2222222(buffer, 1);
                                      encodeOpeningTag2222222(buffer, 0);
                                      bacappEncodePropertyState2222222(buffer, data.changeOfStateNewState);
                                      encodeClosingTag2222222(buffer, 0);
                                      encodeContextBitstring2222222(
                                        buffer,
                                        1,
                                        data.changeOfStateStatusFlags
                                      );
                                      encodeClosingTag2222222(buffer, 1);
                                      break;
                                    case 2:
                                      encodeOpeningTag2222222(buffer, 2);
                                      encodeOpeningTag2222222(buffer, 0);
                                      switch (data.changeOfValueTag) {
                                        case 0:
                                          encodeContextReal2222222(
                                            buffer,
                                            1,
                                            data.changeOfValueChangeValue
                                          );
                                          break;
                                        case 1:
                                          encodeContextBitstring2222222(
                                            buffer,
                                            0,
                                            data.changeOfValueChangedBits
                                          );
                                          break;
                                        default:
                                          throw new Error("NotImplemented");
                                      }
                                      encodeClosingTag2222222(buffer, 0);
                                      encodeContextBitstring2222222(
                                        buffer,
                                        1,
                                        data.changeOfValueStatusFlags
                                      );
                                      encodeClosingTag2222222(buffer, 2);
                                      break;
                                    case 4:
                                      encodeOpeningTag2222222(buffer, 4);
                                      encodeContextReal2222222(buffer, 0, data.floatingLimitReferenceValue);
                                      encodeContextBitstring2222222(
                                        buffer,
                                        1,
                                        data.floatingLimitStatusFlags
                                      );
                                      encodeContextReal2222222(buffer, 2, data.floatingLimitSetPointValue);
                                      encodeContextReal2222222(buffer, 3, data.floatingLimitErrorLimit);
                                      encodeClosingTag2222222(buffer, 4);
                                      break;
                                    case 5:
                                      encodeOpeningTag2222222(buffer, 5);
                                      encodeContextReal2222222(buffer, 0, data.outOfRangeExceedingValue);
                                      encodeContextBitstring2222222(buffer, 1, data.outOfRangeStatusFlags);
                                      encodeContextReal2222222(buffer, 2, data.outOfRangeDeadband);
                                      encodeContextReal2222222(buffer, 3, data.outOfRangeExceededLimit);
                                      encodeClosingTag2222222(buffer, 5);
                                      break;
                                    case 8:
                                      encodeOpeningTag2222222(buffer, 8);
                                      encodeContextEnumerated2222222(
                                        buffer,
                                        0,
                                        data.changeOfLifeSafetyNewState
                                      );
                                      encodeContextEnumerated2222222(
                                        buffer,
                                        1,
                                        data.changeOfLifeSafetyNewMode
                                      );
                                      encodeContextBitstring2222222(
                                        buffer,
                                        2,
                                        data.changeOfLifeSafetyStatusFlags
                                      );
                                      encodeContextEnumerated2222222(
                                        buffer,
                                        3,
                                        data.changeOfLifeSafetyOperationExpected
                                      );
                                      encodeClosingTag2222222(buffer, 8);
                                      break;
                                    case 10:
                                      encodeOpeningTag2222222(buffer, 10);
                                      bacappEncodeContextDeviceObjPropertyRef2222222(
                                        buffer,
                                        0,
                                        data.bufferReadyBufferProperty
                                      );
                                      encodeContextUnsigned2222222(
                                        buffer,
                                        1,
                                        data.bufferReadyPreviousNotification
                                      );
                                      encodeContextUnsigned2222222(
                                        buffer,
                                        2,
                                        data.bufferReadyCurrentNotification
                                      );
                                      encodeClosingTag2222222(buffer, 10);
                                      break;
                                    case 11:
                                      encodeOpeningTag2222222(buffer, 11);
                                      encodeContextUnsigned2222222(
                                        buffer,
                                        0,
                                        data.unsignedRangeExceedingValue
                                      );
                                      encodeContextBitstring2222222(
                                        buffer,
                                        1,
                                        data.unsignedRangeStatusFlags
                                      );
                                      encodeContextUnsigned2222222(
                                        buffer,
                                        2,
                                        data.unsignedRangeExceededLimit
                                      );
                                      encodeClosingTag2222222(buffer, 11);
                                      break;
                                    case 9:
                                    case 3:
                                      throw new Error("NotImplemented");
                                    default:
                                      throw new Error("NotImplemented");
                                  }
                                  encodeClosingTag2222222(buffer, 12);
                                  break;
                                case 2:
                                  throw new Error("NotImplemented");
                                default:
                                  break;
                              }
                            };
                            var decode122222222 = (buffer, offset) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let eventData = {};
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              eventData.processId = decodedValue.value;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              eventData.initiatingObjectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              if (!decodeIsContextTag2222222(buffer, offset + len, 2)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              eventData.eventObjectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              if (!decodeIsContextTag2222222(buffer, offset + len, 3)) {
                                return void 0;
                              }
                              len += 2;
                              decodedValue = decodeApplicationDate2222222(buffer, offset + len);
                              len += decodedValue.len;
                              const date = decodedValue.value.value;
                              decodedValue = decodeApplicationTime2222222(buffer, offset + len);
                              len += decodedValue.len;
                              const time = decodedValue.value.value;
                              eventData.timeStamp = new Date(
                                date.getFullYear(),
                                date.getMonth(),
                                date.getDate(),
                                time.getHours(),
                                time.getMinutes(),
                                time.getSeconds(),
                                time.getMilliseconds()
                              );
                              len += 2;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 4)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              eventData.notificationClass = decodedValue.value;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 5)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              eventData.priority = decodedValue.value;
                              if (eventData.priority > 255) {
                                return void 0;
                              }
                              if (!decodeIsContextTag2222222(buffer, offset + len, 6)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              eventData.eventType = decodedValue.value;
                              if (decodeIsContextTag2222222(buffer, offset + len, 7)) {
                                decodedValue = decodeContextCharacterString2222222(
                                  buffer,
                                  offset + len,
                                  2e4,
                                  7
                                );
                                len += decodedValue.len;
                                eventData.messageText = decodedValue.value;
                              }
                              if (!decodeIsContextTag2222222(buffer, offset + len, 8)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              eventData.notifyType = decodedValue.value;
                              switch (eventData.notifyType) {
                                case 0:
                                case 1:
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned2222222(buffer, offset + len, 1);
                                  len += decodedValue.len;
                                  eventData.ackRequired = decodedValue.value > 0;
                                  if (!decodeIsContextTag2222222(buffer, offset + len, 10)) {
                                    return void 0;
                                  }
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeEnumerated2222222(
                                    buffer,
                                    offset + len,
                                    result.value
                                  );
                                  len += decodedValue.len;
                                  eventData.fromState = decodedValue.value;
                                  break;
                                default:
                                  break;
                              }
                              if (!decodeIsContextTag2222222(buffer, offset + len, 11)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              eventData.toState = decodedValue.value;
                              eventData.len = len;
                              return eventData;
                            };
                            var get_enrollment_summary_exports2222222 = {};
                            __export2222222(get_enrollment_summary_exports2222222, {
                              decode: () => decode132222222,
                              decodeAcknowledge: () => decodeAcknowledge32222222,
                              encode: () => encode132222222,
                              encodeAcknowledge: () => encodeAcknowledge42222222
                            });
                            var encode132222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                              encodeContextEnumerated2222222(buffer, 0, acknowledgmentFilter);
                              if (enrollmentFilter) {
                                encodeOpeningTag2222222(buffer, 1);
                                encodeOpeningTag2222222(buffer, 0);
                                encodeContextObjectId2222222(
                                  buffer,
                                  0,
                                  enrollmentFilter.objectId.type,
                                  enrollmentFilter.objectId.instance
                                );
                                encodeClosingTag2222222(buffer, 0);
                                encodeContextUnsigned2222222(buffer, 1, enrollmentFilter.processId);
                                encodeClosingTag2222222(buffer, 1);
                              }
                              if (eventStateFilter) {
                                encodeOpeningTag2222222(buffer, 2);
                                encodeContextEnumerated2222222(buffer, 0, eventStateFilter);
                                encodeClosingTag2222222(buffer, 2);
                              }
                              if (eventTypeFilter) {
                                encodeOpeningTag2222222(buffer, 3);
                                encodeContextEnumerated2222222(buffer, 0, eventTypeFilter);
                                encodeClosingTag2222222(buffer, 3);
                              }
                              if (priorityFilter) {
                                encodeOpeningTag2222222(buffer, 4);
                                encodeContextUnsigned2222222(buffer, 0, priorityFilter.min);
                                encodeContextUnsigned2222222(buffer, 1, priorityFilter.max);
                                encodeClosingTag2222222(buffer, 4);
                              }
                              if (notificationClassFilter) {
                                encodeOpeningTag2222222(buffer, 5);
                                encodeContextUnsigned2222222(buffer, 0, notificationClassFilter);
                                encodeClosingTag2222222(buffer, 5);
                              }
                            };
                            var decode132222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let value = {};
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.acknowledgmentFilter = decodedValue.value;
                              if (decodeIsContextTag2222222(buffer, offset + len, 1)) {
                                len++;
                                value.enrollmentFilter = {};
                                if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                  return void 0;
                                }
                                len++;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeObjectId2222222(buffer, offset + len);
                                len += decodedValue.len;
                                value.enrollmentFilter.objectId = {
                                  type: decodedValue.objectType,
                                  instance: decodedValue.instance
                                };
                                len++;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.enrollmentFilter.processId = decodedValue.value;
                                len++;
                              }
                              if (decodeIsContextTag2222222(buffer, offset + len, 2)) {
                                len++;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.eventStateFilter = decodedValue.value;
                                len++;
                              }
                              if (decodeIsContextTag2222222(buffer, offset + len, 3)) {
                                len++;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.eventTypeFilter = decodedValue.value;
                                len++;
                              }
                              if (decodeIsContextTag2222222(buffer, offset + len, 4)) {
                                len++;
                                value.priorityFilter = {};
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.priorityFilter.min = decodedValue.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.priorityFilter.max = decodedValue.value;
                                len++;
                              }
                              if (decodeIsContextTag2222222(buffer, offset + len, 5)) {
                                len++;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.notificationClassFilter = decodedValue.value;
                                len++;
                              }
                              value.len = len;
                              return value;
                            };
                            var encodeAcknowledge42222222 = (buffer, enrollmentSummaries) => {
                              enrollmentSummaries.forEach((enrollmentSummary) => {
                                encodeApplicationObjectId2222222(
                                  buffer,
                                  enrollmentSummary.objectId.type,
                                  enrollmentSummary.objectId.instance
                                );
                                encodeApplicationEnumerated2222222(buffer, enrollmentSummary.eventType);
                                encodeApplicationEnumerated2222222(buffer, enrollmentSummary.eventState);
                                encodeApplicationUnsigned2222222(buffer, enrollmentSummary.priority);
                                encodeApplicationUnsigned2222222(
                                  buffer,
                                  enrollmentSummary.notificationClass
                                );
                              });
                            };
                            var decodeAcknowledge32222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              const enrollmentSummaries = [];
                              while (apduLen - len > 0) {
                                const enrollmentSummary = {};
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 12) {
                                  return void 0;
                                }
                                result = decodeObjectId2222222(buffer, offset + len);
                                len += result.len;
                                enrollmentSummary.objectId = {
                                  type: result.objectType,
                                  instance: result.instance
                                };
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 9) {
                                  return void 0;
                                }
                                result = decodeEnumerated2222222(buffer, offset + len, result.value);
                                len += result.len;
                                enrollmentSummary.eventType = result.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 9) {
                                  return void 0;
                                }
                                result = decodeEnumerated2222222(buffer, offset + len, result.value);
                                len += result.len;
                                enrollmentSummary.eventState = result.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 2) {
                                  return void 0;
                                }
                                result = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += result.len;
                                enrollmentSummary.priority = result.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 2) {
                                  return void 0;
                                }
                                result = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += result.len;
                                enrollmentSummary.notificationClass = result.value;
                                enrollmentSummaries.push(enrollmentSummary);
                              }
                              return {
                                enrollmentSummaries,
                                len
                              };
                            };
                            var get_event_information_exports2222222 = {};
                            __export2222222(get_event_information_exports2222222, {
                              decode: () => decode142222222,
                              decodeAcknowledge: () => decodeAcknowledge42222222,
                              encode: () => encode142222222,
                              encodeAcknowledge: () => encodeAcknowledge52222222
                            });
                            var encode142222222 = (buffer, lastReceivedObjectId) => {
                              encodeContextObjectId2222222(
                                buffer,
                                0,
                                lastReceivedObjectId.type,
                                lastReceivedObjectId.instance
                              );
                            };
                            var decode142222222 = (buffer, offset) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let value = {};
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              value.lastReceivedObjectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              value.len = len;
                              return value;
                            };
                            var encodeAcknowledge52222222 = (buffer, events, moreEvents) => {
                              encodeOpeningTag2222222(buffer, 0);
                              events.forEach((eventData) => {
                                encodeContextObjectId2222222(
                                  buffer,
                                  0,
                                  eventData.objectId.type,
                                  eventData.objectId.instance
                                );
                                encodeContextEnumerated2222222(buffer, 1, eventData.eventState);
                                encodeContextBitstring2222222(buffer, 2, eventData.acknowledgedTransitions);
                                encodeOpeningTag2222222(buffer, 3);
                                for (let i = 0; i < 3; i++) {
                                  bacappEncodeTimestamp2222222(buffer, eventData.eventTimeStamps[i]);
                                }
                                encodeClosingTag2222222(buffer, 3);
                                encodeContextEnumerated2222222(buffer, 4, eventData.notifyType);
                                encodeContextBitstring2222222(buffer, 5, eventData.eventEnable);
                                encodeOpeningTag2222222(buffer, 6);
                                for (let i = 0; i < 3; i++) {
                                  encodeApplicationUnsigned2222222(buffer, eventData.eventPriorities[i]);
                                }
                                encodeClosingTag2222222(buffer, 6);
                              });
                              encodeClosingTag2222222(buffer, 0);
                              encodeContextBoolean2222222(buffer, 1, moreEvents);
                            };
                            var decodeAcknowledge42222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let value = {};
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              value.events = [];
                              while (apduLen - len > 3) {
                                let event = {};
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeObjectId2222222(buffer, offset + len);
                                len += decodedValue.len;
                                event.objectId = {
                                  type: decodedValue.objectType,
                                  instance: decodedValue.instance
                                };
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                event.eventState = decodedValue.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeBitstring2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                event.acknowledgedTransitions = decodedValue.value;
                                if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 3)) {
                                  return void 0;
                                }
                                len++;
                                event.eventTimeStamps = [];
                                for (let i = 0; i < 3; i++) {
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                  if (result.tagNumber === 0) {
                                    decodedValue = decodeBacnetTime2222222(
                                      buffer,
                                      offset + len,
                                      result.value
                                    );
                                    len += decodedValue.len;
                                    event.eventTimeStamps[i] = {
                                      value: decodedValue.value,
                                      type: 0
                                      /* TIME */
                                    };
                                  } else if (result.tagNumber === 1) {
                                    decodedValue = decodeUnsigned2222222(
                                      buffer,
                                      offset + len,
                                      result.value
                                    );
                                    len += decodedValue.len;
                                    event.eventTimeStamps[i] = {
                                      value: decodedValue.value,
                                      type: 1
                                      /* SEQUENCE_NUMBER */
                                    };
                                  } else if (result.tagNumber === 2) {
                                    let date = decodeApplicationDate2222222(
                                      buffer,
                                      offset + len
                                    );
                                    len += date.len;
                                    date = date.value.value;
                                    let time = decodeApplicationTime2222222(
                                      buffer,
                                      offset + len
                                    );
                                    len += time.len;
                                    time = time.value.value;
                                    event.eventTimeStamps[i] = {
                                      value: new Date(
                                        date.getFullYear(),
                                        date.getMonth(),
                                        date.getDate(),
                                        time.getHours(),
                                        time.getMinutes(),
                                        time.getSeconds(),
                                        time.getMilliseconds()
                                      ),
                                      type: 2
                                      /* DATETIME */
                                    };
                                    len++;
                                  }
                                }
                                if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 3)) {
                                  return void 0;
                                }
                                len++;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                event.notifyType = decodedValue.value;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeBitstring2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                event.eventEnable = decodedValue.value;
                                if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 6)) {
                                  return void 0;
                                }
                                len++;
                                event.eventPriorities = [];
                                for (let i = 0; i < 3; i++) {
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  event.eventPriorities[i] = decodedValue.value;
                                }
                                if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 6)) {
                                  return void 0;
                                }
                                len++;
                                value.events.push(event);
                              }
                              if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              value.moreEvents = buffer[offset + len] > 0;
                              len++;
                              value.len = len;
                              return value;
                            };
                            var i_am_exports2222222 = {};
                            __export2222222(i_am_exports2222222, {
                              decode: () => decode152222222,
                              encode: () => encode152222222
                            });
                            var encode152222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                              encodeApplicationObjectId2222222(buffer, 8, deviceId);
                              encodeApplicationUnsigned2222222(buffer, maxApdu);
                              encodeApplicationEnumerated2222222(buffer, segmentation);
                              encodeApplicationUnsigned2222222(buffer, vendorId);
                            };
                            var decode152222222 = (buffer, offset) => {
                              let result;
                              let apduLen = 0;
                              const orgOffset = offset;
                              result = decodeTagNumberAndValue2222222(buffer, offset + apduLen);
                              apduLen += result.len;
                              if (result.tagNumber !== 12) {
                                return void 0;
                              }
                              result = decodeObjectId2222222(buffer, offset + apduLen);
                              apduLen += result.len;
                              if (result.objectType !== 8) {
                                return void 0;
                              }
                              const deviceId = result.instance;
                              result = decodeTagNumberAndValue2222222(buffer, offset + apduLen);
                              apduLen += result.len;
                              if (result.tagNumber !== 2) {
                                return void 0;
                              }
                              result = decodeUnsigned2222222(buffer, offset + apduLen, result.value);
                              apduLen += result.len;
                              const maxApdu = result.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + apduLen);
                              apduLen += result.len;
                              if (result.tagNumber !== 9) {
                                return void 0;
                              }
                              result = decodeEnumerated2222222(buffer, offset + apduLen, result.value);
                              apduLen += result.len;
                              if (result.value > 3) {
                                return void 0;
                              }
                              const segmentation = result.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + apduLen);
                              apduLen += result.len;
                              if (result.tagNumber !== 2) {
                                return void 0;
                              }
                              result = decodeUnsigned2222222(buffer, offset + apduLen, result.value);
                              apduLen += result.len;
                              if (result.value > 65535) {
                                return void 0;
                              }
                              const vendorId = result.value;
                              return {
                                len: offset - orgOffset,
                                deviceId,
                                maxApdu,
                                segmentation,
                                vendorId
                              };
                            };
                            var i_have_exports2222222 = {};
                            __export2222222(i_have_exports2222222, {
                              decode: () => decode162222222,
                              encode: () => encode162222222
                            });
                            var encode162222222 = (buffer, deviceId, objectId, objectName) => {
                              encodeApplicationObjectId2222222(buffer, deviceId.type, deviceId.instance);
                              encodeApplicationObjectId2222222(buffer, objectId.type, objectId.instance);
                              encodeApplicationCharacterString2222222(buffer, objectName);
                            };
                            var decode162222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let value = {};
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              value.deviceId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              value.objectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeCharacterString2222222(
                                buffer,
                                offset + len,
                                apduLen - (offset + len),
                                result.value
                              );
                              len += decodedValue.len;
                              value.objectName = decodedValue.value;
                              value.len = len;
                              return value;
                            };
                            var life_safety_operation_exports2222222 = {};
                            __export2222222(life_safety_operation_exports2222222, {
                              decode: () => decode172222222,
                              encode: () => encode172222222
                            });
                            var encode172222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                              encodeContextUnsigned2222222(buffer, 0, processId);
                              encodeContextCharacterString2222222(buffer, 1, requestingSource);
                              encodeContextEnumerated2222222(buffer, 2, operation);
                              encodeContextObjectId2222222(
                                buffer,
                                3,
                                targetObjectId.type,
                                targetObjectId.instance
                              );
                            };
                            var decode172222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let value = {};
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.processId = decodedValue.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeCharacterString2222222(
                                buffer,
                                offset + len,
                                apduLen - (offset + len),
                                result.value
                              );
                              len += decodedValue.len;
                              value.requestingSource = decodedValue.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.operation = decodedValue.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              value.targetObjectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              value.len = len;
                              return value;
                            };
                            var private_transfer_exports2222222 = {};
                            __export2222222(private_transfer_exports2222222, {
                              decode: () => decode182222222,
                              encode: () => encode182222222
                            });
                            var encode182222222 = (buffer, vendorId, serviceNumber, data) => {
                              encodeContextUnsigned2222222(buffer, 0, vendorId);
                              encodeContextUnsigned2222222(buffer, 1, serviceNumber);
                              encodeOpeningTag2222222(buffer, 2);
                              for (let i = 0; i < data.length; i++) {
                                buffer.buffer[buffer.offset++] = data[i];
                              }
                              encodeClosingTag2222222(buffer, 2);
                            };
                            var decode182222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let value = {};
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.vendorId = decodedValue.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.serviceNumber = decodedValue.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              const size = apduLen - (offset + len + 1);
                              const data = [];
                              for (let i = 0; i < size; i++) {
                                data.push(buffer[offset + len++]);
                              }
                              value.data = data;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              value.len = len;
                              return value;
                            };
                            var read_property_exports2222222 = {};
                            __export2222222(read_property_exports2222222, {
                              decode: () => decode192222222,
                              decodeAcknowledge: () => decodeAcknowledge52222222,
                              encode: () => encode192222222,
                              encodeAcknowledge: () => encodeAcknowledge62222222
                            });
                            var encode192222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                              if (objectType <= ASN1_MAX_OBJECT2222222) {
                                encodeContextObjectId2222222(buffer, 0, objectType, objectInstance);
                              }
                              if (propertyId <= ASN1_MAX_PROPERTY_ID2222222) {
                                encodeContextEnumerated2222222(buffer, 1, propertyId);
                              }
                              if (arrayIndex !== ASN1_ARRAY_ALL2222222) {
                                encodeContextUnsigned2222222(
                                  buffer,
                                  2,
                                  arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL2222222
                                );
                              }
                            };
                            var decode192222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              if (apduLen < 7) {
                                return void 0;
                              }
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              let objectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              let property = {};
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 1) {
                                return void 0;
                              }
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              property.id = decodedValue.value;
                              property.index = ASN1_ARRAY_ALL2222222;
                              if (len < apduLen) {
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber === 2 && len < apduLen) {
                                  decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  property.index = decodedValue.value;
                                } else {
                                  return void 0;
                                }
                              }
                              if (len < apduLen) {
                                return void 0;
                              }
                              return {
                                len,
                                objectId,
                                property
                              };
                            };
                            var encodeAcknowledge62222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                              encodeContextObjectId2222222(buffer, 0, objectId.type, objectId.instance);
                              encodeContextEnumerated2222222(buffer, 1, propertyId);
                              if (arrayIndex !== ASN1_ARRAY_ALL2222222) {
                                encodeContextUnsigned2222222(buffer, 2, arrayIndex);
                              }
                              encodeOpeningTag2222222(buffer, 3);
                              values.forEach((value) => {
                                bacappEncodeApplicationData2222222(buffer, value);
                              });
                              encodeClosingTag2222222(buffer, 3);
                            };
                            var decodeAcknowledge52222222 = (buffer, offset, apduLen) => {
                              let result;
                              let decodedValue;
                              let objectId = {};
                              let property = {};
                              if (!decodeIsContextTag2222222(buffer, offset, 0)) {
                                return void 0;
                              }
                              let len = 1;
                              result = decodeObjectId2222222(buffer, offset + len);
                              len += result.len;
                              objectId.type = result.objectType;
                              objectId.instance = result.instance;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 1) {
                                return void 0;
                              }
                              result = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += result.len;
                              property.id = result.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              if (result.tagNumber === 2) {
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                property.index = decodedValue.value;
                              } else {
                                property.index = ASN1_ARRAY_ALL2222222;
                              }
                              const values = [];
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 3)) {
                                return void 0;
                              }
                              len++;
                              while (apduLen - len > 1) {
                                result = bacappDecodeApplicationData2222222(
                                  buffer,
                                  offset + len,
                                  apduLen + offset,
                                  objectId.type,
                                  property.id
                                );
                                if (!result) {
                                  return void 0;
                                }
                                len += result.len;
                                delete result.len;
                                values.push(result);
                              }
                              if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 3)) {
                                return void 0;
                              }
                              len++;
                              return {
                                len,
                                objectId,
                                property,
                                values
                              };
                            };
                            var read_property_multiple_exports2222222 = {};
                            __export2222222(read_property_multiple_exports2222222, {
                              decode: () => decode202222222,
                              decodeAcknowledge: () => decodeAcknowledge62222222,
                              encode: () => encode202222222,
                              encodeAcknowledge: () => encodeAcknowledge72222222
                            });
                            var encode202222222 = (buffer, properties) => {
                              properties.forEach((value) => {
                                encodeReadAccessSpecification2222222(buffer, value);
                              });
                            };
                            var decode202222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              const values = [];
                              while (apduLen - len > 0) {
                                const decodedValue = decodeReadAccessSpecification2222222(
                                  buffer,
                                  offset + len,
                                  apduLen - len
                                );
                                if (!decodedValue) {
                                  return void 0;
                                }
                                len += decodedValue.len;
                                values.push(decodedValue.value);
                              }
                              return {
                                len,
                                properties: values
                              };
                            };
                            var encodeAcknowledge72222222 = (buffer, values) => {
                              values.forEach((value) => {
                                encodeReadAccessResult2222222(buffer, value);
                              });
                            };
                            var decodeAcknowledge62222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              const values = [];
                              while (apduLen - len > 0) {
                                const result = decodeReadAccessResult2222222(
                                  buffer,
                                  offset + len,
                                  apduLen - len
                                );
                                if (!result || result === -1) {
                                  return void 0;
                                }
                                len += result.len;
                                values.push(result.value);
                              }
                              return {
                                len,
                                values
                              };
                            };
                            var read_range_exports2222222 = {};
                            __export2222222(read_range_exports2222222, {
                              decode: () => decode212222222,
                              decodeAcknowledge: () => decodeAcknowledge72222222,
                              encode: () => encode212222222,
                              encodeAcknowledge: () => encodeAcknowledge82222222
                            });
                            var encode212222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                              encodeContextObjectId2222222(buffer, 0, objectId.type, objectId.instance);
                              encodeContextEnumerated2222222(buffer, 1, propertyId);
                              if (arrayIndex !== ASN1_ARRAY_ALL2222222) {
                                encodeContextUnsigned2222222(buffer, 2, arrayIndex);
                              }
                              switch (requestType) {
                                case 0:
                                  encodeOpeningTag2222222(buffer, 3);
                                  encodeApplicationUnsigned2222222(buffer, position);
                                  encodeApplicationSigned2222222(buffer, count);
                                  encodeClosingTag2222222(buffer, 3);
                                  break;
                                case 1:
                                  encodeOpeningTag2222222(buffer, 6);
                                  encodeApplicationUnsigned2222222(buffer, position);
                                  encodeApplicationSigned2222222(buffer, count);
                                  encodeClosingTag2222222(buffer, 6);
                                  break;
                                case 2:
                                  encodeOpeningTag2222222(buffer, 7);
                                  encodeApplicationDate2222222(buffer, time);
                                  encodeApplicationTime2222222(buffer, time);
                                  encodeApplicationSigned2222222(buffer, count);
                                  encodeClosingTag2222222(buffer, 7);
                                  break;
                                default:
                                  break;
                              }
                            };
                            var decode212222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let requestType;
                              let position;
                              let time;
                              let count;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              decodedValue = decodeObjectId2222222(buffer, offset + len, 0);
                              len += decodedValue.len;
                              let objectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              let property = {};
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 1) {
                                return void 0;
                              }
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              property.id = decodedValue.value;
                              if (len < apduLen && decodeIsContextTag2222222(buffer, offset + len, 2)) {
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                property.index = decodedValue.value;
                              } else {
                                property.index = ASN1_ARRAY_ALL2222222;
                              }
                              if (len < apduLen) {
                                result = decodeTagNumber2222222(buffer, offset + len);
                                len += result.len;
                                switch (result.tagNumber) {
                                  case 3:
                                    requestType = 0;
                                    result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeUnsigned2222222(
                                      buffer,
                                      offset + len,
                                      result.value
                                    );
                                    len += decodedValue.len;
                                    position = decodedValue.value;
                                    result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeSigned2222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    count = decodedValue.value;
                                    break;
                                  case 6:
                                    requestType = 1;
                                    result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeUnsigned2222222(
                                      buffer,
                                      offset + len,
                                      result.value
                                    );
                                    len += decodedValue.len;
                                    position = decodedValue.value;
                                    result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeSigned2222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    count = decodedValue.value;
                                    break;
                                  case 7:
                                    requestType = 2;
                                    decodedValue = decodeApplicationDate2222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    const tmpDate = decodedValue.value.value;
                                    decodedValue = decodeApplicationTime2222222(buffer, offset + len);
                                    len += decodedValue.len;
                                    const tmpTime = decodedValue.value.value;
                                    time = new Date(
                                      tmpDate.getYear(),
                                      tmpDate.getMonth(),
                                      tmpDate.getDate(),
                                      tmpTime.getHours(),
                                      tmpTime.getMinutes(),
                                      tmpTime.getSeconds(),
                                      tmpTime.getMilliseconds()
                                    );
                                    result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                    len += result.len;
                                    decodedValue = decodeSigned2222222(buffer, offset + len, result.value);
                                    len += decodedValue.len;
                                    count = decodedValue.value;
                                    break;
                                  default:
                                    return void 0;
                                }
                                result = decodeTagNumber2222222(buffer, offset + len);
                                len += result.len;
                              }
                              return {
                                len,
                                objectId,
                                property,
                                requestType,
                                position,
                                time,
                                count
                              };
                            };
                            var encodeAcknowledge82222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                              encodeContextObjectId2222222(buffer, 0, objectId.type, objectId.instance);
                              encodeContextEnumerated2222222(buffer, 1, propertyId);
                              if (arrayIndex !== ASN1_ARRAY_ALL2222222) {
                                encodeContextUnsigned2222222(buffer, 2, arrayIndex);
                              }
                              encodeContextBitstring2222222(buffer, 3, resultFlags);
                              encodeContextUnsigned2222222(buffer, 4, itemCount);
                              encodeOpeningTag2222222(buffer, 5);
                              if (itemCount !== 0) {
                                applicationData.copy(
                                  buffer.buffer,
                                  buffer.offset,
                                  0,
                                  applicationData.length
                                );
                                buffer.offset += applicationData.length;
                              }
                              encodeClosingTag2222222(buffer, 5);
                              if (itemCount !== 0 && requestType && requestType !== 0) {
                                encodeContextUnsigned2222222(buffer, 6, firstSequence);
                              }
                            };
                            var decodeAcknowledge72222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              const objectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              const property = { index: ASN1_ARRAY_ALL2222222 };
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 1) {
                                return void 0;
                              }
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              property.id = decodedValue.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              if (result.tagNumber === 2 && len < apduLen) {
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                property.index = decodedValue.value;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeBitstring2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              const resultFlag = decodedValue.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              const itemCount = decodedValue.value;
                              if (!decodeIsOpeningTag2222222(buffer, offset + len)) {
                                return void 0;
                              }
                              len++;
                              const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                              return {
                                objectId,
                                property,
                                resultFlag,
                                itemCount,
                                rangeBuffer,
                                len
                              };
                            };
                            var register_foreign_device_exports2222222 = {};
                            __export2222222(register_foreign_device_exports2222222, {
                              decode: () => decode222222222,
                              encode: () => encode222222222
                            });
                            var encode222222222 = (buffer, ttl, length = 2) => {
                              encodeUnsigned2222222(buffer, ttl, length);
                            };
                            var decode222222222 = (buffer, offset, length = 2) => {
                              let len = 0;
                              let result = decodeUnsigned2222222(buffer, offset + len, length);
                              len += result.len;
                              return {
                                len,
                                ttl: result.value
                              };
                            };
                            var reinitialize_device_exports2222222 = {};
                            __export2222222(reinitialize_device_exports2222222, {
                              decode: () => decode232222222,
                              encode: () => encode232222222
                            });
                            var encode232222222 = (buffer, state, password) => {
                              encodeContextEnumerated2222222(buffer, 0, state);
                              if (password && password !== "") {
                                encodeContextCharacterString2222222(buffer, 1, password);
                              }
                            };
                            var decode232222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let value = {};
                              let result;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              let decodedValue = decodeEnumerated2222222(
                                buffer,
                                offset + len,
                                result.value
                              );
                              value.state = decodedValue.value;
                              len += decodedValue.len;
                              if (len < apduLen) {
                                if (!decodeIsContextTag2222222(buffer, offset + len, 1)) {
                                  return void 0;
                                }
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeCharacterString2222222(
                                  buffer,
                                  offset + len,
                                  apduLen - (offset + len),
                                  result.value
                                );
                                value.password = decodedValue.value;
                                len += decodedValue.len;
                              }
                              value.len = len;
                              return value;
                            };
                            var subscribe_cov_exports2222222 = {};
                            __export2222222(subscribe_cov_exports2222222, {
                              decode: () => decode242222222,
                              encode: () => encode242222222
                            });
                            var encode242222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                              encodeContextUnsigned2222222(buffer, 0, subscriberProcessId);
                              encodeContextObjectId2222222(
                                buffer,
                                1,
                                monitoredObjectId.type,
                                monitoredObjectId.instance
                              );
                              if (!cancellationRequest) {
                                encodeContextBoolean2222222(buffer, 2, issueConfirmedNotifications);
                                encodeContextUnsigned2222222(buffer, 3, lifetime);
                              }
                            };
                            var decode242222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let value = {};
                              let result;
                              let decodedValue;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.subscriberProcessId = decodedValue.value;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              value.monitoredObjectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              value.cancellationRequest = true;
                              if (len < apduLen) {
                                value.issueConfirmedNotifications = false;
                                if (decodeIsContextTag2222222(buffer, offset + len, 2)) {
                                  value.cancellationRequest = false;
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                  value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                  len++;
                                }
                                value.lifetime = 0;
                                if (decodeIsContextTag2222222(buffer, offset + len, 3)) {
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                  decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  value.lifetime = decodedValue.value;
                                }
                              }
                              value.len = len;
                              return value;
                            };
                            var subscribe_property_exports2222222 = {};
                            __export2222222(subscribe_property_exports2222222, {
                              decode: () => decode252222222,
                              encode: () => encode252222222
                            });
                            var encode252222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                              encodeContextUnsigned2222222(buffer, 0, subscriberProcessId);
                              encodeContextObjectId2222222(
                                buffer,
                                1,
                                monitoredObjectId.type,
                                monitoredObjectId.instance
                              );
                              if (!cancellationRequest) {
                                encodeContextBoolean2222222(buffer, 2, issueConfirmedNotifications);
                                encodeContextUnsigned2222222(buffer, 3, lifetime);
                              }
                              encodeOpeningTag2222222(buffer, 4);
                              encodeContextEnumerated2222222(buffer, 0, monitoredProperty.id);
                              if (monitoredProperty.index !== ASN1_ARRAY_ALL2222222) {
                                encodeContextUnsigned2222222(buffer, 1, monitoredProperty.index);
                              }
                              encodeClosingTag2222222(buffer, 4);
                              if (covIncrementPresent) {
                                encodeContextReal2222222(buffer, 5, covIncrement);
                              }
                            };
                            var decode252222222 = (buffer, offset) => {
                              let len = 0;
                              let value = {};
                              let result;
                              let decodedValue;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.subscriberProcessId = decodedValue.value;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              value.monitoredObjectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              value.cancellationRequest = true;
                              value.issueConfirmedNotifications = false;
                              if (decodeIsContextTag2222222(buffer, offset + len, 2)) {
                                value.cancellationRequest = false;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                value.issueConfirmedNotifications = buffer[offset + len] > 0;
                                len++;
                              }
                              value.lifetime = 0;
                              if (decodeIsContextTag2222222(buffer, offset + len, 3)) {
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.lifetime = decodedValue.value;
                              }
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 4)) {
                                return void 0;
                              }
                              len++;
                              value.monitoredProperty = {};
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.monitoredProperty.id = decodedValue.value;
                              value.monitoredProperty.index = ASN1_ARRAY_ALL2222222;
                              if (decodeIsContextTag2222222(buffer, offset + len, 1)) {
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.monitoredProperty.index = decodedValue.value;
                              }
                              if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 4)) {
                                return void 0;
                              }
                              len++;
                              value.covIncrement = 0;
                              if (decodeIsContextTag2222222(buffer, offset + len, 5)) {
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeReal2222222(buffer, offset + len);
                                len += decodedValue.len;
                                value.covIncrement = decodedValue.value;
                              }
                              value.len = len;
                              return value;
                            };
                            var time_sync_exports2222222 = {};
                            __export2222222(time_sync_exports2222222, {
                              decode: () => decode262222222,
                              encode: () => encode262222222
                            });
                            var encode262222222 = (buffer, time) => {
                              encodeApplicationDate2222222(buffer, time);
                              encodeApplicationTime2222222(buffer, time);
                            };
                            var decode262222222 = (buffer, offset, length) => {
                              let len = 0;
                              let result;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 10) {
                                return void 0;
                              }
                              const date = decodeDate2222222(buffer, offset + len);
                              len += date.len;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 11) {
                                return void 0;
                              }
                              const time = decodeBacnetTime2222222(buffer, offset + len);
                              len += time.len;
                              return {
                                len,
                                value: new Date(
                                  date.value.getFullYear(),
                                  date.value.getMonth(),
                                  date.value.getDate(),
                                  time.value.getHours(),
                                  time.value.getMinutes(),
                                  time.value.getSeconds(),
                                  time.value.getMilliseconds()
                                )
                              };
                            };
                            var who_has_exports2222222 = {};
                            __export2222222(who_has_exports2222222, {
                              decode: () => decode272222222,
                              encode: () => encode272222222
                            });
                            var encode272222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                              if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE2222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE2222222) {
                                encodeContextUnsigned2222222(buffer, 0, lowLimit);
                                encodeContextUnsigned2222222(buffer, 1, highLimit);
                              }
                              if (objectName && objectName !== "") {
                                encodeContextCharacterString2222222(buffer, 3, objectName);
                              } else {
                                encodeContextObjectId2222222(buffer, 2, objectId.type, objectId.instance);
                              }
                            };
                            var decode272222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let value = {};
                              let decodedValue;
                              let result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber === 0) {
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                if (decodedValue.value <= ASN1_MAX_INSTANCE2222222) {
                                  value.lowLimit = decodedValue.value;
                                }
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                              }
                              if (result.tagNumber === 1) {
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                if (decodedValue.value <= ASN1_MAX_INSTANCE2222222) {
                                  value.highLimit = decodedValue.value;
                                }
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                              }
                              if (result.tagNumber === 2) {
                                decodedValue = decodeObjectId2222222(buffer, offset + len);
                                len += decodedValue.len;
                                value.objectId = {
                                  type: decodedValue.objectType,
                                  instance: decodedValue.instance
                                };
                              }
                              if (result.tagNumber === 3) {
                                decodedValue = decodeCharacterString2222222(
                                  buffer,
                                  offset + len,
                                  apduLen - (offset + len),
                                  result.value
                                );
                                len += decodedValue.len;
                                value.objectName = decodedValue.value;
                              }
                              value.len = len;
                              return value;
                            };
                            var who_is_exports2222222 = {};
                            __export2222222(who_is_exports2222222, {
                              decode: () => decode282222222,
                              encode: () => encode282222222
                            });
                            var encode282222222 = (buffer, lowLimit, highLimit) => {
                              if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE2222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE2222222) {
                                encodeContextUnsigned2222222(buffer, 0, lowLimit);
                                encodeContextUnsigned2222222(buffer, 1, highLimit);
                              }
                            };
                            var decode282222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let value = {};
                              if (apduLen <= 0) {
                                return {};
                              }
                              let result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 0) {
                                return void 0;
                              }
                              if (apduLen <= len) {
                                return void 0;
                              }
                              let decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              if (decodedValue.value <= ASN1_MAX_INSTANCE2222222) {
                                value.lowLimit = decodedValue.value;
                              }
                              if (apduLen <= len) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 1) {
                                return void 0;
                              }
                              if (apduLen <= len) {
                                return void 0;
                              }
                              decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              if (decodedValue.value <= ASN1_MAX_INSTANCE2222222) {
                                value.highLimit = decodedValue.value;
                              }
                              value.len = len;
                              return value;
                            };
                            var write_property_exports2222222 = {};
                            __export2222222(write_property_exports2222222, {
                              decode: () => decode292222222,
                              encode: () => encode292222222
                            });
                            var encode292222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                              encodeContextObjectId2222222(buffer, 0, objectType, objectInstance);
                              encodeContextEnumerated2222222(buffer, 1, propertyId);
                              if (arrayIndex !== ASN1_ARRAY_ALL2222222) {
                                encodeContextUnsigned2222222(buffer, 2, arrayIndex);
                              }
                              encodeOpeningTag2222222(buffer, 3);
                              values.forEach((value) => {
                                bacappEncodeApplicationData2222222(buffer, value);
                              });
                              encodeClosingTag2222222(buffer, 3);
                              if (priority !== ASN1_NO_PRIORITY2222222) {
                                encodeContextUnsigned2222222(buffer, 4, priority);
                              }
                            };
                            var decode292222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let value = {
                                property: {}
                              };
                              let decodedValue;
                              let result;
                              if (!decodeIsContextTag2222222(buffer, offset + len, 0)) {
                                return void 0;
                              }
                              len++;
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              let objectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              len += decodedValue.len;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 1) {
                                return void 0;
                              }
                              decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.property.id = decodedValue.value;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              if (result.tagNumber === 2) {
                                len += result.len;
                                decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                value.property.index = decodedValue.value;
                              } else {
                                value.property.index = ASN1_ARRAY_ALL2222222;
                              }
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 3)) {
                                return void 0;
                              }
                              len++;
                              const values = [];
                              while (apduLen - len > 1 && !decodeIsClosingTagNumber2222222(buffer, offset + len, 3)) {
                                decodedValue = bacappDecodeApplicationData2222222(
                                  buffer,
                                  offset + len,
                                  apduLen + offset,
                                  objectId.type,
                                  value.property.id
                                );
                                if (!decodedValue) {
                                  return void 0;
                                }
                                len += decodedValue.len;
                                delete decodedValue.len;
                                values.push(decodedValue);
                              }
                              value.value = values;
                              if (!decodeIsClosingTagNumber2222222(buffer, offset + len, 3)) {
                                return void 0;
                              }
                              len++;
                              value.priority = ASN1_MAX_PRIORITY2222222;
                              if (len < apduLen) {
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                if (result.tagNumber === 4) {
                                  len += result.len;
                                  decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                  len += decodedValue;
                                  if (decodedValue.value >= ASN1_MIN_PRIORITY2222222 && decodedValue.value <= ASN1_MAX_PRIORITY2222222) {
                                    value.priority = decodedValue.value;
                                  } else {
                                    return void 0;
                                  }
                                }
                              }
                              return {
                                len,
                                objectId,
                                value
                              };
                            };
                            var write_property_multiple_exports2222222 = {};
                            __export2222222(write_property_multiple_exports2222222, {
                              decode: () => decode302222222,
                              encode: () => encode302222222,
                              encodeObject: () => encodeObject2222222
                            });
                            var encode302222222 = (buffer, objectId, values) => {
                              encodeContextObjectId2222222(buffer, 0, objectId.type, objectId.instance);
                              encodeOpeningTag2222222(buffer, 1);
                              values.forEach((pValue) => {
                                encodeContextEnumerated2222222(buffer, 0, pValue.property.id);
                                if (pValue.property.index !== ASN1_ARRAY_ALL2222222) {
                                  encodeContextUnsigned2222222(buffer, 1, pValue.property.index);
                                }
                                encodeOpeningTag2222222(buffer, 2);
                                pValue.value.forEach((value) => {
                                  bacappEncodeApplicationData2222222(buffer, value);
                                });
                                encodeClosingTag2222222(buffer, 2);
                                if (pValue.priority !== ASN1_NO_PRIORITY2222222) {
                                  encodeContextUnsigned2222222(buffer, 3, pValue.priority);
                                }
                              });
                              encodeClosingTag2222222(buffer, 1);
                            };
                            var decode302222222 = (buffer, offset, apduLen) => {
                              let len = 0;
                              let result;
                              let decodedValue;
                              let objectId;
                              result = decodeTagNumberAndValue2222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 0 || apduLen <= len) {
                                return void 0;
                              }
                              apduLen -= len;
                              if (apduLen < 4) {
                                return void 0;
                              }
                              decodedValue = decodeObjectId2222222(buffer, offset + len);
                              len += decodedValue.len;
                              objectId = {
                                type: decodedValue.objectType,
                                instance: decodedValue.instance
                              };
                              if (!decodeIsOpeningTagNumber2222222(buffer, offset + len, 1)) {
                                return void 0;
                              }
                              len++;
                              const _values = [];
                              while (apduLen - len > 1) {
                                let newEntry = {};
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber !== 0) {
                                  return void 0;
                                }
                                decodedValue = decodeEnumerated2222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                let propertyId = decodedValue.value;
                                let arrayIndex = ASN1_ARRAY_ALL2222222;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber === 1) {
                                  decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  arrayIndex = decodedValue.value;
                                  result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                  len += result.len;
                                }
                                newEntry.property = { id: propertyId, index: arrayIndex };
                                if (result.tagNumber !== 2 || !decodeIsOpeningTag2222222(buffer, offset + len - 1)) {
                                  return void 0;
                                }
                                const values = [];
                                while (len + offset <= buffer.length && !decodeIsClosingTag2222222(buffer, offset + len)) {
                                  let value = bacappDecodeApplicationData2222222(
                                    buffer,
                                    offset + len,
                                    apduLen + offset,
                                    objectId.type,
                                    propertyId
                                  );
                                  if (!value) {
                                    return void 0;
                                  }
                                  len += value.len;
                                  delete value.len;
                                  values.push(value);
                                }
                                len++;
                                newEntry.value = values;
                                let priority = ASN1_NO_PRIORITY2222222;
                                result = decodeTagNumberAndValue2222222(buffer, offset + len);
                                len += result.len;
                                if (result.tagNumber === 3) {
                                  decodedValue = decodeUnsigned2222222(buffer, offset + len, result.value);
                                  len += decodedValue.len;
                                  priority = decodedValue.value;
                                } else {
                                  len--;
                                }
                                newEntry.priority = priority;
                                _values.push(newEntry);
                                if (decodeIsClosingTagNumber2222222(buffer, offset + len, 1)) {
                                  len++;
                                }
                              }
                              if (decodeIsClosingTagNumber2222222(buffer, offset + len, 1)) {
                                len++;
                              }
                              return {
                                len,
                                objectId,
                                values: _values
                              };
                            };
                            var encodeObject2222222 = (buffer, values) => {
                              values.forEach((object) => {
                                encode302222222(buffer, object.objectId, object.values);
                              });
                            };
                            var getDecodedType2222222 = (buffer, offset) => {
                              return buffer[offset];
                            };
                            var encodeConfirmedServiceRequest2222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                              buffer.buffer[buffer.offset++] = type;
                              buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                              buffer.buffer[buffer.offset++] = invokeId;
                              if ((type & 8) > 0) {
                                buffer.buffer[buffer.offset++] = sequencenumber;
                                buffer.buffer[buffer.offset++] = proposedWindowSize;
                              }
                              buffer.buffer[buffer.offset++] = service;
                            };
                            var decodeConfirmedServiceRequest2222222 = (buffer, offset) => {
                              const orgOffset = offset;
                              const type = buffer[offset++];
                              const maxSegments = buffer[offset] & 240;
                              const maxApdu = buffer[offset++] & 15;
                              const invokeId = buffer[offset++];
                              let sequencenumber = 0;
                              let proposedWindowNumber = 0;
                              if ((type & 8) > 0) {
                                sequencenumber = buffer[offset++];
                                proposedWindowNumber = buffer[offset++];
                              }
                              const service = buffer[offset++];
                              return {
                                len: offset - orgOffset,
                                type,
                                service,
                                maxSegments,
                                maxApdu,
                                invokeId,
                                sequencenumber,
                                proposedWindowNumber
                              };
                            };
                            var encodeUnconfirmedServiceRequest2222222 = (buffer, type, service) => {
                              buffer.buffer[buffer.offset++] = type;
                              buffer.buffer[buffer.offset++] = service;
                            };
                            var decodeUnconfirmedServiceRequest2222222 = (buffer, offset) => {
                              const orgOffset = offset;
                              const type = buffer[offset++];
                              const service = buffer[offset++];
                              return {
                                len: offset - orgOffset,
                                type,
                                service
                              };
                            };
                            var encodeSimpleAck2222222 = (buffer, type, service, invokeId) => {
                              buffer.buffer[buffer.offset++] = type;
                              buffer.buffer[buffer.offset++] = invokeId;
                              buffer.buffer[buffer.offset++] = service;
                            };
                            var decodeSimpleAck2222222 = (buffer, offset) => {
                              const orgOffset = offset;
                              const type = buffer[offset++];
                              const invokeId = buffer[offset++];
                              const service = buffer[offset++];
                              return {
                                len: offset - orgOffset,
                                type,
                                service,
                                invokeId
                              };
                            };
                            var encodeComplexAck2222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                              let len = 3;
                              buffer.buffer[buffer.offset++] = type;
                              buffer.buffer[buffer.offset++] = invokeId;
                              if ((type & 8) > 0) {
                                buffer.buffer[buffer.offset++] = sequencenumber;
                                buffer.buffer[buffer.offset++] = proposedWindowNumber;
                                len += 2;
                              }
                              buffer.buffer[buffer.offset++] = service;
                              return len;
                            };
                            var decodeComplexAck2222222 = (buffer, offset) => {
                              const orgOffset = offset;
                              const type = buffer[offset++];
                              const invokeId = buffer[offset++];
                              let sequencenumber = 0;
                              let proposedWindowNumber = 0;
                              if ((type & 8) > 0) {
                                sequencenumber = buffer[offset++];
                                proposedWindowNumber = buffer[offset++];
                              }
                              const service = buffer[offset++];
                              return {
                                len: offset - orgOffset,
                                type,
                                service,
                                invokeId,
                                sequencenumber,
                                proposedWindowNumber
                              };
                            };
                            var encodeSegmentAck2222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                              buffer.buffer[buffer.offset++] = type;
                              buffer.buffer[buffer.offset++] = originalInvokeId;
                              buffer.buffer[buffer.offset++] = sequencenumber;
                              buffer.buffer[buffer.offset++] = actualWindowSize;
                            };
                            var decodeSegmentAck2222222 = (buffer, offset) => {
                              const orgOffset = offset;
                              const type = buffer[offset++];
                              const originalInvokeId = buffer[offset++];
                              const sequencenumber = buffer[offset++];
                              const actualWindowSize = buffer[offset++];
                              return {
                                len: offset - orgOffset,
                                type,
                                originalInvokeId,
                                sequencenumber,
                                actualWindowSize
                              };
                            };
                            var encodeResult2222222 = (buffer, resultCode) => {
                              encodeUnsigned2222222(buffer, resultCode, 2);
                            };
                            var encodeError2222222 = (buffer, type, service, invokeId) => {
                              buffer.buffer[buffer.offset++] = type;
                              buffer.buffer[buffer.offset++] = invokeId;
                              buffer.buffer[buffer.offset++] = service;
                            };
                            var decodeError2222222 = (buffer, offset) => {
                              const orgOffset = offset;
                              const type = buffer[offset++];
                              const invokeId = buffer[offset++];
                              const service = buffer[offset++];
                              return {
                                len: offset - orgOffset,
                                type,
                                service,
                                invokeId
                              };
                            };
                            var decodeAbort2222222 = (buffer, offset) => {
                              const orgOffset = offset;
                              const type = buffer[offset++];
                              const invokeId = buffer[offset++];
                              const reason = buffer[offset++];
                              return {
                                len: offset - orgOffset,
                                type,
                                invokeId,
                                reason
                              };
                            };
                            var DEFAULT_HOP_COUNT3222222 = 255;
                            var BACNET_PROTOCOL_VERSION2222222 = 1;
                            var BACNET_ADDRESS_TYPES2222222 = {
                              NONE: 0,
                              IP: 1
                            };
                            var decodeTarget2222222 = (buffer, offset) => {
                              let len = 0;
                              const target = {
                                type: BACNET_ADDRESS_TYPES2222222.NONE,
                                net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                              };
                              const adrLen = buffer[offset + len++];
                              if (adrLen > 0) {
                                target.adr = [];
                                for (let i = 0; i < adrLen; i++) {
                                  target.adr.push(buffer[offset + len++]);
                                }
                              }
                              return {
                                target,
                                len
                              };
                            };
                            var encodeTarget2222222 = (buffer, target) => {
                              buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                              buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                              if (target.net === 65535 || !target.adr) {
                                buffer.buffer[buffer.offset++] = 0;
                              } else {
                                buffer.buffer[buffer.offset++] = target.adr.length;
                                if (target.adr.length > 0) {
                                  for (let i = 0; i < target.adr.length; i++) {
                                    buffer.buffer[buffer.offset++] = target.adr[i];
                                  }
                                }
                              }
                            };
                            var decode312222222 = (buffer, offset) => {
                              let adrLen;
                              const orgOffset = offset;
                              offset++;
                              const funct = buffer[offset++];
                              let destination;
                              if (funct & 32) {
                                const tmpDestination = decodeTarget2222222(buffer, offset);
                                offset += tmpDestination.len;
                                destination = tmpDestination.target;
                              }
                              let source;
                              if (funct & 8) {
                                const tmpSource = decodeTarget2222222(buffer, offset);
                                offset += tmpSource.len;
                                source = tmpSource.target;
                              }
                              let hopCount = 0;
                              if (funct & 32) {
                                hopCount = buffer[offset++];
                              }
                              let networkMsgType = 0;
                              let vendorId = 0;
                              if (funct & 128) {
                                networkMsgType = buffer[offset++];
                                if (networkMsgType >= 128) {
                                  vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                                } else if (networkMsgType === 0) {
                                  offset += 2;
                                }
                              }
                              if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION2222222) {
                                return void 0;
                              }
                              return {
                                len: offset - orgOffset,
                                funct,
                                destination,
                                source,
                                hopCount,
                                networkMsgType,
                                vendorId
                              };
                            };
                            var encode312222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                              const hasDestination = destination && destination.net > 0;
                              const hasSource = source && source.net > 0 && source.net !== 65535;
                              buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION2222222;
                              buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                              if (hasDestination) {
                                encodeTarget2222222(buffer, destination);
                              }
                              if (hasSource) {
                                encodeTarget2222222(buffer, source);
                              }
                              if (hasDestination) {
                                buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT3222222;
                              }
                              if ((funct & 128) > 0) {
                                buffer.buffer[buffer.offset++] = networkMsgType;
                                if (networkMsgType >= 128) {
                                  buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                                  buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                                }
                              }
                            };
                            var DEFAULT_BACNET_PORT22222222 = 47808;
                            var encode322222222 = (buffer, func, msgLength, originatingIP) => {
                              buffer[0] = BVLL_TYPE_BACNET_IP2222222;
                              buffer[1] = func;
                              buffer[2] = (msgLength & 65280) >> 8;
                              buffer[3] = (msgLength & 255) >> 0;
                              if (originatingIP) {
                                if (func !== 4) {
                                  throw new Error(
                                    "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                                  );
                                }
                                const [ipstr, portstr] = originatingIP.split(":");
                                const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT22222222;
                                const ip = ipstr.split(".");
                                buffer[4] = parseInt(ip[0], 10);
                                buffer[5] = parseInt(ip[1], 10);
                                buffer[6] = parseInt(ip[2], 10);
                                buffer[7] = parseInt(ip[3], 10);
                                buffer[8] = (port & 65280) >> 8;
                                buffer[9] = (port & 255) >> 0;
                                return 6 + BVLC_HEADER_LENGTH3222222;
                              } else {
                                if (func === 4) {
                                  throw new Error(
                                    "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                                  );
                                }
                              }
                              return BVLC_HEADER_LENGTH3222222;
                            };
                            var decode322222222 = (buffer, _offset) => {
                              let len;
                              const func = buffer[1];
                              const msgLength = buffer[2] << 8 | buffer[3] << 0;
                              if (buffer[0] !== BVLL_TYPE_BACNET_IP2222222 || buffer.length !== msgLength) {
                                return void 0;
                              }
                              let originatingIP = null;
                              switch (func) {
                                case 0:
                                case 10:
                                case 11:
                                case 9:
                                case 5:
                                case 6:
                                case 8:
                                case 2:
                                case 1:
                                case 3:
                                case 7:
                                  len = 4;
                                  break;
                                case 4:
                                  const port = buffer[8] << 8 | buffer[9];
                                  originatingIP = buffer.slice(4, 8).join(".");
                                  if (port !== DEFAULT_BACNET_PORT22222222) {
                                    originatingIP += ":" + port;
                                  }
                                  len = 10;
                                  break;
                                case 12:
                                  return void 0;
                                default:
                                  return void 0;
                              }
                              return {
                                len,
                                func,
                                msgLength,
                                // Originating IP is set to the IP address of the node that originally
                                // sent the packet, when it has been forwarded to us by a BBMD (since the
                                // BBMD's IP address will be in the sender field.
                                originatingIP
                              };
                            };
                            var EventEmitter22222222 = import_events22222222.default.EventEmitter;
                            var debug32222222 = (0, import_debug32222222.default)("bacnet:client:debug");
                            var trace22222222 = (0, import_debug32222222.default)("bacnet:client:trace");
                            var ALL_INTERFACES2222222 = "0.0.0.0";
                            var LOCALHOST_INTERFACES_IPV42222222 = "127.0.0.1";
                            var BROADCAST_ADDRESS2222222 = "255.255.255.255";
                            var DEFAULT_HOP_COUNT22222222 = 255;
                            var BVLC_HEADER_LENGTH22222222 = 4;
                            var BVLC_FWD_HEADER_LENGTH2222222 = 10;
                            var beU2222222 = UnconfirmedServiceChoice2222222;
                            var unconfirmedServiceMap2222222 = {
                              [beU2222222.I_AM]: "iAm",
                              [beU2222222.WHO_IS]: "whoIs",
                              [beU2222222.WHO_HAS]: "whoHas",
                              [beU2222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                              [beU2222222.TIME_SYNCHRONIZATION]: "timeSync",
                              [beU2222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                              [beU2222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                              [beU2222222.I_HAVE]: "iHave",
                              [beU2222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                            };
                            var beC2222222 = ConfirmedServiceChoice2222222;
                            var confirmedServiceMap2222222 = {
                              [beC2222222.READ_PROPERTY]: "readProperty",
                              [beC2222222.WRITE_PROPERTY]: "writeProperty",
                              [beC2222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                              [beC2222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                              [beC2222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                              [beC2222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                              [beC2222222.ATOMIC_READ_FILE]: "atomicReadFile",
                              [beC2222222.SUBSCRIBE_COV]: "subscribeCov",
                              [beC2222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                              [beC2222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                              [beC2222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                              [beC2222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                              [beC2222222.READ_RANGE]: "readRange",
                              [beC2222222.CREATE_OBJECT]: "createObject",
                              [beC2222222.DELETE_OBJECT]: "deleteObject",
                              [beC2222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                              [beC2222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                              [beC2222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                              [beC2222222.GET_EVENT_INFORMATION]: "getEventInformation",
                              [beC2222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                              [beC2222222.ADD_LIST_ELEMENT]: "addListElement",
                              [beC2222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                              [beC2222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                            };
                            var errorReasonEnums2222222 = {
                              BacnetAbort: RejectReason2222222
                            };
                            var BacnetError2222222 = class extends Error {
                              constructor(message, bacnetErrorClass, bacnetErrorCode) {
                                super(message);
                                this.bacnetErrorClass = bacnetErrorClass;
                                this.bacnetErrorCode = bacnetErrorCode;
                              }
                            };
                            function bacnetErrorToString2222222(err) {
                              var _a;
                              const isError = err instanceof Error || err instanceof BacnetError2222222;
                              if (!isError)
                                return;
                              const message = err.message;
                              const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                              const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                              if (!errorReasonEnums2222222[reasonClass])
                                return;
                              const reasonString = errorReasonEnums2222222[reasonClass][reason];
                              return reasonClass + ": " + reasonString;
                            }
                            var Client2222222 = class extends EventEmitter22222222 {
                              /**
                               *
                               * @param options
                               */
                              constructor(options) {
                                super();
                                options = options || {};
                                this._invokeCounter = 1;
                                this._invokeStore = {};
                                this._lastSequenceNumber = 0;
                                this._segmentStore = [];
                                this._settings = {
                                  port: options.port || 47808,
                                  interface: options.interface || ALL_INTERFACES2222222,
                                  transport: options.transport,
                                  broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS2222222,
                                  apduTimeout: options.apduTimeout || 3e3
                                };
                                options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                                this._transport = this._settings.transport || new Transport2222222({
                                  port: this._settings.port,
                                  interface: this._settings.interface,
                                  broadcastAddress: this._settings.broadcastAddress,
                                  reuseAddr: options.reuseAddr
                                });
                                this._transport.on("message", this._receiveData.bind(this));
                                this._transport.on("error", this._receiveError.bind(this));
                                this._transport.on("listening", () => this.emit("listening"));
                                this._transport.open();
                              }
                              /**
                               *
                               * @returns {number}
                               * @private
                               */
                              _getInvokeId() {
                                const id = this._invokeCounter++;
                                if (id >= 256)
                                  this._invokeCounter = 1;
                                return id - 1;
                              }
                              /**
                               *
                               * @param id
                               * @param err
                               * @param result
                               * @returns {*}
                               * @private
                               */
                              _invokeCallback(id, err, result) {
                                const callback = this._invokeStore[id];
                                if (callback) {
                                  return void callback(err, result);
                                }
                                debug32222222("InvokeId", id, "not found -> drop package");
                              }
                              /**
                               *
                               * @param id
                               * @param callback
                               * @private
                               */
                              _addCallback(id, callback) {
                                const timeout = setTimeout(() => {
                                  delete this._invokeStore[id];
                                  callback(new Error("ERR_TIMEOUT"));
                                }, this._settings.apduTimeout);
                                this._invokeStore[id] = (err, data) => {
                                  clearTimeout(timeout);
                                  delete this._invokeStore[id];
                                  callback(err, data);
                                };
                              }
                              /**
                               *
                               * @param isForwarded
                               * @returns {{offset: (number), buffer: *}}
                               * @private
                               */
                              _getBuffer(isForwarded) {
                                return Object.assign(
                                  {},
                                  {
                                    buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                    offset: isForwarded ? BVLC_FWD_HEADER_LENGTH2222222 : BVLC_HEADER_LENGTH22222222
                                  }
                                );
                              }
                              /**
                               *
                               * @param invokeId
                               * @param buffer
                               * @param offset
                               * @param length
                               * @returns {*}
                               * @private
                               */
                              _processError(invokeId, buffer, offset, length) {
                                const result = error_exports2222222.decode(buffer, offset);
                                trace22222222("Received error:", result);
                                if (!result) {
                                  return debug32222222("Couldn`t decode Error");
                                }
                                const err = new BacnetError2222222(error_exports2222222.buildMessage(result));
                                err.bacnetErrorClass = result.class;
                                err.bacnetErrorCode = result.code;
                                this._invokeCallback(invokeId, err);
                              }
                              /**
                               *
                               * @param invokeId
                               * @param reason
                               * @private
                               */
                              _processAbort(invokeId, reason) {
                                const err = new BacnetError2222222("BacnetAbort - Reason:" + reason);
                                err.bacnetAbortReason = reason;
                                err.bacnetErrorClass = AbortReason2222222;
                                this._invokeCallback(invokeId, err);
                              }
                              /**
                               *
                               * @param receiver
                               * @param negative
                               * @param server
                               * @param originalInvokeId
                               * @param sequencenumber
                               * @param actualWindowSize
                               * @private
                               */
                              _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                                const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                encode312222222(
                                  buffer,
                                  0,
                                  receiver,
                                  null,
                                  DEFAULT_HOP_COUNT22222222,
                                  0,
                                  0
                                );
                                encodeSegmentAck2222222(
                                  buffer,
                                  64 | (negative ? 2 : 0) | (server ? 1 : 0),
                                  originalInvokeId,
                                  sequencenumber,
                                  actualWindowSize
                                );
                                this.sendBvlc(receiver, buffer);
                              }
                              /**
                               *
                               * @param msg
                               * @param first
                               * @param moreFollows
                               * @param buffer
                               * @param offset
                               * @param length
                               * @private
                               */
                              _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                                if (first) {
                                  this._segmentStore = [];
                                  msg.type &= ~8;
                                  let apduHeaderLen = 3;
                                  if ((msg.type & PDU_TYPE_MASK2222222) === 0) {
                                    apduHeaderLen = 4;
                                  }
                                  const apdubuffer = this._getBuffer();
                                  apdubuffer.offset = 0;
                                  buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                                  if ((msg.type & PDU_TYPE_MASK2222222) === 0) {
                                    encodeConfirmedServiceRequest2222222(
                                      apdubuffer,
                                      msg.type,
                                      msg.service,
                                      msg.maxSegments,
                                      msg.maxApdu,
                                      msg.invokeId,
                                      0,
                                      0
                                    );
                                  } else {
                                    encodeComplexAck2222222(
                                      apdubuffer,
                                      msg.type,
                                      msg.service,
                                      msg.invokeId,
                                      0,
                                      0
                                    );
                                  }
                                  this._segmentStore.push(
                                    //@ts-ignore
                                    apdubuffer.buffer.slice(0, length + apduHeaderLen)
                                  );
                                } else {
                                  this._segmentStore.push(buffer.slice(offset, offset + length));
                                }
                                if (!moreFollows) {
                                  const apduBuffer = Buffer.concat(this._segmentStore);
                                  this._segmentStore = [];
                                  msg.type &= ~8;
                                  this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                                }
                              }
                              /**
                               *
                               * @param msg
                               * @param server
                               * @param buffer
                               * @param offset
                               * @param length
                               * @private
                               */
                              _processSegment(msg, server, buffer, offset, length) {
                                let first = false;
                                if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                                  first = true;
                                } else {
                                  if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                    return this._segmentAckResponse(
                                      msg.header.address,
                                      true,
                                      server,
                                      msg.invokeId,
                                      this._lastSequenceNumber,
                                      msg.proposedWindowNumber
                                    );
                                  }
                                }
                                this._lastSequenceNumber = msg.sequencenumber;
                                const moreFollows = msg.type & 4;
                                if (!moreFollows) {
                                  this._lastSequenceNumber = 0;
                                }
                                if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                                  this._segmentAckResponse(
                                    msg.header.address,
                                    false,
                                    server,
                                    msg.invokeId,
                                    msg.sequencenumber,
                                    msg.proposedWindowNumber
                                  );
                                }
                                this._performDefaultSegmentHandling(
                                  msg,
                                  first,
                                  moreFollows,
                                  buffer,
                                  offset,
                                  length
                                );
                              }
                              /**
                               *
                               * @param serviceMap
                               * @param content
                               * @param buffer
                               * @param offset
                               * @param length
                               * @returns {*}
                               * @private
                               */
                              _processServiceRequest(serviceMap, content, buffer, offset, length) {
                                let result;
                                const sender = content.header.sender;
                                if (sender.address === LOCALHOST_INTERFACES_IPV42222222) {
                                  debug32222222("Received and skipped localhost service request:", content.service);
                                  return;
                                }
                                const name = serviceMap[content.service];
                                if (!name) {
                                  debug32222222("Received unsupported service request:", content.service);
                                  return;
                                }
                                const id = content.invokeId ? "@" + content.invokeId : "";
                                trace22222222(`Received service request${id}:`, name);
                                const serviceHandler = services_exports2222222[name];
                                if (serviceHandler) {
                                  try {
                                    content.payload = serviceHandler.decode(buffer, offset, length);
                                    trace22222222(`Handled service request${id}:`, name, JSON.stringify(content));
                                  } catch (e) {
                                    debug32222222("Exception thrown when processing message:", e);
                                    debug32222222("Original message was", name + ":", content);
                                    return;
                                  }
                                  if (!content.payload) {
                                    return debug32222222("Received invalid", name, "message");
                                  }
                                } else {
                                  debug32222222("No serviceHandler defined for:", name);
                                }
                                if (this.listenerCount(name)) {
                                  trace22222222("listener count by name emits " + name + " with content");
                                  this.emit(name, content);
                                } else {
                                  if (this.listenerCount("unhandledEvent")) {
                                    trace22222222("unhandled event emiting with content");
                                    this.emit("unhandledEvent", content);
                                  } else {
                                    trace22222222(
                                      "no unhandled event handler with header: " + JSON.stringify(content.header)
                                    );
                                    if (content.header.expectingReply) {
                                      debug32222222("Replying with error for unhandled service:", name);
                                      content.header.sender.forwardedFrom = null;
                                      this.errorResponse(
                                        content.header.sender,
                                        content.service,
                                        content.invokeId,
                                        5,
                                        67
                                        /* REJECT_UNRECOGNIZED_SERVICE */
                                      );
                                    }
                                  }
                                }
                              }
                              /**
                               *
                               * @param buffer
                               * @param offset
                               * @param length
                               * @param header
                               * @private
                               */
                              _handlePdu(buffer, offset, length, header) {
                                let msg;
                                trace22222222("handlePdu Header: ", header);
                                switch (header.apduType & PDU_TYPE_MASK2222222) {
                                  case 16:
                                    msg = decodeUnconfirmedServiceRequest2222222(buffer, offset);
                                    msg.header = header;
                                    msg.header.confirmedService = false;
                                    this._processServiceRequest(
                                      unconfirmedServiceMap2222222,
                                      msg,
                                      buffer,
                                      offset + msg.len,
                                      length - msg.len
                                    );
                                    break;
                                  case 32:
                                    msg = decodeSimpleAck2222222(buffer, offset);
                                    offset += msg.len;
                                    length -= msg.len;
                                    this._invokeCallback(msg.invokeId, null, {
                                      msg,
                                      buffer,
                                      offset: offset + msg.len,
                                      length: length - msg.len
                                    });
                                    break;
                                  case 48:
                                    msg = decodeComplexAck2222222(buffer, offset);
                                    msg.header = header;
                                    if ((header.apduType & 8) === 0) {
                                      this._invokeCallback(msg.invokeId, null, {
                                        msg,
                                        buffer,
                                        offset: offset + msg.len,
                                        length: length - msg.len
                                      });
                                    } else {
                                      this._processSegment(
                                        msg,
                                        true,
                                        buffer,
                                        offset + msg.len,
                                        length - msg.len
                                      );
                                    }
                                    break;
                                  case 64:
                                    msg = decodeSegmentAck2222222(buffer, offset);
                                    msg.header = header;
                                    this._processSegment(
                                      msg,
                                      true,
                                      buffer,
                                      offset + msg.len,
                                      length - msg.len
                                    );
                                    break;
                                  case 80:
                                    msg = decodeError2222222(buffer, offset);
                                    this._processError(
                                      msg.invokeId,
                                      buffer,
                                      offset + msg.len,
                                      length - msg.len
                                    );
                                    break;
                                  case 96:
                                  case 112:
                                    msg = decodeAbort2222222(buffer, offset);
                                    this._processAbort(msg.invokeId, msg.reason);
                                    break;
                                  case 0:
                                    msg = decodeConfirmedServiceRequest2222222(buffer, offset);
                                    msg.header = header;
                                    msg.header.confirmedService = true;
                                    if ((header.apduType & 8) === 0) {
                                      this._processServiceRequest(
                                        confirmedServiceMap2222222,
                                        msg,
                                        buffer,
                                        offset + msg.len,
                                        length - msg.len
                                      );
                                    } else {
                                      this._processSegment(
                                        msg,
                                        true,
                                        buffer,
                                        offset + msg.len,
                                        length - msg.len
                                      );
                                    }
                                    break;
                                  default:
                                    debug32222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                    break;
                                }
                              }
                              /**
                               *
                               * @param buffer
                               * @param offset
                               * @param msgLength
                               * @param header
                               * @returns {*}
                               * @private
                               */
                              _handleNpdu(buffer, offset, msgLength, header) {
                                if (msgLength <= 0) {
                                  return trace22222222("No NPDU data -> Drop package");
                                }
                                const result = decode312222222(buffer, offset);
                                if (!result) {
                                  return trace22222222("Received invalid NPDU header -> Drop package");
                                }
                                if (result.funct & 128) {
                                  return trace22222222("Received network layer message -> Drop package");
                                }
                                offset += result.len;
                                msgLength -= result.len;
                                if (msgLength <= 0) {
                                  return trace22222222("No APDU data -> Drop package");
                                }
                                header.apduType = getDecodedType2222222(buffer, offset);
                                header.expectingReply = !!(result.funct & 4);
                                this._handlePdu(buffer, offset, msgLength, header);
                              }
                              /**
                               *
                               * @param buffer
                               * @param remoteAddress
                               * @returns {*}
                               * @private
                               */
                              _receiveData(buffer, remoteAddress) {
                                if (buffer.length < BVLC_HEADER_LENGTH3222222) {
                                  return trace22222222("Received invalid data -> Drop package");
                                }
                                const result = decode322222222(buffer, 0);
                                if (!result) {
                                  return trace22222222("Received invalid BVLC header -> Drop package");
                                }
                                let header = {
                                  // Which function the packet came in on, so later code can distinguish
                                  // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                                  func: result.func,
                                  sender: {
                                    // Address of the host we are directly connected to. String, IP:port.
                                    address: remoteAddress,
                                    // If the host is a BBMD passing messages along to another node, this
                                    // is the address of the distant BACnet node.  String, IP:port.
                                    // Typically we won't have network connectivity to this address, but
                                    // we have to include it in replies so the host we are connect to knows
                                    // where to forward the messages.
                                    forwardedFrom: null
                                  }
                                };
                                switch (result.func) {
                                  case 10:
                                  case 11:
                                    this._handleNpdu(
                                      buffer,
                                      result.len,
                                      buffer.length - result.len,
                                      header
                                    );
                                    break;
                                  case 4:
                                    header.sender.forwardedFrom = result.originatingIP;
                                    this._handleNpdu(
                                      buffer,
                                      result.len,
                                      buffer.length - result.len,
                                      header
                                    );
                                    break;
                                  case 5:
                                    let decodeResult = register_foreign_device_exports2222222.decode(
                                      buffer,
                                      result.len,
                                      buffer.length - result.len
                                    );
                                    if (!decodeResult) {
                                      return trace22222222("Received invalid registerForeignDevice message");
                                    }
                                    this.emit("registerForeignDevice", {
                                      header,
                                      payload: decodeResult
                                    });
                                    break;
                                  case 9:
                                    this._handleNpdu(
                                      buffer,
                                      result.len,
                                      buffer.length - result.len,
                                      header
                                    );
                                    break;
                                  default:
                                    debug32222222(
                                      "Received unknown BVLC function " + result.func + " -> Drop package"
                                    );
                                    break;
                                }
                              }
                              /**
                               * @event bacnet.error
                               * @param {error} err - The error object thrown by the underlying transport layer.
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * client.on('error', (err) => {
                               *   console.log('Error occurred: ', err);
                               *   client.close();
                               * });
                               */
                              _receiveError(err) {
                                this.emit("error", err);
                              }
                              /**
                               * The whoIs command discovers all BACNET devices in a network.
                               * @function bacnet.whoIs
                               * @param {string} receiver - IP address of the target device.
                               * @param {object=} options
                               * @param {number=} options.lowLimit - Minimal device instance number to search for.
                               * @param {number=} options.highLimit - Maximal device instance number to search for.
                               * @fires bacnet.iAm
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * client.whoIs();
                               */
                              whoIs(receiver, options) {
                                if (!options) {
                                  if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                    options = receiver;
                                    receiver = void 0;
                                  }
                                }
                                options = options || {};
                                const settings = {
                                  lowLimit: options.lowLimit,
                                  highLimit: options.highLimit
                                };
                                const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                                encode312222222(
                                  buffer,
                                  0,
                                  //@ts-ignore
                                  receiver,
                                  null,
                                  DEFAULT_HOP_COUNT22222222,
                                  0,
                                  0
                                );
                                encodeUnconfirmedServiceRequest2222222(
                                  buffer,
                                  16,
                                  8
                                  /* WHO_IS */
                                );
                                who_is_exports2222222.encode(buffer, settings.lowLimit, settings.highLimit);
                                this.sendBvlc(receiver, buffer);
                              }
                              /**
                               * The timeSync command sets the time of a target device.
                               * @function bacnet.timeSync
                               * @param {string} receiver - IP address of the target device.
                               * @param {date} dateTime - The date and time to set on the target device.
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * client.timeSync('192.168.1.43', new Date());
                               */
                              timeSync(receiver, dateTime) {
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(buffer, 0, receiver);
                                encodeUnconfirmedServiceRequest2222222(
                                  buffer,
                                  16,
                                  6
                                  /* TIME_SYNCHRONIZATION */
                                );
                                time_sync_exports2222222.encode(buffer, dateTime);
                                this.sendBvlc(receiver, buffer);
                              }
                              /**
                               * The timeSyncUTC command sets the UTC time of a target device.
                               * @function bacnet.timeSyncUTC
                               * @param {string} receiver - IP address of the target device.
                               * @param {date} dateTime - The date and time to set on the target device.
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * client.timeSyncUTC('192.168.1.43', new Date());
                               */
                              timeSyncUTC(receiver, dateTime) {
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(buffer, 0, receiver);
                                encodeUnconfirmedServiceRequest2222222(
                                  buffer,
                                  16,
                                  9
                                  /* UTC_TIME_SYNCHRONIZATION */
                                );
                                time_sync_exports2222222.encode(buffer, dateTime);
                                this.sendBvlc(receiver, buffer);
                              }
                              /**
                               * The readProperty command reads a single property of an object from a device.
                               * @function bacnet.readProperty
                               * @param {string} receiver - IP address of the target device.
                               * @param {object} objectId - The BACNET object ID to read.
                               * @param {number} objectId.type - The BACNET object type to read.
                               * @param {number} objectId.instance - The BACNET object instance to read.
                               * @param {number} propertyId - The BACNET property id in the specified object to read.
                               * @param {object=} options
                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                               * @param {number=} options.arrayIndex - The array index of the property to be read.
                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                               *   console.log('value: ', value);
                               * });
                               */
                              readProperty(receiver, objectId, propertyId, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId(),
                                  arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL2222222
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  //@ts-ignore
                                  receiver,
                                  null,
                                  DEFAULT_HOP_COUNT22222222,
                                  0,
                                  0
                                );
                                const type = 0 | //@ts-ignore
                                (settings.maxSegments !== 0 ? 2 : 0);
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  type,
                                  12,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                read_property_exports2222222.encode(
                                  buffer,
                                  objectId.type,
                                  objectId.instance,
                                  propertyId,
                                  settings.arrayIndex
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  const result = read_property_exports2222222.decodeAcknowledge(
                                    data.buffer,
                                    data.offset,
                                    data.length
                                  );
                                  if (!result) {
                                    return void next(new Error("INVALID_DECODING"));
                                  }
                                  next(null, result);
                                });
                              }
                              /**
                               * The writeProperty command writes a single property of an object to a device.
                               * @function bacnet.writeProperty
                               * @param {string} receiver - IP address of the target device.
                               * @param {object} objectId - The BACNET object ID to write.
                               * @param {number} objectId.type - The BACNET object type to write.
                               * @param {number} objectId.instance - The BACNET object instance to write.
                               * @param {number} propertyId - The BACNET property id in the specified object to write.
                               * @param {object[]} values - A list of values to be written to the specified property.
                               * @param {ApplicationTag} values.type - The data-type of the value to be written.
                               * @param {number} values.value - The actual value to be written.
                               * @param {object=} options
                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                               * @param {number=} options.arrayIndex - The array index of the property to be read.
                               * @param {number=} options.priority - The priority of the value to be written.
                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                               *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                               * ], (err, value) => {
                               *   console.log('value: ', value);
                               * });
                               */
                              writeProperty(receiver, objectId, propertyId, values, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId(),
                                  arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL2222222,
                                  priority: options.priority || ASN1_NO_PRIORITY2222222
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  //@ts-ignore Todo somehow types do not match at all
                                  receiver,
                                  null,
                                  DEFAULT_HOP_COUNT22222222,
                                  0,
                                  0
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  15,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                write_property_exports2222222.encode(
                                  buffer,
                                  objectId.type,
                                  objectId.instance,
                                  propertyId,
                                  settings.arrayIndex,
                                  settings.priority,
                                  values
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  next(err);
                                });
                              }
                              /**
                               * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                               * @function bacnet.readPropertyMultiple
                               * @param {string} receiver - IP address of the target device.
                               * @param {object[]} propertiesArray - List of object and property specifications to be read.
                               * @param {object} propertiesArray.objectId - Specifies which object to read.
                               * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                               * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                               * @param {object[]} propertiesArray.properties - List of properties to be read.
                               * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                               * @param {object=} options
                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * const requestArray = [
                               *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                               * ];
                               * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                               *   console.log('value: ', value);
                               * });
                               */
                              readPropertyMultiple(receiver, propertiesArray, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                                const buffer = this._getBuffer(!!isForwarded);
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  //@ts-ignore Todo somehow types do not match at all
                                  receiver,
                                  null,
                                  DEFAULT_HOP_COUNT22222222,
                                  0,
                                  0
                                );
                                const type = 0 | //@ts-ignore
                                (settings.maxSegments !== 0 ? 2 : 0);
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  type,
                                  14,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                read_property_multiple_exports2222222.encode(buffer, propertiesArray);
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return next(err);
                                  }
                                  const result = read_property_multiple_exports2222222.decodeAcknowledge(
                                    data.buffer,
                                    data.offset,
                                    data.length
                                  );
                                  if (!result) {
                                    return next(new Error("INVALID_DECODING"));
                                  }
                                  next(null, result);
                                });
                              }
                              /**
                               * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                               * @function bacnet.writePropertyMultiple
                               * @param {string} receiver - IP address of the target device.
                               * @param {object[]} values - List of object and property specifications to be written.
                               * @param {object} values.objectId - Specifies which object to read.
                               * @param {number} values.objectId.type - The BACNET object type to read.
                               * @param {number} values.objectId.instance - The BACNET object instance to read.
                               * @param {object[]} values.values - List of properties to be written.
                               * @param {object} values.values.property - Property specifications to be written.
                               * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                               * @param {number} values.values.property.index - The array index of the property to be written.
                               * @param {object[]} values.values.value - A list of values to be written to the specified property.
                               * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                               * @param {object} values.values.value.value - The actual value to be written.
                               * @param {number} values.values.priority - The priority to be used for writing to the property.
                               * @param {object=} options
                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * const values = [
                               *   {objectId: {type: 8, instance: 44301}, values: [
                               *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                               *   ]}
                               * ];
                               * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                               *   console.log('value: ', value);
                               * });
                               */
                              writePropertyMultiple(receiver, values, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  //@ts-ignore
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  16,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId
                                );
                                write_property_multiple_exports2222222.encodeObject(buffer, values);
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  next(err);
                                });
                              }
                              /**
                               * The confirmedCOVNotification command is used to push notifications to other
                               * systems that have registered with us via a subscribeCOV message.
                               * @function bacnet.confirmedCOVNotification
                               * @param {string} receiver - IP address of the target device.
                               * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                               * @param {number} monitoredObject.type - Object type.
                               * @param {number} monitoredObject.instance - Object instance.
                               * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                               * @param {number} initiatingDeviceId - Our BACnet device ID.
                               * @param {number} lifetime - Number of seconds left until the subscription expires.
                               * @param {array} values - values for the monitored object.  See example.
                               * @param {object=} options
                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * const settings = {deviceId: 123}; // our BACnet device
                               *
                               * // Items saved from subscribeCOV message
                               * const monitoredObject = {type: 1, instance: 1};
                               * const subscriberProcessId = 123;
                               *
                               * client.confirmedCOVNotification(
                               *   '192.168.1.43',
                               *   monitoredObject,
                               *   subscriberProcessId,
                               *   settings.deviceId,
                               *   30, // should be lifetime of subscription really
                               *   [
                               *     {
                               *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                               *       value: [
                               *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                               *       ],
                               *     },
                               *   ],
                               *   (err) => {
                               *     console.log('error: ', err);
                               *   }
                               * );
                               */
                              confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer();
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  1,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                cov_notify_exports2222222.encode(
                                  buffer,
                                  subscribeId,
                                  initiatingDeviceId,
                                  monitoredObject,
                                  lifetime,
                                  values
                                );
                                encode322222222(
                                  buffer.buffer,
                                  10,
                                  buffer.offset
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  next();
                                });
                              }
                              /**
                               * The deviceCommunicationControl command enables or disables network communication of the target device.
                               * @function bacnet.deviceCommunicationControl
                               * @param {string} receiver - IP address of the target device.
                               * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                               * @param {EnableDisable} enableDisable - The network communication state to set.
                               * @param {object=} options
                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                               * @param {string=} options.password - The optional password used to set the network communication state.
                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                               *   console.log('error: ', err);
                               * });
                               */
                              deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId(),
                                  password: options.password
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  17,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                device_communication_control_exports2222222.encode(
                                  buffer,
                                  timeDuration,
                                  enableDisable,
                                  settings.password
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  next(err);
                                });
                              }
                              /**
                               * The reinitializeDevice command initiates a restart of the target device.
                               * @function bacnet.reinitializeDevice
                               * @param {string} receiver - IP address of the target device.
                               * @param {ReinitializedState} state - The type of restart to be initiated.
                               * @param {object=} options
                               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                               * @param {string=} options.password - The optional password used to restart the device.
                               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                               *   console.log('value: ', value);
                               * });
                               */
                              reinitializeDevice(receiver, state, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId(),
                                  password: options.password
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  20,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                reinitialize_device_exports2222222.encode(buffer, state, settings.password);
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  next(err);
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param objectId
                               * @param position
                               * @param fileBuffer
                               * @param options
                               * @param next
                               */
                              writeFile(receiver, objectId, position, fileBuffer, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  7,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                atomic_write_file_exports2222222.encode(
                                  buffer,
                                  false,
                                  objectId,
                                  position,
                                  fileBuffer
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  const result = atomic_write_file_exports2222222.decodeAcknowledge(
                                    data.buffer,
                                    data.offset,
                                    data.length
                                  );
                                  if (!result) {
                                    return void next(new Error("INVALID_DECODING"));
                                  }
                                  next(null, result);
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param objectId
                               * @param position
                               * @param count
                               * @param options
                               * @param next
                               */
                              readFile(receiver, objectId, position, count, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  6,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                atomic_read_file_exports2222222.encode(buffer, true, objectId, position, count);
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  const result = atomic_read_file_exports2222222.decodeAcknowledge(
                                    data.buffer,
                                    data.offset,
                                    data.length
                                  );
                                  if (!result) {
                                    return void next(new Error("INVALID_DECODING"));
                                  }
                                  next(null, result);
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param objectId
                               * @param idxBegin
                               * @param quantity
                               * @param options
                               * @param next
                               */
                              readRange(receiver, objectId, idxBegin, quantity, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  26,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                read_range_exports2222222.encode(
                                  buffer,
                                  objectId,
                                  131,
                                  ASN1_ARRAY_ALL2222222,
                                  0,
                                  idxBegin,
                                  /* @__PURE__ */ new Date(),
                                  quantity
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  const result = read_range_exports2222222.decodeAcknowledge(
                                    data.buffer,
                                    data.offset,
                                    data.length
                                  );
                                  if (!result) {
                                    return void next(new Error("INVALID_DECODING"));
                                  }
                                  next(null, result);
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param objectId
                               * @param subscribeId
                               * @param cancel
                               * @param issueConfirmedNotifications
                               * @param lifetime
                               * @param options
                               * @param next
                               */
                              subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                                const next = nextFunc || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  // @ts-ignore TODO types not matching with documentation and code
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  5,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                subscribe_cov_exports2222222.encode(
                                  buffer,
                                  subscribeId,
                                  objectId,
                                  cancel,
                                  issueConfirmedNotifications,
                                  lifetime
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  next();
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param objectId
                               * @param monitoredProperty
                               * @param subscribeId
                               * @param cancel
                               * @param issueConfirmedNotifications
                               * @param options
                               * @param next
                               */
                              subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  28,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                subscribe_property_exports2222222.encode(
                                  buffer,
                                  subscribeId,
                                  objectId,
                                  cancel,
                                  issueConfirmedNotifications,
                                  0,
                                  monitoredProperty,
                                  false,
                                  15
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  next();
                                });
                              }
                              /**
                               * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                               * @function bacnet.unconfirmedCOVNotification
                               * @param {string} receiver - IP address of the target device.
                               * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                               * @param {number} initiatingDeviceId - The id of this device.
                               * @param {object} monitoredObjectId - Specifies about which object the notification is.
                               * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                               * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                               * @param {number} timeRemaining - How long the subscription is still active in seconds.
                               * @param {object[]} values - List of properties with updated values.
                               * @param {object} values.property - Property specifications.
                               * @param {number} values.property.id - The updated BACNET property id.
                               * @param {number} values.property.index - The array index of the updated property.
                               * @param {object[]} values.value - A list of updated values.
                               * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                               * @param {object} values.value.value - The actual updated value.
                               * @param {number} values.priority - The priority of the updated property.
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * client.unconfirmedCOVNotification(
                               *            '127.0.0.1',
                               *            3,
                               *            433,
                               *            {type: 2, instance: 122},
                               *            120,
                               *            [
                               *              {
                               *                property: {id: 85},
                               *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                               *              },
                               *              {
                               *                property: {id: 111},
                               *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                               *              }
                               *            ]);
                               */
                              unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                                const buffer = this._getBuffer();
                                encode312222222(buffer, 0, receiver);
                                encodeUnconfirmedServiceRequest2222222(
                                  buffer,
                                  16,
                                  2
                                  /* UNCONFIRMED_COV_NOTIFICATION */
                                );
                                cov_notify_exports2222222.encode(
                                  buffer,
                                  subscriberProcessId,
                                  initiatingDeviceId,
                                  monitoredObjectId,
                                  timeRemaining,
                                  values
                                );
                                encode322222222(
                                  buffer.buffer,
                                  10,
                                  buffer.offset
                                );
                                this._transport.send(buffer.buffer, buffer.offset, receiver);
                              }
                              /**
                               *
                               * @param receiver
                               * @param objectId
                               * @param values
                               * @param options
                               * @param next
                               */
                              createObject(receiver, objectId, values, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  10,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                create_object_exports2222222.encode(buffer, objectId, values);
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  next();
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param objectId
                               * @param options
                               * @param next
                               */
                              deleteObject(receiver, objectId, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  11,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                delete_object_exports2222222.encode(buffer, objectId);
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  next();
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param objectId
                               * @param reference
                               * @param values
                               * @param options
                               * @param next
                               */
                              removeListElement(receiver, objectId, reference, values, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  9,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                add_list_element_exports2222222.encode(
                                  buffer,
                                  objectId,
                                  reference.id,
                                  reference.index,
                                  values
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  next();
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param objectId
                               * @param reference
                               * @param values
                               * @param options
                               * @param next
                               */
                              addListElement(receiver, objectId, reference, values, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  8,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                add_list_element_exports2222222.encode(
                                  buffer,
                                  objectId,
                                  reference.id,
                                  reference.index,
                                  values
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  next();
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param options
                               * @param next
                               */
                              getAlarmSummary(receiver, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  3,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  const result = alarm_summary_exports2222222.decode(
                                    data.buffer,
                                    data.offset,
                                    data.length
                                  );
                                  if (!result) {
                                    return void next(new Error("INVALID_DECODING"));
                                  }
                                  next(null, result);
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param objectId
                               * @param options
                               * @param next
                               */
                              getEventInformation(receiver, objectId, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  29,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                encodeContextObjectId2222222(buffer, 0, objectId.type, objectId.instance);
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  const result = event_information_exports2222222.decode(
                                    data.buffer,
                                    data.offset,
                                    data.length
                                  );
                                  if (!result) {
                                    return void next(new Error("INVALID_DECODING"));
                                  }
                                  next(null, result);
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param objectId
                               * @param eventState
                               * @param ackText
                               * @param evTimeStamp
                               * @param ackTimeStamp
                               * @param options
                               * @param next
                               */
                              acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  0,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                alarm_acknowledge_exports2222222.encode(
                                  buffer,
                                  57,
                                  objectId,
                                  eventState,
                                  ackText,
                                  evTimeStamp,
                                  ackTimeStamp
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  next();
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param vendorId
                               * @param serviceNumber
                               * @param data
                               * @param options
                               * @param next
                               */
                              confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  18,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                private_transfer_exports2222222.encode(buffer, vendorId, serviceNumber, data);
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data2) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  next();
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param vendorId
                               * @param serviceNumber
                               * @param data
                               */
                              unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(buffer, 0, receiver);
                                encodeUnconfirmedServiceRequest2222222(
                                  buffer,
                                  16,
                                  4
                                  /* UNCONFIRMED_PRIVATE_TRANSFER */
                                );
                                private_transfer_exports2222222.encode(buffer, vendorId, serviceNumber, data);
                                this.sendBvlc(receiver, buffer);
                              }
                              /**
                               *
                               * @param receiver
                               * @param acknowledgmentFilter
                               * @param options
                               * @param next
                               */
                              getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  4,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                get_enrollment_summary_exports2222222.encode(
                                  buffer,
                                  acknowledgmentFilter,
                                  options.enrollmentFilter,
                                  options.eventStateFilter,
                                  options.eventTypeFilter,
                                  options.priorityFilter,
                                  options.notificationClassFilter
                                );
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  const result = get_enrollment_summary_exports2222222.decodeAcknowledge(
                                    data.buffer,
                                    data.offset,
                                    data.length
                                  );
                                  if (!result) {
                                    return void next(new Error("INVALID_DECODING"));
                                  }
                                  next(null, result);
                                });
                              }
                              /**
                               *
                               * @param receiver
                               * @param eventNotification
                               */
                              unconfirmedEventNotification(receiver, eventNotification) {
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(buffer, 0, receiver);
                                encodeUnconfirmedServiceRequest2222222(
                                  buffer,
                                  16,
                                  3
                                  /* UNCONFIRMED_EVENT_NOTIFICATION */
                                );
                                event_notify_data_exports2222222.encode(buffer, eventNotification);
                                this.sendBvlc(receiver, buffer);
                              }
                              /**
                               *
                               * @param receiver
                               * @param eventNotification
                               * @param options
                               * @param next
                               */
                              confirmedEventNotification(receiver, eventNotification, options, next) {
                                next = next || options;
                                const settings = {
                                  maxSegments: options.maxSegments || 112,
                                  maxApdu: options.maxApdu || 5,
                                  invokeId: options.invokeId || this._getInvokeId()
                                };
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(
                                  buffer,
                                  0 | 4,
                                  receiver
                                );
                                encodeConfirmedServiceRequest2222222(
                                  buffer,
                                  0,
                                  2,
                                  settings.maxSegments,
                                  settings.maxApdu,
                                  settings.invokeId,
                                  0,
                                  0
                                );
                                event_notify_data_exports2222222.encode(buffer, eventNotification);
                                this.sendBvlc(receiver, buffer);
                                this._addCallback(settings.invokeId, (err, data) => {
                                  if (err) {
                                    return void next(err);
                                  }
                                  next();
                                });
                              }
                              /**
                               * The readPropertyResponse call sends a response with information about one of our properties.
                               * @function bacnet.readPropertyResponse
                               * @param {string} receiver - IP address of the target device.
                               * @param {number} invokeId - ID of the original readProperty request.
                               * @param {object} objectId - objectId from the original request,
                               * @param {object} property - property being read, taken from the original request.
                               * @param {object=} options varying behaviour for special circumstances
                               * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                               */
                              readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(buffer, 0, receiver);
                                encodeComplexAck2222222(
                                  buffer,
                                  48,
                                  12,
                                  invokeId
                                );
                                read_property_exports2222222.encodeAcknowledge(
                                  buffer,
                                  objectId,
                                  property.id,
                                  property.index,
                                  value
                                );
                                this.sendBvlc(receiver, buffer);
                              }
                              readPropertyMultipleResponse(receiver, invokeId, values) {
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(buffer, 0, receiver);
                                encodeComplexAck2222222(
                                  buffer,
                                  48,
                                  14,
                                  invokeId
                                );
                                read_property_multiple_exports2222222.encodeAcknowledge(buffer, values);
                                this.sendBvlc(receiver, buffer);
                              }
                              /**
                               * The iAmResponse command is sent as a reply to a whoIs request.
                               * @function bacnet.iAmResponse
                               * @param {object} receiver - address to send packet to, null for local broadcast.
                               * @param {number} deviceId - Our device ID.
                               * @param {number} segmentation - an enum.Segmentation value.
                               * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                               */
                              iAmResponse(receiver, deviceId, segmentation, vendorId) {
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(buffer, 0, receiver);
                                encodeUnconfirmedServiceRequest2222222(
                                  buffer,
                                  16,
                                  0
                                  /* I_AM */
                                );
                                i_am_exports2222222.encode(
                                  buffer,
                                  deviceId,
                                  this._transport.getMaxPayload(),
                                  segmentation,
                                  vendorId
                                );
                                this.sendBvlc(receiver, buffer);
                              }
                              /**
                               *
                               * @param receiver
                               * @param deviceId
                               * @param objectId
                               * @param objectName
                               */
                              iHaveResponse(receiver, deviceId, objectId, objectName) {
                                const buffer = this._getBuffer(
                                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                                );
                                encode312222222(buffer, 0, receiver);
                                encodeUnconfirmedServiceRequest2222222(
                                  buffer,
                                  16,
                                  1
                                  /* I_HAVE */
                                );
                                i_have_exports2222222.encode(buffer, deviceId, objectId, objectName);
                                this.sendBvlc(receiver, buffer);
                              }
                              /**
                               *
                               * @param receiver
                               * @param service
                               * @param invokeId
                               */
                              simpleAckResponse(receiver, service, invokeId) {
                                if (typeof receiver === "string")
                                  return;
                                const buffer = this._getBuffer(!!receiver.forwardedFrom);
                                encode312222222(buffer, 0, receiver);
                                encodeSimpleAck2222222(
                                  buffer,
                                  32,
                                  service,
                                  invokeId
                                );
                                this.sendBvlc(receiver, buffer);
                              }
                              /**
                               *
                               * @param receiver
                               * @param service
                               * @param invokeId
                               * @param errorClass
                               * @param errorCode
                               */
                              errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                                trace22222222(
                                  `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                    service
                                  )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                                );
                                trace22222222(
                                  `error message ${error_exports2222222.buildMessage({
                                    class: errorClass,
                                    code: errorCode
                                  })}`
                                );
                                const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                                if (typeof receiver === "string")
                                  throw new Error("receiver must be object");
                                const buffer = this._getBuffer(hasSource);
                                encode312222222(buffer, 0, receiver);
                                encodeError2222222(buffer, 80, service, invokeId);
                                error_exports2222222.encode(buffer, errorClass, errorCode);
                                this.sendBvlc(receiver, buffer);
                              }
                              /**
                               *
                               * @param receiver
                               * @param buffer
                               */
                              sendBvlc(receiver, buffer) {
                                if (typeof receiver === "string") {
                                  receiver = {
                                    address: receiver
                                  };
                                }
                                if (receiver && receiver.forwardedFrom) {
                                  encode322222222(
                                    buffer.buffer,
                                    4,
                                    buffer.offset,
                                    receiver.forwardedFrom
                                  );
                                } else if (receiver && receiver.address) {
                                  encode322222222(
                                    buffer.buffer,
                                    10,
                                    buffer.offset
                                  );
                                } else {
                                  encode322222222(
                                    buffer.buffer,
                                    11,
                                    buffer.offset
                                  );
                                }
                                this._transport.send(
                                  buffer.buffer,
                                  buffer.offset,
                                  receiver && receiver.address || null
                                );
                              }
                              /**
                               * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                               * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                               * @function bacnet.resultResponse
                               * @param {string} receiver - IP address of the target device.
                               * @param {number} resultCode - Single value from BvlcResultFormat enum.
                               */
                              resultResponse(receiver, resultCode) {
                                const buffer = this._getBuffer();
                                encodeResult2222222(buffer, resultCode);
                                encode322222222(
                                  buffer.buffer,
                                  0,
                                  buffer.offset
                                );
                                this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                              }
                              /**
                               * Unloads the current bacnet instance and closes the underlying UDP socket.
                               * @function bacnet.close
                               * @example
                               * const bacnet = require('node-bacnet');
                               * const client = new bacnet();
                               *
                               * client.close();
                               */
                              close() {
                                this._transport.close();
                              }
                              /**
                               * Helper function to take an array of enums and produce a bitstring suitable
                               * for inclusion as a property.
                               *
                               * @example
                               * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                               *   {value: bacnet.createBitstring([
                               *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                               *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                               *   ]),
                               *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                               * ],
                               */
                              static createBitstring(items) {
                                let offset = 0;
                                let bytes = [];
                                let bitsUsed = 0;
                                while (items.length) {
                                  let value = 0;
                                  items = items.filter((i) => {
                                    if (i >= offset + 8) {
                                      return true;
                                    }
                                    value |= 1 << i - offset;
                                    bitsUsed = Math.max(bitsUsed, i);
                                    return false;
                                  });
                                  bytes.push(value);
                                  offset += 8;
                                }
                                bitsUsed++;
                                return {
                                  value: bytes,
                                  bitsUsed
                                };
                              }
                            };
                            var import_underscore2222222 = __toESM2222222(require("underscore"));
                            var import_process2222222 = __toESM2222222(require("process"));
                            var import__2222222 = __toESM2222222(require_dist2222222());
                            var PropertyIdentifierToEnumMap2222222 = {};
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.OBJECT_TYPE] = import__2222222.enums.ObjectType;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__2222222.enums.Segmentation;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.EVENT_STATE] = import__2222222.enums.EventState;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.UNITS] = import__2222222.enums.EngineeringUnits;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.RELIABILITY] = import__2222222.enums.Reliability;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__2222222.enums.NotifyType;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.POLARITY] = import__2222222.enums.Polarity;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__2222222.enums.ServicesSupported;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__2222222.enums.ObjectTypesSupported;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.STATUS_FLAGS] = import__2222222.enums.StatusFlags;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__2222222.enums.LimitEnable;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.EVENT_ENABLE] = import__2222222.enums.EventTransitionBits;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__2222222.enums.EventTransitionBits;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__2222222.enums.DeviceStatus;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__2222222.enums.DeviceStatus;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.ACK_REQUIRED] = import__2222222.enums.EventTransitionBits;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.LOGGING_TYPE] = import__2222222.enums.LoggingType;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__2222222.enums.FileAccessMethod;
                            PropertyIdentifierToEnumMap2222222[import__2222222.enums.PropertyIdentifier.NODE_TYPE] = import__2222222.enums.NodeType;
                            var ObjectTypeSpecificPropertyIdentifierToEnumMap2222222 = {};
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BINARY_INPUT] = {};
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BINARY_INPUT][import__2222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222.enums.BinaryPV;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BINARY_INPUT][import__2222222.enums.PropertyIdentifier.MODE] = import__2222222.enums.BinaryPV;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.ANALOG_INPUT] = {};
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.ANALOG_INPUT][import__2222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222.enums.BinaryPV;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.ANALOG_OUTPUT] = {};
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.ANALOG_OUTPUT][import__2222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222.enums.BinaryPV;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BINARY_OUTPUT] = {};
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BINARY_OUTPUT][import__2222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222.enums.BinaryPV;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BINARY_OUTPUT][import__2222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__2222222.enums.BinaryPV;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BINARY_VALUE] = {};
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BINARY_VALUE][import__2222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222.enums.BinaryPV;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BINARY_VALUE][import__2222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__2222222.enums.BinaryPV;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__2222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222.enums.BinaryLightingPV;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BITSTRING_VALUE] = {};
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.BINARY_VALUE][import__2222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222.enums.BinaryPV;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222.enums.LifeSafetyState;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222.enums.PropertyIdentifier.TRACKING_VALUE] = import__2222222.enums.LifeSafetyState;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222.enums.PropertyIdentifier.MODE] = import__2222222.enums.LifeSafetyMode;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__2222222.enums.LifeSafetyMode;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222.enums.PropertyIdentifier.SILENCED] = import__2222222.enums.LifeSafetyState;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__2222222.enums.LifeSafetyOperation;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__2222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222.enums.LifeSafetyState;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__2222222.enums.PropertyIdentifier.MODE] = import__2222222.enums.LifeSafetyMode;
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.LOAD_CONTROL] = {};
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[import__2222222.enums.ObjectType.LOAD_CONTROL][import__2222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222222.enums.ShedState;
                            var propSubSet2222222 = import_process2222222.default.argv.includes("--all") ? Object.values(import__2222222.enums.PropertyIdentifier) : [
                              /* normally supported from all devices */
                              import__2222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                              import__2222222.enums.PropertyIdentifier.OBJECT_NAME,
                              import__2222222.enums.PropertyIdentifier.OBJECT_TYPE,
                              import__2222222.enums.PropertyIdentifier.PRESENT_VALUE,
                              import__2222222.enums.PropertyIdentifier.STATUS_FLAGS,
                              import__2222222.enums.PropertyIdentifier.EVENT_STATE,
                              import__2222222.enums.PropertyIdentifier.RELIABILITY,
                              import__2222222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                              import__2222222.enums.PropertyIdentifier.UNITS,
                              /* other properties */
                              import__2222222.enums.PropertyIdentifier.DESCRIPTION,
                              import__2222222.enums.PropertyIdentifier.SYSTEM_STATUS,
                              import__2222222.enums.PropertyIdentifier.VENDOR_NAME,
                              import__2222222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                              import__2222222.enums.PropertyIdentifier.MODEL_NAME,
                              import__2222222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                              import__2222222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                              import__2222222.enums.PropertyIdentifier.LOCATION,
                              import__2222222.enums.PropertyIdentifier.LOCAL_DATE,
                              import__2222222.enums.PropertyIdentifier.LOCAL_TIME,
                              import__2222222.enums.PropertyIdentifier.UTC_OFFSET,
                              import__2222222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                              import__2222222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                              import__2222222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                              import__2222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                              import__2222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                              import__2222222.enums.PropertyIdentifier.OBJECT_LIST,
                              import__2222222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                              import__2222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                              import__2222222.enums.PropertyIdentifier.APDU_TIMEOUT,
                              import__2222222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                              import__2222222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                              import__2222222.enums.PropertyIdentifier.DATABASE_REVISION,
                              import__2222222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                              import__2222222.enums.PropertyIdentifier.MAX_MASTER,
                              import__2222222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                              import__2222222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                            ];
                            var debug42222222 = import_process2222222.default.argv.includes("--debug");
                            function getAllPropertiesManually2222222(address, objectId, callback, propList, result) {
                              if (!propList) {
                                propList = propSubSet2222222.map((x) => x);
                              }
                              if (!result) {
                                result = [];
                              }
                              if (!propList.length) {
                                return callback({
                                  values: [
                                    {
                                      objectId,
                                      values: result
                                    }
                                  ]
                                });
                              }
                              const prop = propList.shift();
                              bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                                if (!err) {
                                  if (debug42222222) {
                                    console.log("Handle value " + prop + ": ", JSON.stringify(value));
                                  }
                                  const objRes = value.property;
                                  objRes.value = value.values;
                                  result.push(objRes);
                                } else {
                                }
                                getAllPropertiesManually2222222(address, objectId, callback, propList, result);
                              });
                            }
                            function readBit2222222(buffer, i, bit) {
                              return (buffer[i] >> bit) % 2;
                            }
                            function handleBitString2222222(buffer, bitsUsed, usedEnum) {
                              const res = [];
                              for (let i = 0; i < bitsUsed; i++) {
                                const bufferIndex = Math.floor(i / 8);
                                if (readBit2222222(buffer, bufferIndex, i % 8)) {
                                  res.push(import__2222222.enums.getEnumName(usedEnum, i));
                                }
                              }
                              return res;
                            }
                            function parseValue2222222(address, propertyIdentifierId, parentType, value, supportsMultiple, callback) {
                              let resValue = null;
                              if (value && value.type && value.value !== null && value.value !== void 0) {
                                switch (value.type) {
                                  case import__2222222.enums.ApplicationTag.NULL:
                                    resValue = null;
                                    break;
                                  case import__2222222.enums.ApplicationTag.BOOLEAN:
                                    resValue = !!value.value;
                                    break;
                                  case import__2222222.enums.ApplicationTag.UNSIGNED_INTEGER:
                                  case import__2222222.enums.ApplicationTag.SIGNED_INTEGER:
                                  case import__2222222.enums.ApplicationTag.REAL:
                                  case import__2222222.enums.ApplicationTag.DOUBLE:
                                  case import__2222222.enums.ApplicationTag.CHARACTER_STRING:
                                    resValue = value.value;
                                    break;
                                  case import__2222222.enums.ApplicationTag.DATE:
                                  case import__2222222.enums.ApplicationTag.TIME:
                                  case import__2222222.enums.ApplicationTag.TIMESTAMP:
                                    resValue = value.value;
                                    break;
                                  case import__2222222.enums.ApplicationTag.BIT_STRING:
                                    if (ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[parentType][objId]) {
                                      resValue = handleBitString2222222(
                                        value.value.value,
                                        value.value.bitsUsed,
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[parentType][objId]
                                      );
                                    } else if (PropertyIdentifierToEnumMap2222222[objId]) {
                                      resValue = handleBitString2222222(
                                        value.value.value,
                                        value.value.bitsUsed,
                                        PropertyIdentifierToEnumMap2222222[objId]
                                      );
                                    } else {
                                      if (parentType !== import__2222222.enums.ObjectType.BITSTRING_VALUE) {
                                        console.log(
                                          "Unknown value for BIT_STRING type for objId " + import__2222222.enums.getEnumName(import__2222222.enums.PropertyIdentifier, objId) + " and parent type " + import__2222222.enums.getEnumName(import__2222222.enums.ObjectType, parentType)
                                        );
                                      }
                                      resValue = value.value;
                                    }
                                    break;
                                  case import__2222222.enums.ApplicationTag.ENUMERATED:
                                    if (ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[parentType][objId]) {
                                      resValue = import__2222222.enums.getEnumName(
                                        ObjectTypeSpecificPropertyIdentifierToEnumMap2222222[parentType][objId],
                                        value.value
                                      );
                                    } else if (PropertyIdentifierToEnumMap2222222[objId]) {
                                      resValue = import__2222222.enums.getEnumName(
                                        PropertyIdentifierToEnumMap2222222[objId],
                                        value.value
                                      );
                                    } else {
                                      console.log(
                                        "Unknown value for ENUMERATED type for objId " + import__2222222.enums.getEnumName(import__2222222.enums.PropertyIdentifier, objId) + " and parent type " + import__2222222.enums.getEnumName(import__2222222.enums.ObjectType, parentType)
                                      );
                                      resValue = value.value;
                                    }
                                    break;
                                  case import__2222222.enums.ApplicationTag.OBJECTIDENTIFIER:
                                    if (objId === import__2222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId === import__2222222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId === import__2222222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                                      resValue = value.value;
                                    } else if (supportsMultiple) {
                                      const requestArray = [
                                        {
                                          objectId: value.value,
                                          properties: [{ id: 8 }]
                                        }
                                      ];
                                      bacnetClient.readPropertyMultiple(
                                        address,
                                        requestArray,
                                        (err, resValue2) => {
                                          parseDeviceObject2222222(address, resValue2, value.value, true, callback);
                                        }
                                      );
                                      return;
                                    } else {
                                      getAllPropertiesManually2222222(address, value.value, (result) => {
                                        parseDeviceObject2222222(address, result, value.value, false, callback);
                                      });
                                      return;
                                    }
                                    break;
                                  case import__2222222.enums.ApplicationTag.OCTET_STRING:
                                    resValue = value.value;
                                    break;
                                  case import__2222222.enums.ApplicationTag.ERROR:
                                    resValue = {
                                      errorClass: import__2222222.enums.getEnumName(
                                        import__2222222.enums.ErrorClass,
                                        value.value.errorClass
                                      ),
                                      errorCode: import__2222222.enums.getEnumName(import__2222222.enums.ErrorCode, value.value.errorCode)
                                    };
                                    break;
                                  case import__2222222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                                  case import__2222222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                                  case import__2222222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                                  case import__2222222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                    resValue = value.value;
                                    break;
                                  case import__2222222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                    parseValue2222222(
                                      address,
                                      objId,
                                      parentType,
                                      value.value,
                                      supportsMultiple,
                                      callback
                                    );
                                    return;
                                  case import__2222222.enums.ApplicationTag.READ_ACCESS_RESULT:
                                    resValue = value.value;
                                    break;
                                  default:
                                    console.log(
                                      "unknown type " + value.type + ": " + JSON.stringify(value)
                                    );
                                    resValue = value;
                                }
                              }
                              setImmediate(() => callback(resValue));
                            }
                            function parseDeviceObject2222222(address, obj, parent, supportsMultiple, callback) {
                              if (debug42222222) {
                                console.log(
                                  "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                                );
                              }
                              if (!obj) {
                                console.log("object not valid on parse device object");
                                return;
                              }
                              if (!obj.values || !Array.isArray(obj.values)) {
                                console.log("No device or invalid response");
                                callback({ ERROR: "No device or invalid response" });
                                return;
                              }
                              let cbCount = 0;
                              let objDef = {};
                              const finalize = () => {
                                Object.keys(objDef).forEach((devId) => {
                                  Object.keys(objDef[devId]).forEach((objId2) => {
                                    if (objDef[devId][objId2].length === 1) {
                                      objDef[devId][objId2] = objDef[devId][objId2][0];
                                    }
                                  });
                                });
                                if (obj.values.length === 1) {
                                  objDef = objDef[obj.values[0].objectId.instance];
                                }
                                if (debug42222222) {
                                  console.log(
                                    "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                                  );
                                }
                                callback(objDef);
                              };
                              obj.values.forEach((devBaseObj) => {
                                if (!devBaseObj.objectId) {
                                  console.log("No device Id found in object data");
                                  return;
                                }
                                if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                                  console.log("No device type or instance found in object data");
                                  return;
                                }
                                if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                                  console.log("No device values response");
                                  return;
                                }
                                const deviceId = devBaseObj.objectId.instance;
                                objDef[deviceId] = {};
                                devBaseObj.values.forEach((devObj) => {
                                  let objId2 = import__2222222.enums.getEnumName(import__2222222.enums.PropertyIdentifier, devObj.id);
                                  if (devObj.index !== 4294967295) {
                                    objId2 += "-" + devObj.index;
                                  }
                                  if (debug42222222) {
                                    console.log("Handle Object property:", deviceId, objId2, devObj.value);
                                  }
                                  devObj.value.forEach((val) => {
                                    if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                      objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                      objDef[deviceId][objId2].push(val.value);
                                      return;
                                    }
                                    cbCount++;
                                    parseValue2222222(
                                      address,
                                      devObj.id,
                                      parent.type,
                                      val,
                                      supportsMultiple,
                                      (parsedValue) => {
                                        if (debug42222222) {
                                          console.log(
                                            "RETURN parsedValue",
                                            deviceId,
                                            objId2,
                                            devObj.value,
                                            parsedValue
                                          );
                                        }
                                        objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                        objDef[deviceId][objId2].push(parsedValue);
                                        if (!--cbCount) {
                                          finalize();
                                        }
                                      }
                                    );
                                  });
                                });
                              });
                              if (cbCount === 0) {
                                finalize();
                              }
                            }
                            var limitToDevice2222222 = null;
                            if (import_process2222222.default.argv.length === 3) {
                              limitToDevice2222222 = parseInt(import_process2222222.default.argv[2]);
                              if (isNaN(limitToDevice2222222)) {
                                limitToDevice2222222 = null;
                              }
                            }
                            var node_bacnet_default2222222 = Client2222222;
                          }
                        });
                        var node_bacnet_exports222222 = {};
                        __export222222(node_bacnet_exports222222, {
                          _: () => import_underscore222222.default,
                          bacnetErrorToString: () => bacnetErrorToString222222,
                          default: () => node_bacnet_default222222,
                          enums: () => enum_exports222222,
                          parseValue: () => parseValue222222
                        });
                        module222222.exports = __toCommonJS222222(node_bacnet_exports222222);
                        var enum_exports222222 = {};
                        __export222222(enum_exports222222, {
                          ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL222222,
                          ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS222222,
                          ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG222222,
                          ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES222222,
                          ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE222222,
                          ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT222222,
                          ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE222222,
                          ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY222222,
                          ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID222222,
                          ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY222222,
                          ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY222222,
                          AbortReason: () => AbortReason222222,
                          AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable222222,
                          AccessCredentialDisable: () => AccessCredentialDisable222222,
                          AccessCredentialDisableReason: () => AccessCredentialDisableReason222222,
                          AccessEvent: () => AccessEvent222222,
                          AccessPassbackMode: () => AccessPassbackMode222222,
                          AccessUserType: () => AccessUserType222222,
                          AccessZoneOccupancyState: () => AccessZoneOccupancyState222222,
                          Action: () => Action222222,
                          ApplicationTag: () => ApplicationTag222222,
                          ApplicationTagName: () => ApplicationTagName222222,
                          AuthenticationFactorType: () => AuthenticationFactorType222222,
                          AuthenticationStatus: () => AuthenticationStatus222222,
                          AuthorizationExemption: () => AuthorizationExemption222222,
                          AuthorizationMode: () => AuthorizationMode222222,
                          BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH322222,
                          BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP222222,
                          BackupState: () => BackupState222222,
                          BinaryLightingPV: () => BinaryLightingPV222222,
                          BinaryPV: () => BinaryPV222222,
                          BvlcResultFormat: () => BvlcResultFormat222222,
                          BvlcResultPurpose: () => BvlcResultPurpose222222,
                          CharacterStringEncoding: () => CharacterStringEncoding222222,
                          ConfirmedServiceChoice: () => ConfirmedServiceChoice222222,
                          CovType: () => CovType222222,
                          DaysOfWeek: () => DaysOfWeek222222,
                          DeviceStatus: () => DeviceStatus222222,
                          DoorAlarmState: () => DoorAlarmState222222,
                          DoorSecuredStatus: () => DoorSecuredStatus222222,
                          DoorStatus: () => DoorStatus222222,
                          DoorValue: () => DoorValue222222,
                          EnableDisable: () => EnableDisable222222,
                          EngineeringUnits: () => EngineeringUnits222222,
                          ErrorClass: () => ErrorClass222222,
                          ErrorClassName: () => ErrorClassName222222,
                          ErrorCode: () => ErrorCode222222,
                          ErrorCodeName: () => ErrorCodeName222222,
                          EscalatorFault: () => EscalatorFault222222,
                          EscalatorMode: () => EscalatorMode222222,
                          EscalatorOperationDirection: () => EscalatorOperationDirection222222,
                          EventState: () => EventState222222,
                          EventTransitionBits: () => EventTransitionBits222222,
                          EventType: () => EventType222222,
                          FaultType: () => FaultType222222,
                          FileAccessMethod: () => FileAccessMethod222222,
                          IPMode: () => IPMode222222,
                          LifeSafetyMode: () => LifeSafetyMode222222,
                          LifeSafetyOperation: () => LifeSafetyOperation222222,
                          LifeSafetyState: () => LifeSafetyState222222,
                          LiftCarDirection: () => LiftCarDirection222222,
                          LiftCarDoorCommand: () => LiftCarDoorCommand222222,
                          LiftCarDriveStatus: () => LiftCarDriveStatus222222,
                          LiftCarMode: () => LiftCarMode222222,
                          LiftFault: () => LiftFault222222,
                          LiftGroupMode: () => LiftGroupMode222222,
                          LightingInProgress: () => LightingInProgress222222,
                          LightingOperation: () => LightingOperation222222,
                          LightingTransition: () => LightingTransition222222,
                          LimitEnable: () => LimitEnable222222,
                          LockStatus: () => LockStatus222222,
                          LogStatus: () => LogStatus222222,
                          LoggingType: () => LoggingType222222,
                          Maintenance: () => Maintenance222222,
                          MaxApduLengthAccepted: () => MaxApduLengthAccepted222222,
                          MaxSegmentsAccepted: () => MaxSegmentsAccepted222222,
                          NetworkLayerMessageType: () => NetworkLayerMessageType222222,
                          NetworkNumberQuality: () => NetworkNumberQuality222222,
                          NetworkPortCommand: () => NetworkPortCommand222222,
                          NetworkType: () => NetworkType222222,
                          NodeType: () => NodeType222222,
                          NotifyType: () => NotifyType222222,
                          NpduControlBit: () => NpduControlBit222222,
                          NpduControlPriority: () => NpduControlPriority222222,
                          ObjectType: () => ObjectType222222,
                          ObjectTypesSupported: () => ObjectTypesSupported222222,
                          PDU_TYPE_MASK: () => PDU_TYPE_MASK222222,
                          PduConReqBit: () => PduConReqBit222222,
                          PduSegAckBit: () => PduSegAckBit222222,
                          PduType: () => PduType222222,
                          Polarity: () => Polarity222222,
                          ProgramError: () => ProgramError222222,
                          ProgramRequest: () => ProgramRequest222222,
                          ProgramState: () => ProgramState222222,
                          PropertyIdentifier: () => PropertyIdentifier222222,
                          PropertyStates: () => PropertyStates222222,
                          ProtocolLevel: () => ProtocolLevel222222,
                          ReadRangeType: () => ReadRangeType222222,
                          ReinitializedState: () => ReinitializedState222222,
                          RejectReason: () => RejectReason222222,
                          Relationship: () => Relationship222222,
                          Reliability: () => Reliability222222,
                          RestartReason: () => RestartReason222222,
                          ResultFlags: () => ResultFlags222222,
                          SecurityLevel: () => SecurityLevel222222,
                          SecurityPolicy: () => SecurityPolicy222222,
                          Segmentation: () => Segmentation222222,
                          ServicesSupported: () => ServicesSupported222222,
                          ShedState: () => ShedState222222,
                          SilencedState: () => SilencedState222222,
                          StatusFlags: () => StatusFlags222222,
                          TimeStamp: () => TimeStamp222222,
                          TimerState: () => TimerState222222,
                          TimerTransition: () => TimerTransition222222,
                          UnconfirmedServiceChoice: () => UnconfirmedServiceChoice222222,
                          VTClass: () => VTClass222222,
                          WriteStatus: () => WriteStatus222222,
                          getEnumName: () => getEnumName222222
                        });
                        var import_debug422222 = __toESM222222(require("debug"));
                        var debug522222 = (0, import_debug422222.default)("bacnet=enum=debug");
                        var trace322222 = (0, import_debug422222.default)("bacnet=enum=trace");
                        function invertEnum222222(enumToInvert) {
                          const invertedEnum = {};
                          Object.keys(enumToInvert).forEach((key) => {
                            invertedEnum[enumToInvert[key]] = key;
                          });
                          return invertedEnum;
                        }
                        function getEnumName222222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                          if (!Number.isInteger(value)) {
                            throw new Error(
                              'getEnumName() can only be passed an integer value, was given "' + value + '"'
                            );
                          }
                          let foundEntry;
                          try {
                            const invertedGroup = invertEnum222222(group);
                            foundEntry = invertedGroup[value];
                            if (foundEntry === void 0 && undefinedFallbackValue) {
                              foundEntry = undefinedFallbackValue;
                            }
                            if (foundEntry === void 0) {
                              foundEntry = value.toString();
                            } else if (addNumberValue) {
                              foundEntry += "(" + value + ")";
                            }
                          } catch (e) {
                            trace322222(e.message);
                            foundEntry = null;
                          }
                          return foundEntry;
                        }
                        var PDU_TYPE_MASK222222 = 240;
                        var ASN1_MAX_OBJECT222222 = 1023;
                        var ASN1_INSTANCE_BITS222222 = 22;
                        var ASN1_MAX_INSTANCE222222 = 4194303;
                        var ASN1_MAX_BITSTRING_BYTES222222 = 15;
                        var ASN1_ARRAY_ALL222222 = 4294967295;
                        var ASN1_NO_PRIORITY222222 = 0;
                        var ASN1_MIN_PRIORITY222222 = 1;
                        var ASN1_MAX_PRIORITY222222 = 16;
                        var ASN1_MAX_APPLICATION_TAG222222 = 16;
                        var ASN1_MAX_OBJECT_TYPE222222 = 1024;
                        var ASN1_MAX_PROPERTY_ID222222 = 4194303;
                        var BVLL_TYPE_BACNET_IP222222 = 129;
                        var BVLC_HEADER_LENGTH322222 = 4;
                        var ConfirmedServiceChoice222222 = /* @__PURE__ */ ((ConfirmedServiceChoice2222222) => {
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["VT_OPEN"] = 21] = "VT_OPEN";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["VT_DATA"] = 23] = "VT_DATA";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["READ_RANGE"] = 26] = "READ_RANGE";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                          ConfirmedServiceChoice2222222[ConfirmedServiceChoice2222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                          return ConfirmedServiceChoice2222222;
                        })(ConfirmedServiceChoice222222 || {});
                        var UnconfirmedServiceChoice222222 = /* @__PURE__ */ ((UnconfirmedServiceChoice2222222) => {
                          UnconfirmedServiceChoice2222222[UnconfirmedServiceChoice2222222["I_AM"] = 0] = "I_AM";
                          UnconfirmedServiceChoice2222222[UnconfirmedServiceChoice2222222["I_HAVE"] = 1] = "I_HAVE";
                          UnconfirmedServiceChoice2222222[UnconfirmedServiceChoice2222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                          UnconfirmedServiceChoice2222222[UnconfirmedServiceChoice2222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                          UnconfirmedServiceChoice2222222[UnconfirmedServiceChoice2222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                          UnconfirmedServiceChoice2222222[UnconfirmedServiceChoice2222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                          UnconfirmedServiceChoice2222222[UnconfirmedServiceChoice2222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                          UnconfirmedServiceChoice2222222[UnconfirmedServiceChoice2222222["WHO_HAS"] = 7] = "WHO_HAS";
                          UnconfirmedServiceChoice2222222[UnconfirmedServiceChoice2222222["WHO_IS"] = 8] = "WHO_IS";
                          UnconfirmedServiceChoice2222222[UnconfirmedServiceChoice2222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                          UnconfirmedServiceChoice2222222[UnconfirmedServiceChoice2222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                          UnconfirmedServiceChoice2222222[UnconfirmedServiceChoice2222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                          return UnconfirmedServiceChoice2222222;
                        })(UnconfirmedServiceChoice222222 || {});
                        var AbortReason222222 = /* @__PURE__ */ ((AbortReason2222222) => {
                          AbortReason2222222[AbortReason2222222["OTHER"] = 0] = "OTHER";
                          AbortReason2222222[AbortReason2222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                          AbortReason2222222[AbortReason2222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                          AbortReason2222222[AbortReason2222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                          AbortReason2222222[AbortReason2222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                          AbortReason2222222[AbortReason2222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                          AbortReason2222222[AbortReason2222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                          AbortReason2222222[AbortReason2222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                          AbortReason2222222[AbortReason2222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                          AbortReason2222222[AbortReason2222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                          AbortReason2222222[AbortReason2222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                          AbortReason2222222[AbortReason2222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                          return AbortReason2222222;
                        })(AbortReason222222 || {});
                        var RejectReason222222 = /* @__PURE__ */ ((RejectReason2222222) => {
                          RejectReason2222222[RejectReason2222222["OTHER"] = 0] = "OTHER";
                          RejectReason2222222[RejectReason2222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                          RejectReason2222222[RejectReason2222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                          RejectReason2222222[RejectReason2222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                          RejectReason2222222[RejectReason2222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                          RejectReason2222222[RejectReason2222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                          RejectReason2222222[RejectReason2222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                          RejectReason2222222[RejectReason2222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                          RejectReason2222222[RejectReason2222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                          RejectReason2222222[RejectReason2222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                          return RejectReason2222222;
                        })(RejectReason222222 || {});
                        var ErrorClass222222 = /* @__PURE__ */ ((ErrorClass2222222) => {
                          ErrorClass2222222[ErrorClass2222222["DEVICE"] = 0] = "DEVICE";
                          ErrorClass2222222[ErrorClass2222222["OBJECT"] = 1] = "OBJECT";
                          ErrorClass2222222[ErrorClass2222222["PROPERTY"] = 2] = "PROPERTY";
                          ErrorClass2222222[ErrorClass2222222["RESOURCES"] = 3] = "RESOURCES";
                          ErrorClass2222222[ErrorClass2222222["SECURITY"] = 4] = "SECURITY";
                          ErrorClass2222222[ErrorClass2222222["SERVICES"] = 5] = "SERVICES";
                          ErrorClass2222222[ErrorClass2222222["VT"] = 6] = "VT";
                          ErrorClass2222222[ErrorClass2222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                          return ErrorClass2222222;
                        })(ErrorClass222222 || {});
                        var ErrorClassName222222 = invertEnum222222(
                          ErrorClass222222
                        );
                        var ErrorCode222222 = /* @__PURE__ */ ((ErrorCode2222222) => {
                          ErrorCode2222222[ErrorCode2222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                          ErrorCode2222222[ErrorCode2222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                          ErrorCode2222222[ErrorCode2222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                          ErrorCode2222222[ErrorCode2222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                          ErrorCode2222222[ErrorCode2222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                          ErrorCode2222222[ErrorCode2222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                          ErrorCode2222222[ErrorCode2222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                          ErrorCode2222222[ErrorCode2222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                          ErrorCode2222222[ErrorCode2222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                          ErrorCode2222222[ErrorCode2222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                          ErrorCode2222222[ErrorCode2222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                          ErrorCode2222222[ErrorCode2222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                          ErrorCode2222222[ErrorCode2222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                          ErrorCode2222222[ErrorCode2222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                          ErrorCode2222222[ErrorCode2222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                          ErrorCode2222222[ErrorCode2222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                          ErrorCode2222222[ErrorCode2222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                          ErrorCode2222222[ErrorCode2222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                          ErrorCode2222222[ErrorCode2222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                          ErrorCode2222222[ErrorCode2222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                          ErrorCode2222222[ErrorCode2222222["BUSY"] = 82] = "BUSY";
                          ErrorCode2222222[ErrorCode2222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                          ErrorCode2222222[ErrorCode2222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                          ErrorCode2222222[ErrorCode2222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                          ErrorCode2222222[ErrorCode2222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                          ErrorCode2222222[ErrorCode2222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                          ErrorCode2222222[ErrorCode2222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                          ErrorCode2222222[ErrorCode2222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                          ErrorCode2222222[ErrorCode2222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                          ErrorCode2222222[ErrorCode2222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                          ErrorCode2222222[ErrorCode2222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                          ErrorCode2222222[ErrorCode2222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                          ErrorCode2222222[ErrorCode2222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                          ErrorCode2222222[ErrorCode2222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                          ErrorCode2222222[ErrorCode2222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                          ErrorCode2222222[ErrorCode2222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                          ErrorCode2222222[ErrorCode2222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                          ErrorCode2222222[ErrorCode2222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                          ErrorCode2222222[ErrorCode2222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                          ErrorCode2222222[ErrorCode2222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                          ErrorCode2222222[ErrorCode2222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                          ErrorCode2222222[ErrorCode2222222["FILE_FULL"] = 128] = "FILE_FULL";
                          ErrorCode2222222[ErrorCode2222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                          ErrorCode2222222[ErrorCode2222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                          ErrorCode2222222[ErrorCode2222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                          ErrorCode2222222[ErrorCode2222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                          ErrorCode2222222[ErrorCode2222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                          ErrorCode2222222[ErrorCode2222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                          ErrorCode2222222[ErrorCode2222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                          ErrorCode2222222[ErrorCode2222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                          ErrorCode2222222[ErrorCode2222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                          ErrorCode2222222[ErrorCode2222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                          ErrorCode2222222[ErrorCode2222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                          ErrorCode2222222[ErrorCode2222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                          ErrorCode2222222[ErrorCode2222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                          ErrorCode2222222[ErrorCode2222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                          ErrorCode2222222[ErrorCode2222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                          ErrorCode2222222[ErrorCode2222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                          ErrorCode2222222[ErrorCode2222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                          ErrorCode2222222[ErrorCode2222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                          ErrorCode2222222[ErrorCode2222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                          ErrorCode2222222[ErrorCode2222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                          ErrorCode2222222[ErrorCode2222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                          ErrorCode2222222[ErrorCode2222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                          ErrorCode2222222[ErrorCode2222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                          ErrorCode2222222[ErrorCode2222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                          ErrorCode2222222[ErrorCode2222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                          ErrorCode2222222[ErrorCode2222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                          ErrorCode2222222[ErrorCode2222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                          ErrorCode2222222[ErrorCode2222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                          ErrorCode2222222[ErrorCode2222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                          ErrorCode2222222[ErrorCode2222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                          ErrorCode2222222[ErrorCode2222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                          ErrorCode2222222[ErrorCode2222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                          ErrorCode2222222[ErrorCode2222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                          ErrorCode2222222[ErrorCode2222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                          ErrorCode2222222[ErrorCode2222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                          ErrorCode2222222[ErrorCode2222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                          ErrorCode2222222[ErrorCode2222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                          ErrorCode2222222[ErrorCode2222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                          ErrorCode2222222[ErrorCode2222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                          ErrorCode2222222[ErrorCode2222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                          ErrorCode2222222[ErrorCode2222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                          ErrorCode2222222[ErrorCode2222222["OTHER"] = 0] = "OTHER";
                          ErrorCode2222222[ErrorCode2222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                          ErrorCode2222222[ErrorCode2222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                          ErrorCode2222222[ErrorCode2222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                          ErrorCode2222222[ErrorCode2222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                          ErrorCode2222222[ErrorCode2222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                          ErrorCode2222222[ErrorCode2222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                          ErrorCode2222222[ErrorCode2222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                          ErrorCode2222222[ErrorCode2222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                          ErrorCode2222222[ErrorCode2222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                          ErrorCode2222222[ErrorCode2222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                          ErrorCode2222222[ErrorCode2222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                          ErrorCode2222222[ErrorCode2222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                          ErrorCode2222222[ErrorCode2222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                          ErrorCode2222222[ErrorCode2222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                          ErrorCode2222222[ErrorCode2222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                          ErrorCode2222222[ErrorCode2222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                          ErrorCode2222222[ErrorCode2222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                          ErrorCode2222222[ErrorCode2222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                          ErrorCode2222222[ErrorCode2222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                          ErrorCode2222222[ErrorCode2222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                          ErrorCode2222222[ErrorCode2222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                          ErrorCode2222222[ErrorCode2222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                          ErrorCode2222222[ErrorCode2222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                          ErrorCode2222222[ErrorCode2222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                          ErrorCode2222222[ErrorCode2222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                          ErrorCode2222222[ErrorCode2222222["SUCCESS"] = 84] = "SUCCESS";
                          ErrorCode2222222[ErrorCode2222222["TIMEOUT"] = 30] = "TIMEOUT";
                          ErrorCode2222222[ErrorCode2222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                          ErrorCode2222222[ErrorCode2222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                          ErrorCode2222222[ErrorCode2222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                          ErrorCode2222222[ErrorCode2222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                          ErrorCode2222222[ErrorCode2222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                          ErrorCode2222222[ErrorCode2222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                          ErrorCode2222222[ErrorCode2222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                          ErrorCode2222222[ErrorCode2222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                          ErrorCode2222222[ErrorCode2222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                          ErrorCode2222222[ErrorCode2222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                          return ErrorCode2222222;
                        })(ErrorCode222222 || {});
                        var ErrorCodeName222222 = invertEnum222222(
                          ErrorCode222222
                        );
                        var AccessAuthenticationFactorDisable222222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable2222222) => {
                          AccessAuthenticationFactorDisable2222222[AccessAuthenticationFactorDisable2222222["NONE"] = 0] = "NONE";
                          AccessAuthenticationFactorDisable2222222[AccessAuthenticationFactorDisable2222222["DISABLED"] = 1] = "DISABLED";
                          AccessAuthenticationFactorDisable2222222[AccessAuthenticationFactorDisable2222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                          AccessAuthenticationFactorDisable2222222[AccessAuthenticationFactorDisable2222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                          AccessAuthenticationFactorDisable2222222[AccessAuthenticationFactorDisable2222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                          AccessAuthenticationFactorDisable2222222[AccessAuthenticationFactorDisable2222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                          return AccessAuthenticationFactorDisable2222222;
                        })(AccessAuthenticationFactorDisable222222 || {});
                        var AccessCredentialDisable222222 = /* @__PURE__ */ ((AccessCredentialDisable2222222) => {
                          AccessCredentialDisable2222222[AccessCredentialDisable2222222["NONE"] = 0] = "NONE";
                          AccessCredentialDisable2222222[AccessCredentialDisable2222222["DISABLE"] = 1] = "DISABLE";
                          AccessCredentialDisable2222222[AccessCredentialDisable2222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                          AccessCredentialDisable2222222[AccessCredentialDisable2222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                          return AccessCredentialDisable2222222;
                        })(AccessCredentialDisable222222 || {});
                        var AccessCredentialDisableReason222222 = /* @__PURE__ */ ((AccessCredentialDisableReason2222222) => {
                          AccessCredentialDisableReason2222222[AccessCredentialDisableReason2222222["DISABLED"] = 0] = "DISABLED";
                          AccessCredentialDisableReason2222222[AccessCredentialDisableReason2222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                          AccessCredentialDisableReason2222222[AccessCredentialDisableReason2222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                          AccessCredentialDisableReason2222222[AccessCredentialDisableReason2222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                          AccessCredentialDisableReason2222222[AccessCredentialDisableReason2222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                          AccessCredentialDisableReason2222222[AccessCredentialDisableReason2222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                          AccessCredentialDisableReason2222222[AccessCredentialDisableReason2222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                          AccessCredentialDisableReason2222222[AccessCredentialDisableReason2222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                          AccessCredentialDisableReason2222222[AccessCredentialDisableReason2222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                          AccessCredentialDisableReason2222222[AccessCredentialDisableReason2222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                          return AccessCredentialDisableReason2222222;
                        })(AccessCredentialDisableReason222222 || {});
                        var AccessEvent222222 = /* @__PURE__ */ ((AccessEvent2222222) => {
                          AccessEvent2222222[AccessEvent2222222["NONE"] = 0] = "NONE";
                          AccessEvent2222222[AccessEvent2222222["GRANTED"] = 1] = "GRANTED";
                          AccessEvent2222222[AccessEvent2222222["MUSTER"] = 2] = "MUSTER";
                          AccessEvent2222222[AccessEvent2222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                          AccessEvent2222222[AccessEvent2222222["DURESS"] = 4] = "DURESS";
                          AccessEvent2222222[AccessEvent2222222["TRACE"] = 5] = "TRACE";
                          AccessEvent2222222[AccessEvent2222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                          AccessEvent2222222[AccessEvent2222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                          AccessEvent2222222[AccessEvent2222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                          AccessEvent2222222[AccessEvent2222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                          AccessEvent2222222[AccessEvent2222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                          AccessEvent2222222[AccessEvent2222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                          AccessEvent2222222[AccessEvent2222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                          AccessEvent2222222[AccessEvent2222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                          AccessEvent2222222[AccessEvent2222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                          AccessEvent2222222[AccessEvent2222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                          AccessEvent2222222[AccessEvent2222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                          AccessEvent2222222[AccessEvent2222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                          AccessEvent2222222[AccessEvent2222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                          AccessEvent2222222[AccessEvent2222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                          AccessEvent2222222[AccessEvent2222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                          AccessEvent2222222[AccessEvent2222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                          AccessEvent2222222[AccessEvent2222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                          AccessEvent2222222[AccessEvent2222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                          AccessEvent2222222[AccessEvent2222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                          AccessEvent2222222[AccessEvent2222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                          AccessEvent2222222[AccessEvent2222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                          AccessEvent2222222[AccessEvent2222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                          AccessEvent2222222[AccessEvent2222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                          AccessEvent2222222[AccessEvent2222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                          AccessEvent2222222[AccessEvent2222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                          AccessEvent2222222[AccessEvent2222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                          AccessEvent2222222[AccessEvent2222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                          AccessEvent2222222[AccessEvent2222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                          AccessEvent2222222[AccessEvent2222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                          AccessEvent2222222[AccessEvent2222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                          AccessEvent2222222[AccessEvent2222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                          AccessEvent2222222[AccessEvent2222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                          AccessEvent2222222[AccessEvent2222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                          AccessEvent2222222[AccessEvent2222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                          AccessEvent2222222[AccessEvent2222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                          AccessEvent2222222[AccessEvent2222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                          AccessEvent2222222[AccessEvent2222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                          AccessEvent2222222[AccessEvent2222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                          AccessEvent2222222[AccessEvent2222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                          AccessEvent2222222[AccessEvent2222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                          AccessEvent2222222[AccessEvent2222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                          AccessEvent2222222[AccessEvent2222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                          AccessEvent2222222[AccessEvent2222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                          AccessEvent2222222[AccessEvent2222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                          AccessEvent2222222[AccessEvent2222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                          AccessEvent2222222[AccessEvent2222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                          AccessEvent2222222[AccessEvent2222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                          AccessEvent2222222[AccessEvent2222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                          return AccessEvent2222222;
                        })(AccessEvent222222 || {});
                        var AccessPassbackMode222222 = /* @__PURE__ */ ((AccessPassbackMode2222222) => {
                          AccessPassbackMode2222222[AccessPassbackMode2222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                          AccessPassbackMode2222222[AccessPassbackMode2222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                          AccessPassbackMode2222222[AccessPassbackMode2222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                          return AccessPassbackMode2222222;
                        })(AccessPassbackMode222222 || {});
                        var AccessUserType222222 = /* @__PURE__ */ ((AccessUserType2222222) => {
                          AccessUserType2222222[AccessUserType2222222["ASSET"] = 0] = "ASSET";
                          AccessUserType2222222[AccessUserType2222222["GROUP"] = 1] = "GROUP";
                          AccessUserType2222222[AccessUserType2222222["PERSON"] = 2] = "PERSON";
                          return AccessUserType2222222;
                        })(AccessUserType222222 || {});
                        var AccessZoneOccupancyState222222 = /* @__PURE__ */ ((AccessZoneOccupancyState2222222) => {
                          AccessZoneOccupancyState2222222[AccessZoneOccupancyState2222222["NORMAL"] = 0] = "NORMAL";
                          AccessZoneOccupancyState2222222[AccessZoneOccupancyState2222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                          AccessZoneOccupancyState2222222[AccessZoneOccupancyState2222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                          AccessZoneOccupancyState2222222[AccessZoneOccupancyState2222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                          AccessZoneOccupancyState2222222[AccessZoneOccupancyState2222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                          AccessZoneOccupancyState2222222[AccessZoneOccupancyState2222222["DISABLED"] = 5] = "DISABLED";
                          AccessZoneOccupancyState2222222[AccessZoneOccupancyState2222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                          return AccessZoneOccupancyState2222222;
                        })(AccessZoneOccupancyState222222 || {});
                        var Action222222 = /* @__PURE__ */ ((Action2222222) => {
                          Action2222222[Action2222222["DIRECT"] = 0] = "DIRECT";
                          Action2222222[Action2222222["REVERSE"] = 1] = "REVERSE";
                          return Action2222222;
                        })(Action222222 || {});
                        var AuthenticationFactorType222222 = /* @__PURE__ */ ((AuthenticationFactorType2222222) => {
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["UNDEFINED"] = 0] = "UNDEFINED";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["ERROR"] = 1] = "ERROR";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["CUSTOM"] = 2] = "CUSTOM";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["WIEGAND26"] = 8] = "WIEGAND26";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["WIEGAND37"] = 9] = "WIEGAND37";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["FASC_N"] = 13] = "FASC_N";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["GSA75"] = 17] = "GSA75";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["CHUID"] = 18] = "CHUID";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["GUID"] = 20] = "GUID";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["CBEFF_A"] = 21] = "CBEFF_A";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["CBEFF_B"] = 22] = "CBEFF_B";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["CBEFF_C"] = 23] = "CBEFF_C";
                          AuthenticationFactorType2222222[AuthenticationFactorType2222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                          return AuthenticationFactorType2222222;
                        })(AuthenticationFactorType222222 || {});
                        var AuthenticationStatus222222 = /* @__PURE__ */ ((AuthenticationStatus2222222) => {
                          AuthenticationStatus2222222[AuthenticationStatus2222222["NOT_READY"] = 0] = "NOT_READY";
                          AuthenticationStatus2222222[AuthenticationStatus2222222["READY"] = 1] = "READY";
                          AuthenticationStatus2222222[AuthenticationStatus2222222["DISABLED"] = 2] = "DISABLED";
                          AuthenticationStatus2222222[AuthenticationStatus2222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                          AuthenticationStatus2222222[AuthenticationStatus2222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                          AuthenticationStatus2222222[AuthenticationStatus2222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                          AuthenticationStatus2222222[AuthenticationStatus2222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                          return AuthenticationStatus2222222;
                        })(AuthenticationStatus222222 || {});
                        var AuthorizationExemption222222 = /* @__PURE__ */ ((AuthorizationExemption2222222) => {
                          AuthorizationExemption2222222[AuthorizationExemption2222222["PASSBACK"] = 0] = "PASSBACK";
                          AuthorizationExemption2222222[AuthorizationExemption2222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                          AuthorizationExemption2222222[AuthorizationExemption2222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                          AuthorizationExemption2222222[AuthorizationExemption2222222["LOCKOUT"] = 3] = "LOCKOUT";
                          AuthorizationExemption2222222[AuthorizationExemption2222222["DENY"] = 4] = "DENY";
                          AuthorizationExemption2222222[AuthorizationExemption2222222["VERIFICATION"] = 5] = "VERIFICATION";
                          AuthorizationExemption2222222[AuthorizationExemption2222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                          return AuthorizationExemption2222222;
                        })(AuthorizationExemption222222 || {});
                        var AuthorizationMode222222 = /* @__PURE__ */ ((AuthorizationMode2222222) => {
                          AuthorizationMode2222222[AuthorizationMode2222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                          AuthorizationMode2222222[AuthorizationMode2222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                          AuthorizationMode2222222[AuthorizationMode2222222["DENY_ALL"] = 2] = "DENY_ALL";
                          AuthorizationMode2222222[AuthorizationMode2222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                          AuthorizationMode2222222[AuthorizationMode2222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                          AuthorizationMode2222222[AuthorizationMode2222222["NONE"] = 5] = "NONE";
                          return AuthorizationMode2222222;
                        })(AuthorizationMode222222 || {});
                        var BackupState222222 = /* @__PURE__ */ ((BackupState2222222) => {
                          BackupState2222222[BackupState2222222["IDLE"] = 0] = "IDLE";
                          BackupState2222222[BackupState2222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                          BackupState2222222[BackupState2222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                          BackupState2222222[BackupState2222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                          BackupState2222222[BackupState2222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                          BackupState2222222[BackupState2222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                          BackupState2222222[BackupState2222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                          return BackupState2222222;
                        })(BackupState222222 || {});
                        var BinaryLightingPV222222 = /* @__PURE__ */ ((BinaryLightingPV2222222) => {
                          BinaryLightingPV2222222[BinaryLightingPV2222222["OFF"] = 0] = "OFF";
                          BinaryLightingPV2222222[BinaryLightingPV2222222["ON"] = 1] = "ON";
                          BinaryLightingPV2222222[BinaryLightingPV2222222["WARN"] = 2] = "WARN";
                          BinaryLightingPV2222222[BinaryLightingPV2222222["WARN_OFF"] = 3] = "WARN_OFF";
                          BinaryLightingPV2222222[BinaryLightingPV2222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                          BinaryLightingPV2222222[BinaryLightingPV2222222["STOP"] = 5] = "STOP";
                          return BinaryLightingPV2222222;
                        })(BinaryLightingPV222222 || {});
                        var BinaryPV222222 = /* @__PURE__ */ ((BinaryPV2222222) => {
                          BinaryPV2222222[BinaryPV2222222["INACTIVE"] = 0] = "INACTIVE";
                          BinaryPV2222222[BinaryPV2222222["ACTIVE"] = 1] = "ACTIVE";
                          return BinaryPV2222222;
                        })(BinaryPV222222 || {});
                        var DeviceStatus222222 = /* @__PURE__ */ ((DeviceStatus2222222) => {
                          DeviceStatus2222222[DeviceStatus2222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                          DeviceStatus2222222[DeviceStatus2222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                          DeviceStatus2222222[DeviceStatus2222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                          DeviceStatus2222222[DeviceStatus2222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                          DeviceStatus2222222[DeviceStatus2222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                          DeviceStatus2222222[DeviceStatus2222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                          return DeviceStatus2222222;
                        })(DeviceStatus222222 || {});
                        var DoorAlarmState222222 = /* @__PURE__ */ ((DoorAlarmState2222222) => {
                          DoorAlarmState2222222[DoorAlarmState2222222["NORMAL"] = 0] = "NORMAL";
                          DoorAlarmState2222222[DoorAlarmState2222222["ALARM"] = 1] = "ALARM";
                          DoorAlarmState2222222[DoorAlarmState2222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                          DoorAlarmState2222222[DoorAlarmState2222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                          DoorAlarmState2222222[DoorAlarmState2222222["TAMPER"] = 4] = "TAMPER";
                          DoorAlarmState2222222[DoorAlarmState2222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                          DoorAlarmState2222222[DoorAlarmState2222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                          DoorAlarmState2222222[DoorAlarmState2222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                          DoorAlarmState2222222[DoorAlarmState2222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                          return DoorAlarmState2222222;
                        })(DoorAlarmState222222 || {});
                        var DoorSecuredStatus222222 = /* @__PURE__ */ ((DoorSecuredStatus2222222) => {
                          DoorSecuredStatus2222222[DoorSecuredStatus2222222["SECURED"] = 0] = "SECURED";
                          DoorSecuredStatus2222222[DoorSecuredStatus2222222["UNSECURED"] = 1] = "UNSECURED";
                          DoorSecuredStatus2222222[DoorSecuredStatus2222222["UNKNOWN"] = 2] = "UNKNOWN";
                          return DoorSecuredStatus2222222;
                        })(DoorSecuredStatus222222 || {});
                        var DoorStatus222222 = /* @__PURE__ */ ((DoorStatus2222222) => {
                          DoorStatus2222222[DoorStatus2222222["CLOSED"] = 0] = "CLOSED";
                          DoorStatus2222222[DoorStatus2222222["OPENED"] = 1] = "OPENED";
                          DoorStatus2222222[DoorStatus2222222["UNKNOWN"] = 2] = "UNKNOWN";
                          DoorStatus2222222[DoorStatus2222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                          DoorStatus2222222[DoorStatus2222222["UNUSED"] = 4] = "UNUSED";
                          DoorStatus2222222[DoorStatus2222222["NONE"] = 5] = "NONE";
                          DoorStatus2222222[DoorStatus2222222["CLOSING"] = 6] = "CLOSING";
                          DoorStatus2222222[DoorStatus2222222["OPENING"] = 7] = "OPENING";
                          DoorStatus2222222[DoorStatus2222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                          DoorStatus2222222[DoorStatus2222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                          return DoorStatus2222222;
                        })(DoorStatus222222 || {});
                        var DoorValue222222 = /* @__PURE__ */ ((DoorValue2222222) => {
                          DoorValue2222222[DoorValue2222222["LOCK"] = 0] = "LOCK";
                          DoorValue2222222[DoorValue2222222["UNLOCK"] = 1] = "UNLOCK";
                          DoorValue2222222[DoorValue2222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                          DoorValue2222222[DoorValue2222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                          return DoorValue2222222;
                        })(DoorValue222222 || {});
                        var EngineeringUnits222222 = /* @__PURE__ */ ((EngineeringUnits2222222) => {
                          EngineeringUnits2222222[EngineeringUnits2222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                          EngineeringUnits2222222[EngineeringUnits2222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                          EngineeringUnits2222222[EngineeringUnits2222222["CURRENCY1"] = 105] = "CURRENCY1";
                          EngineeringUnits2222222[EngineeringUnits2222222["CURRENCY2"] = 106] = "CURRENCY2";
                          EngineeringUnits2222222[EngineeringUnits2222222["CURRENCY3"] = 107] = "CURRENCY3";
                          EngineeringUnits2222222[EngineeringUnits2222222["CURRENCY4"] = 108] = "CURRENCY4";
                          EngineeringUnits2222222[EngineeringUnits2222222["CURRENCY5"] = 109] = "CURRENCY5";
                          EngineeringUnits2222222[EngineeringUnits2222222["CURRENCY6"] = 110] = "CURRENCY6";
                          EngineeringUnits2222222[EngineeringUnits2222222["CURRENCY7"] = 111] = "CURRENCY7";
                          EngineeringUnits2222222[EngineeringUnits2222222["CURRENCY8"] = 112] = "CURRENCY8";
                          EngineeringUnits2222222[EngineeringUnits2222222["CURRENCY9"] = 113] = "CURRENCY9";
                          EngineeringUnits2222222[EngineeringUnits2222222["CURRENCY10"] = 114] = "CURRENCY10";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                          EngineeringUnits2222222[EngineeringUnits2222222["AMPERES"] = 3] = "AMPERES";
                          EngineeringUnits2222222[EngineeringUnits2222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["DECIBELS"] = 199] = "DECIBELS";
                          EngineeringUnits2222222[EngineeringUnits2222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                          EngineeringUnits2222222[EngineeringUnits2222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                          EngineeringUnits2222222[EngineeringUnits2222222["FARADS"] = 170] = "FARADS";
                          EngineeringUnits2222222[EngineeringUnits2222222["HENRYS"] = 171] = "HENRYS";
                          EngineeringUnits2222222[EngineeringUnits2222222["OHMS"] = 4] = "OHMS";
                          EngineeringUnits2222222[EngineeringUnits2222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["OHM_METERS"] = 172] = "OHM_METERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOHMS"] = 122] = "KILOHMS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGOHMS"] = 123] = "MEGOHMS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                          EngineeringUnits2222222[EngineeringUnits2222222["SIEMENS"] = 173] = "SIEMENS";
                          EngineeringUnits2222222[EngineeringUnits2222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["TESLAS"] = 175] = "TESLAS";
                          EngineeringUnits2222222[EngineeringUnits2222222["VOLTS"] = 5] = "VOLTS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                          EngineeringUnits2222222[EngineeringUnits2222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                          EngineeringUnits2222222[EngineeringUnits2222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                          EngineeringUnits2222222[EngineeringUnits2222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                          EngineeringUnits2222222[EngineeringUnits2222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                          EngineeringUnits2222222[EngineeringUnits2222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                          EngineeringUnits2222222[EngineeringUnits2222222["WEBERS"] = 178] = "WEBERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                          EngineeringUnits2222222[EngineeringUnits2222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                          EngineeringUnits2222222[EngineeringUnits2222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                          EngineeringUnits2222222[EngineeringUnits2222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                          EngineeringUnits2222222[EngineeringUnits2222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                          EngineeringUnits2222222[EngineeringUnits2222222["JOULES"] = 16] = "JOULES";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOJOULES"] = 17] = "KILOJOULES";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                          EngineeringUnits2222222[EngineeringUnits2222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                          EngineeringUnits2222222[EngineeringUnits2222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                          EngineeringUnits2222222[EngineeringUnits2222222["BTUS"] = 20] = "BTUS";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                          EngineeringUnits2222222[EngineeringUnits2222222["THERMS"] = 21] = "THERMS";
                          EngineeringUnits2222222[EngineeringUnits2222222["TON_HOURS"] = 22] = "TON_HOURS";
                          EngineeringUnits2222222[EngineeringUnits2222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                          EngineeringUnits2222222[EngineeringUnits2222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                          EngineeringUnits2222222[EngineeringUnits2222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                          EngineeringUnits2222222[EngineeringUnits2222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                          EngineeringUnits2222222[EngineeringUnits2222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                          EngineeringUnits2222222[EngineeringUnits2222222["NEWTON"] = 153] = "NEWTON";
                          EngineeringUnits2222222[EngineeringUnits2222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["HERTZ"] = 27] = "HERTZ";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                          EngineeringUnits2222222[EngineeringUnits2222222["PER_HOUR"] = 131] = "PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                          EngineeringUnits2222222[EngineeringUnits2222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                          EngineeringUnits2222222[EngineeringUnits2222222["MICROMETERS"] = 194] = "MICROMETERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOMETERS"] = 193] = "KILOMETERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["METERS"] = 31] = "METERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["INCHES"] = 32] = "INCHES";
                          EngineeringUnits2222222[EngineeringUnits2222222["FEET"] = 33] = "FEET";
                          EngineeringUnits2222222[EngineeringUnits2222222["CANDELAS"] = 179] = "CANDELAS";
                          EngineeringUnits2222222[EngineeringUnits2222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                          EngineeringUnits2222222[EngineeringUnits2222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["LUMENS"] = 36] = "LUMENS";
                          EngineeringUnits2222222[EngineeringUnits2222222["LUXES"] = 37] = "LUXES";
                          EngineeringUnits2222222[EngineeringUnits2222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                          EngineeringUnits2222222[EngineeringUnits2222222["GRAMS"] = 195] = "GRAMS";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                          EngineeringUnits2222222[EngineeringUnits2222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                          EngineeringUnits2222222[EngineeringUnits2222222["TONS"] = 41] = "TONS";
                          EngineeringUnits2222222[EngineeringUnits2222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                          EngineeringUnits2222222[EngineeringUnits2222222["WATTS"] = 47] = "WATTS";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOWATTS"] = 48] = "KILOWATTS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                          EngineeringUnits2222222[EngineeringUnits2222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                          EngineeringUnits2222222[EngineeringUnits2222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                          EngineeringUnits2222222[EngineeringUnits2222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                          EngineeringUnits2222222[EngineeringUnits2222222["PASCALS"] = 53] = "PASCALS";
                          EngineeringUnits2222222[EngineeringUnits2222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIBARS"] = 134] = "MILLIBARS";
                          EngineeringUnits2222222[EngineeringUnits2222222["BARS"] = 55] = "BARS";
                          EngineeringUnits2222222[EngineeringUnits2222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                          EngineeringUnits2222222[EngineeringUnits2222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                          EngineeringUnits2222222[EngineeringUnits2222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                          EngineeringUnits2222222[EngineeringUnits2222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                          EngineeringUnits2222222[EngineeringUnits2222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                          EngineeringUnits2222222[EngineeringUnits2222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                          EngineeringUnits2222222[EngineeringUnits2222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                          EngineeringUnits2222222[EngineeringUnits2222222["YEARS"] = 67] = "YEARS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MONTHS"] = 68] = "MONTHS";
                          EngineeringUnits2222222[EngineeringUnits2222222["WEEKS"] = 69] = "WEEKS";
                          EngineeringUnits2222222[EngineeringUnits2222222["DAYS"] = 70] = "DAYS";
                          EngineeringUnits2222222[EngineeringUnits2222222["HOURS"] = 71] = "HOURS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MINUTES"] = 72] = "MINUTES";
                          EngineeringUnits2222222[EngineeringUnits2222222["SECONDS"] = 73] = "SECONDS";
                          EngineeringUnits2222222[EngineeringUnits2222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                          EngineeringUnits2222222[EngineeringUnits2222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                          EngineeringUnits2222222[EngineeringUnits2222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLILITERS"] = 197] = "MILLILITERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["LITERS"] = 82] = "LITERS";
                          EngineeringUnits2222222[EngineeringUnits2222222["US_GALLONS"] = 83] = "US_GALLONS";
                          EngineeringUnits2222222[EngineeringUnits2222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                          EngineeringUnits2222222[EngineeringUnits2222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                          EngineeringUnits2222222[EngineeringUnits2222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                          EngineeringUnits2222222[EngineeringUnits2222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                          EngineeringUnits2222222[EngineeringUnits2222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                          EngineeringUnits2222222[EngineeringUnits2222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                          EngineeringUnits2222222[EngineeringUnits2222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                          EngineeringUnits2222222[EngineeringUnits2222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                          EngineeringUnits2222222[EngineeringUnits2222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                          EngineeringUnits2222222[EngineeringUnits2222222["NO_UNITS"] = 95] = "NO_UNITS";
                          EngineeringUnits2222222[EngineeringUnits2222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                          EngineeringUnits2222222[EngineeringUnits2222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                          EngineeringUnits2222222[EngineeringUnits2222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                          EngineeringUnits2222222[EngineeringUnits2222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                          EngineeringUnits2222222[EngineeringUnits2222222["PERCENT"] = 98] = "PERCENT";
                          EngineeringUnits2222222[EngineeringUnits2222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                          EngineeringUnits2222222[EngineeringUnits2222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["PER_SECOND"] = 101] = "PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                          EngineeringUnits2222222[EngineeringUnits2222222["RADIANS"] = 103] = "RADIANS";
                          EngineeringUnits2222222[EngineeringUnits2222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                          EngineeringUnits2222222[EngineeringUnits2222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                          EngineeringUnits2222222[EngineeringUnits2222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                          EngineeringUnits2222222[EngineeringUnits2222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                          EngineeringUnits2222222[EngineeringUnits2222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                          EngineeringUnits2222222[EngineeringUnits2222222["PER_MILLE"] = 207] = "PER_MILLE";
                          EngineeringUnits2222222[EngineeringUnits2222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                          EngineeringUnits2222222[EngineeringUnits2222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                          EngineeringUnits2222222[EngineeringUnits2222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                          EngineeringUnits2222222[EngineeringUnits2222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                          EngineeringUnits2222222[EngineeringUnits2222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                          EngineeringUnits2222222[EngineeringUnits2222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                          EngineeringUnits2222222[EngineeringUnits2222222["BECQUERELS"] = 222] = "BECQUERELS";
                          EngineeringUnits2222222[EngineeringUnits2222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                          EngineeringUnits2222222[EngineeringUnits2222222["GRAY"] = 225] = "GRAY";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                          EngineeringUnits2222222[EngineeringUnits2222222["MICROGRAY"] = 227] = "MICROGRAY";
                          EngineeringUnits2222222[EngineeringUnits2222222["SIEVERTS"] = 228] = "SIEVERTS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIREMS"] = 47814] = "MILLIREMS";
                          EngineeringUnits2222222[EngineeringUnits2222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                          EngineeringUnits2222222[EngineeringUnits2222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                          EngineeringUnits2222222[EngineeringUnits2222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                          EngineeringUnits2222222[EngineeringUnits2222222["PH"] = 234] = "PH";
                          EngineeringUnits2222222[EngineeringUnits2222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                          EngineeringUnits2222222[EngineeringUnits2222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                          return EngineeringUnits2222222;
                        })(EngineeringUnits222222 || {});
                        var EscalatorFault222222 = /* @__PURE__ */ ((EscalatorFault2222222) => {
                          EscalatorFault2222222[EscalatorFault2222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                          EscalatorFault2222222[EscalatorFault2222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                          EscalatorFault2222222[EscalatorFault2222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                          EscalatorFault2222222[EscalatorFault2222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                          EscalatorFault2222222[EscalatorFault2222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                          EscalatorFault2222222[EscalatorFault2222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                          EscalatorFault2222222[EscalatorFault2222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                          EscalatorFault2222222[EscalatorFault2222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                          EscalatorFault2222222[EscalatorFault2222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                          return EscalatorFault2222222;
                        })(EscalatorFault222222 || {});
                        var EscalatorMode222222 = /* @__PURE__ */ ((EscalatorMode2222222) => {
                          EscalatorMode2222222[EscalatorMode2222222["UNKNOWN"] = 0] = "UNKNOWN";
                          EscalatorMode2222222[EscalatorMode2222222["STOP"] = 1] = "STOP";
                          EscalatorMode2222222[EscalatorMode2222222["UP"] = 2] = "UP";
                          EscalatorMode2222222[EscalatorMode2222222["DOWN"] = 3] = "DOWN";
                          EscalatorMode2222222[EscalatorMode2222222["INSPECTION"] = 4] = "INSPECTION";
                          EscalatorMode2222222[EscalatorMode2222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                          return EscalatorMode2222222;
                        })(EscalatorMode222222 || {});
                        var EscalatorOperationDirection222222 = /* @__PURE__ */ ((EscalatorOperationDirection2222222) => {
                          EscalatorOperationDirection2222222[EscalatorOperationDirection2222222["UNKNOWN"] = 0] = "UNKNOWN";
                          EscalatorOperationDirection2222222[EscalatorOperationDirection2222222["STOPPED"] = 1] = "STOPPED";
                          EscalatorOperationDirection2222222[EscalatorOperationDirection2222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                          EscalatorOperationDirection2222222[EscalatorOperationDirection2222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                          EscalatorOperationDirection2222222[EscalatorOperationDirection2222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                          EscalatorOperationDirection2222222[EscalatorOperationDirection2222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                          return EscalatorOperationDirection2222222;
                        })(EscalatorOperationDirection222222 || {});
                        var EventState222222 = /* @__PURE__ */ ((EventState2222222) => {
                          EventState2222222[EventState2222222["NORMAL"] = 0] = "NORMAL";
                          EventState2222222[EventState2222222["FAULT"] = 1] = "FAULT";
                          EventState2222222[EventState2222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                          EventState2222222[EventState2222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                          EventState2222222[EventState2222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                          EventState2222222[EventState2222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                          return EventState2222222;
                        })(EventState222222 || {});
                        var EventType222222 = /* @__PURE__ */ ((EventType2222222) => {
                          EventType2222222[EventType2222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                          EventType2222222[EventType2222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                          EventType2222222[EventType2222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                          EventType2222222[EventType2222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                          EventType2222222[EventType2222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                          EventType2222222[EventType2222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                          EventType2222222[EventType2222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                          EventType2222222[EventType2222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                          EventType2222222[EventType2222222["EXTENDED"] = 9] = "EXTENDED";
                          EventType2222222[EventType2222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                          EventType2222222[EventType2222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                          EventType2222222[EventType2222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                          EventType2222222[EventType2222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                          EventType2222222[EventType2222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                          EventType2222222[EventType2222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                          EventType2222222[EventType2222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                          EventType2222222[EventType2222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                          EventType2222222[EventType2222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                          EventType2222222[EventType2222222["NONE"] = 20] = "NONE";
                          EventType2222222[EventType2222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                          EventType2222222[EventType2222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                          return EventType2222222;
                        })(EventType222222 || {});
                        var FaultType222222 = /* @__PURE__ */ ((FaultType2222222) => {
                          FaultType2222222[FaultType2222222["NONE"] = 0] = "NONE";
                          FaultType2222222[FaultType2222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                          FaultType2222222[FaultType2222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                          FaultType2222222[FaultType2222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                          FaultType2222222[FaultType2222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                          FaultType2222222[FaultType2222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                          FaultType2222222[FaultType2222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                          FaultType2222222[FaultType2222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                          return FaultType2222222;
                        })(FaultType222222 || {});
                        var FileAccessMethod222222 = /* @__PURE__ */ ((FileAccessMethod2222222) => {
                          FileAccessMethod2222222[FileAccessMethod2222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                          FileAccessMethod2222222[FileAccessMethod2222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                          return FileAccessMethod2222222;
                        })(FileAccessMethod222222 || {});
                        var IPMode222222 = /* @__PURE__ */ ((IPMode2222222) => {
                          IPMode2222222[IPMode2222222["NORMAL"] = 0] = "NORMAL";
                          IPMode2222222[IPMode2222222["FOREIGN"] = 1] = "FOREIGN";
                          IPMode2222222[IPMode2222222["BBMD"] = 2] = "BBMD";
                          return IPMode2222222;
                        })(IPMode222222 || {});
                        var LifeSafetyMode222222 = /* @__PURE__ */ ((LifeSafetyMode2222222) => {
                          LifeSafetyMode2222222[LifeSafetyMode2222222["OFF"] = 0] = "OFF";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["ON"] = 1] = "ON";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["TEST"] = 2] = "TEST";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["MANNED"] = 3] = "MANNED";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["UNMANNED"] = 4] = "UNMANNED";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["ARMED"] = 5] = "ARMED";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["DISARMED"] = 6] = "DISARMED";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["PREARMED"] = 7] = "PREARMED";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["SLOW"] = 8] = "SLOW";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["FAST"] = 9] = "FAST";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["ENABLED"] = 11] = "ENABLED";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["DISABLED"] = 12] = "DISABLED";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                          LifeSafetyMode2222222[LifeSafetyMode2222222["DEFAULT"] = 14] = "DEFAULT";
                          return LifeSafetyMode2222222;
                        })(LifeSafetyMode222222 || {});
                        var LifeSafetyOperation222222 = /* @__PURE__ */ ((LifeSafetyOperation2222222) => {
                          LifeSafetyOperation2222222[LifeSafetyOperation2222222["NONE"] = 0] = "NONE";
                          LifeSafetyOperation2222222[LifeSafetyOperation2222222["SILENCE"] = 1] = "SILENCE";
                          LifeSafetyOperation2222222[LifeSafetyOperation2222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                          LifeSafetyOperation2222222[LifeSafetyOperation2222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                          LifeSafetyOperation2222222[LifeSafetyOperation2222222["RESET"] = 4] = "RESET";
                          LifeSafetyOperation2222222[LifeSafetyOperation2222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                          LifeSafetyOperation2222222[LifeSafetyOperation2222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                          LifeSafetyOperation2222222[LifeSafetyOperation2222222["UNSILENCE"] = 7] = "UNSILENCE";
                          LifeSafetyOperation2222222[LifeSafetyOperation2222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                          LifeSafetyOperation2222222[LifeSafetyOperation2222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                          return LifeSafetyOperation2222222;
                        })(LifeSafetyOperation222222 || {});
                        var LifeSafetyState222222 = /* @__PURE__ */ ((LifeSafetyState2222222) => {
                          LifeSafetyState2222222[LifeSafetyState2222222["QUIET"] = 0] = "QUIET";
                          LifeSafetyState2222222[LifeSafetyState2222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                          LifeSafetyState2222222[LifeSafetyState2222222["ALARM"] = 2] = "ALARM";
                          LifeSafetyState2222222[LifeSafetyState2222222["FAULT"] = 3] = "FAULT";
                          LifeSafetyState2222222[LifeSafetyState2222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                          LifeSafetyState2222222[LifeSafetyState2222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                          LifeSafetyState2222222[LifeSafetyState2222222["NOT_READY"] = 6] = "NOT_READY";
                          LifeSafetyState2222222[LifeSafetyState2222222["ACTIVE"] = 7] = "ACTIVE";
                          LifeSafetyState2222222[LifeSafetyState2222222["TAMPER"] = 8] = "TAMPER";
                          LifeSafetyState2222222[LifeSafetyState2222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                          LifeSafetyState2222222[LifeSafetyState2222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                          LifeSafetyState2222222[LifeSafetyState2222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                          LifeSafetyState2222222[LifeSafetyState2222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                          LifeSafetyState2222222[LifeSafetyState2222222["HOLDUP"] = 13] = "HOLDUP";
                          LifeSafetyState2222222[LifeSafetyState2222222["DURESS"] = 14] = "DURESS";
                          LifeSafetyState2222222[LifeSafetyState2222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                          LifeSafetyState2222222[LifeSafetyState2222222["ABNORMAL"] = 16] = "ABNORMAL";
                          LifeSafetyState2222222[LifeSafetyState2222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                          LifeSafetyState2222222[LifeSafetyState2222222["DELAYED"] = 18] = "DELAYED";
                          LifeSafetyState2222222[LifeSafetyState2222222["BLOCKED"] = 19] = "BLOCKED";
                          LifeSafetyState2222222[LifeSafetyState2222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                          LifeSafetyState2222222[LifeSafetyState2222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                          LifeSafetyState2222222[LifeSafetyState2222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                          LifeSafetyState2222222[LifeSafetyState2222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                          return LifeSafetyState2222222;
                        })(LifeSafetyState222222 || {});
                        var LiftCarDirection222222 = /* @__PURE__ */ ((LiftCarDirection2222222) => {
                          LiftCarDirection2222222[LiftCarDirection2222222["UNKNOWN"] = 0] = "UNKNOWN";
                          LiftCarDirection2222222[LiftCarDirection2222222["NONE"] = 1] = "NONE";
                          LiftCarDirection2222222[LiftCarDirection2222222["STOPPED"] = 2] = "STOPPED";
                          LiftCarDirection2222222[LiftCarDirection2222222["UP"] = 3] = "UP";
                          LiftCarDirection2222222[LiftCarDirection2222222["DOWN"] = 4] = "DOWN";
                          LiftCarDirection2222222[LiftCarDirection2222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                          return LiftCarDirection2222222;
                        })(LiftCarDirection222222 || {});
                        var LiftCarDoorCommand222222 = /* @__PURE__ */ ((LiftCarDoorCommand2222222) => {
                          LiftCarDoorCommand2222222[LiftCarDoorCommand2222222["NONE"] = 0] = "NONE";
                          LiftCarDoorCommand2222222[LiftCarDoorCommand2222222["OPEN"] = 1] = "OPEN";
                          LiftCarDoorCommand2222222[LiftCarDoorCommand2222222["CLOSE"] = 2] = "CLOSE";
                          return LiftCarDoorCommand2222222;
                        })(LiftCarDoorCommand222222 || {});
                        var LiftCarDriveStatus222222 = /* @__PURE__ */ ((LiftCarDriveStatus2222222) => {
                          LiftCarDriveStatus2222222[LiftCarDriveStatus2222222["UNKNOWN"] = 0] = "UNKNOWN";
                          LiftCarDriveStatus2222222[LiftCarDriveStatus2222222["STATIONARY"] = 1] = "STATIONARY";
                          LiftCarDriveStatus2222222[LiftCarDriveStatus2222222["BRAKING"] = 2] = "BRAKING";
                          LiftCarDriveStatus2222222[LiftCarDriveStatus2222222["ACCELERATE"] = 3] = "ACCELERATE";
                          LiftCarDriveStatus2222222[LiftCarDriveStatus2222222["DECELERATE"] = 4] = "DECELERATE";
                          LiftCarDriveStatus2222222[LiftCarDriveStatus2222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                          LiftCarDriveStatus2222222[LiftCarDriveStatus2222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                          LiftCarDriveStatus2222222[LiftCarDriveStatus2222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                          LiftCarDriveStatus2222222[LiftCarDriveStatus2222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                          LiftCarDriveStatus2222222[LiftCarDriveStatus2222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                          return LiftCarDriveStatus2222222;
                        })(LiftCarDriveStatus222222 || {});
                        var LiftCarMode222222 = /* @__PURE__ */ ((LiftCarMode2222222) => {
                          LiftCarMode2222222[LiftCarMode2222222["UNKNOWN"] = 0] = "UNKNOWN";
                          LiftCarMode2222222[LiftCarMode2222222["NORMAL"] = 1] = "NORMAL";
                          LiftCarMode2222222[LiftCarMode2222222["VIP"] = 2] = "VIP";
                          LiftCarMode2222222[LiftCarMode2222222["HOMING"] = 3] = "HOMING";
                          LiftCarMode2222222[LiftCarMode2222222["PARKING"] = 4] = "PARKING";
                          LiftCarMode2222222[LiftCarMode2222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                          LiftCarMode2222222[LiftCarMode2222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                          LiftCarMode2222222[LiftCarMode2222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                          LiftCarMode2222222[LiftCarMode2222222["INSPECTION"] = 8] = "INSPECTION";
                          LiftCarMode2222222[LiftCarMode2222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                          LiftCarMode2222222[LiftCarMode2222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                          LiftCarMode2222222[LiftCarMode2222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                          LiftCarMode2222222[LiftCarMode2222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                          LiftCarMode2222222[LiftCarMode2222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                          return LiftCarMode2222222;
                        })(LiftCarMode222222 || {});
                        var LiftFault222222 = /* @__PURE__ */ ((LiftFault2222222) => {
                          LiftFault2222222[LiftFault2222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                          LiftFault2222222[LiftFault2222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                          LiftFault2222222[LiftFault2222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                          LiftFault2222222[LiftFault2222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                          LiftFault2222222[LiftFault2222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                          LiftFault2222222[LiftFault2222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                          LiftFault2222222[LiftFault2222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                          LiftFault2222222[LiftFault2222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                          LiftFault2222222[LiftFault2222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                          LiftFault2222222[LiftFault2222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                          LiftFault2222222[LiftFault2222222["START_FAILURE"] = 10] = "START_FAILURE";
                          LiftFault2222222[LiftFault2222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                          LiftFault2222222[LiftFault2222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                          LiftFault2222222[LiftFault2222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                          LiftFault2222222[LiftFault2222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                          LiftFault2222222[LiftFault2222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                          LiftFault2222222[LiftFault2222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                          return LiftFault2222222;
                        })(LiftFault222222 || {});
                        var LiftGroupMode222222 = /* @__PURE__ */ ((LiftGroupMode2222222) => {
                          LiftGroupMode2222222[LiftGroupMode2222222["UNKNOWN"] = 0] = "UNKNOWN";
                          LiftGroupMode2222222[LiftGroupMode2222222["NORMAL"] = 1] = "NORMAL";
                          LiftGroupMode2222222[LiftGroupMode2222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                          LiftGroupMode2222222[LiftGroupMode2222222["TWO_WAY"] = 3] = "TWO_WAY";
                          LiftGroupMode2222222[LiftGroupMode2222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                          LiftGroupMode2222222[LiftGroupMode2222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                          LiftGroupMode2222222[LiftGroupMode2222222["UP_PEAK"] = 6] = "UP_PEAK";
                          return LiftGroupMode2222222;
                        })(LiftGroupMode222222 || {});
                        var LightingInProgress222222 = /* @__PURE__ */ ((LightingInProgress2222222) => {
                          LightingInProgress2222222[LightingInProgress2222222["IDLE"] = 0] = "IDLE";
                          LightingInProgress2222222[LightingInProgress2222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                          LightingInProgress2222222[LightingInProgress2222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                          LightingInProgress2222222[LightingInProgress2222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                          LightingInProgress2222222[LightingInProgress2222222["OTHER"] = 4] = "OTHER";
                          return LightingInProgress2222222;
                        })(LightingInProgress222222 || {});
                        var LightingOperation222222 = /* @__PURE__ */ ((LightingOperation2222222) => {
                          LightingOperation2222222[LightingOperation2222222["NONE"] = 0] = "NONE";
                          LightingOperation2222222[LightingOperation2222222["FADE_TO"] = 1] = "FADE_TO";
                          LightingOperation2222222[LightingOperation2222222["RAMP_TO"] = 2] = "RAMP_TO";
                          LightingOperation2222222[LightingOperation2222222["STEP_UP"] = 3] = "STEP_UP";
                          LightingOperation2222222[LightingOperation2222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                          LightingOperation2222222[LightingOperation2222222["STEP_ON"] = 5] = "STEP_ON";
                          LightingOperation2222222[LightingOperation2222222["STEP_OFF"] = 6] = "STEP_OFF";
                          LightingOperation2222222[LightingOperation2222222["WARN"] = 7] = "WARN";
                          LightingOperation2222222[LightingOperation2222222["WARN_OFF"] = 8] = "WARN_OFF";
                          LightingOperation2222222[LightingOperation2222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                          LightingOperation2222222[LightingOperation2222222["STOP"] = 10] = "STOP";
                          return LightingOperation2222222;
                        })(LightingOperation222222 || {});
                        var LightingTransition222222 = /* @__PURE__ */ ((LightingTransition2222222) => {
                          LightingTransition2222222[LightingTransition2222222["NONE"] = 0] = "NONE";
                          LightingTransition2222222[LightingTransition2222222["FADE"] = 1] = "FADE";
                          LightingTransition2222222[LightingTransition2222222["RAMP"] = 2] = "RAMP";
                          return LightingTransition2222222;
                        })(LightingTransition222222 || {});
                        var LockStatus222222 = /* @__PURE__ */ ((LockStatus2222222) => {
                          LockStatus2222222[LockStatus2222222["LOCKED"] = 0] = "LOCKED";
                          LockStatus2222222[LockStatus2222222["UNLOCKED"] = 1] = "UNLOCKED";
                          LockStatus2222222[LockStatus2222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                          LockStatus2222222[LockStatus2222222["UNUSED"] = 3] = "UNUSED";
                          LockStatus2222222[LockStatus2222222["UNKNOWN"] = 4] = "UNKNOWN";
                          return LockStatus2222222;
                        })(LockStatus222222 || {});
                        var LoggingType222222 = /* @__PURE__ */ ((LoggingType2222222) => {
                          LoggingType2222222[LoggingType2222222["POLLED"] = 0] = "POLLED";
                          LoggingType2222222[LoggingType2222222["COV"] = 1] = "COV";
                          LoggingType2222222[LoggingType2222222["TRIGGERED"] = 2] = "TRIGGERED";
                          return LoggingType2222222;
                        })(LoggingType222222 || {});
                        var Maintenance222222 = /* @__PURE__ */ ((Maintenance2222222) => {
                          Maintenance2222222[Maintenance2222222["NONE"] = 0] = "NONE";
                          Maintenance2222222[Maintenance2222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                          Maintenance2222222[Maintenance2222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                          Maintenance2222222[Maintenance2222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                          return Maintenance2222222;
                        })(Maintenance222222 || {});
                        var NetworkNumberQuality222222 = /* @__PURE__ */ ((NetworkNumberQuality2222222) => {
                          NetworkNumberQuality2222222[NetworkNumberQuality2222222["UNKNOWN"] = 0] = "UNKNOWN";
                          NetworkNumberQuality2222222[NetworkNumberQuality2222222["LEARNED"] = 1] = "LEARNED";
                          NetworkNumberQuality2222222[NetworkNumberQuality2222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                          NetworkNumberQuality2222222[NetworkNumberQuality2222222["CONFIGURED"] = 3] = "CONFIGURED";
                          return NetworkNumberQuality2222222;
                        })(NetworkNumberQuality222222 || {});
                        var NetworkPortCommand222222 = /* @__PURE__ */ ((NetworkPortCommand2222222) => {
                          NetworkPortCommand2222222[NetworkPortCommand2222222["IDLE"] = 0] = "IDLE";
                          NetworkPortCommand2222222[NetworkPortCommand2222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                          NetworkPortCommand2222222[NetworkPortCommand2222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                          NetworkPortCommand2222222[NetworkPortCommand2222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                          NetworkPortCommand2222222[NetworkPortCommand2222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                          NetworkPortCommand2222222[NetworkPortCommand2222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                          NetworkPortCommand2222222[NetworkPortCommand2222222["DISCONNECT"] = 6] = "DISCONNECT";
                          NetworkPortCommand2222222[NetworkPortCommand2222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                          return NetworkPortCommand2222222;
                        })(NetworkPortCommand222222 || {});
                        var NetworkType222222 = /* @__PURE__ */ ((NetworkType2222222) => {
                          NetworkType2222222[NetworkType2222222["ETHERNET"] = 0] = "ETHERNET";
                          NetworkType2222222[NetworkType2222222["ARCNET"] = 1] = "ARCNET";
                          NetworkType2222222[NetworkType2222222["MSTP"] = 2] = "MSTP";
                          NetworkType2222222[NetworkType2222222["PTP"] = 3] = "PTP";
                          NetworkType2222222[NetworkType2222222["LONTALK"] = 4] = "LONTALK";
                          NetworkType2222222[NetworkType2222222["IPV4"] = 5] = "IPV4";
                          NetworkType2222222[NetworkType2222222["ZIGBEE"] = 6] = "ZIGBEE";
                          NetworkType2222222[NetworkType2222222["VIRTUAL"] = 7] = "VIRTUAL";
                          NetworkType2222222[NetworkType2222222["IPV6"] = 9] = "IPV6";
                          NetworkType2222222[NetworkType2222222["SERIAL"] = 10] = "SERIAL";
                          return NetworkType2222222;
                        })(NetworkType222222 || {});
                        var NodeType222222 = /* @__PURE__ */ ((NodeType2222222) => {
                          NodeType2222222[NodeType2222222["UNKNOWN"] = 0] = "UNKNOWN";
                          NodeType2222222[NodeType2222222["SYSTEM"] = 1] = "SYSTEM";
                          NodeType2222222[NodeType2222222["NETWORK"] = 2] = "NETWORK";
                          NodeType2222222[NodeType2222222["DEVICE"] = 3] = "DEVICE";
                          NodeType2222222[NodeType2222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                          NodeType2222222[NodeType2222222["AREA"] = 5] = "AREA";
                          NodeType2222222[NodeType2222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                          NodeType2222222[NodeType2222222["POINT"] = 7] = "POINT";
                          NodeType2222222[NodeType2222222["COLLECTION"] = 8] = "COLLECTION";
                          NodeType2222222[NodeType2222222["PROPERTY"] = 9] = "PROPERTY";
                          NodeType2222222[NodeType2222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                          NodeType2222222[NodeType2222222["OTHER"] = 11] = "OTHER";
                          NodeType2222222[NodeType2222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                          NodeType2222222[NodeType2222222["BUILDING"] = 13] = "BUILDING";
                          NodeType2222222[NodeType2222222["FLOOR"] = 14] = "FLOOR";
                          NodeType2222222[NodeType2222222["SECTION"] = 15] = "SECTION";
                          NodeType2222222[NodeType2222222["MODULE"] = 16] = "MODULE";
                          NodeType2222222[NodeType2222222["TREE"] = 17] = "TREE";
                          NodeType2222222[NodeType2222222["MEMBER"] = 18] = "MEMBER";
                          NodeType2222222[NodeType2222222["PROTOCOL"] = 19] = "PROTOCOL";
                          NodeType2222222[NodeType2222222["ROOM"] = 20] = "ROOM";
                          NodeType2222222[NodeType2222222["ZONE"] = 21] = "ZONE";
                          return NodeType2222222;
                        })(NodeType222222 || {});
                        var NotifyType222222 = /* @__PURE__ */ ((NotifyType2222222) => {
                          NotifyType2222222[NotifyType2222222["ALARM"] = 0] = "ALARM";
                          NotifyType2222222[NotifyType2222222["EVENT"] = 1] = "EVENT";
                          NotifyType2222222[NotifyType2222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                          return NotifyType2222222;
                        })(NotifyType222222 || {});
                        var ObjectType222222 = /* @__PURE__ */ ((ObjectType2222222) => {
                          ObjectType2222222[ObjectType2222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                          ObjectType2222222[ObjectType2222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                          ObjectType2222222[ObjectType2222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                          ObjectType2222222[ObjectType2222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                          ObjectType2222222[ObjectType2222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                          ObjectType2222222[ObjectType2222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                          ObjectType2222222[ObjectType2222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                          ObjectType2222222[ObjectType2222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                          ObjectType2222222[ObjectType2222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                          ObjectType2222222[ObjectType2222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                          ObjectType2222222[ObjectType2222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                          ObjectType2222222[ObjectType2222222["AVERAGING"] = 18] = "AVERAGING";
                          ObjectType2222222[ObjectType2222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                          ObjectType2222222[ObjectType2222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                          ObjectType2222222[ObjectType2222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                          ObjectType2222222[ObjectType2222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                          ObjectType2222222[ObjectType2222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                          ObjectType2222222[ObjectType2222222["CALENDAR"] = 6] = "CALENDAR";
                          ObjectType2222222[ObjectType2222222["CHANNEL"] = 53] = "CHANNEL";
                          ObjectType2222222[ObjectType2222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                          ObjectType2222222[ObjectType2222222["COMMAND"] = 7] = "COMMAND";
                          ObjectType2222222[ObjectType2222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                          ObjectType2222222[ObjectType2222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                          ObjectType2222222[ObjectType2222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                          ObjectType2222222[ObjectType2222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                          ObjectType2222222[ObjectType2222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                          ObjectType2222222[ObjectType2222222["DEVICE"] = 8] = "DEVICE";
                          ObjectType2222222[ObjectType2222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                          ObjectType2222222[ObjectType2222222["ESCALATOR"] = 58] = "ESCALATOR";
                          ObjectType2222222[ObjectType2222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                          ObjectType2222222[ObjectType2222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                          ObjectType2222222[ObjectType2222222["FILE"] = 10] = "FILE";
                          ObjectType2222222[ObjectType2222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                          ObjectType2222222[ObjectType2222222["GROUP"] = 11] = "GROUP";
                          ObjectType2222222[ObjectType2222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                          ObjectType2222222[ObjectType2222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                          ObjectType2222222[ObjectType2222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                          ObjectType2222222[ObjectType2222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                          ObjectType2222222[ObjectType2222222["LIFT"] = 59] = "LIFT";
                          ObjectType2222222[ObjectType2222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                          ObjectType2222222[ObjectType2222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                          ObjectType2222222[ObjectType2222222["LOOP"] = 12] = "LOOP";
                          ObjectType2222222[ObjectType2222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                          ObjectType2222222[ObjectType2222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                          ObjectType2222222[ObjectType2222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                          ObjectType2222222[ObjectType2222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                          ObjectType2222222[ObjectType2222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                          ObjectType2222222[ObjectType2222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                          ObjectType2222222[ObjectType2222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                          ObjectType2222222[ObjectType2222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                          ObjectType2222222[ObjectType2222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                          ObjectType2222222[ObjectType2222222["PROGRAM"] = 16] = "PROGRAM";
                          ObjectType2222222[ObjectType2222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                          ObjectType2222222[ObjectType2222222["SCHEDULE"] = 17] = "SCHEDULE";
                          ObjectType2222222[ObjectType2222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                          ObjectType2222222[ObjectType2222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                          ObjectType2222222[ObjectType2222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                          ObjectType2222222[ObjectType2222222["TIMER"] = 31] = "TIMER";
                          ObjectType2222222[ObjectType2222222["TREND_LOG"] = 20] = "TREND_LOG";
                          ObjectType2222222[ObjectType2222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                          return ObjectType2222222;
                        })(ObjectType222222 || {});
                        var Polarity222222 = /* @__PURE__ */ ((Polarity2222222) => {
                          Polarity2222222[Polarity2222222["NORMAL"] = 0] = "NORMAL";
                          Polarity2222222[Polarity2222222["REVERSE"] = 1] = "REVERSE";
                          return Polarity2222222;
                        })(Polarity222222 || {});
                        var ProgramError222222 = /* @__PURE__ */ ((ProgramError2222222) => {
                          ProgramError2222222[ProgramError2222222["NORMAL"] = 0] = "NORMAL";
                          ProgramError2222222[ProgramError2222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                          ProgramError2222222[ProgramError2222222["INTERNAL"] = 2] = "INTERNAL";
                          ProgramError2222222[ProgramError2222222["PROGRAM"] = 3] = "PROGRAM";
                          ProgramError2222222[ProgramError2222222["OTHER"] = 4] = "OTHER";
                          return ProgramError2222222;
                        })(ProgramError222222 || {});
                        var ProgramRequest222222 = /* @__PURE__ */ ((ProgramRequest2222222) => {
                          ProgramRequest2222222[ProgramRequest2222222["READY"] = 0] = "READY";
                          ProgramRequest2222222[ProgramRequest2222222["LOAD"] = 1] = "LOAD";
                          ProgramRequest2222222[ProgramRequest2222222["RUN"] = 2] = "RUN";
                          ProgramRequest2222222[ProgramRequest2222222["HALT"] = 3] = "HALT";
                          ProgramRequest2222222[ProgramRequest2222222["RESTART"] = 4] = "RESTART";
                          ProgramRequest2222222[ProgramRequest2222222["UNLOAD"] = 5] = "UNLOAD";
                          return ProgramRequest2222222;
                        })(ProgramRequest222222 || {});
                        var ProgramState222222 = /* @__PURE__ */ ((ProgramState2222222) => {
                          ProgramState2222222[ProgramState2222222["IDLE"] = 0] = "IDLE";
                          ProgramState2222222[ProgramState2222222["LOADING"] = 1] = "LOADING";
                          ProgramState2222222[ProgramState2222222["RUNNING"] = 2] = "RUNNING";
                          ProgramState2222222[ProgramState2222222["WAITING"] = 3] = "WAITING";
                          ProgramState2222222[ProgramState2222222["HALTED"] = 4] = "HALTED";
                          ProgramState2222222[ProgramState2222222["UNLOADING"] = 5] = "UNLOADING";
                          return ProgramState2222222;
                        })(ProgramState222222 || {});
                        var PropertyIdentifier222222 = /* @__PURE__ */ ((PropertyIdentifier2222222) => {
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACTION"] = 2] = "ACTION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ALL"] = 8] = "ALL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ARCHIVE"] = 13] = "ARCHIVE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BIAS"] = 14] = "BIAS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BIT_MASK"] = 342] = "BIT_MASK";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CAR_MODE"] = 456] = "CAR_MODE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["COMMAND"] = 417] = "COMMAND";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["COUNT"] = 177] = "COUNT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DATE_LIST"] = 23] = "DATE_LIST";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DEADBAND"] = 25] = "DEADBAND";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ENABLE"] = 133] = "ENABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["GROUP_ID"] = 465] = "GROUP_ID";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["IS_UTC"] = 344] = "IS_UTC";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["KEY_SETS"] = 330] = "KEY_SETS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOCATION"] = 58] = "LOCATION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOCKOUT"] = 282] = "LOCKOUT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MEMBERS"] = 286] = "MEMBERS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MODE"] = 160] = "MODE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OPTIONAL"] = 80] = "OPTIONAL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["POLARITY"] = 84] = "POLARITY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["POWER"] = 384] = "POWER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["POWER_MODE"] = 479] = "POWER_MODE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PRESCALE"] = 185] = "PRESCALE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PRIORITY"] = 86] = "PRIORITY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["READ_ONLY"] = 99] = "READ_ONLY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["RELIABILITY"] = 103] = "RELIABILITY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["REPRESENTS"] = 491] = "REPRESENTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["REQUIRED"] = 105] = "REQUIRED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["RESOLUTION"] = 106] = "RESOLUTION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SCALE"] = 187] = "SCALE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SETPOINT"] = 108] = "SETPOINT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SETTING"] = 162] = "SETTING";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SILENCED"] = 163] = "SILENCED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["START_TIME"] = 142] = "START_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["STOP_TIME"] = 143] = "STOP_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TAGS"] = 486] = "TAGS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TRANSITION"] = 385] = "TRANSITION";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["TRIGGER"] = 205] = "TRIGGER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["UNITS"] = 117] = "UNITS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["USER_NAME"] = 317] = "USER_NAME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["USER_TYPE"] = 318] = "USER_TYPE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["VALUE_SET"] = 191] = "VALUE_SET";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                          PropertyIdentifier2222222[PropertyIdentifier2222222["ZONE_TO"] = 321] = "ZONE_TO";
                          return PropertyIdentifier2222222;
                        })(PropertyIdentifier222222 || {});
                        var ProtocolLevel222222 = /* @__PURE__ */ ((ProtocolLevel2222222) => {
                          ProtocolLevel2222222[ProtocolLevel2222222["PHYSICAL"] = 0] = "PHYSICAL";
                          ProtocolLevel2222222[ProtocolLevel2222222["PROTOCOL"] = 1] = "PROTOCOL";
                          ProtocolLevel2222222[ProtocolLevel2222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                          ProtocolLevel2222222[ProtocolLevel2222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                          return ProtocolLevel2222222;
                        })(ProtocolLevel222222 || {});
                        var Relationship222222 = /* @__PURE__ */ ((Relationship2222222) => {
                          Relationship2222222[Relationship2222222["UNKNOWN"] = 0] = "UNKNOWN";
                          Relationship2222222[Relationship2222222["DEFAULT"] = 1] = "DEFAULT";
                          Relationship2222222[Relationship2222222["CONTAINS"] = 2] = "CONTAINS";
                          Relationship2222222[Relationship2222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                          Relationship2222222[Relationship2222222["USES"] = 4] = "USES";
                          Relationship2222222[Relationship2222222["USED_BY"] = 5] = "USED_BY";
                          Relationship2222222[Relationship2222222["COMMANDS"] = 6] = "COMMANDS";
                          Relationship2222222[Relationship2222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                          Relationship2222222[Relationship2222222["ADJUSTS"] = 8] = "ADJUSTS";
                          Relationship2222222[Relationship2222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                          Relationship2222222[Relationship2222222["INGRESS"] = 10] = "INGRESS";
                          Relationship2222222[Relationship2222222["EGRESS"] = 11] = "EGRESS";
                          Relationship2222222[Relationship2222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                          Relationship2222222[Relationship2222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                          Relationship2222222[Relationship2222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                          Relationship2222222[Relationship2222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                          Relationship2222222[Relationship2222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                          Relationship2222222[Relationship2222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                          Relationship2222222[Relationship2222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                          Relationship2222222[Relationship2222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                          Relationship2222222[Relationship2222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                          Relationship2222222[Relationship2222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                          Relationship2222222[Relationship2222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                          Relationship2222222[Relationship2222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                          Relationship2222222[Relationship2222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                          Relationship2222222[Relationship2222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                          Relationship2222222[Relationship2222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                          Relationship2222222[Relationship2222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                          Relationship2222222[Relationship2222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                          Relationship2222222[Relationship2222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                          return Relationship2222222;
                        })(Relationship222222 || {});
                        var Reliability222222 = /* @__PURE__ */ ((Reliability2222222) => {
                          Reliability2222222[Reliability2222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                          Reliability2222222[Reliability2222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                          Reliability2222222[Reliability2222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                          Reliability2222222[Reliability2222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                          Reliability2222222[Reliability2222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                          Reliability2222222[Reliability2222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                          Reliability2222222[Reliability2222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                          Reliability2222222[Reliability2222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                          Reliability2222222[Reliability2222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                          Reliability2222222[Reliability2222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                          Reliability2222222[Reliability2222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                          Reliability2222222[Reliability2222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                          Reliability2222222[Reliability2222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                          Reliability2222222[Reliability2222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                          Reliability2222222[Reliability2222222["TRIPPED"] = 15] = "TRIPPED";
                          Reliability2222222[Reliability2222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                          Reliability2222222[Reliability2222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                          Reliability2222222[Reliability2222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                          Reliability2222222[Reliability2222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                          Reliability2222222[Reliability2222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                          Reliability2222222[Reliability2222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                          Reliability2222222[Reliability2222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                          Reliability2222222[Reliability2222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                          Reliability2222222[Reliability2222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                          return Reliability2222222;
                        })(Reliability222222 || {});
                        var RestartReason222222 = /* @__PURE__ */ ((RestartReason2222222) => {
                          RestartReason2222222[RestartReason2222222["UNKNOWN"] = 0] = "UNKNOWN";
                          RestartReason2222222[RestartReason2222222["COLDSTART"] = 1] = "COLDSTART";
                          RestartReason2222222[RestartReason2222222["WARMSTART"] = 2] = "WARMSTART";
                          RestartReason2222222[RestartReason2222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                          RestartReason2222222[RestartReason2222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                          RestartReason2222222[RestartReason2222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                          RestartReason2222222[RestartReason2222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                          RestartReason2222222[RestartReason2222222["SUSPENDED"] = 7] = "SUSPENDED";
                          RestartReason2222222[RestartReason2222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                          return RestartReason2222222;
                        })(RestartReason222222 || {});
                        var SecurityLevel222222 = /* @__PURE__ */ ((SecurityLevel2222222) => {
                          SecurityLevel2222222[SecurityLevel2222222["INCAPABLE"] = 0] = "INCAPABLE";
                          SecurityLevel2222222[SecurityLevel2222222["PLAIN"] = 1] = "PLAIN";
                          SecurityLevel2222222[SecurityLevel2222222["SIGNED"] = 2] = "SIGNED";
                          SecurityLevel2222222[SecurityLevel2222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                          SecurityLevel2222222[SecurityLevel2222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                          SecurityLevel2222222[SecurityLevel2222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                          return SecurityLevel2222222;
                        })(SecurityLevel222222 || {});
                        var SecurityPolicy222222 = /* @__PURE__ */ ((SecurityPolicy2222222) => {
                          SecurityPolicy2222222[SecurityPolicy2222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                          SecurityPolicy2222222[SecurityPolicy2222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                          SecurityPolicy2222222[SecurityPolicy2222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                          SecurityPolicy2222222[SecurityPolicy2222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                          return SecurityPolicy2222222;
                        })(SecurityPolicy222222 || {});
                        var Segmentation222222 = /* @__PURE__ */ ((Segmentation2222222) => {
                          Segmentation2222222[Segmentation2222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                          Segmentation2222222[Segmentation2222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                          Segmentation2222222[Segmentation2222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                          Segmentation2222222[Segmentation2222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                          return Segmentation2222222;
                        })(Segmentation222222 || {});
                        var ShedState222222 = /* @__PURE__ */ ((ShedState2222222) => {
                          ShedState2222222[ShedState2222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                          ShedState2222222[ShedState2222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                          ShedState2222222[ShedState2222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                          ShedState2222222[ShedState2222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                          return ShedState2222222;
                        })(ShedState222222 || {});
                        var SilencedState222222 = /* @__PURE__ */ ((SilencedState2222222) => {
                          SilencedState2222222[SilencedState2222222["UNSILENCED"] = 0] = "UNSILENCED";
                          SilencedState2222222[SilencedState2222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                          SilencedState2222222[SilencedState2222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                          SilencedState2222222[SilencedState2222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                          return SilencedState2222222;
                        })(SilencedState222222 || {});
                        var TimerState222222 = /* @__PURE__ */ ((TimerState2222222) => {
                          TimerState2222222[TimerState2222222["IDLE"] = 0] = "IDLE";
                          TimerState2222222[TimerState2222222["RUNNING"] = 1] = "RUNNING";
                          TimerState2222222[TimerState2222222["EXPIRED"] = 2] = "EXPIRED";
                          return TimerState2222222;
                        })(TimerState222222 || {});
                        var TimerTransition222222 = /* @__PURE__ */ ((TimerTransition2222222) => {
                          TimerTransition2222222[TimerTransition2222222["NONE"] = 0] = "NONE";
                          TimerTransition2222222[TimerTransition2222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                          TimerTransition2222222[TimerTransition2222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                          TimerTransition2222222[TimerTransition2222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                          TimerTransition2222222[TimerTransition2222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                          TimerTransition2222222[TimerTransition2222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                          TimerTransition2222222[TimerTransition2222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                          TimerTransition2222222[TimerTransition2222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                          return TimerTransition2222222;
                        })(TimerTransition222222 || {});
                        var VTClass222222 = /* @__PURE__ */ ((VTClass2222222) => {
                          VTClass2222222[VTClass2222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                          VTClass2222222[VTClass2222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                          VTClass2222222[VTClass2222222["DEC_VT52"] = 2] = "DEC_VT52";
                          VTClass2222222[VTClass2222222["DEC_VT100"] = 3] = "DEC_VT100";
                          VTClass2222222[VTClass2222222["DEC_VT220"] = 4] = "DEC_VT220";
                          VTClass2222222[VTClass2222222["HP_700_94"] = 5] = "HP_700_94";
                          VTClass2222222[VTClass2222222["IBM_3130"] = 6] = "IBM_3130";
                          return VTClass2222222;
                        })(VTClass222222 || {});
                        var WriteStatus222222 = /* @__PURE__ */ ((WriteStatus2222222) => {
                          WriteStatus2222222[WriteStatus2222222["IDLE"] = 0] = "IDLE";
                          WriteStatus2222222[WriteStatus2222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                          WriteStatus2222222[WriteStatus2222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                          WriteStatus2222222[WriteStatus2222222["FAILED"] = 3] = "FAILED";
                          return WriteStatus2222222;
                        })(WriteStatus222222 || {});
                        var DaysOfWeek222222 = /* @__PURE__ */ ((DaysOfWeek2222222) => {
                          DaysOfWeek2222222[DaysOfWeek2222222["MONDAY"] = 0] = "MONDAY";
                          DaysOfWeek2222222[DaysOfWeek2222222["TUESDAY"] = 1] = "TUESDAY";
                          DaysOfWeek2222222[DaysOfWeek2222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                          DaysOfWeek2222222[DaysOfWeek2222222["THURSDAY"] = 3] = "THURSDAY";
                          DaysOfWeek2222222[DaysOfWeek2222222["FRIDAY"] = 4] = "FRIDAY";
                          DaysOfWeek2222222[DaysOfWeek2222222["SATURDAY"] = 5] = "SATURDAY";
                          DaysOfWeek2222222[DaysOfWeek2222222["SUNDAY"] = 6] = "SUNDAY";
                          return DaysOfWeek2222222;
                        })(DaysOfWeek222222 || {});
                        var EventTransitionBits222222 = /* @__PURE__ */ ((EventTransitionBits2222222) => {
                          EventTransitionBits2222222[EventTransitionBits2222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                          EventTransitionBits2222222[EventTransitionBits2222222["TO_FAULT"] = 1] = "TO_FAULT";
                          EventTransitionBits2222222[EventTransitionBits2222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                          return EventTransitionBits2222222;
                        })(EventTransitionBits222222 || {});
                        var LimitEnable222222 = /* @__PURE__ */ ((LimitEnable2222222) => {
                          LimitEnable2222222[LimitEnable2222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                          LimitEnable2222222[LimitEnable2222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                          return LimitEnable2222222;
                        })(LimitEnable222222 || {});
                        var LogStatus222222 = /* @__PURE__ */ ((LogStatus2222222) => {
                          LogStatus2222222[LogStatus2222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                          LogStatus2222222[LogStatus2222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                          LogStatus2222222[LogStatus2222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                          return LogStatus2222222;
                        })(LogStatus222222 || {});
                        var ObjectTypesSupported222222 = /* @__PURE__ */ ((ObjectTypesSupported2222222) => {
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["CALENDAR"] = 6] = "CALENDAR";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["COMMAND"] = 7] = "COMMAND";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["DEVICE"] = 8] = "DEVICE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["FILE"] = 10] = "FILE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["GROUP"] = 11] = "GROUP";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["LOOP"] = 12] = "LOOP";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["PROGRAM"] = 16] = "PROGRAM";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["SCHEDULE"] = 17] = "SCHEDULE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["AVERAGING"] = 18] = "AVERAGING";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["TREND_LOG"] = 20] = "TREND_LOG";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["TIMER"] = 31] = "TIMER";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["CHANNEL"] = 53] = "CHANNEL";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["ESCALATOR"] = 58] = "ESCALATOR";
                          ObjectTypesSupported2222222[ObjectTypesSupported2222222["LIFT"] = 59] = "LIFT";
                          return ObjectTypesSupported2222222;
                        })(ObjectTypesSupported222222 || {});
                        var ResultFlags222222 = /* @__PURE__ */ ((ResultFlags2222222) => {
                          ResultFlags2222222[ResultFlags2222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                          ResultFlags2222222[ResultFlags2222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                          ResultFlags2222222[ResultFlags2222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                          return ResultFlags2222222;
                        })(ResultFlags222222 || {});
                        var ServicesSupported222222 = /* @__PURE__ */ ((ServicesSupported2222222) => {
                          ServicesSupported2222222[ServicesSupported2222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                          ServicesSupported2222222[ServicesSupported2222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                          ServicesSupported2222222[ServicesSupported2222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                          ServicesSupported2222222[ServicesSupported2222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                          ServicesSupported2222222[ServicesSupported2222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                          ServicesSupported2222222[ServicesSupported2222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                          ServicesSupported2222222[ServicesSupported2222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                          ServicesSupported2222222[ServicesSupported2222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                          ServicesSupported2222222[ServicesSupported2222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                          ServicesSupported2222222[ServicesSupported2222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                          ServicesSupported2222222[ServicesSupported2222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                          ServicesSupported2222222[ServicesSupported2222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                          ServicesSupported2222222[ServicesSupported2222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                          ServicesSupported2222222[ServicesSupported2222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                          ServicesSupported2222222[ServicesSupported2222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                          ServicesSupported2222222[ServicesSupported2222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                          ServicesSupported2222222[ServicesSupported2222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                          ServicesSupported2222222[ServicesSupported2222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                          ServicesSupported2222222[ServicesSupported2222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                          ServicesSupported2222222[ServicesSupported2222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                          ServicesSupported2222222[ServicesSupported2222222["VT_OPEN"] = 21] = "VT_OPEN";
                          ServicesSupported2222222[ServicesSupported2222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                          ServicesSupported2222222[ServicesSupported2222222["VT_DATA"] = 23] = "VT_DATA";
                          ServicesSupported2222222[ServicesSupported2222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                          ServicesSupported2222222[ServicesSupported2222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                          ServicesSupported2222222[ServicesSupported2222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                          ServicesSupported2222222[ServicesSupported2222222["I_AM"] = 26] = "I_AM";
                          ServicesSupported2222222[ServicesSupported2222222["I_HAVE"] = 27] = "I_HAVE";
                          ServicesSupported2222222[ServicesSupported2222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                          ServicesSupported2222222[ServicesSupported2222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                          ServicesSupported2222222[ServicesSupported2222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                          ServicesSupported2222222[ServicesSupported2222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                          ServicesSupported2222222[ServicesSupported2222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                          ServicesSupported2222222[ServicesSupported2222222["WHO_HAS"] = 33] = "WHO_HAS";
                          ServicesSupported2222222[ServicesSupported2222222["WHO_IS"] = 34] = "WHO_IS";
                          ServicesSupported2222222[ServicesSupported2222222["READ_RANGE"] = 35] = "READ_RANGE";
                          ServicesSupported2222222[ServicesSupported2222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                          ServicesSupported2222222[ServicesSupported2222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                          ServicesSupported2222222[ServicesSupported2222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                          ServicesSupported2222222[ServicesSupported2222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                          ServicesSupported2222222[ServicesSupported2222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                          ServicesSupported2222222[ServicesSupported2222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                          ServicesSupported2222222[ServicesSupported2222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                          ServicesSupported2222222[ServicesSupported2222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                          return ServicesSupported2222222;
                        })(ServicesSupported222222 || {});
                        var StatusFlags222222 = /* @__PURE__ */ ((StatusFlags2222222) => {
                          StatusFlags2222222[StatusFlags2222222["IN_ALARM"] = 0] = "IN_ALARM";
                          StatusFlags2222222[StatusFlags2222222["FAULT"] = 1] = "FAULT";
                          StatusFlags2222222[StatusFlags2222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                          StatusFlags2222222[StatusFlags2222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                          return StatusFlags2222222;
                        })(StatusFlags222222 || {});
                        var ApplicationTag222222 = /* @__PURE__ */ ((ApplicationTag2222222) => {
                          ApplicationTag2222222[ApplicationTag2222222["NULL"] = 0] = "NULL";
                          ApplicationTag2222222[ApplicationTag2222222["BOOLEAN"] = 1] = "BOOLEAN";
                          ApplicationTag2222222[ApplicationTag2222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                          ApplicationTag2222222[ApplicationTag2222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                          ApplicationTag2222222[ApplicationTag2222222["REAL"] = 4] = "REAL";
                          ApplicationTag2222222[ApplicationTag2222222["DOUBLE"] = 5] = "DOUBLE";
                          ApplicationTag2222222[ApplicationTag2222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                          ApplicationTag2222222[ApplicationTag2222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                          ApplicationTag2222222[ApplicationTag2222222["BIT_STRING"] = 8] = "BIT_STRING";
                          ApplicationTag2222222[ApplicationTag2222222["ENUMERATED"] = 9] = "ENUMERATED";
                          ApplicationTag2222222[ApplicationTag2222222["DATE"] = 10] = "DATE";
                          ApplicationTag2222222[ApplicationTag2222222["TIME"] = 11] = "TIME";
                          ApplicationTag2222222[ApplicationTag2222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                          ApplicationTag2222222[ApplicationTag2222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                          ApplicationTag2222222[ApplicationTag2222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                          ApplicationTag2222222[ApplicationTag2222222["DATERANGE"] = 102] = "DATERANGE";
                          ApplicationTag2222222[ApplicationTag2222222["DATETIME"] = 103] = "DATETIME";
                          ApplicationTag2222222[ApplicationTag2222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                          ApplicationTag2222222[ApplicationTag2222222["ERROR"] = 105] = "ERROR";
                          ApplicationTag2222222[ApplicationTag2222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                          ApplicationTag2222222[ApplicationTag2222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                          ApplicationTag2222222[ApplicationTag2222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                          ApplicationTag2222222[ApplicationTag2222222["DESTINATION"] = 109] = "DESTINATION";
                          ApplicationTag2222222[ApplicationTag2222222["RECIPIENT"] = 110] = "RECIPIENT";
                          ApplicationTag2222222[ApplicationTag2222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                          ApplicationTag2222222[ApplicationTag2222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                          ApplicationTag2222222[ApplicationTag2222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                          ApplicationTag2222222[ApplicationTag2222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                          ApplicationTag2222222[ApplicationTag2222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                          ApplicationTag2222222[ApplicationTag2222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                          ApplicationTag2222222[ApplicationTag2222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                          ApplicationTag2222222[ApplicationTag2222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                          ApplicationTag2222222[ApplicationTag2222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                          ApplicationTag2222222[ApplicationTag2222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                          return ApplicationTag2222222;
                        })(ApplicationTag222222 || {});
                        var ApplicationTagName222222 = invertEnum222222(
                          ApplicationTag222222
                        );
                        var BvlcResultFormat222222 = /* @__PURE__ */ ((BvlcResultFormat2222222) => {
                          BvlcResultFormat2222222[BvlcResultFormat2222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                          BvlcResultFormat2222222[BvlcResultFormat2222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                          BvlcResultFormat2222222[BvlcResultFormat2222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                          BvlcResultFormat2222222[BvlcResultFormat2222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                          BvlcResultFormat2222222[BvlcResultFormat2222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                          BvlcResultFormat2222222[BvlcResultFormat2222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                          BvlcResultFormat2222222[BvlcResultFormat2222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                          return BvlcResultFormat2222222;
                        })(BvlcResultFormat222222 || {});
                        var BvlcResultPurpose222222 = /* @__PURE__ */ ((BvlcResultPurpose2222222) => {
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                          BvlcResultPurpose2222222[BvlcResultPurpose2222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                          return BvlcResultPurpose2222222;
                        })(BvlcResultPurpose222222 || {});
                        var CharacterStringEncoding222222 = /* @__PURE__ */ ((CharacterStringEncoding2222222) => {
                          CharacterStringEncoding2222222[CharacterStringEncoding2222222["UTF_8"] = 0] = "UTF_8";
                          CharacterStringEncoding2222222[CharacterStringEncoding2222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                          CharacterStringEncoding2222222[CharacterStringEncoding2222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                          CharacterStringEncoding2222222[CharacterStringEncoding2222222["UCS_4"] = 3] = "UCS_4";
                          CharacterStringEncoding2222222[CharacterStringEncoding2222222["UCS_2"] = 4] = "UCS_2";
                          CharacterStringEncoding2222222[CharacterStringEncoding2222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                          return CharacterStringEncoding2222222;
                        })(CharacterStringEncoding222222 || {});
                        var CovType222222 = /* @__PURE__ */ ((CovType2222222) => {
                          CovType2222222[CovType2222222["REAL"] = 0] = "REAL";
                          CovType2222222[CovType2222222["BIT_STRING"] = 1] = "BIT_STRING";
                          return CovType2222222;
                        })(CovType222222 || {});
                        var EnableDisable222222 = /* @__PURE__ */ ((EnableDisable2222222) => {
                          EnableDisable2222222[EnableDisable2222222["ENABLE"] = 0] = "ENABLE";
                          EnableDisable2222222[EnableDisable2222222["DISABLE"] = 1] = "DISABLE";
                          EnableDisable2222222[EnableDisable2222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                          return EnableDisable2222222;
                        })(EnableDisable222222 || {});
                        var MaxApduLengthAccepted222222 = /* @__PURE__ */ ((MaxApduLengthAccepted2222222) => {
                          MaxApduLengthAccepted2222222[MaxApduLengthAccepted2222222["OCTETS_50"] = 0] = "OCTETS_50";
                          MaxApduLengthAccepted2222222[MaxApduLengthAccepted2222222["OCTETS_128"] = 1] = "OCTETS_128";
                          MaxApduLengthAccepted2222222[MaxApduLengthAccepted2222222["OCTETS_206"] = 2] = "OCTETS_206";
                          MaxApduLengthAccepted2222222[MaxApduLengthAccepted2222222["OCTETS_480"] = 3] = "OCTETS_480";
                          MaxApduLengthAccepted2222222[MaxApduLengthAccepted2222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                          MaxApduLengthAccepted2222222[MaxApduLengthAccepted2222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                          return MaxApduLengthAccepted2222222;
                        })(MaxApduLengthAccepted222222 || {});
                        var MaxSegmentsAccepted222222 = /* @__PURE__ */ ((MaxSegmentsAccepted2222222) => {
                          MaxSegmentsAccepted2222222[MaxSegmentsAccepted2222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                          MaxSegmentsAccepted2222222[MaxSegmentsAccepted2222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                          MaxSegmentsAccepted2222222[MaxSegmentsAccepted2222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                          MaxSegmentsAccepted2222222[MaxSegmentsAccepted2222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                          MaxSegmentsAccepted2222222[MaxSegmentsAccepted2222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                          MaxSegmentsAccepted2222222[MaxSegmentsAccepted2222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                          MaxSegmentsAccepted2222222[MaxSegmentsAccepted2222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                          MaxSegmentsAccepted2222222[MaxSegmentsAccepted2222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                          return MaxSegmentsAccepted2222222;
                        })(MaxSegmentsAccepted222222 || {});
                        var NetworkLayerMessageType222222 = /* @__PURE__ */ ((NetworkLayerMessageType2222222) => {
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                          NetworkLayerMessageType2222222[NetworkLayerMessageType2222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                          return NetworkLayerMessageType2222222;
                        })(NetworkLayerMessageType222222 || {});
                        var NpduControlBit222222 = /* @__PURE__ */ ((NpduControlBit2222222) => {
                          NpduControlBit2222222[NpduControlBit2222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                          NpduControlBit2222222[NpduControlBit2222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                          NpduControlBit2222222[NpduControlBit2222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                          NpduControlBit2222222[NpduControlBit2222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                          return NpduControlBit2222222;
                        })(NpduControlBit222222 || {});
                        var NpduControlPriority222222 = /* @__PURE__ */ ((NpduControlPriority2222222) => {
                          NpduControlPriority2222222[NpduControlPriority2222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                          NpduControlPriority2222222[NpduControlPriority2222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                          NpduControlPriority2222222[NpduControlPriority2222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                          NpduControlPriority2222222[NpduControlPriority2222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                          return NpduControlPriority2222222;
                        })(NpduControlPriority222222 || {});
                        var PduConReqBit222222 = /* @__PURE__ */ ((PduConReqBit2222222) => {
                          PduConReqBit2222222[PduConReqBit2222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                          PduConReqBit2222222[PduConReqBit2222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                          PduConReqBit2222222[PduConReqBit2222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                          return PduConReqBit2222222;
                        })(PduConReqBit222222 || {});
                        var PduSegAckBit222222 = /* @__PURE__ */ ((PduSegAckBit2222222) => {
                          PduSegAckBit2222222[PduSegAckBit2222222["SERVER"] = 1] = "SERVER";
                          PduSegAckBit2222222[PduSegAckBit2222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                          return PduSegAckBit2222222;
                        })(PduSegAckBit222222 || {});
                        var PduType222222 = /* @__PURE__ */ ((PduType2222222) => {
                          PduType2222222[PduType2222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                          PduType2222222[PduType2222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                          PduType2222222[PduType2222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                          PduType2222222[PduType2222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                          PduType2222222[PduType2222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                          PduType2222222[PduType2222222["ERROR"] = 80] = "ERROR";
                          PduType2222222[PduType2222222["REJECT"] = 96] = "REJECT";
                          PduType2222222[PduType2222222["ABORT"] = 112] = "ABORT";
                          return PduType2222222;
                        })(PduType222222 || {});
                        var PropertyStates222222 = /* @__PURE__ */ ((PropertyStates2222222) => {
                          PropertyStates2222222[PropertyStates2222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                          PropertyStates2222222[PropertyStates2222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                          PropertyStates2222222[PropertyStates2222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                          PropertyStates2222222[PropertyStates2222222["POLARITY"] = 3] = "POLARITY";
                          PropertyStates2222222[PropertyStates2222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                          PropertyStates2222222[PropertyStates2222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                          PropertyStates2222222[PropertyStates2222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                          PropertyStates2222222[PropertyStates2222222["RELIABILITY"] = 7] = "RELIABILITY";
                          PropertyStates2222222[PropertyStates2222222["STATE"] = 8] = "STATE";
                          PropertyStates2222222[PropertyStates2222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                          PropertyStates2222222[PropertyStates2222222["UNITS"] = 10] = "UNITS";
                          PropertyStates2222222[PropertyStates2222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                          PropertyStates2222222[PropertyStates2222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                          PropertyStates2222222[PropertyStates2222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                          PropertyStates2222222[PropertyStates2222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                          PropertyStates2222222[PropertyStates2222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                          PropertyStates2222222[PropertyStates2222222["ACTION"] = 16] = "ACTION";
                          PropertyStates2222222[PropertyStates2222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                          PropertyStates2222222[PropertyStates2222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                          PropertyStates2222222[PropertyStates2222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                          PropertyStates2222222[PropertyStates2222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                          PropertyStates2222222[PropertyStates2222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                          PropertyStates2222222[PropertyStates2222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                          PropertyStates2222222[PropertyStates2222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                          PropertyStates2222222[PropertyStates2222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                          PropertyStates2222222[PropertyStates2222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                          PropertyStates2222222[PropertyStates2222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                          PropertyStates2222222[PropertyStates2222222["SHED_STATE"] = 27] = "SHED_STATE";
                          PropertyStates2222222[PropertyStates2222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                          PropertyStates2222222[PropertyStates2222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                          PropertyStates2222222[PropertyStates2222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                          PropertyStates2222222[PropertyStates2222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                          PropertyStates2222222[PropertyStates2222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                          PropertyStates2222222[PropertyStates2222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                          PropertyStates2222222[PropertyStates2222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                          PropertyStates2222222[PropertyStates2222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                          PropertyStates2222222[PropertyStates2222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                          PropertyStates2222222[PropertyStates2222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                          PropertyStates2222222[PropertyStates2222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                          PropertyStates2222222[PropertyStates2222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                          PropertyStates2222222[PropertyStates2222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                          PropertyStates2222222[PropertyStates2222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                          PropertyStates2222222[PropertyStates2222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                          PropertyStates2222222[PropertyStates2222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                          PropertyStates2222222[PropertyStates2222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                          PropertyStates2222222[PropertyStates2222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                          PropertyStates2222222[PropertyStates2222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                          PropertyStates2222222[PropertyStates2222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                          PropertyStates2222222[PropertyStates2222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                          PropertyStates2222222[PropertyStates2222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                          PropertyStates2222222[PropertyStates2222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                          PropertyStates2222222[PropertyStates2222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                          PropertyStates2222222[PropertyStates2222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                          PropertyStates2222222[PropertyStates2222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                          PropertyStates2222222[PropertyStates2222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                          PropertyStates2222222[PropertyStates2222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                          PropertyStates2222222[PropertyStates2222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                          PropertyStates2222222[PropertyStates2222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                          return PropertyStates2222222;
                        })(PropertyStates222222 || {});
                        var ReadRangeType222222 = /* @__PURE__ */ ((ReadRangeType2222222) => {
                          ReadRangeType2222222[ReadRangeType2222222["BY_POSITION"] = 0] = "BY_POSITION";
                          ReadRangeType2222222[ReadRangeType2222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                          ReadRangeType2222222[ReadRangeType2222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                          return ReadRangeType2222222;
                        })(ReadRangeType222222 || {});
                        var ReinitializedState222222 = /* @__PURE__ */ ((ReinitializedState2222222) => {
                          ReinitializedState2222222[ReinitializedState2222222["COLDSTART"] = 0] = "COLDSTART";
                          ReinitializedState2222222[ReinitializedState2222222["WARMSTART"] = 1] = "WARMSTART";
                          ReinitializedState2222222[ReinitializedState2222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                          ReinitializedState2222222[ReinitializedState2222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                          ReinitializedState2222222[ReinitializedState2222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                          ReinitializedState2222222[ReinitializedState2222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                          ReinitializedState2222222[ReinitializedState2222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                          ReinitializedState2222222[ReinitializedState2222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                          return ReinitializedState2222222;
                        })(ReinitializedState222222 || {});
                        var TimeStamp222222 = /* @__PURE__ */ ((TimeStamp2222222) => {
                          TimeStamp2222222[TimeStamp2222222["TIME"] = 0] = "TIME";
                          TimeStamp2222222[TimeStamp2222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                          TimeStamp2222222[TimeStamp2222222["DATETIME"] = 2] = "DATETIME";
                          return TimeStamp2222222;
                        })(TimeStamp222222 || {});
                        var import_events2222222 = __toESM222222(require("events"));
                        var import_debug3222222 = __toESM222222(require("debug"));
                        var import_dgram222222 = require("dgram");
                        var import_events322222 = __toESM222222(require("events"));
                        var import_debug2222222 = __toESM222222(require("debug"));
                        var EventEmitter322222 = import_events322222.default.EventEmitter;
                        var debug2222222 = (0, import_debug2222222.default)("bacnet:client:debug");
                        var DEFAULT_BACNET_PORT322222 = 47808;
                        var Transport222222 = class extends EventEmitter322222 {
                          constructor(settings) {
                            super();
                            this._lastSendMessages = {};
                            this._settings = settings;
                            this._server = (0, import_dgram222222.createSocket)({
                              type: "udp4",
                              reuseAddr: settings.reuseAddr
                            });
                            this._server.on("message", (msg, rinfo) => {
                              if (this.ownAddress.port === rinfo.port) {
                                for (let [messageKey, earlierSentBuffer] of Object.entries(
                                  this._lastSendMessages
                                )) {
                                  if (msg.equals(earlierSentBuffer)) {
                                    debug2222222(
                                      `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                    );
                                    return;
                                  }
                                }
                              }
                              debug2222222(
                                `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                                  "hex"
                                )}`
                              );
                              this.emit(
                                "message",
                                msg,
                                rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT322222 ? "" : ":" + rinfo.port)
                              );
                            });
                            this._server.on("listening", () => {
                              this.ownAddress = this._server.address();
                              debug2222222(
                                `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                              );
                              this.emit("listening", this.ownAddress);
                            });
                            this._server.on("error", (err) => {
                              debug2222222("transport error", err.message);
                              this.emit("error", err);
                            });
                            this._server.on("close", () => {
                              debug2222222("transport closed");
                              this.emit("close");
                            });
                          }
                          getBroadcastAddress() {
                            return this._settings.broadcastAddress;
                          }
                          getMaxPayload() {
                            return 1482;
                          }
                          send(buffer, offset, receiver) {
                            if (!receiver) {
                              receiver = this.getBroadcastAddress();
                              const dataToSend = Buffer.alloc(offset);
                              const hrTime = process.hrtime();
                              const messageKey = hrTime[0] * 1e9 + hrTime[1];
                              buffer.copy(dataToSend, 0, 0, offset);
                              this._lastSendMessages[messageKey] = dataToSend;
                              setTimeout(() => {
                                delete this._lastSendMessages[messageKey];
                              }, 1e4);
                            }
                            const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                            const [address, port] = receiverAddress.split(":");
                            debug2222222(
                              "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                            );
                            this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT322222, address);
                          }
                          open() {
                            this._server.bind(this._settings.port, this._settings.interface, () => {
                              this._server.setBroadcast(true);
                            });
                          }
                          close() {
                            this._server.close();
                          }
                        };
                        var services_exports222222 = {};
                        __export222222(services_exports222222, {
                          addListElement: () => add_list_element_exports222222,
                          alarmAcknowledge: () => alarm_acknowledge_exports222222,
                          alarmSummary: () => alarm_summary_exports222222,
                          atomicReadFile: () => atomic_read_file_exports222222,
                          atomicWriteFile: () => atomic_write_file_exports222222,
                          covNotify: () => cov_notify_exports222222,
                          covNotifyUnconfirmed: () => cov_notify_exports222222,
                          createObject: () => create_object_exports222222,
                          deleteObject: () => delete_object_exports222222,
                          deviceCommunicationControl: () => device_communication_control_exports222222,
                          error: () => error_exports222222,
                          eventInformation: () => event_information_exports222222,
                          eventNotifyData: () => event_notify_data_exports222222,
                          getEnrollmentSummary: () => get_enrollment_summary_exports222222,
                          getEventInformation: () => get_event_information_exports222222,
                          iAm: () => i_am_exports222222,
                          iHave: () => i_have_exports222222,
                          lifeSafetyOperation: () => life_safety_operation_exports222222,
                          privateTransfer: () => private_transfer_exports222222,
                          readProperty: () => read_property_exports222222,
                          readPropertyMultiple: () => read_property_multiple_exports222222,
                          readRange: () => read_range_exports222222,
                          registerForeignDevice: () => register_foreign_device_exports222222,
                          reinitializeDevice: () => reinitialize_device_exports222222,
                          subscribeCov: () => subscribe_cov_exports222222,
                          subscribeProperty: () => subscribe_property_exports222222,
                          timeSync: () => time_sync_exports222222,
                          timeSyncUTC: () => time_sync_exports222222,
                          whoHas: () => who_has_exports222222,
                          whoIs: () => who_is_exports222222,
                          writeProperty: () => write_property_exports222222,
                          writePropertyMultiple: () => write_property_multiple_exports222222
                        });
                        var add_list_element_exports222222 = {};
                        __export222222(add_list_element_exports222222, {
                          decode: () => decode3322222,
                          encode: () => encode3322222
                        });
                        var import_iconv_lite222222 = __toESM222222(require("iconv-lite"));
                        var enums_default222222 = enum_exports222222;
                        var START_YEAR222222 = 1900;
                        var MAX_YEARS222222 = 256;
                        var getBuffer222222 = () => {
                          return {
                            buffer: Buffer.alloc(1472),
                            offset: 0
                          };
                        };
                        var getSignedLength222222 = (value) => {
                          if (value >= -128 && value < 128)
                            return 1;
                          else if (value >= -32768 && value < 32768)
                            return 2;
                          else if (value > -8388608 && value < 8388608)
                            return 3;
                          else
                            return 4;
                        };
                        var getUnsignedLength222222 = (value) => {
                          if (value < 256)
                            return 1;
                          else if (value < 65536)
                            return 2;
                          else if (value < 16777216)
                            return 3;
                          else
                            return 4;
                        };
                        var getEncodingType222222 = (encoding, decodingBuffer, decodingOffset) => {
                          switch (encoding) {
                            case enums_default222222.CharacterStringEncoding.UCS_2:
                              if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                                return "ucs2";
                              }
                              return "UTF-16BE";
                            case enums_default222222.CharacterStringEncoding.ISO_8859_1:
                              return "latin1";
                            case enums_default222222.CharacterStringEncoding.MICROSOFT_DBCS:
                              return "cp850";
                            case enums_default222222.CharacterStringEncoding.JIS_X_0208:
                              return "Shift_JIS";
                            default:
                              return "utf8";
                          }
                        };
                        var encodeUnsigned222222 = (buffer, value, length) => {
                          buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                          buffer.offset += length;
                        };
                        var encodeBacnetUnsigned222222 = (buffer, value) => {
                          encodeUnsigned222222(buffer, value, getUnsignedLength222222(value));
                        };
                        var encodeSigned222222 = (buffer, value, length) => {
                          buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                          buffer.offset += length;
                        };
                        var encodeBacnetSigned222222 = (buffer, value) => {
                          encodeSigned222222(buffer, value, getSignedLength222222(value));
                        };
                        var encodeBacnetReal222222 = (buffer, value) => {
                          buffer.buffer.writeFloatBE(value, buffer.offset, true);
                          buffer.offset += 4;
                        };
                        var encodeBacnetDouble222222 = (buffer, value) => {
                          buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                          buffer.offset += 8;
                        };
                        var decodeUnsigned222222 = (buffer, offset, length) => {
                          if (length === 0) {
                            return {
                              len: 0,
                              value: 0
                            };
                          }
                          return {
                            len: length,
                            //@ts-ignore
                            value: buffer.readUIntBE(offset, length)
                          };
                        };
                        var decodeEnumerated222222 = (buffer, offset, length) => {
                          return decodeUnsigned222222(buffer, offset, length);
                        };
                        var encodeBacnetObjectId222222 = (buffer, objectType, instance) => {
                          const value = ((objectType & enums_default222222.ASN1_MAX_OBJECT) << enums_default222222.ASN1_INSTANCE_BITS | instance & enums_default222222.ASN1_MAX_INSTANCE) >>> 0;
                          encodeUnsigned222222(buffer, value, 4);
                        };
                        var encodeTag222222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                          let len = 1;
                          const tmp = new Array(3);
                          tmp[0] = 0;
                          if (contextSpecific) {
                            tmp[0] |= 8;
                          }
                          if (tagNumber <= 14) {
                            tmp[0] |= tagNumber << 4;
                          } else {
                            tmp[0] |= 240;
                            tmp[1] = tagNumber;
                            len++;
                          }
                          if (lenValueType <= 4) {
                            tmp[0] |= lenValueType;
                            Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                            buffer.offset += len;
                          } else {
                            tmp[0] |= 5;
                            if (lenValueType <= 253) {
                              tmp[len++] = lenValueType;
                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                              buffer.offset += len;
                            } else if (lenValueType <= 65535) {
                              tmp[len++] = 254;
                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                              buffer.offset += len;
                              encodeUnsigned222222(buffer, lenValueType, 2);
                            } else {
                              tmp[len++] = 255;
                              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                              buffer.offset += len;
                              encodeUnsigned222222(buffer, lenValueType, 4);
                            }
                          }
                        };
                        var encodeBacnetEnumerated222222 = (buffer, value) => {
                          encodeBacnetUnsigned222222(buffer, value);
                        };
                        var isExtendedTagNumber222222 = (x) => {
                          return (x & 240) === 240;
                        };
                        var isExtendedValue222222 = (x) => {
                          return (x & 7) === 5;
                        };
                        var isContextSpecific222222 = (x) => {
                          return (x & 8) === 8;
                        };
                        var isOpeningTag222222 = (x) => {
                          return (x & 7) === 6;
                        };
                        var isClosingTag222222 = (x) => {
                          return (x & 7) === 7;
                        };
                        var encodeContextReal222222 = (buffer, tagNumber, value) => {
                          encodeTag222222(buffer, tagNumber, true, 4);
                          encodeBacnetReal222222(buffer, value);
                        };
                        var encodeContextUnsigned222222 = (buffer, tagNumber, value) => {
                          encodeTag222222(buffer, tagNumber, true, getUnsignedLength222222(value));
                          encodeBacnetUnsigned222222(buffer, value);
                        };
                        var encodeContextEnumerated222222 = (buffer, tagNumber, value) => {
                          encodeContextUnsigned222222(buffer, tagNumber, value);
                        };
                        var encodeOctetString222222 = (buffer, octetString, octetOffset, octetCount) => {
                          if (octetString) {
                            for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                              buffer.buffer[buffer.offset++] = octetString[i];
                            }
                          }
                        };
                        var encodeApplicationOctetString222222 = (buffer, octetString, octetOffset, octetCount) => {
                          encodeTag222222(buffer, enums_default222222.ApplicationTag.OCTET_STRING, false, octetCount);
                          encodeOctetString222222(buffer, octetString, octetOffset, octetCount);
                        };
                        var encodeApplicationNull222222 = (buffer) => {
                          buffer.buffer[buffer.offset++] = enums_default222222.ApplicationTag.NULL;
                        };
                        var encodeApplicationBoolean222222 = (buffer, booleanValue) => {
                          encodeTag222222(buffer, enums_default222222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                        };
                        var encodeApplicationReal222222 = (buffer, value) => {
                          encodeTag222222(buffer, enums_default222222.ApplicationTag.REAL, false, 4);
                          encodeBacnetReal222222(buffer, value);
                        };
                        var encodeApplicationDouble222222 = (buffer, value) => {
                          encodeTag222222(buffer, enums_default222222.ApplicationTag.DOUBLE, false, 8);
                          encodeBacnetDouble222222(buffer, value);
                        };
                        var bitstringBytesUsed222222 = (bitString) => {
                          let len = 0;
                          if (bitString.bitsUsed > 0) {
                            const lastBit = bitString.bitsUsed - 1;
                            const usedBytes = lastBit / 8 + 1;
                            len = Math.floor(usedBytes);
                          }
                          return len;
                        };
                        var encodeApplicationObjectId222222 = (buffer, objectType, instance) => {
                          const tmp = getBuffer222222();
                          encodeBacnetObjectId222222(tmp, objectType, instance);
                          encodeTag222222(buffer, enums_default222222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                          buffer.offset += tmp.offset;
                        };
                        var encodeApplicationUnsigned222222 = (buffer, value) => {
                          const tmp = getBuffer222222();
                          encodeBacnetUnsigned222222(tmp, value);
                          encodeTag222222(buffer, enums_default222222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                          buffer.offset += tmp.offset;
                        };
                        var encodeApplicationEnumerated222222 = (buffer, value) => {
                          const tmp = getBuffer222222();
                          encodeBacnetEnumerated222222(tmp, value);
                          encodeTag222222(buffer, enums_default222222.ApplicationTag.ENUMERATED, false, tmp.offset);
                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                          buffer.offset += tmp.offset;
                        };
                        var encodeApplicationSigned222222 = (buffer, value) => {
                          const tmp = getBuffer222222();
                          encodeBacnetSigned222222(tmp, value);
                          encodeTag222222(buffer, enums_default222222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                          buffer.offset += tmp.offset;
                        };
                        var byteReverseBits222222 = (inByte) => {
                          let outByte = 0;
                          if ((inByte & 1) > 0) {
                            outByte |= 128;
                          }
                          if ((inByte & 2) > 0) {
                            outByte |= 64;
                          }
                          if ((inByte & 4) > 0) {
                            outByte |= 32;
                          }
                          if ((inByte & 8) > 0) {
                            outByte |= 16;
                          }
                          if ((inByte & 16) > 0) {
                            outByte |= 8;
                          }
                          if ((inByte & 32) > 0) {
                            outByte |= 4;
                          }
                          if ((inByte & 64) > 0) {
                            outByte |= 2;
                          }
                          if ((inByte & 128) > 0) {
                            outByte |= 1;
                          }
                          return outByte;
                        };
                        var bitstringOctet222222 = (bitString, octetIndex) => {
                          let octet = 0;
                          if (bitString.value && octetIndex < enums_default222222.ASN1_MAX_BITSTRING_BYTES) {
                            octet = bitString.value[octetIndex];
                          }
                          return octet;
                        };
                        var encodeBitstring222222 = (buffer, bitString) => {
                          if (bitString.bitsUsed === 0) {
                            buffer.buffer[buffer.offset++] = 0;
                          } else {
                            const usedBytes = bitstringBytesUsed222222(bitString);
                            const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                            buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                            for (let i = 0; i < usedBytes; i++) {
                              buffer.buffer[buffer.offset++] = byteReverseBits222222(
                                bitstringOctet222222(bitString, i)
                              );
                            }
                          }
                        };
                        var encodeApplicationBitstring222222 = (buffer, bitString) => {
                          let bitStringEncodedLength = 1;
                          bitStringEncodedLength += bitstringBytesUsed222222(bitString);
                          encodeTag222222(
                            buffer,
                            enums_default222222.ApplicationTag.BIT_STRING,
                            false,
                            bitStringEncodedLength
                          );
                          encodeBitstring222222(buffer, bitString);
                        };
                        var encodeBacnetDate222222 = (buffer, value) => {
                          if (value === new Date(1, 1, 1)) {
                            buffer.buffer[buffer.offset++] = 255;
                            buffer.buffer[buffer.offset++] = 255;
                            buffer.buffer[buffer.offset++] = 255;
                            buffer.buffer[buffer.offset++] = 255;
                            return;
                          }
                          if (value.getFullYear() >= START_YEAR222222) {
                            buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR222222;
                          } else if (value.getFullYear() < MAX_YEARS222222) {
                            buffer.buffer[buffer.offset++] = value.getFullYear();
                          } else {
                            throw new Error("invaide year: " + value.getFullYear());
                          }
                          buffer.buffer[buffer.offset++] = value.getMonth();
                          buffer.buffer[buffer.offset++] = value.getDate();
                          buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                        };
                        var encodeApplicationDate222222 = (buffer, value) => {
                          encodeTag222222(buffer, enums_default222222.ApplicationTag.DATE, false, 4);
                          encodeBacnetDate222222(buffer, value);
                        };
                        var encodeBacnetTime222222 = (buffer, value) => {
                          buffer.buffer[buffer.offset++] = value.getHours();
                          buffer.buffer[buffer.offset++] = value.getMinutes();
                          buffer.buffer[buffer.offset++] = value.getSeconds();
                          buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                        };
                        var encodeApplicationTime222222 = (buffer, value) => {
                          encodeTag222222(buffer, enums_default222222.ApplicationTag.TIME, false, 4);
                          encodeBacnetTime222222(buffer, value);
                        };
                        var bacappEncodeDatetime222222 = (buffer, value) => {
                          if (value !== new Date(1, 1, 1)) {
                            encodeApplicationDate222222(buffer, value);
                            encodeApplicationTime222222(buffer, value);
                          }
                        };
                        var encodeContextObjectId222222 = (buffer, tagNumber, objectType, instance) => {
                          encodeTag222222(buffer, tagNumber, true, 4);
                          encodeBacnetObjectId222222(buffer, objectType, instance);
                        };
                        var encodeOpeningTag222222 = (buffer, tagNumber) => {
                          let len = 1;
                          const tmp = new Array(2);
                          tmp[0] = 8;
                          if (tagNumber <= 14) {
                            tmp[0] |= tagNumber << 4;
                          } else {
                            tmp[0] |= 240;
                            tmp[1] = tagNumber;
                            len++;
                          }
                          tmp[0] |= 6;
                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                          buffer.offset += len;
                        };
                        var encodeClosingTag222222 = (buffer, tagNumber) => {
                          let len = 1;
                          const tmp = new Array(2);
                          tmp[0] = 8;
                          if (tagNumber <= 14) {
                            tmp[0] |= tagNumber << 4;
                          } else {
                            tmp[0] |= 240;
                            tmp[1] = tagNumber;
                            len++;
                          }
                          tmp[0] |= 7;
                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                          buffer.offset += len;
                        };
                        var encodeReadAccessSpecification222222 = (buffer, value) => {
                          encodeContextObjectId222222(
                            buffer,
                            0,
                            value.objectId.type,
                            value.objectId.instance
                          );
                          encodeOpeningTag222222(buffer, 1);
                          value.properties.forEach((p) => {
                            encodeContextEnumerated222222(buffer, 0, p.id);
                            if (p.index && p.index !== enums_default222222.ASN1_ARRAY_ALL) {
                              encodeContextUnsigned222222(buffer, 1, p.index);
                            }
                          });
                          encodeClosingTag222222(buffer, 1);
                        };
                        var encodeContextBoolean222222 = (buffer, tagNumber, booleanValue) => {
                          encodeTag222222(buffer, tagNumber, true, 1);
                          buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                          buffer.offset += 1;
                        };
                        var encodeCovSubscription222222 = (buffer, value) => {
                          encodeOpeningTag222222(buffer, 0);
                          encodeOpeningTag222222(buffer, 0);
                          encodeOpeningTag222222(buffer, 1);
                          encodeApplicationUnsigned222222(buffer, value.recipient.network);
                          if (value.recipient.network === 65535) {
                            encodeApplicationOctetString222222(buffer, 0, 0, 0);
                          } else {
                            encodeApplicationOctetString222222(
                              buffer,
                              value.recipient.address,
                              0,
                              value.recipient.address.length
                            );
                          }
                          encodeClosingTag222222(buffer, 1);
                          encodeClosingTag222222(buffer, 0);
                          encodeContextUnsigned222222(buffer, 1, value.subscriptionProcessId);
                          encodeClosingTag222222(buffer, 0);
                          encodeOpeningTag222222(buffer, 1);
                          encodeContextObjectId222222(
                            buffer,
                            0,
                            value.monitoredObjectId.type,
                            value.monitoredObjectId.instance
                          );
                          encodeContextEnumerated222222(buffer, 1, value.monitoredProperty.id);
                          if (value.monitoredProperty.index !== enums_default222222.ASN1_ARRAY_ALL) {
                            encodeContextUnsigned222222(buffer, 2, value.monitoredProperty.index);
                          }
                          encodeClosingTag222222(buffer, 1);
                          encodeContextBoolean222222(buffer, 2, value.issueConfirmedNotifications);
                          encodeContextUnsigned222222(buffer, 3, value.timeRemaining);
                          if (value.covIncrement > 0) {
                            encodeContextReal222222(buffer, 4, value.covIncrement);
                          }
                        };
                        var bacappEncodeApplicationData222222 = (buffer, value) => {
                          if (value.value === null) {
                            value.type = enums_default222222.ApplicationTag.NULL;
                          }
                          switch (value.type) {
                            case enums_default222222.ApplicationTag.NULL:
                              encodeApplicationNull222222(buffer);
                              break;
                            case enums_default222222.ApplicationTag.BOOLEAN:
                              encodeApplicationBoolean222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.UNSIGNED_INTEGER:
                              encodeApplicationUnsigned222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.SIGNED_INTEGER:
                              encodeApplicationSigned222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.REAL:
                              encodeApplicationReal222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.DOUBLE:
                              encodeApplicationDouble222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.OCTET_STRING:
                              encodeApplicationOctetString222222(buffer, value.value, 0, value.value.length);
                              break;
                            case enums_default222222.ApplicationTag.CHARACTER_STRING:
                              encodeApplicationCharacterString222222(buffer, value.value, value.encoding);
                              break;
                            case enums_default222222.ApplicationTag.BIT_STRING:
                              encodeApplicationBitstring222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.ENUMERATED:
                              encodeApplicationEnumerated222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.DATE:
                              encodeApplicationDate222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.TIME:
                              encodeApplicationTime222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.TIMESTAMP:
                              bacappEncodeTimestamp222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.DATETIME:
                              bacappEncodeDatetime222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.OBJECTIDENTIFIER:
                              encodeApplicationObjectId222222(buffer, value.value.type, value.value.instance);
                              break;
                            case enums_default222222.ApplicationTag.COV_SUBSCRIPTION:
                              encodeCovSubscription222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.READ_ACCESS_RESULT:
                              encodeReadAccessResult222222(buffer, value.value);
                              break;
                            case enums_default222222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                              encodeReadAccessSpecification222222(buffer, value.value);
                              break;
                            case void 0:
                              throw new Error(
                                "Cannot encode a value if the type has not been specified"
                              );
                            default:
                              throw "No encode for ApplicationTag type: " + enums_default222222.getEnumName(
                                enums_default222222.ApplicationTag,
                                value.type
                              );
                          }
                        };
                        var bacappEncodeDeviceObjPropertyRef222222 = (buffer, value) => {
                          encodeContextObjectId222222(
                            buffer,
                            0,
                            value.objectId.type,
                            value.objectId.instance
                          );
                          encodeContextEnumerated222222(buffer, 1, value.id);
                          if (value.arrayIndex !== enums_default222222.ASN1_ARRAY_ALL) {
                            encodeContextUnsigned222222(buffer, 2, value.arrayIndex);
                          }
                          if (value.deviceIndentifier.type === enums_default222222.ObjectType.DEVICE) {
                            encodeContextObjectId222222(
                              buffer,
                              3,
                              value.deviceIndentifier.type,
                              value.deviceIndentifier.instance
                            );
                          }
                        };
                        var bacappEncodeContextDeviceObjPropertyRef222222 = (buffer, tagNumber, value) => {
                          encodeOpeningTag222222(buffer, tagNumber);
                          bacappEncodeDeviceObjPropertyRef222222(buffer, value);
                          encodeClosingTag222222(buffer, tagNumber);
                        };
                        var bacappEncodePropertyState222222 = (buffer, value) => {
                          switch (value.type) {
                            case enums_default222222.PropertyStates.BOOLEAN_VALUE:
                              encodeContextBoolean222222(buffer, 0, value.state === 1);
                              break;
                            case enums_default222222.PropertyStates.BINARY_VALUE:
                              encodeContextEnumerated222222(buffer, 1, value.state);
                              break;
                            case enums_default222222.PropertyStates.EVENT_TYPE:
                              encodeContextEnumerated222222(buffer, 2, value.state);
                              break;
                            case enums_default222222.PropertyStates.POLARITY:
                              encodeContextEnumerated222222(buffer, 3, value.state);
                              break;
                            case enums_default222222.PropertyStates.PROGRAM_CHANGE:
                              encodeContextEnumerated222222(buffer, 4, value.state);
                              break;
                            case enums_default222222.PropertyStates.PROGRAM_STATE:
                              encodeContextEnumerated222222(buffer, 5, value.state);
                              break;
                            case enums_default222222.PropertyStates.REASON_FOR_HALT:
                              encodeContextEnumerated222222(buffer, 6, value.state);
                              break;
                            case enums_default222222.PropertyStates.RELIABILITY:
                              encodeContextEnumerated222222(buffer, 7, value.state);
                              break;
                            case enums_default222222.PropertyStates.STATE:
                              encodeContextEnumerated222222(buffer, 8, value.state);
                              break;
                            case enums_default222222.PropertyStates.SYSTEM_STATUS:
                              encodeContextEnumerated222222(buffer, 9, value.state);
                              break;
                            case enums_default222222.PropertyStates.UNITS:
                              encodeContextEnumerated222222(buffer, 10, value.state);
                              break;
                            case enums_default222222.PropertyStates.UNSIGNED_VALUE:
                              encodeContextUnsigned222222(buffer, 11, value.state);
                              break;
                            case enums_default222222.PropertyStates.LIFE_SAFETY_MODE:
                              encodeContextEnumerated222222(buffer, 12, value.state);
                              break;
                            case enums_default222222.PropertyStates.LIFE_SAFETY_STATE:
                              encodeContextEnumerated222222(buffer, 13, value.state);
                              break;
                            default:
                              break;
                          }
                        };
                        var encodeContextBitstring222222 = (buffer, tagNumber, bitString) => {
                          let bitStringEncodedLength = 1;
                          bitStringEncodedLength += bitstringBytesUsed222222(bitString);
                          encodeTag222222(buffer, tagNumber, true, bitStringEncodedLength);
                          encodeBitstring222222(buffer, bitString);
                        };
                        var encodeContextSigned222222 = (buffer, tagNumber, value) => {
                          encodeTag222222(buffer, tagNumber, true, getSignedLength222222(value));
                          encodeBacnetSigned222222(buffer, value);
                        };
                        var encodeContextTime222222 = (buffer, tagNumber, value) => {
                          encodeTag222222(buffer, tagNumber, true, 4);
                          encodeBacnetTime222222(buffer, value);
                        };
                        var bacappEncodeContextDatetime222222 = (buffer, tagNumber, value) => {
                          if (value !== new Date(1, 1, 1)) {
                            encodeOpeningTag222222(buffer, tagNumber);
                            bacappEncodeDatetime222222(buffer, value);
                            encodeClosingTag222222(buffer, tagNumber);
                          } else {
                            throw new Error("wrong Datetime while bacapp encoding context");
                          }
                        };
                        var decodeTagNumber222222 = (buffer, offset) => {
                          let len = 1;
                          let tagNumber;
                          if (isExtendedTagNumber222222(buffer[offset])) {
                            tagNumber = buffer[offset + 1];
                            len++;
                          } else {
                            tagNumber = buffer[offset] >> 4;
                          }
                          return {
                            len,
                            tagNumber
                          };
                        };
                        var decodeIsContextTag222222 = (buffer, offset, tagNumber) => {
                          const result = decodeTagNumber222222(buffer, offset);
                          return isContextSpecific222222(buffer[offset]) && result.tagNumber === tagNumber;
                        };
                        var decodeIsOpeningTagNumber222222 = (buffer, offset, tagNumber) => {
                          const result = decodeTagNumber222222(buffer, offset);
                          return isOpeningTag222222(buffer[offset]) && result.tagNumber === tagNumber;
                        };
                        var decodeIsClosingTagNumber222222 = (buffer, offset, tagNumber) => {
                          const result = decodeTagNumber222222(buffer, offset);
                          return isClosingTag222222(buffer[offset]) && result.tagNumber === tagNumber;
                        };
                        var decodeIsClosingTag222222 = (buffer, offset) => {
                          return (buffer[offset] & 7) === 7;
                        };
                        var decodeIsOpeningTag222222 = (buffer, offset) => {
                          return (buffer[offset] & 7) === 6;
                        };
                        var decodeObjectId222222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                          const result = decodeUnsigned222222(buffer, offset, 4);
                          const objectType = result.value >> enums_default222222.ASN1_INSTANCE_BITS & enums_default222222.ASN1_MAX_OBJECT;
                          const instance = result.value & enums_default222222.ASN1_MAX_INSTANCE;
                          return {
                            len: result.len,
                            objectType,
                            instance
                          };
                        };
                        var decodeObjectIdSafe222222 = (buffer, offset, lenValue) => {
                          if (lenValue !== 4) {
                            return {
                              len: 0,
                              objectType: 0,
                              instance: 0
                            };
                          } else {
                            return decodeObjectId222222(buffer, offset);
                          }
                        };
                        var decodeTagNumberAndValue222222 = (buffer, offset) => {
                          let value;
                          let result = decodeTagNumber222222(buffer, offset);
                          let len = result.len;
                          if (isExtendedValue222222(buffer[offset])) {
                            if (buffer[offset + len] === 255) {
                              len++;
                              result = decodeUnsigned222222(buffer, offset + len, 4);
                              len += result.len;
                              value = result.value;
                            } else if (buffer[offset + len] === 254) {
                              len++;
                              result = decodeUnsigned222222(buffer, offset + len, 2);
                              len += result.len;
                              value = result.value;
                            } else {
                              value = buffer[offset + len];
                              len++;
                            }
                          } else if (isOpeningTag222222(buffer[offset])) {
                            value = 0;
                          } else if (isClosingTag222222(buffer[offset])) {
                            value = 0;
                          } else {
                            value = buffer[offset] & 7;
                          }
                          return {
                            len,
                            tagNumber: result.tagNumber,
                            value
                          };
                        };
                        var bacappDecodeApplicationData222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                          if (!isContextSpecific222222(buffer[offset])) {
                            let result = decodeTagNumberAndValue222222(buffer, offset);
                            if (result) {
                              let len = result.len;
                              result = bacappDecodeData222222(
                                buffer,
                                offset + len,
                                maxOffset,
                                result.tagNumber,
                                result.value
                              );
                              if (!result) {
                                return void 0;
                              }
                              let resObj = {
                                len: len + result.len,
                                type: result.type,
                                value: result.value
                              };
                              if (result.encoding !== void 0)
                                resObj.encoding = result.encoding;
                              return resObj;
                            }
                          } else {
                            return bacappDecodeContextApplicationData222222(
                              buffer,
                              offset,
                              maxOffset,
                              objectType,
                              propertyId
                            );
                          }
                        };
                        var encodeReadAccessResult222222 = (buffer, value) => {
                          encodeContextObjectId222222(
                            buffer,
                            0,
                            value.objectId.type,
                            value.objectId.instance
                          );
                          encodeOpeningTag222222(buffer, 1);
                          value.values.forEach((item) => {
                            encodeContextEnumerated222222(buffer, 2, item.property.id);
                            if (item.property.index !== enums_default222222.ASN1_ARRAY_ALL) {
                              encodeContextUnsigned222222(buffer, 3, item.property.index);
                            }
                            if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                              encodeOpeningTag222222(buffer, 5);
                              encodeApplicationEnumerated222222(buffer, item.value[0].value.errorClass);
                              encodeApplicationEnumerated222222(buffer, item.value[0].value.errorCode);
                              encodeClosingTag222222(buffer, 5);
                            } else {
                              if (!item.value)
                                throw new Error("No value in item");
                              encodeOpeningTag222222(buffer, 4);
                              item.value.forEach((subItem) => {
                                bacappEncodeApplicationData222222(buffer, subItem);
                              });
                              encodeClosingTag222222(buffer, 4);
                            }
                          });
                          encodeClosingTag222222(buffer, 1);
                        };
                        var decodeReadAccessResult222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let value = {};
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          let result = decodeObjectId222222(buffer, offset + len);
                          value.objectId = {
                            type: result.objectType,
                            instance: result.instance
                          };
                          len += result.len;
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 1)) {
                            return -1;
                          }
                          len++;
                          const values = [];
                          while (apduLen - len > 0) {
                            let newEntry = {};
                            if (decodeIsClosingTagNumber222222(buffer, offset + len, 1)) {
                              len++;
                              break;
                            }
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 2) {
                              return void 0;
                            }
                            result = decodeEnumerated222222(buffer, offset + len, result.value);
                            newEntry.id = result.value;
                            len += result.len;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            if (result.tagNumber === 3) {
                              len += result.len;
                              result = decodeUnsigned222222(buffer, offset + len, result.value);
                              newEntry.index = result.value;
                              len += result.len;
                            } else {
                              newEntry.index = enums_default222222.ASN1_ARRAY_ALL;
                            }
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber === 4) {
                              const localValues = [];
                              while (len + offset <= buffer.length && !decodeIsClosingTagNumber222222(buffer, offset + len, 4)) {
                                let localResult = bacappDecodeApplicationData222222(
                                  buffer,
                                  offset + len,
                                  apduLen + offset - 1,
                                  value.objectId.type,
                                  newEntry.id
                                );
                                if (!localResult) {
                                  return void 0;
                                }
                                len += localResult.len;
                                let resObj = {
                                  value: localResult.value,
                                  type: localResult.type
                                };
                                if (localResult.encoding !== void 0)
                                  resObj.encoding = localResult.encoding;
                                localValues.push(resObj);
                              }
                              if (!decodeIsClosingTagNumber222222(buffer, offset + len, 4)) {
                                return void 0;
                              }
                              if (localValues.count === 2 && localValues[0].type === enums_default222222.ApplicationTag.DATE && localValues[1].type === enums_default222222.ApplicationTag.TIME) {
                                const date = localValues[0].value;
                                const time = localValues[1].value;
                                const bdatetime = new Date(
                                  date.year,
                                  date.month,
                                  date.day,
                                  time.hour,
                                  time.minute,
                                  time.second,
                                  time.millisecond
                                );
                                newEntry.value = [
                                  { type: enums_default222222.ApplicationTag.DATETIME, value: bdatetime }
                                ];
                              } else {
                                newEntry.value = localValues;
                              }
                              len++;
                            } else if (result.tagNumber === 5) {
                              let err = {};
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                              result = decodeEnumerated222222(buffer, offset + len, result.value);
                              len += result.len;
                              err.errorClass = result.value;
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                              result = decodeEnumerated222222(buffer, offset + len, result.value);
                              len += result.len;
                              err.errorCode = result.value;
                              if (!decodeIsClosingTagNumber222222(buffer, offset + len, 5)) {
                                return void 0;
                              }
                              len++;
                              newEntry.value = [
                                {
                                  type: enums_default222222.ApplicationTag.ERROR,
                                  value: err
                                }
                              ];
                            }
                            values.push(newEntry);
                          }
                          value.values = values;
                          return {
                            len,
                            value
                          };
                        };
                        var decodeSigned222222 = (buffer, offset, length) => {
                          return {
                            len: length,
                            value: buffer.readIntBE(offset, length, true)
                          };
                        };
                        var decodeReal222222 = (buffer, offset) => {
                          return {
                            len: 4,
                            value: buffer.readFloatBE(offset, true)
                          };
                        };
                        var decodeRealSafe222222 = (buffer, offset, lenValue) => {
                          if (lenValue !== 4) {
                            return {
                              len: lenValue,
                              value: 0
                            };
                          } else {
                            return decodeReal222222(buffer, offset);
                          }
                        };
                        var decodeDouble222222 = (buffer, offset) => {
                          return {
                            len: 8,
                            value: buffer.readDoubleBE(offset, true)
                          };
                        };
                        var decodeDoubleSafe222222 = (buffer, offset, lenValue) => {
                          if (lenValue !== 8) {
                            return {
                              len: lenValue,
                              value: 0
                            };
                          } else {
                            return decodeDouble222222(buffer, offset);
                          }
                        };
                        var decodeOctetString222222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                          const octetString = [];
                          for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                            octetString.push(buffer[offset + i]);
                          }
                          return {
                            len: octetStringLength,
                            value: octetString
                          };
                        };
                        var multiCharsetCharacterstringDecode222222 = (buffer, offset, maxLength, encoding, length) => {
                          const stringBuf = Buffer.alloc(length);
                          buffer.copy(stringBuf, 0, offset, offset + length);
                          return {
                            value: import_iconv_lite222222.default.decode(stringBuf, getEncodingType222222(encoding, buffer, offset)),
                            len: length + 1,
                            encoding
                          };
                        };
                        var decodeCharacterString222222 = (buffer, offset, maxLength, lenValue) => {
                          return multiCharsetCharacterstringDecode222222(
                            buffer,
                            offset + 1,
                            maxLength,
                            buffer[offset],
                            lenValue - 1
                          );
                        };
                        var bitstringSetBitsUsed222222 = (bitString, bytesUsed, unusedBits) => {
                          bitString.bitsUsed = bytesUsed * 8;
                          bitString.bitsUsed -= unusedBits;
                        };
                        var decodeBitstring222222 = (buffer, offset, lenValue) => {
                          let len = 0;
                          let bitString = {};
                          bitString.value = [];
                          if (lenValue > 0) {
                            const bytesUsed = lenValue - 1;
                            if (bytesUsed <= enums_default222222.ASN1_MAX_BITSTRING_BYTES) {
                              len = 1;
                              for (let i = 0; i < bytesUsed; i++) {
                                bitString.value.push(byteReverseBits222222(buffer[offset + len++]));
                              }
                              const unusedBits = buffer[offset] & 7;
                              bitstringSetBitsUsed222222(bitString, bytesUsed, unusedBits);
                            }
                          }
                          return {
                            len,
                            value: bitString
                          };
                        };
                        var decodeDate222222 = (buffer, offset) => {
                          let date;
                          const year = buffer[offset] + 1900;
                          const month = buffer[offset + 1];
                          const day = buffer[offset + 2];
                          const wday = buffer[offset + 3];
                          if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                            date = new Date(1, 1, 1);
                          } else {
                            date = new Date(year, month, day);
                          }
                          return {
                            len: 4,
                            value: date
                          };
                        };
                        var decodeDateSafe222222 = (buffer, offset, lenValue) => {
                          if (lenValue !== 4) {
                            return {
                              len: lenValue,
                              value: new Date(1, 1, 1)
                            };
                          } else {
                            return decodeDate222222(buffer, offset);
                          }
                        };
                        var decodeApplicationDate222222 = (buffer, offset) => {
                          const result = decodeTagNumber222222(buffer, offset);
                          if (result.tagNumber === enums_default222222.ApplicationTag.DATE) {
                            const value = decodeDate222222(buffer, offset + 1);
                            return {
                              len: value.len + 1,
                              value
                            };
                          }
                          return void 0;
                        };
                        var decodeBacnetTime222222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                          const hour = buffer[offset + 0];
                          const min = buffer[offset + 1];
                          const sec = buffer[offset + 2];
                          let hundredths = buffer[offset + 3];
                          if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                            value = new Date(1, 1, 1);
                          } else {
                            if (hundredths > 100)
                              hundredths = 0;
                            value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                          }
                          return {
                            len: 4,
                            value
                          };
                        };
                        var decodeBacnetTimeSafe222222 = (buffer, offset, lenValue) => {
                          if (lenValue !== 4) {
                            return {
                              len: lenValue,
                              value: new Date(1, 1, 1)
                            };
                          } else {
                            return decodeBacnetTime222222(buffer, offset);
                          }
                        };
                        var decodeApplicationTime222222 = (buffer, offset) => {
                          const result = decodeTagNumber222222(buffer, offset);
                          if (result.tagNumber === enums_default222222.ApplicationTag.TIME) {
                            const value = decodeBacnetTime222222(buffer, offset + 1);
                            return {
                              len: value.len + 1,
                              value
                            };
                          }
                          return void 0;
                        };
                        var decodeBacnetDatetime222222 = (buffer, offset) => {
                          let len = 0;
                          const date = decodeApplicationDate222222(buffer, offset + len);
                          len += date.len;
                          const time = decodeApplicationTime222222(buffer, offset + len);
                          len += time.len;
                          return {
                            len,
                            value: new Date(
                              date.year,
                              date.month,
                              date.day,
                              time.hour,
                              time.minute,
                              time.second,
                              time.millisecond
                            )
                          };
                        };
                        var bacappDecodeData222222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                          let result;
                          let value = {
                            len: 0,
                            type: tagDataType
                          };
                          switch (tagDataType) {
                            case enums_default222222.ApplicationTag.NULL:
                              value.value = null;
                              break;
                            case enums_default222222.ApplicationTag.BOOLEAN:
                              value.value = lenValueType > 0;
                              break;
                            case enums_default222222.ApplicationTag.UNSIGNED_INTEGER:
                              result = decodeUnsigned222222(buffer, offset, lenValueType);
                              value.len += result.len;
                              value.value = result.value;
                              break;
                            case enums_default222222.ApplicationTag.SIGNED_INTEGER:
                              result = decodeSigned222222(buffer, offset, lenValueType);
                              value.len += result.len;
                              value.value = result.value;
                              break;
                            case enums_default222222.ApplicationTag.REAL:
                              result = decodeRealSafe222222(buffer, offset, lenValueType);
                              value.len += result.len;
                              value.value = result.value;
                              break;
                            case enums_default222222.ApplicationTag.DOUBLE:
                              result = decodeDoubleSafe222222(buffer, offset, lenValueType);
                              value.len += result.len;
                              value.value = result.value;
                              break;
                            case enums_default222222.ApplicationTag.OCTET_STRING:
                              result = decodeOctetString222222(buffer, offset, maxLength, 0, lenValueType);
                              value.len += result.len;
                              value.value = result.value;
                              break;
                            case enums_default222222.ApplicationTag.CHARACTER_STRING:
                              result = decodeCharacterString222222(buffer, offset, maxLength, lenValueType);
                              value.len += result.len;
                              value.value = result.value;
                              value.encoding = result.encoding;
                              break;
                            case enums_default222222.ApplicationTag.BIT_STRING:
                              result = decodeBitstring222222(buffer, offset, lenValueType);
                              value.len += result.len;
                              value.value = result.value;
                              break;
                            case enums_default222222.ApplicationTag.ENUMERATED:
                              result = decodeEnumerated222222(buffer, offset, lenValueType);
                              value.len += result.len;
                              value.value = result.value;
                              break;
                            case enums_default222222.ApplicationTag.DATE:
                              result = decodeDateSafe222222(buffer, offset, lenValueType);
                              value.len += result.len;
                              value.value = result.value;
                              break;
                            case enums_default222222.ApplicationTag.TIME:
                              result = decodeBacnetTimeSafe222222(buffer, offset, lenValueType);
                              value.len += result.len;
                              value.value = result.value;
                              break;
                            case enums_default222222.ApplicationTag.OBJECTIDENTIFIER:
                              result = decodeObjectIdSafe222222(buffer, offset, lenValueType);
                              value.len += result.len;
                              value.value = { type: result.objectType, instance: result.instance };
                              break;
                            default:
                              break;
                          }
                          return value;
                        };
                        var bacappContextTagType222222 = (property, tagNumber) => {
                          let tag = 0;
                          switch (property) {
                            case enums_default222222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                            case enums_default222222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                            case enums_default222222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                              switch (tagNumber) {
                                case 0:
                                case 1:
                                  tag = enums_default222222.ApplicationTag.UNSIGNED_INTEGER;
                                  break;
                                case 2:
                                  tag = enums_default222222.ApplicationTag.REAL;
                                  break;
                                default:
                                  break;
                              }
                              break;
                            case enums_default222222.PropertyIdentifier.ACTION:
                              switch (tagNumber) {
                                case 0:
                                case 1:
                                  tag = enums_default222222.ApplicationTag.OBJECTIDENTIFIER;
                                  break;
                                case 2:
                                  tag = enums_default222222.ApplicationTag.ENUMERATED;
                                  break;
                                case 3:
                                case 5:
                                case 6:
                                  tag = enums_default222222.ApplicationTag.UNSIGNED_INTEGER;
                                  break;
                                case 7:
                                case 8:
                                  tag = enums_default222222.ApplicationTag.BOOLEAN;
                                  break;
                                default:
                                  break;
                              }
                              break;
                            case enums_default222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                              switch (tagNumber) {
                                case 0:
                                  tag = enums_default222222.ApplicationTag.OBJECTIDENTIFIER;
                                  break;
                                default:
                                  break;
                              }
                              break;
                            case enums_default222222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                              switch (tagNumber) {
                                case 1:
                                  tag = enums_default222222.ApplicationTag.OBJECTIDENTIFIER;
                                  break;
                                case 3:
                                  tag = enums_default222222.ApplicationTag.UNSIGNED_INTEGER;
                                  break;
                                default:
                                  break;
                              }
                              break;
                            case enums_default222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                              switch (tagNumber) {
                                case 0:
                                case 3:
                                  tag = enums_default222222.ApplicationTag.OBJECTIDENTIFIER;
                                  break;
                                case 1:
                                  tag = enums_default222222.ApplicationTag.ENUMERATED;
                                  break;
                                case 2:
                                  tag = enums_default222222.ApplicationTag.UNSIGNED_INTEGER;
                                  break;
                                default:
                                  break;
                              }
                              break;
                            case enums_default222222.PropertyIdentifier.SUBORDINATE_LIST:
                              switch (tagNumber) {
                                case 0:
                                case 1:
                                  tag = enums_default222222.ApplicationTag.OBJECTIDENTIFIER;
                                  break;
                                default:
                                  break;
                              }
                              break;
                            case enums_default222222.PropertyIdentifier.RECIPIENT_LIST:
                              switch (tagNumber) {
                                case 0:
                                  tag = enums_default222222.ApplicationTag.OBJECTIDENTIFIER;
                                  break;
                                default:
                                  break;
                              }
                              break;
                            case enums_default222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                              switch (tagNumber) {
                                case 0:
                                case 1:
                                  break;
                                case 2:
                                  tag = enums_default222222.ApplicationTag.BOOLEAN;
                                  break;
                                case 3:
                                  tag = enums_default222222.ApplicationTag.UNSIGNED_INTEGER;
                                  break;
                                case 4:
                                  tag = enums_default222222.ApplicationTag.REAL;
                                  break;
                                default:
                                  break;
                              }
                              break;
                            default:
                              break;
                          }
                          return tag;
                        };
                        var decodeDeviceObjPropertyRef222222 = (buffer, offset, NOTUSEDARG = 0) => {
                          let len = 0;
                          let arrayIndex = enums_default222222.ASN1_ARRAY_ALL;
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          let objectId = decodeObjectId222222(buffer, offset + len);
                          len += objectId.len;
                          let result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 1) {
                            return void 0;
                          }
                          let id = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += id.len;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          if (result.tagNumber === 2) {
                            len += result.len;
                            arrayIndex = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += arrayIndex.len;
                          }
                          if (decodeIsContextTag222222(buffer, offset + len, 3)) {
                            if (!isClosingTag222222(buffer[offset + len])) {
                              len++;
                              objectId = decodeObjectId222222(buffer, offset + len);
                              len += objectId.len;
                            }
                          }
                          return {
                            len,
                            value: {
                              objectId,
                              id
                            }
                          };
                        };
                        var decodeReadAccessSpecification222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let value = {};
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          let decodedValue = decodeObjectId222222(buffer, offset + len);
                          value.objectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          len += decodedValue.len;
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          len++;
                          const propertyIdAndArrayIndex = [];
                          while (apduLen - len > 1 && !decodeIsClosingTagNumber222222(buffer, offset + len, 1)) {
                            let propertyRef = {};
                            if (!isContextSpecific222222(buffer[offset + len])) {
                              return void 0;
                            }
                            let result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 0) {
                              return void 0;
                            }
                            if (len + result.value >= apduLen) {
                              return void 0;
                            }
                            decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                            propertyRef.id = decodedValue.value;
                            len += decodedValue.len;
                            propertyRef.index = enums_default222222.ASN1_ARRAY_ALL;
                            if (isContextSpecific222222(buffer[offset + len]) && !isClosingTag222222(buffer[offset + len])) {
                              const tmp = decodeTagNumberAndValue222222(buffer, offset + len);
                              if (tmp.tagNumber === 1) {
                                len += tmp.len;
                                if (len + tmp.value >= apduLen) {
                                  return void 0;
                                }
                                decodedValue = decodeUnsigned222222(buffer, offset + len, tmp.value);
                                propertyRef.index = decodedValue.value;
                                len += decodedValue.len;
                              }
                            }
                            propertyIdAndArrayIndex.push(propertyRef);
                          }
                          if (!decodeIsClosingTagNumber222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          len++;
                          value.properties = propertyIdAndArrayIndex;
                          return {
                            len,
                            value
                          };
                        };
                        var decodeCovSubscription222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let value = {};
                          let result;
                          let decodedValue;
                          value.recipient = {};
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          len++;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== enums_default222222.ApplicationTag.UNSIGNED_INTEGER) {
                            return void 0;
                          }
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.recipient.net = decodedValue.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== enums_default222222.ApplicationTag.OCTET_STRING) {
                            return void 0;
                          }
                          decodedValue = decodeOctetString222222(
                            buffer,
                            offset + len,
                            apduLen,
                            0,
                            result.value
                          );
                          len += decodedValue.len;
                          value.recipient.adr = decodedValue.value;
                          if (!decodeIsClosingTagNumber222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          len++;
                          if (!decodeIsClosingTagNumber222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 1) {
                            return void 0;
                          }
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.subscriptionProcessId = decodedValue.value;
                          if (!decodeIsClosingTagNumber222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          len++;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 0) {
                            return void 0;
                          }
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          value.monitoredObjectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 1) {
                            return void 0;
                          }
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.monitoredProperty = {};
                          value.monitoredProperty.id = decodedValue.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          if (result.tagNumber === 2) {
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.monitoredProperty.index = decodedValue.value;
                          } else {
                            value.monitoredProperty.index = enums_default222222.ASN1_ARRAY_ALL;
                          }
                          if (!decodeIsClosingTagNumber222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          len++;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 2) {
                            return void 0;
                          }
                          value.issueConfirmedNotifications = buffer[offset + len] > 0;
                          len++;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 3) {
                            return void 0;
                          }
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.timeRemaining = decodedValue.value;
                          if (len < apduLen && !isClosingTag222222(buffer[offset + len])) {
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 4) {
                              return void 0;
                            }
                            decodedValue = decodeReal222222(buffer, offset + len);
                            len += decodedValue.len;
                            value.covIncrement = decodedValue.value;
                          }
                          return {
                            len,
                            value
                          };
                        };
                        var decodeCalendarDate222222 = (buffer, offset) => {
                          return {
                            len: 4,
                            year: buffer[offset],
                            month: buffer[offset + 1],
                            day: buffer[offset + 2],
                            wday: buffer[offset + 3]
                          };
                        };
                        var decodeCalendarDateRange222222 = (buffer, offset) => {
                          let len = 1;
                          const startDate = decodeDate222222(buffer, offset + len);
                          len += startDate.len + 1;
                          const endDate = decodeDate222222(buffer, offset + len);
                          len += endDate.len + 1;
                          return {
                            len,
                            startDate,
                            endDate
                          };
                        };
                        var decodeCalendarWeekDay222222 = (buffer, offset) => {
                          return {
                            len: 3,
                            month: buffer[offset],
                            week: buffer[offset + 1],
                            wday: buffer[offset + 2]
                          };
                        };
                        var decodeCalendar222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          const entries = [];
                          let decodedValue;
                          while (len < apduLen) {
                            const result = decodeTagNumber222222(buffer, offset + len);
                            len += result.len;
                            switch (result.tagNumber) {
                              case 0:
                                decodedValue = decodeCalendarDate222222(buffer, offset + len);
                                len += decodedValue.len;
                                entries.push(decodedValue);
                                break;
                              case 1:
                                decodedValue = decodeCalendarDateRange222222(buffer, offset + len);
                                len += decodedValue.len;
                                entries.push(decodedValue);
                                break;
                              case 2:
                                decodedValue = decodeCalendarWeekDay222222(buffer, offset + len);
                                len += decodedValue.len;
                                entries.push(decodedValue);
                                break;
                              default:
                                return {
                                  len: len - 1,
                                  value: entries
                                };
                            }
                          }
                        };
                        var bacappDecodeContextApplicationData222222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                          let len = 0;
                          let result;
                          if (isContextSpecific222222(buffer[offset])) {
                            if (propertyId === enums_default222222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                              result = decodeReadAccessSpecification222222(buffer, offset, maxOffset);
                              if (!result) {
                                return void 0;
                              }
                              return {
                                type: enums_default222222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                                value: result.value,
                                len: result.len
                              };
                            } else if (propertyId === enums_default222222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                              result = decodeCovSubscription222222(buffer, offset, maxOffset);
                              if (!result) {
                                return void 0;
                              }
                              return {
                                type: enums_default222222.ApplicationTag.COV_SUBSCRIPTION,
                                value: result.value,
                                len: result.len
                              };
                            } else if (objectType === enums_default222222.ObjectType.GROUP && propertyId === enums_default222222.PropertyIdentifier.PRESENT_VALUE) {
                              result = decodeReadAccessResult222222(buffer, offset, maxOffset);
                              if (!result) {
                                return void 0;
                              }
                              return {
                                type: enums_default222222.ApplicationTag.READ_ACCESS_RESULT,
                                value: result.value,
                                len: result.len
                              };
                            } else if (propertyId === enums_default222222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default222222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default222222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                              result = decodeDeviceObjPropertyRef222222(buffer, offset, maxOffset);
                              if (!result) {
                                return void 0;
                              }
                              return {
                                type: enums_default222222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                                value: result.value,
                                len: result.len
                              };
                            } else if (propertyId === enums_default222222.PropertyIdentifier.DATE_LIST) {
                              result = decodeCalendar222222(buffer, offset, maxOffset);
                              if (!result) {
                                return void 0;
                              }
                              return {
                                type: enums_default222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                                value: result.value,
                                len: result.len
                              };
                            } else if (propertyId === enums_default222222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                              let subEvtResult;
                              let evtResult = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += 1;
                              if (evtResult.tagNumber === 0) {
                                subEvtResult = decodeBacnetTime222222(buffer, offset + 1);
                                return {
                                  type: enums_default222222.ApplicationTag.TIMESTAMP,
                                  value: subEvtResult.value,
                                  len: subEvtResult.len + 1
                                };
                              } else if (evtResult.tagNumber === 1) {
                                subEvtResult = decodeUnsigned222222(buffer, offset + len, evtResult.value);
                                return {
                                  type: enums_default222222.ApplicationTag.UNSIGNED_INTEGER,
                                  value: subEvtResult.value,
                                  len: subEvtResult.len + 1
                                };
                              } else if (evtResult.tagNumber === 2) {
                                subEvtResult = decodeBacnetDatetime222222(buffer, offset + len);
                                return {
                                  type: enums_default222222.ApplicationTag.TIMESTAMP,
                                  value: subEvtResult.value,
                                  len: subEvtResult.len + 2
                                };
                              } else {
                                return void 0;
                              }
                            }
                            const list = [];
                            let tagResult = decodeTagNumberAndValue222222(buffer, offset + len);
                            let multipleValues = isOpeningTag222222(buffer[offset + len]);
                            while (len + offset <= maxOffset && !isClosingTag222222(buffer[offset + len])) {
                              let subResult = decodeTagNumberAndValue222222(buffer, offset + len);
                              if (!subResult) {
                                return void 0;
                              }
                              if (subResult.value === 0) {
                                len += subResult.len;
                                result = bacappDecodeApplicationData222222(
                                  buffer,
                                  offset + len,
                                  maxOffset,
                                  enums_default222222.ASN1_MAX_OBJECT_TYPE,
                                  enums_default222222.ASN1_MAX_PROPERTY_ID
                                );
                                if (!result) {
                                  return void 0;
                                }
                                list.push(result);
                                len += result.len;
                              } else {
                                const overrideTagNumber = bacappContextTagType222222(
                                  propertyId,
                                  subResult.tagNumber
                                );
                                if (overrideTagNumber !== enums_default222222.ASN1_MAX_APPLICATION_TAG) {
                                  subResult.tagNumber = overrideTagNumber;
                                }
                                let bacappResult = bacappDecodeData222222(
                                  buffer,
                                  offset + len + subResult.len,
                                  maxOffset,
                                  subResult.tagNumber,
                                  subResult.value
                                );
                                if (!bacappResult) {
                                  return void 0;
                                }
                                if (bacappResult.len === subResult.value) {
                                  let resObj = {
                                    value: bacappResult.value,
                                    type: bacappResult.type
                                  };
                                  if (bacappResult.encoding !== void 0)
                                    resObj.encoding = bacappResult.encoding;
                                  list.push(resObj);
                                  len += subResult.len + subResult.value;
                                } else {
                                  list.push({
                                    value: buffer.slice(
                                      offset + len + subResult.len,
                                      offset + len + subResult.len + subResult.value
                                    ),
                                    type: enums_default222222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                                  });
                                  len += subResult.len + subResult.value;
                                }
                              }
                              if (multipleValues === false) {
                                return {
                                  len,
                                  value: list[0],
                                  type: enums_default222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                                };
                              }
                            }
                            if (len + offset > maxOffset) {
                              return void 0;
                            }
                            if (decodeIsClosingTagNumber222222(buffer, offset + len, tagResult.tagNumber)) {
                              len++;
                            }
                            return {
                              len,
                              value: list,
                              type: enums_default222222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                            };
                          }
                          return void 0;
                        };
                        var bacappEncodeTimestamp222222 = (buffer, value) => {
                          switch (value.type) {
                            case enums_default222222.TimeStamp.TIME:
                              encodeContextTime222222(buffer, 0, value.value);
                              break;
                            case enums_default222222.TimeStamp.SEQUENCE_NUMBER:
                              encodeContextUnsigned222222(buffer, 1, value.value);
                              break;
                            case enums_default222222.TimeStamp.DATETIME:
                              bacappEncodeContextDatetime222222(buffer, 2, value.value);
                              break;
                            default:
                              throw new Error("NOT_IMPLEMENTED");
                          }
                        };
                        var bacappEncodeContextTimestamp222222 = (buffer, tagNumber, value) => {
                          encodeOpeningTag222222(buffer, tagNumber);
                          bacappEncodeTimestamp222222(buffer, value);
                          encodeClosingTag222222(buffer, tagNumber);
                        };
                        var decodeContextCharacterString222222 = (buffer, offset, maxLength, tagNumber) => {
                          let len = 0;
                          if (!decodeIsContextTag222222(buffer, offset + len, tagNumber)) {
                            return void 0;
                          }
                          const result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          const decodedValue = multiCharsetCharacterstringDecode222222(
                            buffer,
                            offset + 1 + len,
                            maxLength,
                            buffer[offset + len],
                            result.value - 1
                          );
                          if (!decodedValue) {
                            return void 0;
                          }
                          len += result.value;
                          return {
                            len,
                            value: decodedValue.value,
                            encoding: decodedValue.encoding
                          };
                        };
                        var decodeIsContextTagWithLength222222 = (buffer, offset, tagNumber) => {
                          const result = decodeTagNumber222222(buffer, offset);
                          return {
                            len: result.len,
                            value: isContextSpecific222222(buffer[offset]) && result.tagNumber === tagNumber
                          };
                        };
                        var decodeContextObjectId222222 = (buffer, offset, tagNumber) => {
                          const result = decodeIsContextTagWithLength222222(buffer, offset, tagNumber);
                          if (!result.value) {
                            return void 0;
                          }
                          const decodedValue = decodeObjectId222222(buffer, offset + result.len);
                          decodedValue.len = decodedValue.len + result.len;
                          return decodedValue;
                        };
                        var encodeBacnetCharacterString222222 = (buffer, value, encoding) => {
                          encoding = encoding || enums_default222222.CharacterStringEncoding.UTF_8;
                          buffer.buffer[buffer.offset++] = encoding;
                          const bufEncoded = import_iconv_lite222222.default.encode(value, getEncodingType222222(encoding));
                          buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                        };
                        var encodeApplicationCharacterString222222 = (buffer, value, encoding) => {
                          const tmp = getBuffer222222();
                          encodeBacnetCharacterString222222(tmp, value, encoding);
                          encodeTag222222(buffer, enums_default222222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                          buffer.offset += tmp.offset;
                        };
                        var encodeContextCharacterString222222 = (buffer, tagNumber, value, encoding) => {
                          const tmp = getBuffer222222();
                          encodeBacnetCharacterString222222(tmp, value, encoding);
                          encodeTag222222(buffer, tagNumber, true, tmp.offset);
                          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                          buffer.offset += tmp.offset;
                        };
                        var encode3322222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                          encodeContextObjectId222222(buffer, 0, objectId.type, objectId.instance);
                          encodeContextEnumerated222222(buffer, 1, propertyId);
                          if (arrayIndex !== ASN1_ARRAY_ALL222222) {
                            encodeContextUnsigned222222(buffer, 2, arrayIndex);
                          }
                          encodeOpeningTag222222(buffer, 3);
                          values.forEach((value) => {
                            bacappEncodeApplicationData222222(buffer, value);
                          });
                          encodeClosingTag222222(buffer, 3);
                        };
                        var decode3322222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let value = {};
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          value.objectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.property = { id: decodedValue.value };
                          if (len < apduLen && decodeIsContextTag222222(buffer, offset + len, 2)) {
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.property.index = decodedValue.value;
                          } else {
                            value.property.index = ASN1_ARRAY_ALL222222;
                          }
                          const values = [];
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 3)) {
                            return void 0;
                          }
                          len++;
                          while (apduLen - len > 1) {
                            result = bacappDecodeApplicationData222222(
                              buffer,
                              offset + len,
                              apduLen + offset,
                              value.objectId.type,
                              value.property.id
                            );
                            if (!result) {
                              return void 0;
                            }
                            len += result.len;
                            delete result.len;
                            values.push(result);
                          }
                          value.values = values;
                          if (!decodeIsClosingTagNumber222222(buffer, offset + len, 3)) {
                            return void 0;
                          }
                          len++;
                          value.len = len;
                          return value;
                        };
                        var alarm_acknowledge_exports222222 = {};
                        __export222222(alarm_acknowledge_exports222222, {
                          decode: () => decode21022222,
                          encode: () => encode21022222
                        });
                        var encode21022222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                          encodeContextUnsigned222222(buffer, 0, ackProcessId);
                          encodeContextObjectId222222(
                            buffer,
                            1,
                            eventObjectId.type,
                            eventObjectId.instance
                          );
                          encodeContextEnumerated222222(buffer, 2, eventStateAcknowledged);
                          bacappEncodeContextTimestamp222222(buffer, 3, eventTimeStamp);
                          encodeContextCharacterString222222(buffer, 4, ackSource);
                          bacappEncodeContextTimestamp222222(buffer, 5, ackTimeStamp);
                        };
                        var decode21022222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let value = {};
                          let result;
                          let decodedValue;
                          let date;
                          let time;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.acknowledgedProcessId = decodedValue.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          value.eventObjectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.eventStateAcknowledged = decodedValue.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber === 0) {
                            decodedValue = decodeBacnetTime222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.eventTimeStamp = decodedValue.value;
                          } else if (result.tagNumber === 1) {
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.eventTimeStamp = decodedValue.value;
                          } else if (result.tagNumber === 2) {
                            date = decodeApplicationDate222222(buffer, offset + len);
                            len += date.len;
                            date = date.value.value;
                            time = decodeApplicationTime222222(buffer, offset + len);
                            len += time.len;
                            time = time.value.value;
                            value.eventTimeStamp = new Date(
                              date.getFullYear(),
                              date.getMonth(),
                              date.getDate(),
                              time.getHours(),
                              time.getMinutes(),
                              time.getSeconds(),
                              time.getMilliseconds()
                            );
                            len++;
                          }
                          len++;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeCharacterString222222(
                            buffer,
                            offset + len,
                            apduLen - (offset + len),
                            result.value
                          );
                          value.acknowledgeSource = decodedValue.value;
                          len += decodedValue.len;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber === 0) {
                            decodedValue = decodeBacnetTime222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.acknowledgeTimeStamp = decodedValue.value;
                          } else if (result.tagNumber === 1) {
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.acknowledgeTimeStamp = decodedValue.value;
                          } else if (result.tagNumber === 2) {
                            date = decodeApplicationDate222222(buffer, offset + len);
                            len += date.len;
                            date = date.value.value;
                            time = decodeApplicationTime222222(buffer, offset + len);
                            len += time.len;
                            time = time.value.value;
                            value.acknowledgeTimeStamp = new Date(
                              date.getFullYear(),
                              date.getMonth(),
                              date.getDate(),
                              time.getHours(),
                              time.getMinutes(),
                              time.getSeconds(),
                              time.getMilliseconds()
                            );
                            len++;
                          }
                          len++;
                          value.len = len;
                          return value;
                        };
                        var alarm_summary_exports222222 = {};
                        __export222222(alarm_summary_exports222222, {
                          decode: () => decode3422222,
                          encode: () => encode3422222
                        });
                        var encode3422222 = (buffer, alarms) => {
                          alarms.forEach((alarm) => {
                            encodeContextObjectId222222(
                              buffer,
                              12,
                              alarm.objectId.type,
                              alarm.objectId.instance
                            );
                            encodeContextEnumerated222222(buffer, 9, alarm.alarmState);
                            encodeContextBitstring222222(buffer, 8, alarm.acknowledgedTransitions);
                          });
                        };
                        var decode3422222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          const alarms = [];
                          while (apduLen - 3 - len > 0) {
                            let value = {};
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeObjectId222222(buffer, offset + len);
                            len += decodedValue.len;
                            value.objectId = {
                              type: decodedValue.objectType,
                              instance: decodedValue.instance
                            };
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.alarmState = decodedValue.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeBitstring222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.acknowledgedTransitions = decodedValue.value;
                            alarms.push(value);
                          }
                          return {
                            len,
                            alarms
                          };
                        };
                        var atomic_read_file_exports222222 = {};
                        __export222222(atomic_read_file_exports222222, {
                          decode: () => decode4222222,
                          decodeAcknowledge: () => decodeAcknowledge822222,
                          encode: () => encode4222222,
                          encodeAcknowledge: () => encodeAcknowledge922222
                        });
                        var encode4222222 = (buffer, isStream, objectId, position, count) => {
                          encodeApplicationObjectId222222(buffer, objectId.type, objectId.instance);
                          if (isStream) {
                            encodeOpeningTag222222(buffer, 0);
                            encodeApplicationSigned222222(buffer, position);
                            encodeApplicationUnsigned222222(buffer, count);
                            encodeClosingTag222222(buffer, 0);
                          } else {
                            encodeOpeningTag222222(buffer, 1);
                            encodeApplicationSigned222222(buffer, position);
                            encodeApplicationUnsigned222222(buffer, count);
                            encodeClosingTag222222(buffer, 1);
                          }
                        };
                        var decode4222222 = (buffer, offset) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let isStream = true;
                          let objectId = {};
                          let position = -1;
                          let count = 0;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 12) {
                            return void 0;
                          }
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                          if (decodeIsOpeningTagNumber222222(buffer, offset + len, 0)) {
                            isStream = true;
                            len++;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 3) {
                              return void 0;
                            }
                            decodedValue = decodeSigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            position = decodedValue.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 2) {
                              return void 0;
                            }
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            count = decodedValue.value;
                            if (!decodeIsClosingTagNumber222222(buffer, offset + len, 0)) {
                              return void 0;
                            }
                            len++;
                          } else if (decodeIsOpeningTagNumber222222(buffer, offset + len, 1)) {
                            isStream = false;
                            len++;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 3) {
                              return void 0;
                            }
                            decodedValue = decodeSigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            position = decodedValue.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 2) {
                              return void 0;
                            }
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            count = decodedValue.value;
                            if (!decodeIsClosingTagNumber222222(buffer, offset + len, 1)) {
                              return void 0;
                            }
                            len++;
                          } else {
                            return void 0;
                          }
                          return {
                            len,
                            isStream,
                            objectId,
                            position,
                            count
                          };
                        };
                        var encodeAcknowledge922222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                          encodeApplicationBoolean222222(buffer, endOfFile);
                          if (isStream) {
                            encodeOpeningTag222222(buffer, 0);
                            encodeApplicationSigned222222(buffer, position);
                            encodeApplicationOctetString222222(buffer, blocks[0], 0, counts[0]);
                            encodeClosingTag222222(buffer, 0);
                          } else {
                            encodeOpeningTag222222(buffer, 1);
                            encodeApplicationSigned222222(buffer, position);
                            encodeApplicationUnsigned222222(buffer, blockCount);
                            for (let i = 0; i < blockCount; i++) {
                              encodeApplicationOctetString222222(buffer, blocks[i], 0, counts[i]);
                            }
                            encodeClosingTag222222(buffer, 1);
                          }
                        };
                        var decodeAcknowledge822222 = (buffer, offset, length = 0) => {
                          let len = length;
                          let result;
                          let decodedValue;
                          let endOfFile;
                          let isStream;
                          let position;
                          let targetBuffer;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 1) {
                            return void 0;
                          }
                          endOfFile = result.value > 0;
                          if (decodeIsOpeningTagNumber222222(buffer, offset + len, 0)) {
                            isStream = true;
                            len++;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 3) {
                              return void 0;
                            }
                            decodedValue = decodeSigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            position = decodedValue.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 6) {
                              return void 0;
                            }
                            targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                            len += result.value;
                            if (!decodeIsClosingTagNumber222222(buffer, offset + len, 0)) {
                              return void 0;
                            }
                            len++;
                          } else if (decodeIsOpeningTagNumber222222(buffer, offset + len, 1)) {
                            isStream = false;
                            throw new Error("NotImplemented");
                          } else {
                            return void 0;
                          }
                          return {
                            len,
                            endOfFile,
                            isStream,
                            position,
                            buffer: targetBuffer
                          };
                        };
                        var atomic_write_file_exports222222 = {};
                        __export222222(atomic_write_file_exports222222, {
                          decode: () => decode5222222,
                          decodeAcknowledge: () => decodeAcknowledge2222222,
                          encode: () => encode5222222,
                          encodeAcknowledge: () => encodeAcknowledge2222222
                        });
                        var encode5222222 = (buffer, isStream, objectId, position, blocks) => {
                          encodeApplicationObjectId222222(buffer, objectId.type, objectId.instance);
                          if (isStream) {
                            encodeOpeningTag222222(buffer, 0);
                            encodeApplicationSigned222222(buffer, position);
                            encodeApplicationOctetString222222(buffer, blocks[0], 0, blocks[0].length);
                            encodeClosingTag222222(buffer, 0);
                          } else {
                            encodeOpeningTag222222(buffer, 1);
                            encodeApplicationSigned222222(buffer, position);
                            encodeApplicationUnsigned222222(buffer, blocks.length);
                            for (let i = 0; i < blocks.length; i++) {
                              encodeApplicationOctetString222222(
                                buffer,
                                blocks[i],
                                0,
                                blocks[i].length
                              );
                            }
                            encodeClosingTag222222(buffer, 1);
                          }
                        };
                        var decode5222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let isStream;
                          let position;
                          let blocks = [];
                          let blockCount;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 12) {
                            return void 0;
                          }
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          let objectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          if (decodeIsOpeningTagNumber222222(buffer, offset + len, 0)) {
                            isStream = true;
                            len++;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 3) {
                              return void 0;
                            }
                            decodedValue = decodeSigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            position = decodedValue.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 6) {
                              return void 0;
                            }
                            decodedValue = decodeOctetString222222(
                              buffer,
                              offset + len,
                              apduLen,
                              0,
                              result.value
                            );
                            len += decodedValue.len;
                            blocks.push(decodedValue.value);
                            if (!decodeIsClosingTagNumber222222(buffer, offset + len, 0)) {
                              return void 0;
                            }
                            len++;
                          } else if (decodeIsOpeningTagNumber222222(buffer, offset + len, 1)) {
                            isStream = false;
                            len++;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 3) {
                              return void 0;
                            }
                            decodedValue = decodeSigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            position = decodedValue.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 2) {
                              return void 0;
                            }
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            blockCount = decodedValue.value;
                            for (let i = 0; i < blockCount; i++) {
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber !== 6) {
                                return void 0;
                              }
                              decodedValue = decodeOctetString222222(
                                buffer,
                                offset + len,
                                apduLen,
                                0,
                                result.value
                              );
                              len += decodedValue.len;
                              blocks.push(decodedValue.value);
                            }
                            if (!decodeIsClosingTagNumber222222(buffer, offset + len, 1)) {
                              return void 0;
                            }
                            len++;
                          } else {
                            return void 0;
                          }
                          return {
                            len,
                            isStream,
                            objectId,
                            position,
                            blocks
                          };
                        };
                        var encodeAcknowledge2222222 = (buffer, isStream, position) => {
                          if (isStream) {
                            encodeContextSigned222222(buffer, 0, position);
                          } else {
                            encodeContextSigned222222(buffer, 1, position);
                          }
                        };
                        var decodeAcknowledge2222222 = (buffer, offset, length = 0) => {
                          let len = length;
                          let isStream = false;
                          let position = 0;
                          let decodedValue;
                          const result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber === 0) {
                            isStream = true;
                          } else if (result.tagNumber === 1) {
                            isStream = false;
                          } else {
                            return void 0;
                          }
                          decodedValue = decodeSigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          position = decodedValue.value;
                          return {
                            len,
                            isStream,
                            position
                          };
                        };
                        var cov_notify_exports222222 = {};
                        __export222222(cov_notify_exports222222, {
                          decode: () => decode6222222,
                          encode: () => encode6222222
                        });
                        var encode6222222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                          encodeContextUnsigned222222(buffer, 0, subscriberProcessId);
                          encodeContextObjectId222222(
                            buffer,
                            1,
                            8,
                            initiatingDeviceId
                          );
                          encodeContextObjectId222222(
                            buffer,
                            2,
                            monitoredObjectId.type,
                            monitoredObjectId.instance
                          );
                          encodeContextUnsigned222222(buffer, 3, timeRemaining);
                          encodeOpeningTag222222(buffer, 4);
                          values.forEach((value) => {
                            encodeContextEnumerated222222(buffer, 0, value.property.id);
                            if (value.property.index === ASN1_ARRAY_ALL222222) {
                              encodeContextUnsigned222222(buffer, 1, value.property.index);
                            }
                            encodeOpeningTag222222(buffer, 2);
                            value.value.forEach((v) => {
                              bacappEncodeApplicationData222222(buffer, v);
                            });
                            encodeClosingTag222222(buffer, 2);
                            if (value.priority === ASN1_NO_PRIORITY222222) {
                              encodeContextUnsigned222222(buffer, 3, value.priority);
                            }
                          });
                          encodeClosingTag222222(buffer, 4);
                        };
                        var decode6222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          const subscriberProcessId = decodedValue.value;
                          if (!decodeIsContextTag222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          const initiatingDeviceId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          if (!decodeIsContextTag222222(buffer, offset + len, 2)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          const monitoredObjectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          if (!decodeIsContextTag222222(buffer, offset + len, 3)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          const timeRemaining = decodedValue.value;
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 4)) {
                            return void 0;
                          }
                          len++;
                          const values = [];
                          while (apduLen - len > 1 && !decodeIsClosingTagNumber222222(buffer, offset + len, 4)) {
                            let newEntry = {};
                            newEntry.property = {};
                            if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                              return void 0;
                            }
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            newEntry.property.id = decodedValue.value;
                            if (decodeIsContextTag222222(buffer, offset + len, 1)) {
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              newEntry.property.index = decodedValue.value;
                            } else {
                              newEntry.property.index = ASN1_ARRAY_ALL222222;
                            }
                            if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 2)) {
                              return void 0;
                            }
                            len++;
                            const properties = [];
                            while (apduLen - len > 1 && !decodeIsClosingTagNumber222222(buffer, offset + len, 2)) {
                              decodedValue = bacappDecodeApplicationData222222(
                                buffer,
                                offset + len,
                                apduLen + offset,
                                monitoredObjectId.type,
                                newEntry.property.id
                              );
                              if (!decodedValue) {
                                return void 0;
                              }
                              len += decodedValue.len;
                              delete decodedValue.len;
                              properties.push(decodedValue);
                            }
                            newEntry.value = properties;
                            len++;
                            if (decodeIsContextTag222222(buffer, offset + len, 3)) {
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              newEntry.priority = decodedValue.value;
                            } else {
                              newEntry.priority = ASN1_NO_PRIORITY222222;
                            }
                            values.push(newEntry);
                          }
                          return {
                            len,
                            subscriberProcessId,
                            initiatingDeviceId,
                            monitoredObjectId,
                            timeRemaining,
                            values
                          };
                        };
                        var create_object_exports222222 = {};
                        __export222222(create_object_exports222222, {
                          decode: () => decode7222222,
                          encode: () => encode7222222,
                          encodeAcknowledge: () => encodeAcknowledge3222222
                        });
                        var encode7222222 = (buffer, objectId, values) => {
                          encodeOpeningTag222222(buffer, 0);
                          encodeContextObjectId222222(buffer, 1, objectId.type, objectId.instance);
                          encodeClosingTag222222(buffer, 0);
                          encodeOpeningTag222222(buffer, 1);
                          values.forEach((propertyValue) => {
                            encodeContextEnumerated222222(buffer, 0, propertyValue.property.id);
                            if (propertyValue.property.index !== ASN1_ARRAY_ALL222222) {
                              encodeContextUnsigned222222(buffer, 1, propertyValue.property.index);
                            }
                            encodeOpeningTag222222(buffer, 2);
                            propertyValue.value.forEach((value) => {
                              bacappEncodeApplicationData222222(buffer, value);
                            });
                            encodeClosingTag222222(buffer, 2);
                            if (propertyValue.priority !== ASN1_NO_PRIORITY222222) {
                              encodeContextUnsigned222222(buffer, 3, propertyValue.priority);
                            }
                          });
                          encodeClosingTag222222(buffer, 1);
                        };
                        var decode7222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let objectId;
                          const valueList = [];
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber === 0 && apduLen > len) {
                            apduLen -= len;
                            if (apduLen < 4) {
                              return void 0;
                            }
                            decodedValue = decodeContextObjectId222222(buffer, offset + len, 1);
                            len += decodedValue.len;
                            objectId = {
                              type: decodedValue.objectType,
                              instance: decodedValue.instance
                            };
                          } else {
                            return void 0;
                          }
                          if (decodeIsClosingTag222222(buffer, offset + len)) {
                            len++;
                          }
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          len++;
                          while (apduLen - len > 1) {
                            let newEntry = {};
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 0) {
                              return void 0;
                            }
                            decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            let propertyId = decodedValue.value;
                            let arraIndex = ASN1_ARRAY_ALL222222;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber === 1) {
                              decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              arraIndex += decodedValue.value;
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                            }
                            newEntry.property = { id: propertyId, index: arraIndex };
                            if (result.tagNumber === 2 && decodeIsOpeningTag222222(buffer, offset + len - 1)) {
                              const values = [];
                              while (!decodeIsClosingTag222222(buffer, offset + len)) {
                                decodedValue = bacappDecodeApplicationData222222(
                                  buffer,
                                  offset + len,
                                  apduLen + offset,
                                  objectId.type,
                                  propertyId
                                );
                                if (!decodedValue) {
                                  return void 0;
                                }
                                len += decodedValue.len;
                                delete decodedValue.len;
                                values.push(decodedValue);
                              }
                              len++;
                              newEntry.value = values;
                            } else {
                              return void 0;
                            }
                            valueList.push(newEntry);
                          }
                          if (!decodeIsClosingTagNumber222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          len++;
                          return {
                            len,
                            objectId,
                            values: valueList
                          };
                        };
                        var encodeAcknowledge3222222 = (buffer, objectId) => {
                          encodeApplicationObjectId222222(buffer, objectId.type, objectId.instance);
                        };
                        var delete_object_exports222222 = {};
                        __export222222(delete_object_exports222222, {
                          decode: () => decode8222222,
                          encode: () => encode8222222
                        });
                        var decode8222222 = (buffer, offset, apduLen) => {
                          const result = decodeTagNumberAndValue222222(buffer, offset);
                          if (result.tagNumber !== 12) {
                            return void 0;
                          }
                          let len = 1;
                          const value = decodeObjectId222222(buffer, offset + len);
                          len += value.len;
                          if (len !== apduLen) {
                            return void 0;
                          }
                          value.len = len;
                          return value;
                        };
                        var encode8222222 = (buffer, objectId) => {
                          encodeApplicationObjectId222222(buffer, objectId.type, objectId.instance);
                        };
                        var device_communication_control_exports222222 = {};
                        __export222222(device_communication_control_exports222222, {
                          decode: () => decode9222222,
                          encode: () => encode9222222
                        });
                        var encode9222222 = (buffer, timeDuration, enableDisable, password) => {
                          if (timeDuration > 0) {
                            encodeContextUnsigned222222(buffer, 0, timeDuration);
                          }
                          encodeContextEnumerated222222(buffer, 1, enableDisable);
                          if (password && password !== "") {
                            encodeContextCharacterString222222(buffer, 2, password);
                          }
                        };
                        var decode9222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let value = {};
                          let decodedValue;
                          let result;
                          if (decodeIsContextTag222222(buffer, offset + len, 0)) {
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            value.timeDuration = decodedValue.value;
                            len += decodedValue.len;
                          }
                          if (!decodeIsContextTag222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          value.enableDisable = decodedValue.value;
                          len += decodedValue.len;
                          if (len < apduLen) {
                            if (!decodeIsContextTag222222(buffer, offset + len, 2)) {
                              return void 0;
                            }
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeCharacterString222222(
                              buffer,
                              offset + len,
                              apduLen - (offset + len),
                              result.value
                            );
                            value.password = decodedValue.value;
                            len += decodedValue.len;
                          }
                          value.len = len;
                          return value;
                        };
                        var error_exports222222 = {};
                        __export222222(error_exports222222, {
                          buildMessage: () => buildMessage222222,
                          decode: () => decode10222222,
                          encode: () => encode10222222
                        });
                        var encode10222222 = (buffer, errorClass, errorCode) => {
                          encodeApplicationEnumerated222222(buffer, errorClass);
                          encodeApplicationEnumerated222222(buffer, errorCode);
                        };
                        var decode10222222 = (buffer, offset) => {
                          const orgOffset = offset;
                          let result;
                          result = decodeTagNumberAndValue222222(buffer, offset);
                          offset += result.len;
                          const errorClass = decodeEnumerated222222(buffer, offset, result.value);
                          offset += errorClass.len;
                          result = decodeTagNumberAndValue222222(buffer, offset);
                          offset += result.len;
                          const errorCode = decodeEnumerated222222(buffer, offset, result.value);
                          offset += errorClass.len;
                          return {
                            len: offset - orgOffset,
                            class: errorClass.value,
                            code: errorCode.value
                          };
                        };
                        var buildMessage222222 = function(result) {
                          return "BacnetError Class: " + ErrorClassName222222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName222222[result.code] + " (" + result.code + ")";
                        };
                        var event_information_exports222222 = {};
                        __export222222(event_information_exports222222, {
                          decode: () => decode11222222,
                          encode: () => encode11222222
                        });
                        var encode11222222 = (buffer, events, moreEvents) => {
                          encodeOpeningTag222222(buffer, 0);
                          events.forEach((event) => {
                            encodeContextObjectId222222(
                              buffer,
                              0,
                              event.objectId.type,
                              event.objectId.instance
                            );
                            encodeContextEnumerated222222(buffer, 1, event.eventState);
                            encodeContextBitstring222222(buffer, 2, event.acknowledgedTransitions);
                            encodeOpeningTag222222(buffer, 3);
                            for (let i = 0; i < 3; i++) {
                              encodeApplicationDate222222(buffer, event.eventTimeStamps[i]);
                              encodeApplicationTime222222(buffer, event.eventTimeStamps[i]);
                            }
                            encodeClosingTag222222(buffer, 3);
                            encodeContextEnumerated222222(buffer, 4, event.notifyType);
                            encodeContextBitstring222222(buffer, 5, event.eventEnable);
                            encodeOpeningTag222222(buffer, 6);
                            for (let i = 0; i < 3; i++) {
                              encodeApplicationUnsigned222222(buffer, event.eventPriorities[i]);
                            }
                            encodeClosingTag222222(buffer, 6);
                          });
                          encodeClosingTag222222(buffer, 0);
                          encodeContextBoolean222222(buffer, 1, moreEvents);
                        };
                        var decode11222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          len++;
                          const alarms = [];
                          let moreEvents;
                          while (apduLen - 3 - len > 0) {
                            let value = {};
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeObjectId222222(buffer, offset + len);
                            len += decodedValue.len;
                            value.objectId = {
                              type: decodedValue.objectType,
                              instance: decodedValue.instance
                            };
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.eventState = decodedValue.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeBitstring222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.acknowledgedTransitions = decodedValue.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            value.eventTimeStamps = [];
                            for (let i = 0; i < 3; i++) {
                              if (result.tagNumber !== 0) {
                                decodedValue = decodeApplicationDate222222(buffer, offset + len);
                                len += decodedValue.len;
                                const date = decodedValue.value.value;
                                decodedValue = decodeApplicationTime222222(buffer, offset + len);
                                len += decodedValue.len;
                                const time = decodedValue.value.value;
                                value.eventTimeStamps[i] = new Date(
                                  date.getFullYear(),
                                  date.getMonth(),
                                  date.getDate(),
                                  time.getHours(),
                                  time.getMinutes(),
                                  time.getSeconds(),
                                  time.getMilliseconds()
                                );
                              } else {
                                len += result.value;
                              }
                            }
                            len++;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.notifyType = decodedValue.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeBitstring222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.eventEnable = decodedValue.value;
                            len++;
                            value.eventPriorities = [];
                            for (let i = 0; i < 3; i++) {
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.eventPriorities[i] = decodedValue.value;
                            }
                            len++;
                            alarms.push(value);
                          }
                          moreEvents = buffer[apduLen - 1] === 1;
                          return {
                            len,
                            alarms,
                            moreEvents
                          };
                        };
                        var event_notify_data_exports222222 = {};
                        __export222222(event_notify_data_exports222222, {
                          decode: () => decode12222222,
                          encode: () => encode12222222
                        });
                        var encode12222222 = (buffer, data) => {
                          encodeContextUnsigned222222(buffer, 0, data.processId);
                          encodeContextObjectId222222(
                            buffer,
                            1,
                            data.initiatingObjectId.type,
                            data.initiatingObjectId.instance
                          );
                          encodeContextObjectId222222(
                            buffer,
                            2,
                            data.eventObjectId.type,
                            data.eventObjectId.instance
                          );
                          bacappEncodeContextTimestamp222222(buffer, 3, data.timeStamp);
                          encodeContextUnsigned222222(buffer, 4, data.notificationClass);
                          encodeContextUnsigned222222(buffer, 5, data.priority);
                          encodeContextEnumerated222222(buffer, 6, data.eventType);
                          if (data.messageText && data.messageText !== "") {
                            encodeContextCharacterString222222(buffer, 7, data.messageText);
                          }
                          encodeContextEnumerated222222(buffer, 8, data.notifyType);
                          switch (data.notifyType) {
                            case 0:
                            case 1:
                              encodeContextBoolean222222(buffer, 9, data.ackRequired);
                              encodeContextEnumerated222222(buffer, 10, data.fromState);
                              break;
                            default:
                              break;
                          }
                          encodeContextEnumerated222222(buffer, 11, data.toState);
                          switch (data.notifyType) {
                            case 0:
                            case 1:
                              encodeOpeningTag222222(buffer, 12);
                              switch (data.eventType) {
                                case 0:
                                  encodeOpeningTag222222(buffer, 0);
                                  encodeContextBitstring222222(
                                    buffer,
                                    0,
                                    data.changeOfBitstringReferencedBitString
                                  );
                                  encodeContextBitstring222222(
                                    buffer,
                                    1,
                                    data.changeOfBitstringStatusFlags
                                  );
                                  encodeClosingTag222222(buffer, 0);
                                  break;
                                case 1:
                                  encodeOpeningTag222222(buffer, 1);
                                  encodeOpeningTag222222(buffer, 0);
                                  bacappEncodePropertyState222222(buffer, data.changeOfStateNewState);
                                  encodeClosingTag222222(buffer, 0);
                                  encodeContextBitstring222222(
                                    buffer,
                                    1,
                                    data.changeOfStateStatusFlags
                                  );
                                  encodeClosingTag222222(buffer, 1);
                                  break;
                                case 2:
                                  encodeOpeningTag222222(buffer, 2);
                                  encodeOpeningTag222222(buffer, 0);
                                  switch (data.changeOfValueTag) {
                                    case 0:
                                      encodeContextReal222222(
                                        buffer,
                                        1,
                                        data.changeOfValueChangeValue
                                      );
                                      break;
                                    case 1:
                                      encodeContextBitstring222222(
                                        buffer,
                                        0,
                                        data.changeOfValueChangedBits
                                      );
                                      break;
                                    default:
                                      throw new Error("NotImplemented");
                                  }
                                  encodeClosingTag222222(buffer, 0);
                                  encodeContextBitstring222222(
                                    buffer,
                                    1,
                                    data.changeOfValueStatusFlags
                                  );
                                  encodeClosingTag222222(buffer, 2);
                                  break;
                                case 4:
                                  encodeOpeningTag222222(buffer, 4);
                                  encodeContextReal222222(buffer, 0, data.floatingLimitReferenceValue);
                                  encodeContextBitstring222222(
                                    buffer,
                                    1,
                                    data.floatingLimitStatusFlags
                                  );
                                  encodeContextReal222222(buffer, 2, data.floatingLimitSetPointValue);
                                  encodeContextReal222222(buffer, 3, data.floatingLimitErrorLimit);
                                  encodeClosingTag222222(buffer, 4);
                                  break;
                                case 5:
                                  encodeOpeningTag222222(buffer, 5);
                                  encodeContextReal222222(buffer, 0, data.outOfRangeExceedingValue);
                                  encodeContextBitstring222222(buffer, 1, data.outOfRangeStatusFlags);
                                  encodeContextReal222222(buffer, 2, data.outOfRangeDeadband);
                                  encodeContextReal222222(buffer, 3, data.outOfRangeExceededLimit);
                                  encodeClosingTag222222(buffer, 5);
                                  break;
                                case 8:
                                  encodeOpeningTag222222(buffer, 8);
                                  encodeContextEnumerated222222(
                                    buffer,
                                    0,
                                    data.changeOfLifeSafetyNewState
                                  );
                                  encodeContextEnumerated222222(
                                    buffer,
                                    1,
                                    data.changeOfLifeSafetyNewMode
                                  );
                                  encodeContextBitstring222222(
                                    buffer,
                                    2,
                                    data.changeOfLifeSafetyStatusFlags
                                  );
                                  encodeContextEnumerated222222(
                                    buffer,
                                    3,
                                    data.changeOfLifeSafetyOperationExpected
                                  );
                                  encodeClosingTag222222(buffer, 8);
                                  break;
                                case 10:
                                  encodeOpeningTag222222(buffer, 10);
                                  bacappEncodeContextDeviceObjPropertyRef222222(
                                    buffer,
                                    0,
                                    data.bufferReadyBufferProperty
                                  );
                                  encodeContextUnsigned222222(
                                    buffer,
                                    1,
                                    data.bufferReadyPreviousNotification
                                  );
                                  encodeContextUnsigned222222(
                                    buffer,
                                    2,
                                    data.bufferReadyCurrentNotification
                                  );
                                  encodeClosingTag222222(buffer, 10);
                                  break;
                                case 11:
                                  encodeOpeningTag222222(buffer, 11);
                                  encodeContextUnsigned222222(
                                    buffer,
                                    0,
                                    data.unsignedRangeExceedingValue
                                  );
                                  encodeContextBitstring222222(
                                    buffer,
                                    1,
                                    data.unsignedRangeStatusFlags
                                  );
                                  encodeContextUnsigned222222(
                                    buffer,
                                    2,
                                    data.unsignedRangeExceededLimit
                                  );
                                  encodeClosingTag222222(buffer, 11);
                                  break;
                                case 9:
                                case 3:
                                  throw new Error("NotImplemented");
                                default:
                                  throw new Error("NotImplemented");
                              }
                              encodeClosingTag222222(buffer, 12);
                              break;
                            case 2:
                              throw new Error("NotImplemented");
                            default:
                              break;
                          }
                        };
                        var decode12222222 = (buffer, offset) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let eventData = {};
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          eventData.processId = decodedValue.value;
                          if (!decodeIsContextTag222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          eventData.initiatingObjectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          if (!decodeIsContextTag222222(buffer, offset + len, 2)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          eventData.eventObjectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          if (!decodeIsContextTag222222(buffer, offset + len, 3)) {
                            return void 0;
                          }
                          len += 2;
                          decodedValue = decodeApplicationDate222222(buffer, offset + len);
                          len += decodedValue.len;
                          const date = decodedValue.value.value;
                          decodedValue = decodeApplicationTime222222(buffer, offset + len);
                          len += decodedValue.len;
                          const time = decodedValue.value.value;
                          eventData.timeStamp = new Date(
                            date.getFullYear(),
                            date.getMonth(),
                            date.getDate(),
                            time.getHours(),
                            time.getMinutes(),
                            time.getSeconds(),
                            time.getMilliseconds()
                          );
                          len += 2;
                          if (!decodeIsContextTag222222(buffer, offset + len, 4)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          eventData.notificationClass = decodedValue.value;
                          if (!decodeIsContextTag222222(buffer, offset + len, 5)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          eventData.priority = decodedValue.value;
                          if (eventData.priority > 255) {
                            return void 0;
                          }
                          if (!decodeIsContextTag222222(buffer, offset + len, 6)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          eventData.eventType = decodedValue.value;
                          if (decodeIsContextTag222222(buffer, offset + len, 7)) {
                            decodedValue = decodeContextCharacterString222222(
                              buffer,
                              offset + len,
                              2e4,
                              7
                            );
                            len += decodedValue.len;
                            eventData.messageText = decodedValue.value;
                          }
                          if (!decodeIsContextTag222222(buffer, offset + len, 8)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          eventData.notifyType = decodedValue.value;
                          switch (eventData.notifyType) {
                            case 0:
                            case 1:
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned222222(buffer, offset + len, 1);
                              len += decodedValue.len;
                              eventData.ackRequired = decodedValue.value > 0;
                              if (!decodeIsContextTag222222(buffer, offset + len, 10)) {
                                return void 0;
                              }
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeEnumerated222222(
                                buffer,
                                offset + len,
                                result.value
                              );
                              len += decodedValue.len;
                              eventData.fromState = decodedValue.value;
                              break;
                            default:
                              break;
                          }
                          if (!decodeIsContextTag222222(buffer, offset + len, 11)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          eventData.toState = decodedValue.value;
                          eventData.len = len;
                          return eventData;
                        };
                        var get_enrollment_summary_exports222222 = {};
                        __export222222(get_enrollment_summary_exports222222, {
                          decode: () => decode13222222,
                          decodeAcknowledge: () => decodeAcknowledge3222222,
                          encode: () => encode13222222,
                          encodeAcknowledge: () => encodeAcknowledge4222222
                        });
                        var encode13222222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                          encodeContextEnumerated222222(buffer, 0, acknowledgmentFilter);
                          if (enrollmentFilter) {
                            encodeOpeningTag222222(buffer, 1);
                            encodeOpeningTag222222(buffer, 0);
                            encodeContextObjectId222222(
                              buffer,
                              0,
                              enrollmentFilter.objectId.type,
                              enrollmentFilter.objectId.instance
                            );
                            encodeClosingTag222222(buffer, 0);
                            encodeContextUnsigned222222(buffer, 1, enrollmentFilter.processId);
                            encodeClosingTag222222(buffer, 1);
                          }
                          if (eventStateFilter) {
                            encodeOpeningTag222222(buffer, 2);
                            encodeContextEnumerated222222(buffer, 0, eventStateFilter);
                            encodeClosingTag222222(buffer, 2);
                          }
                          if (eventTypeFilter) {
                            encodeOpeningTag222222(buffer, 3);
                            encodeContextEnumerated222222(buffer, 0, eventTypeFilter);
                            encodeClosingTag222222(buffer, 3);
                          }
                          if (priorityFilter) {
                            encodeOpeningTag222222(buffer, 4);
                            encodeContextUnsigned222222(buffer, 0, priorityFilter.min);
                            encodeContextUnsigned222222(buffer, 1, priorityFilter.max);
                            encodeClosingTag222222(buffer, 4);
                          }
                          if (notificationClassFilter) {
                            encodeOpeningTag222222(buffer, 5);
                            encodeContextUnsigned222222(buffer, 0, notificationClassFilter);
                            encodeClosingTag222222(buffer, 5);
                          }
                        };
                        var decode13222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let value = {};
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.acknowledgmentFilter = decodedValue.value;
                          if (decodeIsContextTag222222(buffer, offset + len, 1)) {
                            len++;
                            value.enrollmentFilter = {};
                            if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                              return void 0;
                            }
                            len++;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeObjectId222222(buffer, offset + len);
                            len += decodedValue.len;
                            value.enrollmentFilter.objectId = {
                              type: decodedValue.objectType,
                              instance: decodedValue.instance
                            };
                            len++;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.enrollmentFilter.processId = decodedValue.value;
                            len++;
                          }
                          if (decodeIsContextTag222222(buffer, offset + len, 2)) {
                            len++;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.eventStateFilter = decodedValue.value;
                            len++;
                          }
                          if (decodeIsContextTag222222(buffer, offset + len, 3)) {
                            len++;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.eventTypeFilter = decodedValue.value;
                            len++;
                          }
                          if (decodeIsContextTag222222(buffer, offset + len, 4)) {
                            len++;
                            value.priorityFilter = {};
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.priorityFilter.min = decodedValue.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.priorityFilter.max = decodedValue.value;
                            len++;
                          }
                          if (decodeIsContextTag222222(buffer, offset + len, 5)) {
                            len++;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.notificationClassFilter = decodedValue.value;
                            len++;
                          }
                          value.len = len;
                          return value;
                        };
                        var encodeAcknowledge4222222 = (buffer, enrollmentSummaries) => {
                          enrollmentSummaries.forEach((enrollmentSummary) => {
                            encodeApplicationObjectId222222(
                              buffer,
                              enrollmentSummary.objectId.type,
                              enrollmentSummary.objectId.instance
                            );
                            encodeApplicationEnumerated222222(buffer, enrollmentSummary.eventType);
                            encodeApplicationEnumerated222222(buffer, enrollmentSummary.eventState);
                            encodeApplicationUnsigned222222(buffer, enrollmentSummary.priority);
                            encodeApplicationUnsigned222222(
                              buffer,
                              enrollmentSummary.notificationClass
                            );
                          });
                        };
                        var decodeAcknowledge3222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          const enrollmentSummaries = [];
                          while (apduLen - len > 0) {
                            const enrollmentSummary = {};
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 12) {
                              return void 0;
                            }
                            result = decodeObjectId222222(buffer, offset + len);
                            len += result.len;
                            enrollmentSummary.objectId = {
                              type: result.objectType,
                              instance: result.instance
                            };
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 9) {
                              return void 0;
                            }
                            result = decodeEnumerated222222(buffer, offset + len, result.value);
                            len += result.len;
                            enrollmentSummary.eventType = result.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 9) {
                              return void 0;
                            }
                            result = decodeEnumerated222222(buffer, offset + len, result.value);
                            len += result.len;
                            enrollmentSummary.eventState = result.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 2) {
                              return void 0;
                            }
                            result = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += result.len;
                            enrollmentSummary.priority = result.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 2) {
                              return void 0;
                            }
                            result = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += result.len;
                            enrollmentSummary.notificationClass = result.value;
                            enrollmentSummaries.push(enrollmentSummary);
                          }
                          return {
                            enrollmentSummaries,
                            len
                          };
                        };
                        var get_event_information_exports222222 = {};
                        __export222222(get_event_information_exports222222, {
                          decode: () => decode14222222,
                          decodeAcknowledge: () => decodeAcknowledge4222222,
                          encode: () => encode14222222,
                          encodeAcknowledge: () => encodeAcknowledge5222222
                        });
                        var encode14222222 = (buffer, lastReceivedObjectId) => {
                          encodeContextObjectId222222(
                            buffer,
                            0,
                            lastReceivedObjectId.type,
                            lastReceivedObjectId.instance
                          );
                        };
                        var decode14222222 = (buffer, offset) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let value = {};
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          value.lastReceivedObjectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          value.len = len;
                          return value;
                        };
                        var encodeAcknowledge5222222 = (buffer, events, moreEvents) => {
                          encodeOpeningTag222222(buffer, 0);
                          events.forEach((eventData) => {
                            encodeContextObjectId222222(
                              buffer,
                              0,
                              eventData.objectId.type,
                              eventData.objectId.instance
                            );
                            encodeContextEnumerated222222(buffer, 1, eventData.eventState);
                            encodeContextBitstring222222(buffer, 2, eventData.acknowledgedTransitions);
                            encodeOpeningTag222222(buffer, 3);
                            for (let i = 0; i < 3; i++) {
                              bacappEncodeTimestamp222222(buffer, eventData.eventTimeStamps[i]);
                            }
                            encodeClosingTag222222(buffer, 3);
                            encodeContextEnumerated222222(buffer, 4, eventData.notifyType);
                            encodeContextBitstring222222(buffer, 5, eventData.eventEnable);
                            encodeOpeningTag222222(buffer, 6);
                            for (let i = 0; i < 3; i++) {
                              encodeApplicationUnsigned222222(buffer, eventData.eventPriorities[i]);
                            }
                            encodeClosingTag222222(buffer, 6);
                          });
                          encodeClosingTag222222(buffer, 0);
                          encodeContextBoolean222222(buffer, 1, moreEvents);
                        };
                        var decodeAcknowledge4222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let value = {};
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          value.events = [];
                          while (apduLen - len > 3) {
                            let event = {};
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeObjectId222222(buffer, offset + len);
                            len += decodedValue.len;
                            event.objectId = {
                              type: decodedValue.objectType,
                              instance: decodedValue.instance
                            };
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            event.eventState = decodedValue.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeBitstring222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            event.acknowledgedTransitions = decodedValue.value;
                            if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 3)) {
                              return void 0;
                            }
                            len++;
                            event.eventTimeStamps = [];
                            for (let i = 0; i < 3; i++) {
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                              if (result.tagNumber === 0) {
                                decodedValue = decodeBacnetTime222222(
                                  buffer,
                                  offset + len,
                                  result.value
                                );
                                len += decodedValue.len;
                                event.eventTimeStamps[i] = {
                                  value: decodedValue.value,
                                  type: 0
                                  /* TIME */
                                };
                              } else if (result.tagNumber === 1) {
                                decodedValue = decodeUnsigned222222(
                                  buffer,
                                  offset + len,
                                  result.value
                                );
                                len += decodedValue.len;
                                event.eventTimeStamps[i] = {
                                  value: decodedValue.value,
                                  type: 1
                                  /* SEQUENCE_NUMBER */
                                };
                              } else if (result.tagNumber === 2) {
                                let date = decodeApplicationDate222222(
                                  buffer,
                                  offset + len
                                );
                                len += date.len;
                                date = date.value.value;
                                let time = decodeApplicationTime222222(
                                  buffer,
                                  offset + len
                                );
                                len += time.len;
                                time = time.value.value;
                                event.eventTimeStamps[i] = {
                                  value: new Date(
                                    date.getFullYear(),
                                    date.getMonth(),
                                    date.getDate(),
                                    time.getHours(),
                                    time.getMinutes(),
                                    time.getSeconds(),
                                    time.getMilliseconds()
                                  ),
                                  type: 2
                                  /* DATETIME */
                                };
                                len++;
                              }
                            }
                            if (!decodeIsClosingTagNumber222222(buffer, offset + len, 3)) {
                              return void 0;
                            }
                            len++;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            event.notifyType = decodedValue.value;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeBitstring222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            event.eventEnable = decodedValue.value;
                            if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 6)) {
                              return void 0;
                            }
                            len++;
                            event.eventPriorities = [];
                            for (let i = 0; i < 3; i++) {
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              event.eventPriorities[i] = decodedValue.value;
                            }
                            if (!decodeIsClosingTagNumber222222(buffer, offset + len, 6)) {
                              return void 0;
                            }
                            len++;
                            value.events.push(event);
                          }
                          if (!decodeIsClosingTagNumber222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          value.moreEvents = buffer[offset + len] > 0;
                          len++;
                          value.len = len;
                          return value;
                        };
                        var i_am_exports222222 = {};
                        __export222222(i_am_exports222222, {
                          decode: () => decode15222222,
                          encode: () => encode15222222
                        });
                        var encode15222222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                          encodeApplicationObjectId222222(buffer, 8, deviceId);
                          encodeApplicationUnsigned222222(buffer, maxApdu);
                          encodeApplicationEnumerated222222(buffer, segmentation);
                          encodeApplicationUnsigned222222(buffer, vendorId);
                        };
                        var decode15222222 = (buffer, offset) => {
                          let result;
                          let apduLen = 0;
                          const orgOffset = offset;
                          result = decodeTagNumberAndValue222222(buffer, offset + apduLen);
                          apduLen += result.len;
                          if (result.tagNumber !== 12) {
                            return void 0;
                          }
                          result = decodeObjectId222222(buffer, offset + apduLen);
                          apduLen += result.len;
                          if (result.objectType !== 8) {
                            return void 0;
                          }
                          const deviceId = result.instance;
                          result = decodeTagNumberAndValue222222(buffer, offset + apduLen);
                          apduLen += result.len;
                          if (result.tagNumber !== 2) {
                            return void 0;
                          }
                          result = decodeUnsigned222222(buffer, offset + apduLen, result.value);
                          apduLen += result.len;
                          const maxApdu = result.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + apduLen);
                          apduLen += result.len;
                          if (result.tagNumber !== 9) {
                            return void 0;
                          }
                          result = decodeEnumerated222222(buffer, offset + apduLen, result.value);
                          apduLen += result.len;
                          if (result.value > 3) {
                            return void 0;
                          }
                          const segmentation = result.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + apduLen);
                          apduLen += result.len;
                          if (result.tagNumber !== 2) {
                            return void 0;
                          }
                          result = decodeUnsigned222222(buffer, offset + apduLen, result.value);
                          apduLen += result.len;
                          if (result.value > 65535) {
                            return void 0;
                          }
                          const vendorId = result.value;
                          return {
                            len: offset - orgOffset,
                            deviceId,
                            maxApdu,
                            segmentation,
                            vendorId
                          };
                        };
                        var i_have_exports222222 = {};
                        __export222222(i_have_exports222222, {
                          decode: () => decode16222222,
                          encode: () => encode16222222
                        });
                        var encode16222222 = (buffer, deviceId, objectId, objectName) => {
                          encodeApplicationObjectId222222(buffer, deviceId.type, deviceId.instance);
                          encodeApplicationObjectId222222(buffer, objectId.type, objectId.instance);
                          encodeApplicationCharacterString222222(buffer, objectName);
                        };
                        var decode16222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let value = {};
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          value.deviceId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          value.objectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeCharacterString222222(
                            buffer,
                            offset + len,
                            apduLen - (offset + len),
                            result.value
                          );
                          len += decodedValue.len;
                          value.objectName = decodedValue.value;
                          value.len = len;
                          return value;
                        };
                        var life_safety_operation_exports222222 = {};
                        __export222222(life_safety_operation_exports222222, {
                          decode: () => decode17222222,
                          encode: () => encode17222222
                        });
                        var encode17222222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                          encodeContextUnsigned222222(buffer, 0, processId);
                          encodeContextCharacterString222222(buffer, 1, requestingSource);
                          encodeContextEnumerated222222(buffer, 2, operation);
                          encodeContextObjectId222222(
                            buffer,
                            3,
                            targetObjectId.type,
                            targetObjectId.instance
                          );
                        };
                        var decode17222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let value = {};
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.processId = decodedValue.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeCharacterString222222(
                            buffer,
                            offset + len,
                            apduLen - (offset + len),
                            result.value
                          );
                          len += decodedValue.len;
                          value.requestingSource = decodedValue.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.operation = decodedValue.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          value.targetObjectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          value.len = len;
                          return value;
                        };
                        var private_transfer_exports222222 = {};
                        __export222222(private_transfer_exports222222, {
                          decode: () => decode18222222,
                          encode: () => encode18222222
                        });
                        var encode18222222 = (buffer, vendorId, serviceNumber, data) => {
                          encodeContextUnsigned222222(buffer, 0, vendorId);
                          encodeContextUnsigned222222(buffer, 1, serviceNumber);
                          encodeOpeningTag222222(buffer, 2);
                          for (let i = 0; i < data.length; i++) {
                            buffer.buffer[buffer.offset++] = data[i];
                          }
                          encodeClosingTag222222(buffer, 2);
                        };
                        var decode18222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let value = {};
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.vendorId = decodedValue.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.serviceNumber = decodedValue.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          const size = apduLen - (offset + len + 1);
                          const data = [];
                          for (let i = 0; i < size; i++) {
                            data.push(buffer[offset + len++]);
                          }
                          value.data = data;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          value.len = len;
                          return value;
                        };
                        var read_property_exports222222 = {};
                        __export222222(read_property_exports222222, {
                          decode: () => decode19222222,
                          decodeAcknowledge: () => decodeAcknowledge5222222,
                          encode: () => encode19222222,
                          encodeAcknowledge: () => encodeAcknowledge6222222
                        });
                        var encode19222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                          if (objectType <= ASN1_MAX_OBJECT222222) {
                            encodeContextObjectId222222(buffer, 0, objectType, objectInstance);
                          }
                          if (propertyId <= ASN1_MAX_PROPERTY_ID222222) {
                            encodeContextEnumerated222222(buffer, 1, propertyId);
                          }
                          if (arrayIndex !== ASN1_ARRAY_ALL222222) {
                            encodeContextUnsigned222222(
                              buffer,
                              2,
                              arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL222222
                            );
                          }
                        };
                        var decode19222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          if (apduLen < 7) {
                            return void 0;
                          }
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          let objectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          let property = {};
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 1) {
                            return void 0;
                          }
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          property.id = decodedValue.value;
                          property.index = ASN1_ARRAY_ALL222222;
                          if (len < apduLen) {
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber === 2 && len < apduLen) {
                              decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              property.index = decodedValue.value;
                            } else {
                              return void 0;
                            }
                          }
                          if (len < apduLen) {
                            return void 0;
                          }
                          return {
                            len,
                            objectId,
                            property
                          };
                        };
                        var encodeAcknowledge6222222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                          encodeContextObjectId222222(buffer, 0, objectId.type, objectId.instance);
                          encodeContextEnumerated222222(buffer, 1, propertyId);
                          if (arrayIndex !== ASN1_ARRAY_ALL222222) {
                            encodeContextUnsigned222222(buffer, 2, arrayIndex);
                          }
                          encodeOpeningTag222222(buffer, 3);
                          values.forEach((value) => {
                            bacappEncodeApplicationData222222(buffer, value);
                          });
                          encodeClosingTag222222(buffer, 3);
                        };
                        var decodeAcknowledge5222222 = (buffer, offset, apduLen) => {
                          let result;
                          let decodedValue;
                          let objectId = {};
                          let property = {};
                          if (!decodeIsContextTag222222(buffer, offset, 0)) {
                            return void 0;
                          }
                          let len = 1;
                          result = decodeObjectId222222(buffer, offset + len);
                          len += result.len;
                          objectId.type = result.objectType;
                          objectId.instance = result.instance;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 1) {
                            return void 0;
                          }
                          result = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += result.len;
                          property.id = result.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          if (result.tagNumber === 2) {
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            property.index = decodedValue.value;
                          } else {
                            property.index = ASN1_ARRAY_ALL222222;
                          }
                          const values = [];
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 3)) {
                            return void 0;
                          }
                          len++;
                          while (apduLen - len > 1) {
                            result = bacappDecodeApplicationData222222(
                              buffer,
                              offset + len,
                              apduLen + offset,
                              objectId.type,
                              property.id
                            );
                            if (!result) {
                              return void 0;
                            }
                            len += result.len;
                            delete result.len;
                            values.push(result);
                          }
                          if (!decodeIsClosingTagNumber222222(buffer, offset + len, 3)) {
                            return void 0;
                          }
                          len++;
                          return {
                            len,
                            objectId,
                            property,
                            values
                          };
                        };
                        var read_property_multiple_exports222222 = {};
                        __export222222(read_property_multiple_exports222222, {
                          decode: () => decode20222222,
                          decodeAcknowledge: () => decodeAcknowledge6222222,
                          encode: () => encode20222222,
                          encodeAcknowledge: () => encodeAcknowledge7222222
                        });
                        var encode20222222 = (buffer, properties) => {
                          properties.forEach((value) => {
                            encodeReadAccessSpecification222222(buffer, value);
                          });
                        };
                        var decode20222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          const values = [];
                          while (apduLen - len > 0) {
                            const decodedValue = decodeReadAccessSpecification222222(
                              buffer,
                              offset + len,
                              apduLen - len
                            );
                            if (!decodedValue) {
                              return void 0;
                            }
                            len += decodedValue.len;
                            values.push(decodedValue.value);
                          }
                          return {
                            len,
                            properties: values
                          };
                        };
                        var encodeAcknowledge7222222 = (buffer, values) => {
                          values.forEach((value) => {
                            encodeReadAccessResult222222(buffer, value);
                          });
                        };
                        var decodeAcknowledge6222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          const values = [];
                          while (apduLen - len > 0) {
                            const result = decodeReadAccessResult222222(
                              buffer,
                              offset + len,
                              apduLen - len
                            );
                            if (!result || result === -1) {
                              return void 0;
                            }
                            len += result.len;
                            values.push(result.value);
                          }
                          return {
                            len,
                            values
                          };
                        };
                        var read_range_exports222222 = {};
                        __export222222(read_range_exports222222, {
                          decode: () => decode21222222,
                          decodeAcknowledge: () => decodeAcknowledge7222222,
                          encode: () => encode21222222,
                          encodeAcknowledge: () => encodeAcknowledge8222222
                        });
                        var encode21222222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                          encodeContextObjectId222222(buffer, 0, objectId.type, objectId.instance);
                          encodeContextEnumerated222222(buffer, 1, propertyId);
                          if (arrayIndex !== ASN1_ARRAY_ALL222222) {
                            encodeContextUnsigned222222(buffer, 2, arrayIndex);
                          }
                          switch (requestType) {
                            case 0:
                              encodeOpeningTag222222(buffer, 3);
                              encodeApplicationUnsigned222222(buffer, position);
                              encodeApplicationSigned222222(buffer, count);
                              encodeClosingTag222222(buffer, 3);
                              break;
                            case 1:
                              encodeOpeningTag222222(buffer, 6);
                              encodeApplicationUnsigned222222(buffer, position);
                              encodeApplicationSigned222222(buffer, count);
                              encodeClosingTag222222(buffer, 6);
                              break;
                            case 2:
                              encodeOpeningTag222222(buffer, 7);
                              encodeApplicationDate222222(buffer, time);
                              encodeApplicationTime222222(buffer, time);
                              encodeApplicationSigned222222(buffer, count);
                              encodeClosingTag222222(buffer, 7);
                              break;
                            default:
                              break;
                          }
                        };
                        var decode21222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let requestType;
                          let position;
                          let time;
                          let count;
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          decodedValue = decodeObjectId222222(buffer, offset + len, 0);
                          len += decodedValue.len;
                          let objectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          let property = {};
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 1) {
                            return void 0;
                          }
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          property.id = decodedValue.value;
                          if (len < apduLen && decodeIsContextTag222222(buffer, offset + len, 2)) {
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            property.index = decodedValue.value;
                          } else {
                            property.index = ASN1_ARRAY_ALL222222;
                          }
                          if (len < apduLen) {
                            result = decodeTagNumber222222(buffer, offset + len);
                            len += result.len;
                            switch (result.tagNumber) {
                              case 3:
                                requestType = 0;
                                result = decodeTagNumberAndValue222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeUnsigned222222(
                                  buffer,
                                  offset + len,
                                  result.value
                                );
                                len += decodedValue.len;
                                position = decodedValue.value;
                                result = decodeTagNumberAndValue222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeSigned222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                count = decodedValue.value;
                                break;
                              case 6:
                                requestType = 1;
                                result = decodeTagNumberAndValue222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeUnsigned222222(
                                  buffer,
                                  offset + len,
                                  result.value
                                );
                                len += decodedValue.len;
                                position = decodedValue.value;
                                result = decodeTagNumberAndValue222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeSigned222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                count = decodedValue.value;
                                break;
                              case 7:
                                requestType = 2;
                                decodedValue = decodeApplicationDate222222(buffer, offset + len);
                                len += decodedValue.len;
                                const tmpDate = decodedValue.value.value;
                                decodedValue = decodeApplicationTime222222(buffer, offset + len);
                                len += decodedValue.len;
                                const tmpTime = decodedValue.value.value;
                                time = new Date(
                                  tmpDate.getYear(),
                                  tmpDate.getMonth(),
                                  tmpDate.getDate(),
                                  tmpTime.getHours(),
                                  tmpTime.getMinutes(),
                                  tmpTime.getSeconds(),
                                  tmpTime.getMilliseconds()
                                );
                                result = decodeTagNumberAndValue222222(buffer, offset + len);
                                len += result.len;
                                decodedValue = decodeSigned222222(buffer, offset + len, result.value);
                                len += decodedValue.len;
                                count = decodedValue.value;
                                break;
                              default:
                                return void 0;
                            }
                            result = decodeTagNumber222222(buffer, offset + len);
                            len += result.len;
                          }
                          return {
                            len,
                            objectId,
                            property,
                            requestType,
                            position,
                            time,
                            count
                          };
                        };
                        var encodeAcknowledge8222222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                          encodeContextObjectId222222(buffer, 0, objectId.type, objectId.instance);
                          encodeContextEnumerated222222(buffer, 1, propertyId);
                          if (arrayIndex !== ASN1_ARRAY_ALL222222) {
                            encodeContextUnsigned222222(buffer, 2, arrayIndex);
                          }
                          encodeContextBitstring222222(buffer, 3, resultFlags);
                          encodeContextUnsigned222222(buffer, 4, itemCount);
                          encodeOpeningTag222222(buffer, 5);
                          if (itemCount !== 0) {
                            applicationData.copy(
                              buffer.buffer,
                              buffer.offset,
                              0,
                              applicationData.length
                            );
                            buffer.offset += applicationData.length;
                          }
                          encodeClosingTag222222(buffer, 5);
                          if (itemCount !== 0 && requestType && requestType !== 0) {
                            encodeContextUnsigned222222(buffer, 6, firstSequence);
                          }
                        };
                        var decodeAcknowledge7222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          const objectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          const property = { index: ASN1_ARRAY_ALL222222 };
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 1) {
                            return void 0;
                          }
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          property.id = decodedValue.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          if (result.tagNumber === 2 && len < apduLen) {
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            property.index = decodedValue.value;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeBitstring222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          const resultFlag = decodedValue.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          const itemCount = decodedValue.value;
                          if (!decodeIsOpeningTag222222(buffer, offset + len)) {
                            return void 0;
                          }
                          len++;
                          const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                          return {
                            objectId,
                            property,
                            resultFlag,
                            itemCount,
                            rangeBuffer,
                            len
                          };
                        };
                        var register_foreign_device_exports222222 = {};
                        __export222222(register_foreign_device_exports222222, {
                          decode: () => decode22222222,
                          encode: () => encode22222222
                        });
                        var encode22222222 = (buffer, ttl, length = 2) => {
                          encodeUnsigned222222(buffer, ttl, length);
                        };
                        var decode22222222 = (buffer, offset, length = 2) => {
                          let len = 0;
                          let result = decodeUnsigned222222(buffer, offset + len, length);
                          len += result.len;
                          return {
                            len,
                            ttl: result.value
                          };
                        };
                        var reinitialize_device_exports222222 = {};
                        __export222222(reinitialize_device_exports222222, {
                          decode: () => decode23222222,
                          encode: () => encode23222222
                        });
                        var encode23222222 = (buffer, state, password) => {
                          encodeContextEnumerated222222(buffer, 0, state);
                          if (password && password !== "") {
                            encodeContextCharacterString222222(buffer, 1, password);
                          }
                        };
                        var decode23222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let value = {};
                          let result;
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          let decodedValue = decodeEnumerated222222(
                            buffer,
                            offset + len,
                            result.value
                          );
                          value.state = decodedValue.value;
                          len += decodedValue.len;
                          if (len < apduLen) {
                            if (!decodeIsContextTag222222(buffer, offset + len, 1)) {
                              return void 0;
                            }
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeCharacterString222222(
                              buffer,
                              offset + len,
                              apduLen - (offset + len),
                              result.value
                            );
                            value.password = decodedValue.value;
                            len += decodedValue.len;
                          }
                          value.len = len;
                          return value;
                        };
                        var subscribe_cov_exports222222 = {};
                        __export222222(subscribe_cov_exports222222, {
                          decode: () => decode24222222,
                          encode: () => encode24222222
                        });
                        var encode24222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                          encodeContextUnsigned222222(buffer, 0, subscriberProcessId);
                          encodeContextObjectId222222(
                            buffer,
                            1,
                            monitoredObjectId.type,
                            monitoredObjectId.instance
                          );
                          if (!cancellationRequest) {
                            encodeContextBoolean222222(buffer, 2, issueConfirmedNotifications);
                            encodeContextUnsigned222222(buffer, 3, lifetime);
                          }
                        };
                        var decode24222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let value = {};
                          let result;
                          let decodedValue;
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.subscriberProcessId = decodedValue.value;
                          if (!decodeIsContextTag222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          value.monitoredObjectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          value.cancellationRequest = true;
                          if (len < apduLen) {
                            value.issueConfirmedNotifications = false;
                            if (decodeIsContextTag222222(buffer, offset + len, 2)) {
                              value.cancellationRequest = false;
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                              value.issueConfirmedNotifications = buffer[offset + len] > 0;
                              len++;
                            }
                            value.lifetime = 0;
                            if (decodeIsContextTag222222(buffer, offset + len, 3)) {
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                              decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              value.lifetime = decodedValue.value;
                            }
                          }
                          value.len = len;
                          return value;
                        };
                        var subscribe_property_exports222222 = {};
                        __export222222(subscribe_property_exports222222, {
                          decode: () => decode25222222,
                          encode: () => encode25222222
                        });
                        var encode25222222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                          encodeContextUnsigned222222(buffer, 0, subscriberProcessId);
                          encodeContextObjectId222222(
                            buffer,
                            1,
                            monitoredObjectId.type,
                            monitoredObjectId.instance
                          );
                          if (!cancellationRequest) {
                            encodeContextBoolean222222(buffer, 2, issueConfirmedNotifications);
                            encodeContextUnsigned222222(buffer, 3, lifetime);
                          }
                          encodeOpeningTag222222(buffer, 4);
                          encodeContextEnumerated222222(buffer, 0, monitoredProperty.id);
                          if (monitoredProperty.index !== ASN1_ARRAY_ALL222222) {
                            encodeContextUnsigned222222(buffer, 1, monitoredProperty.index);
                          }
                          encodeClosingTag222222(buffer, 4);
                          if (covIncrementPresent) {
                            encodeContextReal222222(buffer, 5, covIncrement);
                          }
                        };
                        var decode25222222 = (buffer, offset) => {
                          let len = 0;
                          let value = {};
                          let result;
                          let decodedValue;
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.subscriberProcessId = decodedValue.value;
                          if (!decodeIsContextTag222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          value.monitoredObjectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          value.cancellationRequest = true;
                          value.issueConfirmedNotifications = false;
                          if (decodeIsContextTag222222(buffer, offset + len, 2)) {
                            value.cancellationRequest = false;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            value.issueConfirmedNotifications = buffer[offset + len] > 0;
                            len++;
                          }
                          value.lifetime = 0;
                          if (decodeIsContextTag222222(buffer, offset + len, 3)) {
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.lifetime = decodedValue.value;
                          }
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 4)) {
                            return void 0;
                          }
                          len++;
                          value.monitoredProperty = {};
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.monitoredProperty.id = decodedValue.value;
                          value.monitoredProperty.index = ASN1_ARRAY_ALL222222;
                          if (decodeIsContextTag222222(buffer, offset + len, 1)) {
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.monitoredProperty.index = decodedValue.value;
                          }
                          if (!decodeIsClosingTagNumber222222(buffer, offset + len, 4)) {
                            return void 0;
                          }
                          len++;
                          value.covIncrement = 0;
                          if (decodeIsContextTag222222(buffer, offset + len, 5)) {
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeReal222222(buffer, offset + len);
                            len += decodedValue.len;
                            value.covIncrement = decodedValue.value;
                          }
                          value.len = len;
                          return value;
                        };
                        var time_sync_exports222222 = {};
                        __export222222(time_sync_exports222222, {
                          decode: () => decode26222222,
                          encode: () => encode26222222
                        });
                        var encode26222222 = (buffer, time) => {
                          encodeApplicationDate222222(buffer, time);
                          encodeApplicationTime222222(buffer, time);
                        };
                        var decode26222222 = (buffer, offset, length) => {
                          let len = 0;
                          let result;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 10) {
                            return void 0;
                          }
                          const date = decodeDate222222(buffer, offset + len);
                          len += date.len;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 11) {
                            return void 0;
                          }
                          const time = decodeBacnetTime222222(buffer, offset + len);
                          len += time.len;
                          return {
                            len,
                            value: new Date(
                              date.value.getFullYear(),
                              date.value.getMonth(),
                              date.value.getDate(),
                              time.value.getHours(),
                              time.value.getMinutes(),
                              time.value.getSeconds(),
                              time.value.getMilliseconds()
                            )
                          };
                        };
                        var who_has_exports222222 = {};
                        __export222222(who_has_exports222222, {
                          decode: () => decode27222222,
                          encode: () => encode27222222
                        });
                        var encode27222222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                          if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE222222) {
                            encodeContextUnsigned222222(buffer, 0, lowLimit);
                            encodeContextUnsigned222222(buffer, 1, highLimit);
                          }
                          if (objectName && objectName !== "") {
                            encodeContextCharacterString222222(buffer, 3, objectName);
                          } else {
                            encodeContextObjectId222222(buffer, 2, objectId.type, objectId.instance);
                          }
                        };
                        var decode27222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let value = {};
                          let decodedValue;
                          let result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber === 0) {
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            if (decodedValue.value <= ASN1_MAX_INSTANCE222222) {
                              value.lowLimit = decodedValue.value;
                            }
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                          }
                          if (result.tagNumber === 1) {
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            if (decodedValue.value <= ASN1_MAX_INSTANCE222222) {
                              value.highLimit = decodedValue.value;
                            }
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                          }
                          if (result.tagNumber === 2) {
                            decodedValue = decodeObjectId222222(buffer, offset + len);
                            len += decodedValue.len;
                            value.objectId = {
                              type: decodedValue.objectType,
                              instance: decodedValue.instance
                            };
                          }
                          if (result.tagNumber === 3) {
                            decodedValue = decodeCharacterString222222(
                              buffer,
                              offset + len,
                              apduLen - (offset + len),
                              result.value
                            );
                            len += decodedValue.len;
                            value.objectName = decodedValue.value;
                          }
                          value.len = len;
                          return value;
                        };
                        var who_is_exports222222 = {};
                        __export222222(who_is_exports222222, {
                          decode: () => decode28222222,
                          encode: () => encode28222222
                        });
                        var encode28222222 = (buffer, lowLimit, highLimit) => {
                          if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE222222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE222222) {
                            encodeContextUnsigned222222(buffer, 0, lowLimit);
                            encodeContextUnsigned222222(buffer, 1, highLimit);
                          }
                        };
                        var decode28222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let value = {};
                          if (apduLen <= 0) {
                            return {};
                          }
                          let result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 0) {
                            return void 0;
                          }
                          if (apduLen <= len) {
                            return void 0;
                          }
                          let decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          if (decodedValue.value <= ASN1_MAX_INSTANCE222222) {
                            value.lowLimit = decodedValue.value;
                          }
                          if (apduLen <= len) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 1) {
                            return void 0;
                          }
                          if (apduLen <= len) {
                            return void 0;
                          }
                          decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          if (decodedValue.value <= ASN1_MAX_INSTANCE222222) {
                            value.highLimit = decodedValue.value;
                          }
                          value.len = len;
                          return value;
                        };
                        var write_property_exports222222 = {};
                        __export222222(write_property_exports222222, {
                          decode: () => decode29222222,
                          encode: () => encode29222222
                        });
                        var encode29222222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                          encodeContextObjectId222222(buffer, 0, objectType, objectInstance);
                          encodeContextEnumerated222222(buffer, 1, propertyId);
                          if (arrayIndex !== ASN1_ARRAY_ALL222222) {
                            encodeContextUnsigned222222(buffer, 2, arrayIndex);
                          }
                          encodeOpeningTag222222(buffer, 3);
                          values.forEach((value) => {
                            bacappEncodeApplicationData222222(buffer, value);
                          });
                          encodeClosingTag222222(buffer, 3);
                          if (priority !== ASN1_NO_PRIORITY222222) {
                            encodeContextUnsigned222222(buffer, 4, priority);
                          }
                        };
                        var decode29222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let value = {
                            property: {}
                          };
                          let decodedValue;
                          let result;
                          if (!decodeIsContextTag222222(buffer, offset + len, 0)) {
                            return void 0;
                          }
                          len++;
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          let objectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          len += decodedValue.len;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 1) {
                            return void 0;
                          }
                          decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.property.id = decodedValue.value;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          if (result.tagNumber === 2) {
                            len += result.len;
                            decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            value.property.index = decodedValue.value;
                          } else {
                            value.property.index = ASN1_ARRAY_ALL222222;
                          }
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 3)) {
                            return void 0;
                          }
                          len++;
                          const values = [];
                          while (apduLen - len > 1 && !decodeIsClosingTagNumber222222(buffer, offset + len, 3)) {
                            decodedValue = bacappDecodeApplicationData222222(
                              buffer,
                              offset + len,
                              apduLen + offset,
                              objectId.type,
                              value.property.id
                            );
                            if (!decodedValue) {
                              return void 0;
                            }
                            len += decodedValue.len;
                            delete decodedValue.len;
                            values.push(decodedValue);
                          }
                          value.value = values;
                          if (!decodeIsClosingTagNumber222222(buffer, offset + len, 3)) {
                            return void 0;
                          }
                          len++;
                          value.priority = ASN1_MAX_PRIORITY222222;
                          if (len < apduLen) {
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            if (result.tagNumber === 4) {
                              len += result.len;
                              decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                              len += decodedValue;
                              if (decodedValue.value >= ASN1_MIN_PRIORITY222222 && decodedValue.value <= ASN1_MAX_PRIORITY222222) {
                                value.priority = decodedValue.value;
                              } else {
                                return void 0;
                              }
                            }
                          }
                          return {
                            len,
                            objectId,
                            value
                          };
                        };
                        var write_property_multiple_exports222222 = {};
                        __export222222(write_property_multiple_exports222222, {
                          decode: () => decode30222222,
                          encode: () => encode30222222,
                          encodeObject: () => encodeObject222222
                        });
                        var encode30222222 = (buffer, objectId, values) => {
                          encodeContextObjectId222222(buffer, 0, objectId.type, objectId.instance);
                          encodeOpeningTag222222(buffer, 1);
                          values.forEach((pValue) => {
                            encodeContextEnumerated222222(buffer, 0, pValue.property.id);
                            if (pValue.property.index !== ASN1_ARRAY_ALL222222) {
                              encodeContextUnsigned222222(buffer, 1, pValue.property.index);
                            }
                            encodeOpeningTag222222(buffer, 2);
                            pValue.value.forEach((value) => {
                              bacappEncodeApplicationData222222(buffer, value);
                            });
                            encodeClosingTag222222(buffer, 2);
                            if (pValue.priority !== ASN1_NO_PRIORITY222222) {
                              encodeContextUnsigned222222(buffer, 3, pValue.priority);
                            }
                          });
                          encodeClosingTag222222(buffer, 1);
                        };
                        var decode30222222 = (buffer, offset, apduLen) => {
                          let len = 0;
                          let result;
                          let decodedValue;
                          let objectId;
                          result = decodeTagNumberAndValue222222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 0 || apduLen <= len) {
                            return void 0;
                          }
                          apduLen -= len;
                          if (apduLen < 4) {
                            return void 0;
                          }
                          decodedValue = decodeObjectId222222(buffer, offset + len);
                          len += decodedValue.len;
                          objectId = {
                            type: decodedValue.objectType,
                            instance: decodedValue.instance
                          };
                          if (!decodeIsOpeningTagNumber222222(buffer, offset + len, 1)) {
                            return void 0;
                          }
                          len++;
                          const _values = [];
                          while (apduLen - len > 1) {
                            let newEntry = {};
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber !== 0) {
                              return void 0;
                            }
                            decodedValue = decodeEnumerated222222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            let propertyId = decodedValue.value;
                            let arrayIndex = ASN1_ARRAY_ALL222222;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber === 1) {
                              decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              arrayIndex = decodedValue.value;
                              result = decodeTagNumberAndValue222222(buffer, offset + len);
                              len += result.len;
                            }
                            newEntry.property = { id: propertyId, index: arrayIndex };
                            if (result.tagNumber !== 2 || !decodeIsOpeningTag222222(buffer, offset + len - 1)) {
                              return void 0;
                            }
                            const values = [];
                            while (len + offset <= buffer.length && !decodeIsClosingTag222222(buffer, offset + len)) {
                              let value = bacappDecodeApplicationData222222(
                                buffer,
                                offset + len,
                                apduLen + offset,
                                objectId.type,
                                propertyId
                              );
                              if (!value) {
                                return void 0;
                              }
                              len += value.len;
                              delete value.len;
                              values.push(value);
                            }
                            len++;
                            newEntry.value = values;
                            let priority = ASN1_NO_PRIORITY222222;
                            result = decodeTagNumberAndValue222222(buffer, offset + len);
                            len += result.len;
                            if (result.tagNumber === 3) {
                              decodedValue = decodeUnsigned222222(buffer, offset + len, result.value);
                              len += decodedValue.len;
                              priority = decodedValue.value;
                            } else {
                              len--;
                            }
                            newEntry.priority = priority;
                            _values.push(newEntry);
                            if (decodeIsClosingTagNumber222222(buffer, offset + len, 1)) {
                              len++;
                            }
                          }
                          if (decodeIsClosingTagNumber222222(buffer, offset + len, 1)) {
                            len++;
                          }
                          return {
                            len,
                            objectId,
                            values: _values
                          };
                        };
                        var encodeObject222222 = (buffer, values) => {
                          values.forEach((object) => {
                            encode30222222(buffer, object.objectId, object.values);
                          });
                        };
                        var getDecodedType222222 = (buffer, offset) => {
                          return buffer[offset];
                        };
                        var encodeConfirmedServiceRequest222222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                          buffer.buffer[buffer.offset++] = type;
                          buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                          buffer.buffer[buffer.offset++] = invokeId;
                          if ((type & 8) > 0) {
                            buffer.buffer[buffer.offset++] = sequencenumber;
                            buffer.buffer[buffer.offset++] = proposedWindowSize;
                          }
                          buffer.buffer[buffer.offset++] = service;
                        };
                        var decodeConfirmedServiceRequest222222 = (buffer, offset) => {
                          const orgOffset = offset;
                          const type = buffer[offset++];
                          const maxSegments = buffer[offset] & 240;
                          const maxApdu = buffer[offset++] & 15;
                          const invokeId = buffer[offset++];
                          let sequencenumber = 0;
                          let proposedWindowNumber = 0;
                          if ((type & 8) > 0) {
                            sequencenumber = buffer[offset++];
                            proposedWindowNumber = buffer[offset++];
                          }
                          const service = buffer[offset++];
                          return {
                            len: offset - orgOffset,
                            type,
                            service,
                            maxSegments,
                            maxApdu,
                            invokeId,
                            sequencenumber,
                            proposedWindowNumber
                          };
                        };
                        var encodeUnconfirmedServiceRequest222222 = (buffer, type, service) => {
                          buffer.buffer[buffer.offset++] = type;
                          buffer.buffer[buffer.offset++] = service;
                        };
                        var decodeUnconfirmedServiceRequest222222 = (buffer, offset) => {
                          const orgOffset = offset;
                          const type = buffer[offset++];
                          const service = buffer[offset++];
                          return {
                            len: offset - orgOffset,
                            type,
                            service
                          };
                        };
                        var encodeSimpleAck222222 = (buffer, type, service, invokeId) => {
                          buffer.buffer[buffer.offset++] = type;
                          buffer.buffer[buffer.offset++] = invokeId;
                          buffer.buffer[buffer.offset++] = service;
                        };
                        var decodeSimpleAck222222 = (buffer, offset) => {
                          const orgOffset = offset;
                          const type = buffer[offset++];
                          const invokeId = buffer[offset++];
                          const service = buffer[offset++];
                          return {
                            len: offset - orgOffset,
                            type,
                            service,
                            invokeId
                          };
                        };
                        var encodeComplexAck222222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                          let len = 3;
                          buffer.buffer[buffer.offset++] = type;
                          buffer.buffer[buffer.offset++] = invokeId;
                          if ((type & 8) > 0) {
                            buffer.buffer[buffer.offset++] = sequencenumber;
                            buffer.buffer[buffer.offset++] = proposedWindowNumber;
                            len += 2;
                          }
                          buffer.buffer[buffer.offset++] = service;
                          return len;
                        };
                        var decodeComplexAck222222 = (buffer, offset) => {
                          const orgOffset = offset;
                          const type = buffer[offset++];
                          const invokeId = buffer[offset++];
                          let sequencenumber = 0;
                          let proposedWindowNumber = 0;
                          if ((type & 8) > 0) {
                            sequencenumber = buffer[offset++];
                            proposedWindowNumber = buffer[offset++];
                          }
                          const service = buffer[offset++];
                          return {
                            len: offset - orgOffset,
                            type,
                            service,
                            invokeId,
                            sequencenumber,
                            proposedWindowNumber
                          };
                        };
                        var encodeSegmentAck222222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                          buffer.buffer[buffer.offset++] = type;
                          buffer.buffer[buffer.offset++] = originalInvokeId;
                          buffer.buffer[buffer.offset++] = sequencenumber;
                          buffer.buffer[buffer.offset++] = actualWindowSize;
                        };
                        var decodeSegmentAck222222 = (buffer, offset) => {
                          const orgOffset = offset;
                          const type = buffer[offset++];
                          const originalInvokeId = buffer[offset++];
                          const sequencenumber = buffer[offset++];
                          const actualWindowSize = buffer[offset++];
                          return {
                            len: offset - orgOffset,
                            type,
                            originalInvokeId,
                            sequencenumber,
                            actualWindowSize
                          };
                        };
                        var encodeResult222222 = (buffer, resultCode) => {
                          encodeUnsigned222222(buffer, resultCode, 2);
                        };
                        var encodeError222222 = (buffer, type, service, invokeId) => {
                          buffer.buffer[buffer.offset++] = type;
                          buffer.buffer[buffer.offset++] = invokeId;
                          buffer.buffer[buffer.offset++] = service;
                        };
                        var decodeError222222 = (buffer, offset) => {
                          const orgOffset = offset;
                          const type = buffer[offset++];
                          const invokeId = buffer[offset++];
                          const service = buffer[offset++];
                          return {
                            len: offset - orgOffset,
                            type,
                            service,
                            invokeId
                          };
                        };
                        var decodeAbort222222 = (buffer, offset) => {
                          const orgOffset = offset;
                          const type = buffer[offset++];
                          const invokeId = buffer[offset++];
                          const reason = buffer[offset++];
                          return {
                            len: offset - orgOffset,
                            type,
                            invokeId,
                            reason
                          };
                        };
                        var DEFAULT_HOP_COUNT322222 = 255;
                        var BACNET_PROTOCOL_VERSION222222 = 1;
                        var BACNET_ADDRESS_TYPES222222 = {
                          NONE: 0,
                          IP: 1
                        };
                        var decodeTarget222222 = (buffer, offset) => {
                          let len = 0;
                          const target = {
                            type: BACNET_ADDRESS_TYPES222222.NONE,
                            net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                          };
                          const adrLen = buffer[offset + len++];
                          if (adrLen > 0) {
                            target.adr = [];
                            for (let i = 0; i < adrLen; i++) {
                              target.adr.push(buffer[offset + len++]);
                            }
                          }
                          return {
                            target,
                            len
                          };
                        };
                        var encodeTarget222222 = (buffer, target) => {
                          buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                          buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                          if (target.net === 65535 || !target.adr) {
                            buffer.buffer[buffer.offset++] = 0;
                          } else {
                            buffer.buffer[buffer.offset++] = target.adr.length;
                            if (target.adr.length > 0) {
                              for (let i = 0; i < target.adr.length; i++) {
                                buffer.buffer[buffer.offset++] = target.adr[i];
                              }
                            }
                          }
                        };
                        var decode31222222 = (buffer, offset) => {
                          let adrLen;
                          const orgOffset = offset;
                          offset++;
                          const funct = buffer[offset++];
                          let destination;
                          if (funct & 32) {
                            const tmpDestination = decodeTarget222222(buffer, offset);
                            offset += tmpDestination.len;
                            destination = tmpDestination.target;
                          }
                          let source;
                          if (funct & 8) {
                            const tmpSource = decodeTarget222222(buffer, offset);
                            offset += tmpSource.len;
                            source = tmpSource.target;
                          }
                          let hopCount = 0;
                          if (funct & 32) {
                            hopCount = buffer[offset++];
                          }
                          let networkMsgType = 0;
                          let vendorId = 0;
                          if (funct & 128) {
                            networkMsgType = buffer[offset++];
                            if (networkMsgType >= 128) {
                              vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                            } else if (networkMsgType === 0) {
                              offset += 2;
                            }
                          }
                          if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION222222) {
                            return void 0;
                          }
                          return {
                            len: offset - orgOffset,
                            funct,
                            destination,
                            source,
                            hopCount,
                            networkMsgType,
                            vendorId
                          };
                        };
                        var encode31222222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                          const hasDestination = destination && destination.net > 0;
                          const hasSource = source && source.net > 0 && source.net !== 65535;
                          buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION222222;
                          buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                          if (hasDestination) {
                            encodeTarget222222(buffer, destination);
                          }
                          if (hasSource) {
                            encodeTarget222222(buffer, source);
                          }
                          if (hasDestination) {
                            buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT322222;
                          }
                          if ((funct & 128) > 0) {
                            buffer.buffer[buffer.offset++] = networkMsgType;
                            if (networkMsgType >= 128) {
                              buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                              buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                            }
                          }
                        };
                        var DEFAULT_BACNET_PORT2222222 = 47808;
                        var encode32222222 = (buffer, func, msgLength, originatingIP) => {
                          buffer[0] = BVLL_TYPE_BACNET_IP222222;
                          buffer[1] = func;
                          buffer[2] = (msgLength & 65280) >> 8;
                          buffer[3] = (msgLength & 255) >> 0;
                          if (originatingIP) {
                            if (func !== 4) {
                              throw new Error(
                                "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                              );
                            }
                            const [ipstr, portstr] = originatingIP.split(":");
                            const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT2222222;
                            const ip = ipstr.split(".");
                            buffer[4] = parseInt(ip[0], 10);
                            buffer[5] = parseInt(ip[1], 10);
                            buffer[6] = parseInt(ip[2], 10);
                            buffer[7] = parseInt(ip[3], 10);
                            buffer[8] = (port & 65280) >> 8;
                            buffer[9] = (port & 255) >> 0;
                            return 6 + BVLC_HEADER_LENGTH322222;
                          } else {
                            if (func === 4) {
                              throw new Error(
                                "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                              );
                            }
                          }
                          return BVLC_HEADER_LENGTH322222;
                        };
                        var decode32222222 = (buffer, _offset) => {
                          let len;
                          const func = buffer[1];
                          const msgLength = buffer[2] << 8 | buffer[3] << 0;
                          if (buffer[0] !== BVLL_TYPE_BACNET_IP222222 || buffer.length !== msgLength) {
                            return void 0;
                          }
                          let originatingIP = null;
                          switch (func) {
                            case 0:
                            case 10:
                            case 11:
                            case 9:
                            case 5:
                            case 6:
                            case 8:
                            case 2:
                            case 1:
                            case 3:
                            case 7:
                              len = 4;
                              break;
                            case 4:
                              const port = buffer[8] << 8 | buffer[9];
                              originatingIP = buffer.slice(4, 8).join(".");
                              if (port !== DEFAULT_BACNET_PORT2222222) {
                                originatingIP += ":" + port;
                              }
                              len = 10;
                              break;
                            case 12:
                              return void 0;
                            default:
                              return void 0;
                          }
                          return {
                            len,
                            func,
                            msgLength,
                            // Originating IP is set to the IP address of the node that originally
                            // sent the packet, when it has been forwarded to us by a BBMD (since the
                            // BBMD's IP address will be in the sender field.
                            originatingIP
                          };
                        };
                        var EventEmitter2222222 = import_events2222222.default.EventEmitter;
                        var debug3222222 = (0, import_debug3222222.default)("bacnet:client:debug");
                        var trace2222222 = (0, import_debug3222222.default)("bacnet:client:trace");
                        var ALL_INTERFACES222222 = "0.0.0.0";
                        var LOCALHOST_INTERFACES_IPV4222222 = "127.0.0.1";
                        var BROADCAST_ADDRESS222222 = "255.255.255.255";
                        var DEFAULT_HOP_COUNT2222222 = 255;
                        var BVLC_HEADER_LENGTH2222222 = 4;
                        var BVLC_FWD_HEADER_LENGTH222222 = 10;
                        var beU222222 = UnconfirmedServiceChoice222222;
                        var unconfirmedServiceMap222222 = {
                          [beU222222.I_AM]: "iAm",
                          [beU222222.WHO_IS]: "whoIs",
                          [beU222222.WHO_HAS]: "whoHas",
                          [beU222222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                          [beU222222.TIME_SYNCHRONIZATION]: "timeSync",
                          [beU222222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                          [beU222222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                          [beU222222.I_HAVE]: "iHave",
                          [beU222222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                        };
                        var beC222222 = ConfirmedServiceChoice222222;
                        var confirmedServiceMap222222 = {
                          [beC222222.READ_PROPERTY]: "readProperty",
                          [beC222222.WRITE_PROPERTY]: "writeProperty",
                          [beC222222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                          [beC222222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                          [beC222222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                          [beC222222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                          [beC222222.ATOMIC_READ_FILE]: "atomicReadFile",
                          [beC222222.SUBSCRIBE_COV]: "subscribeCov",
                          [beC222222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                          [beC222222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                          [beC222222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                          [beC222222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                          [beC222222.READ_RANGE]: "readRange",
                          [beC222222.CREATE_OBJECT]: "createObject",
                          [beC222222.DELETE_OBJECT]: "deleteObject",
                          [beC222222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                          [beC222222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                          [beC222222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                          [beC222222.GET_EVENT_INFORMATION]: "getEventInformation",
                          [beC222222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                          [beC222222.ADD_LIST_ELEMENT]: "addListElement",
                          [beC222222.REMOVE_LIST_ELEMENT]: "removeListElement",
                          [beC222222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                        };
                        var errorReasonEnums222222 = {
                          BacnetAbort: RejectReason222222
                        };
                        var BacnetError222222 = class extends Error {
                          constructor(message, bacnetErrorClass, bacnetErrorCode) {
                            super(message);
                            this.bacnetErrorClass = bacnetErrorClass;
                            this.bacnetErrorCode = bacnetErrorCode;
                          }
                        };
                        function bacnetErrorToString222222(err) {
                          var _a;
                          const isError = err instanceof Error || err instanceof BacnetError222222;
                          if (!isError)
                            return;
                          const message = err.message;
                          const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                          const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                          if (!errorReasonEnums222222[reasonClass])
                            return;
                          const reasonString = errorReasonEnums222222[reasonClass][reason];
                          return reasonClass + ": " + reasonString;
                        }
                        var Client222222 = class extends EventEmitter2222222 {
                          /**
                           *
                           * @param options
                           */
                          constructor(options) {
                            super();
                            options = options || {};
                            this._invokeCounter = 1;
                            this._invokeStore = {};
                            this._lastSequenceNumber = 0;
                            this._segmentStore = [];
                            this._settings = {
                              port: options.port || 47808,
                              interface: options.interface || ALL_INTERFACES222222,
                              transport: options.transport,
                              broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS222222,
                              apduTimeout: options.apduTimeout || 3e3
                            };
                            options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                            this._transport = this._settings.transport || new Transport222222({
                              port: this._settings.port,
                              interface: this._settings.interface,
                              broadcastAddress: this._settings.broadcastAddress,
                              reuseAddr: options.reuseAddr
                            });
                            this._transport.on("message", this._receiveData.bind(this));
                            this._transport.on("error", this._receiveError.bind(this));
                            this._transport.on("listening", () => this.emit("listening"));
                            this._transport.open();
                          }
                          /**
                           *
                           * @returns {number}
                           * @private
                           */
                          _getInvokeId() {
                            const id = this._invokeCounter++;
                            if (id >= 256)
                              this._invokeCounter = 1;
                            return id - 1;
                          }
                          /**
                           *
                           * @param id
                           * @param err
                           * @param result
                           * @returns {*}
                           * @private
                           */
                          _invokeCallback(id, err, result) {
                            const callback = this._invokeStore[id];
                            if (callback) {
                              return void callback(err, result);
                            }
                            debug3222222("InvokeId", id, "not found -> drop package");
                          }
                          /**
                           *
                           * @param id
                           * @param callback
                           * @private
                           */
                          _addCallback(id, callback) {
                            const timeout = setTimeout(() => {
                              delete this._invokeStore[id];
                              callback(new Error("ERR_TIMEOUT"));
                            }, this._settings.apduTimeout);
                            this._invokeStore[id] = (err, data) => {
                              clearTimeout(timeout);
                              delete this._invokeStore[id];
                              callback(err, data);
                            };
                          }
                          /**
                           *
                           * @param isForwarded
                           * @returns {{offset: (number), buffer: *}}
                           * @private
                           */
                          _getBuffer(isForwarded) {
                            return Object.assign(
                              {},
                              {
                                buffer: Buffer.alloc(this._transport.getMaxPayload()),
                                offset: isForwarded ? BVLC_FWD_HEADER_LENGTH222222 : BVLC_HEADER_LENGTH2222222
                              }
                            );
                          }
                          /**
                           *
                           * @param invokeId
                           * @param buffer
                           * @param offset
                           * @param length
                           * @returns {*}
                           * @private
                           */
                          _processError(invokeId, buffer, offset, length) {
                            const result = error_exports222222.decode(buffer, offset);
                            trace2222222("Received error:", result);
                            if (!result) {
                              return debug3222222("Couldn`t decode Error");
                            }
                            const err = new BacnetError222222(error_exports222222.buildMessage(result));
                            err.bacnetErrorClass = result.class;
                            err.bacnetErrorCode = result.code;
                            this._invokeCallback(invokeId, err);
                          }
                          /**
                           *
                           * @param invokeId
                           * @param reason
                           * @private
                           */
                          _processAbort(invokeId, reason) {
                            const err = new BacnetError222222("BacnetAbort - Reason:" + reason);
                            err.bacnetAbortReason = reason;
                            err.bacnetErrorClass = AbortReason222222;
                            this._invokeCallback(invokeId, err);
                          }
                          /**
                           *
                           * @param receiver
                           * @param negative
                           * @param server
                           * @param originalInvokeId
                           * @param sequencenumber
                           * @param actualWindowSize
                           * @private
                           */
                          _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                            const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                            encode31222222(
                              buffer,
                              0,
                              receiver,
                              null,
                              DEFAULT_HOP_COUNT2222222,
                              0,
                              0
                            );
                            encodeSegmentAck222222(
                              buffer,
                              64 | (negative ? 2 : 0) | (server ? 1 : 0),
                              originalInvokeId,
                              sequencenumber,
                              actualWindowSize
                            );
                            this.sendBvlc(receiver, buffer);
                          }
                          /**
                           *
                           * @param msg
                           * @param first
                           * @param moreFollows
                           * @param buffer
                           * @param offset
                           * @param length
                           * @private
                           */
                          _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                            if (first) {
                              this._segmentStore = [];
                              msg.type &= ~8;
                              let apduHeaderLen = 3;
                              if ((msg.type & PDU_TYPE_MASK222222) === 0) {
                                apduHeaderLen = 4;
                              }
                              const apdubuffer = this._getBuffer();
                              apdubuffer.offset = 0;
                              buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                              if ((msg.type & PDU_TYPE_MASK222222) === 0) {
                                encodeConfirmedServiceRequest222222(
                                  apdubuffer,
                                  msg.type,
                                  msg.service,
                                  msg.maxSegments,
                                  msg.maxApdu,
                                  msg.invokeId,
                                  0,
                                  0
                                );
                              } else {
                                encodeComplexAck222222(
                                  apdubuffer,
                                  msg.type,
                                  msg.service,
                                  msg.invokeId,
                                  0,
                                  0
                                );
                              }
                              this._segmentStore.push(
                                //@ts-ignore
                                apdubuffer.buffer.slice(0, length + apduHeaderLen)
                              );
                            } else {
                              this._segmentStore.push(buffer.slice(offset, offset + length));
                            }
                            if (!moreFollows) {
                              const apduBuffer = Buffer.concat(this._segmentStore);
                              this._segmentStore = [];
                              msg.type &= ~8;
                              this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                            }
                          }
                          /**
                           *
                           * @param msg
                           * @param server
                           * @param buffer
                           * @param offset
                           * @param length
                           * @private
                           */
                          _processSegment(msg, server, buffer, offset, length) {
                            let first = false;
                            if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                              first = true;
                            } else {
                              if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                                return this._segmentAckResponse(
                                  msg.header.address,
                                  true,
                                  server,
                                  msg.invokeId,
                                  this._lastSequenceNumber,
                                  msg.proposedWindowNumber
                                );
                              }
                            }
                            this._lastSequenceNumber = msg.sequencenumber;
                            const moreFollows = msg.type & 4;
                            if (!moreFollows) {
                              this._lastSequenceNumber = 0;
                            }
                            if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                              this._segmentAckResponse(
                                msg.header.address,
                                false,
                                server,
                                msg.invokeId,
                                msg.sequencenumber,
                                msg.proposedWindowNumber
                              );
                            }
                            this._performDefaultSegmentHandling(
                              msg,
                              first,
                              moreFollows,
                              buffer,
                              offset,
                              length
                            );
                          }
                          /**
                           *
                           * @param serviceMap
                           * @param content
                           * @param buffer
                           * @param offset
                           * @param length
                           * @returns {*}
                           * @private
                           */
                          _processServiceRequest(serviceMap, content, buffer, offset, length) {
                            let result;
                            const sender = content.header.sender;
                            if (sender.address === LOCALHOST_INTERFACES_IPV4222222) {
                              debug3222222("Received and skipped localhost service request:", content.service);
                              return;
                            }
                            const name = serviceMap[content.service];
                            if (!name) {
                              debug3222222("Received unsupported service request:", content.service);
                              return;
                            }
                            const id = content.invokeId ? "@" + content.invokeId : "";
                            trace2222222(`Received service request${id}:`, name);
                            const serviceHandler = services_exports222222[name];
                            if (serviceHandler) {
                              try {
                                content.payload = serviceHandler.decode(buffer, offset, length);
                                trace2222222(`Handled service request${id}:`, name, JSON.stringify(content));
                              } catch (e) {
                                debug3222222("Exception thrown when processing message:", e);
                                debug3222222("Original message was", name + ":", content);
                                return;
                              }
                              if (!content.payload) {
                                return debug3222222("Received invalid", name, "message");
                              }
                            } else {
                              debug3222222("No serviceHandler defined for:", name);
                            }
                            if (this.listenerCount(name)) {
                              trace2222222("listener count by name emits " + name + " with content");
                              this.emit(name, content);
                            } else {
                              if (this.listenerCount("unhandledEvent")) {
                                trace2222222("unhandled event emiting with content");
                                this.emit("unhandledEvent", content);
                              } else {
                                trace2222222(
                                  "no unhandled event handler with header: " + JSON.stringify(content.header)
                                );
                                if (content.header.expectingReply) {
                                  debug3222222("Replying with error for unhandled service:", name);
                                  content.header.sender.forwardedFrom = null;
                                  this.errorResponse(
                                    content.header.sender,
                                    content.service,
                                    content.invokeId,
                                    5,
                                    67
                                    /* REJECT_UNRECOGNIZED_SERVICE */
                                  );
                                }
                              }
                            }
                          }
                          /**
                           *
                           * @param buffer
                           * @param offset
                           * @param length
                           * @param header
                           * @private
                           */
                          _handlePdu(buffer, offset, length, header) {
                            let msg;
                            trace2222222("handlePdu Header: ", header);
                            switch (header.apduType & PDU_TYPE_MASK222222) {
                              case 16:
                                msg = decodeUnconfirmedServiceRequest222222(buffer, offset);
                                msg.header = header;
                                msg.header.confirmedService = false;
                                this._processServiceRequest(
                                  unconfirmedServiceMap222222,
                                  msg,
                                  buffer,
                                  offset + msg.len,
                                  length - msg.len
                                );
                                break;
                              case 32:
                                msg = decodeSimpleAck222222(buffer, offset);
                                offset += msg.len;
                                length -= msg.len;
                                this._invokeCallback(msg.invokeId, null, {
                                  msg,
                                  buffer,
                                  offset: offset + msg.len,
                                  length: length - msg.len
                                });
                                break;
                              case 48:
                                msg = decodeComplexAck222222(buffer, offset);
                                msg.header = header;
                                if ((header.apduType & 8) === 0) {
                                  this._invokeCallback(msg.invokeId, null, {
                                    msg,
                                    buffer,
                                    offset: offset + msg.len,
                                    length: length - msg.len
                                  });
                                } else {
                                  this._processSegment(
                                    msg,
                                    true,
                                    buffer,
                                    offset + msg.len,
                                    length - msg.len
                                  );
                                }
                                break;
                              case 64:
                                msg = decodeSegmentAck222222(buffer, offset);
                                msg.header = header;
                                this._processSegment(
                                  msg,
                                  true,
                                  buffer,
                                  offset + msg.len,
                                  length - msg.len
                                );
                                break;
                              case 80:
                                msg = decodeError222222(buffer, offset);
                                this._processError(
                                  msg.invokeId,
                                  buffer,
                                  offset + msg.len,
                                  length - msg.len
                                );
                                break;
                              case 96:
                              case 112:
                                msg = decodeAbort222222(buffer, offset);
                                this._processAbort(msg.invokeId, msg.reason);
                                break;
                              case 0:
                                msg = decodeConfirmedServiceRequest222222(buffer, offset);
                                msg.header = header;
                                msg.header.confirmedService = true;
                                if ((header.apduType & 8) === 0) {
                                  this._processServiceRequest(
                                    confirmedServiceMap222222,
                                    msg,
                                    buffer,
                                    offset + msg.len,
                                    length - msg.len
                                  );
                                } else {
                                  this._processSegment(
                                    msg,
                                    true,
                                    buffer,
                                    offset + msg.len,
                                    length - msg.len
                                  );
                                }
                                break;
                              default:
                                debug3222222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                                break;
                            }
                          }
                          /**
                           *
                           * @param buffer
                           * @param offset
                           * @param msgLength
                           * @param header
                           * @returns {*}
                           * @private
                           */
                          _handleNpdu(buffer, offset, msgLength, header) {
                            if (msgLength <= 0) {
                              return trace2222222("No NPDU data -> Drop package");
                            }
                            const result = decode31222222(buffer, offset);
                            if (!result) {
                              return trace2222222("Received invalid NPDU header -> Drop package");
                            }
                            if (result.funct & 128) {
                              return trace2222222("Received network layer message -> Drop package");
                            }
                            offset += result.len;
                            msgLength -= result.len;
                            if (msgLength <= 0) {
                              return trace2222222("No APDU data -> Drop package");
                            }
                            header.apduType = getDecodedType222222(buffer, offset);
                            header.expectingReply = !!(result.funct & 4);
                            this._handlePdu(buffer, offset, msgLength, header);
                          }
                          /**
                           *
                           * @param buffer
                           * @param remoteAddress
                           * @returns {*}
                           * @private
                           */
                          _receiveData(buffer, remoteAddress) {
                            if (buffer.length < BVLC_HEADER_LENGTH322222) {
                              return trace2222222("Received invalid data -> Drop package");
                            }
                            const result = decode32222222(buffer, 0);
                            if (!result) {
                              return trace2222222("Received invalid BVLC header -> Drop package");
                            }
                            let header = {
                              // Which function the packet came in on, so later code can distinguish
                              // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                              func: result.func,
                              sender: {
                                // Address of the host we are directly connected to. String, IP:port.
                                address: remoteAddress,
                                // If the host is a BBMD passing messages along to another node, this
                                // is the address of the distant BACnet node.  String, IP:port.
                                // Typically we won't have network connectivity to this address, but
                                // we have to include it in replies so the host we are connect to knows
                                // where to forward the messages.
                                forwardedFrom: null
                              }
                            };
                            switch (result.func) {
                              case 10:
                              case 11:
                                this._handleNpdu(
                                  buffer,
                                  result.len,
                                  buffer.length - result.len,
                                  header
                                );
                                break;
                              case 4:
                                header.sender.forwardedFrom = result.originatingIP;
                                this._handleNpdu(
                                  buffer,
                                  result.len,
                                  buffer.length - result.len,
                                  header
                                );
                                break;
                              case 5:
                                let decodeResult = register_foreign_device_exports222222.decode(
                                  buffer,
                                  result.len,
                                  buffer.length - result.len
                                );
                                if (!decodeResult) {
                                  return trace2222222("Received invalid registerForeignDevice message");
                                }
                                this.emit("registerForeignDevice", {
                                  header,
                                  payload: decodeResult
                                });
                                break;
                              case 9:
                                this._handleNpdu(
                                  buffer,
                                  result.len,
                                  buffer.length - result.len,
                                  header
                                );
                                break;
                              default:
                                debug3222222(
                                  "Received unknown BVLC function " + result.func + " -> Drop package"
                                );
                                break;
                            }
                          }
                          /**
                           * @event bacnet.error
                           * @param {error} err - The error object thrown by the underlying transport layer.
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * client.on('error', (err) => {
                           *   console.log('Error occurred: ', err);
                           *   client.close();
                           * });
                           */
                          _receiveError(err) {
                            this.emit("error", err);
                          }
                          /**
                           * The whoIs command discovers all BACNET devices in a network.
                           * @function bacnet.whoIs
                           * @param {string} receiver - IP address of the target device.
                           * @param {object=} options
                           * @param {number=} options.lowLimit - Minimal device instance number to search for.
                           * @param {number=} options.highLimit - Maximal device instance number to search for.
                           * @fires bacnet.iAm
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * client.whoIs();
                           */
                          whoIs(receiver, options) {
                            if (!options) {
                              if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                                options = receiver;
                                receiver = void 0;
                              }
                            }
                            options = options || {};
                            const settings = {
                              lowLimit: options.lowLimit,
                              highLimit: options.highLimit
                            };
                            const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                            encode31222222(
                              buffer,
                              0,
                              //@ts-ignore
                              receiver,
                              null,
                              DEFAULT_HOP_COUNT2222222,
                              0,
                              0
                            );
                            encodeUnconfirmedServiceRequest222222(
                              buffer,
                              16,
                              8
                              /* WHO_IS */
                            );
                            who_is_exports222222.encode(buffer, settings.lowLimit, settings.highLimit);
                            this.sendBvlc(receiver, buffer);
                          }
                          /**
                           * The timeSync command sets the time of a target device.
                           * @function bacnet.timeSync
                           * @param {string} receiver - IP address of the target device.
                           * @param {date} dateTime - The date and time to set on the target device.
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * client.timeSync('192.168.1.43', new Date());
                           */
                          timeSync(receiver, dateTime) {
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(buffer, 0, receiver);
                            encodeUnconfirmedServiceRequest222222(
                              buffer,
                              16,
                              6
                              /* TIME_SYNCHRONIZATION */
                            );
                            time_sync_exports222222.encode(buffer, dateTime);
                            this.sendBvlc(receiver, buffer);
                          }
                          /**
                           * The timeSyncUTC command sets the UTC time of a target device.
                           * @function bacnet.timeSyncUTC
                           * @param {string} receiver - IP address of the target device.
                           * @param {date} dateTime - The date and time to set on the target device.
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * client.timeSyncUTC('192.168.1.43', new Date());
                           */
                          timeSyncUTC(receiver, dateTime) {
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(buffer, 0, receiver);
                            encodeUnconfirmedServiceRequest222222(
                              buffer,
                              16,
                              9
                              /* UTC_TIME_SYNCHRONIZATION */
                            );
                            time_sync_exports222222.encode(buffer, dateTime);
                            this.sendBvlc(receiver, buffer);
                          }
                          /**
                           * The readProperty command reads a single property of an object from a device.
                           * @function bacnet.readProperty
                           * @param {string} receiver - IP address of the target device.
                           * @param {object} objectId - The BACNET object ID to read.
                           * @param {number} objectId.type - The BACNET object type to read.
                           * @param {number} objectId.instance - The BACNET object instance to read.
                           * @param {number} propertyId - The BACNET property id in the specified object to read.
                           * @param {object=} options
                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                           * @param {number=} options.arrayIndex - The array index of the property to be read.
                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                           *   console.log('value: ', value);
                           * });
                           */
                          readProperty(receiver, objectId, propertyId, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId(),
                              arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL222222
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              //@ts-ignore
                              receiver,
                              null,
                              DEFAULT_HOP_COUNT2222222,
                              0,
                              0
                            );
                            const type = 0 | //@ts-ignore
                            (settings.maxSegments !== 0 ? 2 : 0);
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              type,
                              12,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            read_property_exports222222.encode(
                              buffer,
                              objectId.type,
                              objectId.instance,
                              propertyId,
                              settings.arrayIndex
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              const result = read_property_exports222222.decodeAcknowledge(
                                data.buffer,
                                data.offset,
                                data.length
                              );
                              if (!result) {
                                return void next(new Error("INVALID_DECODING"));
                              }
                              next(null, result);
                            });
                          }
                          /**
                           * The writeProperty command writes a single property of an object to a device.
                           * @function bacnet.writeProperty
                           * @param {string} receiver - IP address of the target device.
                           * @param {object} objectId - The BACNET object ID to write.
                           * @param {number} objectId.type - The BACNET object type to write.
                           * @param {number} objectId.instance - The BACNET object instance to write.
                           * @param {number} propertyId - The BACNET property id in the specified object to write.
                           * @param {object[]} values - A list of values to be written to the specified property.
                           * @param {ApplicationTag} values.type - The data-type of the value to be written.
                           * @param {number} values.value - The actual value to be written.
                           * @param {object=} options
                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                           * @param {number=} options.arrayIndex - The array index of the property to be read.
                           * @param {number=} options.priority - The priority of the value to be written.
                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                           *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                           * ], (err, value) => {
                           *   console.log('value: ', value);
                           * });
                           */
                          writeProperty(receiver, objectId, propertyId, values, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId(),
                              arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL222222,
                              priority: options.priority || ASN1_NO_PRIORITY222222
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              //@ts-ignore Todo somehow types do not match at all
                              receiver,
                              null,
                              DEFAULT_HOP_COUNT2222222,
                              0,
                              0
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              15,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            write_property_exports222222.encode(
                              buffer,
                              objectId.type,
                              objectId.instance,
                              propertyId,
                              settings.arrayIndex,
                              settings.priority,
                              values
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              next(err);
                            });
                          }
                          /**
                           * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                           * @function bacnet.readPropertyMultiple
                           * @param {string} receiver - IP address of the target device.
                           * @param {object[]} propertiesArray - List of object and property specifications to be read.
                           * @param {object} propertiesArray.objectId - Specifies which object to read.
                           * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                           * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                           * @param {object[]} propertiesArray.properties - List of properties to be read.
                           * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                           * @param {object=} options
                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * const requestArray = [
                           *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                           * ];
                           * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                           *   console.log('value: ', value);
                           * });
                           */
                          readPropertyMultiple(receiver, propertiesArray, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                            const buffer = this._getBuffer(!!isForwarded);
                            encode31222222(
                              buffer,
                              0 | 4,
                              //@ts-ignore Todo somehow types do not match at all
                              receiver,
                              null,
                              DEFAULT_HOP_COUNT2222222,
                              0,
                              0
                            );
                            const type = 0 | //@ts-ignore
                            (settings.maxSegments !== 0 ? 2 : 0);
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              type,
                              14,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            read_property_multiple_exports222222.encode(buffer, propertiesArray);
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return next(err);
                              }
                              const result = read_property_multiple_exports222222.decodeAcknowledge(
                                data.buffer,
                                data.offset,
                                data.length
                              );
                              if (!result) {
                                return next(new Error("INVALID_DECODING"));
                              }
                              next(null, result);
                            });
                          }
                          /**
                           * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                           * @function bacnet.writePropertyMultiple
                           * @param {string} receiver - IP address of the target device.
                           * @param {object[]} values - List of object and property specifications to be written.
                           * @param {object} values.objectId - Specifies which object to read.
                           * @param {number} values.objectId.type - The BACNET object type to read.
                           * @param {number} values.objectId.instance - The BACNET object instance to read.
                           * @param {object[]} values.values - List of properties to be written.
                           * @param {object} values.values.property - Property specifications to be written.
                           * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                           * @param {number} values.values.property.index - The array index of the property to be written.
                           * @param {object[]} values.values.value - A list of values to be written to the specified property.
                           * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                           * @param {object} values.values.value.value - The actual value to be written.
                           * @param {number} values.values.priority - The priority to be used for writing to the property.
                           * @param {object=} options
                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * const values = [
                           *   {objectId: {type: 8, instance: 44301}, values: [
                           *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                           *   ]}
                           * ];
                           * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                           *   console.log('value: ', value);
                           * });
                           */
                          writePropertyMultiple(receiver, values, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              //@ts-ignore
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              16,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId
                            );
                            write_property_multiple_exports222222.encodeObject(buffer, values);
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              next(err);
                            });
                          }
                          /**
                           * The confirmedCOVNotification command is used to push notifications to other
                           * systems that have registered with us via a subscribeCOV message.
                           * @function bacnet.confirmedCOVNotification
                           * @param {string} receiver - IP address of the target device.
                           * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                           * @param {number} monitoredObject.type - Object type.
                           * @param {number} monitoredObject.instance - Object instance.
                           * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                           * @param {number} initiatingDeviceId - Our BACnet device ID.
                           * @param {number} lifetime - Number of seconds left until the subscription expires.
                           * @param {array} values - values for the monitored object.  See example.
                           * @param {object=} options
                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * const settings = {deviceId: 123}; // our BACnet device
                           *
                           * // Items saved from subscribeCOV message
                           * const monitoredObject = {type: 1, instance: 1};
                           * const subscriberProcessId = 123;
                           *
                           * client.confirmedCOVNotification(
                           *   '192.168.1.43',
                           *   monitoredObject,
                           *   subscriberProcessId,
                           *   settings.deviceId,
                           *   30, // should be lifetime of subscription really
                           *   [
                           *     {
                           *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                           *       value: [
                           *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                           *       ],
                           *     },
                           *   ],
                           *   (err) => {
                           *     console.log('error: ', err);
                           *   }
                           * );
                           */
                          confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer();
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              1,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            cov_notify_exports222222.encode(
                              buffer,
                              subscribeId,
                              initiatingDeviceId,
                              monitoredObject,
                              lifetime,
                              values
                            );
                            encode32222222(
                              buffer.buffer,
                              10,
                              buffer.offset
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              next();
                            });
                          }
                          /**
                           * The deviceCommunicationControl command enables or disables network communication of the target device.
                           * @function bacnet.deviceCommunicationControl
                           * @param {string} receiver - IP address of the target device.
                           * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                           * @param {EnableDisable} enableDisable - The network communication state to set.
                           * @param {object=} options
                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                           * @param {string=} options.password - The optional password used to set the network communication state.
                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                           *   console.log('error: ', err);
                           * });
                           */
                          deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId(),
                              password: options.password
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              17,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            device_communication_control_exports222222.encode(
                              buffer,
                              timeDuration,
                              enableDisable,
                              settings.password
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              next(err);
                            });
                          }
                          /**
                           * The reinitializeDevice command initiates a restart of the target device.
                           * @function bacnet.reinitializeDevice
                           * @param {string} receiver - IP address of the target device.
                           * @param {ReinitializedState} state - The type of restart to be initiated.
                           * @param {object=} options
                           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                           * @param {string=} options.password - The optional password used to restart the device.
                           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                           *   console.log('value: ', value);
                           * });
                           */
                          reinitializeDevice(receiver, state, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId(),
                              password: options.password
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              20,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            reinitialize_device_exports222222.encode(buffer, state, settings.password);
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              next(err);
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param objectId
                           * @param position
                           * @param fileBuffer
                           * @param options
                           * @param next
                           */
                          writeFile(receiver, objectId, position, fileBuffer, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              7,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            atomic_write_file_exports222222.encode(
                              buffer,
                              false,
                              objectId,
                              position,
                              fileBuffer
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              const result = atomic_write_file_exports222222.decodeAcknowledge(
                                data.buffer,
                                data.offset,
                                data.length
                              );
                              if (!result) {
                                return void next(new Error("INVALID_DECODING"));
                              }
                              next(null, result);
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param objectId
                           * @param position
                           * @param count
                           * @param options
                           * @param next
                           */
                          readFile(receiver, objectId, position, count, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              6,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            atomic_read_file_exports222222.encode(buffer, true, objectId, position, count);
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              const result = atomic_read_file_exports222222.decodeAcknowledge(
                                data.buffer,
                                data.offset,
                                data.length
                              );
                              if (!result) {
                                return void next(new Error("INVALID_DECODING"));
                              }
                              next(null, result);
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param objectId
                           * @param idxBegin
                           * @param quantity
                           * @param options
                           * @param next
                           */
                          readRange(receiver, objectId, idxBegin, quantity, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              26,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            read_range_exports222222.encode(
                              buffer,
                              objectId,
                              131,
                              ASN1_ARRAY_ALL222222,
                              0,
                              idxBegin,
                              /* @__PURE__ */ new Date(),
                              quantity
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              const result = read_range_exports222222.decodeAcknowledge(
                                data.buffer,
                                data.offset,
                                data.length
                              );
                              if (!result) {
                                return void next(new Error("INVALID_DECODING"));
                              }
                              next(null, result);
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param objectId
                           * @param subscribeId
                           * @param cancel
                           * @param issueConfirmedNotifications
                           * @param lifetime
                           * @param options
                           * @param next
                           */
                          subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                            const next = nextFunc || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              // @ts-ignore TODO types not matching with documentation and code
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              5,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            subscribe_cov_exports222222.encode(
                              buffer,
                              subscribeId,
                              objectId,
                              cancel,
                              issueConfirmedNotifications,
                              lifetime
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              next();
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param objectId
                           * @param monitoredProperty
                           * @param subscribeId
                           * @param cancel
                           * @param issueConfirmedNotifications
                           * @param options
                           * @param next
                           */
                          subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              28,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            subscribe_property_exports222222.encode(
                              buffer,
                              subscribeId,
                              objectId,
                              cancel,
                              issueConfirmedNotifications,
                              0,
                              monitoredProperty,
                              false,
                              15
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              next();
                            });
                          }
                          /**
                           * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                           * @function bacnet.unconfirmedCOVNotification
                           * @param {string} receiver - IP address of the target device.
                           * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                           * @param {number} initiatingDeviceId - The id of this device.
                           * @param {object} monitoredObjectId - Specifies about which object the notification is.
                           * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                           * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                           * @param {number} timeRemaining - How long the subscription is still active in seconds.
                           * @param {object[]} values - List of properties with updated values.
                           * @param {object} values.property - Property specifications.
                           * @param {number} values.property.id - The updated BACNET property id.
                           * @param {number} values.property.index - The array index of the updated property.
                           * @param {object[]} values.value - A list of updated values.
                           * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                           * @param {object} values.value.value - The actual updated value.
                           * @param {number} values.priority - The priority of the updated property.
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * client.unconfirmedCOVNotification(
                           *            '127.0.0.1',
                           *            3,
                           *            433,
                           *            {type: 2, instance: 122},
                           *            120,
                           *            [
                           *              {
                           *                property: {id: 85},
                           *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                           *              },
                           *              {
                           *                property: {id: 111},
                           *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                           *              }
                           *            ]);
                           */
                          unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                            const buffer = this._getBuffer();
                            encode31222222(buffer, 0, receiver);
                            encodeUnconfirmedServiceRequest222222(
                              buffer,
                              16,
                              2
                              /* UNCONFIRMED_COV_NOTIFICATION */
                            );
                            cov_notify_exports222222.encode(
                              buffer,
                              subscriberProcessId,
                              initiatingDeviceId,
                              monitoredObjectId,
                              timeRemaining,
                              values
                            );
                            encode32222222(
                              buffer.buffer,
                              10,
                              buffer.offset
                            );
                            this._transport.send(buffer.buffer, buffer.offset, receiver);
                          }
                          /**
                           *
                           * @param receiver
                           * @param objectId
                           * @param values
                           * @param options
                           * @param next
                           */
                          createObject(receiver, objectId, values, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              10,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            create_object_exports222222.encode(buffer, objectId, values);
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              next();
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param objectId
                           * @param options
                           * @param next
                           */
                          deleteObject(receiver, objectId, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              11,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            delete_object_exports222222.encode(buffer, objectId);
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              next();
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param objectId
                           * @param reference
                           * @param values
                           * @param options
                           * @param next
                           */
                          removeListElement(receiver, objectId, reference, values, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              9,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            add_list_element_exports222222.encode(
                              buffer,
                              objectId,
                              reference.id,
                              reference.index,
                              values
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              next();
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param objectId
                           * @param reference
                           * @param values
                           * @param options
                           * @param next
                           */
                          addListElement(receiver, objectId, reference, values, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              8,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            add_list_element_exports222222.encode(
                              buffer,
                              objectId,
                              reference.id,
                              reference.index,
                              values
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              next();
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param options
                           * @param next
                           */
                          getAlarmSummary(receiver, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              3,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              const result = alarm_summary_exports222222.decode(
                                data.buffer,
                                data.offset,
                                data.length
                              );
                              if (!result) {
                                return void next(new Error("INVALID_DECODING"));
                              }
                              next(null, result);
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param objectId
                           * @param options
                           * @param next
                           */
                          getEventInformation(receiver, objectId, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              29,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            encodeContextObjectId222222(buffer, 0, objectId.type, objectId.instance);
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              const result = event_information_exports222222.decode(
                                data.buffer,
                                data.offset,
                                data.length
                              );
                              if (!result) {
                                return void next(new Error("INVALID_DECODING"));
                              }
                              next(null, result);
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param objectId
                           * @param eventState
                           * @param ackText
                           * @param evTimeStamp
                           * @param ackTimeStamp
                           * @param options
                           * @param next
                           */
                          acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              0,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            alarm_acknowledge_exports222222.encode(
                              buffer,
                              57,
                              objectId,
                              eventState,
                              ackText,
                              evTimeStamp,
                              ackTimeStamp
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              next();
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param vendorId
                           * @param serviceNumber
                           * @param data
                           * @param options
                           * @param next
                           */
                          confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              18,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            private_transfer_exports222222.encode(buffer, vendorId, serviceNumber, data);
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data2) => {
                              if (err) {
                                return void next(err);
                              }
                              next();
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param vendorId
                           * @param serviceNumber
                           * @param data
                           */
                          unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(buffer, 0, receiver);
                            encodeUnconfirmedServiceRequest222222(
                              buffer,
                              16,
                              4
                              /* UNCONFIRMED_PRIVATE_TRANSFER */
                            );
                            private_transfer_exports222222.encode(buffer, vendorId, serviceNumber, data);
                            this.sendBvlc(receiver, buffer);
                          }
                          /**
                           *
                           * @param receiver
                           * @param acknowledgmentFilter
                           * @param options
                           * @param next
                           */
                          getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              4,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            get_enrollment_summary_exports222222.encode(
                              buffer,
                              acknowledgmentFilter,
                              options.enrollmentFilter,
                              options.eventStateFilter,
                              options.eventTypeFilter,
                              options.priorityFilter,
                              options.notificationClassFilter
                            );
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              const result = get_enrollment_summary_exports222222.decodeAcknowledge(
                                data.buffer,
                                data.offset,
                                data.length
                              );
                              if (!result) {
                                return void next(new Error("INVALID_DECODING"));
                              }
                              next(null, result);
                            });
                          }
                          /**
                           *
                           * @param receiver
                           * @param eventNotification
                           */
                          unconfirmedEventNotification(receiver, eventNotification) {
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(buffer, 0, receiver);
                            encodeUnconfirmedServiceRequest222222(
                              buffer,
                              16,
                              3
                              /* UNCONFIRMED_EVENT_NOTIFICATION */
                            );
                            event_notify_data_exports222222.encode(buffer, eventNotification);
                            this.sendBvlc(receiver, buffer);
                          }
                          /**
                           *
                           * @param receiver
                           * @param eventNotification
                           * @param options
                           * @param next
                           */
                          confirmedEventNotification(receiver, eventNotification, options, next) {
                            next = next || options;
                            const settings = {
                              maxSegments: options.maxSegments || 112,
                              maxApdu: options.maxApdu || 5,
                              invokeId: options.invokeId || this._getInvokeId()
                            };
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(
                              buffer,
                              0 | 4,
                              receiver
                            );
                            encodeConfirmedServiceRequest222222(
                              buffer,
                              0,
                              2,
                              settings.maxSegments,
                              settings.maxApdu,
                              settings.invokeId,
                              0,
                              0
                            );
                            event_notify_data_exports222222.encode(buffer, eventNotification);
                            this.sendBvlc(receiver, buffer);
                            this._addCallback(settings.invokeId, (err, data) => {
                              if (err) {
                                return void next(err);
                              }
                              next();
                            });
                          }
                          /**
                           * The readPropertyResponse call sends a response with information about one of our properties.
                           * @function bacnet.readPropertyResponse
                           * @param {string} receiver - IP address of the target device.
                           * @param {number} invokeId - ID of the original readProperty request.
                           * @param {object} objectId - objectId from the original request,
                           * @param {object} property - property being read, taken from the original request.
                           * @param {object=} options varying behaviour for special circumstances
                           * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                           */
                          readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(buffer, 0, receiver);
                            encodeComplexAck222222(
                              buffer,
                              48,
                              12,
                              invokeId
                            );
                            read_property_exports222222.encodeAcknowledge(
                              buffer,
                              objectId,
                              property.id,
                              property.index,
                              value
                            );
                            this.sendBvlc(receiver, buffer);
                          }
                          readPropertyMultipleResponse(receiver, invokeId, values) {
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(buffer, 0, receiver);
                            encodeComplexAck222222(
                              buffer,
                              48,
                              14,
                              invokeId
                            );
                            read_property_multiple_exports222222.encodeAcknowledge(buffer, values);
                            this.sendBvlc(receiver, buffer);
                          }
                          /**
                           * The iAmResponse command is sent as a reply to a whoIs request.
                           * @function bacnet.iAmResponse
                           * @param {object} receiver - address to send packet to, null for local broadcast.
                           * @param {number} deviceId - Our device ID.
                           * @param {number} segmentation - an enum.Segmentation value.
                           * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                           */
                          iAmResponse(receiver, deviceId, segmentation, vendorId) {
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(buffer, 0, receiver);
                            encodeUnconfirmedServiceRequest222222(
                              buffer,
                              16,
                              0
                              /* I_AM */
                            );
                            i_am_exports222222.encode(
                              buffer,
                              deviceId,
                              this._transport.getMaxPayload(),
                              segmentation,
                              vendorId
                            );
                            this.sendBvlc(receiver, buffer);
                          }
                          /**
                           *
                           * @param receiver
                           * @param deviceId
                           * @param objectId
                           * @param objectName
                           */
                          iHaveResponse(receiver, deviceId, objectId, objectName) {
                            const buffer = this._getBuffer(
                              !!(typeof receiver !== "string" && receiver.forwardedFrom)
                            );
                            encode31222222(buffer, 0, receiver);
                            encodeUnconfirmedServiceRequest222222(
                              buffer,
                              16,
                              1
                              /* I_HAVE */
                            );
                            i_have_exports222222.encode(buffer, deviceId, objectId, objectName);
                            this.sendBvlc(receiver, buffer);
                          }
                          /**
                           *
                           * @param receiver
                           * @param service
                           * @param invokeId
                           */
                          simpleAckResponse(receiver, service, invokeId) {
                            if (typeof receiver === "string")
                              return;
                            const buffer = this._getBuffer(!!receiver.forwardedFrom);
                            encode31222222(buffer, 0, receiver);
                            encodeSimpleAck222222(
                              buffer,
                              32,
                              service,
                              invokeId
                            );
                            this.sendBvlc(receiver, buffer);
                          }
                          /**
                           *
                           * @param receiver
                           * @param service
                           * @param invokeId
                           * @param errorClass
                           * @param errorCode
                           */
                          errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                            trace2222222(
                              `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                                service
                              )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                            );
                            trace2222222(
                              `error message ${error_exports222222.buildMessage({
                                class: errorClass,
                                code: errorCode
                              })}`
                            );
                            const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                            if (typeof receiver === "string")
                              throw new Error("receiver must be object");
                            const buffer = this._getBuffer(hasSource);
                            encode31222222(buffer, 0, receiver);
                            encodeError222222(buffer, 80, service, invokeId);
                            error_exports222222.encode(buffer, errorClass, errorCode);
                            this.sendBvlc(receiver, buffer);
                          }
                          /**
                           *
                           * @param receiver
                           * @param buffer
                           */
                          sendBvlc(receiver, buffer) {
                            if (typeof receiver === "string") {
                              receiver = {
                                address: receiver
                              };
                            }
                            if (receiver && receiver.forwardedFrom) {
                              encode32222222(
                                buffer.buffer,
                                4,
                                buffer.offset,
                                receiver.forwardedFrom
                              );
                            } else if (receiver && receiver.address) {
                              encode32222222(
                                buffer.buffer,
                                10,
                                buffer.offset
                              );
                            } else {
                              encode32222222(
                                buffer.buffer,
                                11,
                                buffer.offset
                              );
                            }
                            this._transport.send(
                              buffer.buffer,
                              buffer.offset,
                              receiver && receiver.address || null
                            );
                          }
                          /**
                           * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                           * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                           * @function bacnet.resultResponse
                           * @param {string} receiver - IP address of the target device.
                           * @param {number} resultCode - Single value from BvlcResultFormat enum.
                           */
                          resultResponse(receiver, resultCode) {
                            const buffer = this._getBuffer();
                            encodeResult222222(buffer, resultCode);
                            encode32222222(
                              buffer.buffer,
                              0,
                              buffer.offset
                            );
                            this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                          }
                          /**
                           * Unloads the current bacnet instance and closes the underlying UDP socket.
                           * @function bacnet.close
                           * @example
                           * const bacnet = require('node-bacnet');
                           * const client = new bacnet();
                           *
                           * client.close();
                           */
                          close() {
                            this._transport.close();
                          }
                          /**
                           * Helper function to take an array of enums and produce a bitstring suitable
                           * for inclusion as a property.
                           *
                           * @example
                           * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                           *   {value: bacnet.createBitstring([
                           *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                           *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                           *   ]),
                           *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                           * ],
                           */
                          static createBitstring(items) {
                            let offset = 0;
                            let bytes = [];
                            let bitsUsed = 0;
                            while (items.length) {
                              let value = 0;
                              items = items.filter((i) => {
                                if (i >= offset + 8) {
                                  return true;
                                }
                                value |= 1 << i - offset;
                                bitsUsed = Math.max(bitsUsed, i);
                                return false;
                              });
                              bytes.push(value);
                              offset += 8;
                            }
                            bitsUsed++;
                            return {
                              value: bytes,
                              bitsUsed
                            };
                          }
                        };
                        var import_underscore222222 = __toESM222222(require("underscore"));
                        var import_process222222 = __toESM222222(require("process"));
                        var import__222222 = __toESM222222(require_dist222222());
                        var PropertyIdentifierToEnumMap222222 = {};
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.OBJECT_TYPE] = import__222222.enums.ObjectType;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__222222.enums.Segmentation;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.EVENT_STATE] = import__222222.enums.EventState;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.UNITS] = import__222222.enums.EngineeringUnits;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.RELIABILITY] = import__222222.enums.Reliability;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__222222.enums.NotifyType;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.POLARITY] = import__222222.enums.Polarity;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__222222.enums.ServicesSupported;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__222222.enums.ObjectTypesSupported;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.STATUS_FLAGS] = import__222222.enums.StatusFlags;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__222222.enums.LimitEnable;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.EVENT_ENABLE] = import__222222.enums.EventTransitionBits;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__222222.enums.EventTransitionBits;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__222222.enums.DeviceStatus;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__222222.enums.DeviceStatus;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.ACK_REQUIRED] = import__222222.enums.EventTransitionBits;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.LOGGING_TYPE] = import__222222.enums.LoggingType;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__222222.enums.FileAccessMethod;
                        PropertyIdentifierToEnumMap222222[import__222222.enums.PropertyIdentifier.NODE_TYPE] = import__222222.enums.NodeType;
                        var ObjectTypeSpecificPropertyIdentifierToEnumMap222222 = {};
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BINARY_INPUT] = {};
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BINARY_INPUT][import__222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222.enums.BinaryPV;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BINARY_INPUT][import__222222.enums.PropertyIdentifier.MODE] = import__222222.enums.BinaryPV;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.ANALOG_INPUT] = {};
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.ANALOG_INPUT][import__222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222.enums.BinaryPV;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.ANALOG_OUTPUT] = {};
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.ANALOG_OUTPUT][import__222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222.enums.BinaryPV;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BINARY_OUTPUT] = {};
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BINARY_OUTPUT][import__222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222.enums.BinaryPV;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BINARY_OUTPUT][import__222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__222222.enums.BinaryPV;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BINARY_VALUE] = {};
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BINARY_VALUE][import__222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222.enums.BinaryPV;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BINARY_VALUE][import__222222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__222222.enums.BinaryPV;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222.enums.BinaryLightingPV;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BITSTRING_VALUE] = {};
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.BINARY_VALUE][import__222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222.enums.BinaryPV;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222.enums.LifeSafetyState;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222.enums.PropertyIdentifier.TRACKING_VALUE] = import__222222.enums.LifeSafetyState;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222.enums.PropertyIdentifier.MODE] = import__222222.enums.LifeSafetyMode;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__222222.enums.LifeSafetyMode;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222.enums.PropertyIdentifier.SILENCED] = import__222222.enums.LifeSafetyState;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.LIFE_SAFETY_POINT][import__222222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__222222.enums.LifeSafetyOperation;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222.enums.LifeSafetyState;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.LIFE_SAFETY_ZONE][import__222222.enums.PropertyIdentifier.MODE] = import__222222.enums.LifeSafetyMode;
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.LOAD_CONTROL] = {};
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222222[import__222222.enums.ObjectType.LOAD_CONTROL][import__222222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222222.enums.ShedState;
                        var propSubSet222222 = import_process222222.default.argv.includes("--all") ? Object.values(import__222222.enums.PropertyIdentifier) : [
                          /* normally supported from all devices */
                          import__222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                          import__222222.enums.PropertyIdentifier.OBJECT_NAME,
                          import__222222.enums.PropertyIdentifier.OBJECT_TYPE,
                          import__222222.enums.PropertyIdentifier.PRESENT_VALUE,
                          import__222222.enums.PropertyIdentifier.STATUS_FLAGS,
                          import__222222.enums.PropertyIdentifier.EVENT_STATE,
                          import__222222.enums.PropertyIdentifier.RELIABILITY,
                          import__222222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                          import__222222.enums.PropertyIdentifier.UNITS,
                          /* other properties */
                          import__222222.enums.PropertyIdentifier.DESCRIPTION,
                          import__222222.enums.PropertyIdentifier.SYSTEM_STATUS,
                          import__222222.enums.PropertyIdentifier.VENDOR_NAME,
                          import__222222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                          import__222222.enums.PropertyIdentifier.MODEL_NAME,
                          import__222222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                          import__222222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                          import__222222.enums.PropertyIdentifier.LOCATION,
                          import__222222.enums.PropertyIdentifier.LOCAL_DATE,
                          import__222222.enums.PropertyIdentifier.LOCAL_TIME,
                          import__222222.enums.PropertyIdentifier.UTC_OFFSET,
                          import__222222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                          import__222222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                          import__222222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                          import__222222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                          import__222222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                          import__222222.enums.PropertyIdentifier.OBJECT_LIST,
                          import__222222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                          import__222222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                          import__222222.enums.PropertyIdentifier.APDU_TIMEOUT,
                          import__222222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                          import__222222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                          import__222222.enums.PropertyIdentifier.DATABASE_REVISION,
                          import__222222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                          import__222222.enums.PropertyIdentifier.MAX_MASTER,
                          import__222222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                          import__222222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                        ];
                        var debug4222222 = import_process222222.default.argv.includes("--debug");
                        function getAllPropertiesManually222222(address, objectId, callback, propList, result) {
                          if (!propList) {
                            propList = propSubSet222222.map((x) => x);
                          }
                          if (!result) {
                            result = [];
                          }
                          if (!propList.length) {
                            return callback({
                              values: [
                                {
                                  objectId,
                                  values: result
                                }
                              ]
                            });
                          }
                          const prop = propList.shift();
                          bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                            if (!err) {
                              if (debug4222222) {
                                console.log("Handle value " + prop + ": ", JSON.stringify(value));
                              }
                              const objRes = value.property;
                              objRes.value = value.values;
                              result.push(objRes);
                            } else {
                            }
                            getAllPropertiesManually222222(address, objectId, callback, propList, result);
                          });
                        }
                        function readBit222222(buffer, i, bit) {
                          return (buffer[i] >> bit) % 2;
                        }
                        function handleBitString222222(buffer, bitsUsed, usedEnum) {
                          const res = [];
                          for (let i = 0; i < bitsUsed; i++) {
                            const bufferIndex = Math.floor(i / 8);
                            if (readBit222222(buffer, bufferIndex, i % 8)) {
                              res.push(import__222222.enums.getEnumName(usedEnum, i));
                            }
                          }
                          return res;
                        }
                        function parseValue222222(address, propertyIdentifierId, parentType, value, supportsMultiple, callback) {
                          let resValue = null;
                          if (value && value.type && value.value !== null && value.value !== void 0) {
                            switch (value.type) {
                              case import__222222.enums.ApplicationTag.NULL:
                                resValue = null;
                                break;
                              case import__222222.enums.ApplicationTag.BOOLEAN:
                                resValue = !!value.value;
                                break;
                              case import__222222.enums.ApplicationTag.UNSIGNED_INTEGER:
                              case import__222222.enums.ApplicationTag.SIGNED_INTEGER:
                              case import__222222.enums.ApplicationTag.REAL:
                              case import__222222.enums.ApplicationTag.DOUBLE:
                              case import__222222.enums.ApplicationTag.CHARACTER_STRING:
                                resValue = value.value;
                                break;
                              case import__222222.enums.ApplicationTag.DATE:
                              case import__222222.enums.ApplicationTag.TIME:
                              case import__222222.enums.ApplicationTag.TIMESTAMP:
                                resValue = value.value;
                                break;
                              case import__222222.enums.ApplicationTag.BIT_STRING:
                                if (ObjectTypeSpecificPropertyIdentifierToEnumMap222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap222222[parentType][objId]) {
                                  resValue = handleBitString222222(
                                    value.value.value,
                                    value.value.bitsUsed,
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222[parentType][objId]
                                  );
                                } else if (PropertyIdentifierToEnumMap222222[objId]) {
                                  resValue = handleBitString222222(
                                    value.value.value,
                                    value.value.bitsUsed,
                                    PropertyIdentifierToEnumMap222222[objId]
                                  );
                                } else {
                                  if (parentType !== import__222222.enums.ObjectType.BITSTRING_VALUE) {
                                    console.log(
                                      "Unknown value for BIT_STRING type for objId " + import__222222.enums.getEnumName(import__222222.enums.PropertyIdentifier, objId) + " and parent type " + import__222222.enums.getEnumName(import__222222.enums.ObjectType, parentType)
                                    );
                                  }
                                  resValue = value.value;
                                }
                                break;
                              case import__222222.enums.ApplicationTag.ENUMERATED:
                                if (ObjectTypeSpecificPropertyIdentifierToEnumMap222222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap222222[parentType][objId]) {
                                  resValue = import__222222.enums.getEnumName(
                                    ObjectTypeSpecificPropertyIdentifierToEnumMap222222[parentType][objId],
                                    value.value
                                  );
                                } else if (PropertyIdentifierToEnumMap222222[objId]) {
                                  resValue = import__222222.enums.getEnumName(
                                    PropertyIdentifierToEnumMap222222[objId],
                                    value.value
                                  );
                                } else {
                                  console.log(
                                    "Unknown value for ENUMERATED type for objId " + import__222222.enums.getEnumName(import__222222.enums.PropertyIdentifier, objId) + " and parent type " + import__222222.enums.getEnumName(import__222222.enums.ObjectType, parentType)
                                  );
                                  resValue = value.value;
                                }
                                break;
                              case import__222222.enums.ApplicationTag.OBJECTIDENTIFIER:
                                if (objId === import__222222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId === import__222222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId === import__222222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                                  resValue = value.value;
                                } else if (supportsMultiple) {
                                  const requestArray = [
                                    {
                                      objectId: value.value,
                                      properties: [{ id: 8 }]
                                    }
                                  ];
                                  bacnetClient.readPropertyMultiple(
                                    address,
                                    requestArray,
                                    (err, resValue2) => {
                                      parseDeviceObject222222(address, resValue2, value.value, true, callback);
                                    }
                                  );
                                  return;
                                } else {
                                  getAllPropertiesManually222222(address, value.value, (result) => {
                                    parseDeviceObject222222(address, result, value.value, false, callback);
                                  });
                                  return;
                                }
                                break;
                              case import__222222.enums.ApplicationTag.OCTET_STRING:
                                resValue = value.value;
                                break;
                              case import__222222.enums.ApplicationTag.ERROR:
                                resValue = {
                                  errorClass: import__222222.enums.getEnumName(
                                    import__222222.enums.ErrorClass,
                                    value.value.errorClass
                                  ),
                                  errorCode: import__222222.enums.getEnumName(import__222222.enums.ErrorCode, value.value.errorCode)
                                };
                                break;
                              case import__222222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                              case import__222222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                              case import__222222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                              case import__222222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                                resValue = value.value;
                                break;
                              case import__222222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                                parseValue222222(
                                  address,
                                  objId,
                                  parentType,
                                  value.value,
                                  supportsMultiple,
                                  callback
                                );
                                return;
                              case import__222222.enums.ApplicationTag.READ_ACCESS_RESULT:
                                resValue = value.value;
                                break;
                              default:
                                console.log(
                                  "unknown type " + value.type + ": " + JSON.stringify(value)
                                );
                                resValue = value;
                            }
                          }
                          setImmediate(() => callback(resValue));
                        }
                        function parseDeviceObject222222(address, obj, parent, supportsMultiple, callback) {
                          if (debug4222222) {
                            console.log(
                              "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                            );
                          }
                          if (!obj) {
                            console.log("object not valid on parse device object");
                            return;
                          }
                          if (!obj.values || !Array.isArray(obj.values)) {
                            console.log("No device or invalid response");
                            callback({ ERROR: "No device or invalid response" });
                            return;
                          }
                          let cbCount = 0;
                          let objDef = {};
                          const finalize = () => {
                            Object.keys(objDef).forEach((devId) => {
                              Object.keys(objDef[devId]).forEach((objId2) => {
                                if (objDef[devId][objId2].length === 1) {
                                  objDef[devId][objId2] = objDef[devId][objId2][0];
                                }
                              });
                            });
                            if (obj.values.length === 1) {
                              objDef = objDef[obj.values[0].objectId.instance];
                            }
                            if (debug4222222) {
                              console.log(
                                "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                              );
                            }
                            callback(objDef);
                          };
                          obj.values.forEach((devBaseObj) => {
                            if (!devBaseObj.objectId) {
                              console.log("No device Id found in object data");
                              return;
                            }
                            if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                              console.log("No device type or instance found in object data");
                              return;
                            }
                            if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                              console.log("No device values response");
                              return;
                            }
                            const deviceId = devBaseObj.objectId.instance;
                            objDef[deviceId] = {};
                            devBaseObj.values.forEach((devObj) => {
                              let objId2 = import__222222.enums.getEnumName(import__222222.enums.PropertyIdentifier, devObj.id);
                              if (devObj.index !== 4294967295) {
                                objId2 += "-" + devObj.index;
                              }
                              if (debug4222222) {
                                console.log("Handle Object property:", deviceId, objId2, devObj.value);
                              }
                              devObj.value.forEach((val) => {
                                if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                                  objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                  objDef[deviceId][objId2].push(val.value);
                                  return;
                                }
                                cbCount++;
                                parseValue222222(
                                  address,
                                  devObj.id,
                                  parent.type,
                                  val,
                                  supportsMultiple,
                                  (parsedValue) => {
                                    if (debug4222222) {
                                      console.log(
                                        "RETURN parsedValue",
                                        deviceId,
                                        objId2,
                                        devObj.value,
                                        parsedValue
                                      );
                                    }
                                    objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                    objDef[deviceId][objId2].push(parsedValue);
                                    if (!--cbCount) {
                                      finalize();
                                    }
                                  }
                                );
                              });
                            });
                          });
                          if (cbCount === 0) {
                            finalize();
                          }
                        }
                        var limitToDevice222222 = null;
                        if (import_process222222.default.argv.length === 3) {
                          limitToDevice222222 = parseInt(import_process222222.default.argv[2]);
                          if (isNaN(limitToDevice222222)) {
                            limitToDevice222222 = null;
                          }
                        }
                        var node_bacnet_default222222 = Client222222;
                      }
                    });
                    var node_bacnet_exports22222 = {};
                    __export22222(node_bacnet_exports22222, {
                      _: () => import_underscore22222.default,
                      bacnetErrorToString: () => bacnetErrorToString22222,
                      default: () => node_bacnet_default22222,
                      enums: () => enum_exports22222,
                      parseValue: () => parseValue22222
                    });
                    module22222.exports = __toCommonJS22222(node_bacnet_exports22222);
                    var enum_exports22222 = {};
                    __export22222(enum_exports22222, {
                      ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL22222,
                      ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS22222,
                      ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG22222,
                      ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES22222,
                      ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE22222,
                      ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT22222,
                      ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE22222,
                      ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY22222,
                      ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID22222,
                      ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY22222,
                      ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY22222,
                      AbortReason: () => AbortReason22222,
                      AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable22222,
                      AccessCredentialDisable: () => AccessCredentialDisable22222,
                      AccessCredentialDisableReason: () => AccessCredentialDisableReason22222,
                      AccessEvent: () => AccessEvent22222,
                      AccessPassbackMode: () => AccessPassbackMode22222,
                      AccessUserType: () => AccessUserType22222,
                      AccessZoneOccupancyState: () => AccessZoneOccupancyState22222,
                      Action: () => Action22222,
                      ApplicationTag: () => ApplicationTag22222,
                      ApplicationTagName: () => ApplicationTagName22222,
                      AuthenticationFactorType: () => AuthenticationFactorType22222,
                      AuthenticationStatus: () => AuthenticationStatus22222,
                      AuthorizationExemption: () => AuthorizationExemption22222,
                      AuthorizationMode: () => AuthorizationMode22222,
                      BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH32222,
                      BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP22222,
                      BackupState: () => BackupState22222,
                      BinaryLightingPV: () => BinaryLightingPV22222,
                      BinaryPV: () => BinaryPV22222,
                      BvlcResultFormat: () => BvlcResultFormat22222,
                      BvlcResultPurpose: () => BvlcResultPurpose22222,
                      CharacterStringEncoding: () => CharacterStringEncoding22222,
                      ConfirmedServiceChoice: () => ConfirmedServiceChoice22222,
                      CovType: () => CovType22222,
                      DaysOfWeek: () => DaysOfWeek22222,
                      DeviceStatus: () => DeviceStatus22222,
                      DoorAlarmState: () => DoorAlarmState22222,
                      DoorSecuredStatus: () => DoorSecuredStatus22222,
                      DoorStatus: () => DoorStatus22222,
                      DoorValue: () => DoorValue22222,
                      EnableDisable: () => EnableDisable22222,
                      EngineeringUnits: () => EngineeringUnits22222,
                      ErrorClass: () => ErrorClass22222,
                      ErrorClassName: () => ErrorClassName22222,
                      ErrorCode: () => ErrorCode22222,
                      ErrorCodeName: () => ErrorCodeName22222,
                      EscalatorFault: () => EscalatorFault22222,
                      EscalatorMode: () => EscalatorMode22222,
                      EscalatorOperationDirection: () => EscalatorOperationDirection22222,
                      EventState: () => EventState22222,
                      EventTransitionBits: () => EventTransitionBits22222,
                      EventType: () => EventType22222,
                      FaultType: () => FaultType22222,
                      FileAccessMethod: () => FileAccessMethod22222,
                      IPMode: () => IPMode22222,
                      LifeSafetyMode: () => LifeSafetyMode22222,
                      LifeSafetyOperation: () => LifeSafetyOperation22222,
                      LifeSafetyState: () => LifeSafetyState22222,
                      LiftCarDirection: () => LiftCarDirection22222,
                      LiftCarDoorCommand: () => LiftCarDoorCommand22222,
                      LiftCarDriveStatus: () => LiftCarDriveStatus22222,
                      LiftCarMode: () => LiftCarMode22222,
                      LiftFault: () => LiftFault22222,
                      LiftGroupMode: () => LiftGroupMode22222,
                      LightingInProgress: () => LightingInProgress22222,
                      LightingOperation: () => LightingOperation22222,
                      LightingTransition: () => LightingTransition22222,
                      LimitEnable: () => LimitEnable22222,
                      LockStatus: () => LockStatus22222,
                      LogStatus: () => LogStatus22222,
                      LoggingType: () => LoggingType22222,
                      Maintenance: () => Maintenance22222,
                      MaxApduLengthAccepted: () => MaxApduLengthAccepted22222,
                      MaxSegmentsAccepted: () => MaxSegmentsAccepted22222,
                      NetworkLayerMessageType: () => NetworkLayerMessageType22222,
                      NetworkNumberQuality: () => NetworkNumberQuality22222,
                      NetworkPortCommand: () => NetworkPortCommand22222,
                      NetworkType: () => NetworkType22222,
                      NodeType: () => NodeType22222,
                      NotifyType: () => NotifyType22222,
                      NpduControlBit: () => NpduControlBit22222,
                      NpduControlPriority: () => NpduControlPriority22222,
                      ObjectType: () => ObjectType22222,
                      ObjectTypesSupported: () => ObjectTypesSupported22222,
                      PDU_TYPE_MASK: () => PDU_TYPE_MASK22222,
                      PduConReqBit: () => PduConReqBit22222,
                      PduSegAckBit: () => PduSegAckBit22222,
                      PduType: () => PduType22222,
                      Polarity: () => Polarity22222,
                      ProgramError: () => ProgramError22222,
                      ProgramRequest: () => ProgramRequest22222,
                      ProgramState: () => ProgramState22222,
                      PropertyIdentifier: () => PropertyIdentifier22222,
                      PropertyStates: () => PropertyStates22222,
                      ProtocolLevel: () => ProtocolLevel22222,
                      ReadRangeType: () => ReadRangeType22222,
                      ReinitializedState: () => ReinitializedState22222,
                      RejectReason: () => RejectReason22222,
                      Relationship: () => Relationship22222,
                      Reliability: () => Reliability22222,
                      RestartReason: () => RestartReason22222,
                      ResultFlags: () => ResultFlags22222,
                      SecurityLevel: () => SecurityLevel22222,
                      SecurityPolicy: () => SecurityPolicy22222,
                      Segmentation: () => Segmentation22222,
                      ServicesSupported: () => ServicesSupported22222,
                      ShedState: () => ShedState22222,
                      SilencedState: () => SilencedState22222,
                      StatusFlags: () => StatusFlags22222,
                      TimeStamp: () => TimeStamp22222,
                      TimerState: () => TimerState22222,
                      TimerTransition: () => TimerTransition22222,
                      UnconfirmedServiceChoice: () => UnconfirmedServiceChoice22222,
                      VTClass: () => VTClass22222,
                      WriteStatus: () => WriteStatus22222,
                      getEnumName: () => getEnumName22222
                    });
                    var import_debug42222 = __toESM22222(require("debug"));
                    var debug52222 = (0, import_debug42222.default)("bacnet=enum=debug");
                    var trace32222 = (0, import_debug42222.default)("bacnet=enum=trace");
                    function invertEnum22222(enumToInvert) {
                      return Object.keys(enumToInvert).reduce((acc, key) => {
                        const val = enumToInvert[key];
                        acc[val] = key;
                        return acc;
                      }, {});
                    }
                    function getEnumName22222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                      if (!Number.isInteger(value)) {
                        throw new Error(
                          'getEnumName() can only be passed an integer value, was given "' + value + '"'
                        );
                      }
                      let foundEntry;
                      try {
                        const invertedGroup = invertEnum22222(group);
                        foundEntry = invertedGroup[value];
                        if (foundEntry === void 0 && undefinedFallbackValue) {
                          foundEntry = undefinedFallbackValue;
                        }
                        if (foundEntry === void 0) {
                          foundEntry = value.toString();
                        } else if (addNumberValue) {
                          let strinmanipulation = "";
                          strinmanipulation += "(" + value + ")";
                          foundEntry = foundEntry + strinmanipulation;
                        }
                      } catch (e) {
                        trace32222(e.message);
                        foundEntry = null;
                      }
                      return foundEntry;
                    }
                    var PDU_TYPE_MASK22222 = 240;
                    var ASN1_MAX_OBJECT22222 = 1023;
                    var ASN1_INSTANCE_BITS22222 = 22;
                    var ASN1_MAX_INSTANCE22222 = 4194303;
                    var ASN1_MAX_BITSTRING_BYTES22222 = 15;
                    var ASN1_ARRAY_ALL22222 = 4294967295;
                    var ASN1_NO_PRIORITY22222 = 0;
                    var ASN1_MIN_PRIORITY22222 = 1;
                    var ASN1_MAX_PRIORITY22222 = 16;
                    var ASN1_MAX_APPLICATION_TAG22222 = 16;
                    var ASN1_MAX_OBJECT_TYPE22222 = 1024;
                    var ASN1_MAX_PROPERTY_ID22222 = 4194303;
                    var BVLL_TYPE_BACNET_IP22222 = 129;
                    var BVLC_HEADER_LENGTH32222 = 4;
                    var ConfirmedServiceChoice22222 = /* @__PURE__ */ ((ConfirmedServiceChoice222222) => {
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["VT_OPEN"] = 21] = "VT_OPEN";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["VT_DATA"] = 23] = "VT_DATA";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["READ_RANGE"] = 26] = "READ_RANGE";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                      ConfirmedServiceChoice222222[ConfirmedServiceChoice222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                      return ConfirmedServiceChoice222222;
                    })(ConfirmedServiceChoice22222 || {});
                    var UnconfirmedServiceChoice22222 = /* @__PURE__ */ ((UnconfirmedServiceChoice222222) => {
                      UnconfirmedServiceChoice222222[UnconfirmedServiceChoice222222["I_AM"] = 0] = "I_AM";
                      UnconfirmedServiceChoice222222[UnconfirmedServiceChoice222222["I_HAVE"] = 1] = "I_HAVE";
                      UnconfirmedServiceChoice222222[UnconfirmedServiceChoice222222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                      UnconfirmedServiceChoice222222[UnconfirmedServiceChoice222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                      UnconfirmedServiceChoice222222[UnconfirmedServiceChoice222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                      UnconfirmedServiceChoice222222[UnconfirmedServiceChoice222222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                      UnconfirmedServiceChoice222222[UnconfirmedServiceChoice222222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                      UnconfirmedServiceChoice222222[UnconfirmedServiceChoice222222["WHO_HAS"] = 7] = "WHO_HAS";
                      UnconfirmedServiceChoice222222[UnconfirmedServiceChoice222222["WHO_IS"] = 8] = "WHO_IS";
                      UnconfirmedServiceChoice222222[UnconfirmedServiceChoice222222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                      UnconfirmedServiceChoice222222[UnconfirmedServiceChoice222222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                      UnconfirmedServiceChoice222222[UnconfirmedServiceChoice222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                      return UnconfirmedServiceChoice222222;
                    })(UnconfirmedServiceChoice22222 || {});
                    var AbortReason22222 = /* @__PURE__ */ ((AbortReason222222) => {
                      AbortReason222222[AbortReason222222["OTHER"] = 0] = "OTHER";
                      AbortReason222222[AbortReason222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                      AbortReason222222[AbortReason222222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                      AbortReason222222[AbortReason222222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                      AbortReason222222[AbortReason222222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                      AbortReason222222[AbortReason222222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                      AbortReason222222[AbortReason222222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                      AbortReason222222[AbortReason222222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                      AbortReason222222[AbortReason222222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                      AbortReason222222[AbortReason222222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                      AbortReason222222[AbortReason222222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                      AbortReason222222[AbortReason222222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                      return AbortReason222222;
                    })(AbortReason22222 || {});
                    var RejectReason22222 = /* @__PURE__ */ ((RejectReason222222) => {
                      RejectReason222222[RejectReason222222["OTHER"] = 0] = "OTHER";
                      RejectReason222222[RejectReason222222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                      RejectReason222222[RejectReason222222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                      RejectReason222222[RejectReason222222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                      RejectReason222222[RejectReason222222["INVALID_TAG"] = 4] = "INVALID_TAG";
                      RejectReason222222[RejectReason222222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                      RejectReason222222[RejectReason222222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                      RejectReason222222[RejectReason222222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                      RejectReason222222[RejectReason222222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                      RejectReason222222[RejectReason222222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                      return RejectReason222222;
                    })(RejectReason22222 || {});
                    var ErrorClass22222 = /* @__PURE__ */ ((ErrorClass222222) => {
                      ErrorClass222222[ErrorClass222222["DEVICE"] = 0] = "DEVICE";
                      ErrorClass222222[ErrorClass222222["OBJECT"] = 1] = "OBJECT";
                      ErrorClass222222[ErrorClass222222["PROPERTY"] = 2] = "PROPERTY";
                      ErrorClass222222[ErrorClass222222["RESOURCES"] = 3] = "RESOURCES";
                      ErrorClass222222[ErrorClass222222["SECURITY"] = 4] = "SECURITY";
                      ErrorClass222222[ErrorClass222222["SERVICES"] = 5] = "SERVICES";
                      ErrorClass222222[ErrorClass222222["VT"] = 6] = "VT";
                      ErrorClass222222[ErrorClass222222["COMMUNICATION"] = 7] = "COMMUNICATION";
                      return ErrorClass222222;
                    })(ErrorClass22222 || {});
                    var ErrorClassName22222 = invertEnum22222(
                      ErrorClass22222
                    );
                    var ErrorCode22222 = /* @__PURE__ */ ((ErrorCode222222) => {
                      ErrorCode222222[ErrorCode222222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                      ErrorCode222222[ErrorCode222222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                      ErrorCode222222[ErrorCode222222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                      ErrorCode222222[ErrorCode222222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                      ErrorCode222222[ErrorCode222222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                      ErrorCode222222[ErrorCode222222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                      ErrorCode222222[ErrorCode222222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                      ErrorCode222222[ErrorCode222222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                      ErrorCode222222[ErrorCode222222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                      ErrorCode222222[ErrorCode222222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                      ErrorCode222222[ErrorCode222222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                      ErrorCode222222[ErrorCode222222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                      ErrorCode222222[ErrorCode222222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                      ErrorCode222222[ErrorCode222222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                      ErrorCode222222[ErrorCode222222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                      ErrorCode222222[ErrorCode222222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                      ErrorCode222222[ErrorCode222222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                      ErrorCode222222[ErrorCode222222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                      ErrorCode222222[ErrorCode222222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                      ErrorCode222222[ErrorCode222222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                      ErrorCode222222[ErrorCode222222["BUSY"] = 82] = "BUSY";
                      ErrorCode222222[ErrorCode222222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                      ErrorCode222222[ErrorCode222222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                      ErrorCode222222[ErrorCode222222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                      ErrorCode222222[ErrorCode222222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                      ErrorCode222222[ErrorCode222222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                      ErrorCode222222[ErrorCode222222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                      ErrorCode222222[ErrorCode222222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                      ErrorCode222222[ErrorCode222222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                      ErrorCode222222[ErrorCode222222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                      ErrorCode222222[ErrorCode222222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                      ErrorCode222222[ErrorCode222222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                      ErrorCode222222[ErrorCode222222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                      ErrorCode222222[ErrorCode222222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                      ErrorCode222222[ErrorCode222222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                      ErrorCode222222[ErrorCode222222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                      ErrorCode222222[ErrorCode222222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                      ErrorCode222222[ErrorCode222222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                      ErrorCode222222[ErrorCode222222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                      ErrorCode222222[ErrorCode222222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                      ErrorCode222222[ErrorCode222222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                      ErrorCode222222[ErrorCode222222["FILE_FULL"] = 128] = "FILE_FULL";
                      ErrorCode222222[ErrorCode222222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                      ErrorCode222222[ErrorCode222222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                      ErrorCode222222[ErrorCode222222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                      ErrorCode222222[ErrorCode222222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                      ErrorCode222222[ErrorCode222222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                      ErrorCode222222[ErrorCode222222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                      ErrorCode222222[ErrorCode222222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                      ErrorCode222222[ErrorCode222222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                      ErrorCode222222[ErrorCode222222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                      ErrorCode222222[ErrorCode222222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                      ErrorCode222222[ErrorCode222222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                      ErrorCode222222[ErrorCode222222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                      ErrorCode222222[ErrorCode222222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                      ErrorCode222222[ErrorCode222222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                      ErrorCode222222[ErrorCode222222["INVALID_TAG"] = 57] = "INVALID_TAG";
                      ErrorCode222222[ErrorCode222222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                      ErrorCode222222[ErrorCode222222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                      ErrorCode222222[ErrorCode222222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                      ErrorCode222222[ErrorCode222222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                      ErrorCode222222[ErrorCode222222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                      ErrorCode222222[ErrorCode222222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                      ErrorCode222222[ErrorCode222222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                      ErrorCode222222[ErrorCode222222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                      ErrorCode222222[ErrorCode222222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                      ErrorCode222222[ErrorCode222222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                      ErrorCode222222[ErrorCode222222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                      ErrorCode222222[ErrorCode222222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                      ErrorCode222222[ErrorCode222222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                      ErrorCode222222[ErrorCode222222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                      ErrorCode222222[ErrorCode222222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                      ErrorCode222222[ErrorCode222222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                      ErrorCode222222[ErrorCode222222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                      ErrorCode222222[ErrorCode222222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                      ErrorCode222222[ErrorCode222222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                      ErrorCode222222[ErrorCode222222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                      ErrorCode222222[ErrorCode222222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                      ErrorCode222222[ErrorCode222222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                      ErrorCode222222[ErrorCode222222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                      ErrorCode222222[ErrorCode222222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                      ErrorCode222222[ErrorCode222222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                      ErrorCode222222[ErrorCode222222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                      ErrorCode222222[ErrorCode222222["OTHER"] = 0] = "OTHER";
                      ErrorCode222222[ErrorCode222222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                      ErrorCode222222[ErrorCode222222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                      ErrorCode222222[ErrorCode222222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                      ErrorCode222222[ErrorCode222222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                      ErrorCode222222[ErrorCode222222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                      ErrorCode222222[ErrorCode222222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                      ErrorCode222222[ErrorCode222222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                      ErrorCode222222[ErrorCode222222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                      ErrorCode222222[ErrorCode222222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                      ErrorCode222222[ErrorCode222222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                      ErrorCode222222[ErrorCode222222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                      ErrorCode222222[ErrorCode222222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                      ErrorCode222222[ErrorCode222222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                      ErrorCode222222[ErrorCode222222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                      ErrorCode222222[ErrorCode222222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                      ErrorCode222222[ErrorCode222222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                      ErrorCode222222[ErrorCode222222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                      ErrorCode222222[ErrorCode222222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                      ErrorCode222222[ErrorCode222222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                      ErrorCode222222[ErrorCode222222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                      ErrorCode222222[ErrorCode222222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                      ErrorCode222222[ErrorCode222222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                      ErrorCode222222[ErrorCode222222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                      ErrorCode222222[ErrorCode222222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                      ErrorCode222222[ErrorCode222222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                      ErrorCode222222[ErrorCode222222["SUCCESS"] = 84] = "SUCCESS";
                      ErrorCode222222[ErrorCode222222["TIMEOUT"] = 30] = "TIMEOUT";
                      ErrorCode222222[ErrorCode222222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                      ErrorCode222222[ErrorCode222222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                      ErrorCode222222[ErrorCode222222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                      ErrorCode222222[ErrorCode222222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                      ErrorCode222222[ErrorCode222222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                      ErrorCode222222[ErrorCode222222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                      ErrorCode222222[ErrorCode222222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                      ErrorCode222222[ErrorCode222222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                      ErrorCode222222[ErrorCode222222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                      ErrorCode222222[ErrorCode222222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                      return ErrorCode222222;
                    })(ErrorCode22222 || {});
                    var ErrorCodeName22222 = invertEnum22222(
                      ErrorCode22222
                    );
                    var AccessAuthenticationFactorDisable22222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable222222) => {
                      AccessAuthenticationFactorDisable222222[AccessAuthenticationFactorDisable222222["NONE"] = 0] = "NONE";
                      AccessAuthenticationFactorDisable222222[AccessAuthenticationFactorDisable222222["DISABLED"] = 1] = "DISABLED";
                      AccessAuthenticationFactorDisable222222[AccessAuthenticationFactorDisable222222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                      AccessAuthenticationFactorDisable222222[AccessAuthenticationFactorDisable222222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                      AccessAuthenticationFactorDisable222222[AccessAuthenticationFactorDisable222222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                      AccessAuthenticationFactorDisable222222[AccessAuthenticationFactorDisable222222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                      return AccessAuthenticationFactorDisable222222;
                    })(AccessAuthenticationFactorDisable22222 || {});
                    var AccessCredentialDisable22222 = /* @__PURE__ */ ((AccessCredentialDisable222222) => {
                      AccessCredentialDisable222222[AccessCredentialDisable222222["NONE"] = 0] = "NONE";
                      AccessCredentialDisable222222[AccessCredentialDisable222222["DISABLE"] = 1] = "DISABLE";
                      AccessCredentialDisable222222[AccessCredentialDisable222222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                      AccessCredentialDisable222222[AccessCredentialDisable222222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                      return AccessCredentialDisable222222;
                    })(AccessCredentialDisable22222 || {});
                    var AccessCredentialDisableReason22222 = /* @__PURE__ */ ((AccessCredentialDisableReason222222) => {
                      AccessCredentialDisableReason222222[AccessCredentialDisableReason222222["DISABLED"] = 0] = "DISABLED";
                      AccessCredentialDisableReason222222[AccessCredentialDisableReason222222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                      AccessCredentialDisableReason222222[AccessCredentialDisableReason222222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                      AccessCredentialDisableReason222222[AccessCredentialDisableReason222222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                      AccessCredentialDisableReason222222[AccessCredentialDisableReason222222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                      AccessCredentialDisableReason222222[AccessCredentialDisableReason222222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                      AccessCredentialDisableReason222222[AccessCredentialDisableReason222222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                      AccessCredentialDisableReason222222[AccessCredentialDisableReason222222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                      AccessCredentialDisableReason222222[AccessCredentialDisableReason222222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                      AccessCredentialDisableReason222222[AccessCredentialDisableReason222222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                      return AccessCredentialDisableReason222222;
                    })(AccessCredentialDisableReason22222 || {});
                    var AccessEvent22222 = /* @__PURE__ */ ((AccessEvent222222) => {
                      AccessEvent222222[AccessEvent222222["NONE"] = 0] = "NONE";
                      AccessEvent222222[AccessEvent222222["GRANTED"] = 1] = "GRANTED";
                      AccessEvent222222[AccessEvent222222["MUSTER"] = 2] = "MUSTER";
                      AccessEvent222222[AccessEvent222222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                      AccessEvent222222[AccessEvent222222["DURESS"] = 4] = "DURESS";
                      AccessEvent222222[AccessEvent222222["TRACE"] = 5] = "TRACE";
                      AccessEvent222222[AccessEvent222222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                      AccessEvent222222[AccessEvent222222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                      AccessEvent222222[AccessEvent222222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                      AccessEvent222222[AccessEvent222222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                      AccessEvent222222[AccessEvent222222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                      AccessEvent222222[AccessEvent222222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                      AccessEvent222222[AccessEvent222222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                      AccessEvent222222[AccessEvent222222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                      AccessEvent222222[AccessEvent222222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                      AccessEvent222222[AccessEvent222222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                      AccessEvent222222[AccessEvent222222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                      AccessEvent222222[AccessEvent222222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                      AccessEvent222222[AccessEvent222222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                      AccessEvent222222[AccessEvent222222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                      AccessEvent222222[AccessEvent222222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                      AccessEvent222222[AccessEvent222222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                      AccessEvent222222[AccessEvent222222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                      AccessEvent222222[AccessEvent222222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                      AccessEvent222222[AccessEvent222222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                      AccessEvent222222[AccessEvent222222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                      AccessEvent222222[AccessEvent222222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                      AccessEvent222222[AccessEvent222222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                      AccessEvent222222[AccessEvent222222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                      AccessEvent222222[AccessEvent222222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                      AccessEvent222222[AccessEvent222222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                      AccessEvent222222[AccessEvent222222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                      AccessEvent222222[AccessEvent222222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                      AccessEvent222222[AccessEvent222222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                      AccessEvent222222[AccessEvent222222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                      AccessEvent222222[AccessEvent222222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                      AccessEvent222222[AccessEvent222222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                      AccessEvent222222[AccessEvent222222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                      AccessEvent222222[AccessEvent222222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                      AccessEvent222222[AccessEvent222222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                      AccessEvent222222[AccessEvent222222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                      AccessEvent222222[AccessEvent222222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                      AccessEvent222222[AccessEvent222222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                      AccessEvent222222[AccessEvent222222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                      AccessEvent222222[AccessEvent222222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                      AccessEvent222222[AccessEvent222222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                      AccessEvent222222[AccessEvent222222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                      AccessEvent222222[AccessEvent222222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                      AccessEvent222222[AccessEvent222222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                      AccessEvent222222[AccessEvent222222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                      AccessEvent222222[AccessEvent222222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                      AccessEvent222222[AccessEvent222222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                      AccessEvent222222[AccessEvent222222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                      AccessEvent222222[AccessEvent222222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                      return AccessEvent222222;
                    })(AccessEvent22222 || {});
                    var AccessPassbackMode22222 = /* @__PURE__ */ ((AccessPassbackMode222222) => {
                      AccessPassbackMode222222[AccessPassbackMode222222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                      AccessPassbackMode222222[AccessPassbackMode222222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                      AccessPassbackMode222222[AccessPassbackMode222222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                      return AccessPassbackMode222222;
                    })(AccessPassbackMode22222 || {});
                    var AccessUserType22222 = /* @__PURE__ */ ((AccessUserType222222) => {
                      AccessUserType222222[AccessUserType222222["ASSET"] = 0] = "ASSET";
                      AccessUserType222222[AccessUserType222222["GROUP"] = 1] = "GROUP";
                      AccessUserType222222[AccessUserType222222["PERSON"] = 2] = "PERSON";
                      return AccessUserType222222;
                    })(AccessUserType22222 || {});
                    var AccessZoneOccupancyState22222 = /* @__PURE__ */ ((AccessZoneOccupancyState222222) => {
                      AccessZoneOccupancyState222222[AccessZoneOccupancyState222222["NORMAL"] = 0] = "NORMAL";
                      AccessZoneOccupancyState222222[AccessZoneOccupancyState222222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                      AccessZoneOccupancyState222222[AccessZoneOccupancyState222222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                      AccessZoneOccupancyState222222[AccessZoneOccupancyState222222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                      AccessZoneOccupancyState222222[AccessZoneOccupancyState222222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                      AccessZoneOccupancyState222222[AccessZoneOccupancyState222222["DISABLED"] = 5] = "DISABLED";
                      AccessZoneOccupancyState222222[AccessZoneOccupancyState222222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                      return AccessZoneOccupancyState222222;
                    })(AccessZoneOccupancyState22222 || {});
                    var Action22222 = /* @__PURE__ */ ((Action222222) => {
                      Action222222[Action222222["DIRECT"] = 0] = "DIRECT";
                      Action222222[Action222222["REVERSE"] = 1] = "REVERSE";
                      return Action222222;
                    })(Action22222 || {});
                    var AuthenticationFactorType22222 = /* @__PURE__ */ ((AuthenticationFactorType222222) => {
                      AuthenticationFactorType222222[AuthenticationFactorType222222["UNDEFINED"] = 0] = "UNDEFINED";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["ERROR"] = 1] = "ERROR";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["CUSTOM"] = 2] = "CUSTOM";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["WIEGAND26"] = 8] = "WIEGAND26";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["WIEGAND37"] = 9] = "WIEGAND37";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["FASC_N"] = 13] = "FASC_N";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["GSA75"] = 17] = "GSA75";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["CHUID"] = 18] = "CHUID";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["CHUID_FULL"] = 19] = "CHUID_FULL";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["GUID"] = 20] = "GUID";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["CBEFF_A"] = 21] = "CBEFF_A";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["CBEFF_B"] = 22] = "CBEFF_B";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["CBEFF_C"] = 23] = "CBEFF_C";
                      AuthenticationFactorType222222[AuthenticationFactorType222222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                      return AuthenticationFactorType222222;
                    })(AuthenticationFactorType22222 || {});
                    var AuthenticationStatus22222 = /* @__PURE__ */ ((AuthenticationStatus222222) => {
                      AuthenticationStatus222222[AuthenticationStatus222222["NOT_READY"] = 0] = "NOT_READY";
                      AuthenticationStatus222222[AuthenticationStatus222222["READY"] = 1] = "READY";
                      AuthenticationStatus222222[AuthenticationStatus222222["DISABLED"] = 2] = "DISABLED";
                      AuthenticationStatus222222[AuthenticationStatus222222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                      AuthenticationStatus222222[AuthenticationStatus222222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                      AuthenticationStatus222222[AuthenticationStatus222222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                      AuthenticationStatus222222[AuthenticationStatus222222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                      return AuthenticationStatus222222;
                    })(AuthenticationStatus22222 || {});
                    var AuthorizationExemption22222 = /* @__PURE__ */ ((AuthorizationExemption222222) => {
                      AuthorizationExemption222222[AuthorizationExemption222222["PASSBACK"] = 0] = "PASSBACK";
                      AuthorizationExemption222222[AuthorizationExemption222222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                      AuthorizationExemption222222[AuthorizationExemption222222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                      AuthorizationExemption222222[AuthorizationExemption222222["LOCKOUT"] = 3] = "LOCKOUT";
                      AuthorizationExemption222222[AuthorizationExemption222222["DENY"] = 4] = "DENY";
                      AuthorizationExemption222222[AuthorizationExemption222222["VERIFICATION"] = 5] = "VERIFICATION";
                      AuthorizationExemption222222[AuthorizationExemption222222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                      return AuthorizationExemption222222;
                    })(AuthorizationExemption22222 || {});
                    var AuthorizationMode22222 = /* @__PURE__ */ ((AuthorizationMode222222) => {
                      AuthorizationMode222222[AuthorizationMode222222["AUTHORIZE"] = 0] = "AUTHORIZE";
                      AuthorizationMode222222[AuthorizationMode222222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                      AuthorizationMode222222[AuthorizationMode222222["DENY_ALL"] = 2] = "DENY_ALL";
                      AuthorizationMode222222[AuthorizationMode222222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                      AuthorizationMode222222[AuthorizationMode222222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                      AuthorizationMode222222[AuthorizationMode222222["NONE"] = 5] = "NONE";
                      return AuthorizationMode222222;
                    })(AuthorizationMode22222 || {});
                    var BackupState22222 = /* @__PURE__ */ ((BackupState222222) => {
                      BackupState222222[BackupState222222["IDLE"] = 0] = "IDLE";
                      BackupState222222[BackupState222222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                      BackupState222222[BackupState222222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                      BackupState222222[BackupState222222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                      BackupState222222[BackupState222222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                      BackupState222222[BackupState222222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                      BackupState222222[BackupState222222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                      return BackupState222222;
                    })(BackupState22222 || {});
                    var BinaryLightingPV22222 = /* @__PURE__ */ ((BinaryLightingPV222222) => {
                      BinaryLightingPV222222[BinaryLightingPV222222["OFF"] = 0] = "OFF";
                      BinaryLightingPV222222[BinaryLightingPV222222["ON"] = 1] = "ON";
                      BinaryLightingPV222222[BinaryLightingPV222222["WARN"] = 2] = "WARN";
                      BinaryLightingPV222222[BinaryLightingPV222222["WARN_OFF"] = 3] = "WARN_OFF";
                      BinaryLightingPV222222[BinaryLightingPV222222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                      BinaryLightingPV222222[BinaryLightingPV222222["STOP"] = 5] = "STOP";
                      return BinaryLightingPV222222;
                    })(BinaryLightingPV22222 || {});
                    var BinaryPV22222 = /* @__PURE__ */ ((BinaryPV222222) => {
                      BinaryPV222222[BinaryPV222222["INACTIVE"] = 0] = "INACTIVE";
                      BinaryPV222222[BinaryPV222222["ACTIVE"] = 1] = "ACTIVE";
                      return BinaryPV222222;
                    })(BinaryPV22222 || {});
                    var DeviceStatus22222 = /* @__PURE__ */ ((DeviceStatus222222) => {
                      DeviceStatus222222[DeviceStatus222222["OPERATIONAL"] = 0] = "OPERATIONAL";
                      DeviceStatus222222[DeviceStatus222222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                      DeviceStatus222222[DeviceStatus222222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                      DeviceStatus222222[DeviceStatus222222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                      DeviceStatus222222[DeviceStatus222222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                      DeviceStatus222222[DeviceStatus222222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                      return DeviceStatus222222;
                    })(DeviceStatus22222 || {});
                    var DoorAlarmState22222 = /* @__PURE__ */ ((DoorAlarmState222222) => {
                      DoorAlarmState222222[DoorAlarmState222222["NORMAL"] = 0] = "NORMAL";
                      DoorAlarmState222222[DoorAlarmState222222["ALARM"] = 1] = "ALARM";
                      DoorAlarmState222222[DoorAlarmState222222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                      DoorAlarmState222222[DoorAlarmState222222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                      DoorAlarmState222222[DoorAlarmState222222["TAMPER"] = 4] = "TAMPER";
                      DoorAlarmState222222[DoorAlarmState222222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                      DoorAlarmState222222[DoorAlarmState222222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                      DoorAlarmState222222[DoorAlarmState222222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                      DoorAlarmState222222[DoorAlarmState222222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                      return DoorAlarmState222222;
                    })(DoorAlarmState22222 || {});
                    var DoorSecuredStatus22222 = /* @__PURE__ */ ((DoorSecuredStatus222222) => {
                      DoorSecuredStatus222222[DoorSecuredStatus222222["SECURED"] = 0] = "SECURED";
                      DoorSecuredStatus222222[DoorSecuredStatus222222["UNSECURED"] = 1] = "UNSECURED";
                      DoorSecuredStatus222222[DoorSecuredStatus222222["UNKNOWN"] = 2] = "UNKNOWN";
                      return DoorSecuredStatus222222;
                    })(DoorSecuredStatus22222 || {});
                    var DoorStatus22222 = /* @__PURE__ */ ((DoorStatus222222) => {
                      DoorStatus222222[DoorStatus222222["CLOSED"] = 0] = "CLOSED";
                      DoorStatus222222[DoorStatus222222["OPENED"] = 1] = "OPENED";
                      DoorStatus222222[DoorStatus222222["UNKNOWN"] = 2] = "UNKNOWN";
                      DoorStatus222222[DoorStatus222222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                      DoorStatus222222[DoorStatus222222["UNUSED"] = 4] = "UNUSED";
                      DoorStatus222222[DoorStatus222222["NONE"] = 5] = "NONE";
                      DoorStatus222222[DoorStatus222222["CLOSING"] = 6] = "CLOSING";
                      DoorStatus222222[DoorStatus222222["OPENING"] = 7] = "OPENING";
                      DoorStatus222222[DoorStatus222222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                      DoorStatus222222[DoorStatus222222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                      return DoorStatus222222;
                    })(DoorStatus22222 || {});
                    var DoorValue22222 = /* @__PURE__ */ ((DoorValue222222) => {
                      DoorValue222222[DoorValue222222["LOCK"] = 0] = "LOCK";
                      DoorValue222222[DoorValue222222["UNLOCK"] = 1] = "UNLOCK";
                      DoorValue222222[DoorValue222222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                      DoorValue222222[DoorValue222222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                      return DoorValue222222;
                    })(DoorValue22222 || {});
                    var EngineeringUnits22222 = /* @__PURE__ */ ((EngineeringUnits222222) => {
                      EngineeringUnits222222[EngineeringUnits222222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                      EngineeringUnits222222[EngineeringUnits222222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                      EngineeringUnits222222[EngineeringUnits222222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                      EngineeringUnits222222[EngineeringUnits222222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                      EngineeringUnits222222[EngineeringUnits222222["CURRENCY1"] = 105] = "CURRENCY1";
                      EngineeringUnits222222[EngineeringUnits222222["CURRENCY2"] = 106] = "CURRENCY2";
                      EngineeringUnits222222[EngineeringUnits222222["CURRENCY3"] = 107] = "CURRENCY3";
                      EngineeringUnits222222[EngineeringUnits222222["CURRENCY4"] = 108] = "CURRENCY4";
                      EngineeringUnits222222[EngineeringUnits222222["CURRENCY5"] = 109] = "CURRENCY5";
                      EngineeringUnits222222[EngineeringUnits222222["CURRENCY6"] = 110] = "CURRENCY6";
                      EngineeringUnits222222[EngineeringUnits222222["CURRENCY7"] = 111] = "CURRENCY7";
                      EngineeringUnits222222[EngineeringUnits222222["CURRENCY8"] = 112] = "CURRENCY8";
                      EngineeringUnits222222[EngineeringUnits222222["CURRENCY9"] = 113] = "CURRENCY9";
                      EngineeringUnits222222[EngineeringUnits222222["CURRENCY10"] = 114] = "CURRENCY10";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                      EngineeringUnits222222[EngineeringUnits222222["AMPERES"] = 3] = "AMPERES";
                      EngineeringUnits222222[EngineeringUnits222222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                      EngineeringUnits222222[EngineeringUnits222222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                      EngineeringUnits222222[EngineeringUnits222222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                      EngineeringUnits222222[EngineeringUnits222222["DECIBELS"] = 199] = "DECIBELS";
                      EngineeringUnits222222[EngineeringUnits222222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                      EngineeringUnits222222[EngineeringUnits222222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                      EngineeringUnits222222[EngineeringUnits222222["FARADS"] = 170] = "FARADS";
                      EngineeringUnits222222[EngineeringUnits222222["HENRYS"] = 171] = "HENRYS";
                      EngineeringUnits222222[EngineeringUnits222222["OHMS"] = 4] = "OHMS";
                      EngineeringUnits222222[EngineeringUnits222222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                      EngineeringUnits222222[EngineeringUnits222222["OHM_METERS"] = 172] = "OHM_METERS";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIOHMS"] = 145] = "MILLIOHMS";
                      EngineeringUnits222222[EngineeringUnits222222["KILOHMS"] = 122] = "KILOHMS";
                      EngineeringUnits222222[EngineeringUnits222222["MEGOHMS"] = 123] = "MEGOHMS";
                      EngineeringUnits222222[EngineeringUnits222222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                      EngineeringUnits222222[EngineeringUnits222222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                      EngineeringUnits222222[EngineeringUnits222222["SIEMENS"] = 173] = "SIEMENS";
                      EngineeringUnits222222[EngineeringUnits222222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                      EngineeringUnits222222[EngineeringUnits222222["TESLAS"] = 175] = "TESLAS";
                      EngineeringUnits222222[EngineeringUnits222222["VOLTS"] = 5] = "VOLTS";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                      EngineeringUnits222222[EngineeringUnits222222["KILOVOLTS"] = 6] = "KILOVOLTS";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                      EngineeringUnits222222[EngineeringUnits222222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                      EngineeringUnits222222[EngineeringUnits222222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                      EngineeringUnits222222[EngineeringUnits222222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                      EngineeringUnits222222[EngineeringUnits222222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                      EngineeringUnits222222[EngineeringUnits222222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                      EngineeringUnits222222[EngineeringUnits222222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                      EngineeringUnits222222[EngineeringUnits222222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                      EngineeringUnits222222[EngineeringUnits222222["WEBERS"] = 178] = "WEBERS";
                      EngineeringUnits222222[EngineeringUnits222222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                      EngineeringUnits222222[EngineeringUnits222222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                      EngineeringUnits222222[EngineeringUnits222222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                      EngineeringUnits222222[EngineeringUnits222222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                      EngineeringUnits222222[EngineeringUnits222222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                      EngineeringUnits222222[EngineeringUnits222222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                      EngineeringUnits222222[EngineeringUnits222222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                      EngineeringUnits222222[EngineeringUnits222222["JOULES"] = 16] = "JOULES";
                      EngineeringUnits222222[EngineeringUnits222222["KILOJOULES"] = 17] = "KILOJOULES";
                      EngineeringUnits222222[EngineeringUnits222222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAJOULES"] = 126] = "MEGAJOULES";
                      EngineeringUnits222222[EngineeringUnits222222["WATT_HOURS"] = 18] = "WATT_HOURS";
                      EngineeringUnits222222[EngineeringUnits222222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                      EngineeringUnits222222[EngineeringUnits222222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                      EngineeringUnits222222[EngineeringUnits222222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                      EngineeringUnits222222[EngineeringUnits222222["BTUS"] = 20] = "BTUS";
                      EngineeringUnits222222[EngineeringUnits222222["KILO_BTUS"] = 147] = "KILO_BTUS";
                      EngineeringUnits222222[EngineeringUnits222222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                      EngineeringUnits222222[EngineeringUnits222222["THERMS"] = 21] = "THERMS";
                      EngineeringUnits222222[EngineeringUnits222222["TON_HOURS"] = 22] = "TON_HOURS";
                      EngineeringUnits222222[EngineeringUnits222222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                      EngineeringUnits222222[EngineeringUnits222222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                      EngineeringUnits222222[EngineeringUnits222222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                      EngineeringUnits222222[EngineeringUnits222222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                      EngineeringUnits222222[EngineeringUnits222222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                      EngineeringUnits222222[EngineeringUnits222222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                      EngineeringUnits222222[EngineeringUnits222222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                      EngineeringUnits222222[EngineeringUnits222222["NEWTON"] = 153] = "NEWTON";
                      EngineeringUnits222222[EngineeringUnits222222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["HERTZ"] = 27] = "HERTZ";
                      EngineeringUnits222222[EngineeringUnits222222["KILOHERTZ"] = 129] = "KILOHERTZ";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                      EngineeringUnits222222[EngineeringUnits222222["PER_HOUR"] = 131] = "PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                      EngineeringUnits222222[EngineeringUnits222222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                      EngineeringUnits222222[EngineeringUnits222222["MICROMETERS"] = 194] = "MICROMETERS";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIMETERS"] = 30] = "MILLIMETERS";
                      EngineeringUnits222222[EngineeringUnits222222["CENTIMETERS"] = 118] = "CENTIMETERS";
                      EngineeringUnits222222[EngineeringUnits222222["KILOMETERS"] = 193] = "KILOMETERS";
                      EngineeringUnits222222[EngineeringUnits222222["METERS"] = 31] = "METERS";
                      EngineeringUnits222222[EngineeringUnits222222["INCHES"] = 32] = "INCHES";
                      EngineeringUnits222222[EngineeringUnits222222["FEET"] = 33] = "FEET";
                      EngineeringUnits222222[EngineeringUnits222222["CANDELAS"] = 179] = "CANDELAS";
                      EngineeringUnits222222[EngineeringUnits222222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                      EngineeringUnits222222[EngineeringUnits222222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                      EngineeringUnits222222[EngineeringUnits222222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                      EngineeringUnits222222[EngineeringUnits222222["LUMENS"] = 36] = "LUMENS";
                      EngineeringUnits222222[EngineeringUnits222222["LUXES"] = 37] = "LUXES";
                      EngineeringUnits222222[EngineeringUnits222222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                      EngineeringUnits222222[EngineeringUnits222222["GRAMS"] = 195] = "GRAMS";
                      EngineeringUnits222222[EngineeringUnits222222["KILOGRAMS"] = 39] = "KILOGRAMS";
                      EngineeringUnits222222[EngineeringUnits222222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                      EngineeringUnits222222[EngineeringUnits222222["TONS"] = 41] = "TONS";
                      EngineeringUnits222222[EngineeringUnits222222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIWATTS"] = 132] = "MILLIWATTS";
                      EngineeringUnits222222[EngineeringUnits222222["WATTS"] = 47] = "WATTS";
                      EngineeringUnits222222[EngineeringUnits222222["KILOWATTS"] = 48] = "KILOWATTS";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAWATTS"] = 49] = "MEGAWATTS";
                      EngineeringUnits222222[EngineeringUnits222222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                      EngineeringUnits222222[EngineeringUnits222222["HORSEPOWER"] = 51] = "HORSEPOWER";
                      EngineeringUnits222222[EngineeringUnits222222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                      EngineeringUnits222222[EngineeringUnits222222["PASCALS"] = 53] = "PASCALS";
                      EngineeringUnits222222[EngineeringUnits222222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                      EngineeringUnits222222[EngineeringUnits222222["KILOPASCALS"] = 54] = "KILOPASCALS";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIBARS"] = 134] = "MILLIBARS";
                      EngineeringUnits222222[EngineeringUnits222222["BARS"] = 55] = "BARS";
                      EngineeringUnits222222[EngineeringUnits222222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                      EngineeringUnits222222[EngineeringUnits222222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                      EngineeringUnits222222[EngineeringUnits222222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                      EngineeringUnits222222[EngineeringUnits222222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                      EngineeringUnits222222[EngineeringUnits222222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                      EngineeringUnits222222[EngineeringUnits222222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                      EngineeringUnits222222[EngineeringUnits222222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                      EngineeringUnits222222[EngineeringUnits222222["YEARS"] = 67] = "YEARS";
                      EngineeringUnits222222[EngineeringUnits222222["MONTHS"] = 68] = "MONTHS";
                      EngineeringUnits222222[EngineeringUnits222222["WEEKS"] = 69] = "WEEKS";
                      EngineeringUnits222222[EngineeringUnits222222["DAYS"] = 70] = "DAYS";
                      EngineeringUnits222222[EngineeringUnits222222["HOURS"] = 71] = "HOURS";
                      EngineeringUnits222222[EngineeringUnits222222["MINUTES"] = 72] = "MINUTES";
                      EngineeringUnits222222[EngineeringUnits222222["SECONDS"] = 73] = "SECONDS";
                      EngineeringUnits222222[EngineeringUnits222222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                      EngineeringUnits222222[EngineeringUnits222222["MILLISECONDS"] = 159] = "MILLISECONDS";
                      EngineeringUnits222222[EngineeringUnits222222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                      EngineeringUnits222222[EngineeringUnits222222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                      EngineeringUnits222222[EngineeringUnits222222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                      EngineeringUnits222222[EngineeringUnits222222["MILLILITERS"] = 197] = "MILLILITERS";
                      EngineeringUnits222222[EngineeringUnits222222["LITERS"] = 82] = "LITERS";
                      EngineeringUnits222222[EngineeringUnits222222["US_GALLONS"] = 83] = "US_GALLONS";
                      EngineeringUnits222222[EngineeringUnits222222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                      EngineeringUnits222222[EngineeringUnits222222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                      EngineeringUnits222222[EngineeringUnits222222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                      EngineeringUnits222222[EngineeringUnits222222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                      EngineeringUnits222222[EngineeringUnits222222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                      EngineeringUnits222222[EngineeringUnits222222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                      EngineeringUnits222222[EngineeringUnits222222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                      EngineeringUnits222222[EngineeringUnits222222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                      EngineeringUnits222222[EngineeringUnits222222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                      EngineeringUnits222222[EngineeringUnits222222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                      EngineeringUnits222222[EngineeringUnits222222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                      EngineeringUnits222222[EngineeringUnits222222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                      EngineeringUnits222222[EngineeringUnits222222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                      EngineeringUnits222222[EngineeringUnits222222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                      EngineeringUnits222222[EngineeringUnits222222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                      EngineeringUnits222222[EngineeringUnits222222["NO_UNITS"] = 95] = "NO_UNITS";
                      EngineeringUnits222222[EngineeringUnits222222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                      EngineeringUnits222222[EngineeringUnits222222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                      EngineeringUnits222222[EngineeringUnits222222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                      EngineeringUnits222222[EngineeringUnits222222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                      EngineeringUnits222222[EngineeringUnits222222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                      EngineeringUnits222222[EngineeringUnits222222["PERCENT"] = 98] = "PERCENT";
                      EngineeringUnits222222[EngineeringUnits222222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                      EngineeringUnits222222[EngineeringUnits222222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                      EngineeringUnits222222[EngineeringUnits222222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["PER_MINUTE"] = 100] = "PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["PER_SECOND"] = 101] = "PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                      EngineeringUnits222222[EngineeringUnits222222["RADIANS"] = 103] = "RADIANS";
                      EngineeringUnits222222[EngineeringUnits222222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                      EngineeringUnits222222[EngineeringUnits222222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                      EngineeringUnits222222[EngineeringUnits222222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                      EngineeringUnits222222[EngineeringUnits222222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                      EngineeringUnits222222[EngineeringUnits222222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                      EngineeringUnits222222[EngineeringUnits222222["PER_MILLE"] = 207] = "PER_MILLE";
                      EngineeringUnits222222[EngineeringUnits222222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                      EngineeringUnits222222[EngineeringUnits222222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                      EngineeringUnits222222[EngineeringUnits222222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                      EngineeringUnits222222[EngineeringUnits222222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                      EngineeringUnits222222[EngineeringUnits222222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                      EngineeringUnits222222[EngineeringUnits222222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                      EngineeringUnits222222[EngineeringUnits222222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                      EngineeringUnits222222[EngineeringUnits222222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                      EngineeringUnits222222[EngineeringUnits222222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                      EngineeringUnits222222[EngineeringUnits222222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                      EngineeringUnits222222[EngineeringUnits222222["BECQUERELS"] = 222] = "BECQUERELS";
                      EngineeringUnits222222[EngineeringUnits222222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                      EngineeringUnits222222[EngineeringUnits222222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                      EngineeringUnits222222[EngineeringUnits222222["GRAY"] = 225] = "GRAY";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIGRAY"] = 226] = "MILLIGRAY";
                      EngineeringUnits222222[EngineeringUnits222222["MICROGRAY"] = 227] = "MICROGRAY";
                      EngineeringUnits222222[EngineeringUnits222222["SIEVERTS"] = 228] = "SIEVERTS";
                      EngineeringUnits222222[EngineeringUnits222222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                      EngineeringUnits222222[EngineeringUnits222222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                      EngineeringUnits222222[EngineeringUnits222222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIREMS"] = 47814] = "MILLIREMS";
                      EngineeringUnits222222[EngineeringUnits222222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                      EngineeringUnits222222[EngineeringUnits222222["DECIBELS_A"] = 232] = "DECIBELS_A";
                      EngineeringUnits222222[EngineeringUnits222222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                      EngineeringUnits222222[EngineeringUnits222222["PH"] = 234] = "PH";
                      EngineeringUnits222222[EngineeringUnits222222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                      EngineeringUnits222222[EngineeringUnits222222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                      return EngineeringUnits222222;
                    })(EngineeringUnits22222 || {});
                    var EscalatorFault22222 = /* @__PURE__ */ ((EscalatorFault222222) => {
                      EscalatorFault222222[EscalatorFault222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                      EscalatorFault222222[EscalatorFault222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                      EscalatorFault222222[EscalatorFault222222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                      EscalatorFault222222[EscalatorFault222222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                      EscalatorFault222222[EscalatorFault222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                      EscalatorFault222222[EscalatorFault222222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                      EscalatorFault222222[EscalatorFault222222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                      EscalatorFault222222[EscalatorFault222222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                      EscalatorFault222222[EscalatorFault222222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                      return EscalatorFault222222;
                    })(EscalatorFault22222 || {});
                    var EscalatorMode22222 = /* @__PURE__ */ ((EscalatorMode222222) => {
                      EscalatorMode222222[EscalatorMode222222["UNKNOWN"] = 0] = "UNKNOWN";
                      EscalatorMode222222[EscalatorMode222222["STOP"] = 1] = "STOP";
                      EscalatorMode222222[EscalatorMode222222["UP"] = 2] = "UP";
                      EscalatorMode222222[EscalatorMode222222["DOWN"] = 3] = "DOWN";
                      EscalatorMode222222[EscalatorMode222222["INSPECTION"] = 4] = "INSPECTION";
                      EscalatorMode222222[EscalatorMode222222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                      return EscalatorMode222222;
                    })(EscalatorMode22222 || {});
                    var EscalatorOperationDirection22222 = /* @__PURE__ */ ((EscalatorOperationDirection222222) => {
                      EscalatorOperationDirection222222[EscalatorOperationDirection222222["UNKNOWN"] = 0] = "UNKNOWN";
                      EscalatorOperationDirection222222[EscalatorOperationDirection222222["STOPPED"] = 1] = "STOPPED";
                      EscalatorOperationDirection222222[EscalatorOperationDirection222222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                      EscalatorOperationDirection222222[EscalatorOperationDirection222222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                      EscalatorOperationDirection222222[EscalatorOperationDirection222222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                      EscalatorOperationDirection222222[EscalatorOperationDirection222222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                      return EscalatorOperationDirection222222;
                    })(EscalatorOperationDirection22222 || {});
                    var EventState22222 = /* @__PURE__ */ ((EventState222222) => {
                      EventState222222[EventState222222["NORMAL"] = 0] = "NORMAL";
                      EventState222222[EventState222222["FAULT"] = 1] = "FAULT";
                      EventState222222[EventState222222["OFFNORMAL"] = 2] = "OFFNORMAL";
                      EventState222222[EventState222222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                      EventState222222[EventState222222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                      EventState222222[EventState222222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                      return EventState222222;
                    })(EventState22222 || {});
                    var EventType22222 = /* @__PURE__ */ ((EventType222222) => {
                      EventType222222[EventType222222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                      EventType222222[EventType222222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                      EventType222222[EventType222222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                      EventType222222[EventType222222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                      EventType222222[EventType222222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                      EventType222222[EventType222222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                      EventType222222[EventType222222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                      EventType222222[EventType222222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                      EventType222222[EventType222222["EXTENDED"] = 9] = "EXTENDED";
                      EventType222222[EventType222222["BUFFER_READY"] = 10] = "BUFFER_READY";
                      EventType222222[EventType222222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                      EventType222222[EventType222222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                      EventType222222[EventType222222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                      EventType222222[EventType222222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                      EventType222222[EventType222222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                      EventType222222[EventType222222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                      EventType222222[EventType222222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                      EventType222222[EventType222222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                      EventType222222[EventType222222["NONE"] = 20] = "NONE";
                      EventType222222[EventType222222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                      EventType222222[EventType222222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                      return EventType222222;
                    })(EventType22222 || {});
                    var FaultType22222 = /* @__PURE__ */ ((FaultType222222) => {
                      FaultType222222[FaultType222222["NONE"] = 0] = "NONE";
                      FaultType222222[FaultType222222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                      FaultType222222[FaultType222222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                      FaultType222222[FaultType222222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                      FaultType222222[FaultType222222["FAULT_STATE"] = 4] = "FAULT_STATE";
                      FaultType222222[FaultType222222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                      FaultType222222[FaultType222222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                      FaultType222222[FaultType222222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                      return FaultType222222;
                    })(FaultType22222 || {});
                    var FileAccessMethod22222 = /* @__PURE__ */ ((FileAccessMethod222222) => {
                      FileAccessMethod222222[FileAccessMethod222222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                      FileAccessMethod222222[FileAccessMethod222222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                      return FileAccessMethod222222;
                    })(FileAccessMethod22222 || {});
                    var IPMode22222 = /* @__PURE__ */ ((IPMode222222) => {
                      IPMode222222[IPMode222222["NORMAL"] = 0] = "NORMAL";
                      IPMode222222[IPMode222222["FOREIGN"] = 1] = "FOREIGN";
                      IPMode222222[IPMode222222["BBMD"] = 2] = "BBMD";
                      return IPMode222222;
                    })(IPMode22222 || {});
                    var LifeSafetyMode22222 = /* @__PURE__ */ ((LifeSafetyMode222222) => {
                      LifeSafetyMode222222[LifeSafetyMode222222["OFF"] = 0] = "OFF";
                      LifeSafetyMode222222[LifeSafetyMode222222["ON"] = 1] = "ON";
                      LifeSafetyMode222222[LifeSafetyMode222222["TEST"] = 2] = "TEST";
                      LifeSafetyMode222222[LifeSafetyMode222222["MANNED"] = 3] = "MANNED";
                      LifeSafetyMode222222[LifeSafetyMode222222["UNMANNED"] = 4] = "UNMANNED";
                      LifeSafetyMode222222[LifeSafetyMode222222["ARMED"] = 5] = "ARMED";
                      LifeSafetyMode222222[LifeSafetyMode222222["DISARMED"] = 6] = "DISARMED";
                      LifeSafetyMode222222[LifeSafetyMode222222["PREARMED"] = 7] = "PREARMED";
                      LifeSafetyMode222222[LifeSafetyMode222222["SLOW"] = 8] = "SLOW";
                      LifeSafetyMode222222[LifeSafetyMode222222["FAST"] = 9] = "FAST";
                      LifeSafetyMode222222[LifeSafetyMode222222["DISCONNECTED"] = 10] = "DISCONNECTED";
                      LifeSafetyMode222222[LifeSafetyMode222222["ENABLED"] = 11] = "ENABLED";
                      LifeSafetyMode222222[LifeSafetyMode222222["DISABLED"] = 12] = "DISABLED";
                      LifeSafetyMode222222[LifeSafetyMode222222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                      LifeSafetyMode222222[LifeSafetyMode222222["DEFAULT"] = 14] = "DEFAULT";
                      return LifeSafetyMode222222;
                    })(LifeSafetyMode22222 || {});
                    var LifeSafetyOperation22222 = /* @__PURE__ */ ((LifeSafetyOperation222222) => {
                      LifeSafetyOperation222222[LifeSafetyOperation222222["NONE"] = 0] = "NONE";
                      LifeSafetyOperation222222[LifeSafetyOperation222222["SILENCE"] = 1] = "SILENCE";
                      LifeSafetyOperation222222[LifeSafetyOperation222222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                      LifeSafetyOperation222222[LifeSafetyOperation222222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                      LifeSafetyOperation222222[LifeSafetyOperation222222["RESET"] = 4] = "RESET";
                      LifeSafetyOperation222222[LifeSafetyOperation222222["RESET_ALARM"] = 5] = "RESET_ALARM";
                      LifeSafetyOperation222222[LifeSafetyOperation222222["RESET_FAULT"] = 6] = "RESET_FAULT";
                      LifeSafetyOperation222222[LifeSafetyOperation222222["UNSILENCE"] = 7] = "UNSILENCE";
                      LifeSafetyOperation222222[LifeSafetyOperation222222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                      LifeSafetyOperation222222[LifeSafetyOperation222222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                      return LifeSafetyOperation222222;
                    })(LifeSafetyOperation22222 || {});
                    var LifeSafetyState22222 = /* @__PURE__ */ ((LifeSafetyState222222) => {
                      LifeSafetyState222222[LifeSafetyState222222["QUIET"] = 0] = "QUIET";
                      LifeSafetyState222222[LifeSafetyState222222["PRE_ALARM"] = 1] = "PRE_ALARM";
                      LifeSafetyState222222[LifeSafetyState222222["ALARM"] = 2] = "ALARM";
                      LifeSafetyState222222[LifeSafetyState222222["FAULT"] = 3] = "FAULT";
                      LifeSafetyState222222[LifeSafetyState222222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                      LifeSafetyState222222[LifeSafetyState222222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                      LifeSafetyState222222[LifeSafetyState222222["NOT_READY"] = 6] = "NOT_READY";
                      LifeSafetyState222222[LifeSafetyState222222["ACTIVE"] = 7] = "ACTIVE";
                      LifeSafetyState222222[LifeSafetyState222222["TAMPER"] = 8] = "TAMPER";
                      LifeSafetyState222222[LifeSafetyState222222["TEST_ALARM"] = 9] = "TEST_ALARM";
                      LifeSafetyState222222[LifeSafetyState222222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                      LifeSafetyState222222[LifeSafetyState222222["TEST_FAULT"] = 11] = "TEST_FAULT";
                      LifeSafetyState222222[LifeSafetyState222222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                      LifeSafetyState222222[LifeSafetyState222222["HOLDUP"] = 13] = "HOLDUP";
                      LifeSafetyState222222[LifeSafetyState222222["DURESS"] = 14] = "DURESS";
                      LifeSafetyState222222[LifeSafetyState222222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                      LifeSafetyState222222[LifeSafetyState222222["ABNORMAL"] = 16] = "ABNORMAL";
                      LifeSafetyState222222[LifeSafetyState222222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                      LifeSafetyState222222[LifeSafetyState222222["DELAYED"] = 18] = "DELAYED";
                      LifeSafetyState222222[LifeSafetyState222222["BLOCKED"] = 19] = "BLOCKED";
                      LifeSafetyState222222[LifeSafetyState222222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                      LifeSafetyState222222[LifeSafetyState222222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                      LifeSafetyState222222[LifeSafetyState222222["SUPERVISORY"] = 22] = "SUPERVISORY";
                      LifeSafetyState222222[LifeSafetyState222222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                      return LifeSafetyState222222;
                    })(LifeSafetyState22222 || {});
                    var LiftCarDirection22222 = /* @__PURE__ */ ((LiftCarDirection222222) => {
                      LiftCarDirection222222[LiftCarDirection222222["UNKNOWN"] = 0] = "UNKNOWN";
                      LiftCarDirection222222[LiftCarDirection222222["NONE"] = 1] = "NONE";
                      LiftCarDirection222222[LiftCarDirection222222["STOPPED"] = 2] = "STOPPED";
                      LiftCarDirection222222[LiftCarDirection222222["UP"] = 3] = "UP";
                      LiftCarDirection222222[LiftCarDirection222222["DOWN"] = 4] = "DOWN";
                      LiftCarDirection222222[LiftCarDirection222222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                      return LiftCarDirection222222;
                    })(LiftCarDirection22222 || {});
                    var LiftCarDoorCommand22222 = /* @__PURE__ */ ((LiftCarDoorCommand222222) => {
                      LiftCarDoorCommand222222[LiftCarDoorCommand222222["NONE"] = 0] = "NONE";
                      LiftCarDoorCommand222222[LiftCarDoorCommand222222["OPEN"] = 1] = "OPEN";
                      LiftCarDoorCommand222222[LiftCarDoorCommand222222["CLOSE"] = 2] = "CLOSE";
                      return LiftCarDoorCommand222222;
                    })(LiftCarDoorCommand22222 || {});
                    var LiftCarDriveStatus22222 = /* @__PURE__ */ ((LiftCarDriveStatus222222) => {
                      LiftCarDriveStatus222222[LiftCarDriveStatus222222["UNKNOWN"] = 0] = "UNKNOWN";
                      LiftCarDriveStatus222222[LiftCarDriveStatus222222["STATIONARY"] = 1] = "STATIONARY";
                      LiftCarDriveStatus222222[LiftCarDriveStatus222222["BRAKING"] = 2] = "BRAKING";
                      LiftCarDriveStatus222222[LiftCarDriveStatus222222["ACCELERATE"] = 3] = "ACCELERATE";
                      LiftCarDriveStatus222222[LiftCarDriveStatus222222["DECELERATE"] = 4] = "DECELERATE";
                      LiftCarDriveStatus222222[LiftCarDriveStatus222222["RATED_SPEED"] = 5] = "RATED_SPEED";
                      LiftCarDriveStatus222222[LiftCarDriveStatus222222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                      LiftCarDriveStatus222222[LiftCarDriveStatus222222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                      LiftCarDriveStatus222222[LiftCarDriveStatus222222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                      LiftCarDriveStatus222222[LiftCarDriveStatus222222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                      return LiftCarDriveStatus222222;
                    })(LiftCarDriveStatus22222 || {});
                    var LiftCarMode22222 = /* @__PURE__ */ ((LiftCarMode222222) => {
                      LiftCarMode222222[LiftCarMode222222["UNKNOWN"] = 0] = "UNKNOWN";
                      LiftCarMode222222[LiftCarMode222222["NORMAL"] = 1] = "NORMAL";
                      LiftCarMode222222[LiftCarMode222222["VIP"] = 2] = "VIP";
                      LiftCarMode222222[LiftCarMode222222["HOMING"] = 3] = "HOMING";
                      LiftCarMode222222[LiftCarMode222222["PARKING"] = 4] = "PARKING";
                      LiftCarMode222222[LiftCarMode222222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                      LiftCarMode222222[LiftCarMode222222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                      LiftCarMode222222[LiftCarMode222222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                      LiftCarMode222222[LiftCarMode222222["INSPECTION"] = 8] = "INSPECTION";
                      LiftCarMode222222[LiftCarMode222222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                      LiftCarMode222222[LiftCarMode222222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                      LiftCarMode222222[LiftCarMode222222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                      LiftCarMode222222[LiftCarMode222222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                      LiftCarMode222222[LiftCarMode222222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                      return LiftCarMode222222;
                    })(LiftCarMode22222 || {});
                    var LiftFault22222 = /* @__PURE__ */ ((LiftFault222222) => {
                      LiftFault222222[LiftFault222222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                      LiftFault222222[LiftFault222222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                      LiftFault222222[LiftFault222222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                      LiftFault222222[LiftFault222222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                      LiftFault222222[LiftFault222222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                      LiftFault222222[LiftFault222222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                      LiftFault222222[LiftFault222222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                      LiftFault222222[LiftFault222222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                      LiftFault222222[LiftFault222222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                      LiftFault222222[LiftFault222222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                      LiftFault222222[LiftFault222222["START_FAILURE"] = 10] = "START_FAILURE";
                      LiftFault222222[LiftFault222222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                      LiftFault222222[LiftFault222222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                      LiftFault222222[LiftFault222222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                      LiftFault222222[LiftFault222222["POSITION_LOST"] = 14] = "POSITION_LOST";
                      LiftFault222222[LiftFault222222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                      LiftFault222222[LiftFault222222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                      return LiftFault222222;
                    })(LiftFault22222 || {});
                    var LiftGroupMode22222 = /* @__PURE__ */ ((LiftGroupMode222222) => {
                      LiftGroupMode222222[LiftGroupMode222222["UNKNOWN"] = 0] = "UNKNOWN";
                      LiftGroupMode222222[LiftGroupMode222222["NORMAL"] = 1] = "NORMAL";
                      LiftGroupMode222222[LiftGroupMode222222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                      LiftGroupMode222222[LiftGroupMode222222["TWO_WAY"] = 3] = "TWO_WAY";
                      LiftGroupMode222222[LiftGroupMode222222["FOUR_WAY"] = 4] = "FOUR_WAY";
                      LiftGroupMode222222[LiftGroupMode222222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                      LiftGroupMode222222[LiftGroupMode222222["UP_PEAK"] = 6] = "UP_PEAK";
                      return LiftGroupMode222222;
                    })(LiftGroupMode22222 || {});
                    var LightingInProgress22222 = /* @__PURE__ */ ((LightingInProgress222222) => {
                      LightingInProgress222222[LightingInProgress222222["IDLE"] = 0] = "IDLE";
                      LightingInProgress222222[LightingInProgress222222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                      LightingInProgress222222[LightingInProgress222222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                      LightingInProgress222222[LightingInProgress222222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                      LightingInProgress222222[LightingInProgress222222["OTHER"] = 4] = "OTHER";
                      return LightingInProgress222222;
                    })(LightingInProgress22222 || {});
                    var LightingOperation22222 = /* @__PURE__ */ ((LightingOperation222222) => {
                      LightingOperation222222[LightingOperation222222["NONE"] = 0] = "NONE";
                      LightingOperation222222[LightingOperation222222["FADE_TO"] = 1] = "FADE_TO";
                      LightingOperation222222[LightingOperation222222["RAMP_TO"] = 2] = "RAMP_TO";
                      LightingOperation222222[LightingOperation222222["STEP_UP"] = 3] = "STEP_UP";
                      LightingOperation222222[LightingOperation222222["STEP_DOWN"] = 4] = "STEP_DOWN";
                      LightingOperation222222[LightingOperation222222["STEP_ON"] = 5] = "STEP_ON";
                      LightingOperation222222[LightingOperation222222["STEP_OFF"] = 6] = "STEP_OFF";
                      LightingOperation222222[LightingOperation222222["WARN"] = 7] = "WARN";
                      LightingOperation222222[LightingOperation222222["WARN_OFF"] = 8] = "WARN_OFF";
                      LightingOperation222222[LightingOperation222222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                      LightingOperation222222[LightingOperation222222["STOP"] = 10] = "STOP";
                      return LightingOperation222222;
                    })(LightingOperation22222 || {});
                    var LightingTransition22222 = /* @__PURE__ */ ((LightingTransition222222) => {
                      LightingTransition222222[LightingTransition222222["NONE"] = 0] = "NONE";
                      LightingTransition222222[LightingTransition222222["FADE"] = 1] = "FADE";
                      LightingTransition222222[LightingTransition222222["RAMP"] = 2] = "RAMP";
                      return LightingTransition222222;
                    })(LightingTransition22222 || {});
                    var LockStatus22222 = /* @__PURE__ */ ((LockStatus222222) => {
                      LockStatus222222[LockStatus222222["LOCKED"] = 0] = "LOCKED";
                      LockStatus222222[LockStatus222222["UNLOCKED"] = 1] = "UNLOCKED";
                      LockStatus222222[LockStatus222222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                      LockStatus222222[LockStatus222222["UNUSED"] = 3] = "UNUSED";
                      LockStatus222222[LockStatus222222["UNKNOWN"] = 4] = "UNKNOWN";
                      return LockStatus222222;
                    })(LockStatus22222 || {});
                    var LoggingType22222 = /* @__PURE__ */ ((LoggingType222222) => {
                      LoggingType222222[LoggingType222222["POLLED"] = 0] = "POLLED";
                      LoggingType222222[LoggingType222222["COV"] = 1] = "COV";
                      LoggingType222222[LoggingType222222["TRIGGERED"] = 2] = "TRIGGERED";
                      return LoggingType222222;
                    })(LoggingType22222 || {});
                    var Maintenance22222 = /* @__PURE__ */ ((Maintenance222222) => {
                      Maintenance222222[Maintenance222222["NONE"] = 0] = "NONE";
                      Maintenance222222[Maintenance222222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                      Maintenance222222[Maintenance222222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                      Maintenance222222[Maintenance222222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                      return Maintenance222222;
                    })(Maintenance22222 || {});
                    var NetworkNumberQuality22222 = /* @__PURE__ */ ((NetworkNumberQuality222222) => {
                      NetworkNumberQuality222222[NetworkNumberQuality222222["UNKNOWN"] = 0] = "UNKNOWN";
                      NetworkNumberQuality222222[NetworkNumberQuality222222["LEARNED"] = 1] = "LEARNED";
                      NetworkNumberQuality222222[NetworkNumberQuality222222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                      NetworkNumberQuality222222[NetworkNumberQuality222222["CONFIGURED"] = 3] = "CONFIGURED";
                      return NetworkNumberQuality222222;
                    })(NetworkNumberQuality22222 || {});
                    var NetworkPortCommand22222 = /* @__PURE__ */ ((NetworkPortCommand222222) => {
                      NetworkPortCommand222222[NetworkPortCommand222222["IDLE"] = 0] = "IDLE";
                      NetworkPortCommand222222[NetworkPortCommand222222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                      NetworkPortCommand222222[NetworkPortCommand222222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                      NetworkPortCommand222222[NetworkPortCommand222222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                      NetworkPortCommand222222[NetworkPortCommand222222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                      NetworkPortCommand222222[NetworkPortCommand222222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                      NetworkPortCommand222222[NetworkPortCommand222222["DISCONNECT"] = 6] = "DISCONNECT";
                      NetworkPortCommand222222[NetworkPortCommand222222["RESTART_PORT"] = 7] = "RESTART_PORT";
                      return NetworkPortCommand222222;
                    })(NetworkPortCommand22222 || {});
                    var NetworkType22222 = /* @__PURE__ */ ((NetworkType222222) => {
                      NetworkType222222[NetworkType222222["ETHERNET"] = 0] = "ETHERNET";
                      NetworkType222222[NetworkType222222["ARCNET"] = 1] = "ARCNET";
                      NetworkType222222[NetworkType222222["MSTP"] = 2] = "MSTP";
                      NetworkType222222[NetworkType222222["PTP"] = 3] = "PTP";
                      NetworkType222222[NetworkType222222["LONTALK"] = 4] = "LONTALK";
                      NetworkType222222[NetworkType222222["IPV4"] = 5] = "IPV4";
                      NetworkType222222[NetworkType222222["ZIGBEE"] = 6] = "ZIGBEE";
                      NetworkType222222[NetworkType222222["VIRTUAL"] = 7] = "VIRTUAL";
                      NetworkType222222[NetworkType222222["IPV6"] = 9] = "IPV6";
                      NetworkType222222[NetworkType222222["SERIAL"] = 10] = "SERIAL";
                      return NetworkType222222;
                    })(NetworkType22222 || {});
                    var NodeType22222 = /* @__PURE__ */ ((NodeType222222) => {
                      NodeType222222[NodeType222222["UNKNOWN"] = 0] = "UNKNOWN";
                      NodeType222222[NodeType222222["SYSTEM"] = 1] = "SYSTEM";
                      NodeType222222[NodeType222222["NETWORK"] = 2] = "NETWORK";
                      NodeType222222[NodeType222222["DEVICE"] = 3] = "DEVICE";
                      NodeType222222[NodeType222222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                      NodeType222222[NodeType222222["AREA"] = 5] = "AREA";
                      NodeType222222[NodeType222222["EQUIPMENT"] = 6] = "EQUIPMENT";
                      NodeType222222[NodeType222222["POINT"] = 7] = "POINT";
                      NodeType222222[NodeType222222["COLLECTION"] = 8] = "COLLECTION";
                      NodeType222222[NodeType222222["PROPERTY"] = 9] = "PROPERTY";
                      NodeType222222[NodeType222222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                      NodeType222222[NodeType222222["OTHER"] = 11] = "OTHER";
                      NodeType222222[NodeType222222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                      NodeType222222[NodeType222222["BUILDING"] = 13] = "BUILDING";
                      NodeType222222[NodeType222222["FLOOR"] = 14] = "FLOOR";
                      NodeType222222[NodeType222222["SECTION"] = 15] = "SECTION";
                      NodeType222222[NodeType222222["MODULE"] = 16] = "MODULE";
                      NodeType222222[NodeType222222["TREE"] = 17] = "TREE";
                      NodeType222222[NodeType222222["MEMBER"] = 18] = "MEMBER";
                      NodeType222222[NodeType222222["PROTOCOL"] = 19] = "PROTOCOL";
                      NodeType222222[NodeType222222["ROOM"] = 20] = "ROOM";
                      NodeType222222[NodeType222222["ZONE"] = 21] = "ZONE";
                      return NodeType222222;
                    })(NodeType22222 || {});
                    var NotifyType22222 = /* @__PURE__ */ ((NotifyType222222) => {
                      NotifyType222222[NotifyType222222["ALARM"] = 0] = "ALARM";
                      NotifyType222222[NotifyType222222["EVENT"] = 1] = "EVENT";
                      NotifyType222222[NotifyType222222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                      return NotifyType222222;
                    })(NotifyType22222 || {});
                    var ObjectType22222 = /* @__PURE__ */ ((ObjectType222222) => {
                      ObjectType222222[ObjectType222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                      ObjectType222222[ObjectType222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                      ObjectType222222[ObjectType222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                      ObjectType222222[ObjectType222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                      ObjectType222222[ObjectType222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                      ObjectType222222[ObjectType222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                      ObjectType222222[ObjectType222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                      ObjectType222222[ObjectType222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                      ObjectType222222[ObjectType222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                      ObjectType222222[ObjectType222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                      ObjectType222222[ObjectType222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                      ObjectType222222[ObjectType222222["AVERAGING"] = 18] = "AVERAGING";
                      ObjectType222222[ObjectType222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                      ObjectType222222[ObjectType222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                      ObjectType222222[ObjectType222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                      ObjectType222222[ObjectType222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                      ObjectType222222[ObjectType222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                      ObjectType222222[ObjectType222222["CALENDAR"] = 6] = "CALENDAR";
                      ObjectType222222[ObjectType222222["CHANNEL"] = 53] = "CHANNEL";
                      ObjectType222222[ObjectType222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                      ObjectType222222[ObjectType222222["COMMAND"] = 7] = "COMMAND";
                      ObjectType222222[ObjectType222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                      ObjectType222222[ObjectType222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                      ObjectType222222[ObjectType222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                      ObjectType222222[ObjectType222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                      ObjectType222222[ObjectType222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                      ObjectType222222[ObjectType222222["DEVICE"] = 8] = "DEVICE";
                      ObjectType222222[ObjectType222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                      ObjectType222222[ObjectType222222["ESCALATOR"] = 58] = "ESCALATOR";
                      ObjectType222222[ObjectType222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                      ObjectType222222[ObjectType222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                      ObjectType222222[ObjectType222222["FILE"] = 10] = "FILE";
                      ObjectType222222[ObjectType222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                      ObjectType222222[ObjectType222222["GROUP"] = 11] = "GROUP";
                      ObjectType222222[ObjectType222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                      ObjectType222222[ObjectType222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                      ObjectType222222[ObjectType222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                      ObjectType222222[ObjectType222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                      ObjectType222222[ObjectType222222["LIFT"] = 59] = "LIFT";
                      ObjectType222222[ObjectType222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                      ObjectType222222[ObjectType222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                      ObjectType222222[ObjectType222222["LOOP"] = 12] = "LOOP";
                      ObjectType222222[ObjectType222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                      ObjectType222222[ObjectType222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                      ObjectType222222[ObjectType222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                      ObjectType222222[ObjectType222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                      ObjectType222222[ObjectType222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                      ObjectType222222[ObjectType222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                      ObjectType222222[ObjectType222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                      ObjectType222222[ObjectType222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                      ObjectType222222[ObjectType222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                      ObjectType222222[ObjectType222222["PROGRAM"] = 16] = "PROGRAM";
                      ObjectType222222[ObjectType222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                      ObjectType222222[ObjectType222222["SCHEDULE"] = 17] = "SCHEDULE";
                      ObjectType222222[ObjectType222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                      ObjectType222222[ObjectType222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                      ObjectType222222[ObjectType222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                      ObjectType222222[ObjectType222222["TIMER"] = 31] = "TIMER";
                      ObjectType222222[ObjectType222222["TREND_LOG"] = 20] = "TREND_LOG";
                      ObjectType222222[ObjectType222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                      return ObjectType222222;
                    })(ObjectType22222 || {});
                    var Polarity22222 = /* @__PURE__ */ ((Polarity222222) => {
                      Polarity222222[Polarity222222["NORMAL"] = 0] = "NORMAL";
                      Polarity222222[Polarity222222["REVERSE"] = 1] = "REVERSE";
                      return Polarity222222;
                    })(Polarity22222 || {});
                    var ProgramError22222 = /* @__PURE__ */ ((ProgramError222222) => {
                      ProgramError222222[ProgramError222222["NORMAL"] = 0] = "NORMAL";
                      ProgramError222222[ProgramError222222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                      ProgramError222222[ProgramError222222["INTERNAL"] = 2] = "INTERNAL";
                      ProgramError222222[ProgramError222222["PROGRAM"] = 3] = "PROGRAM";
                      ProgramError222222[ProgramError222222["OTHER"] = 4] = "OTHER";
                      return ProgramError222222;
                    })(ProgramError22222 || {});
                    var ProgramRequest22222 = /* @__PURE__ */ ((ProgramRequest222222) => {
                      ProgramRequest222222[ProgramRequest222222["READY"] = 0] = "READY";
                      ProgramRequest222222[ProgramRequest222222["LOAD"] = 1] = "LOAD";
                      ProgramRequest222222[ProgramRequest222222["RUN"] = 2] = "RUN";
                      ProgramRequest222222[ProgramRequest222222["HALT"] = 3] = "HALT";
                      ProgramRequest222222[ProgramRequest222222["RESTART"] = 4] = "RESTART";
                      ProgramRequest222222[ProgramRequest222222["UNLOAD"] = 5] = "UNLOAD";
                      return ProgramRequest222222;
                    })(ProgramRequest22222 || {});
                    var ProgramState22222 = /* @__PURE__ */ ((ProgramState222222) => {
                      ProgramState222222[ProgramState222222["IDLE"] = 0] = "IDLE";
                      ProgramState222222[ProgramState222222["LOADING"] = 1] = "LOADING";
                      ProgramState222222[ProgramState222222["RUNNING"] = 2] = "RUNNING";
                      ProgramState222222[ProgramState222222["WAITING"] = 3] = "WAITING";
                      ProgramState222222[ProgramState222222["HALTED"] = 4] = "HALTED";
                      ProgramState222222[ProgramState222222["UNLOADING"] = 5] = "UNLOADING";
                      return ProgramState222222;
                    })(ProgramState22222 || {});
                    var PropertyIdentifier22222 = /* @__PURE__ */ ((PropertyIdentifier222222) => {
                      PropertyIdentifier222222[PropertyIdentifier222222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACTION"] = 2] = "ACTION";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                      PropertyIdentifier222222[PropertyIdentifier222222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                      PropertyIdentifier222222[PropertyIdentifier222222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ALL"] = 8] = "ALL";
                      PropertyIdentifier222222[PropertyIdentifier222222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                      PropertyIdentifier222222[PropertyIdentifier222222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                      PropertyIdentifier222222[PropertyIdentifier222222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                      PropertyIdentifier222222[PropertyIdentifier222222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                      PropertyIdentifier222222[PropertyIdentifier222222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                      PropertyIdentifier222222[PropertyIdentifier222222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                      PropertyIdentifier222222[PropertyIdentifier222222["ARCHIVE"] = 13] = "ARCHIVE";
                      PropertyIdentifier222222[PropertyIdentifier222222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                      PropertyIdentifier222222[PropertyIdentifier222222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                      PropertyIdentifier222222[PropertyIdentifier222222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                      PropertyIdentifier222222[PropertyIdentifier222222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                      PropertyIdentifier222222[PropertyIdentifier222222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                      PropertyIdentifier222222[PropertyIdentifier222222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                      PropertyIdentifier222222[PropertyIdentifier222222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                      PropertyIdentifier222222[PropertyIdentifier222222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                      PropertyIdentifier222222[PropertyIdentifier222222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                      PropertyIdentifier222222[PropertyIdentifier222222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                      PropertyIdentifier222222[PropertyIdentifier222222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                      PropertyIdentifier222222[PropertyIdentifier222222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                      PropertyIdentifier222222[PropertyIdentifier222222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                      PropertyIdentifier222222[PropertyIdentifier222222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                      PropertyIdentifier222222[PropertyIdentifier222222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                      PropertyIdentifier222222[PropertyIdentifier222222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                      PropertyIdentifier222222[PropertyIdentifier222222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                      PropertyIdentifier222222[PropertyIdentifier222222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                      PropertyIdentifier222222[PropertyIdentifier222222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                      PropertyIdentifier222222[PropertyIdentifier222222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["BELONGS_TO"] = 262] = "BELONGS_TO";
                      PropertyIdentifier222222[PropertyIdentifier222222["BIAS"] = 14] = "BIAS";
                      PropertyIdentifier222222[PropertyIdentifier222222["BIT_MASK"] = 342] = "BIT_MASK";
                      PropertyIdentifier222222[PropertyIdentifier222222["BIT_TEXT"] = 343] = "BIT_TEXT";
                      PropertyIdentifier222222[PropertyIdentifier222222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                      PropertyIdentifier222222[PropertyIdentifier222222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                      PropertyIdentifier222222[PropertyIdentifier222222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                      PropertyIdentifier222222[PropertyIdentifier222222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                      PropertyIdentifier222222[PropertyIdentifier222222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                      PropertyIdentifier222222[PropertyIdentifier222222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                      PropertyIdentifier222222[PropertyIdentifier222222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                      PropertyIdentifier222222[PropertyIdentifier222222["CAR_LOAD"] = 454] = "CAR_LOAD";
                      PropertyIdentifier222222[PropertyIdentifier222222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                      PropertyIdentifier222222[PropertyIdentifier222222["CAR_MODE"] = 456] = "CAR_MODE";
                      PropertyIdentifier222222[PropertyIdentifier222222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                      PropertyIdentifier222222[PropertyIdentifier222222["CAR_POSITION"] = 458] = "CAR_POSITION";
                      PropertyIdentifier222222[PropertyIdentifier222222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                      PropertyIdentifier222222[PropertyIdentifier222222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                      PropertyIdentifier222222[PropertyIdentifier222222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                      PropertyIdentifier222222[PropertyIdentifier222222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                      PropertyIdentifier222222[PropertyIdentifier222222["COMMAND"] = 417] = "COMMAND";
                      PropertyIdentifier222222[PropertyIdentifier222222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                      PropertyIdentifier222222[PropertyIdentifier222222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                      PropertyIdentifier222222[PropertyIdentifier222222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                      PropertyIdentifier222222[PropertyIdentifier222222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                      PropertyIdentifier222222[PropertyIdentifier222222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                      PropertyIdentifier222222[PropertyIdentifier222222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["COUNT"] = 177] = "COUNT";
                      PropertyIdentifier222222[PropertyIdentifier222222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                      PropertyIdentifier222222[PropertyIdentifier222222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                      PropertyIdentifier222222[PropertyIdentifier222222["COV_PERIOD"] = 180] = "COV_PERIOD";
                      PropertyIdentifier222222[PropertyIdentifier222222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                      PropertyIdentifier222222[PropertyIdentifier222222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                      PropertyIdentifier222222[PropertyIdentifier222222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                      PropertyIdentifier222222[PropertyIdentifier222222["CREDENTIALS"] = 265] = "CREDENTIALS";
                      PropertyIdentifier222222[PropertyIdentifier222222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                      PropertyIdentifier222222[PropertyIdentifier222222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                      PropertyIdentifier222222[PropertyIdentifier222222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                      PropertyIdentifier222222[PropertyIdentifier222222["DATE_LIST"] = 23] = "DATE_LIST";
                      PropertyIdentifier222222[PropertyIdentifier222222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                      PropertyIdentifier222222[PropertyIdentifier222222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                      PropertyIdentifier222222[PropertyIdentifier222222["DEADBAND"] = 25] = "DEADBAND";
                      PropertyIdentifier222222[PropertyIdentifier222222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                      PropertyIdentifier222222[PropertyIdentifier222222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                      PropertyIdentifier222222[PropertyIdentifier222222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                      PropertyIdentifier222222[PropertyIdentifier222222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                      PropertyIdentifier222222[PropertyIdentifier222222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                      PropertyIdentifier222222[PropertyIdentifier222222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                      PropertyIdentifier222222[PropertyIdentifier222222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                      PropertyIdentifier222222[PropertyIdentifier222222["DESCRIPTION"] = 28] = "DESCRIPTION";
                      PropertyIdentifier222222[PropertyIdentifier222222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                      PropertyIdentifier222222[PropertyIdentifier222222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                      PropertyIdentifier222222[PropertyIdentifier222222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                      PropertyIdentifier222222[PropertyIdentifier222222["DIRECT_READING"] = 156] = "DIRECT_READING";
                      PropertyIdentifier222222[PropertyIdentifier222222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                      PropertyIdentifier222222[PropertyIdentifier222222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                      PropertyIdentifier222222[PropertyIdentifier222222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                      PropertyIdentifier222222[PropertyIdentifier222222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                      PropertyIdentifier222222[PropertyIdentifier222222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                      PropertyIdentifier222222[PropertyIdentifier222222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                      PropertyIdentifier222222[PropertyIdentifier222222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                      PropertyIdentifier222222[PropertyIdentifier222222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                      PropertyIdentifier222222[PropertyIdentifier222222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                      PropertyIdentifier222222[PropertyIdentifier222222["ENABLE"] = 133] = "ENABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["ENERGY_METER"] = 460] = "ENERGY_METER";
                      PropertyIdentifier222222[PropertyIdentifier222222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                      PropertyIdentifier222222[PropertyIdentifier222222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                      PropertyIdentifier222222[PropertyIdentifier222222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                      PropertyIdentifier222222[PropertyIdentifier222222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                      PropertyIdentifier222222[PropertyIdentifier222222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                      PropertyIdentifier222222[PropertyIdentifier222222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                      PropertyIdentifier222222[PropertyIdentifier222222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                      PropertyIdentifier222222[PropertyIdentifier222222["EVENT_STATE"] = 36] = "EVENT_STATE";
                      PropertyIdentifier222222[PropertyIdentifier222222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                      PropertyIdentifier222222[PropertyIdentifier222222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                      PropertyIdentifier222222[PropertyIdentifier222222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                      PropertyIdentifier222222[PropertyIdentifier222222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                      PropertyIdentifier222222[PropertyIdentifier222222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                      PropertyIdentifier222222[PropertyIdentifier222222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                      PropertyIdentifier222222[PropertyIdentifier222222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                      PropertyIdentifier222222[PropertyIdentifier222222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                      PropertyIdentifier222222[PropertyIdentifier222222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                      PropertyIdentifier222222[PropertyIdentifier222222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                      PropertyIdentifier222222[PropertyIdentifier222222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                      PropertyIdentifier222222[PropertyIdentifier222222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                      PropertyIdentifier222222[PropertyIdentifier222222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                      PropertyIdentifier222222[PropertyIdentifier222222["FILE_SIZE"] = 42] = "FILE_SIZE";
                      PropertyIdentifier222222[PropertyIdentifier222222["FILE_TYPE"] = 43] = "FILE_TYPE";
                      PropertyIdentifier222222[PropertyIdentifier222222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                      PropertyIdentifier222222[PropertyIdentifier222222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                      PropertyIdentifier222222[PropertyIdentifier222222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                      PropertyIdentifier222222[PropertyIdentifier222222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                      PropertyIdentifier222222[PropertyIdentifier222222["GROUP_ID"] = 465] = "GROUP_ID";
                      PropertyIdentifier222222[PropertyIdentifier222222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                      PropertyIdentifier222222[PropertyIdentifier222222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                      PropertyIdentifier222222[PropertyIdentifier222222["GROUP_MODE"] = 467] = "GROUP_MODE";
                      PropertyIdentifier222222[PropertyIdentifier222222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                      PropertyIdentifier222222[PropertyIdentifier222222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                      PropertyIdentifier222222[PropertyIdentifier222222["IN_PROCESS"] = 47] = "IN_PROCESS";
                      PropertyIdentifier222222[PropertyIdentifier222222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                      PropertyIdentifier222222[PropertyIdentifier222222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                      PropertyIdentifier222222[PropertyIdentifier222222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                      PropertyIdentifier222222[PropertyIdentifier222222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                      PropertyIdentifier222222[PropertyIdentifier222222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                      PropertyIdentifier222222[PropertyIdentifier222222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                      PropertyIdentifier222222[PropertyIdentifier222222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                      PropertyIdentifier222222[PropertyIdentifier222222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                      PropertyIdentifier222222[PropertyIdentifier222222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                      PropertyIdentifier222222[PropertyIdentifier222222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                      PropertyIdentifier222222[PropertyIdentifier222222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                      PropertyIdentifier222222[PropertyIdentifier222222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                      PropertyIdentifier222222[PropertyIdentifier222222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                      PropertyIdentifier222222[PropertyIdentifier222222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                      PropertyIdentifier222222[PropertyIdentifier222222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                      PropertyIdentifier222222[PropertyIdentifier222222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                      PropertyIdentifier222222[PropertyIdentifier222222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                      PropertyIdentifier222222[PropertyIdentifier222222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                      PropertyIdentifier222222[PropertyIdentifier222222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                      PropertyIdentifier222222[PropertyIdentifier222222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                      PropertyIdentifier222222[PropertyIdentifier222222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                      PropertyIdentifier222222[PropertyIdentifier222222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                      PropertyIdentifier222222[PropertyIdentifier222222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                      PropertyIdentifier222222[PropertyIdentifier222222["IS_UTC"] = 344] = "IS_UTC";
                      PropertyIdentifier222222[PropertyIdentifier222222["KEY_SETS"] = 330] = "KEY_SETS";
                      PropertyIdentifier222222[PropertyIdentifier222222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                      PropertyIdentifier222222[PropertyIdentifier222222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                      PropertyIdentifier222222[PropertyIdentifier222222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                      PropertyIdentifier222222[PropertyIdentifier222222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                      PropertyIdentifier222222[PropertyIdentifier222222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                      PropertyIdentifier222222[PropertyIdentifier222222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                      PropertyIdentifier222222[PropertyIdentifier222222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                      PropertyIdentifier222222[PropertyIdentifier222222["LINK_SPEED"] = 420] = "LINK_SPEED";
                      PropertyIdentifier222222[PropertyIdentifier222222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                      PropertyIdentifier222222[PropertyIdentifier222222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                      PropertyIdentifier222222[PropertyIdentifier222222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                      PropertyIdentifier222222[PropertyIdentifier222222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOCATION"] = 58] = "LOCATION";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOCKOUT"] = 282] = "LOCKOUT";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                      PropertyIdentifier222222[PropertyIdentifier222222["LOWER_DECK"] = 473] = "LOWER_DECK";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                      PropertyIdentifier222222[PropertyIdentifier222222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                      PropertyIdentifier222222[PropertyIdentifier222222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                      PropertyIdentifier222222[PropertyIdentifier222222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                      PropertyIdentifier222222[PropertyIdentifier222222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAX_MASTER"] = 64] = "MAX_MASTER";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                      PropertyIdentifier222222[PropertyIdentifier222222["MEMBER_OF"] = 159] = "MEMBER_OF";
                      PropertyIdentifier222222[PropertyIdentifier222222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                      PropertyIdentifier222222[PropertyIdentifier222222["MEMBERS"] = 286] = "MEMBERS";
                      PropertyIdentifier222222[PropertyIdentifier222222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                      PropertyIdentifier222222[PropertyIdentifier222222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                      PropertyIdentifier222222[PropertyIdentifier222222["MODE"] = 160] = "MODE";
                      PropertyIdentifier222222[PropertyIdentifier222222["MODEL_NAME"] = 70] = "MODEL_NAME";
                      PropertyIdentifier222222[PropertyIdentifier222222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                      PropertyIdentifier222222[PropertyIdentifier222222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                      PropertyIdentifier222222[PropertyIdentifier222222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                      PropertyIdentifier222222[PropertyIdentifier222222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                      PropertyIdentifier222222[PropertyIdentifier222222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                      PropertyIdentifier222222[PropertyIdentifier222222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                      PropertyIdentifier222222[PropertyIdentifier222222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                      PropertyIdentifier222222[PropertyIdentifier222222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                      PropertyIdentifier222222[PropertyIdentifier222222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                      PropertyIdentifier222222[PropertyIdentifier222222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                      PropertyIdentifier222222[PropertyIdentifier222222["NODE_TYPE"] = 208] = "NODE_TYPE";
                      PropertyIdentifier222222[PropertyIdentifier222222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                      PropertyIdentifier222222[PropertyIdentifier222222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                      PropertyIdentifier222222[PropertyIdentifier222222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                      PropertyIdentifier222222[PropertyIdentifier222222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                      PropertyIdentifier222222[PropertyIdentifier222222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                      PropertyIdentifier222222[PropertyIdentifier222222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                      PropertyIdentifier222222[PropertyIdentifier222222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                      PropertyIdentifier222222[PropertyIdentifier222222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                      PropertyIdentifier222222[PropertyIdentifier222222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                      PropertyIdentifier222222[PropertyIdentifier222222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                      PropertyIdentifier222222[PropertyIdentifier222222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                      PropertyIdentifier222222[PropertyIdentifier222222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                      PropertyIdentifier222222[PropertyIdentifier222222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                      PropertyIdentifier222222[PropertyIdentifier222222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                      PropertyIdentifier222222[PropertyIdentifier222222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                      PropertyIdentifier222222[PropertyIdentifier222222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                      PropertyIdentifier222222[PropertyIdentifier222222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                      PropertyIdentifier222222[PropertyIdentifier222222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                      PropertyIdentifier222222[PropertyIdentifier222222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                      PropertyIdentifier222222[PropertyIdentifier222222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                      PropertyIdentifier222222[PropertyIdentifier222222["OPTIONAL"] = 80] = "OPTIONAL";
                      PropertyIdentifier222222[PropertyIdentifier222222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                      PropertyIdentifier222222[PropertyIdentifier222222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                      PropertyIdentifier222222[PropertyIdentifier222222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                      PropertyIdentifier222222[PropertyIdentifier222222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                      PropertyIdentifier222222[PropertyIdentifier222222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                      PropertyIdentifier222222[PropertyIdentifier222222["POLARITY"] = 84] = "POLARITY";
                      PropertyIdentifier222222[PropertyIdentifier222222["PORT_FILTER"] = 363] = "PORT_FILTER";
                      PropertyIdentifier222222[PropertyIdentifier222222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                      PropertyIdentifier222222[PropertyIdentifier222222["POWER"] = 384] = "POWER";
                      PropertyIdentifier222222[PropertyIdentifier222222["POWER_MODE"] = 479] = "POWER_MODE";
                      PropertyIdentifier222222[PropertyIdentifier222222["PRESCALE"] = 185] = "PRESCALE";
                      PropertyIdentifier222222[PropertyIdentifier222222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["PRIORITY"] = 86] = "PRIORITY";
                      PropertyIdentifier222222[PropertyIdentifier222222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                      PropertyIdentifier222222[PropertyIdentifier222222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                      PropertyIdentifier222222[PropertyIdentifier222222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                      PropertyIdentifier222222[PropertyIdentifier222222["PULSE_RATE"] = 186] = "PULSE_RATE";
                      PropertyIdentifier222222[PropertyIdentifier222222["READ_ONLY"] = 99] = "READ_ONLY";
                      PropertyIdentifier222222[PropertyIdentifier222222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                      PropertyIdentifier222222[PropertyIdentifier222222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                      PropertyIdentifier222222[PropertyIdentifier222222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                      PropertyIdentifier222222[PropertyIdentifier222222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                      PropertyIdentifier222222[PropertyIdentifier222222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                      PropertyIdentifier222222[PropertyIdentifier222222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                      PropertyIdentifier222222[PropertyIdentifier222222["RELIABILITY"] = 103] = "RELIABILITY";
                      PropertyIdentifier222222[PropertyIdentifier222222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                      PropertyIdentifier222222[PropertyIdentifier222222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                      PropertyIdentifier222222[PropertyIdentifier222222["REPRESENTS"] = 491] = "REPRESENTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                      PropertyIdentifier222222[PropertyIdentifier222222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                      PropertyIdentifier222222[PropertyIdentifier222222["REQUIRED"] = 105] = "REQUIRED";
                      PropertyIdentifier222222[PropertyIdentifier222222["RESOLUTION"] = 106] = "RESOLUTION";
                      PropertyIdentifier222222[PropertyIdentifier222222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["SCALE"] = 187] = "SCALE";
                      PropertyIdentifier222222[PropertyIdentifier222222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                      PropertyIdentifier222222[PropertyIdentifier222222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                      PropertyIdentifier222222[PropertyIdentifier222222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                      PropertyIdentifier222222[PropertyIdentifier222222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                      PropertyIdentifier222222[PropertyIdentifier222222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                      PropertyIdentifier222222[PropertyIdentifier222222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                      PropertyIdentifier222222[PropertyIdentifier222222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                      PropertyIdentifier222222[PropertyIdentifier222222["SETPOINT"] = 108] = "SETPOINT";
                      PropertyIdentifier222222[PropertyIdentifier222222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                      PropertyIdentifier222222[PropertyIdentifier222222["SETTING"] = 162] = "SETTING";
                      PropertyIdentifier222222[PropertyIdentifier222222["SHED_DURATION"] = 219] = "SHED_DURATION";
                      PropertyIdentifier222222[PropertyIdentifier222222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                      PropertyIdentifier222222[PropertyIdentifier222222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                      PropertyIdentifier222222[PropertyIdentifier222222["SILENCED"] = 163] = "SILENCED";
                      PropertyIdentifier222222[PropertyIdentifier222222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                      PropertyIdentifier222222[PropertyIdentifier222222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["START_TIME"] = 142] = "START_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                      PropertyIdentifier222222[PropertyIdentifier222222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                      PropertyIdentifier222222[PropertyIdentifier222222["STATE_TEXT"] = 110] = "STATE_TEXT";
                      PropertyIdentifier222222[PropertyIdentifier222222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                      PropertyIdentifier222222[PropertyIdentifier222222["STOP_TIME"] = 143] = "STOP_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                      PropertyIdentifier222222[PropertyIdentifier222222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                      PropertyIdentifier222222[PropertyIdentifier222222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                      PropertyIdentifier222222[PropertyIdentifier222222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                      PropertyIdentifier222222[PropertyIdentifier222222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                      PropertyIdentifier222222[PropertyIdentifier222222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                      PropertyIdentifier222222[PropertyIdentifier222222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                      PropertyIdentifier222222[PropertyIdentifier222222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                      PropertyIdentifier222222[PropertyIdentifier222222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                      PropertyIdentifier222222[PropertyIdentifier222222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                      PropertyIdentifier222222[PropertyIdentifier222222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                      PropertyIdentifier222222[PropertyIdentifier222222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                      PropertyIdentifier222222[PropertyIdentifier222222["TAGS"] = 486] = "TAGS";
                      PropertyIdentifier222222[PropertyIdentifier222222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                      PropertyIdentifier222222[PropertyIdentifier222222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                      PropertyIdentifier222222[PropertyIdentifier222222["TIME_DELAY"] = 113] = "TIME_DELAY";
                      PropertyIdentifier222222[PropertyIdentifier222222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                      PropertyIdentifier222222[PropertyIdentifier222222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                      PropertyIdentifier222222[PropertyIdentifier222222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                      PropertyIdentifier222222[PropertyIdentifier222222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                      PropertyIdentifier222222[PropertyIdentifier222222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                      PropertyIdentifier222222[PropertyIdentifier222222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                      PropertyIdentifier222222[PropertyIdentifier222222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                      PropertyIdentifier222222[PropertyIdentifier222222["TIMER_STATE"] = 398] = "TIMER_STATE";
                      PropertyIdentifier222222[PropertyIdentifier222222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                      PropertyIdentifier222222[PropertyIdentifier222222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                      PropertyIdentifier222222[PropertyIdentifier222222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                      PropertyIdentifier222222[PropertyIdentifier222222["TRANSITION"] = 385] = "TRANSITION";
                      PropertyIdentifier222222[PropertyIdentifier222222["TRIGGER"] = 205] = "TRIGGER";
                      PropertyIdentifier222222[PropertyIdentifier222222["UNITS"] = 117] = "UNITS";
                      PropertyIdentifier222222[PropertyIdentifier222222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                      PropertyIdentifier222222[PropertyIdentifier222222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                      PropertyIdentifier222222[PropertyIdentifier222222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                      PropertyIdentifier222222[PropertyIdentifier222222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                      PropertyIdentifier222222[PropertyIdentifier222222["USER_NAME"] = 317] = "USER_NAME";
                      PropertyIdentifier222222[PropertyIdentifier222222["USER_TYPE"] = 318] = "USER_TYPE";
                      PropertyIdentifier222222[PropertyIdentifier222222["USES_REMAINING"] = 319] = "USES_REMAINING";
                      PropertyIdentifier222222[PropertyIdentifier222222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                      PropertyIdentifier222222[PropertyIdentifier222222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                      PropertyIdentifier222222[PropertyIdentifier222222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                      PropertyIdentifier222222[PropertyIdentifier222222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                      PropertyIdentifier222222[PropertyIdentifier222222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["VALUE_SET"] = 191] = "VALUE_SET";
                      PropertyIdentifier222222[PropertyIdentifier222222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                      PropertyIdentifier222222[PropertyIdentifier222222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                      PropertyIdentifier222222[PropertyIdentifier222222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                      PropertyIdentifier222222[PropertyIdentifier222222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                      PropertyIdentifier222222[PropertyIdentifier222222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                      PropertyIdentifier222222[PropertyIdentifier222222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                      PropertyIdentifier222222[PropertyIdentifier222222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                      PropertyIdentifier222222[PropertyIdentifier222222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                      PropertyIdentifier222222[PropertyIdentifier222222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                      PropertyIdentifier222222[PropertyIdentifier222222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                      PropertyIdentifier222222[PropertyIdentifier222222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                      PropertyIdentifier222222[PropertyIdentifier222222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ZONE_FROM"] = 320] = "ZONE_FROM";
                      PropertyIdentifier222222[PropertyIdentifier222222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                      PropertyIdentifier222222[PropertyIdentifier222222["ZONE_TO"] = 321] = "ZONE_TO";
                      return PropertyIdentifier222222;
                    })(PropertyIdentifier22222 || {});
                    var ProtocolLevel22222 = /* @__PURE__ */ ((ProtocolLevel222222) => {
                      ProtocolLevel222222[ProtocolLevel222222["PHYSICAL"] = 0] = "PHYSICAL";
                      ProtocolLevel222222[ProtocolLevel222222["PROTOCOL"] = 1] = "PROTOCOL";
                      ProtocolLevel222222[ProtocolLevel222222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                      ProtocolLevel222222[ProtocolLevel222222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                      return ProtocolLevel222222;
                    })(ProtocolLevel22222 || {});
                    var Relationship22222 = /* @__PURE__ */ ((Relationship222222) => {
                      Relationship222222[Relationship222222["UNKNOWN"] = 0] = "UNKNOWN";
                      Relationship222222[Relationship222222["DEFAULT"] = 1] = "DEFAULT";
                      Relationship222222[Relationship222222["CONTAINS"] = 2] = "CONTAINS";
                      Relationship222222[Relationship222222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                      Relationship222222[Relationship222222["USES"] = 4] = "USES";
                      Relationship222222[Relationship222222["USED_BY"] = 5] = "USED_BY";
                      Relationship222222[Relationship222222["COMMANDS"] = 6] = "COMMANDS";
                      Relationship222222[Relationship222222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                      Relationship222222[Relationship222222["ADJUSTS"] = 8] = "ADJUSTS";
                      Relationship222222[Relationship222222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                      Relationship222222[Relationship222222["INGRESS"] = 10] = "INGRESS";
                      Relationship222222[Relationship222222["EGRESS"] = 11] = "EGRESS";
                      Relationship222222[Relationship222222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                      Relationship222222[Relationship222222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                      Relationship222222[Relationship222222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                      Relationship222222[Relationship222222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                      Relationship222222[Relationship222222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                      Relationship222222[Relationship222222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                      Relationship222222[Relationship222222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                      Relationship222222[Relationship222222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                      Relationship222222[Relationship222222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                      Relationship222222[Relationship222222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                      Relationship222222[Relationship222222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                      Relationship222222[Relationship222222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                      Relationship222222[Relationship222222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                      Relationship222222[Relationship222222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                      Relationship222222[Relationship222222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                      Relationship222222[Relationship222222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                      Relationship222222[Relationship222222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                      Relationship222222[Relationship222222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                      return Relationship222222;
                    })(Relationship22222 || {});
                    var Reliability22222 = /* @__PURE__ */ ((Reliability222222) => {
                      Reliability222222[Reliability222222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                      Reliability222222[Reliability222222["NO_SENSOR"] = 1] = "NO_SENSOR";
                      Reliability222222[Reliability222222["OVER_RANGE"] = 2] = "OVER_RANGE";
                      Reliability222222[Reliability222222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                      Reliability222222[Reliability222222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                      Reliability222222[Reliability222222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                      Reliability222222[Reliability222222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                      Reliability222222[Reliability222222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                      Reliability222222[Reliability222222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                      Reliability222222[Reliability222222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                      Reliability222222[Reliability222222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                      Reliability222222[Reliability222222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                      Reliability222222[Reliability222222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                      Reliability222222[Reliability222222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                      Reliability222222[Reliability222222["TRIPPED"] = 15] = "TRIPPED";
                      Reliability222222[Reliability222222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                      Reliability222222[Reliability222222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                      Reliability222222[Reliability222222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                      Reliability222222[Reliability222222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                      Reliability222222[Reliability222222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                      Reliability222222[Reliability222222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                      Reliability222222[Reliability222222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                      Reliability222222[Reliability222222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                      Reliability222222[Reliability222222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                      return Reliability222222;
                    })(Reliability22222 || {});
                    var RestartReason22222 = /* @__PURE__ */ ((RestartReason222222) => {
                      RestartReason222222[RestartReason222222["UNKNOWN"] = 0] = "UNKNOWN";
                      RestartReason222222[RestartReason222222["COLDSTART"] = 1] = "COLDSTART";
                      RestartReason222222[RestartReason222222["WARMSTART"] = 2] = "WARMSTART";
                      RestartReason222222[RestartReason222222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                      RestartReason222222[RestartReason222222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                      RestartReason222222[RestartReason222222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                      RestartReason222222[RestartReason222222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                      RestartReason222222[RestartReason222222["SUSPENDED"] = 7] = "SUSPENDED";
                      RestartReason222222[RestartReason222222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                      return RestartReason222222;
                    })(RestartReason22222 || {});
                    var SecurityLevel22222 = /* @__PURE__ */ ((SecurityLevel222222) => {
                      SecurityLevel222222[SecurityLevel222222["INCAPABLE"] = 0] = "INCAPABLE";
                      SecurityLevel222222[SecurityLevel222222["PLAIN"] = 1] = "PLAIN";
                      SecurityLevel222222[SecurityLevel222222["SIGNED"] = 2] = "SIGNED";
                      SecurityLevel222222[SecurityLevel222222["ENCRYPTED"] = 3] = "ENCRYPTED";
                      SecurityLevel222222[SecurityLevel222222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                      SecurityLevel222222[SecurityLevel222222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                      return SecurityLevel222222;
                    })(SecurityLevel22222 || {});
                    var SecurityPolicy22222 = /* @__PURE__ */ ((SecurityPolicy222222) => {
                      SecurityPolicy222222[SecurityPolicy222222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                      SecurityPolicy222222[SecurityPolicy222222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                      SecurityPolicy222222[SecurityPolicy222222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                      SecurityPolicy222222[SecurityPolicy222222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                      return SecurityPolicy222222;
                    })(SecurityPolicy22222 || {});
                    var Segmentation22222 = /* @__PURE__ */ ((Segmentation222222) => {
                      Segmentation222222[Segmentation222222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                      Segmentation222222[Segmentation222222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                      Segmentation222222[Segmentation222222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                      Segmentation222222[Segmentation222222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                      return Segmentation222222;
                    })(Segmentation22222 || {});
                    var ShedState22222 = /* @__PURE__ */ ((ShedState222222) => {
                      ShedState222222[ShedState222222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                      ShedState222222[ShedState222222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                      ShedState222222[ShedState222222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                      ShedState222222[ShedState222222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                      return ShedState222222;
                    })(ShedState22222 || {});
                    var SilencedState22222 = /* @__PURE__ */ ((SilencedState222222) => {
                      SilencedState222222[SilencedState222222["UNSILENCED"] = 0] = "UNSILENCED";
                      SilencedState222222[SilencedState222222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                      SilencedState222222[SilencedState222222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                      SilencedState222222[SilencedState222222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                      return SilencedState222222;
                    })(SilencedState22222 || {});
                    var TimerState22222 = /* @__PURE__ */ ((TimerState222222) => {
                      TimerState222222[TimerState222222["IDLE"] = 0] = "IDLE";
                      TimerState222222[TimerState222222["RUNNING"] = 1] = "RUNNING";
                      TimerState222222[TimerState222222["EXPIRED"] = 2] = "EXPIRED";
                      return TimerState222222;
                    })(TimerState22222 || {});
                    var TimerTransition22222 = /* @__PURE__ */ ((TimerTransition222222) => {
                      TimerTransition222222[TimerTransition222222["NONE"] = 0] = "NONE";
                      TimerTransition222222[TimerTransition222222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                      TimerTransition222222[TimerTransition222222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                      TimerTransition222222[TimerTransition222222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                      TimerTransition222222[TimerTransition222222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                      TimerTransition222222[TimerTransition222222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                      TimerTransition222222[TimerTransition222222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                      TimerTransition222222[TimerTransition222222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                      return TimerTransition222222;
                    })(TimerTransition22222 || {});
                    var VTClass22222 = /* @__PURE__ */ ((VTClass222222) => {
                      VTClass222222[VTClass222222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                      VTClass222222[VTClass222222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                      VTClass222222[VTClass222222["DEC_VT52"] = 2] = "DEC_VT52";
                      VTClass222222[VTClass222222["DEC_VT100"] = 3] = "DEC_VT100";
                      VTClass222222[VTClass222222["DEC_VT220"] = 4] = "DEC_VT220";
                      VTClass222222[VTClass222222["HP_700_94"] = 5] = "HP_700_94";
                      VTClass222222[VTClass222222["IBM_3130"] = 6] = "IBM_3130";
                      return VTClass222222;
                    })(VTClass22222 || {});
                    var WriteStatus22222 = /* @__PURE__ */ ((WriteStatus222222) => {
                      WriteStatus222222[WriteStatus222222["IDLE"] = 0] = "IDLE";
                      WriteStatus222222[WriteStatus222222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                      WriteStatus222222[WriteStatus222222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                      WriteStatus222222[WriteStatus222222["FAILED"] = 3] = "FAILED";
                      return WriteStatus222222;
                    })(WriteStatus22222 || {});
                    var DaysOfWeek22222 = /* @__PURE__ */ ((DaysOfWeek222222) => {
                      DaysOfWeek222222[DaysOfWeek222222["MONDAY"] = 0] = "MONDAY";
                      DaysOfWeek222222[DaysOfWeek222222["TUESDAY"] = 1] = "TUESDAY";
                      DaysOfWeek222222[DaysOfWeek222222["WEDNESDAY"] = 2] = "WEDNESDAY";
                      DaysOfWeek222222[DaysOfWeek222222["THURSDAY"] = 3] = "THURSDAY";
                      DaysOfWeek222222[DaysOfWeek222222["FRIDAY"] = 4] = "FRIDAY";
                      DaysOfWeek222222[DaysOfWeek222222["SATURDAY"] = 5] = "SATURDAY";
                      DaysOfWeek222222[DaysOfWeek222222["SUNDAY"] = 6] = "SUNDAY";
                      return DaysOfWeek222222;
                    })(DaysOfWeek22222 || {});
                    var EventTransitionBits22222 = /* @__PURE__ */ ((EventTransitionBits222222) => {
                      EventTransitionBits222222[EventTransitionBits222222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                      EventTransitionBits222222[EventTransitionBits222222["TO_FAULT"] = 1] = "TO_FAULT";
                      EventTransitionBits222222[EventTransitionBits222222["TO_NORMAL"] = 2] = "TO_NORMAL";
                      return EventTransitionBits222222;
                    })(EventTransitionBits22222 || {});
                    var LimitEnable22222 = /* @__PURE__ */ ((LimitEnable222222) => {
                      LimitEnable222222[LimitEnable222222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                      LimitEnable222222[LimitEnable222222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                      return LimitEnable222222;
                    })(LimitEnable22222 || {});
                    var LogStatus22222 = /* @__PURE__ */ ((LogStatus222222) => {
                      LogStatus222222[LogStatus222222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                      LogStatus222222[LogStatus222222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                      LogStatus222222[LogStatus222222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                      return LogStatus222222;
                    })(LogStatus22222 || {});
                    var ObjectTypesSupported22222 = /* @__PURE__ */ ((ObjectTypesSupported222222) => {
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["CALENDAR"] = 6] = "CALENDAR";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["COMMAND"] = 7] = "COMMAND";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["DEVICE"] = 8] = "DEVICE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["FILE"] = 10] = "FILE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["GROUP"] = 11] = "GROUP";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["LOOP"] = 12] = "LOOP";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["PROGRAM"] = 16] = "PROGRAM";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["SCHEDULE"] = 17] = "SCHEDULE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["AVERAGING"] = 18] = "AVERAGING";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["TREND_LOG"] = 20] = "TREND_LOG";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["EVENT_LOG"] = 25] = "EVENT_LOG";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["TIMER"] = 31] = "TIMER";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ACCESS_USER"] = 35] = "ACCESS_USER";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["DATE_VALUE"] = 42] = "DATE_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["TIME_VALUE"] = 50] = "TIME_VALUE";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["CHANNEL"] = 53] = "CHANNEL";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["ESCALATOR"] = 58] = "ESCALATOR";
                      ObjectTypesSupported222222[ObjectTypesSupported222222["LIFT"] = 59] = "LIFT";
                      return ObjectTypesSupported222222;
                    })(ObjectTypesSupported22222 || {});
                    var ResultFlags22222 = /* @__PURE__ */ ((ResultFlags222222) => {
                      ResultFlags222222[ResultFlags222222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                      ResultFlags222222[ResultFlags222222["LAST_ITEM"] = 1] = "LAST_ITEM";
                      ResultFlags222222[ResultFlags222222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                      return ResultFlags222222;
                    })(ResultFlags22222 || {});
                    var ServicesSupported22222 = /* @__PURE__ */ ((ServicesSupported222222) => {
                      ServicesSupported222222[ServicesSupported222222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                      ServicesSupported222222[ServicesSupported222222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                      ServicesSupported222222[ServicesSupported222222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                      ServicesSupported222222[ServicesSupported222222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                      ServicesSupported222222[ServicesSupported222222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                      ServicesSupported222222[ServicesSupported222222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                      ServicesSupported222222[ServicesSupported222222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                      ServicesSupported222222[ServicesSupported222222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                      ServicesSupported222222[ServicesSupported222222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                      ServicesSupported222222[ServicesSupported222222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                      ServicesSupported222222[ServicesSupported222222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                      ServicesSupported222222[ServicesSupported222222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                      ServicesSupported222222[ServicesSupported222222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                      ServicesSupported222222[ServicesSupported222222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                      ServicesSupported222222[ServicesSupported222222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                      ServicesSupported222222[ServicesSupported222222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                      ServicesSupported222222[ServicesSupported222222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                      ServicesSupported222222[ServicesSupported222222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                      ServicesSupported222222[ServicesSupported222222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                      ServicesSupported222222[ServicesSupported222222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                      ServicesSupported222222[ServicesSupported222222["VT_OPEN"] = 21] = "VT_OPEN";
                      ServicesSupported222222[ServicesSupported222222["VT_CLOSE"] = 22] = "VT_CLOSE";
                      ServicesSupported222222[ServicesSupported222222["VT_DATA"] = 23] = "VT_DATA";
                      ServicesSupported222222[ServicesSupported222222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                      ServicesSupported222222[ServicesSupported222222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                      ServicesSupported222222[ServicesSupported222222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                      ServicesSupported222222[ServicesSupported222222["I_AM"] = 26] = "I_AM";
                      ServicesSupported222222[ServicesSupported222222["I_HAVE"] = 27] = "I_HAVE";
                      ServicesSupported222222[ServicesSupported222222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                      ServicesSupported222222[ServicesSupported222222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                      ServicesSupported222222[ServicesSupported222222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                      ServicesSupported222222[ServicesSupported222222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                      ServicesSupported222222[ServicesSupported222222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                      ServicesSupported222222[ServicesSupported222222["WHO_HAS"] = 33] = "WHO_HAS";
                      ServicesSupported222222[ServicesSupported222222["WHO_IS"] = 34] = "WHO_IS";
                      ServicesSupported222222[ServicesSupported222222["READ_RANGE"] = 35] = "READ_RANGE";
                      ServicesSupported222222[ServicesSupported222222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                      ServicesSupported222222[ServicesSupported222222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                      ServicesSupported222222[ServicesSupported222222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                      ServicesSupported222222[ServicesSupported222222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                      ServicesSupported222222[ServicesSupported222222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                      ServicesSupported222222[ServicesSupported222222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                      ServicesSupported222222[ServicesSupported222222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                      ServicesSupported222222[ServicesSupported222222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                      return ServicesSupported222222;
                    })(ServicesSupported22222 || {});
                    var StatusFlags22222 = /* @__PURE__ */ ((StatusFlags222222) => {
                      StatusFlags222222[StatusFlags222222["IN_ALARM"] = 0] = "IN_ALARM";
                      StatusFlags222222[StatusFlags222222["FAULT"] = 1] = "FAULT";
                      StatusFlags222222[StatusFlags222222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                      StatusFlags222222[StatusFlags222222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                      return StatusFlags222222;
                    })(StatusFlags22222 || {});
                    var ApplicationTag22222 = /* @__PURE__ */ ((ApplicationTag222222) => {
                      ApplicationTag222222[ApplicationTag222222["NULL"] = 0] = "NULL";
                      ApplicationTag222222[ApplicationTag222222["BOOLEAN"] = 1] = "BOOLEAN";
                      ApplicationTag222222[ApplicationTag222222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                      ApplicationTag222222[ApplicationTag222222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                      ApplicationTag222222[ApplicationTag222222["REAL"] = 4] = "REAL";
                      ApplicationTag222222[ApplicationTag222222["DOUBLE"] = 5] = "DOUBLE";
                      ApplicationTag222222[ApplicationTag222222["OCTET_STRING"] = 6] = "OCTET_STRING";
                      ApplicationTag222222[ApplicationTag222222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                      ApplicationTag222222[ApplicationTag222222["BIT_STRING"] = 8] = "BIT_STRING";
                      ApplicationTag222222[ApplicationTag222222["ENUMERATED"] = 9] = "ENUMERATED";
                      ApplicationTag222222[ApplicationTag222222["DATE"] = 10] = "DATE";
                      ApplicationTag222222[ApplicationTag222222["TIME"] = 11] = "TIME";
                      ApplicationTag222222[ApplicationTag222222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                      ApplicationTag222222[ApplicationTag222222["EMPTYLIST"] = 100] = "EMPTYLIST";
                      ApplicationTag222222[ApplicationTag222222["WEEKNDAY"] = 101] = "WEEKNDAY";
                      ApplicationTag222222[ApplicationTag222222["DATERANGE"] = 102] = "DATERANGE";
                      ApplicationTag222222[ApplicationTag222222["DATETIME"] = 103] = "DATETIME";
                      ApplicationTag222222[ApplicationTag222222["TIMESTAMP"] = 104] = "TIMESTAMP";
                      ApplicationTag222222[ApplicationTag222222["ERROR"] = 105] = "ERROR";
                      ApplicationTag222222[ApplicationTag222222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                      ApplicationTag222222[ApplicationTag222222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                      ApplicationTag222222[ApplicationTag222222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                      ApplicationTag222222[ApplicationTag222222["DESTINATION"] = 109] = "DESTINATION";
                      ApplicationTag222222[ApplicationTag222222["RECIPIENT"] = 110] = "RECIPIENT";
                      ApplicationTag222222[ApplicationTag222222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                      ApplicationTag222222[ApplicationTag222222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                      ApplicationTag222222[ApplicationTag222222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                      ApplicationTag222222[ApplicationTag222222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                      ApplicationTag222222[ApplicationTag222222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                      ApplicationTag222222[ApplicationTag222222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                      ApplicationTag222222[ApplicationTag222222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                      ApplicationTag222222[ApplicationTag222222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                      ApplicationTag222222[ApplicationTag222222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                      ApplicationTag222222[ApplicationTag222222["LOG_RECORD"] = 120] = "LOG_RECORD";
                      return ApplicationTag222222;
                    })(ApplicationTag22222 || {});
                    var ApplicationTagName22222 = invertEnum22222(
                      ApplicationTag22222
                    );
                    var BvlcResultFormat22222 = /* @__PURE__ */ ((BvlcResultFormat222222) => {
                      BvlcResultFormat222222[BvlcResultFormat222222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                      BvlcResultFormat222222[BvlcResultFormat222222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                      BvlcResultFormat222222[BvlcResultFormat222222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                      BvlcResultFormat222222[BvlcResultFormat222222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                      BvlcResultFormat222222[BvlcResultFormat222222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                      BvlcResultFormat222222[BvlcResultFormat222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                      BvlcResultFormat222222[BvlcResultFormat222222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                      return BvlcResultFormat222222;
                    })(BvlcResultFormat22222 || {});
                    var BvlcResultPurpose22222 = /* @__PURE__ */ ((BvlcResultPurpose222222) => {
                      BvlcResultPurpose222222[BvlcResultPurpose222222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                      BvlcResultPurpose222222[BvlcResultPurpose222222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                      BvlcResultPurpose222222[BvlcResultPurpose222222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                      BvlcResultPurpose222222[BvlcResultPurpose222222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                      BvlcResultPurpose222222[BvlcResultPurpose222222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                      BvlcResultPurpose222222[BvlcResultPurpose222222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                      BvlcResultPurpose222222[BvlcResultPurpose222222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                      BvlcResultPurpose222222[BvlcResultPurpose222222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                      BvlcResultPurpose222222[BvlcResultPurpose222222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                      BvlcResultPurpose222222[BvlcResultPurpose222222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                      BvlcResultPurpose222222[BvlcResultPurpose222222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                      BvlcResultPurpose222222[BvlcResultPurpose222222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                      BvlcResultPurpose222222[BvlcResultPurpose222222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                      return BvlcResultPurpose222222;
                    })(BvlcResultPurpose22222 || {});
                    var CharacterStringEncoding22222 = /* @__PURE__ */ ((CharacterStringEncoding222222) => {
                      CharacterStringEncoding222222[CharacterStringEncoding222222["UTF_8"] = 0] = "UTF_8";
                      CharacterStringEncoding222222[CharacterStringEncoding222222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                      CharacterStringEncoding222222[CharacterStringEncoding222222["JIS_X_0208"] = 2] = "JIS_X_0208";
                      CharacterStringEncoding222222[CharacterStringEncoding222222["UCS_4"] = 3] = "UCS_4";
                      CharacterStringEncoding222222[CharacterStringEncoding222222["UCS_2"] = 4] = "UCS_2";
                      CharacterStringEncoding222222[CharacterStringEncoding222222["ISO_8859_1"] = 5] = "ISO_8859_1";
                      return CharacterStringEncoding222222;
                    })(CharacterStringEncoding22222 || {});
                    var CovType22222 = /* @__PURE__ */ ((CovType222222) => {
                      CovType222222[CovType222222["REAL"] = 0] = "REAL";
                      CovType222222[CovType222222["BIT_STRING"] = 1] = "BIT_STRING";
                      return CovType222222;
                    })(CovType22222 || {});
                    var EnableDisable22222 = /* @__PURE__ */ ((EnableDisable222222) => {
                      EnableDisable222222[EnableDisable222222["ENABLE"] = 0] = "ENABLE";
                      EnableDisable222222[EnableDisable222222["DISABLE"] = 1] = "DISABLE";
                      EnableDisable222222[EnableDisable222222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                      return EnableDisable222222;
                    })(EnableDisable22222 || {});
                    var MaxApduLengthAccepted22222 = /* @__PURE__ */ ((MaxApduLengthAccepted222222) => {
                      MaxApduLengthAccepted222222[MaxApduLengthAccepted222222["OCTETS_50"] = 0] = "OCTETS_50";
                      MaxApduLengthAccepted222222[MaxApduLengthAccepted222222["OCTETS_128"] = 1] = "OCTETS_128";
                      MaxApduLengthAccepted222222[MaxApduLengthAccepted222222["OCTETS_206"] = 2] = "OCTETS_206";
                      MaxApduLengthAccepted222222[MaxApduLengthAccepted222222["OCTETS_480"] = 3] = "OCTETS_480";
                      MaxApduLengthAccepted222222[MaxApduLengthAccepted222222["OCTETS_1024"] = 4] = "OCTETS_1024";
                      MaxApduLengthAccepted222222[MaxApduLengthAccepted222222["OCTETS_1476"] = 5] = "OCTETS_1476";
                      return MaxApduLengthAccepted222222;
                    })(MaxApduLengthAccepted22222 || {});
                    var MaxSegmentsAccepted22222 = /* @__PURE__ */ ((MaxSegmentsAccepted222222) => {
                      MaxSegmentsAccepted222222[MaxSegmentsAccepted222222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                      MaxSegmentsAccepted222222[MaxSegmentsAccepted222222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                      MaxSegmentsAccepted222222[MaxSegmentsAccepted222222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                      MaxSegmentsAccepted222222[MaxSegmentsAccepted222222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                      MaxSegmentsAccepted222222[MaxSegmentsAccepted222222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                      MaxSegmentsAccepted222222[MaxSegmentsAccepted222222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                      MaxSegmentsAccepted222222[MaxSegmentsAccepted222222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                      MaxSegmentsAccepted222222[MaxSegmentsAccepted222222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                      return MaxSegmentsAccepted222222;
                    })(MaxSegmentsAccepted22222 || {});
                    var NetworkLayerMessageType22222 = /* @__PURE__ */ ((NetworkLayerMessageType222222) => {
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                      NetworkLayerMessageType222222[NetworkLayerMessageType222222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                      return NetworkLayerMessageType222222;
                    })(NetworkLayerMessageType22222 || {});
                    var NpduControlBit22222 = /* @__PURE__ */ ((NpduControlBit222222) => {
                      NpduControlBit222222[NpduControlBit222222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                      NpduControlBit222222[NpduControlBit222222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                      NpduControlBit222222[NpduControlBit222222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                      NpduControlBit222222[NpduControlBit222222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                      return NpduControlBit222222;
                    })(NpduControlBit22222 || {});
                    var NpduControlPriority22222 = /* @__PURE__ */ ((NpduControlPriority222222) => {
                      NpduControlPriority222222[NpduControlPriority222222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                      NpduControlPriority222222[NpduControlPriority222222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                      NpduControlPriority222222[NpduControlPriority222222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                      NpduControlPriority222222[NpduControlPriority222222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                      return NpduControlPriority222222;
                    })(NpduControlPriority22222 || {});
                    var PduConReqBit22222 = /* @__PURE__ */ ((PduConReqBit222222) => {
                      PduConReqBit222222[PduConReqBit222222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                      PduConReqBit222222[PduConReqBit222222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                      PduConReqBit222222[PduConReqBit222222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                      return PduConReqBit222222;
                    })(PduConReqBit22222 || {});
                    var PduSegAckBit22222 = /* @__PURE__ */ ((PduSegAckBit222222) => {
                      PduSegAckBit222222[PduSegAckBit222222["SERVER"] = 1] = "SERVER";
                      PduSegAckBit222222[PduSegAckBit222222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                      return PduSegAckBit222222;
                    })(PduSegAckBit22222 || {});
                    var PduType22222 = /* @__PURE__ */ ((PduType222222) => {
                      PduType222222[PduType222222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                      PduType222222[PduType222222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                      PduType222222[PduType222222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                      PduType222222[PduType222222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                      PduType222222[PduType222222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                      PduType222222[PduType222222["ERROR"] = 80] = "ERROR";
                      PduType222222[PduType222222["REJECT"] = 96] = "REJECT";
                      PduType222222[PduType222222["ABORT"] = 112] = "ABORT";
                      return PduType222222;
                    })(PduType22222 || {});
                    var PropertyStates22222 = /* @__PURE__ */ ((PropertyStates222222) => {
                      PropertyStates222222[PropertyStates222222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                      PropertyStates222222[PropertyStates222222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                      PropertyStates222222[PropertyStates222222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                      PropertyStates222222[PropertyStates222222["POLARITY"] = 3] = "POLARITY";
                      PropertyStates222222[PropertyStates222222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                      PropertyStates222222[PropertyStates222222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                      PropertyStates222222[PropertyStates222222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                      PropertyStates222222[PropertyStates222222["RELIABILITY"] = 7] = "RELIABILITY";
                      PropertyStates222222[PropertyStates222222["STATE"] = 8] = "STATE";
                      PropertyStates222222[PropertyStates222222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                      PropertyStates222222[PropertyStates222222["UNITS"] = 10] = "UNITS";
                      PropertyStates222222[PropertyStates222222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                      PropertyStates222222[PropertyStates222222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                      PropertyStates222222[PropertyStates222222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                      PropertyStates222222[PropertyStates222222["RESTART_REASON"] = 14] = "RESTART_REASON";
                      PropertyStates222222[PropertyStates222222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                      PropertyStates222222[PropertyStates222222["ACTION"] = 16] = "ACTION";
                      PropertyStates222222[PropertyStates222222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                      PropertyStates222222[PropertyStates222222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                      PropertyStates222222[PropertyStates222222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                      PropertyStates222222[PropertyStates222222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                      PropertyStates222222[PropertyStates222222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                      PropertyStates222222[PropertyStates222222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                      PropertyStates222222[PropertyStates222222["MAINTENANCE"] = 23] = "MAINTENANCE";
                      PropertyStates222222[PropertyStates222222["NODE_TYPE"] = 24] = "NODE_TYPE";
                      PropertyStates222222[PropertyStates222222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                      PropertyStates222222[PropertyStates222222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                      PropertyStates222222[PropertyStates222222["SHED_STATE"] = 27] = "SHED_STATE";
                      PropertyStates222222[PropertyStates222222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                      PropertyStates222222[PropertyStates222222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                      PropertyStates222222[PropertyStates222222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                      PropertyStates222222[PropertyStates222222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                      PropertyStates222222[PropertyStates222222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                      PropertyStates222222[PropertyStates222222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                      PropertyStates222222[PropertyStates222222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                      PropertyStates222222[PropertyStates222222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                      PropertyStates222222[PropertyStates222222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                      PropertyStates222222[PropertyStates222222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                      PropertyStates222222[PropertyStates222222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                      PropertyStates222222[PropertyStates222222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                      PropertyStates222222[PropertyStates222222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                      PropertyStates222222[PropertyStates222222["TIMER_STATE"] = 43] = "TIMER_STATE";
                      PropertyStates222222[PropertyStates222222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                      PropertyStates222222[PropertyStates222222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                      PropertyStates222222[PropertyStates222222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                      PropertyStates222222[PropertyStates222222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                      PropertyStates222222[PropertyStates222222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                      PropertyStates222222[PropertyStates222222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                      PropertyStates222222[PropertyStates222222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                      PropertyStates222222[PropertyStates222222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                      PropertyStates222222[PropertyStates222222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                      PropertyStates222222[PropertyStates222222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                      PropertyStates222222[PropertyStates222222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                      PropertyStates222222[PropertyStates222222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                      PropertyStates222222[PropertyStates222222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                      PropertyStates222222[PropertyStates222222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                      PropertyStates222222[PropertyStates222222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                      PropertyStates222222[PropertyStates222222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                      return PropertyStates222222;
                    })(PropertyStates22222 || {});
                    var ReadRangeType22222 = /* @__PURE__ */ ((ReadRangeType222222) => {
                      ReadRangeType222222[ReadRangeType222222["BY_POSITION"] = 0] = "BY_POSITION";
                      ReadRangeType222222[ReadRangeType222222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                      ReadRangeType222222[ReadRangeType222222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                      return ReadRangeType222222;
                    })(ReadRangeType22222 || {});
                    var ReinitializedState22222 = /* @__PURE__ */ ((ReinitializedState222222) => {
                      ReinitializedState222222[ReinitializedState222222["COLDSTART"] = 0] = "COLDSTART";
                      ReinitializedState222222[ReinitializedState222222["WARMSTART"] = 1] = "WARMSTART";
                      ReinitializedState222222[ReinitializedState222222["STARTBACKUP"] = 2] = "STARTBACKUP";
                      ReinitializedState222222[ReinitializedState222222["ENDBACKUP"] = 3] = "ENDBACKUP";
                      ReinitializedState222222[ReinitializedState222222["STARTRESTORE"] = 4] = "STARTRESTORE";
                      ReinitializedState222222[ReinitializedState222222["ENDRESTORE"] = 5] = "ENDRESTORE";
                      ReinitializedState222222[ReinitializedState222222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                      ReinitializedState222222[ReinitializedState222222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                      return ReinitializedState222222;
                    })(ReinitializedState22222 || {});
                    var TimeStamp22222 = /* @__PURE__ */ ((TimeStamp222222) => {
                      TimeStamp222222[TimeStamp222222["TIME"] = 0] = "TIME";
                      TimeStamp222222[TimeStamp222222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                      TimeStamp222222[TimeStamp222222["DATETIME"] = 2] = "DATETIME";
                      return TimeStamp222222;
                    })(TimeStamp22222 || {});
                    var import_events222222 = __toESM22222(require("events"));
                    var import_debug322222 = __toESM22222(require("debug"));
                    var import_dgram22222 = require("dgram");
                    var import_events32222 = __toESM22222(require("events"));
                    var import_debug222222 = __toESM22222(require("debug"));
                    var EventEmitter32222 = import_events32222.default.EventEmitter;
                    var debug222222 = (0, import_debug222222.default)("bacnet:client:debug");
                    var DEFAULT_BACNET_PORT32222 = 47808;
                    var Transport22222 = class extends EventEmitter32222 {
                      constructor(settings) {
                        super();
                        this._lastSendMessages = {};
                        this._settings = settings;
                        this._server = (0, import_dgram22222.createSocket)({
                          type: "udp4",
                          reuseAddr: settings.reuseAddr
                        });
                        this._server.on("message", (msg, rinfo) => {
                          if (this.ownAddress.port === rinfo.port) {
                            for (let [messageKey, earlierSentBuffer] of Object.entries(
                              this._lastSendMessages
                            )) {
                              if (msg.equals(earlierSentBuffer)) {
                                debug222222(
                                  `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                                );
                                return;
                              }
                            }
                          }
                          debug222222(
                            `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                              "hex"
                            )}`
                          );
                          this.emit(
                            "message",
                            msg,
                            rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT32222 ? "" : ":" + rinfo.port)
                          );
                        });
                        this._server.on("listening", () => {
                          this.ownAddress = this._server.address();
                          debug222222(
                            `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                          );
                          this.emit("listening", this.ownAddress);
                        });
                        this._server.on("error", (err) => {
                          debug222222("transport error", err.message);
                          this.emit("error", err);
                        });
                        this._server.on("close", () => {
                          debug222222("transport closed");
                          this.emit("close");
                        });
                      }
                      getBroadcastAddress() {
                        return this._settings.broadcastAddress;
                      }
                      getMaxPayload() {
                        return 1482;
                      }
                      send(buffer, offset, receiver) {
                        if (!receiver) {
                          receiver = this.getBroadcastAddress();
                          const dataToSend = Buffer.alloc(offset);
                          const hrTime = process.hrtime();
                          const messageKey = hrTime[0] * 1e9 + hrTime[1];
                          buffer.copy(dataToSend, 0, 0, offset);
                          this._lastSendMessages[messageKey] = dataToSend;
                          setTimeout(() => {
                            delete this._lastSendMessages[messageKey];
                          }, 1e4);
                        }
                        const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                        const [address, port] = receiverAddress.split(":");
                        debug222222(
                          "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                        );
                        this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT32222, address);
                      }
                      open() {
                        this._server.bind(this._settings.port, this._settings.interface, () => {
                          this._server.setBroadcast(true);
                        });
                      }
                      close() {
                        this._server.close();
                      }
                    };
                    var services_exports22222 = {};
                    __export22222(services_exports22222, {
                      addListElement: () => add_list_element_exports22222,
                      alarmAcknowledge: () => alarm_acknowledge_exports22222,
                      alarmSummary: () => alarm_summary_exports22222,
                      atomicReadFile: () => atomic_read_file_exports22222,
                      atomicWriteFile: () => atomic_write_file_exports22222,
                      covNotify: () => cov_notify_exports22222,
                      covNotifyUnconfirmed: () => cov_notify_exports22222,
                      createObject: () => create_object_exports22222,
                      deleteObject: () => delete_object_exports22222,
                      deviceCommunicationControl: () => device_communication_control_exports22222,
                      error: () => error_exports22222,
                      eventInformation: () => event_information_exports22222,
                      eventNotifyData: () => event_notify_data_exports22222,
                      getEnrollmentSummary: () => get_enrollment_summary_exports22222,
                      getEventInformation: () => get_event_information_exports22222,
                      iAm: () => i_am_exports22222,
                      iHave: () => i_have_exports22222,
                      lifeSafetyOperation: () => life_safety_operation_exports22222,
                      privateTransfer: () => private_transfer_exports22222,
                      readProperty: () => read_property_exports22222,
                      readPropertyMultiple: () => read_property_multiple_exports22222,
                      readRange: () => read_range_exports22222,
                      registerForeignDevice: () => register_foreign_device_exports22222,
                      reinitializeDevice: () => reinitialize_device_exports22222,
                      subscribeCov: () => subscribe_cov_exports22222,
                      subscribeProperty: () => subscribe_property_exports22222,
                      timeSync: () => time_sync_exports22222,
                      timeSyncUTC: () => time_sync_exports22222,
                      whoHas: () => who_has_exports22222,
                      whoIs: () => who_is_exports22222,
                      writeProperty: () => write_property_exports22222,
                      writePropertyMultiple: () => write_property_multiple_exports22222
                    });
                    var add_list_element_exports22222 = {};
                    __export22222(add_list_element_exports22222, {
                      decode: () => decode332222,
                      encode: () => encode332222
                    });
                    var import_iconv_lite22222 = __toESM22222(require("iconv-lite"));
                    var enums_default22222 = enum_exports22222;
                    var START_YEAR22222 = 1900;
                    var MAX_YEARS22222 = 256;
                    var getBuffer22222 = () => {
                      return {
                        buffer: Buffer.alloc(1472),
                        offset: 0
                      };
                    };
                    var getSignedLength22222 = (value) => {
                      if (value >= -128 && value < 128)
                        return 1;
                      else if (value >= -32768 && value < 32768)
                        return 2;
                      else if (value > -8388608 && value < 8388608)
                        return 3;
                      else
                        return 4;
                    };
                    var getUnsignedLength22222 = (value) => {
                      if (value < 256)
                        return 1;
                      else if (value < 65536)
                        return 2;
                      else if (value < 16777216)
                        return 3;
                      else
                        return 4;
                    };
                    var getEncodingType22222 = (encoding, decodingBuffer, decodingOffset) => {
                      switch (encoding) {
                        case enums_default22222.CharacterStringEncoding.UCS_2:
                          if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                            return "ucs2";
                          }
                          return "UTF-16BE";
                        case enums_default22222.CharacterStringEncoding.ISO_8859_1:
                          return "latin1";
                        case enums_default22222.CharacterStringEncoding.MICROSOFT_DBCS:
                          return "cp850";
                        case enums_default22222.CharacterStringEncoding.JIS_X_0208:
                          return "Shift_JIS";
                        default:
                          return "utf8";
                      }
                    };
                    var encodeUnsigned22222 = (buffer, value, length) => {
                      buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                      buffer.offset += length;
                    };
                    var encodeBacnetUnsigned22222 = (buffer, value) => {
                      encodeUnsigned22222(buffer, value, getUnsignedLength22222(value));
                    };
                    var encodeSigned22222 = (buffer, value, length) => {
                      buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                      buffer.offset += length;
                    };
                    var encodeBacnetSigned22222 = (buffer, value) => {
                      encodeSigned22222(buffer, value, getSignedLength22222(value));
                    };
                    var encodeBacnetReal22222 = (buffer, value) => {
                      buffer.buffer.writeFloatBE(value, buffer.offset, true);
                      buffer.offset += 4;
                    };
                    var encodeBacnetDouble22222 = (buffer, value) => {
                      buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                      buffer.offset += 8;
                    };
                    var decodeUnsigned22222 = (buffer, offset, length) => {
                      if (length === 0) {
                        return {
                          len: 0,
                          value: 0
                        };
                      }
                      return {
                        len: length,
                        //@ts-ignore
                        value: buffer.readUIntBE(offset, length)
                      };
                    };
                    var decodeEnumerated22222 = (buffer, offset, length) => {
                      return decodeUnsigned22222(buffer, offset, length);
                    };
                    var encodeBacnetObjectId22222 = (buffer, objectType, instance) => {
                      const value = ((objectType & enums_default22222.ASN1_MAX_OBJECT) << enums_default22222.ASN1_INSTANCE_BITS | instance & enums_default22222.ASN1_MAX_INSTANCE) >>> 0;
                      encodeUnsigned22222(buffer, value, 4);
                    };
                    var encodeTag22222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                      let len = 1;
                      const tmp = new Array(3);
                      tmp[0] = 0;
                      if (contextSpecific) {
                        tmp[0] |= 8;
                      }
                      if (tagNumber <= 14) {
                        tmp[0] |= tagNumber << 4;
                      } else {
                        tmp[0] |= 240;
                        tmp[1] = tagNumber;
                        len++;
                      }
                      if (lenValueType <= 4) {
                        tmp[0] |= lenValueType;
                        Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                        buffer.offset += len;
                      } else {
                        tmp[0] |= 5;
                        if (lenValueType <= 253) {
                          tmp[len++] = lenValueType;
                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                          buffer.offset += len;
                        } else if (lenValueType <= 65535) {
                          tmp[len++] = 254;
                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                          buffer.offset += len;
                          encodeUnsigned22222(buffer, lenValueType, 2);
                        } else {
                          tmp[len++] = 255;
                          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                          buffer.offset += len;
                          encodeUnsigned22222(buffer, lenValueType, 4);
                        }
                      }
                    };
                    var encodeBacnetEnumerated22222 = (buffer, value) => {
                      encodeBacnetUnsigned22222(buffer, value);
                    };
                    var isExtendedTagNumber22222 = (x) => {
                      return (x & 240) === 240;
                    };
                    var isExtendedValue22222 = (x) => {
                      return (x & 7) === 5;
                    };
                    var isContextSpecific22222 = (x) => {
                      return (x & 8) === 8;
                    };
                    var isOpeningTag22222 = (x) => {
                      return (x & 7) === 6;
                    };
                    var isClosingTag22222 = (x) => {
                      return (x & 7) === 7;
                    };
                    var encodeContextReal22222 = (buffer, tagNumber, value) => {
                      encodeTag22222(buffer, tagNumber, true, 4);
                      encodeBacnetReal22222(buffer, value);
                    };
                    var encodeContextUnsigned22222 = (buffer, tagNumber, value) => {
                      encodeTag22222(buffer, tagNumber, true, getUnsignedLength22222(value));
                      encodeBacnetUnsigned22222(buffer, value);
                    };
                    var encodeContextEnumerated22222 = (buffer, tagNumber, value) => {
                      encodeContextUnsigned22222(buffer, tagNumber, value);
                    };
                    var encodeOctetString22222 = (buffer, octetString, octetOffset, octetCount) => {
                      if (octetString) {
                        for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                          buffer.buffer[buffer.offset++] = octetString[i];
                        }
                      }
                    };
                    var encodeApplicationOctetString22222 = (buffer, octetString, octetOffset, octetCount) => {
                      encodeTag22222(buffer, enums_default22222.ApplicationTag.OCTET_STRING, false, octetCount);
                      encodeOctetString22222(buffer, octetString, octetOffset, octetCount);
                    };
                    var encodeApplicationNull22222 = (buffer) => {
                      buffer.buffer[buffer.offset++] = enums_default22222.ApplicationTag.NULL;
                    };
                    var encodeApplicationBoolean22222 = (buffer, booleanValue) => {
                      encodeTag22222(buffer, enums_default22222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                    };
                    var encodeApplicationReal22222 = (buffer, value) => {
                      encodeTag22222(buffer, enums_default22222.ApplicationTag.REAL, false, 4);
                      encodeBacnetReal22222(buffer, value);
                    };
                    var encodeApplicationDouble22222 = (buffer, value) => {
                      encodeTag22222(buffer, enums_default22222.ApplicationTag.DOUBLE, false, 8);
                      encodeBacnetDouble22222(buffer, value);
                    };
                    var bitstringBytesUsed22222 = (bitString) => {
                      let len = 0;
                      if (bitString.bitsUsed > 0) {
                        const lastBit = bitString.bitsUsed - 1;
                        const usedBytes = lastBit / 8 + 1;
                        len = Math.floor(usedBytes);
                      }
                      return len;
                    };
                    var encodeApplicationObjectId22222 = (buffer, objectType, instance) => {
                      const tmp = getBuffer22222();
                      encodeBacnetObjectId22222(tmp, objectType, instance);
                      encodeTag22222(buffer, enums_default22222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                      buffer.offset += tmp.offset;
                    };
                    var encodeApplicationUnsigned22222 = (buffer, value) => {
                      const tmp = getBuffer22222();
                      encodeBacnetUnsigned22222(tmp, value);
                      encodeTag22222(buffer, enums_default22222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                      buffer.offset += tmp.offset;
                    };
                    var encodeApplicationEnumerated22222 = (buffer, value) => {
                      const tmp = getBuffer22222();
                      encodeBacnetEnumerated22222(tmp, value);
                      encodeTag22222(buffer, enums_default22222.ApplicationTag.ENUMERATED, false, tmp.offset);
                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                      buffer.offset += tmp.offset;
                    };
                    var encodeApplicationSigned22222 = (buffer, value) => {
                      const tmp = getBuffer22222();
                      encodeBacnetSigned22222(tmp, value);
                      encodeTag22222(buffer, enums_default22222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                      buffer.offset += tmp.offset;
                    };
                    var byteReverseBits22222 = (inByte) => {
                      let outByte = 0;
                      if ((inByte & 1) > 0) {
                        outByte |= 128;
                      }
                      if ((inByte & 2) > 0) {
                        outByte |= 64;
                      }
                      if ((inByte & 4) > 0) {
                        outByte |= 32;
                      }
                      if ((inByte & 8) > 0) {
                        outByte |= 16;
                      }
                      if ((inByte & 16) > 0) {
                        outByte |= 8;
                      }
                      if ((inByte & 32) > 0) {
                        outByte |= 4;
                      }
                      if ((inByte & 64) > 0) {
                        outByte |= 2;
                      }
                      if ((inByte & 128) > 0) {
                        outByte |= 1;
                      }
                      return outByte;
                    };
                    var bitstringOctet22222 = (bitString, octetIndex) => {
                      let octet = 0;
                      if (bitString.value && octetIndex < enums_default22222.ASN1_MAX_BITSTRING_BYTES) {
                        octet = bitString.value[octetIndex];
                      }
                      return octet;
                    };
                    var encodeBitstring22222 = (buffer, bitString) => {
                      if (bitString.bitsUsed === 0) {
                        buffer.buffer[buffer.offset++] = 0;
                      } else {
                        const usedBytes = bitstringBytesUsed22222(bitString);
                        const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                        buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                        for (let i = 0; i < usedBytes; i++) {
                          buffer.buffer[buffer.offset++] = byteReverseBits22222(
                            bitstringOctet22222(bitString, i)
                          );
                        }
                      }
                    };
                    var encodeApplicationBitstring22222 = (buffer, bitString) => {
                      let bitStringEncodedLength = 1;
                      bitStringEncodedLength += bitstringBytesUsed22222(bitString);
                      encodeTag22222(
                        buffer,
                        enums_default22222.ApplicationTag.BIT_STRING,
                        false,
                        bitStringEncodedLength
                      );
                      encodeBitstring22222(buffer, bitString);
                    };
                    var encodeBacnetDate22222 = (buffer, value) => {
                      if (value === new Date(1, 1, 1)) {
                        buffer.buffer[buffer.offset++] = 255;
                        buffer.buffer[buffer.offset++] = 255;
                        buffer.buffer[buffer.offset++] = 255;
                        buffer.buffer[buffer.offset++] = 255;
                        return;
                      }
                      if (value.getFullYear() >= START_YEAR22222) {
                        buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR22222;
                      } else if (value.getFullYear() < MAX_YEARS22222) {
                        buffer.buffer[buffer.offset++] = value.getFullYear();
                      } else {
                        throw new Error("invaide year: " + value.getFullYear());
                      }
                      buffer.buffer[buffer.offset++] = value.getMonth();
                      buffer.buffer[buffer.offset++] = value.getDate();
                      buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                    };
                    var encodeApplicationDate22222 = (buffer, value) => {
                      encodeTag22222(buffer, enums_default22222.ApplicationTag.DATE, false, 4);
                      encodeBacnetDate22222(buffer, value);
                    };
                    var encodeBacnetTime22222 = (buffer, value) => {
                      buffer.buffer[buffer.offset++] = value.getHours();
                      buffer.buffer[buffer.offset++] = value.getMinutes();
                      buffer.buffer[buffer.offset++] = value.getSeconds();
                      buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                    };
                    var encodeApplicationTime22222 = (buffer, value) => {
                      encodeTag22222(buffer, enums_default22222.ApplicationTag.TIME, false, 4);
                      encodeBacnetTime22222(buffer, value);
                    };
                    var bacappEncodeDatetime22222 = (buffer, value) => {
                      if (value !== new Date(1, 1, 1)) {
                        encodeApplicationDate22222(buffer, value);
                        encodeApplicationTime22222(buffer, value);
                      }
                    };
                    var encodeContextObjectId22222 = (buffer, tagNumber, objectType, instance) => {
                      encodeTag22222(buffer, tagNumber, true, 4);
                      encodeBacnetObjectId22222(buffer, objectType, instance);
                    };
                    var encodeOpeningTag22222 = (buffer, tagNumber) => {
                      let len = 1;
                      const tmp = new Array(2);
                      tmp[0] = 8;
                      if (tagNumber <= 14) {
                        tmp[0] |= tagNumber << 4;
                      } else {
                        tmp[0] |= 240;
                        tmp[1] = tagNumber;
                        len++;
                      }
                      tmp[0] |= 6;
                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                      buffer.offset += len;
                    };
                    var encodeClosingTag22222 = (buffer, tagNumber) => {
                      let len = 1;
                      const tmp = new Array(2);
                      tmp[0] = 8;
                      if (tagNumber <= 14) {
                        tmp[0] |= tagNumber << 4;
                      } else {
                        tmp[0] |= 240;
                        tmp[1] = tagNumber;
                        len++;
                      }
                      tmp[0] |= 7;
                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                      buffer.offset += len;
                    };
                    var encodeReadAccessSpecification22222 = (buffer, value) => {
                      encodeContextObjectId22222(
                        buffer,
                        0,
                        value.objectId.type,
                        value.objectId.instance
                      );
                      encodeOpeningTag22222(buffer, 1);
                      value.properties.forEach((p) => {
                        encodeContextEnumerated22222(buffer, 0, p.id);
                        if (p.index && p.index !== enums_default22222.ASN1_ARRAY_ALL) {
                          encodeContextUnsigned22222(buffer, 1, p.index);
                        }
                      });
                      encodeClosingTag22222(buffer, 1);
                    };
                    var encodeContextBoolean22222 = (buffer, tagNumber, booleanValue) => {
                      encodeTag22222(buffer, tagNumber, true, 1);
                      buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                      buffer.offset += 1;
                    };
                    var encodeCovSubscription22222 = (buffer, value) => {
                      encodeOpeningTag22222(buffer, 0);
                      encodeOpeningTag22222(buffer, 0);
                      encodeOpeningTag22222(buffer, 1);
                      encodeApplicationUnsigned22222(buffer, value.recipient.network);
                      if (value.recipient.network === 65535) {
                        encodeApplicationOctetString22222(buffer, 0, 0, 0);
                      } else {
                        encodeApplicationOctetString22222(
                          buffer,
                          value.recipient.address,
                          0,
                          value.recipient.address.length
                        );
                      }
                      encodeClosingTag22222(buffer, 1);
                      encodeClosingTag22222(buffer, 0);
                      encodeContextUnsigned22222(buffer, 1, value.subscriptionProcessId);
                      encodeClosingTag22222(buffer, 0);
                      encodeOpeningTag22222(buffer, 1);
                      encodeContextObjectId22222(
                        buffer,
                        0,
                        value.monitoredObjectId.type,
                        value.monitoredObjectId.instance
                      );
                      encodeContextEnumerated22222(buffer, 1, value.monitoredProperty.id);
                      if (value.monitoredProperty.index !== enums_default22222.ASN1_ARRAY_ALL) {
                        encodeContextUnsigned22222(buffer, 2, value.monitoredProperty.index);
                      }
                      encodeClosingTag22222(buffer, 1);
                      encodeContextBoolean22222(buffer, 2, value.issueConfirmedNotifications);
                      encodeContextUnsigned22222(buffer, 3, value.timeRemaining);
                      if (value.covIncrement > 0) {
                        encodeContextReal22222(buffer, 4, value.covIncrement);
                      }
                    };
                    var bacappEncodeApplicationData22222 = (buffer, value) => {
                      if (value.value === null) {
                        value.type = enums_default22222.ApplicationTag.NULL;
                      }
                      switch (value.type) {
                        case enums_default22222.ApplicationTag.NULL:
                          encodeApplicationNull22222(buffer);
                          break;
                        case enums_default22222.ApplicationTag.BOOLEAN:
                          encodeApplicationBoolean22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.UNSIGNED_INTEGER:
                          encodeApplicationUnsigned22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.SIGNED_INTEGER:
                          encodeApplicationSigned22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.REAL:
                          encodeApplicationReal22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.DOUBLE:
                          encodeApplicationDouble22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.OCTET_STRING:
                          encodeApplicationOctetString22222(buffer, value.value, 0, value.value.length);
                          break;
                        case enums_default22222.ApplicationTag.CHARACTER_STRING:
                          encodeApplicationCharacterString22222(buffer, value.value, value.encoding);
                          break;
                        case enums_default22222.ApplicationTag.BIT_STRING:
                          encodeApplicationBitstring22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.ENUMERATED:
                          encodeApplicationEnumerated22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.DATE:
                          encodeApplicationDate22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.TIME:
                          encodeApplicationTime22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.TIMESTAMP:
                          bacappEncodeTimestamp22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.DATETIME:
                          bacappEncodeDatetime22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.OBJECTIDENTIFIER:
                          encodeApplicationObjectId22222(buffer, value.value.type, value.value.instance);
                          break;
                        case enums_default22222.ApplicationTag.COV_SUBSCRIPTION:
                          encodeCovSubscription22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.READ_ACCESS_RESULT:
                          encodeReadAccessResult22222(buffer, value.value);
                          break;
                        case enums_default22222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                          encodeReadAccessSpecification22222(buffer, value.value);
                          break;
                        case void 0:
                          throw new Error(
                            "Cannot encode a value if the type has not been specified"
                          );
                        default:
                          throw "No encode for ApplicationTag type: " + enums_default22222.getEnumName(
                            enums_default22222.ApplicationTag,
                            value.type
                          );
                      }
                    };
                    var bacappEncodeDeviceObjPropertyRef22222 = (buffer, value) => {
                      encodeContextObjectId22222(
                        buffer,
                        0,
                        value.objectId.type,
                        value.objectId.instance
                      );
                      encodeContextEnumerated22222(buffer, 1, value.id);
                      if (value.arrayIndex !== enums_default22222.ASN1_ARRAY_ALL) {
                        encodeContextUnsigned22222(buffer, 2, value.arrayIndex);
                      }
                      if (value.deviceIndentifier.type === enums_default22222.ObjectType.DEVICE) {
                        encodeContextObjectId22222(
                          buffer,
                          3,
                          value.deviceIndentifier.type,
                          value.deviceIndentifier.instance
                        );
                      }
                    };
                    var bacappEncodeContextDeviceObjPropertyRef22222 = (buffer, tagNumber, value) => {
                      encodeOpeningTag22222(buffer, tagNumber);
                      bacappEncodeDeviceObjPropertyRef22222(buffer, value);
                      encodeClosingTag22222(buffer, tagNumber);
                    };
                    var bacappEncodePropertyState22222 = (buffer, value) => {
                      switch (value.type) {
                        case enums_default22222.PropertyStates.BOOLEAN_VALUE:
                          encodeContextBoolean22222(buffer, 0, value.state === 1);
                          break;
                        case enums_default22222.PropertyStates.BINARY_VALUE:
                          encodeContextEnumerated22222(buffer, 1, value.state);
                          break;
                        case enums_default22222.PropertyStates.EVENT_TYPE:
                          encodeContextEnumerated22222(buffer, 2, value.state);
                          break;
                        case enums_default22222.PropertyStates.POLARITY:
                          encodeContextEnumerated22222(buffer, 3, value.state);
                          break;
                        case enums_default22222.PropertyStates.PROGRAM_CHANGE:
                          encodeContextEnumerated22222(buffer, 4, value.state);
                          break;
                        case enums_default22222.PropertyStates.PROGRAM_STATE:
                          encodeContextEnumerated22222(buffer, 5, value.state);
                          break;
                        case enums_default22222.PropertyStates.REASON_FOR_HALT:
                          encodeContextEnumerated22222(buffer, 6, value.state);
                          break;
                        case enums_default22222.PropertyStates.RELIABILITY:
                          encodeContextEnumerated22222(buffer, 7, value.state);
                          break;
                        case enums_default22222.PropertyStates.STATE:
                          encodeContextEnumerated22222(buffer, 8, value.state);
                          break;
                        case enums_default22222.PropertyStates.SYSTEM_STATUS:
                          encodeContextEnumerated22222(buffer, 9, value.state);
                          break;
                        case enums_default22222.PropertyStates.UNITS:
                          encodeContextEnumerated22222(buffer, 10, value.state);
                          break;
                        case enums_default22222.PropertyStates.UNSIGNED_VALUE:
                          encodeContextUnsigned22222(buffer, 11, value.state);
                          break;
                        case enums_default22222.PropertyStates.LIFE_SAFETY_MODE:
                          encodeContextEnumerated22222(buffer, 12, value.state);
                          break;
                        case enums_default22222.PropertyStates.LIFE_SAFETY_STATE:
                          encodeContextEnumerated22222(buffer, 13, value.state);
                          break;
                        default:
                          break;
                      }
                    };
                    var encodeContextBitstring22222 = (buffer, tagNumber, bitString) => {
                      let bitStringEncodedLength = 1;
                      bitStringEncodedLength += bitstringBytesUsed22222(bitString);
                      encodeTag22222(buffer, tagNumber, true, bitStringEncodedLength);
                      encodeBitstring22222(buffer, bitString);
                    };
                    var encodeContextSigned22222 = (buffer, tagNumber, value) => {
                      encodeTag22222(buffer, tagNumber, true, getSignedLength22222(value));
                      encodeBacnetSigned22222(buffer, value);
                    };
                    var encodeContextTime22222 = (buffer, tagNumber, value) => {
                      encodeTag22222(buffer, tagNumber, true, 4);
                      encodeBacnetTime22222(buffer, value);
                    };
                    var bacappEncodeContextDatetime22222 = (buffer, tagNumber, value) => {
                      if (value !== new Date(1, 1, 1)) {
                        encodeOpeningTag22222(buffer, tagNumber);
                        bacappEncodeDatetime22222(buffer, value);
                        encodeClosingTag22222(buffer, tagNumber);
                      } else {
                        throw new Error("wrong Datetime while bacapp encoding context");
                      }
                    };
                    var decodeTagNumber22222 = (buffer, offset) => {
                      let len = 1;
                      let tagNumber;
                      if (isExtendedTagNumber22222(buffer[offset])) {
                        tagNumber = buffer[offset + 1];
                        len++;
                      } else {
                        tagNumber = buffer[offset] >> 4;
                      }
                      return {
                        len,
                        tagNumber
                      };
                    };
                    var decodeIsContextTag22222 = (buffer, offset, tagNumber) => {
                      const result = decodeTagNumber22222(buffer, offset);
                      return isContextSpecific22222(buffer[offset]) && result.tagNumber === tagNumber;
                    };
                    var decodeIsOpeningTagNumber22222 = (buffer, offset, tagNumber) => {
                      const result = decodeTagNumber22222(buffer, offset);
                      return isOpeningTag22222(buffer[offset]) && result.tagNumber === tagNumber;
                    };
                    var decodeIsClosingTagNumber22222 = (buffer, offset, tagNumber) => {
                      const result = decodeTagNumber22222(buffer, offset);
                      return isClosingTag22222(buffer[offset]) && result.tagNumber === tagNumber;
                    };
                    var decodeIsClosingTag22222 = (buffer, offset) => {
                      return (buffer[offset] & 7) === 7;
                    };
                    var decodeIsOpeningTag22222 = (buffer, offset) => {
                      return (buffer[offset] & 7) === 6;
                    };
                    var decodeObjectId22222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                      const result = decodeUnsigned22222(buffer, offset, 4);
                      const objectType = result.value >> enums_default22222.ASN1_INSTANCE_BITS & enums_default22222.ASN1_MAX_OBJECT;
                      const instance = result.value & enums_default22222.ASN1_MAX_INSTANCE;
                      return {
                        len: result.len,
                        objectType,
                        instance
                      };
                    };
                    var decodeObjectIdSafe22222 = (buffer, offset, lenValue) => {
                      if (lenValue !== 4) {
                        return {
                          len: 0,
                          objectType: 0,
                          instance: 0
                        };
                      } else {
                        return decodeObjectId22222(buffer, offset);
                      }
                    };
                    var decodeTagNumberAndValue22222 = (buffer, offset) => {
                      let value;
                      let result = decodeTagNumber22222(buffer, offset);
                      let len = result.len;
                      if (isExtendedValue22222(buffer[offset])) {
                        if (buffer[offset + len] === 255) {
                          len++;
                          result = decodeUnsigned22222(buffer, offset + len, 4);
                          len += result.len;
                          value = result.value;
                        } else if (buffer[offset + len] === 254) {
                          len++;
                          result = decodeUnsigned22222(buffer, offset + len, 2);
                          len += result.len;
                          value = result.value;
                        } else {
                          value = buffer[offset + len];
                          len++;
                        }
                      } else if (isOpeningTag22222(buffer[offset])) {
                        value = 0;
                      } else if (isClosingTag22222(buffer[offset])) {
                        value = 0;
                      } else {
                        value = buffer[offset] & 7;
                      }
                      return {
                        len,
                        tagNumber: result.tagNumber,
                        value
                      };
                    };
                    var bacappDecodeApplicationData22222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                      if (!isContextSpecific22222(buffer[offset])) {
                        let result = decodeTagNumberAndValue22222(buffer, offset);
                        if (result) {
                          let len = result.len;
                          result = bacappDecodeData22222(
                            buffer,
                            offset + len,
                            maxOffset,
                            result.tagNumber,
                            result.value
                          );
                          if (!result) {
                            return void 0;
                          }
                          let resObj = {
                            len: len + result.len,
                            type: result.type,
                            value: result.value
                          };
                          if (result.encoding !== void 0)
                            resObj.encoding = result.encoding;
                          return resObj;
                        }
                      } else {
                        return bacappDecodeContextApplicationData22222(
                          buffer,
                          offset,
                          maxOffset,
                          objectType,
                          propertyId
                        );
                      }
                    };
                    var encodeReadAccessResult22222 = (buffer, value) => {
                      encodeContextObjectId22222(
                        buffer,
                        0,
                        value.objectId.type,
                        value.objectId.instance
                      );
                      encodeOpeningTag22222(buffer, 1);
                      value.values.forEach((item) => {
                        encodeContextEnumerated22222(buffer, 2, item.property.id);
                        if (item.property.index !== enums_default22222.ASN1_ARRAY_ALL) {
                          encodeContextUnsigned22222(buffer, 3, item.property.index);
                        }
                        if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                          encodeOpeningTag22222(buffer, 5);
                          encodeApplicationEnumerated22222(buffer, item.value[0].value.errorClass);
                          encodeApplicationEnumerated22222(buffer, item.value[0].value.errorCode);
                          encodeClosingTag22222(buffer, 5);
                        } else {
                          if (!item.value)
                            throw new Error("No value in item");
                          encodeOpeningTag22222(buffer, 4);
                          item.value.forEach((subItem) => {
                            bacappEncodeApplicationData22222(buffer, subItem);
                          });
                          encodeClosingTag22222(buffer, 4);
                        }
                      });
                      encodeClosingTag22222(buffer, 1);
                    };
                    var decodeReadAccessResult22222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let value = {};
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      let result = decodeObjectId22222(buffer, offset + len);
                      value.objectId = {
                        type: result.objectType,
                        instance: result.instance
                      };
                      len += result.len;
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 1)) {
                        return -1;
                      }
                      len++;
                      const values = [];
                      while (apduLen - len > 0) {
                        let newEntry = {};
                        if (decodeIsClosingTagNumber22222(buffer, offset + len, 1)) {
                          len++;
                          break;
                        }
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 2) {
                          return void 0;
                        }
                        result = decodeEnumerated22222(buffer, offset + len, result.value);
                        newEntry.id = result.value;
                        len += result.len;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        if (result.tagNumber === 3) {
                          len += result.len;
                          result = decodeUnsigned22222(buffer, offset + len, result.value);
                          newEntry.index = result.value;
                          len += result.len;
                        } else {
                          newEntry.index = enums_default22222.ASN1_ARRAY_ALL;
                        }
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber === 4) {
                          const localValues = [];
                          while (len + offset <= buffer.length && !decodeIsClosingTagNumber22222(buffer, offset + len, 4)) {
                            let localResult = bacappDecodeApplicationData22222(
                              buffer,
                              offset + len,
                              apduLen + offset - 1,
                              value.objectId.type,
                              newEntry.id
                            );
                            if (!localResult) {
                              return void 0;
                            }
                            len += localResult.len;
                            let resObj = {
                              value: localResult.value,
                              type: localResult.type
                            };
                            if (localResult.encoding !== void 0)
                              resObj.encoding = localResult.encoding;
                            localValues.push(resObj);
                          }
                          if (!decodeIsClosingTagNumber22222(buffer, offset + len, 4)) {
                            return void 0;
                          }
                          if (localValues.count === 2 && localValues[0].type === enums_default22222.ApplicationTag.DATE && localValues[1].type === enums_default22222.ApplicationTag.TIME) {
                            const date = localValues[0].value;
                            const time = localValues[1].value;
                            const bdatetime = new Date(
                              date.year,
                              date.month,
                              date.day,
                              time.hour,
                              time.minute,
                              time.second,
                              time.millisecond
                            );
                            newEntry.value = [
                              { type: enums_default22222.ApplicationTag.DATETIME, value: bdatetime }
                            ];
                          } else {
                            newEntry.value = localValues;
                          }
                          len++;
                        } else if (result.tagNumber === 5) {
                          let err = {};
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                          result = decodeEnumerated22222(buffer, offset + len, result.value);
                          len += result.len;
                          err.errorClass = result.value;
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                          result = decodeEnumerated22222(buffer, offset + len, result.value);
                          len += result.len;
                          err.errorCode = result.value;
                          if (!decodeIsClosingTagNumber22222(buffer, offset + len, 5)) {
                            return void 0;
                          }
                          len++;
                          newEntry.value = [
                            {
                              type: enums_default22222.ApplicationTag.ERROR,
                              value: err
                            }
                          ];
                        }
                        values.push(newEntry);
                      }
                      value.values = values;
                      return {
                        len,
                        value
                      };
                    };
                    var decodeSigned22222 = (buffer, offset, length) => {
                      return {
                        len: length,
                        value: buffer.readIntBE(offset, length, true)
                      };
                    };
                    var decodeReal22222 = (buffer, offset) => {
                      return {
                        len: 4,
                        value: buffer.readFloatBE(offset, true)
                      };
                    };
                    var decodeRealSafe22222 = (buffer, offset, lenValue) => {
                      if (lenValue !== 4) {
                        return {
                          len: lenValue,
                          value: 0
                        };
                      } else {
                        return decodeReal22222(buffer, offset);
                      }
                    };
                    var decodeDouble22222 = (buffer, offset) => {
                      return {
                        len: 8,
                        value: buffer.readDoubleBE(offset, true)
                      };
                    };
                    var decodeDoubleSafe22222 = (buffer, offset, lenValue) => {
                      if (lenValue !== 8) {
                        return {
                          len: lenValue,
                          value: 0
                        };
                      } else {
                        return decodeDouble22222(buffer, offset);
                      }
                    };
                    var decodeOctetString22222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                      const octetString = [];
                      for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                        octetString.push(buffer[offset + i]);
                      }
                      return {
                        len: octetStringLength,
                        value: octetString
                      };
                    };
                    var multiCharsetCharacterstringDecode22222 = (buffer, offset, maxLength, encoding, length) => {
                      const stringBuf = Buffer.alloc(length);
                      buffer.copy(stringBuf, 0, offset, offset + length);
                      return {
                        value: import_iconv_lite22222.default.decode(stringBuf, getEncodingType22222(encoding, buffer, offset)),
                        len: length + 1,
                        encoding
                      };
                    };
                    var decodeCharacterString22222 = (buffer, offset, maxLength, lenValue) => {
                      return multiCharsetCharacterstringDecode22222(
                        buffer,
                        offset + 1,
                        maxLength,
                        buffer[offset],
                        lenValue - 1
                      );
                    };
                    var bitstringSetBitsUsed22222 = (bitString, bytesUsed, unusedBits) => {
                      bitString.bitsUsed = bytesUsed * 8;
                      bitString.bitsUsed -= unusedBits;
                    };
                    var decodeBitstring22222 = (buffer, offset, lenValue) => {
                      let len = 0;
                      let bitString = {};
                      bitString.value = [];
                      if (lenValue > 0) {
                        const bytesUsed = lenValue - 1;
                        if (bytesUsed <= enums_default22222.ASN1_MAX_BITSTRING_BYTES) {
                          len = 1;
                          for (let i = 0; i < bytesUsed; i++) {
                            bitString.value.push(byteReverseBits22222(buffer[offset + len++]));
                          }
                          const unusedBits = buffer[offset] & 7;
                          bitstringSetBitsUsed22222(bitString, bytesUsed, unusedBits);
                        }
                      }
                      return {
                        len,
                        value: bitString
                      };
                    };
                    var decodeDate22222 = (buffer, offset) => {
                      let date;
                      const year = buffer[offset] + 1900;
                      const month = buffer[offset + 1];
                      const day = buffer[offset + 2];
                      const wday = buffer[offset + 3];
                      if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                        date = new Date(1, 1, 1);
                      } else {
                        date = new Date(year, month, day);
                      }
                      return {
                        len: 4,
                        value: date
                      };
                    };
                    var decodeDateSafe22222 = (buffer, offset, lenValue) => {
                      if (lenValue !== 4) {
                        return {
                          len: lenValue,
                          value: new Date(1, 1, 1)
                        };
                      } else {
                        return decodeDate22222(buffer, offset);
                      }
                    };
                    var decodeApplicationDate22222 = (buffer, offset) => {
                      const result = decodeTagNumber22222(buffer, offset);
                      if (result.tagNumber === enums_default22222.ApplicationTag.DATE) {
                        const value = decodeDate22222(buffer, offset + 1);
                        return {
                          len: value.len + 1,
                          value
                        };
                      }
                      return void 0;
                    };
                    var decodeBacnetTime22222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                      const hour = buffer[offset + 0];
                      const min = buffer[offset + 1];
                      const sec = buffer[offset + 2];
                      let hundredths = buffer[offset + 3];
                      if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                        value = new Date(1, 1, 1);
                      } else {
                        if (hundredths > 100)
                          hundredths = 0;
                        value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                      }
                      return {
                        len: 4,
                        value
                      };
                    };
                    var decodeBacnetTimeSafe22222 = (buffer, offset, lenValue) => {
                      if (lenValue !== 4) {
                        return {
                          len: lenValue,
                          value: new Date(1, 1, 1)
                        };
                      } else {
                        return decodeBacnetTime22222(buffer, offset);
                      }
                    };
                    var decodeApplicationTime22222 = (buffer, offset) => {
                      const result = decodeTagNumber22222(buffer, offset);
                      if (result.tagNumber === enums_default22222.ApplicationTag.TIME) {
                        const value = decodeBacnetTime22222(buffer, offset + 1);
                        return {
                          len: value.len + 1,
                          value
                        };
                      }
                      return void 0;
                    };
                    var decodeBacnetDatetime22222 = (buffer, offset) => {
                      let len = 0;
                      const date = decodeApplicationDate22222(buffer, offset + len);
                      len += date.len;
                      const time = decodeApplicationTime22222(buffer, offset + len);
                      len += time.len;
                      return {
                        len,
                        value: new Date(
                          date.year,
                          date.month,
                          date.day,
                          time.hour,
                          time.minute,
                          time.second,
                          time.millisecond
                        )
                      };
                    };
                    var bacappDecodeData22222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                      let result;
                      let value = {
                        len: 0,
                        type: tagDataType
                      };
                      switch (tagDataType) {
                        case enums_default22222.ApplicationTag.NULL:
                          value.value = null;
                          break;
                        case enums_default22222.ApplicationTag.BOOLEAN:
                          value.value = lenValueType > 0;
                          break;
                        case enums_default22222.ApplicationTag.UNSIGNED_INTEGER:
                          result = decodeUnsigned22222(buffer, offset, lenValueType);
                          value.len += result.len;
                          value.value = result.value;
                          break;
                        case enums_default22222.ApplicationTag.SIGNED_INTEGER:
                          result = decodeSigned22222(buffer, offset, lenValueType);
                          value.len += result.len;
                          value.value = result.value;
                          break;
                        case enums_default22222.ApplicationTag.REAL:
                          result = decodeRealSafe22222(buffer, offset, lenValueType);
                          value.len += result.len;
                          value.value = result.value;
                          break;
                        case enums_default22222.ApplicationTag.DOUBLE:
                          result = decodeDoubleSafe22222(buffer, offset, lenValueType);
                          value.len += result.len;
                          value.value = result.value;
                          break;
                        case enums_default22222.ApplicationTag.OCTET_STRING:
                          result = decodeOctetString22222(buffer, offset, maxLength, 0, lenValueType);
                          value.len += result.len;
                          value.value = result.value;
                          break;
                        case enums_default22222.ApplicationTag.CHARACTER_STRING:
                          result = decodeCharacterString22222(buffer, offset, maxLength, lenValueType);
                          value.len += result.len;
                          value.value = result.value;
                          value.encoding = result.encoding;
                          break;
                        case enums_default22222.ApplicationTag.BIT_STRING:
                          result = decodeBitstring22222(buffer, offset, lenValueType);
                          value.len += result.len;
                          value.value = result.value;
                          break;
                        case enums_default22222.ApplicationTag.ENUMERATED:
                          result = decodeEnumerated22222(buffer, offset, lenValueType);
                          value.len += result.len;
                          value.value = result.value;
                          break;
                        case enums_default22222.ApplicationTag.DATE:
                          result = decodeDateSafe22222(buffer, offset, lenValueType);
                          value.len += result.len;
                          value.value = result.value;
                          break;
                        case enums_default22222.ApplicationTag.TIME:
                          result = decodeBacnetTimeSafe22222(buffer, offset, lenValueType);
                          value.len += result.len;
                          value.value = result.value;
                          break;
                        case enums_default22222.ApplicationTag.OBJECTIDENTIFIER:
                          result = decodeObjectIdSafe22222(buffer, offset, lenValueType);
                          value.len += result.len;
                          value.value = { type: result.objectType, instance: result.instance };
                          break;
                        default:
                          break;
                      }
                      return value;
                    };
                    var bacappContextTagType22222 = (property, tagNumber) => {
                      let tag = 0;
                      switch (property) {
                        case enums_default22222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                        case enums_default22222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                        case enums_default22222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                          switch (tagNumber) {
                            case 0:
                            case 1:
                              tag = enums_default22222.ApplicationTag.UNSIGNED_INTEGER;
                              break;
                            case 2:
                              tag = enums_default22222.ApplicationTag.REAL;
                              break;
                            default:
                              break;
                          }
                          break;
                        case enums_default22222.PropertyIdentifier.ACTION:
                          switch (tagNumber) {
                            case 0:
                            case 1:
                              tag = enums_default22222.ApplicationTag.OBJECTIDENTIFIER;
                              break;
                            case 2:
                              tag = enums_default22222.ApplicationTag.ENUMERATED;
                              break;
                            case 3:
                            case 5:
                            case 6:
                              tag = enums_default22222.ApplicationTag.UNSIGNED_INTEGER;
                              break;
                            case 7:
                            case 8:
                              tag = enums_default22222.ApplicationTag.BOOLEAN;
                              break;
                            default:
                              break;
                          }
                          break;
                        case enums_default22222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                          switch (tagNumber) {
                            case 0:
                              tag = enums_default22222.ApplicationTag.OBJECTIDENTIFIER;
                              break;
                            default:
                              break;
                          }
                          break;
                        case enums_default22222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                          switch (tagNumber) {
                            case 1:
                              tag = enums_default22222.ApplicationTag.OBJECTIDENTIFIER;
                              break;
                            case 3:
                              tag = enums_default22222.ApplicationTag.UNSIGNED_INTEGER;
                              break;
                            default:
                              break;
                          }
                          break;
                        case enums_default22222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                          switch (tagNumber) {
                            case 0:
                            case 3:
                              tag = enums_default22222.ApplicationTag.OBJECTIDENTIFIER;
                              break;
                            case 1:
                              tag = enums_default22222.ApplicationTag.ENUMERATED;
                              break;
                            case 2:
                              tag = enums_default22222.ApplicationTag.UNSIGNED_INTEGER;
                              break;
                            default:
                              break;
                          }
                          break;
                        case enums_default22222.PropertyIdentifier.SUBORDINATE_LIST:
                          switch (tagNumber) {
                            case 0:
                            case 1:
                              tag = enums_default22222.ApplicationTag.OBJECTIDENTIFIER;
                              break;
                            default:
                              break;
                          }
                          break;
                        case enums_default22222.PropertyIdentifier.RECIPIENT_LIST:
                          switch (tagNumber) {
                            case 0:
                              tag = enums_default22222.ApplicationTag.OBJECTIDENTIFIER;
                              break;
                            default:
                              break;
                          }
                          break;
                        case enums_default22222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                          switch (tagNumber) {
                            case 0:
                            case 1:
                              break;
                            case 2:
                              tag = enums_default22222.ApplicationTag.BOOLEAN;
                              break;
                            case 3:
                              tag = enums_default22222.ApplicationTag.UNSIGNED_INTEGER;
                              break;
                            case 4:
                              tag = enums_default22222.ApplicationTag.REAL;
                              break;
                            default:
                              break;
                          }
                          break;
                        default:
                          break;
                      }
                      return tag;
                    };
                    var decodeDeviceObjPropertyRef22222 = (buffer, offset, NOTUSEDARG = 0) => {
                      let len = 0;
                      let arrayIndex = enums_default22222.ASN1_ARRAY_ALL;
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      let objectId = decodeObjectId22222(buffer, offset + len);
                      len += objectId.len;
                      let result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 1) {
                        return void 0;
                      }
                      let id = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += id.len;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      if (result.tagNumber === 2) {
                        len += result.len;
                        arrayIndex = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += arrayIndex.len;
                      }
                      if (decodeIsContextTag22222(buffer, offset + len, 3)) {
                        if (!isClosingTag22222(buffer[offset + len])) {
                          len++;
                          objectId = decodeObjectId22222(buffer, offset + len);
                          len += objectId.len;
                        }
                      }
                      return {
                        len,
                        value: {
                          objectId,
                          id
                        }
                      };
                    };
                    var decodeReadAccessSpecification22222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let value = {};
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      let decodedValue = decodeObjectId22222(buffer, offset + len);
                      value.objectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      len += decodedValue.len;
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      len++;
                      const propertyIdAndArrayIndex = [];
                      while (apduLen - len > 1 && !decodeIsClosingTagNumber22222(buffer, offset + len, 1)) {
                        let propertyRef = {};
                        if (!isContextSpecific22222(buffer[offset + len])) {
                          return void 0;
                        }
                        let result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 0) {
                          return void 0;
                        }
                        if (len + result.value >= apduLen) {
                          return void 0;
                        }
                        decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                        propertyRef.id = decodedValue.value;
                        len += decodedValue.len;
                        propertyRef.index = enums_default22222.ASN1_ARRAY_ALL;
                        if (isContextSpecific22222(buffer[offset + len]) && !isClosingTag22222(buffer[offset + len])) {
                          const tmp = decodeTagNumberAndValue22222(buffer, offset + len);
                          if (tmp.tagNumber === 1) {
                            len += tmp.len;
                            if (len + tmp.value >= apduLen) {
                              return void 0;
                            }
                            decodedValue = decodeUnsigned22222(buffer, offset + len, tmp.value);
                            propertyRef.index = decodedValue.value;
                            len += decodedValue.len;
                          }
                        }
                        propertyIdAndArrayIndex.push(propertyRef);
                      }
                      if (!decodeIsClosingTagNumber22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      len++;
                      value.properties = propertyIdAndArrayIndex;
                      return {
                        len,
                        value
                      };
                    };
                    var decodeCovSubscription22222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let value = {};
                      let result;
                      let decodedValue;
                      value.recipient = {};
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      len++;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== enums_default22222.ApplicationTag.UNSIGNED_INTEGER) {
                        return void 0;
                      }
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.recipient.net = decodedValue.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== enums_default22222.ApplicationTag.OCTET_STRING) {
                        return void 0;
                      }
                      decodedValue = decodeOctetString22222(
                        buffer,
                        offset + len,
                        apduLen,
                        0,
                        result.value
                      );
                      len += decodedValue.len;
                      value.recipient.adr = decodedValue.value;
                      if (!decodeIsClosingTagNumber22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      len++;
                      if (!decodeIsClosingTagNumber22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 1) {
                        return void 0;
                      }
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.subscriptionProcessId = decodedValue.value;
                      if (!decodeIsClosingTagNumber22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      len++;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 0) {
                        return void 0;
                      }
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      value.monitoredObjectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 1) {
                        return void 0;
                      }
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.monitoredProperty = {};
                      value.monitoredProperty.id = decodedValue.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      if (result.tagNumber === 2) {
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.monitoredProperty.index = decodedValue.value;
                      } else {
                        value.monitoredProperty.index = enums_default22222.ASN1_ARRAY_ALL;
                      }
                      if (!decodeIsClosingTagNumber22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      len++;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 2) {
                        return void 0;
                      }
                      value.issueConfirmedNotifications = buffer[offset + len] > 0;
                      len++;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 3) {
                        return void 0;
                      }
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.timeRemaining = decodedValue.value;
                      if (len < apduLen && !isClosingTag22222(buffer[offset + len])) {
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 4) {
                          return void 0;
                        }
                        decodedValue = decodeReal22222(buffer, offset + len);
                        len += decodedValue.len;
                        value.covIncrement = decodedValue.value;
                      }
                      return {
                        len,
                        value
                      };
                    };
                    var decodeCalendarDate22222 = (buffer, offset) => {
                      return {
                        len: 4,
                        year: buffer[offset],
                        month: buffer[offset + 1],
                        day: buffer[offset + 2],
                        wday: buffer[offset + 3]
                      };
                    };
                    var decodeCalendarDateRange22222 = (buffer, offset) => {
                      let len = 1;
                      const startDate = decodeDate22222(buffer, offset + len);
                      len += startDate.len + 1;
                      const endDate = decodeDate22222(buffer, offset + len);
                      len += endDate.len + 1;
                      return {
                        len,
                        startDate,
                        endDate
                      };
                    };
                    var decodeCalendarWeekDay22222 = (buffer, offset) => {
                      return {
                        len: 3,
                        month: buffer[offset],
                        week: buffer[offset + 1],
                        wday: buffer[offset + 2]
                      };
                    };
                    var decodeCalendar22222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      const entries = [];
                      let decodedValue;
                      while (len < apduLen) {
                        const result = decodeTagNumber22222(buffer, offset + len);
                        len += result.len;
                        switch (result.tagNumber) {
                          case 0:
                            decodedValue = decodeCalendarDate22222(buffer, offset + len);
                            len += decodedValue.len;
                            entries.push(decodedValue);
                            break;
                          case 1:
                            decodedValue = decodeCalendarDateRange22222(buffer, offset + len);
                            len += decodedValue.len;
                            entries.push(decodedValue);
                            break;
                          case 2:
                            decodedValue = decodeCalendarWeekDay22222(buffer, offset + len);
                            len += decodedValue.len;
                            entries.push(decodedValue);
                            break;
                          default:
                            return {
                              len: len - 1,
                              value: entries
                            };
                        }
                      }
                    };
                    var bacappDecodeContextApplicationData22222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                      let len = 0;
                      let result;
                      if (isContextSpecific22222(buffer[offset])) {
                        if (propertyId === enums_default22222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                          result = decodeReadAccessSpecification22222(buffer, offset, maxOffset);
                          if (!result) {
                            return void 0;
                          }
                          return {
                            type: enums_default22222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                            value: result.value,
                            len: result.len
                          };
                        } else if (propertyId === enums_default22222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                          result = decodeCovSubscription22222(buffer, offset, maxOffset);
                          if (!result) {
                            return void 0;
                          }
                          return {
                            type: enums_default22222.ApplicationTag.COV_SUBSCRIPTION,
                            value: result.value,
                            len: result.len
                          };
                        } else if (objectType === enums_default22222.ObjectType.GROUP && propertyId === enums_default22222.PropertyIdentifier.PRESENT_VALUE) {
                          result = decodeReadAccessResult22222(buffer, offset, maxOffset);
                          if (!result) {
                            return void 0;
                          }
                          return {
                            type: enums_default22222.ApplicationTag.READ_ACCESS_RESULT,
                            value: result.value,
                            len: result.len
                          };
                        } else if (propertyId === enums_default22222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default22222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default22222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                          result = decodeDeviceObjPropertyRef22222(buffer, offset, maxOffset);
                          if (!result) {
                            return void 0;
                          }
                          return {
                            type: enums_default22222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                            value: result.value,
                            len: result.len
                          };
                        } else if (propertyId === enums_default22222.PropertyIdentifier.DATE_LIST) {
                          result = decodeCalendar22222(buffer, offset, maxOffset);
                          if (!result) {
                            return void 0;
                          }
                          return {
                            type: enums_default22222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                            value: result.value,
                            len: result.len
                          };
                        } else if (propertyId === enums_default22222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                          let subEvtResult;
                          let evtResult = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += 1;
                          if (evtResult.tagNumber === 0) {
                            subEvtResult = decodeBacnetTime22222(buffer, offset + 1);
                            return {
                              type: enums_default22222.ApplicationTag.TIMESTAMP,
                              value: subEvtResult.value,
                              len: subEvtResult.len + 1
                            };
                          } else if (evtResult.tagNumber === 1) {
                            subEvtResult = decodeUnsigned22222(buffer, offset + len, evtResult.value);
                            return {
                              type: enums_default22222.ApplicationTag.UNSIGNED_INTEGER,
                              value: subEvtResult.value,
                              len: subEvtResult.len + 1
                            };
                          } else if (evtResult.tagNumber === 2) {
                            subEvtResult = decodeBacnetDatetime22222(buffer, offset + len);
                            return {
                              type: enums_default22222.ApplicationTag.TIMESTAMP,
                              value: subEvtResult.value,
                              len: subEvtResult.len + 2
                            };
                          } else {
                            return void 0;
                          }
                        }
                        const list = [];
                        let tagResult = decodeTagNumberAndValue22222(buffer, offset + len);
                        let multipleValues = isOpeningTag22222(buffer[offset + len]);
                        while (len + offset <= maxOffset && !isClosingTag22222(buffer[offset + len])) {
                          let subResult = decodeTagNumberAndValue22222(buffer, offset + len);
                          if (!subResult) {
                            return void 0;
                          }
                          if (subResult.value === 0) {
                            len += subResult.len;
                            result = bacappDecodeApplicationData22222(
                              buffer,
                              offset + len,
                              maxOffset,
                              enums_default22222.ASN1_MAX_OBJECT_TYPE,
                              enums_default22222.ASN1_MAX_PROPERTY_ID
                            );
                            if (!result) {
                              return void 0;
                            }
                            list.push(result);
                            len += result.len;
                          } else {
                            const overrideTagNumber = bacappContextTagType22222(
                              propertyId,
                              subResult.tagNumber
                            );
                            if (overrideTagNumber !== enums_default22222.ASN1_MAX_APPLICATION_TAG) {
                              subResult.tagNumber = overrideTagNumber;
                            }
                            let bacappResult = bacappDecodeData22222(
                              buffer,
                              offset + len + subResult.len,
                              maxOffset,
                              subResult.tagNumber,
                              subResult.value
                            );
                            if (!bacappResult) {
                              return void 0;
                            }
                            if (bacappResult.len === subResult.value) {
                              let resObj = {
                                value: bacappResult.value,
                                type: bacappResult.type
                              };
                              if (bacappResult.encoding !== void 0)
                                resObj.encoding = bacappResult.encoding;
                              list.push(resObj);
                              len += subResult.len + subResult.value;
                            } else {
                              list.push({
                                value: buffer.slice(
                                  offset + len + subResult.len,
                                  offset + len + subResult.len + subResult.value
                                ),
                                type: enums_default22222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                              });
                              len += subResult.len + subResult.value;
                            }
                          }
                          if (multipleValues === false) {
                            return {
                              len,
                              value: list[0],
                              type: enums_default22222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                            };
                          }
                        }
                        if (len + offset > maxOffset) {
                          return void 0;
                        }
                        if (decodeIsClosingTagNumber22222(buffer, offset + len, tagResult.tagNumber)) {
                          len++;
                        }
                        return {
                          len,
                          value: list,
                          type: enums_default22222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                        };
                      }
                      return void 0;
                    };
                    var bacappEncodeTimestamp22222 = (buffer, value) => {
                      switch (value.type) {
                        case enums_default22222.TimeStamp.TIME:
                          encodeContextTime22222(buffer, 0, value.value);
                          break;
                        case enums_default22222.TimeStamp.SEQUENCE_NUMBER:
                          encodeContextUnsigned22222(buffer, 1, value.value);
                          break;
                        case enums_default22222.TimeStamp.DATETIME:
                          bacappEncodeContextDatetime22222(buffer, 2, value.value);
                          break;
                        default:
                          throw new Error("NOT_IMPLEMENTED");
                      }
                    };
                    var bacappEncodeContextTimestamp22222 = (buffer, tagNumber, value) => {
                      encodeOpeningTag22222(buffer, tagNumber);
                      bacappEncodeTimestamp22222(buffer, value);
                      encodeClosingTag22222(buffer, tagNumber);
                    };
                    var decodeContextCharacterString22222 = (buffer, offset, maxLength, tagNumber) => {
                      let len = 0;
                      if (!decodeIsContextTag22222(buffer, offset + len, tagNumber)) {
                        return void 0;
                      }
                      const result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      const decodedValue = multiCharsetCharacterstringDecode22222(
                        buffer,
                        offset + 1 + len,
                        maxLength,
                        buffer[offset + len],
                        result.value - 1
                      );
                      if (!decodedValue) {
                        return void 0;
                      }
                      len += result.value;
                      return {
                        len,
                        value: decodedValue.value,
                        encoding: decodedValue.encoding
                      };
                    };
                    var decodeIsContextTagWithLength22222 = (buffer, offset, tagNumber) => {
                      const result = decodeTagNumber22222(buffer, offset);
                      return {
                        len: result.len,
                        value: isContextSpecific22222(buffer[offset]) && result.tagNumber === tagNumber
                      };
                    };
                    var decodeContextObjectId22222 = (buffer, offset, tagNumber) => {
                      const result = decodeIsContextTagWithLength22222(buffer, offset, tagNumber);
                      if (!result.value) {
                        return void 0;
                      }
                      const decodedValue = decodeObjectId22222(buffer, offset + result.len);
                      decodedValue.len = decodedValue.len + result.len;
                      return decodedValue;
                    };
                    var encodeBacnetCharacterString22222 = (buffer, value, encoding) => {
                      encoding = encoding || enums_default22222.CharacterStringEncoding.UTF_8;
                      buffer.buffer[buffer.offset++] = encoding;
                      const bufEncoded = import_iconv_lite22222.default.encode(value, getEncodingType22222(encoding));
                      buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                    };
                    var encodeApplicationCharacterString22222 = (buffer, value, encoding) => {
                      const tmp = getBuffer22222();
                      encodeBacnetCharacterString22222(tmp, value, encoding);
                      encodeTag22222(buffer, enums_default22222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                      buffer.offset += tmp.offset;
                    };
                    var encodeContextCharacterString22222 = (buffer, tagNumber, value, encoding) => {
                      const tmp = getBuffer22222();
                      encodeBacnetCharacterString22222(tmp, value, encoding);
                      encodeTag22222(buffer, tagNumber, true, tmp.offset);
                      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                      buffer.offset += tmp.offset;
                    };
                    var encode332222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                      encodeContextObjectId22222(buffer, 0, objectId.type, objectId.instance);
                      encodeContextEnumerated22222(buffer, 1, propertyId);
                      if (arrayIndex !== ASN1_ARRAY_ALL22222) {
                        encodeContextUnsigned22222(buffer, 2, arrayIndex);
                      }
                      encodeOpeningTag22222(buffer, 3);
                      values.forEach((value) => {
                        bacappEncodeApplicationData22222(buffer, value);
                      });
                      encodeClosingTag22222(buffer, 3);
                    };
                    var decode332222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let value = {};
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      value.objectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.property = { id: decodedValue.value };
                      if (len < apduLen && decodeIsContextTag22222(buffer, offset + len, 2)) {
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.property.index = decodedValue.value;
                      } else {
                        value.property.index = ASN1_ARRAY_ALL22222;
                      }
                      const values = [];
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 3)) {
                        return void 0;
                      }
                      len++;
                      while (apduLen - len > 1) {
                        result = bacappDecodeApplicationData22222(
                          buffer,
                          offset + len,
                          apduLen + offset,
                          value.objectId.type,
                          value.property.id
                        );
                        if (!result) {
                          return void 0;
                        }
                        len += result.len;
                        delete result.len;
                        values.push(result);
                      }
                      value.values = values;
                      if (!decodeIsClosingTagNumber22222(buffer, offset + len, 3)) {
                        return void 0;
                      }
                      len++;
                      value.len = len;
                      return value;
                    };
                    var alarm_acknowledge_exports22222 = {};
                    __export22222(alarm_acknowledge_exports22222, {
                      decode: () => decode2102222,
                      encode: () => encode2102222
                    });
                    var encode2102222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                      encodeContextUnsigned22222(buffer, 0, ackProcessId);
                      encodeContextObjectId22222(
                        buffer,
                        1,
                        eventObjectId.type,
                        eventObjectId.instance
                      );
                      encodeContextEnumerated22222(buffer, 2, eventStateAcknowledged);
                      bacappEncodeContextTimestamp22222(buffer, 3, eventTimeStamp);
                      encodeContextCharacterString22222(buffer, 4, ackSource);
                      bacappEncodeContextTimestamp22222(buffer, 5, ackTimeStamp);
                    };
                    var decode2102222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let value = {};
                      let result;
                      let decodedValue;
                      let date;
                      let time;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.acknowledgedProcessId = decodedValue.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      value.eventObjectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.eventStateAcknowledged = decodedValue.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber === 0) {
                        decodedValue = decodeBacnetTime22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.eventTimeStamp = decodedValue.value;
                      } else if (result.tagNumber === 1) {
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.eventTimeStamp = decodedValue.value;
                      } else if (result.tagNumber === 2) {
                        date = decodeApplicationDate22222(buffer, offset + len);
                        len += date.len;
                        date = date.value.value;
                        time = decodeApplicationTime22222(buffer, offset + len);
                        len += time.len;
                        time = time.value.value;
                        value.eventTimeStamp = new Date(
                          date.getFullYear(),
                          date.getMonth(),
                          date.getDate(),
                          time.getHours(),
                          time.getMinutes(),
                          time.getSeconds(),
                          time.getMilliseconds()
                        );
                        len++;
                      }
                      len++;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeCharacterString22222(
                        buffer,
                        offset + len,
                        apduLen - (offset + len),
                        result.value
                      );
                      value.acknowledgeSource = decodedValue.value;
                      len += decodedValue.len;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber === 0) {
                        decodedValue = decodeBacnetTime22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.acknowledgeTimeStamp = decodedValue.value;
                      } else if (result.tagNumber === 1) {
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.acknowledgeTimeStamp = decodedValue.value;
                      } else if (result.tagNumber === 2) {
                        date = decodeApplicationDate22222(buffer, offset + len);
                        len += date.len;
                        date = date.value.value;
                        time = decodeApplicationTime22222(buffer, offset + len);
                        len += time.len;
                        time = time.value.value;
                        value.acknowledgeTimeStamp = new Date(
                          date.getFullYear(),
                          date.getMonth(),
                          date.getDate(),
                          time.getHours(),
                          time.getMinutes(),
                          time.getSeconds(),
                          time.getMilliseconds()
                        );
                        len++;
                      }
                      len++;
                      value.len = len;
                      return value;
                    };
                    var alarm_summary_exports22222 = {};
                    __export22222(alarm_summary_exports22222, {
                      decode: () => decode342222,
                      encode: () => encode342222
                    });
                    var encode342222 = (buffer, alarms) => {
                      alarms.forEach((alarm) => {
                        encodeContextObjectId22222(
                          buffer,
                          12,
                          alarm.objectId.type,
                          alarm.objectId.instance
                        );
                        encodeContextEnumerated22222(buffer, 9, alarm.alarmState);
                        encodeContextBitstring22222(buffer, 8, alarm.acknowledgedTransitions);
                      });
                    };
                    var decode342222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      const alarms = [];
                      while (apduLen - 3 - len > 0) {
                        let value = {};
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeObjectId22222(buffer, offset + len);
                        len += decodedValue.len;
                        value.objectId = {
                          type: decodedValue.objectType,
                          instance: decodedValue.instance
                        };
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.alarmState = decodedValue.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeBitstring22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.acknowledgedTransitions = decodedValue.value;
                        alarms.push(value);
                      }
                      return {
                        len,
                        alarms
                      };
                    };
                    var atomic_read_file_exports22222 = {};
                    __export22222(atomic_read_file_exports22222, {
                      decode: () => decode422222,
                      decodeAcknowledge: () => decodeAcknowledge82222,
                      encode: () => encode422222,
                      encodeAcknowledge: () => encodeAcknowledge92222
                    });
                    var encode422222 = (buffer, isStream, objectId, position, count) => {
                      encodeApplicationObjectId22222(buffer, objectId.type, objectId.instance);
                      if (isStream) {
                        encodeOpeningTag22222(buffer, 0);
                        encodeApplicationSigned22222(buffer, position);
                        encodeApplicationUnsigned22222(buffer, count);
                        encodeClosingTag22222(buffer, 0);
                      } else {
                        encodeOpeningTag22222(buffer, 1);
                        encodeApplicationSigned22222(buffer, position);
                        encodeApplicationUnsigned22222(buffer, count);
                        encodeClosingTag22222(buffer, 1);
                      }
                    };
                    var decode422222 = (buffer, offset) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let isStream = true;
                      let objectId = {};
                      let position = -1;
                      let count = 0;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 12) {
                        return void 0;
                      }
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                      if (decodeIsOpeningTagNumber22222(buffer, offset + len, 0)) {
                        isStream = true;
                        len++;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 3) {
                          return void 0;
                        }
                        decodedValue = decodeSigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        position = decodedValue.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 2) {
                          return void 0;
                        }
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        count = decodedValue.value;
                        if (!decodeIsClosingTagNumber22222(buffer, offset + len, 0)) {
                          return void 0;
                        }
                        len++;
                      } else if (decodeIsOpeningTagNumber22222(buffer, offset + len, 1)) {
                        isStream = false;
                        len++;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 3) {
                          return void 0;
                        }
                        decodedValue = decodeSigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        position = decodedValue.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 2) {
                          return void 0;
                        }
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        count = decodedValue.value;
                        if (!decodeIsClosingTagNumber22222(buffer, offset + len, 1)) {
                          return void 0;
                        }
                        len++;
                      } else {
                        return void 0;
                      }
                      return {
                        len,
                        isStream,
                        objectId,
                        position,
                        count
                      };
                    };
                    var encodeAcknowledge92222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                      encodeApplicationBoolean22222(buffer, endOfFile);
                      if (isStream) {
                        encodeOpeningTag22222(buffer, 0);
                        encodeApplicationSigned22222(buffer, position);
                        encodeApplicationOctetString22222(buffer, blocks[0], 0, counts[0]);
                        encodeClosingTag22222(buffer, 0);
                      } else {
                        encodeOpeningTag22222(buffer, 1);
                        encodeApplicationSigned22222(buffer, position);
                        encodeApplicationUnsigned22222(buffer, blockCount);
                        for (let i = 0; i < blockCount; i++) {
                          encodeApplicationOctetString22222(buffer, blocks[i], 0, counts[i]);
                        }
                        encodeClosingTag22222(buffer, 1);
                      }
                    };
                    var decodeAcknowledge82222 = (buffer, offset, length = 0) => {
                      let len = length;
                      let result;
                      let decodedValue;
                      let endOfFile;
                      let isStream;
                      let position;
                      let targetBuffer;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 1) {
                        return void 0;
                      }
                      endOfFile = result.value > 0;
                      if (decodeIsOpeningTagNumber22222(buffer, offset + len, 0)) {
                        isStream = true;
                        len++;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 3) {
                          return void 0;
                        }
                        decodedValue = decodeSigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        position = decodedValue.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 6) {
                          return void 0;
                        }
                        targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                        len += result.value;
                        if (!decodeIsClosingTagNumber22222(buffer, offset + len, 0)) {
                          return void 0;
                        }
                        len++;
                      } else if (decodeIsOpeningTagNumber22222(buffer, offset + len, 1)) {
                        isStream = false;
                        throw new Error("NotImplemented");
                      } else {
                        return void 0;
                      }
                      return {
                        len,
                        endOfFile,
                        isStream,
                        position,
                        buffer: targetBuffer
                      };
                    };
                    var atomic_write_file_exports22222 = {};
                    __export22222(atomic_write_file_exports22222, {
                      decode: () => decode522222,
                      decodeAcknowledge: () => decodeAcknowledge222222,
                      encode: () => encode522222,
                      encodeAcknowledge: () => encodeAcknowledge222222
                    });
                    var encode522222 = (buffer, isStream, objectId, position, blocks) => {
                      encodeApplicationObjectId22222(buffer, objectId.type, objectId.instance);
                      if (isStream) {
                        encodeOpeningTag22222(buffer, 0);
                        encodeApplicationSigned22222(buffer, position);
                        encodeApplicationOctetString22222(buffer, blocks[0], 0, blocks[0].length);
                        encodeClosingTag22222(buffer, 0);
                      } else {
                        encodeOpeningTag22222(buffer, 1);
                        encodeApplicationSigned22222(buffer, position);
                        encodeApplicationUnsigned22222(buffer, blocks.length);
                        for (let i = 0; i < blocks.length; i++) {
                          encodeApplicationOctetString22222(
                            buffer,
                            blocks[i],
                            0,
                            blocks[i].length
                          );
                        }
                        encodeClosingTag22222(buffer, 1);
                      }
                    };
                    var decode522222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let isStream;
                      let position;
                      let blocks = [];
                      let blockCount;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 12) {
                        return void 0;
                      }
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      let objectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      if (decodeIsOpeningTagNumber22222(buffer, offset + len, 0)) {
                        isStream = true;
                        len++;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 3) {
                          return void 0;
                        }
                        decodedValue = decodeSigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        position = decodedValue.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 6) {
                          return void 0;
                        }
                        decodedValue = decodeOctetString22222(
                          buffer,
                          offset + len,
                          apduLen,
                          0,
                          result.value
                        );
                        len += decodedValue.len;
                        blocks.push(decodedValue.value);
                        if (!decodeIsClosingTagNumber22222(buffer, offset + len, 0)) {
                          return void 0;
                        }
                        len++;
                      } else if (decodeIsOpeningTagNumber22222(buffer, offset + len, 1)) {
                        isStream = false;
                        len++;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 3) {
                          return void 0;
                        }
                        decodedValue = decodeSigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        position = decodedValue.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 2) {
                          return void 0;
                        }
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        blockCount = decodedValue.value;
                        for (let i = 0; i < blockCount; i++) {
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber !== 6) {
                            return void 0;
                          }
                          decodedValue = decodeOctetString22222(
                            buffer,
                            offset + len,
                            apduLen,
                            0,
                            result.value
                          );
                          len += decodedValue.len;
                          blocks.push(decodedValue.value);
                        }
                        if (!decodeIsClosingTagNumber22222(buffer, offset + len, 1)) {
                          return void 0;
                        }
                        len++;
                      } else {
                        return void 0;
                      }
                      return {
                        len,
                        isStream,
                        objectId,
                        position,
                        blocks
                      };
                    };
                    var encodeAcknowledge222222 = (buffer, isStream, position) => {
                      if (isStream) {
                        encodeContextSigned22222(buffer, 0, position);
                      } else {
                        encodeContextSigned22222(buffer, 1, position);
                      }
                    };
                    var decodeAcknowledge222222 = (buffer, offset, length = 0) => {
                      let len = length;
                      let isStream = false;
                      let position = 0;
                      let decodedValue;
                      const result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber === 0) {
                        isStream = true;
                      } else if (result.tagNumber === 1) {
                        isStream = false;
                      } else {
                        return void 0;
                      }
                      decodedValue = decodeSigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      position = decodedValue.value;
                      return {
                        len,
                        isStream,
                        position
                      };
                    };
                    var cov_notify_exports22222 = {};
                    __export22222(cov_notify_exports22222, {
                      decode: () => decode622222,
                      encode: () => encode622222
                    });
                    var encode622222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                      encodeContextUnsigned22222(buffer, 0, subscriberProcessId);
                      encodeContextObjectId22222(
                        buffer,
                        1,
                        8,
                        initiatingDeviceId
                      );
                      encodeContextObjectId22222(
                        buffer,
                        2,
                        monitoredObjectId.type,
                        monitoredObjectId.instance
                      );
                      encodeContextUnsigned22222(buffer, 3, timeRemaining);
                      encodeOpeningTag22222(buffer, 4);
                      values.forEach((value) => {
                        encodeContextEnumerated22222(buffer, 0, value.property.id);
                        if (value.property.index === ASN1_ARRAY_ALL22222) {
                          encodeContextUnsigned22222(buffer, 1, value.property.index);
                        }
                        encodeOpeningTag22222(buffer, 2);
                        value.value.forEach((v) => {
                          bacappEncodeApplicationData22222(buffer, v);
                        });
                        encodeClosingTag22222(buffer, 2);
                        if (value.priority === ASN1_NO_PRIORITY22222) {
                          encodeContextUnsigned22222(buffer, 3, value.priority);
                        }
                      });
                      encodeClosingTag22222(buffer, 4);
                    };
                    var decode622222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      const subscriberProcessId = decodedValue.value;
                      if (!decodeIsContextTag22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      const initiatingDeviceId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      if (!decodeIsContextTag22222(buffer, offset + len, 2)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      const monitoredObjectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      if (!decodeIsContextTag22222(buffer, offset + len, 3)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      const timeRemaining = decodedValue.value;
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 4)) {
                        return void 0;
                      }
                      len++;
                      const values = [];
                      while (apduLen - len > 1 && !decodeIsClosingTagNumber22222(buffer, offset + len, 4)) {
                        let newEntry = {};
                        newEntry.property = {};
                        if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                          return void 0;
                        }
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        newEntry.property.id = decodedValue.value;
                        if (decodeIsContextTag22222(buffer, offset + len, 1)) {
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          newEntry.property.index = decodedValue.value;
                        } else {
                          newEntry.property.index = ASN1_ARRAY_ALL22222;
                        }
                        if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 2)) {
                          return void 0;
                        }
                        len++;
                        const properties = [];
                        while (apduLen - len > 1 && !decodeIsClosingTagNumber22222(buffer, offset + len, 2)) {
                          decodedValue = bacappDecodeApplicationData22222(
                            buffer,
                            offset + len,
                            apduLen + offset,
                            monitoredObjectId.type,
                            newEntry.property.id
                          );
                          if (!decodedValue) {
                            return void 0;
                          }
                          len += decodedValue.len;
                          delete decodedValue.len;
                          properties.push(decodedValue);
                        }
                        newEntry.value = properties;
                        len++;
                        if (decodeIsContextTag22222(buffer, offset + len, 3)) {
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          newEntry.priority = decodedValue.value;
                        } else {
                          newEntry.priority = ASN1_NO_PRIORITY22222;
                        }
                        values.push(newEntry);
                      }
                      return {
                        len,
                        subscriberProcessId,
                        initiatingDeviceId,
                        monitoredObjectId,
                        timeRemaining,
                        values
                      };
                    };
                    var create_object_exports22222 = {};
                    __export22222(create_object_exports22222, {
                      decode: () => decode722222,
                      encode: () => encode722222,
                      encodeAcknowledge: () => encodeAcknowledge322222
                    });
                    var encode722222 = (buffer, objectId, values) => {
                      encodeOpeningTag22222(buffer, 0);
                      encodeContextObjectId22222(buffer, 1, objectId.type, objectId.instance);
                      encodeClosingTag22222(buffer, 0);
                      encodeOpeningTag22222(buffer, 1);
                      values.forEach((propertyValue) => {
                        encodeContextEnumerated22222(buffer, 0, propertyValue.property.id);
                        if (propertyValue.property.index !== ASN1_ARRAY_ALL22222) {
                          encodeContextUnsigned22222(buffer, 1, propertyValue.property.index);
                        }
                        encodeOpeningTag22222(buffer, 2);
                        propertyValue.value.forEach((value) => {
                          bacappEncodeApplicationData22222(buffer, value);
                        });
                        encodeClosingTag22222(buffer, 2);
                        if (propertyValue.priority !== ASN1_NO_PRIORITY22222) {
                          encodeContextUnsigned22222(buffer, 3, propertyValue.priority);
                        }
                      });
                      encodeClosingTag22222(buffer, 1);
                    };
                    var decode722222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let objectId;
                      const valueList = [];
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber === 0 && apduLen > len) {
                        apduLen -= len;
                        if (apduLen < 4) {
                          return void 0;
                        }
                        decodedValue = decodeContextObjectId22222(buffer, offset + len, 1);
                        len += decodedValue.len;
                        objectId = {
                          type: decodedValue.objectType,
                          instance: decodedValue.instance
                        };
                      } else {
                        return void 0;
                      }
                      if (decodeIsClosingTag22222(buffer, offset + len)) {
                        len++;
                      }
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      len++;
                      while (apduLen - len > 1) {
                        let newEntry = {};
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 0) {
                          return void 0;
                        }
                        decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        let propertyId = decodedValue.value;
                        let arraIndex = ASN1_ARRAY_ALL22222;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber === 1) {
                          decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          arraIndex += decodedValue.value;
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                        }
                        newEntry.property = { id: propertyId, index: arraIndex };
                        if (result.tagNumber === 2 && decodeIsOpeningTag22222(buffer, offset + len - 1)) {
                          const values = [];
                          while (!decodeIsClosingTag22222(buffer, offset + len)) {
                            decodedValue = bacappDecodeApplicationData22222(
                              buffer,
                              offset + len,
                              apduLen + offset,
                              objectId.type,
                              propertyId
                            );
                            if (!decodedValue) {
                              return void 0;
                            }
                            len += decodedValue.len;
                            delete decodedValue.len;
                            values.push(decodedValue);
                          }
                          len++;
                          newEntry.value = values;
                        } else {
                          return void 0;
                        }
                        valueList.push(newEntry);
                      }
                      if (!decodeIsClosingTagNumber22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      len++;
                      return {
                        len,
                        objectId,
                        values: valueList
                      };
                    };
                    var encodeAcknowledge322222 = (buffer, objectId) => {
                      encodeApplicationObjectId22222(buffer, objectId.type, objectId.instance);
                    };
                    var delete_object_exports22222 = {};
                    __export22222(delete_object_exports22222, {
                      decode: () => decode822222,
                      encode: () => encode822222
                    });
                    var decode822222 = (buffer, offset, apduLen) => {
                      const result = decodeTagNumberAndValue22222(buffer, offset);
                      if (result.tagNumber !== 12) {
                        return void 0;
                      }
                      let len = 1;
                      const value = decodeObjectId22222(buffer, offset + len);
                      len += value.len;
                      if (len !== apduLen) {
                        return void 0;
                      }
                      value.len = len;
                      return value;
                    };
                    var encode822222 = (buffer, objectId) => {
                      encodeApplicationObjectId22222(buffer, objectId.type, objectId.instance);
                    };
                    var device_communication_control_exports22222 = {};
                    __export22222(device_communication_control_exports22222, {
                      decode: () => decode922222,
                      encode: () => encode922222
                    });
                    var encode922222 = (buffer, timeDuration, enableDisable, password) => {
                      if (timeDuration > 0) {
                        encodeContextUnsigned22222(buffer, 0, timeDuration);
                      }
                      encodeContextEnumerated22222(buffer, 1, enableDisable);
                      if (password && password !== "") {
                        encodeContextCharacterString22222(buffer, 2, password);
                      }
                    };
                    var decode922222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let value = {};
                      let decodedValue;
                      let result;
                      if (decodeIsContextTag22222(buffer, offset + len, 0)) {
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        value.timeDuration = decodedValue.value;
                        len += decodedValue.len;
                      }
                      if (!decodeIsContextTag22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      value.enableDisable = decodedValue.value;
                      len += decodedValue.len;
                      if (len < apduLen) {
                        if (!decodeIsContextTag22222(buffer, offset + len, 2)) {
                          return void 0;
                        }
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeCharacterString22222(
                          buffer,
                          offset + len,
                          apduLen - (offset + len),
                          result.value
                        );
                        value.password = decodedValue.value;
                        len += decodedValue.len;
                      }
                      value.len = len;
                      return value;
                    };
                    var error_exports22222 = {};
                    __export22222(error_exports22222, {
                      buildMessage: () => buildMessage22222,
                      decode: () => decode1022222,
                      encode: () => encode1022222
                    });
                    var encode1022222 = (buffer, errorClass, errorCode) => {
                      encodeApplicationEnumerated22222(buffer, errorClass);
                      encodeApplicationEnumerated22222(buffer, errorCode);
                    };
                    var decode1022222 = (buffer, offset) => {
                      const orgOffset = offset;
                      let result;
                      result = decodeTagNumberAndValue22222(buffer, offset);
                      offset += result.len;
                      const errorClass = decodeEnumerated22222(buffer, offset, result.value);
                      offset += errorClass.len;
                      result = decodeTagNumberAndValue22222(buffer, offset);
                      offset += result.len;
                      const errorCode = decodeEnumerated22222(buffer, offset, result.value);
                      offset += errorClass.len;
                      return {
                        len: offset - orgOffset,
                        class: errorClass.value,
                        code: errorCode.value
                      };
                    };
                    var buildMessage22222 = function(result) {
                      return "BacnetError Class: " + ErrorClassName22222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName22222[result.code] + " (" + result.code + ")";
                    };
                    var event_information_exports22222 = {};
                    __export22222(event_information_exports22222, {
                      decode: () => decode1122222,
                      encode: () => encode1122222
                    });
                    var encode1122222 = (buffer, events, moreEvents) => {
                      encodeOpeningTag22222(buffer, 0);
                      events.forEach((event) => {
                        encodeContextObjectId22222(
                          buffer,
                          0,
                          event.objectId.type,
                          event.objectId.instance
                        );
                        encodeContextEnumerated22222(buffer, 1, event.eventState);
                        encodeContextBitstring22222(buffer, 2, event.acknowledgedTransitions);
                        encodeOpeningTag22222(buffer, 3);
                        for (let i = 0; i < 3; i++) {
                          encodeApplicationDate22222(buffer, event.eventTimeStamps[i]);
                          encodeApplicationTime22222(buffer, event.eventTimeStamps[i]);
                        }
                        encodeClosingTag22222(buffer, 3);
                        encodeContextEnumerated22222(buffer, 4, event.notifyType);
                        encodeContextBitstring22222(buffer, 5, event.eventEnable);
                        encodeOpeningTag22222(buffer, 6);
                        for (let i = 0; i < 3; i++) {
                          encodeApplicationUnsigned22222(buffer, event.eventPriorities[i]);
                        }
                        encodeClosingTag22222(buffer, 6);
                      });
                      encodeClosingTag22222(buffer, 0);
                      encodeContextBoolean22222(buffer, 1, moreEvents);
                    };
                    var decode1122222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      len++;
                      const alarms = [];
                      let moreEvents;
                      while (apduLen - 3 - len > 0) {
                        let value = {};
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeObjectId22222(buffer, offset + len);
                        len += decodedValue.len;
                        value.objectId = {
                          type: decodedValue.objectType,
                          instance: decodedValue.instance
                        };
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.eventState = decodedValue.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeBitstring22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.acknowledgedTransitions = decodedValue.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        value.eventTimeStamps = [];
                        for (let i = 0; i < 3; i++) {
                          if (result.tagNumber !== 0) {
                            decodedValue = decodeApplicationDate22222(buffer, offset + len);
                            len += decodedValue.len;
                            const date = decodedValue.value.value;
                            decodedValue = decodeApplicationTime22222(buffer, offset + len);
                            len += decodedValue.len;
                            const time = decodedValue.value.value;
                            value.eventTimeStamps[i] = new Date(
                              date.getFullYear(),
                              date.getMonth(),
                              date.getDate(),
                              time.getHours(),
                              time.getMinutes(),
                              time.getSeconds(),
                              time.getMilliseconds()
                            );
                          } else {
                            len += result.value;
                          }
                        }
                        len++;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.notifyType = decodedValue.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeBitstring22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.eventEnable = decodedValue.value;
                        len++;
                        value.eventPriorities = [];
                        for (let i = 0; i < 3; i++) {
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.eventPriorities[i] = decodedValue.value;
                        }
                        len++;
                        alarms.push(value);
                      }
                      moreEvents = buffer[apduLen - 1] === 1;
                      return {
                        len,
                        alarms,
                        moreEvents
                      };
                    };
                    var event_notify_data_exports22222 = {};
                    __export22222(event_notify_data_exports22222, {
                      decode: () => decode1222222,
                      encode: () => encode1222222
                    });
                    var encode1222222 = (buffer, data) => {
                      encodeContextUnsigned22222(buffer, 0, data.processId);
                      encodeContextObjectId22222(
                        buffer,
                        1,
                        data.initiatingObjectId.type,
                        data.initiatingObjectId.instance
                      );
                      encodeContextObjectId22222(
                        buffer,
                        2,
                        data.eventObjectId.type,
                        data.eventObjectId.instance
                      );
                      bacappEncodeContextTimestamp22222(buffer, 3, data.timeStamp);
                      encodeContextUnsigned22222(buffer, 4, data.notificationClass);
                      encodeContextUnsigned22222(buffer, 5, data.priority);
                      encodeContextEnumerated22222(buffer, 6, data.eventType);
                      if (data.messageText && data.messageText !== "") {
                        encodeContextCharacterString22222(buffer, 7, data.messageText);
                      }
                      encodeContextEnumerated22222(buffer, 8, data.notifyType);
                      switch (data.notifyType) {
                        case 0:
                        case 1:
                          encodeContextBoolean22222(buffer, 9, data.ackRequired);
                          encodeContextEnumerated22222(buffer, 10, data.fromState);
                          break;
                        default:
                          break;
                      }
                      encodeContextEnumerated22222(buffer, 11, data.toState);
                      switch (data.notifyType) {
                        case 0:
                        case 1:
                          encodeOpeningTag22222(buffer, 12);
                          switch (data.eventType) {
                            case 0:
                              encodeOpeningTag22222(buffer, 0);
                              encodeContextBitstring22222(
                                buffer,
                                0,
                                data.changeOfBitstringReferencedBitString
                              );
                              encodeContextBitstring22222(
                                buffer,
                                1,
                                data.changeOfBitstringStatusFlags
                              );
                              encodeClosingTag22222(buffer, 0);
                              break;
                            case 1:
                              encodeOpeningTag22222(buffer, 1);
                              encodeOpeningTag22222(buffer, 0);
                              bacappEncodePropertyState22222(buffer, data.changeOfStateNewState);
                              encodeClosingTag22222(buffer, 0);
                              encodeContextBitstring22222(
                                buffer,
                                1,
                                data.changeOfStateStatusFlags
                              );
                              encodeClosingTag22222(buffer, 1);
                              break;
                            case 2:
                              encodeOpeningTag22222(buffer, 2);
                              encodeOpeningTag22222(buffer, 0);
                              switch (data.changeOfValueTag) {
                                case 0:
                                  encodeContextReal22222(
                                    buffer,
                                    1,
                                    data.changeOfValueChangeValue
                                  );
                                  break;
                                case 1:
                                  encodeContextBitstring22222(
                                    buffer,
                                    0,
                                    data.changeOfValueChangedBits
                                  );
                                  break;
                                default:
                                  throw new Error("NotImplemented");
                              }
                              encodeClosingTag22222(buffer, 0);
                              encodeContextBitstring22222(
                                buffer,
                                1,
                                data.changeOfValueStatusFlags
                              );
                              encodeClosingTag22222(buffer, 2);
                              break;
                            case 4:
                              encodeOpeningTag22222(buffer, 4);
                              encodeContextReal22222(buffer, 0, data.floatingLimitReferenceValue);
                              encodeContextBitstring22222(
                                buffer,
                                1,
                                data.floatingLimitStatusFlags
                              );
                              encodeContextReal22222(buffer, 2, data.floatingLimitSetPointValue);
                              encodeContextReal22222(buffer, 3, data.floatingLimitErrorLimit);
                              encodeClosingTag22222(buffer, 4);
                              break;
                            case 5:
                              encodeOpeningTag22222(buffer, 5);
                              encodeContextReal22222(buffer, 0, data.outOfRangeExceedingValue);
                              encodeContextBitstring22222(buffer, 1, data.outOfRangeStatusFlags);
                              encodeContextReal22222(buffer, 2, data.outOfRangeDeadband);
                              encodeContextReal22222(buffer, 3, data.outOfRangeExceededLimit);
                              encodeClosingTag22222(buffer, 5);
                              break;
                            case 8:
                              encodeOpeningTag22222(buffer, 8);
                              encodeContextEnumerated22222(
                                buffer,
                                0,
                                data.changeOfLifeSafetyNewState
                              );
                              encodeContextEnumerated22222(
                                buffer,
                                1,
                                data.changeOfLifeSafetyNewMode
                              );
                              encodeContextBitstring22222(
                                buffer,
                                2,
                                data.changeOfLifeSafetyStatusFlags
                              );
                              encodeContextEnumerated22222(
                                buffer,
                                3,
                                data.changeOfLifeSafetyOperationExpected
                              );
                              encodeClosingTag22222(buffer, 8);
                              break;
                            case 10:
                              encodeOpeningTag22222(buffer, 10);
                              bacappEncodeContextDeviceObjPropertyRef22222(
                                buffer,
                                0,
                                data.bufferReadyBufferProperty
                              );
                              encodeContextUnsigned22222(
                                buffer,
                                1,
                                data.bufferReadyPreviousNotification
                              );
                              encodeContextUnsigned22222(
                                buffer,
                                2,
                                data.bufferReadyCurrentNotification
                              );
                              encodeClosingTag22222(buffer, 10);
                              break;
                            case 11:
                              encodeOpeningTag22222(buffer, 11);
                              encodeContextUnsigned22222(
                                buffer,
                                0,
                                data.unsignedRangeExceedingValue
                              );
                              encodeContextBitstring22222(
                                buffer,
                                1,
                                data.unsignedRangeStatusFlags
                              );
                              encodeContextUnsigned22222(
                                buffer,
                                2,
                                data.unsignedRangeExceededLimit
                              );
                              encodeClosingTag22222(buffer, 11);
                              break;
                            case 9:
                            case 3:
                              throw new Error("NotImplemented");
                            default:
                              throw new Error("NotImplemented");
                          }
                          encodeClosingTag22222(buffer, 12);
                          break;
                        case 2:
                          throw new Error("NotImplemented");
                        default:
                          break;
                      }
                    };
                    var decode1222222 = (buffer, offset) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let eventData = {};
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      eventData.processId = decodedValue.value;
                      if (!decodeIsContextTag22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      eventData.initiatingObjectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      if (!decodeIsContextTag22222(buffer, offset + len, 2)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      eventData.eventObjectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      if (!decodeIsContextTag22222(buffer, offset + len, 3)) {
                        return void 0;
                      }
                      len += 2;
                      decodedValue = decodeApplicationDate22222(buffer, offset + len);
                      len += decodedValue.len;
                      const date = decodedValue.value.value;
                      decodedValue = decodeApplicationTime22222(buffer, offset + len);
                      len += decodedValue.len;
                      const time = decodedValue.value.value;
                      eventData.timeStamp = new Date(
                        date.getFullYear(),
                        date.getMonth(),
                        date.getDate(),
                        time.getHours(),
                        time.getMinutes(),
                        time.getSeconds(),
                        time.getMilliseconds()
                      );
                      len += 2;
                      if (!decodeIsContextTag22222(buffer, offset + len, 4)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      eventData.notificationClass = decodedValue.value;
                      if (!decodeIsContextTag22222(buffer, offset + len, 5)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      eventData.priority = decodedValue.value;
                      if (eventData.priority > 255) {
                        return void 0;
                      }
                      if (!decodeIsContextTag22222(buffer, offset + len, 6)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      eventData.eventType = decodedValue.value;
                      if (decodeIsContextTag22222(buffer, offset + len, 7)) {
                        decodedValue = decodeContextCharacterString22222(
                          buffer,
                          offset + len,
                          2e4,
                          7
                        );
                        len += decodedValue.len;
                        eventData.messageText = decodedValue.value;
                      }
                      if (!decodeIsContextTag22222(buffer, offset + len, 8)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      eventData.notifyType = decodedValue.value;
                      switch (eventData.notifyType) {
                        case 0:
                        case 1:
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned22222(buffer, offset + len, 1);
                          len += decodedValue.len;
                          eventData.ackRequired = decodedValue.value > 0;
                          if (!decodeIsContextTag22222(buffer, offset + len, 10)) {
                            return void 0;
                          }
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeEnumerated22222(
                            buffer,
                            offset + len,
                            result.value
                          );
                          len += decodedValue.len;
                          eventData.fromState = decodedValue.value;
                          break;
                        default:
                          break;
                      }
                      if (!decodeIsContextTag22222(buffer, offset + len, 11)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      eventData.toState = decodedValue.value;
                      eventData.len = len;
                      return eventData;
                    };
                    var get_enrollment_summary_exports22222 = {};
                    __export22222(get_enrollment_summary_exports22222, {
                      decode: () => decode1322222,
                      decodeAcknowledge: () => decodeAcknowledge322222,
                      encode: () => encode1322222,
                      encodeAcknowledge: () => encodeAcknowledge422222
                    });
                    var encode1322222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                      encodeContextEnumerated22222(buffer, 0, acknowledgmentFilter);
                      if (enrollmentFilter) {
                        encodeOpeningTag22222(buffer, 1);
                        encodeOpeningTag22222(buffer, 0);
                        encodeContextObjectId22222(
                          buffer,
                          0,
                          enrollmentFilter.objectId.type,
                          enrollmentFilter.objectId.instance
                        );
                        encodeClosingTag22222(buffer, 0);
                        encodeContextUnsigned22222(buffer, 1, enrollmentFilter.processId);
                        encodeClosingTag22222(buffer, 1);
                      }
                      if (eventStateFilter) {
                        encodeOpeningTag22222(buffer, 2);
                        encodeContextEnumerated22222(buffer, 0, eventStateFilter);
                        encodeClosingTag22222(buffer, 2);
                      }
                      if (eventTypeFilter) {
                        encodeOpeningTag22222(buffer, 3);
                        encodeContextEnumerated22222(buffer, 0, eventTypeFilter);
                        encodeClosingTag22222(buffer, 3);
                      }
                      if (priorityFilter) {
                        encodeOpeningTag22222(buffer, 4);
                        encodeContextUnsigned22222(buffer, 0, priorityFilter.min);
                        encodeContextUnsigned22222(buffer, 1, priorityFilter.max);
                        encodeClosingTag22222(buffer, 4);
                      }
                      if (notificationClassFilter) {
                        encodeOpeningTag22222(buffer, 5);
                        encodeContextUnsigned22222(buffer, 0, notificationClassFilter);
                        encodeClosingTag22222(buffer, 5);
                      }
                    };
                    var decode1322222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let value = {};
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.acknowledgmentFilter = decodedValue.value;
                      if (decodeIsContextTag22222(buffer, offset + len, 1)) {
                        len++;
                        value.enrollmentFilter = {};
                        if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                          return void 0;
                        }
                        len++;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeObjectId22222(buffer, offset + len);
                        len += decodedValue.len;
                        value.enrollmentFilter.objectId = {
                          type: decodedValue.objectType,
                          instance: decodedValue.instance
                        };
                        len++;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.enrollmentFilter.processId = decodedValue.value;
                        len++;
                      }
                      if (decodeIsContextTag22222(buffer, offset + len, 2)) {
                        len++;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.eventStateFilter = decodedValue.value;
                        len++;
                      }
                      if (decodeIsContextTag22222(buffer, offset + len, 3)) {
                        len++;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.eventTypeFilter = decodedValue.value;
                        len++;
                      }
                      if (decodeIsContextTag22222(buffer, offset + len, 4)) {
                        len++;
                        value.priorityFilter = {};
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.priorityFilter.min = decodedValue.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.priorityFilter.max = decodedValue.value;
                        len++;
                      }
                      if (decodeIsContextTag22222(buffer, offset + len, 5)) {
                        len++;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.notificationClassFilter = decodedValue.value;
                        len++;
                      }
                      value.len = len;
                      return value;
                    };
                    var encodeAcknowledge422222 = (buffer, enrollmentSummaries) => {
                      enrollmentSummaries.forEach((enrollmentSummary) => {
                        encodeApplicationObjectId22222(
                          buffer,
                          enrollmentSummary.objectId.type,
                          enrollmentSummary.objectId.instance
                        );
                        encodeApplicationEnumerated22222(buffer, enrollmentSummary.eventType);
                        encodeApplicationEnumerated22222(buffer, enrollmentSummary.eventState);
                        encodeApplicationUnsigned22222(buffer, enrollmentSummary.priority);
                        encodeApplicationUnsigned22222(
                          buffer,
                          enrollmentSummary.notificationClass
                        );
                      });
                    };
                    var decodeAcknowledge322222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      const enrollmentSummaries = [];
                      while (apduLen - len > 0) {
                        const enrollmentSummary = {};
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 12) {
                          return void 0;
                        }
                        result = decodeObjectId22222(buffer, offset + len);
                        len += result.len;
                        enrollmentSummary.objectId = {
                          type: result.objectType,
                          instance: result.instance
                        };
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 9) {
                          return void 0;
                        }
                        result = decodeEnumerated22222(buffer, offset + len, result.value);
                        len += result.len;
                        enrollmentSummary.eventType = result.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 9) {
                          return void 0;
                        }
                        result = decodeEnumerated22222(buffer, offset + len, result.value);
                        len += result.len;
                        enrollmentSummary.eventState = result.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 2) {
                          return void 0;
                        }
                        result = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += result.len;
                        enrollmentSummary.priority = result.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 2) {
                          return void 0;
                        }
                        result = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += result.len;
                        enrollmentSummary.notificationClass = result.value;
                        enrollmentSummaries.push(enrollmentSummary);
                      }
                      return {
                        enrollmentSummaries,
                        len
                      };
                    };
                    var get_event_information_exports22222 = {};
                    __export22222(get_event_information_exports22222, {
                      decode: () => decode1422222,
                      decodeAcknowledge: () => decodeAcknowledge422222,
                      encode: () => encode1422222,
                      encodeAcknowledge: () => encodeAcknowledge522222
                    });
                    var encode1422222 = (buffer, lastReceivedObjectId) => {
                      encodeContextObjectId22222(
                        buffer,
                        0,
                        lastReceivedObjectId.type,
                        lastReceivedObjectId.instance
                      );
                    };
                    var decode1422222 = (buffer, offset) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let value = {};
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      value.lastReceivedObjectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      value.len = len;
                      return value;
                    };
                    var encodeAcknowledge522222 = (buffer, events, moreEvents) => {
                      encodeOpeningTag22222(buffer, 0);
                      events.forEach((eventData) => {
                        encodeContextObjectId22222(
                          buffer,
                          0,
                          eventData.objectId.type,
                          eventData.objectId.instance
                        );
                        encodeContextEnumerated22222(buffer, 1, eventData.eventState);
                        encodeContextBitstring22222(buffer, 2, eventData.acknowledgedTransitions);
                        encodeOpeningTag22222(buffer, 3);
                        for (let i = 0; i < 3; i++) {
                          bacappEncodeTimestamp22222(buffer, eventData.eventTimeStamps[i]);
                        }
                        encodeClosingTag22222(buffer, 3);
                        encodeContextEnumerated22222(buffer, 4, eventData.notifyType);
                        encodeContextBitstring22222(buffer, 5, eventData.eventEnable);
                        encodeOpeningTag22222(buffer, 6);
                        for (let i = 0; i < 3; i++) {
                          encodeApplicationUnsigned22222(buffer, eventData.eventPriorities[i]);
                        }
                        encodeClosingTag22222(buffer, 6);
                      });
                      encodeClosingTag22222(buffer, 0);
                      encodeContextBoolean22222(buffer, 1, moreEvents);
                    };
                    var decodeAcknowledge422222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let value = {};
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      value.events = [];
                      while (apduLen - len > 3) {
                        let event = {};
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeObjectId22222(buffer, offset + len);
                        len += decodedValue.len;
                        event.objectId = {
                          type: decodedValue.objectType,
                          instance: decodedValue.instance
                        };
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        event.eventState = decodedValue.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeBitstring22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        event.acknowledgedTransitions = decodedValue.value;
                        if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 3)) {
                          return void 0;
                        }
                        len++;
                        event.eventTimeStamps = [];
                        for (let i = 0; i < 3; i++) {
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                          if (result.tagNumber === 0) {
                            decodedValue = decodeBacnetTime22222(
                              buffer,
                              offset + len,
                              result.value
                            );
                            len += decodedValue.len;
                            event.eventTimeStamps[i] = {
                              value: decodedValue.value,
                              type: 0
                              /* TIME */
                            };
                          } else if (result.tagNumber === 1) {
                            decodedValue = decodeUnsigned22222(
                              buffer,
                              offset + len,
                              result.value
                            );
                            len += decodedValue.len;
                            event.eventTimeStamps[i] = {
                              value: decodedValue.value,
                              type: 1
                              /* SEQUENCE_NUMBER */
                            };
                          } else if (result.tagNumber === 2) {
                            let date = decodeApplicationDate22222(
                              buffer,
                              offset + len
                            );
                            len += date.len;
                            date = date.value.value;
                            let time = decodeApplicationTime22222(
                              buffer,
                              offset + len
                            );
                            len += time.len;
                            time = time.value.value;
                            event.eventTimeStamps[i] = {
                              value: new Date(
                                date.getFullYear(),
                                date.getMonth(),
                                date.getDate(),
                                time.getHours(),
                                time.getMinutes(),
                                time.getSeconds(),
                                time.getMilliseconds()
                              ),
                              type: 2
                              /* DATETIME */
                            };
                            len++;
                          }
                        }
                        if (!decodeIsClosingTagNumber22222(buffer, offset + len, 3)) {
                          return void 0;
                        }
                        len++;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        event.notifyType = decodedValue.value;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeBitstring22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        event.eventEnable = decodedValue.value;
                        if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 6)) {
                          return void 0;
                        }
                        len++;
                        event.eventPriorities = [];
                        for (let i = 0; i < 3; i++) {
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          event.eventPriorities[i] = decodedValue.value;
                        }
                        if (!decodeIsClosingTagNumber22222(buffer, offset + len, 6)) {
                          return void 0;
                        }
                        len++;
                        value.events.push(event);
                      }
                      if (!decodeIsClosingTagNumber22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      value.moreEvents = buffer[offset + len] > 0;
                      len++;
                      value.len = len;
                      return value;
                    };
                    var i_am_exports22222 = {};
                    __export22222(i_am_exports22222, {
                      decode: () => decode1522222,
                      encode: () => encode1522222
                    });
                    var encode1522222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                      encodeApplicationObjectId22222(buffer, 8, deviceId);
                      encodeApplicationUnsigned22222(buffer, maxApdu);
                      encodeApplicationEnumerated22222(buffer, segmentation);
                      encodeApplicationUnsigned22222(buffer, vendorId);
                    };
                    var decode1522222 = (buffer, offset) => {
                      let result;
                      let apduLen = 0;
                      const orgOffset = offset;
                      result = decodeTagNumberAndValue22222(buffer, offset + apduLen);
                      apduLen += result.len;
                      if (result.tagNumber !== 12) {
                        return void 0;
                      }
                      result = decodeObjectId22222(buffer, offset + apduLen);
                      apduLen += result.len;
                      if (result.objectType !== 8) {
                        return void 0;
                      }
                      const deviceId = result.instance;
                      result = decodeTagNumberAndValue22222(buffer, offset + apduLen);
                      apduLen += result.len;
                      if (result.tagNumber !== 2) {
                        return void 0;
                      }
                      result = decodeUnsigned22222(buffer, offset + apduLen, result.value);
                      apduLen += result.len;
                      const maxApdu = result.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + apduLen);
                      apduLen += result.len;
                      if (result.tagNumber !== 9) {
                        return void 0;
                      }
                      result = decodeEnumerated22222(buffer, offset + apduLen, result.value);
                      apduLen += result.len;
                      if (result.value > 3) {
                        return void 0;
                      }
                      const segmentation = result.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + apduLen);
                      apduLen += result.len;
                      if (result.tagNumber !== 2) {
                        return void 0;
                      }
                      result = decodeUnsigned22222(buffer, offset + apduLen, result.value);
                      apduLen += result.len;
                      if (result.value > 65535) {
                        return void 0;
                      }
                      const vendorId = result.value;
                      return {
                        len: offset - orgOffset,
                        deviceId,
                        maxApdu,
                        segmentation,
                        vendorId
                      };
                    };
                    var i_have_exports22222 = {};
                    __export22222(i_have_exports22222, {
                      decode: () => decode1622222,
                      encode: () => encode1622222
                    });
                    var encode1622222 = (buffer, deviceId, objectId, objectName) => {
                      encodeApplicationObjectId22222(buffer, deviceId.type, deviceId.instance);
                      encodeApplicationObjectId22222(buffer, objectId.type, objectId.instance);
                      encodeApplicationCharacterString22222(buffer, objectName);
                    };
                    var decode1622222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let value = {};
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      value.deviceId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      value.objectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeCharacterString22222(
                        buffer,
                        offset + len,
                        apduLen - (offset + len),
                        result.value
                      );
                      len += decodedValue.len;
                      value.objectName = decodedValue.value;
                      value.len = len;
                      return value;
                    };
                    var life_safety_operation_exports22222 = {};
                    __export22222(life_safety_operation_exports22222, {
                      decode: () => decode1722222,
                      encode: () => encode1722222
                    });
                    var encode1722222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                      encodeContextUnsigned22222(buffer, 0, processId);
                      encodeContextCharacterString22222(buffer, 1, requestingSource);
                      encodeContextEnumerated22222(buffer, 2, operation);
                      encodeContextObjectId22222(
                        buffer,
                        3,
                        targetObjectId.type,
                        targetObjectId.instance
                      );
                    };
                    var decode1722222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let value = {};
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.processId = decodedValue.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeCharacterString22222(
                        buffer,
                        offset + len,
                        apduLen - (offset + len),
                        result.value
                      );
                      len += decodedValue.len;
                      value.requestingSource = decodedValue.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.operation = decodedValue.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      value.targetObjectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      value.len = len;
                      return value;
                    };
                    var private_transfer_exports22222 = {};
                    __export22222(private_transfer_exports22222, {
                      decode: () => decode1822222,
                      encode: () => encode1822222
                    });
                    var encode1822222 = (buffer, vendorId, serviceNumber, data) => {
                      encodeContextUnsigned22222(buffer, 0, vendorId);
                      encodeContextUnsigned22222(buffer, 1, serviceNumber);
                      encodeOpeningTag22222(buffer, 2);
                      for (let i = 0; i < data.length; i++) {
                        buffer.buffer[buffer.offset++] = data[i];
                      }
                      encodeClosingTag22222(buffer, 2);
                    };
                    var decode1822222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let value = {};
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.vendorId = decodedValue.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.serviceNumber = decodedValue.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      const size = apduLen - (offset + len + 1);
                      const data = [];
                      for (let i = 0; i < size; i++) {
                        data.push(buffer[offset + len++]);
                      }
                      value.data = data;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      value.len = len;
                      return value;
                    };
                    var read_property_exports22222 = {};
                    __export22222(read_property_exports22222, {
                      decode: () => decode1922222,
                      decodeAcknowledge: () => decodeAcknowledge522222,
                      encode: () => encode1922222,
                      encodeAcknowledge: () => encodeAcknowledge622222
                    });
                    var encode1922222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                      if (objectType <= ASN1_MAX_OBJECT22222) {
                        encodeContextObjectId22222(buffer, 0, objectType, objectInstance);
                      }
                      if (propertyId <= ASN1_MAX_PROPERTY_ID22222) {
                        encodeContextEnumerated22222(buffer, 1, propertyId);
                      }
                      if (arrayIndex !== ASN1_ARRAY_ALL22222) {
                        encodeContextUnsigned22222(
                          buffer,
                          2,
                          arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL22222
                        );
                      }
                    };
                    var decode1922222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      if (apduLen < 7) {
                        return void 0;
                      }
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      let objectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      let property = {};
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 1) {
                        return void 0;
                      }
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      property.id = decodedValue.value;
                      property.index = ASN1_ARRAY_ALL22222;
                      if (len < apduLen) {
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber === 2 && len < apduLen) {
                          decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          property.index = decodedValue.value;
                        } else {
                          return void 0;
                        }
                      }
                      if (len < apduLen) {
                        return void 0;
                      }
                      return {
                        len,
                        objectId,
                        property
                      };
                    };
                    var encodeAcknowledge622222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                      encodeContextObjectId22222(buffer, 0, objectId.type, objectId.instance);
                      encodeContextEnumerated22222(buffer, 1, propertyId);
                      if (arrayIndex !== ASN1_ARRAY_ALL22222) {
                        encodeContextUnsigned22222(buffer, 2, arrayIndex);
                      }
                      encodeOpeningTag22222(buffer, 3);
                      values.forEach((value) => {
                        bacappEncodeApplicationData22222(buffer, value);
                      });
                      encodeClosingTag22222(buffer, 3);
                    };
                    var decodeAcknowledge522222 = (buffer, offset, apduLen) => {
                      let result;
                      let decodedValue;
                      let objectId = {};
                      let property = {};
                      if (!decodeIsContextTag22222(buffer, offset, 0)) {
                        return void 0;
                      }
                      let len = 1;
                      result = decodeObjectId22222(buffer, offset + len);
                      len += result.len;
                      objectId.type = result.objectType;
                      objectId.instance = result.instance;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 1) {
                        return void 0;
                      }
                      result = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += result.len;
                      property.id = result.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      if (result.tagNumber === 2) {
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        property.index = decodedValue.value;
                      } else {
                        property.index = ASN1_ARRAY_ALL22222;
                      }
                      const values = [];
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 3)) {
                        return void 0;
                      }
                      len++;
                      while (apduLen - len > 1) {
                        result = bacappDecodeApplicationData22222(
                          buffer,
                          offset + len,
                          apduLen + offset,
                          objectId.type,
                          property.id
                        );
                        if (!result) {
                          return void 0;
                        }
                        len += result.len;
                        delete result.len;
                        values.push(result);
                      }
                      if (!decodeIsClosingTagNumber22222(buffer, offset + len, 3)) {
                        return void 0;
                      }
                      len++;
                      return {
                        len,
                        objectId,
                        property,
                        values
                      };
                    };
                    var read_property_multiple_exports22222 = {};
                    __export22222(read_property_multiple_exports22222, {
                      decode: () => decode2022222,
                      decodeAcknowledge: () => decodeAcknowledge622222,
                      encode: () => encode2022222,
                      encodeAcknowledge: () => encodeAcknowledge722222
                    });
                    var encode2022222 = (buffer, properties) => {
                      properties.forEach((value) => {
                        encodeReadAccessSpecification22222(buffer, value);
                      });
                    };
                    var decode2022222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      const values = [];
                      while (apduLen - len > 0) {
                        const decodedValue = decodeReadAccessSpecification22222(
                          buffer,
                          offset + len,
                          apduLen - len
                        );
                        if (!decodedValue) {
                          return void 0;
                        }
                        len += decodedValue.len;
                        values.push(decodedValue.value);
                      }
                      return {
                        len,
                        properties: values
                      };
                    };
                    var encodeAcknowledge722222 = (buffer, values) => {
                      values.forEach((value) => {
                        encodeReadAccessResult22222(buffer, value);
                      });
                    };
                    var decodeAcknowledge622222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      const values = [];
                      while (apduLen - len > 0) {
                        const result = decodeReadAccessResult22222(
                          buffer,
                          offset + len,
                          apduLen - len
                        );
                        if (!result || result === -1) {
                          return void 0;
                        }
                        len += result.len;
                        values.push(result.value);
                      }
                      return {
                        len,
                        values
                      };
                    };
                    var read_range_exports22222 = {};
                    __export22222(read_range_exports22222, {
                      decode: () => decode2122222,
                      decodeAcknowledge: () => decodeAcknowledge722222,
                      encode: () => encode2122222,
                      encodeAcknowledge: () => encodeAcknowledge822222
                    });
                    var encode2122222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                      encodeContextObjectId22222(buffer, 0, objectId.type, objectId.instance);
                      encodeContextEnumerated22222(buffer, 1, propertyId);
                      if (arrayIndex !== ASN1_ARRAY_ALL22222) {
                        encodeContextUnsigned22222(buffer, 2, arrayIndex);
                      }
                      switch (requestType) {
                        case 0:
                          encodeOpeningTag22222(buffer, 3);
                          encodeApplicationUnsigned22222(buffer, position);
                          encodeApplicationSigned22222(buffer, count);
                          encodeClosingTag22222(buffer, 3);
                          break;
                        case 1:
                          encodeOpeningTag22222(buffer, 6);
                          encodeApplicationUnsigned22222(buffer, position);
                          encodeApplicationSigned22222(buffer, count);
                          encodeClosingTag22222(buffer, 6);
                          break;
                        case 2:
                          encodeOpeningTag22222(buffer, 7);
                          encodeApplicationDate22222(buffer, time);
                          encodeApplicationTime22222(buffer, time);
                          encodeApplicationSigned22222(buffer, count);
                          encodeClosingTag22222(buffer, 7);
                          break;
                        default:
                          break;
                      }
                    };
                    var decode2122222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let requestType;
                      let position;
                      let time;
                      let count;
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      decodedValue = decodeObjectId22222(buffer, offset + len, 0);
                      len += decodedValue.len;
                      let objectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      let property = {};
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 1) {
                        return void 0;
                      }
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      property.id = decodedValue.value;
                      if (len < apduLen && decodeIsContextTag22222(buffer, offset + len, 2)) {
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        property.index = decodedValue.value;
                      } else {
                        property.index = ASN1_ARRAY_ALL22222;
                      }
                      if (len < apduLen) {
                        result = decodeTagNumber22222(buffer, offset + len);
                        len += result.len;
                        switch (result.tagNumber) {
                          case 3:
                            requestType = 0;
                            result = decodeTagNumberAndValue22222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeUnsigned22222(
                              buffer,
                              offset + len,
                              result.value
                            );
                            len += decodedValue.len;
                            position = decodedValue.value;
                            result = decodeTagNumberAndValue22222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeSigned22222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            count = decodedValue.value;
                            break;
                          case 6:
                            requestType = 1;
                            result = decodeTagNumberAndValue22222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeUnsigned22222(
                              buffer,
                              offset + len,
                              result.value
                            );
                            len += decodedValue.len;
                            position = decodedValue.value;
                            result = decodeTagNumberAndValue22222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeSigned22222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            count = decodedValue.value;
                            break;
                          case 7:
                            requestType = 2;
                            decodedValue = decodeApplicationDate22222(buffer, offset + len);
                            len += decodedValue.len;
                            const tmpDate = decodedValue.value.value;
                            decodedValue = decodeApplicationTime22222(buffer, offset + len);
                            len += decodedValue.len;
                            const tmpTime = decodedValue.value.value;
                            time = new Date(
                              tmpDate.getYear(),
                              tmpDate.getMonth(),
                              tmpDate.getDate(),
                              tmpTime.getHours(),
                              tmpTime.getMinutes(),
                              tmpTime.getSeconds(),
                              tmpTime.getMilliseconds()
                            );
                            result = decodeTagNumberAndValue22222(buffer, offset + len);
                            len += result.len;
                            decodedValue = decodeSigned22222(buffer, offset + len, result.value);
                            len += decodedValue.len;
                            count = decodedValue.value;
                            break;
                          default:
                            return void 0;
                        }
                        result = decodeTagNumber22222(buffer, offset + len);
                        len += result.len;
                      }
                      return {
                        len,
                        objectId,
                        property,
                        requestType,
                        position,
                        time,
                        count
                      };
                    };
                    var encodeAcknowledge822222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                      encodeContextObjectId22222(buffer, 0, objectId.type, objectId.instance);
                      encodeContextEnumerated22222(buffer, 1, propertyId);
                      if (arrayIndex !== ASN1_ARRAY_ALL22222) {
                        encodeContextUnsigned22222(buffer, 2, arrayIndex);
                      }
                      encodeContextBitstring22222(buffer, 3, resultFlags);
                      encodeContextUnsigned22222(buffer, 4, itemCount);
                      encodeOpeningTag22222(buffer, 5);
                      if (itemCount !== 0) {
                        applicationData.copy(
                          buffer.buffer,
                          buffer.offset,
                          0,
                          applicationData.length
                        );
                        buffer.offset += applicationData.length;
                      }
                      encodeClosingTag22222(buffer, 5);
                      if (itemCount !== 0 && requestType && requestType !== 0) {
                        encodeContextUnsigned22222(buffer, 6, firstSequence);
                      }
                    };
                    var decodeAcknowledge722222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      const objectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      const property = { index: ASN1_ARRAY_ALL22222 };
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 1) {
                        return void 0;
                      }
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      property.id = decodedValue.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      if (result.tagNumber === 2 && len < apduLen) {
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        property.index = decodedValue.value;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeBitstring22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      const resultFlag = decodedValue.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      const itemCount = decodedValue.value;
                      if (!decodeIsOpeningTag22222(buffer, offset + len)) {
                        return void 0;
                      }
                      len++;
                      const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                      return {
                        objectId,
                        property,
                        resultFlag,
                        itemCount,
                        rangeBuffer,
                        len
                      };
                    };
                    var register_foreign_device_exports22222 = {};
                    __export22222(register_foreign_device_exports22222, {
                      decode: () => decode2222222,
                      encode: () => encode2222222
                    });
                    var encode2222222 = (buffer, ttl, length = 2) => {
                      encodeUnsigned22222(buffer, ttl, length);
                    };
                    var decode2222222 = (buffer, offset, length = 2) => {
                      let len = 0;
                      let result = decodeUnsigned22222(buffer, offset + len, length);
                      len += result.len;
                      return {
                        len,
                        ttl: result.value
                      };
                    };
                    var reinitialize_device_exports22222 = {};
                    __export22222(reinitialize_device_exports22222, {
                      decode: () => decode2322222,
                      encode: () => encode2322222
                    });
                    var encode2322222 = (buffer, state, password) => {
                      encodeContextEnumerated22222(buffer, 0, state);
                      if (password && password !== "") {
                        encodeContextCharacterString22222(buffer, 1, password);
                      }
                    };
                    var decode2322222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let value = {};
                      let result;
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      let decodedValue = decodeEnumerated22222(
                        buffer,
                        offset + len,
                        result.value
                      );
                      value.state = decodedValue.value;
                      len += decodedValue.len;
                      if (len < apduLen) {
                        if (!decodeIsContextTag22222(buffer, offset + len, 1)) {
                          return void 0;
                        }
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeCharacterString22222(
                          buffer,
                          offset + len,
                          apduLen - (offset + len),
                          result.value
                        );
                        value.password = decodedValue.value;
                        len += decodedValue.len;
                      }
                      value.len = len;
                      return value;
                    };
                    var subscribe_cov_exports22222 = {};
                    __export22222(subscribe_cov_exports22222, {
                      decode: () => decode2422222,
                      encode: () => encode2422222
                    });
                    var encode2422222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                      encodeContextUnsigned22222(buffer, 0, subscriberProcessId);
                      encodeContextObjectId22222(
                        buffer,
                        1,
                        monitoredObjectId.type,
                        monitoredObjectId.instance
                      );
                      if (!cancellationRequest) {
                        encodeContextBoolean22222(buffer, 2, issueConfirmedNotifications);
                        encodeContextUnsigned22222(buffer, 3, lifetime);
                      }
                    };
                    var decode2422222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let value = {};
                      let result;
                      let decodedValue;
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.subscriberProcessId = decodedValue.value;
                      if (!decodeIsContextTag22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      value.monitoredObjectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      value.cancellationRequest = true;
                      if (len < apduLen) {
                        value.issueConfirmedNotifications = false;
                        if (decodeIsContextTag22222(buffer, offset + len, 2)) {
                          value.cancellationRequest = false;
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                          value.issueConfirmedNotifications = buffer[offset + len] > 0;
                          len++;
                        }
                        value.lifetime = 0;
                        if (decodeIsContextTag22222(buffer, offset + len, 3)) {
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                          decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          value.lifetime = decodedValue.value;
                        }
                      }
                      value.len = len;
                      return value;
                    };
                    var subscribe_property_exports22222 = {};
                    __export22222(subscribe_property_exports22222, {
                      decode: () => decode2522222,
                      encode: () => encode2522222
                    });
                    var encode2522222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                      encodeContextUnsigned22222(buffer, 0, subscriberProcessId);
                      encodeContextObjectId22222(
                        buffer,
                        1,
                        monitoredObjectId.type,
                        monitoredObjectId.instance
                      );
                      if (!cancellationRequest) {
                        encodeContextBoolean22222(buffer, 2, issueConfirmedNotifications);
                        encodeContextUnsigned22222(buffer, 3, lifetime);
                      }
                      encodeOpeningTag22222(buffer, 4);
                      encodeContextEnumerated22222(buffer, 0, monitoredProperty.id);
                      if (monitoredProperty.index !== ASN1_ARRAY_ALL22222) {
                        encodeContextUnsigned22222(buffer, 1, monitoredProperty.index);
                      }
                      encodeClosingTag22222(buffer, 4);
                      if (covIncrementPresent) {
                        encodeContextReal22222(buffer, 5, covIncrement);
                      }
                    };
                    var decode2522222 = (buffer, offset) => {
                      let len = 0;
                      let value = {};
                      let result;
                      let decodedValue;
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.subscriberProcessId = decodedValue.value;
                      if (!decodeIsContextTag22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      value.monitoredObjectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      value.cancellationRequest = true;
                      value.issueConfirmedNotifications = false;
                      if (decodeIsContextTag22222(buffer, offset + len, 2)) {
                        value.cancellationRequest = false;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        value.issueConfirmedNotifications = buffer[offset + len] > 0;
                        len++;
                      }
                      value.lifetime = 0;
                      if (decodeIsContextTag22222(buffer, offset + len, 3)) {
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.lifetime = decodedValue.value;
                      }
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 4)) {
                        return void 0;
                      }
                      len++;
                      value.monitoredProperty = {};
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.monitoredProperty.id = decodedValue.value;
                      value.monitoredProperty.index = ASN1_ARRAY_ALL22222;
                      if (decodeIsContextTag22222(buffer, offset + len, 1)) {
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.monitoredProperty.index = decodedValue.value;
                      }
                      if (!decodeIsClosingTagNumber22222(buffer, offset + len, 4)) {
                        return void 0;
                      }
                      len++;
                      value.covIncrement = 0;
                      if (decodeIsContextTag22222(buffer, offset + len, 5)) {
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeReal22222(buffer, offset + len);
                        len += decodedValue.len;
                        value.covIncrement = decodedValue.value;
                      }
                      value.len = len;
                      return value;
                    };
                    var time_sync_exports22222 = {};
                    __export22222(time_sync_exports22222, {
                      decode: () => decode2622222,
                      encode: () => encode2622222
                    });
                    var encode2622222 = (buffer, time) => {
                      encodeApplicationDate22222(buffer, time);
                      encodeApplicationTime22222(buffer, time);
                    };
                    var decode2622222 = (buffer, offset, length) => {
                      let len = 0;
                      let result;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 10) {
                        return void 0;
                      }
                      const date = decodeDate22222(buffer, offset + len);
                      len += date.len;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 11) {
                        return void 0;
                      }
                      const time = decodeBacnetTime22222(buffer, offset + len);
                      len += time.len;
                      return {
                        len,
                        value: new Date(
                          date.value.getFullYear(),
                          date.value.getMonth(),
                          date.value.getDate(),
                          time.value.getHours(),
                          time.value.getMinutes(),
                          time.value.getSeconds(),
                          time.value.getMilliseconds()
                        )
                      };
                    };
                    var who_has_exports22222 = {};
                    __export22222(who_has_exports22222, {
                      decode: () => decode2722222,
                      encode: () => encode2722222
                    });
                    var encode2722222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                      if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE22222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE22222) {
                        encodeContextUnsigned22222(buffer, 0, lowLimit);
                        encodeContextUnsigned22222(buffer, 1, highLimit);
                      }
                      if (objectName && objectName !== "") {
                        encodeContextCharacterString22222(buffer, 3, objectName);
                      } else {
                        encodeContextObjectId22222(buffer, 2, objectId.type, objectId.instance);
                      }
                    };
                    var decode2722222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let value = {};
                      let decodedValue;
                      let result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber === 0) {
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        if (decodedValue.value <= ASN1_MAX_INSTANCE22222) {
                          value.lowLimit = decodedValue.value;
                        }
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                      }
                      if (result.tagNumber === 1) {
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        if (decodedValue.value <= ASN1_MAX_INSTANCE22222) {
                          value.highLimit = decodedValue.value;
                        }
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                      }
                      if (result.tagNumber === 2) {
                        decodedValue = decodeObjectId22222(buffer, offset + len);
                        len += decodedValue.len;
                        value.objectId = {
                          type: decodedValue.objectType,
                          instance: decodedValue.instance
                        };
                      }
                      if (result.tagNumber === 3) {
                        decodedValue = decodeCharacterString22222(
                          buffer,
                          offset + len,
                          apduLen - (offset + len),
                          result.value
                        );
                        len += decodedValue.len;
                        value.objectName = decodedValue.value;
                      }
                      value.len = len;
                      return value;
                    };
                    var who_is_exports22222 = {};
                    __export22222(who_is_exports22222, {
                      decode: () => decode2822222,
                      encode: () => encode2822222
                    });
                    var encode2822222 = (buffer, lowLimit, highLimit) => {
                      if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE22222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE22222) {
                        encodeContextUnsigned22222(buffer, 0, lowLimit);
                        encodeContextUnsigned22222(buffer, 1, highLimit);
                      }
                    };
                    var decode2822222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let value = {};
                      if (apduLen <= 0) {
                        return {};
                      }
                      let result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 0) {
                        return void 0;
                      }
                      if (apduLen <= len) {
                        return void 0;
                      }
                      let decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      if (decodedValue.value <= ASN1_MAX_INSTANCE22222) {
                        value.lowLimit = decodedValue.value;
                      }
                      if (apduLen <= len) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 1) {
                        return void 0;
                      }
                      if (apduLen <= len) {
                        return void 0;
                      }
                      decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      if (decodedValue.value <= ASN1_MAX_INSTANCE22222) {
                        value.highLimit = decodedValue.value;
                      }
                      value.len = len;
                      return value;
                    };
                    var write_property_exports22222 = {};
                    __export22222(write_property_exports22222, {
                      decode: () => decode2922222,
                      encode: () => encode2922222
                    });
                    var encode2922222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                      encodeContextObjectId22222(buffer, 0, objectType, objectInstance);
                      encodeContextEnumerated22222(buffer, 1, propertyId);
                      if (arrayIndex !== ASN1_ARRAY_ALL22222) {
                        encodeContextUnsigned22222(buffer, 2, arrayIndex);
                      }
                      encodeOpeningTag22222(buffer, 3);
                      values.forEach((value) => {
                        bacappEncodeApplicationData22222(buffer, value);
                      });
                      encodeClosingTag22222(buffer, 3);
                      if (priority !== ASN1_NO_PRIORITY22222) {
                        encodeContextUnsigned22222(buffer, 4, priority);
                      }
                    };
                    var decode2922222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let value = {
                        property: {}
                      };
                      let decodedValue;
                      let result;
                      if (!decodeIsContextTag22222(buffer, offset + len, 0)) {
                        return void 0;
                      }
                      len++;
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      let objectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      len += decodedValue.len;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 1) {
                        return void 0;
                      }
                      decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.property.id = decodedValue.value;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      if (result.tagNumber === 2) {
                        len += result.len;
                        decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        value.property.index = decodedValue.value;
                      } else {
                        value.property.index = ASN1_ARRAY_ALL22222;
                      }
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 3)) {
                        return void 0;
                      }
                      len++;
                      const values = [];
                      while (apduLen - len > 1 && !decodeIsClosingTagNumber22222(buffer, offset + len, 3)) {
                        decodedValue = bacappDecodeApplicationData22222(
                          buffer,
                          offset + len,
                          apduLen + offset,
                          objectId.type,
                          value.property.id
                        );
                        if (!decodedValue) {
                          return void 0;
                        }
                        len += decodedValue.len;
                        delete decodedValue.len;
                        values.push(decodedValue);
                      }
                      value.value = values;
                      if (!decodeIsClosingTagNumber22222(buffer, offset + len, 3)) {
                        return void 0;
                      }
                      len++;
                      value.priority = ASN1_MAX_PRIORITY22222;
                      if (len < apduLen) {
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        if (result.tagNumber === 4) {
                          len += result.len;
                          decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                          len += decodedValue;
                          if (decodedValue.value >= ASN1_MIN_PRIORITY22222 && decodedValue.value <= ASN1_MAX_PRIORITY22222) {
                            value.priority = decodedValue.value;
                          } else {
                            return void 0;
                          }
                        }
                      }
                      return {
                        len,
                        objectId,
                        value
                      };
                    };
                    var write_property_multiple_exports22222 = {};
                    __export22222(write_property_multiple_exports22222, {
                      decode: () => decode3022222,
                      encode: () => encode3022222,
                      encodeObject: () => encodeObject22222
                    });
                    var encode3022222 = (buffer, objectId, values) => {
                      encodeContextObjectId22222(buffer, 0, objectId.type, objectId.instance);
                      encodeOpeningTag22222(buffer, 1);
                      values.forEach((pValue) => {
                        encodeContextEnumerated22222(buffer, 0, pValue.property.id);
                        if (pValue.property.index !== ASN1_ARRAY_ALL22222) {
                          encodeContextUnsigned22222(buffer, 1, pValue.property.index);
                        }
                        encodeOpeningTag22222(buffer, 2);
                        pValue.value.forEach((value) => {
                          bacappEncodeApplicationData22222(buffer, value);
                        });
                        encodeClosingTag22222(buffer, 2);
                        if (pValue.priority !== ASN1_NO_PRIORITY22222) {
                          encodeContextUnsigned22222(buffer, 3, pValue.priority);
                        }
                      });
                      encodeClosingTag22222(buffer, 1);
                    };
                    var decode3022222 = (buffer, offset, apduLen) => {
                      let len = 0;
                      let result;
                      let decodedValue;
                      let objectId;
                      result = decodeTagNumberAndValue22222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 0 || apduLen <= len) {
                        return void 0;
                      }
                      apduLen -= len;
                      if (apduLen < 4) {
                        return void 0;
                      }
                      decodedValue = decodeObjectId22222(buffer, offset + len);
                      len += decodedValue.len;
                      objectId = {
                        type: decodedValue.objectType,
                        instance: decodedValue.instance
                      };
                      if (!decodeIsOpeningTagNumber22222(buffer, offset + len, 1)) {
                        return void 0;
                      }
                      len++;
                      const _values = [];
                      while (apduLen - len > 1) {
                        let newEntry = {};
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber !== 0) {
                          return void 0;
                        }
                        decodedValue = decodeEnumerated22222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        let propertyId = decodedValue.value;
                        let arrayIndex = ASN1_ARRAY_ALL22222;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber === 1) {
                          decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          arrayIndex = decodedValue.value;
                          result = decodeTagNumberAndValue22222(buffer, offset + len);
                          len += result.len;
                        }
                        newEntry.property = { id: propertyId, index: arrayIndex };
                        if (result.tagNumber !== 2 || !decodeIsOpeningTag22222(buffer, offset + len - 1)) {
                          return void 0;
                        }
                        const values = [];
                        while (len + offset <= buffer.length && !decodeIsClosingTag22222(buffer, offset + len)) {
                          let value = bacappDecodeApplicationData22222(
                            buffer,
                            offset + len,
                            apduLen + offset,
                            objectId.type,
                            propertyId
                          );
                          if (!value) {
                            return void 0;
                          }
                          len += value.len;
                          delete value.len;
                          values.push(value);
                        }
                        len++;
                        newEntry.value = values;
                        let priority = ASN1_NO_PRIORITY22222;
                        result = decodeTagNumberAndValue22222(buffer, offset + len);
                        len += result.len;
                        if (result.tagNumber === 3) {
                          decodedValue = decodeUnsigned22222(buffer, offset + len, result.value);
                          len += decodedValue.len;
                          priority = decodedValue.value;
                        } else {
                          len--;
                        }
                        newEntry.priority = priority;
                        _values.push(newEntry);
                        if (decodeIsClosingTagNumber22222(buffer, offset + len, 1)) {
                          len++;
                        }
                      }
                      if (decodeIsClosingTagNumber22222(buffer, offset + len, 1)) {
                        len++;
                      }
                      return {
                        len,
                        objectId,
                        values: _values
                      };
                    };
                    var encodeObject22222 = (buffer, values) => {
                      values.forEach((object) => {
                        encode3022222(buffer, object.objectId, object.values);
                      });
                    };
                    var getDecodedType22222 = (buffer, offset) => {
                      return buffer[offset];
                    };
                    var encodeConfirmedServiceRequest22222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                      buffer.buffer[buffer.offset++] = type;
                      buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                      buffer.buffer[buffer.offset++] = invokeId;
                      if ((type & 8) > 0) {
                        buffer.buffer[buffer.offset++] = sequencenumber;
                        buffer.buffer[buffer.offset++] = proposedWindowSize;
                      }
                      buffer.buffer[buffer.offset++] = service;
                    };
                    var decodeConfirmedServiceRequest22222 = (buffer, offset) => {
                      const orgOffset = offset;
                      const type = buffer[offset++];
                      const maxSegments = buffer[offset] & 240;
                      const maxApdu = buffer[offset++] & 15;
                      const invokeId = buffer[offset++];
                      let sequencenumber = 0;
                      let proposedWindowNumber = 0;
                      if ((type & 8) > 0) {
                        sequencenumber = buffer[offset++];
                        proposedWindowNumber = buffer[offset++];
                      }
                      const service = buffer[offset++];
                      return {
                        len: offset - orgOffset,
                        type,
                        service,
                        maxSegments,
                        maxApdu,
                        invokeId,
                        sequencenumber,
                        proposedWindowNumber
                      };
                    };
                    var encodeUnconfirmedServiceRequest22222 = (buffer, type, service) => {
                      buffer.buffer[buffer.offset++] = type;
                      buffer.buffer[buffer.offset++] = service;
                    };
                    var decodeUnconfirmedServiceRequest22222 = (buffer, offset) => {
                      const orgOffset = offset;
                      const type = buffer[offset++];
                      const service = buffer[offset++];
                      return {
                        len: offset - orgOffset,
                        type,
                        service
                      };
                    };
                    var encodeSimpleAck22222 = (buffer, type, service, invokeId) => {
                      buffer.buffer[buffer.offset++] = type;
                      buffer.buffer[buffer.offset++] = invokeId;
                      buffer.buffer[buffer.offset++] = service;
                    };
                    var decodeSimpleAck22222 = (buffer, offset) => {
                      const orgOffset = offset;
                      const type = buffer[offset++];
                      const invokeId = buffer[offset++];
                      const service = buffer[offset++];
                      return {
                        len: offset - orgOffset,
                        type,
                        service,
                        invokeId
                      };
                    };
                    var encodeComplexAck22222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                      let len = 3;
                      buffer.buffer[buffer.offset++] = type;
                      buffer.buffer[buffer.offset++] = invokeId;
                      if ((type & 8) > 0) {
                        buffer.buffer[buffer.offset++] = sequencenumber;
                        buffer.buffer[buffer.offset++] = proposedWindowNumber;
                        len += 2;
                      }
                      buffer.buffer[buffer.offset++] = service;
                      return len;
                    };
                    var decodeComplexAck22222 = (buffer, offset) => {
                      const orgOffset = offset;
                      const type = buffer[offset++];
                      const invokeId = buffer[offset++];
                      let sequencenumber = 0;
                      let proposedWindowNumber = 0;
                      if ((type & 8) > 0) {
                        sequencenumber = buffer[offset++];
                        proposedWindowNumber = buffer[offset++];
                      }
                      const service = buffer[offset++];
                      return {
                        len: offset - orgOffset,
                        type,
                        service,
                        invokeId,
                        sequencenumber,
                        proposedWindowNumber
                      };
                    };
                    var encodeSegmentAck22222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                      buffer.buffer[buffer.offset++] = type;
                      buffer.buffer[buffer.offset++] = originalInvokeId;
                      buffer.buffer[buffer.offset++] = sequencenumber;
                      buffer.buffer[buffer.offset++] = actualWindowSize;
                    };
                    var decodeSegmentAck22222 = (buffer, offset) => {
                      const orgOffset = offset;
                      const type = buffer[offset++];
                      const originalInvokeId = buffer[offset++];
                      const sequencenumber = buffer[offset++];
                      const actualWindowSize = buffer[offset++];
                      return {
                        len: offset - orgOffset,
                        type,
                        originalInvokeId,
                        sequencenumber,
                        actualWindowSize
                      };
                    };
                    var encodeResult22222 = (buffer, resultCode) => {
                      encodeUnsigned22222(buffer, resultCode, 2);
                    };
                    var encodeError22222 = (buffer, type, service, invokeId) => {
                      buffer.buffer[buffer.offset++] = type;
                      buffer.buffer[buffer.offset++] = invokeId;
                      buffer.buffer[buffer.offset++] = service;
                    };
                    var decodeError22222 = (buffer, offset) => {
                      const orgOffset = offset;
                      const type = buffer[offset++];
                      const invokeId = buffer[offset++];
                      const service = buffer[offset++];
                      return {
                        len: offset - orgOffset,
                        type,
                        service,
                        invokeId
                      };
                    };
                    var decodeAbort22222 = (buffer, offset) => {
                      const orgOffset = offset;
                      const type = buffer[offset++];
                      const invokeId = buffer[offset++];
                      const reason = buffer[offset++];
                      return {
                        len: offset - orgOffset,
                        type,
                        invokeId,
                        reason
                      };
                    };
                    var DEFAULT_HOP_COUNT32222 = 255;
                    var BACNET_PROTOCOL_VERSION22222 = 1;
                    var BACNET_ADDRESS_TYPES22222 = {
                      NONE: 0,
                      IP: 1
                    };
                    var decodeTarget22222 = (buffer, offset) => {
                      let len = 0;
                      const target = {
                        type: BACNET_ADDRESS_TYPES22222.NONE,
                        net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                      };
                      const adrLen = buffer[offset + len++];
                      if (adrLen > 0) {
                        target.adr = [];
                        for (let i = 0; i < adrLen; i++) {
                          target.adr.push(buffer[offset + len++]);
                        }
                      }
                      return {
                        target,
                        len
                      };
                    };
                    var encodeTarget22222 = (buffer, target) => {
                      buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                      buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                      if (target.net === 65535 || !target.adr) {
                        buffer.buffer[buffer.offset++] = 0;
                      } else {
                        buffer.buffer[buffer.offset++] = target.adr.length;
                        if (target.adr.length > 0) {
                          for (let i = 0; i < target.adr.length; i++) {
                            buffer.buffer[buffer.offset++] = target.adr[i];
                          }
                        }
                      }
                    };
                    var decode3122222 = (buffer, offset) => {
                      let adrLen;
                      const orgOffset = offset;
                      offset++;
                      const funct = buffer[offset++];
                      let destination;
                      if (funct & 32) {
                        const tmpDestination = decodeTarget22222(buffer, offset);
                        offset += tmpDestination.len;
                        destination = tmpDestination.target;
                      }
                      let source;
                      if (funct & 8) {
                        const tmpSource = decodeTarget22222(buffer, offset);
                        offset += tmpSource.len;
                        source = tmpSource.target;
                      }
                      let hopCount = 0;
                      if (funct & 32) {
                        hopCount = buffer[offset++];
                      }
                      let networkMsgType = 0;
                      let vendorId = 0;
                      if (funct & 128) {
                        networkMsgType = buffer[offset++];
                        if (networkMsgType >= 128) {
                          vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                        } else if (networkMsgType === 0) {
                          offset += 2;
                        }
                      }
                      if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION22222) {
                        return void 0;
                      }
                      return {
                        len: offset - orgOffset,
                        funct,
                        destination,
                        source,
                        hopCount,
                        networkMsgType,
                        vendorId
                      };
                    };
                    var encode3122222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                      const hasDestination = destination && destination.net > 0;
                      const hasSource = source && source.net > 0 && source.net !== 65535;
                      buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION22222;
                      buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                      if (hasDestination) {
                        encodeTarget22222(buffer, destination);
                      }
                      if (hasSource) {
                        encodeTarget22222(buffer, source);
                      }
                      if (hasDestination) {
                        buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT32222;
                      }
                      if ((funct & 128) > 0) {
                        buffer.buffer[buffer.offset++] = networkMsgType;
                        if (networkMsgType >= 128) {
                          buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                          buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                        }
                      }
                    };
                    var DEFAULT_BACNET_PORT222222 = 47808;
                    var encode3222222 = (buffer, func, msgLength, originatingIP) => {
                      buffer[0] = BVLL_TYPE_BACNET_IP22222;
                      buffer[1] = func;
                      buffer[2] = (msgLength & 65280) >> 8;
                      buffer[3] = (msgLength & 255) >> 0;
                      if (originatingIP) {
                        if (func !== 4) {
                          throw new Error(
                            "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                          );
                        }
                        const [ipstr, portstr] = originatingIP.split(":");
                        const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT222222;
                        const ip = ipstr.split(".");
                        buffer[4] = parseInt(ip[0], 10);
                        buffer[5] = parseInt(ip[1], 10);
                        buffer[6] = parseInt(ip[2], 10);
                        buffer[7] = parseInt(ip[3], 10);
                        buffer[8] = (port & 65280) >> 8;
                        buffer[9] = (port & 255) >> 0;
                        return 6 + BVLC_HEADER_LENGTH32222;
                      } else {
                        if (func === 4) {
                          throw new Error(
                            "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                          );
                        }
                      }
                      return BVLC_HEADER_LENGTH32222;
                    };
                    var decode3222222 = (buffer, _offset) => {
                      let len;
                      const func = buffer[1];
                      const msgLength = buffer[2] << 8 | buffer[3] << 0;
                      if (buffer[0] !== BVLL_TYPE_BACNET_IP22222 || buffer.length !== msgLength) {
                        return void 0;
                      }
                      let originatingIP = null;
                      switch (func) {
                        case 0:
                        case 10:
                        case 11:
                        case 9:
                        case 5:
                        case 6:
                        case 8:
                        case 2:
                        case 1:
                        case 3:
                        case 7:
                          len = 4;
                          break;
                        case 4:
                          const port = buffer[8] << 8 | buffer[9];
                          originatingIP = buffer.slice(4, 8).join(".");
                          if (port !== DEFAULT_BACNET_PORT222222) {
                            originatingIP += ":" + port;
                          }
                          len = 10;
                          break;
                        case 12:
                          return void 0;
                        default:
                          return void 0;
                      }
                      return {
                        len,
                        func,
                        msgLength,
                        // Originating IP is set to the IP address of the node that originally
                        // sent the packet, when it has been forwarded to us by a BBMD (since the
                        // BBMD's IP address will be in the sender field.
                        originatingIP
                      };
                    };
                    var EventEmitter222222 = import_events222222.default.EventEmitter;
                    var debug322222 = (0, import_debug322222.default)("bacnet:client:debug");
                    var trace222222 = (0, import_debug322222.default)("bacnet:client:trace");
                    var ALL_INTERFACES22222 = "0.0.0.0";
                    var LOCALHOST_INTERFACES_IPV422222 = "127.0.0.1";
                    var BROADCAST_ADDRESS22222 = "255.255.255.255";
                    var DEFAULT_HOP_COUNT222222 = 255;
                    var BVLC_HEADER_LENGTH222222 = 4;
                    var BVLC_FWD_HEADER_LENGTH22222 = 10;
                    var beU22222 = UnconfirmedServiceChoice22222;
                    var unconfirmedServiceMap22222 = {
                      [beU22222.I_AM]: "iAm",
                      [beU22222.WHO_IS]: "whoIs",
                      [beU22222.WHO_HAS]: "whoHas",
                      [beU22222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                      [beU22222.TIME_SYNCHRONIZATION]: "timeSync",
                      [beU22222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                      [beU22222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                      [beU22222.I_HAVE]: "iHave",
                      [beU22222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                    };
                    var beC22222 = ConfirmedServiceChoice22222;
                    var confirmedServiceMap22222 = {
                      [beC22222.READ_PROPERTY]: "readProperty",
                      [beC22222.WRITE_PROPERTY]: "writeProperty",
                      [beC22222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                      [beC22222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                      [beC22222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                      [beC22222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                      [beC22222.ATOMIC_READ_FILE]: "atomicReadFile",
                      [beC22222.SUBSCRIBE_COV]: "subscribeCov",
                      [beC22222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                      [beC22222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                      [beC22222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                      [beC22222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                      [beC22222.READ_RANGE]: "readRange",
                      [beC22222.CREATE_OBJECT]: "createObject",
                      [beC22222.DELETE_OBJECT]: "deleteObject",
                      [beC22222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                      [beC22222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                      [beC22222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                      [beC22222.GET_EVENT_INFORMATION]: "getEventInformation",
                      [beC22222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                      [beC22222.ADD_LIST_ELEMENT]: "addListElement",
                      [beC22222.REMOVE_LIST_ELEMENT]: "removeListElement",
                      [beC22222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                    };
                    var errorReasonEnums22222 = {
                      BacnetAbort: RejectReason22222
                    };
                    var BacnetError22222 = class extends Error {
                      constructor(message, bacnetErrorClass, bacnetErrorCode) {
                        super(message);
                        this.bacnetErrorClass = bacnetErrorClass;
                        this.bacnetErrorCode = bacnetErrorCode;
                      }
                    };
                    function bacnetErrorToString22222(err) {
                      var _a;
                      const isError = err instanceof Error || err instanceof BacnetError22222;
                      if (!isError)
                        return;
                      const message = err.message;
                      const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                      const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                      if (!errorReasonEnums22222[reasonClass])
                        return;
                      const reasonString = errorReasonEnums22222[reasonClass][reason];
                      return reasonClass + ": " + reasonString;
                    }
                    var Client22222 = class extends EventEmitter222222 {
                      /**
                       *
                       * @param options
                       */
                      constructor(options) {
                        super();
                        options = options || {};
                        this._invokeCounter = 1;
                        this._invokeStore = {};
                        this._lastSequenceNumber = 0;
                        this._segmentStore = [];
                        this._settings = {
                          port: options.port || 47808,
                          interface: options.interface || ALL_INTERFACES22222,
                          transport: options.transport,
                          broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS22222,
                          apduTimeout: options.apduTimeout || 3e3
                        };
                        options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                        this._transport = this._settings.transport || new Transport22222({
                          port: this._settings.port,
                          interface: this._settings.interface,
                          broadcastAddress: this._settings.broadcastAddress,
                          reuseAddr: options.reuseAddr
                        });
                        this._transport.on("message", this._receiveData.bind(this));
                        this._transport.on("error", this._receiveError.bind(this));
                        this._transport.on("listening", () => this.emit("listening"));
                        this._transport.open();
                      }
                      /**
                       *
                       * @returns {number}
                       * @private
                       */
                      _getInvokeId() {
                        const id = this._invokeCounter++;
                        if (id >= 256)
                          this._invokeCounter = 1;
                        return id - 1;
                      }
                      /**
                       *
                       * @param id
                       * @param err
                       * @param result
                       * @returns {*}
                       * @private
                       */
                      _invokeCallback(id, err, result) {
                        const callback = this._invokeStore[id];
                        if (callback) {
                          return void callback(err, result);
                        }
                        debug322222("InvokeId", id, "not found -> drop package");
                      }
                      /**
                       *
                       * @param id
                       * @param callback
                       * @private
                       */
                      _addCallback(id, callback) {
                        const timeout = setTimeout(() => {
                          delete this._invokeStore[id];
                          callback(new Error("ERR_TIMEOUT"));
                        }, this._settings.apduTimeout);
                        this._invokeStore[id] = (err, data) => {
                          clearTimeout(timeout);
                          delete this._invokeStore[id];
                          callback(err, data);
                        };
                      }
                      /**
                       *
                       * @param isForwarded
                       * @returns {{offset: (number), buffer: *}}
                       * @private
                       */
                      _getBuffer(isForwarded) {
                        return Object.assign(
                          {},
                          {
                            buffer: Buffer.alloc(this._transport.getMaxPayload()),
                            offset: isForwarded ? BVLC_FWD_HEADER_LENGTH22222 : BVLC_HEADER_LENGTH222222
                          }
                        );
                      }
                      /**
                       *
                       * @param invokeId
                       * @param buffer
                       * @param offset
                       * @param length
                       * @returns {*}
                       * @private
                       */
                      _processError(invokeId, buffer, offset, length) {
                        const result = error_exports22222.decode(buffer, offset);
                        trace222222("Received error:", result);
                        if (!result) {
                          return debug322222("Couldn`t decode Error");
                        }
                        const err = new BacnetError22222(error_exports22222.buildMessage(result));
                        err.bacnetErrorClass = result.class;
                        err.bacnetErrorCode = result.code;
                        this._invokeCallback(invokeId, err);
                      }
                      /**
                       *
                       * @param invokeId
                       * @param reason
                       * @private
                       */
                      _processAbort(invokeId, reason) {
                        const err = new BacnetError22222("BacnetAbort - Reason:" + reason);
                        err.bacnetAbortReason = reason;
                        err.bacnetErrorClass = AbortReason22222;
                        this._invokeCallback(invokeId, err);
                      }
                      /**
                       *
                       * @param receiver
                       * @param negative
                       * @param server
                       * @param originalInvokeId
                       * @param sequencenumber
                       * @param actualWindowSize
                       * @private
                       */
                      _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                        const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                        encode3122222(
                          buffer,
                          0,
                          receiver,
                          null,
                          DEFAULT_HOP_COUNT222222,
                          0,
                          0
                        );
                        encodeSegmentAck22222(
                          buffer,
                          64 | (negative ? 2 : 0) | (server ? 1 : 0),
                          originalInvokeId,
                          sequencenumber,
                          actualWindowSize
                        );
                        this.sendBvlc(receiver, buffer);
                      }
                      /**
                       *
                       * @param msg
                       * @param first
                       * @param moreFollows
                       * @param buffer
                       * @param offset
                       * @param length
                       * @private
                       */
                      _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                        if (first) {
                          this._segmentStore = [];
                          msg.type &= ~8;
                          let apduHeaderLen = 3;
                          if ((msg.type & PDU_TYPE_MASK22222) === 0) {
                            apduHeaderLen = 4;
                          }
                          const apdubuffer = this._getBuffer();
                          apdubuffer.offset = 0;
                          buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                          if ((msg.type & PDU_TYPE_MASK22222) === 0) {
                            encodeConfirmedServiceRequest22222(
                              apdubuffer,
                              msg.type,
                              msg.service,
                              msg.maxSegments,
                              msg.maxApdu,
                              msg.invokeId,
                              0,
                              0
                            );
                          } else {
                            encodeComplexAck22222(
                              apdubuffer,
                              msg.type,
                              msg.service,
                              msg.invokeId,
                              0,
                              0
                            );
                          }
                          this._segmentStore.push(
                            //@ts-ignore
                            apdubuffer.buffer.slice(0, length + apduHeaderLen)
                          );
                        } else {
                          this._segmentStore.push(buffer.slice(offset, offset + length));
                        }
                        if (!moreFollows) {
                          const apduBuffer = Buffer.concat(this._segmentStore);
                          this._segmentStore = [];
                          msg.type &= ~8;
                          this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                        }
                      }
                      /**
                       *
                       * @param msg
                       * @param server
                       * @param buffer
                       * @param offset
                       * @param length
                       * @private
                       */
                      _processSegment(msg, server, buffer, offset, length) {
                        let first = false;
                        if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                          first = true;
                        } else {
                          if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                            return this._segmentAckResponse(
                              msg.header.address,
                              true,
                              server,
                              msg.invokeId,
                              this._lastSequenceNumber,
                              msg.proposedWindowNumber
                            );
                          }
                        }
                        this._lastSequenceNumber = msg.sequencenumber;
                        const moreFollows = msg.type & 4;
                        if (!moreFollows) {
                          this._lastSequenceNumber = 0;
                        }
                        if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                          this._segmentAckResponse(
                            msg.header.address,
                            false,
                            server,
                            msg.invokeId,
                            msg.sequencenumber,
                            msg.proposedWindowNumber
                          );
                        }
                        this._performDefaultSegmentHandling(
                          msg,
                          first,
                          moreFollows,
                          buffer,
                          offset,
                          length
                        );
                      }
                      /**
                       *
                       * @param serviceMap
                       * @param content
                       * @param buffer
                       * @param offset
                       * @param length
                       * @returns {*}
                       * @private
                       */
                      _processServiceRequest(serviceMap, content, buffer, offset, length) {
                        let result;
                        const sender = content.header.sender;
                        if (sender.address === LOCALHOST_INTERFACES_IPV422222) {
                          debug322222("Received and skipped localhost service request:", content.service);
                          return;
                        }
                        const name = serviceMap[content.service];
                        if (!name) {
                          debug322222("Received unsupported service request:", content.service);
                          return;
                        }
                        const id = content.invokeId ? "@" + content.invokeId : "";
                        trace222222(`Received service request${id}:`, name);
                        const serviceHandler = services_exports22222[name];
                        if (serviceHandler) {
                          try {
                            content.payload = serviceHandler.decode(buffer, offset, length);
                            trace222222(`Handled service request${id}:`, name, JSON.stringify(content));
                          } catch (e) {
                            debug322222("Exception thrown when processing message:", e);
                            debug322222("Original message was", name + ":", content);
                            return;
                          }
                          if (!content.payload) {
                            return debug322222("Received invalid", name, "message");
                          }
                        } else {
                          debug322222("No serviceHandler defined for:", name);
                        }
                        if (this.listenerCount(name)) {
                          trace222222("listener count by name emits " + name + " with content");
                          this.emit(name, content);
                        } else {
                          if (this.listenerCount("unhandledEvent")) {
                            trace222222("unhandled event emiting with content");
                            this.emit("unhandledEvent", content);
                          } else {
                            trace222222(
                              "no unhandled event handler with header: " + JSON.stringify(content.header)
                            );
                            if (content.header.expectingReply) {
                              debug322222("Replying with error for unhandled service:", name);
                              content.header.sender.forwardedFrom = null;
                              this.errorResponse(
                                content.header.sender,
                                content.service,
                                content.invokeId,
                                5,
                                67
                                /* REJECT_UNRECOGNIZED_SERVICE */
                              );
                            }
                          }
                        }
                      }
                      /**
                       *
                       * @param buffer
                       * @param offset
                       * @param length
                       * @param header
                       * @private
                       */
                      _handlePdu(buffer, offset, length, header) {
                        let msg;
                        trace222222("handlePdu Header: ", header);
                        switch (header.apduType & PDU_TYPE_MASK22222) {
                          case 16:
                            msg = decodeUnconfirmedServiceRequest22222(buffer, offset);
                            msg.header = header;
                            msg.header.confirmedService = false;
                            this._processServiceRequest(
                              unconfirmedServiceMap22222,
                              msg,
                              buffer,
                              offset + msg.len,
                              length - msg.len
                            );
                            break;
                          case 32:
                            msg = decodeSimpleAck22222(buffer, offset);
                            offset += msg.len;
                            length -= msg.len;
                            this._invokeCallback(msg.invokeId, null, {
                              msg,
                              buffer,
                              offset: offset + msg.len,
                              length: length - msg.len
                            });
                            break;
                          case 48:
                            msg = decodeComplexAck22222(buffer, offset);
                            msg.header = header;
                            if ((header.apduType & 8) === 0) {
                              this._invokeCallback(msg.invokeId, null, {
                                msg,
                                buffer,
                                offset: offset + msg.len,
                                length: length - msg.len
                              });
                            } else {
                              this._processSegment(
                                msg,
                                true,
                                buffer,
                                offset + msg.len,
                                length - msg.len
                              );
                            }
                            break;
                          case 64:
                            msg = decodeSegmentAck22222(buffer, offset);
                            msg.header = header;
                            this._processSegment(
                              msg,
                              true,
                              buffer,
                              offset + msg.len,
                              length - msg.len
                            );
                            break;
                          case 80:
                            msg = decodeError22222(buffer, offset);
                            this._processError(
                              msg.invokeId,
                              buffer,
                              offset + msg.len,
                              length - msg.len
                            );
                            break;
                          case 96:
                          case 112:
                            msg = decodeAbort22222(buffer, offset);
                            this._processAbort(msg.invokeId, msg.reason);
                            break;
                          case 0:
                            msg = decodeConfirmedServiceRequest22222(buffer, offset);
                            msg.header = header;
                            msg.header.confirmedService = true;
                            if ((header.apduType & 8) === 0) {
                              this._processServiceRequest(
                                confirmedServiceMap22222,
                                msg,
                                buffer,
                                offset + msg.len,
                                length - msg.len
                              );
                            } else {
                              this._processSegment(
                                msg,
                                true,
                                buffer,
                                offset + msg.len,
                                length - msg.len
                              );
                            }
                            break;
                          default:
                            debug322222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                            break;
                        }
                      }
                      /**
                       *
                       * @param buffer
                       * @param offset
                       * @param msgLength
                       * @param header
                       * @returns {*}
                       * @private
                       */
                      _handleNpdu(buffer, offset, msgLength, header) {
                        if (msgLength <= 0) {
                          return trace222222("No NPDU data -> Drop package");
                        }
                        const result = decode3122222(buffer, offset);
                        if (!result) {
                          return trace222222("Received invalid NPDU header -> Drop package");
                        }
                        if (result.funct & 128) {
                          return trace222222("Received network layer message -> Drop package");
                        }
                        offset += result.len;
                        msgLength -= result.len;
                        if (msgLength <= 0) {
                          return trace222222("No APDU data -> Drop package");
                        }
                        header.apduType = getDecodedType22222(buffer, offset);
                        header.expectingReply = !!(result.funct & 4);
                        this._handlePdu(buffer, offset, msgLength, header);
                      }
                      /**
                       *
                       * @param buffer
                       * @param remoteAddress
                       * @returns {*}
                       * @private
                       */
                      _receiveData(buffer, remoteAddress) {
                        if (buffer.length < BVLC_HEADER_LENGTH32222) {
                          return trace222222("Received invalid data -> Drop package");
                        }
                        const result = decode3222222(buffer, 0);
                        if (!result) {
                          return trace222222("Received invalid BVLC header -> Drop package");
                        }
                        let header = {
                          // Which function the packet came in on, so later code can distinguish
                          // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                          func: result.func,
                          sender: {
                            // Address of the host we are directly connected to. String, IP:port.
                            address: remoteAddress,
                            // If the host is a BBMD passing messages along to another node, this
                            // is the address of the distant BACnet node.  String, IP:port.
                            // Typically we won't have network connectivity to this address, but
                            // we have to include it in replies so the host we are connect to knows
                            // where to forward the messages.
                            forwardedFrom: null
                          }
                        };
                        switch (result.func) {
                          case 10:
                          case 11:
                            this._handleNpdu(
                              buffer,
                              result.len,
                              buffer.length - result.len,
                              header
                            );
                            break;
                          case 4:
                            header.sender.forwardedFrom = result.originatingIP;
                            this._handleNpdu(
                              buffer,
                              result.len,
                              buffer.length - result.len,
                              header
                            );
                            break;
                          case 5:
                            let decodeResult = register_foreign_device_exports22222.decode(
                              buffer,
                              result.len,
                              buffer.length - result.len
                            );
                            if (!decodeResult) {
                              return trace222222("Received invalid registerForeignDevice message");
                            }
                            this.emit("registerForeignDevice", {
                              header,
                              payload: decodeResult
                            });
                            break;
                          case 9:
                            this._handleNpdu(
                              buffer,
                              result.len,
                              buffer.length - result.len,
                              header
                            );
                            break;
                          default:
                            debug322222(
                              "Received unknown BVLC function " + result.func + " -> Drop package"
                            );
                            break;
                        }
                      }
                      /**
                       * @event bacnet.error
                       * @param {error} err - The error object thrown by the underlying transport layer.
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * client.on('error', (err) => {
                       *   console.log('Error occurred: ', err);
                       *   client.close();
                       * });
                       */
                      _receiveError(err) {
                        this.emit("error", err);
                      }
                      /**
                       * The whoIs command discovers all BACNET devices in a network.
                       * @function bacnet.whoIs
                       * @param {string} receiver - IP address of the target device.
                       * @param {object=} options
                       * @param {number=} options.lowLimit - Minimal device instance number to search for.
                       * @param {number=} options.highLimit - Maximal device instance number to search for.
                       * @fires bacnet.iAm
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * client.whoIs();
                       */
                      whoIs(receiver, options) {
                        if (!options) {
                          if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                            options = receiver;
                            receiver = void 0;
                          }
                        }
                        options = options || {};
                        const settings = {
                          lowLimit: options.lowLimit,
                          highLimit: options.highLimit
                        };
                        const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                        encode3122222(
                          buffer,
                          0,
                          //@ts-ignore
                          receiver,
                          null,
                          DEFAULT_HOP_COUNT222222,
                          0,
                          0
                        );
                        encodeUnconfirmedServiceRequest22222(
                          buffer,
                          16,
                          8
                          /* WHO_IS */
                        );
                        who_is_exports22222.encode(buffer, settings.lowLimit, settings.highLimit);
                        this.sendBvlc(receiver, buffer);
                      }
                      /**
                       * The timeSync command sets the time of a target device.
                       * @function bacnet.timeSync
                       * @param {string} receiver - IP address of the target device.
                       * @param {date} dateTime - The date and time to set on the target device.
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * client.timeSync('192.168.1.43', new Date());
                       */
                      timeSync(receiver, dateTime) {
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(buffer, 0, receiver);
                        encodeUnconfirmedServiceRequest22222(
                          buffer,
                          16,
                          6
                          /* TIME_SYNCHRONIZATION */
                        );
                        time_sync_exports22222.encode(buffer, dateTime);
                        this.sendBvlc(receiver, buffer);
                      }
                      /**
                       * The timeSyncUTC command sets the UTC time of a target device.
                       * @function bacnet.timeSyncUTC
                       * @param {string} receiver - IP address of the target device.
                       * @param {date} dateTime - The date and time to set on the target device.
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * client.timeSyncUTC('192.168.1.43', new Date());
                       */
                      timeSyncUTC(receiver, dateTime) {
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(buffer, 0, receiver);
                        encodeUnconfirmedServiceRequest22222(
                          buffer,
                          16,
                          9
                          /* UTC_TIME_SYNCHRONIZATION */
                        );
                        time_sync_exports22222.encode(buffer, dateTime);
                        this.sendBvlc(receiver, buffer);
                      }
                      /**
                       * The readProperty command reads a single property of an object from a device.
                       * @function bacnet.readProperty
                       * @param {string} receiver - IP address of the target device.
                       * @param {object} objectId - The BACNET object ID to read.
                       * @param {number} objectId.type - The BACNET object type to read.
                       * @param {number} objectId.instance - The BACNET object instance to read.
                       * @param {number} propertyId - The BACNET property id in the specified object to read.
                       * @param {object=} options
                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                       * @param {number=} options.arrayIndex - The array index of the property to be read.
                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                       *   console.log('value: ', value);
                       * });
                       */
                      readProperty(receiver, objectId, propertyId, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId(),
                          arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL22222
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          //@ts-ignore
                          receiver,
                          null,
                          DEFAULT_HOP_COUNT222222,
                          0,
                          0
                        );
                        const type = 0 | //@ts-ignore
                        (settings.maxSegments !== 0 ? 2 : 0);
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          type,
                          12,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        read_property_exports22222.encode(
                          buffer,
                          objectId.type,
                          objectId.instance,
                          propertyId,
                          settings.arrayIndex
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          const result = read_property_exports22222.decodeAcknowledge(
                            data.buffer,
                            data.offset,
                            data.length
                          );
                          if (!result) {
                            return void next(new Error("INVALID_DECODING"));
                          }
                          next(null, result);
                        });
                      }
                      /**
                       * The writeProperty command writes a single property of an object to a device.
                       * @function bacnet.writeProperty
                       * @param {string} receiver - IP address of the target device.
                       * @param {object} objectId - The BACNET object ID to write.
                       * @param {number} objectId.type - The BACNET object type to write.
                       * @param {number} objectId.instance - The BACNET object instance to write.
                       * @param {number} propertyId - The BACNET property id in the specified object to write.
                       * @param {object[]} values - A list of values to be written to the specified property.
                       * @param {ApplicationTag} values.type - The data-type of the value to be written.
                       * @param {number} values.value - The actual value to be written.
                       * @param {object=} options
                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                       * @param {number=} options.arrayIndex - The array index of the property to be read.
                       * @param {number=} options.priority - The priority of the value to be written.
                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                       *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                       * ], (err, value) => {
                       *   console.log('value: ', value);
                       * });
                       */
                      writeProperty(receiver, objectId, propertyId, values, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId(),
                          arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL22222,
                          priority: options.priority || ASN1_NO_PRIORITY22222
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          //@ts-ignore Todo somehow types do not match at all
                          receiver,
                          null,
                          DEFAULT_HOP_COUNT222222,
                          0,
                          0
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          15,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        write_property_exports22222.encode(
                          buffer,
                          objectId.type,
                          objectId.instance,
                          propertyId,
                          settings.arrayIndex,
                          settings.priority,
                          values
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          next(err);
                        });
                      }
                      /**
                       * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                       * @function bacnet.readPropertyMultiple
                       * @param {string} receiver - IP address of the target device.
                       * @param {object[]} propertiesArray - List of object and property specifications to be read.
                       * @param {object} propertiesArray.objectId - Specifies which object to read.
                       * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                       * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                       * @param {object[]} propertiesArray.properties - List of properties to be read.
                       * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                       * @param {object=} options
                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * const requestArray = [
                       *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                       * ];
                       * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                       *   console.log('value: ', value);
                       * });
                       */
                      readPropertyMultiple(receiver, propertiesArray, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                        const buffer = this._getBuffer(!!isForwarded);
                        encode3122222(
                          buffer,
                          0 | 4,
                          //@ts-ignore Todo somehow types do not match at all
                          receiver,
                          null,
                          DEFAULT_HOP_COUNT222222,
                          0,
                          0
                        );
                        const type = 0 | //@ts-ignore
                        (settings.maxSegments !== 0 ? 2 : 0);
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          type,
                          14,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        read_property_multiple_exports22222.encode(buffer, propertiesArray);
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return next(err);
                          }
                          const result = read_property_multiple_exports22222.decodeAcknowledge(
                            data.buffer,
                            data.offset,
                            data.length
                          );
                          if (!result) {
                            return next(new Error("INVALID_DECODING"));
                          }
                          next(null, result);
                        });
                      }
                      /**
                       * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                       * @function bacnet.writePropertyMultiple
                       * @param {string} receiver - IP address of the target device.
                       * @param {object[]} values - List of object and property specifications to be written.
                       * @param {object} values.objectId - Specifies which object to read.
                       * @param {number} values.objectId.type - The BACNET object type to read.
                       * @param {number} values.objectId.instance - The BACNET object instance to read.
                       * @param {object[]} values.values - List of properties to be written.
                       * @param {object} values.values.property - Property specifications to be written.
                       * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                       * @param {number} values.values.property.index - The array index of the property to be written.
                       * @param {object[]} values.values.value - A list of values to be written to the specified property.
                       * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                       * @param {object} values.values.value.value - The actual value to be written.
                       * @param {number} values.values.priority - The priority to be used for writing to the property.
                       * @param {object=} options
                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * const values = [
                       *   {objectId: {type: 8, instance: 44301}, values: [
                       *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                       *   ]}
                       * ];
                       * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                       *   console.log('value: ', value);
                       * });
                       */
                      writePropertyMultiple(receiver, values, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          //@ts-ignore
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          16,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId
                        );
                        write_property_multiple_exports22222.encodeObject(buffer, values);
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          next(err);
                        });
                      }
                      /**
                       * The confirmedCOVNotification command is used to push notifications to other
                       * systems that have registered with us via a subscribeCOV message.
                       * @function bacnet.confirmedCOVNotification
                       * @param {string} receiver - IP address of the target device.
                       * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                       * @param {number} monitoredObject.type - Object type.
                       * @param {number} monitoredObject.instance - Object instance.
                       * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                       * @param {number} initiatingDeviceId - Our BACnet device ID.
                       * @param {number} lifetime - Number of seconds left until the subscription expires.
                       * @param {array} values - values for the monitored object.  See example.
                       * @param {object=} options
                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * const settings = {deviceId: 123}; // our BACnet device
                       *
                       * // Items saved from subscribeCOV message
                       * const monitoredObject = {type: 1, instance: 1};
                       * const subscriberProcessId = 123;
                       *
                       * client.confirmedCOVNotification(
                       *   '192.168.1.43',
                       *   monitoredObject,
                       *   subscriberProcessId,
                       *   settings.deviceId,
                       *   30, // should be lifetime of subscription really
                       *   [
                       *     {
                       *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                       *       value: [
                       *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                       *       ],
                       *     },
                       *   ],
                       *   (err) => {
                       *     console.log('error: ', err);
                       *   }
                       * );
                       */
                      confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer();
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          1,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        cov_notify_exports22222.encode(
                          buffer,
                          subscribeId,
                          initiatingDeviceId,
                          monitoredObject,
                          lifetime,
                          values
                        );
                        encode3222222(
                          buffer.buffer,
                          10,
                          buffer.offset
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          next();
                        });
                      }
                      /**
                       * The deviceCommunicationControl command enables or disables network communication of the target device.
                       * @function bacnet.deviceCommunicationControl
                       * @param {string} receiver - IP address of the target device.
                       * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                       * @param {EnableDisable} enableDisable - The network communication state to set.
                       * @param {object=} options
                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                       * @param {string=} options.password - The optional password used to set the network communication state.
                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                       *   console.log('error: ', err);
                       * });
                       */
                      deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId(),
                          password: options.password
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          17,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        device_communication_control_exports22222.encode(
                          buffer,
                          timeDuration,
                          enableDisable,
                          settings.password
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          next(err);
                        });
                      }
                      /**
                       * The reinitializeDevice command initiates a restart of the target device.
                       * @function bacnet.reinitializeDevice
                       * @param {string} receiver - IP address of the target device.
                       * @param {ReinitializedState} state - The type of restart to be initiated.
                       * @param {object=} options
                       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                       * @param {string=} options.password - The optional password used to restart the device.
                       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                       *   console.log('value: ', value);
                       * });
                       */
                      reinitializeDevice(receiver, state, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId(),
                          password: options.password
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          20,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        reinitialize_device_exports22222.encode(buffer, state, settings.password);
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          next(err);
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param objectId
                       * @param position
                       * @param fileBuffer
                       * @param options
                       * @param next
                       */
                      writeFile(receiver, objectId, position, fileBuffer, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          7,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        atomic_write_file_exports22222.encode(
                          buffer,
                          false,
                          objectId,
                          position,
                          fileBuffer
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          const result = atomic_write_file_exports22222.decodeAcknowledge(
                            data.buffer,
                            data.offset,
                            data.length
                          );
                          if (!result) {
                            return void next(new Error("INVALID_DECODING"));
                          }
                          next(null, result);
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param objectId
                       * @param position
                       * @param count
                       * @param options
                       * @param next
                       */
                      readFile(receiver, objectId, position, count, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          6,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        atomic_read_file_exports22222.encode(buffer, true, objectId, position, count);
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          const result = atomic_read_file_exports22222.decodeAcknowledge(
                            data.buffer,
                            data.offset,
                            data.length
                          );
                          if (!result) {
                            return void next(new Error("INVALID_DECODING"));
                          }
                          next(null, result);
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param objectId
                       * @param idxBegin
                       * @param quantity
                       * @param options
                       * @param next
                       */
                      readRange(receiver, objectId, idxBegin, quantity, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          26,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        read_range_exports22222.encode(
                          buffer,
                          objectId,
                          131,
                          ASN1_ARRAY_ALL22222,
                          0,
                          idxBegin,
                          /* @__PURE__ */ new Date(),
                          quantity
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          const result = read_range_exports22222.decodeAcknowledge(
                            data.buffer,
                            data.offset,
                            data.length
                          );
                          if (!result) {
                            return void next(new Error("INVALID_DECODING"));
                          }
                          next(null, result);
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param objectId
                       * @param subscribeId
                       * @param cancel
                       * @param issueConfirmedNotifications
                       * @param lifetime
                       * @param options
                       * @param next
                       */
                      subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                        const next = nextFunc || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          // @ts-ignore TODO types not matching with documentation and code
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          5,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        subscribe_cov_exports22222.encode(
                          buffer,
                          subscribeId,
                          objectId,
                          cancel,
                          issueConfirmedNotifications,
                          lifetime
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          next();
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param objectId
                       * @param monitoredProperty
                       * @param subscribeId
                       * @param cancel
                       * @param issueConfirmedNotifications
                       * @param options
                       * @param next
                       */
                      subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          28,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        subscribe_property_exports22222.encode(
                          buffer,
                          subscribeId,
                          objectId,
                          cancel,
                          issueConfirmedNotifications,
                          0,
                          monitoredProperty,
                          false,
                          15
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          next();
                        });
                      }
                      /**
                       * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                       * @function bacnet.unconfirmedCOVNotification
                       * @param {string} receiver - IP address of the target device.
                       * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                       * @param {number} initiatingDeviceId - The id of this device.
                       * @param {object} monitoredObjectId - Specifies about which object the notification is.
                       * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                       * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                       * @param {number} timeRemaining - How long the subscription is still active in seconds.
                       * @param {object[]} values - List of properties with updated values.
                       * @param {object} values.property - Property specifications.
                       * @param {number} values.property.id - The updated BACNET property id.
                       * @param {number} values.property.index - The array index of the updated property.
                       * @param {object[]} values.value - A list of updated values.
                       * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                       * @param {object} values.value.value - The actual updated value.
                       * @param {number} values.priority - The priority of the updated property.
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * client.unconfirmedCOVNotification(
                       *            '127.0.0.1',
                       *            3,
                       *            433,
                       *            {type: 2, instance: 122},
                       *            120,
                       *            [
                       *              {
                       *                property: {id: 85},
                       *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                       *              },
                       *              {
                       *                property: {id: 111},
                       *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                       *              }
                       *            ]);
                       */
                      unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                        const buffer = this._getBuffer();
                        encode3122222(buffer, 0, receiver);
                        encodeUnconfirmedServiceRequest22222(
                          buffer,
                          16,
                          2
                          /* UNCONFIRMED_COV_NOTIFICATION */
                        );
                        cov_notify_exports22222.encode(
                          buffer,
                          subscriberProcessId,
                          initiatingDeviceId,
                          monitoredObjectId,
                          timeRemaining,
                          values
                        );
                        encode3222222(
                          buffer.buffer,
                          10,
                          buffer.offset
                        );
                        this._transport.send(buffer.buffer, buffer.offset, receiver);
                      }
                      /**
                       *
                       * @param receiver
                       * @param objectId
                       * @param values
                       * @param options
                       * @param next
                       */
                      createObject(receiver, objectId, values, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          10,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        create_object_exports22222.encode(buffer, objectId, values);
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          next();
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param objectId
                       * @param options
                       * @param next
                       */
                      deleteObject(receiver, objectId, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          11,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        delete_object_exports22222.encode(buffer, objectId);
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          next();
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param objectId
                       * @param reference
                       * @param values
                       * @param options
                       * @param next
                       */
                      removeListElement(receiver, objectId, reference, values, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          9,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        add_list_element_exports22222.encode(
                          buffer,
                          objectId,
                          reference.id,
                          reference.index,
                          values
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          next();
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param objectId
                       * @param reference
                       * @param values
                       * @param options
                       * @param next
                       */
                      addListElement(receiver, objectId, reference, values, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          8,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        add_list_element_exports22222.encode(
                          buffer,
                          objectId,
                          reference.id,
                          reference.index,
                          values
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          next();
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param options
                       * @param next
                       */
                      getAlarmSummary(receiver, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          3,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          const result = alarm_summary_exports22222.decode(
                            data.buffer,
                            data.offset,
                            data.length
                          );
                          if (!result) {
                            return void next(new Error("INVALID_DECODING"));
                          }
                          next(null, result);
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param objectId
                       * @param options
                       * @param next
                       */
                      getEventInformation(receiver, objectId, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          29,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        encodeContextObjectId22222(buffer, 0, objectId.type, objectId.instance);
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          const result = event_information_exports22222.decode(
                            data.buffer,
                            data.offset,
                            data.length
                          );
                          if (!result) {
                            return void next(new Error("INVALID_DECODING"));
                          }
                          next(null, result);
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param objectId
                       * @param eventState
                       * @param ackText
                       * @param evTimeStamp
                       * @param ackTimeStamp
                       * @param options
                       * @param next
                       */
                      acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          0,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        alarm_acknowledge_exports22222.encode(
                          buffer,
                          57,
                          objectId,
                          eventState,
                          ackText,
                          evTimeStamp,
                          ackTimeStamp
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          next();
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param vendorId
                       * @param serviceNumber
                       * @param data
                       * @param options
                       * @param next
                       */
                      confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          18,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        private_transfer_exports22222.encode(buffer, vendorId, serviceNumber, data);
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data2) => {
                          if (err) {
                            return void next(err);
                          }
                          next();
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param vendorId
                       * @param serviceNumber
                       * @param data
                       */
                      unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(buffer, 0, receiver);
                        encodeUnconfirmedServiceRequest22222(
                          buffer,
                          16,
                          4
                          /* UNCONFIRMED_PRIVATE_TRANSFER */
                        );
                        private_transfer_exports22222.encode(buffer, vendorId, serviceNumber, data);
                        this.sendBvlc(receiver, buffer);
                      }
                      /**
                       *
                       * @param receiver
                       * @param acknowledgmentFilter
                       * @param options
                       * @param next
                       */
                      getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          4,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        get_enrollment_summary_exports22222.encode(
                          buffer,
                          acknowledgmentFilter,
                          options.enrollmentFilter,
                          options.eventStateFilter,
                          options.eventTypeFilter,
                          options.priorityFilter,
                          options.notificationClassFilter
                        );
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          const result = get_enrollment_summary_exports22222.decodeAcknowledge(
                            data.buffer,
                            data.offset,
                            data.length
                          );
                          if (!result) {
                            return void next(new Error("INVALID_DECODING"));
                          }
                          next(null, result);
                        });
                      }
                      /**
                       *
                       * @param receiver
                       * @param eventNotification
                       */
                      unconfirmedEventNotification(receiver, eventNotification) {
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(buffer, 0, receiver);
                        encodeUnconfirmedServiceRequest22222(
                          buffer,
                          16,
                          3
                          /* UNCONFIRMED_EVENT_NOTIFICATION */
                        );
                        event_notify_data_exports22222.encode(buffer, eventNotification);
                        this.sendBvlc(receiver, buffer);
                      }
                      /**
                       *
                       * @param receiver
                       * @param eventNotification
                       * @param options
                       * @param next
                       */
                      confirmedEventNotification(receiver, eventNotification, options, next) {
                        next = next || options;
                        const settings = {
                          maxSegments: options.maxSegments || 112,
                          maxApdu: options.maxApdu || 5,
                          invokeId: options.invokeId || this._getInvokeId()
                        };
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(
                          buffer,
                          0 | 4,
                          receiver
                        );
                        encodeConfirmedServiceRequest22222(
                          buffer,
                          0,
                          2,
                          settings.maxSegments,
                          settings.maxApdu,
                          settings.invokeId,
                          0,
                          0
                        );
                        event_notify_data_exports22222.encode(buffer, eventNotification);
                        this.sendBvlc(receiver, buffer);
                        this._addCallback(settings.invokeId, (err, data) => {
                          if (err) {
                            return void next(err);
                          }
                          next();
                        });
                      }
                      /**
                       * The readPropertyResponse call sends a response with information about one of our properties.
                       * @function bacnet.readPropertyResponse
                       * @param {string} receiver - IP address of the target device.
                       * @param {number} invokeId - ID of the original readProperty request.
                       * @param {object} objectId - objectId from the original request,
                       * @param {object} property - property being read, taken from the original request.
                       * @param {object=} options varying behaviour for special circumstances
                       * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                       */
                      readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(buffer, 0, receiver);
                        encodeComplexAck22222(
                          buffer,
                          48,
                          12,
                          invokeId
                        );
                        read_property_exports22222.encodeAcknowledge(
                          buffer,
                          objectId,
                          property.id,
                          property.index,
                          value
                        );
                        this.sendBvlc(receiver, buffer);
                      }
                      readPropertyMultipleResponse(receiver, invokeId, values) {
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(buffer, 0, receiver);
                        encodeComplexAck22222(
                          buffer,
                          48,
                          14,
                          invokeId
                        );
                        read_property_multiple_exports22222.encodeAcknowledge(buffer, values);
                        this.sendBvlc(receiver, buffer);
                      }
                      /**
                       * The iAmResponse command is sent as a reply to a whoIs request.
                       * @function bacnet.iAmResponse
                       * @param {object} receiver - address to send packet to, null for local broadcast.
                       * @param {number} deviceId - Our device ID.
                       * @param {number} segmentation - an enum.Segmentation value.
                       * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                       */
                      iAmResponse(receiver, deviceId, segmentation, vendorId) {
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(buffer, 0, receiver);
                        encodeUnconfirmedServiceRequest22222(
                          buffer,
                          16,
                          0
                          /* I_AM */
                        );
                        i_am_exports22222.encode(
                          buffer,
                          deviceId,
                          this._transport.getMaxPayload(),
                          segmentation,
                          vendorId
                        );
                        this.sendBvlc(receiver, buffer);
                      }
                      /**
                       *
                       * @param receiver
                       * @param deviceId
                       * @param objectId
                       * @param objectName
                       */
                      iHaveResponse(receiver, deviceId, objectId, objectName) {
                        const buffer = this._getBuffer(
                          !!(typeof receiver !== "string" && receiver.forwardedFrom)
                        );
                        encode3122222(buffer, 0, receiver);
                        encodeUnconfirmedServiceRequest22222(
                          buffer,
                          16,
                          1
                          /* I_HAVE */
                        );
                        i_have_exports22222.encode(buffer, deviceId, objectId, objectName);
                        this.sendBvlc(receiver, buffer);
                      }
                      /**
                       *
                       * @param receiver
                       * @param service
                       * @param invokeId
                       */
                      simpleAckResponse(receiver, service, invokeId) {
                        if (typeof receiver === "string")
                          return;
                        const buffer = this._getBuffer(!!receiver.forwardedFrom);
                        encode3122222(buffer, 0, receiver);
                        encodeSimpleAck22222(
                          buffer,
                          32,
                          service,
                          invokeId
                        );
                        this.sendBvlc(receiver, buffer);
                      }
                      /**
                       *
                       * @param receiver
                       * @param service
                       * @param invokeId
                       * @param errorClass
                       * @param errorCode
                       */
                      errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                        trace222222(
                          `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                            service
                          )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                        );
                        trace222222(
                          `error message ${error_exports22222.buildMessage({
                            class: errorClass,
                            code: errorCode
                          })}`
                        );
                        const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                        if (typeof receiver === "string")
                          throw new Error("receiver must be object");
                        const buffer = this._getBuffer(hasSource);
                        encode3122222(buffer, 0, receiver);
                        encodeError22222(buffer, 80, service, invokeId);
                        error_exports22222.encode(buffer, errorClass, errorCode);
                        this.sendBvlc(receiver, buffer);
                      }
                      /**
                       *
                       * @param receiver
                       * @param buffer
                       */
                      sendBvlc(receiver, buffer) {
                        if (typeof receiver === "string") {
                          receiver = {
                            address: receiver
                          };
                        }
                        if (receiver && receiver.forwardedFrom) {
                          encode3222222(
                            buffer.buffer,
                            4,
                            buffer.offset,
                            receiver.forwardedFrom
                          );
                        } else if (receiver && receiver.address) {
                          encode3222222(
                            buffer.buffer,
                            10,
                            buffer.offset
                          );
                        } else {
                          encode3222222(
                            buffer.buffer,
                            11,
                            buffer.offset
                          );
                        }
                        this._transport.send(
                          buffer.buffer,
                          buffer.offset,
                          receiver && receiver.address || null
                        );
                      }
                      /**
                       * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                       * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                       * @function bacnet.resultResponse
                       * @param {string} receiver - IP address of the target device.
                       * @param {number} resultCode - Single value from BvlcResultFormat enum.
                       */
                      resultResponse(receiver, resultCode) {
                        const buffer = this._getBuffer();
                        encodeResult22222(buffer, resultCode);
                        encode3222222(
                          buffer.buffer,
                          0,
                          buffer.offset
                        );
                        this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                      }
                      /**
                       * Unloads the current bacnet instance and closes the underlying UDP socket.
                       * @function bacnet.close
                       * @example
                       * const bacnet = require('node-bacnet');
                       * const client = new bacnet();
                       *
                       * client.close();
                       */
                      close() {
                        this._transport.close();
                      }
                      /**
                       * Helper function to take an array of enums and produce a bitstring suitable
                       * for inclusion as a property.
                       *
                       * @example
                       * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                       *   {value: bacnet.createBitstring([
                       *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                       *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                       *   ]),
                       *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                       * ],
                       */
                      static createBitstring(items) {
                        let offset = 0;
                        let bytes = [];
                        let bitsUsed = 0;
                        while (items.length) {
                          let value = 0;
                          items = items.filter((i) => {
                            if (i >= offset + 8) {
                              return true;
                            }
                            value |= 1 << i - offset;
                            bitsUsed = Math.max(bitsUsed, i);
                            return false;
                          });
                          bytes.push(value);
                          offset += 8;
                        }
                        bitsUsed++;
                        return {
                          value: bytes,
                          bitsUsed
                        };
                      }
                    };
                    var import_underscore22222 = __toESM22222(require("underscore"));
                    var import_process22222 = __toESM22222(require("process"));
                    var import__22222 = __toESM22222(require_dist22222());
                    var PropertyIdentifierToEnumMap22222 = {};
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.OBJECT_TYPE] = import__22222.enums.ObjectType;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__22222.enums.Segmentation;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.EVENT_STATE] = import__22222.enums.EventState;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.UNITS] = import__22222.enums.EngineeringUnits;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.RELIABILITY] = import__22222.enums.Reliability;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__22222.enums.NotifyType;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.POLARITY] = import__22222.enums.Polarity;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__22222.enums.ServicesSupported;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__22222.enums.ObjectTypesSupported;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.STATUS_FLAGS] = import__22222.enums.StatusFlags;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__22222.enums.LimitEnable;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.EVENT_ENABLE] = import__22222.enums.EventTransitionBits;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__22222.enums.EventTransitionBits;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__22222.enums.DeviceStatus;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__22222.enums.DeviceStatus;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.ACK_REQUIRED] = import__22222.enums.EventTransitionBits;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.LOGGING_TYPE] = import__22222.enums.LoggingType;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__22222.enums.FileAccessMethod;
                    PropertyIdentifierToEnumMap22222[import__22222.enums.PropertyIdentifier.NODE_TYPE] = import__22222.enums.NodeType;
                    var ObjectTypeSpecificPropertyIdentifierToEnumMap22222 = {};
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BINARY_INPUT] = {};
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BINARY_INPUT][import__22222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222.enums.BinaryPV;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BINARY_INPUT][import__22222.enums.PropertyIdentifier.MODE] = import__22222.enums.BinaryPV;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.ANALOG_INPUT] = {};
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.ANALOG_INPUT][import__22222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222.enums.BinaryPV;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.ANALOG_OUTPUT] = {};
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.ANALOG_OUTPUT][import__22222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222.enums.BinaryPV;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BINARY_OUTPUT] = {};
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BINARY_OUTPUT][import__22222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222.enums.BinaryPV;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BINARY_OUTPUT][import__22222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__22222.enums.BinaryPV;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BINARY_VALUE] = {};
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BINARY_VALUE][import__22222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222.enums.BinaryPV;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BINARY_VALUE][import__22222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__22222.enums.BinaryPV;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__22222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222.enums.BinaryLightingPV;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BITSTRING_VALUE] = {};
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.BINARY_VALUE][import__22222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222.enums.BinaryPV;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222.enums.LifeSafetyState;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222.enums.PropertyIdentifier.TRACKING_VALUE] = import__22222.enums.LifeSafetyState;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222.enums.PropertyIdentifier.MODE] = import__22222.enums.LifeSafetyMode;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__22222.enums.LifeSafetyMode;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222.enums.PropertyIdentifier.SILENCED] = import__22222.enums.LifeSafetyState;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.LIFE_SAFETY_POINT][import__22222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__22222.enums.LifeSafetyOperation;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.LIFE_SAFETY_ZONE][import__22222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222.enums.LifeSafetyState;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.LIFE_SAFETY_ZONE][import__22222.enums.PropertyIdentifier.MODE] = import__22222.enums.LifeSafetyMode;
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.LOAD_CONTROL] = {};
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22222[import__22222.enums.ObjectType.LOAD_CONTROL][import__22222.enums.PropertyIdentifier.PRESENT_VALUE] = import__22222.enums.ShedState;
                    var propSubSet22222 = import_process22222.default.argv.includes("--all") ? Object.values(import__22222.enums.PropertyIdentifier) : [
                      /* normally supported from all devices */
                      import__22222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                      import__22222.enums.PropertyIdentifier.OBJECT_NAME,
                      import__22222.enums.PropertyIdentifier.OBJECT_TYPE,
                      import__22222.enums.PropertyIdentifier.PRESENT_VALUE,
                      import__22222.enums.PropertyIdentifier.STATUS_FLAGS,
                      import__22222.enums.PropertyIdentifier.EVENT_STATE,
                      import__22222.enums.PropertyIdentifier.RELIABILITY,
                      import__22222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                      import__22222.enums.PropertyIdentifier.UNITS,
                      /* other properties */
                      import__22222.enums.PropertyIdentifier.DESCRIPTION,
                      import__22222.enums.PropertyIdentifier.SYSTEM_STATUS,
                      import__22222.enums.PropertyIdentifier.VENDOR_NAME,
                      import__22222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                      import__22222.enums.PropertyIdentifier.MODEL_NAME,
                      import__22222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                      import__22222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                      import__22222.enums.PropertyIdentifier.LOCATION,
                      import__22222.enums.PropertyIdentifier.LOCAL_DATE,
                      import__22222.enums.PropertyIdentifier.LOCAL_TIME,
                      import__22222.enums.PropertyIdentifier.UTC_OFFSET,
                      import__22222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                      import__22222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                      import__22222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                      import__22222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                      import__22222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                      import__22222.enums.PropertyIdentifier.OBJECT_LIST,
                      import__22222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                      import__22222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                      import__22222.enums.PropertyIdentifier.APDU_TIMEOUT,
                      import__22222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                      import__22222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                      import__22222.enums.PropertyIdentifier.DATABASE_REVISION,
                      import__22222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                      import__22222.enums.PropertyIdentifier.MAX_MASTER,
                      import__22222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                      import__22222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                    ];
                    var debug422222 = import_process22222.default.argv.includes("--debug");
                    function getAllPropertiesManually22222(address, objectId, callback, propList, result) {
                      if (!propList) {
                        propList = propSubSet22222.map((x) => x);
                      }
                      if (!result) {
                        result = [];
                      }
                      if (!propList.length) {
                        return callback({
                          values: [
                            {
                              objectId,
                              values: result
                            }
                          ]
                        });
                      }
                      const prop = propList.shift();
                      bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                        if (!err) {
                          if (debug422222) {
                            console.log("Handle value " + prop + ": ", JSON.stringify(value));
                          }
                          const objRes = value.property;
                          objRes.value = value.values;
                          result.push(objRes);
                        } else {
                        }
                        getAllPropertiesManually22222(address, objectId, callback, propList, result);
                      });
                    }
                    function readBit22222(buffer, i, bit) {
                      return (buffer[i] >> bit) % 2;
                    }
                    function handleBitString22222(buffer, bitsUsed, usedEnum) {
                      const res = [];
                      for (let i = 0; i < bitsUsed; i++) {
                        const bufferIndex = Math.floor(i / 8);
                        if (readBit22222(buffer, bufferIndex, i % 8)) {
                          res.push(import__22222.enums.getEnumName(usedEnum, i));
                        }
                      }
                      return res;
                    }
                    function parseValue22222(address, parentType, value, supportsMultiple = false, callback) {
                      let resValue = null;
                      if (value && value.type && value.value !== null && value.value !== void 0) {
                        switch (value.type) {
                          case import__22222.enums.ApplicationTag.NULL:
                            resValue = null;
                            break;
                          case import__22222.enums.ApplicationTag.BOOLEAN:
                            resValue = !!value.value;
                            break;
                          case import__22222.enums.ApplicationTag.UNSIGNED_INTEGER:
                          case import__22222.enums.ApplicationTag.SIGNED_INTEGER:
                          case import__22222.enums.ApplicationTag.REAL:
                          case import__22222.enums.ApplicationTag.DOUBLE:
                          case import__22222.enums.ApplicationTag.CHARACTER_STRING:
                            resValue = value.value;
                            break;
                          case import__22222.enums.ApplicationTag.DATE:
                          case import__22222.enums.ApplicationTag.TIME:
                          case import__22222.enums.ApplicationTag.TIMESTAMP:
                            resValue = value.value;
                            break;
                          case import__22222.enums.ApplicationTag.BIT_STRING:
                            if (ObjectTypeSpecificPropertyIdentifierToEnumMap22222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap22222[parentType][objId]) {
                              resValue = handleBitString22222(
                                value.value.value,
                                value.value.bitsUsed,
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222[parentType][objId]
                              );
                            } else if (PropertyIdentifierToEnumMap22222[objId]) {
                              resValue = handleBitString22222(
                                value.value.value,
                                value.value.bitsUsed,
                                PropertyIdentifierToEnumMap22222[objId]
                              );
                            } else {
                              if (parentType !== import__22222.enums.ObjectType.BITSTRING_VALUE) {
                                console.log(
                                  "Unknown value for BIT_STRING type for objId " + import__22222.enums.getEnumName(import__22222.enums.PropertyIdentifier, objId) + " and parent type " + import__22222.enums.getEnumName(import__22222.enums.ObjectType, parentType)
                                );
                              }
                              resValue = value.value;
                            }
                            break;
                          case import__22222.enums.ApplicationTag.ENUMERATED:
                            if (ObjectTypeSpecificPropertyIdentifierToEnumMap22222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap22222[parentType][objId]) {
                              resValue = import__22222.enums.getEnumName(
                                ObjectTypeSpecificPropertyIdentifierToEnumMap22222[parentType][objId],
                                value.value
                              );
                            } else if (PropertyIdentifierToEnumMap22222[objId]) {
                              resValue = import__22222.enums.getEnumName(
                                PropertyIdentifierToEnumMap22222[objId],
                                value.value
                              );
                            } else {
                              console.log(
                                "Unknown value for ENUMERATED type for objId " + import__22222.enums.getEnumName(import__22222.enums.PropertyIdentifier, objId) + " and parent type " + import__22222.enums.getEnumName(import__22222.enums.ObjectType, parentType)
                              );
                              resValue = value.value;
                            }
                            break;
                          case import__22222.enums.ApplicationTag.OBJECTIDENTIFIER:
                            if (objId === import__22222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId === import__22222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId === import__22222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                              resValue = value.value;
                            } else if (supportsMultiple) {
                              const requestArray = [
                                {
                                  objectId: value.value,
                                  // meaning read all properties
                                  properties: [{ id: 8 }]
                                }
                              ];
                              bacnetClient.readPropertyMultiple(
                                address,
                                requestArray,
                                (err, resValue2) => {
                                  parseDeviceObject22222(address, resValue2, value.value, true, callback);
                                }
                              );
                              return;
                            } else {
                              getAllPropertiesManually22222(address, value.value, (result) => {
                                parseDeviceObject22222(address, result, value.value, false, callback);
                              });
                              return;
                            }
                            break;
                          case import__22222.enums.ApplicationTag.OCTET_STRING:
                            resValue = value.value;
                            break;
                          case import__22222.enums.ApplicationTag.ERROR:
                            resValue = {
                              errorClass: import__22222.enums.getEnumName(
                                import__22222.enums.ErrorClass,
                                value.value.errorClass
                              ),
                              errorCode: import__22222.enums.getEnumName(import__22222.enums.ErrorCode, value.value.errorCode)
                            };
                            break;
                          case import__22222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                          case import__22222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                          case import__22222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                          case import__22222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                            resValue = value.value;
                            break;
                          case import__22222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                            parseValue22222(
                              address,
                              objId,
                              parentType,
                              value.value,
                              supportsMultiple,
                              callback
                            );
                            return;
                          case import__22222.enums.ApplicationTag.READ_ACCESS_RESULT:
                            resValue = value.value;
                            break;
                          default:
                            console.log(
                              "unknown type " + value.type + ": " + JSON.stringify(value)
                            );
                            resValue = value;
                        }
                      }
                      setImmediate(() => callback(resValue));
                    }
                    function parseDeviceObject22222(address, obj, parent, supportsMultiple, callback) {
                      if (debug422222) {
                        console.log(
                          "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                        );
                      }
                      if (!obj) {
                        console.log("object not valid on parse device object");
                        return;
                      }
                      if (!obj.values || !Array.isArray(obj.values)) {
                        console.log("No device or invalid response");
                        callback({ ERROR: "No device or invalid response" });
                        return;
                      }
                      let cbCount = 0;
                      let objDef = {};
                      const finalize = () => {
                        Object.keys(objDef).forEach((devId) => {
                          Object.keys(objDef[devId]).forEach((objId2) => {
                            if (objDef[devId][objId2].length === 1) {
                              objDef[devId][objId2] = objDef[devId][objId2][0];
                            }
                          });
                        });
                        if (obj.values.length === 1) {
                          objDef = objDef[obj.values[0].objectId.instance];
                        }
                        if (debug422222) {
                          console.log(
                            "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                          );
                        }
                        callback(objDef);
                      };
                      obj.values.forEach((devBaseObj) => {
                        if (!devBaseObj.objectId) {
                          console.log("No device Id found in object data");
                          return;
                        }
                        if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                          console.log("No device type or instance found in object data");
                          return;
                        }
                        if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                          console.log("No device values response");
                          return;
                        }
                        const deviceId = devBaseObj.objectId.instance;
                        objDef[deviceId] = {};
                        devBaseObj.values.forEach((devObj) => {
                          let objId2 = import__22222.enums.getEnumName(import__22222.enums.PropertyIdentifier, devObj.id);
                          if (devObj.index !== 4294967295) {
                            objId2 += "-" + devObj.index;
                          }
                          if (debug422222) {
                            console.log("Handle Object property:", deviceId, objId2, devObj.value);
                          }
                          devObj.value.forEach((val) => {
                            if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                              objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                              objDef[deviceId][objId2].push(val.value);
                              return;
                            }
                            cbCount++;
                            parseValue22222(
                              address,
                              devObj.id,
                              parent.type,
                              val,
                              supportsMultiple,
                              (parsedValue) => {
                                if (debug422222) {
                                  console.log(
                                    "RETURN parsedValue",
                                    deviceId,
                                    objId2,
                                    devObj.value,
                                    parsedValue
                                  );
                                }
                                objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                                objDef[deviceId][objId2].push(parsedValue);
                                if (!--cbCount) {
                                  finalize();
                                }
                              }
                            );
                          });
                        });
                      });
                      if (cbCount === 0) {
                        finalize();
                      }
                    }
                    var limitToDevice22222 = null;
                    if (import_process22222.default.argv.length === 3) {
                      limitToDevice22222 = parseInt(import_process22222.default.argv[2]);
                      if (isNaN(limitToDevice22222)) {
                        limitToDevice22222 = null;
                      }
                    }
                    var node_bacnet_default22222 = Client22222;
                  }
                });
                var node_bacnet_exports2222 = {};
                __export2222(node_bacnet_exports2222, {
                  _: () => import_underscore2222.default,
                  bacnetErrorToString: () => bacnetErrorToString2222,
                  default: () => node_bacnet_default2222,
                  enums: () => enum_exports2222,
                  parseValue: () => parseValue2222
                });
                module2222.exports = __toCommonJS2222(node_bacnet_exports2222);
                var enum_exports2222 = {};
                __export2222(enum_exports2222, {
                  ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL2222,
                  ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS2222,
                  ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG2222,
                  ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES2222,
                  ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE2222,
                  ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT2222,
                  ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE2222,
                  ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY2222,
                  ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID2222,
                  ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY2222,
                  ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY2222,
                  AbortReason: () => AbortReason2222,
                  AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable2222,
                  AccessCredentialDisable: () => AccessCredentialDisable2222,
                  AccessCredentialDisableReason: () => AccessCredentialDisableReason2222,
                  AccessEvent: () => AccessEvent2222,
                  AccessPassbackMode: () => AccessPassbackMode2222,
                  AccessUserType: () => AccessUserType2222,
                  AccessZoneOccupancyState: () => AccessZoneOccupancyState2222,
                  Action: () => Action2222,
                  ApplicationTag: () => ApplicationTag2222,
                  ApplicationTagName: () => ApplicationTagName2222,
                  AuthenticationFactorType: () => AuthenticationFactorType2222,
                  AuthenticationStatus: () => AuthenticationStatus2222,
                  AuthorizationExemption: () => AuthorizationExemption2222,
                  AuthorizationMode: () => AuthorizationMode2222,
                  BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH3222,
                  BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP2222,
                  BackupState: () => BackupState2222,
                  BinaryLightingPV: () => BinaryLightingPV2222,
                  BinaryPV: () => BinaryPV2222,
                  BvlcResultFormat: () => BvlcResultFormat2222,
                  BvlcResultPurpose: () => BvlcResultPurpose2222,
                  CharacterStringEncoding: () => CharacterStringEncoding2222,
                  ConfirmedServiceChoice: () => ConfirmedServiceChoice2222,
                  CovType: () => CovType2222,
                  DaysOfWeek: () => DaysOfWeek2222,
                  DeviceStatus: () => DeviceStatus2222,
                  DoorAlarmState: () => DoorAlarmState2222,
                  DoorSecuredStatus: () => DoorSecuredStatus2222,
                  DoorStatus: () => DoorStatus2222,
                  DoorValue: () => DoorValue2222,
                  EnableDisable: () => EnableDisable2222,
                  EngineeringUnits: () => EngineeringUnits2222,
                  ErrorClass: () => ErrorClass2222,
                  ErrorClassName: () => ErrorClassName2222,
                  ErrorCode: () => ErrorCode2222,
                  ErrorCodeName: () => ErrorCodeName2222,
                  EscalatorFault: () => EscalatorFault2222,
                  EscalatorMode: () => EscalatorMode2222,
                  EscalatorOperationDirection: () => EscalatorOperationDirection2222,
                  EventState: () => EventState2222,
                  EventTransitionBits: () => EventTransitionBits2222,
                  EventType: () => EventType2222,
                  FaultType: () => FaultType2222,
                  FileAccessMethod: () => FileAccessMethod2222,
                  IPMode: () => IPMode2222,
                  LifeSafetyMode: () => LifeSafetyMode2222,
                  LifeSafetyOperation: () => LifeSafetyOperation2222,
                  LifeSafetyState: () => LifeSafetyState2222,
                  LiftCarDirection: () => LiftCarDirection2222,
                  LiftCarDoorCommand: () => LiftCarDoorCommand2222,
                  LiftCarDriveStatus: () => LiftCarDriveStatus2222,
                  LiftCarMode: () => LiftCarMode2222,
                  LiftFault: () => LiftFault2222,
                  LiftGroupMode: () => LiftGroupMode2222,
                  LightingInProgress: () => LightingInProgress2222,
                  LightingOperation: () => LightingOperation2222,
                  LightingTransition: () => LightingTransition2222,
                  LimitEnable: () => LimitEnable2222,
                  LockStatus: () => LockStatus2222,
                  LogStatus: () => LogStatus2222,
                  LoggingType: () => LoggingType2222,
                  Maintenance: () => Maintenance2222,
                  MaxApduLengthAccepted: () => MaxApduLengthAccepted2222,
                  MaxSegmentsAccepted: () => MaxSegmentsAccepted2222,
                  NetworkLayerMessageType: () => NetworkLayerMessageType2222,
                  NetworkNumberQuality: () => NetworkNumberQuality2222,
                  NetworkPortCommand: () => NetworkPortCommand2222,
                  NetworkType: () => NetworkType2222,
                  NodeType: () => NodeType2222,
                  NotifyType: () => NotifyType2222,
                  NpduControlBit: () => NpduControlBit2222,
                  NpduControlPriority: () => NpduControlPriority2222,
                  ObjectType: () => ObjectType2222,
                  ObjectTypesSupported: () => ObjectTypesSupported2222,
                  PDU_TYPE_MASK: () => PDU_TYPE_MASK2222,
                  PduConReqBit: () => PduConReqBit2222,
                  PduSegAckBit: () => PduSegAckBit2222,
                  PduType: () => PduType2222,
                  Polarity: () => Polarity2222,
                  ProgramError: () => ProgramError2222,
                  ProgramRequest: () => ProgramRequest2222,
                  ProgramState: () => ProgramState2222,
                  PropertyIdentifier: () => PropertyIdentifier2222,
                  PropertyStates: () => PropertyStates2222,
                  ProtocolLevel: () => ProtocolLevel2222,
                  ReadRangeType: () => ReadRangeType2222,
                  ReinitializedState: () => ReinitializedState2222,
                  RejectReason: () => RejectReason2222,
                  Relationship: () => Relationship2222,
                  Reliability: () => Reliability2222,
                  RestartReason: () => RestartReason2222,
                  ResultFlags: () => ResultFlags2222,
                  SecurityLevel: () => SecurityLevel2222,
                  SecurityPolicy: () => SecurityPolicy2222,
                  Segmentation: () => Segmentation2222,
                  ServicesSupported: () => ServicesSupported2222,
                  ShedState: () => ShedState2222,
                  SilencedState: () => SilencedState2222,
                  StatusFlags: () => StatusFlags2222,
                  TimeStamp: () => TimeStamp2222,
                  TimerState: () => TimerState2222,
                  TimerTransition: () => TimerTransition2222,
                  UnconfirmedServiceChoice: () => UnconfirmedServiceChoice2222,
                  VTClass: () => VTClass2222,
                  WriteStatus: () => WriteStatus2222,
                  getEnumName: () => getEnumName2222
                });
                var import_debug4222 = __toESM2222(require("debug"));
                var debug5222 = (0, import_debug4222.default)("bacnet=enum=debug");
                var trace3222 = (0, import_debug4222.default)("bacnet=enum=trace");
                function invertEnum2222(enumToInvert) {
                  return Object.keys(enumToInvert).reduce((acc, key) => {
                    const val = enumToInvert[key];
                    acc[val] = key;
                    return acc;
                  }, {});
                }
                function getEnumName2222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
                  if (!Number.isInteger(value)) {
                    throw new Error(
                      'getEnumName() can only be passed an integer value, was given "' + value + '"'
                    );
                  }
                  let foundEntry;
                  try {
                    const invertedGroup = invertEnum2222(group);
                    foundEntry = invertedGroup[value];
                    if (foundEntry === void 0 && undefinedFallbackValue) {
                      foundEntry = undefinedFallbackValue;
                    }
                    if (foundEntry === void 0) {
                      foundEntry = value.toString();
                    } else if (addNumberValue) {
                      let strinmanipulation = "";
                      strinmanipulation += "(" + value + ")";
                      foundEntry = foundEntry + strinmanipulation;
                    }
                  } catch (e) {
                    trace3222(e.message);
                    foundEntry = null;
                  }
                  return foundEntry;
                }
                var PDU_TYPE_MASK2222 = 240;
                var ASN1_MAX_OBJECT2222 = 1023;
                var ASN1_INSTANCE_BITS2222 = 22;
                var ASN1_MAX_INSTANCE2222 = 4194303;
                var ASN1_MAX_BITSTRING_BYTES2222 = 15;
                var ASN1_ARRAY_ALL2222 = 4294967295;
                var ASN1_NO_PRIORITY2222 = 0;
                var ASN1_MIN_PRIORITY2222 = 1;
                var ASN1_MAX_PRIORITY2222 = 16;
                var ASN1_MAX_APPLICATION_TAG2222 = 16;
                var ASN1_MAX_OBJECT_TYPE2222 = 1024;
                var ASN1_MAX_PROPERTY_ID2222 = 4194303;
                var BVLL_TYPE_BACNET_IP2222 = 129;
                var BVLC_HEADER_LENGTH3222 = 4;
                var ConfirmedServiceChoice2222 = /* @__PURE__ */ ((ConfirmedServiceChoice22222) => {
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["VT_OPEN"] = 21] = "VT_OPEN";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["VT_CLOSE"] = 22] = "VT_CLOSE";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["VT_DATA"] = 23] = "VT_DATA";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["READ_RANGE"] = 26] = "READ_RANGE";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                  ConfirmedServiceChoice22222[ConfirmedServiceChoice22222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                  return ConfirmedServiceChoice22222;
                })(ConfirmedServiceChoice2222 || {});
                var UnconfirmedServiceChoice2222 = /* @__PURE__ */ ((UnconfirmedServiceChoice22222) => {
                  UnconfirmedServiceChoice22222[UnconfirmedServiceChoice22222["I_AM"] = 0] = "I_AM";
                  UnconfirmedServiceChoice22222[UnconfirmedServiceChoice22222["I_HAVE"] = 1] = "I_HAVE";
                  UnconfirmedServiceChoice22222[UnconfirmedServiceChoice22222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
                  UnconfirmedServiceChoice22222[UnconfirmedServiceChoice22222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
                  UnconfirmedServiceChoice22222[UnconfirmedServiceChoice22222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
                  UnconfirmedServiceChoice22222[UnconfirmedServiceChoice22222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
                  UnconfirmedServiceChoice22222[UnconfirmedServiceChoice22222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
                  UnconfirmedServiceChoice22222[UnconfirmedServiceChoice22222["WHO_HAS"] = 7] = "WHO_HAS";
                  UnconfirmedServiceChoice22222[UnconfirmedServiceChoice22222["WHO_IS"] = 8] = "WHO_IS";
                  UnconfirmedServiceChoice22222[UnconfirmedServiceChoice22222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
                  UnconfirmedServiceChoice22222[UnconfirmedServiceChoice22222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
                  UnconfirmedServiceChoice22222[UnconfirmedServiceChoice22222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                  return UnconfirmedServiceChoice22222;
                })(UnconfirmedServiceChoice2222 || {});
                var AbortReason2222 = /* @__PURE__ */ ((AbortReason22222) => {
                  AbortReason22222[AbortReason22222["OTHER"] = 0] = "OTHER";
                  AbortReason22222[AbortReason22222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                  AbortReason22222[AbortReason22222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
                  AbortReason22222[AbortReason22222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                  AbortReason22222[AbortReason22222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
                  AbortReason22222[AbortReason22222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
                  AbortReason22222[AbortReason22222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
                  AbortReason22222[AbortReason22222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
                  AbortReason22222[AbortReason22222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
                  AbortReason22222[AbortReason22222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
                  AbortReason22222[AbortReason22222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
                  AbortReason22222[AbortReason22222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
                  return AbortReason22222;
                })(AbortReason2222 || {});
                var RejectReason2222 = /* @__PURE__ */ ((RejectReason22222) => {
                  RejectReason22222[RejectReason22222["OTHER"] = 0] = "OTHER";
                  RejectReason22222[RejectReason22222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
                  RejectReason22222[RejectReason22222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
                  RejectReason22222[RejectReason22222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
                  RejectReason22222[RejectReason22222["INVALID_TAG"] = 4] = "INVALID_TAG";
                  RejectReason22222[RejectReason22222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
                  RejectReason22222[RejectReason22222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
                  RejectReason22222[RejectReason22222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
                  RejectReason22222[RejectReason22222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
                  RejectReason22222[RejectReason22222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
                  return RejectReason22222;
                })(RejectReason2222 || {});
                var ErrorClass2222 = /* @__PURE__ */ ((ErrorClass22222) => {
                  ErrorClass22222[ErrorClass22222["DEVICE"] = 0] = "DEVICE";
                  ErrorClass22222[ErrorClass22222["OBJECT"] = 1] = "OBJECT";
                  ErrorClass22222[ErrorClass22222["PROPERTY"] = 2] = "PROPERTY";
                  ErrorClass22222[ErrorClass22222["RESOURCES"] = 3] = "RESOURCES";
                  ErrorClass22222[ErrorClass22222["SECURITY"] = 4] = "SECURITY";
                  ErrorClass22222[ErrorClass22222["SERVICES"] = 5] = "SERVICES";
                  ErrorClass22222[ErrorClass22222["VT"] = 6] = "VT";
                  ErrorClass22222[ErrorClass22222["COMMUNICATION"] = 7] = "COMMUNICATION";
                  return ErrorClass22222;
                })(ErrorClass2222 || {});
                var ErrorClassName2222 = invertEnum2222(
                  ErrorClass2222
                );
                var ErrorCode2222 = /* @__PURE__ */ ((ErrorCode22222) => {
                  ErrorCode22222[ErrorCode22222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
                  ErrorCode22222[ErrorCode22222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
                  ErrorCode22222[ErrorCode22222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
                  ErrorCode22222[ErrorCode22222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
                  ErrorCode22222[ErrorCode22222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
                  ErrorCode22222[ErrorCode22222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
                  ErrorCode22222[ErrorCode22222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
                  ErrorCode22222[ErrorCode22222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
                  ErrorCode22222[ErrorCode22222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
                  ErrorCode22222[ErrorCode22222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
                  ErrorCode22222[ErrorCode22222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
                  ErrorCode22222[ErrorCode22222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
                  ErrorCode22222[ErrorCode22222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
                  ErrorCode22222[ErrorCode22222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
                  ErrorCode22222[ErrorCode22222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
                  ErrorCode22222[ErrorCode22222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
                  ErrorCode22222[ErrorCode22222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
                  ErrorCode22222[ErrorCode22222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
                  ErrorCode22222[ErrorCode22222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
                  ErrorCode22222[ErrorCode22222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
                  ErrorCode22222[ErrorCode22222["BUSY"] = 82] = "BUSY";
                  ErrorCode22222[ErrorCode22222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
                  ErrorCode22222[ErrorCode22222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
                  ErrorCode22222[ErrorCode22222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
                  ErrorCode22222[ErrorCode22222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
                  ErrorCode22222[ErrorCode22222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
                  ErrorCode22222[ErrorCode22222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
                  ErrorCode22222[ErrorCode22222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
                  ErrorCode22222[ErrorCode22222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
                  ErrorCode22222[ErrorCode22222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
                  ErrorCode22222[ErrorCode22222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
                  ErrorCode22222[ErrorCode22222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
                  ErrorCode22222[ErrorCode22222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
                  ErrorCode22222[ErrorCode22222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
                  ErrorCode22222[ErrorCode22222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
                  ErrorCode22222[ErrorCode22222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
                  ErrorCode22222[ErrorCode22222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
                  ErrorCode22222[ErrorCode22222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
                  ErrorCode22222[ErrorCode22222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
                  ErrorCode22222[ErrorCode22222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
                  ErrorCode22222[ErrorCode22222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
                  ErrorCode22222[ErrorCode22222["FILE_FULL"] = 128] = "FILE_FULL";
                  ErrorCode22222[ErrorCode22222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
                  ErrorCode22222[ErrorCode22222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
                  ErrorCode22222[ErrorCode22222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
                  ErrorCode22222[ErrorCode22222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
                  ErrorCode22222[ErrorCode22222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
                  ErrorCode22222[ErrorCode22222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
                  ErrorCode22222[ErrorCode22222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
                  ErrorCode22222[ErrorCode22222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
                  ErrorCode22222[ErrorCode22222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
                  ErrorCode22222[ErrorCode22222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
                  ErrorCode22222[ErrorCode22222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
                  ErrorCode22222[ErrorCode22222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
                  ErrorCode22222[ErrorCode22222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
                  ErrorCode22222[ErrorCode22222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
                  ErrorCode22222[ErrorCode22222["INVALID_TAG"] = 57] = "INVALID_TAG";
                  ErrorCode22222[ErrorCode22222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
                  ErrorCode22222[ErrorCode22222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
                  ErrorCode22222[ErrorCode22222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
                  ErrorCode22222[ErrorCode22222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
                  ErrorCode22222[ErrorCode22222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
                  ErrorCode22222[ErrorCode22222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
                  ErrorCode22222[ErrorCode22222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
                  ErrorCode22222[ErrorCode22222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
                  ErrorCode22222[ErrorCode22222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
                  ErrorCode22222[ErrorCode22222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
                  ErrorCode22222[ErrorCode22222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
                  ErrorCode22222[ErrorCode22222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
                  ErrorCode22222[ErrorCode22222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
                  ErrorCode22222[ErrorCode22222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
                  ErrorCode22222[ErrorCode22222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
                  ErrorCode22222[ErrorCode22222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
                  ErrorCode22222[ErrorCode22222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
                  ErrorCode22222[ErrorCode22222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
                  ErrorCode22222[ErrorCode22222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
                  ErrorCode22222[ErrorCode22222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
                  ErrorCode22222[ErrorCode22222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
                  ErrorCode22222[ErrorCode22222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
                  ErrorCode22222[ErrorCode22222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
                  ErrorCode22222[ErrorCode22222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
                  ErrorCode22222[ErrorCode22222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
                  ErrorCode22222[ErrorCode22222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
                  ErrorCode22222[ErrorCode22222["OTHER"] = 0] = "OTHER";
                  ErrorCode22222[ErrorCode22222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
                  ErrorCode22222[ErrorCode22222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
                  ErrorCode22222[ErrorCode22222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
                  ErrorCode22222[ErrorCode22222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
                  ErrorCode22222[ErrorCode22222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
                  ErrorCode22222[ErrorCode22222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
                  ErrorCode22222[ErrorCode22222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
                  ErrorCode22222[ErrorCode22222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
                  ErrorCode22222[ErrorCode22222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
                  ErrorCode22222[ErrorCode22222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
                  ErrorCode22222[ErrorCode22222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
                  ErrorCode22222[ErrorCode22222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
                  ErrorCode22222[ErrorCode22222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
                  ErrorCode22222[ErrorCode22222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
                  ErrorCode22222[ErrorCode22222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
                  ErrorCode22222[ErrorCode22222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
                  ErrorCode22222[ErrorCode22222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
                  ErrorCode22222[ErrorCode22222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
                  ErrorCode22222[ErrorCode22222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
                  ErrorCode22222[ErrorCode22222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
                  ErrorCode22222[ErrorCode22222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
                  ErrorCode22222[ErrorCode22222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
                  ErrorCode22222[ErrorCode22222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
                  ErrorCode22222[ErrorCode22222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
                  ErrorCode22222[ErrorCode22222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
                  ErrorCode22222[ErrorCode22222["SUCCESS"] = 84] = "SUCCESS";
                  ErrorCode22222[ErrorCode22222["TIMEOUT"] = 30] = "TIMEOUT";
                  ErrorCode22222[ErrorCode22222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
                  ErrorCode22222[ErrorCode22222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
                  ErrorCode22222[ErrorCode22222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
                  ErrorCode22222[ErrorCode22222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
                  ErrorCode22222[ErrorCode22222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
                  ErrorCode22222[ErrorCode22222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
                  ErrorCode22222[ErrorCode22222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
                  ErrorCode22222[ErrorCode22222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
                  ErrorCode22222[ErrorCode22222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
                  ErrorCode22222[ErrorCode22222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
                  return ErrorCode22222;
                })(ErrorCode2222 || {});
                var ErrorCodeName2222 = invertEnum2222(
                  ErrorCode2222
                );
                var AccessAuthenticationFactorDisable2222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable22222) => {
                  AccessAuthenticationFactorDisable22222[AccessAuthenticationFactorDisable22222["NONE"] = 0] = "NONE";
                  AccessAuthenticationFactorDisable22222[AccessAuthenticationFactorDisable22222["DISABLED"] = 1] = "DISABLED";
                  AccessAuthenticationFactorDisable22222[AccessAuthenticationFactorDisable22222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
                  AccessAuthenticationFactorDisable22222[AccessAuthenticationFactorDisable22222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
                  AccessAuthenticationFactorDisable22222[AccessAuthenticationFactorDisable22222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
                  AccessAuthenticationFactorDisable22222[AccessAuthenticationFactorDisable22222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
                  return AccessAuthenticationFactorDisable22222;
                })(AccessAuthenticationFactorDisable2222 || {});
                var AccessCredentialDisable2222 = /* @__PURE__ */ ((AccessCredentialDisable22222) => {
                  AccessCredentialDisable22222[AccessCredentialDisable22222["NONE"] = 0] = "NONE";
                  AccessCredentialDisable22222[AccessCredentialDisable22222["DISABLE"] = 1] = "DISABLE";
                  AccessCredentialDisable22222[AccessCredentialDisable22222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
                  AccessCredentialDisable22222[AccessCredentialDisable22222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
                  return AccessCredentialDisable22222;
                })(AccessCredentialDisable2222 || {});
                var AccessCredentialDisableReason2222 = /* @__PURE__ */ ((AccessCredentialDisableReason22222) => {
                  AccessCredentialDisableReason22222[AccessCredentialDisableReason22222["DISABLED"] = 0] = "DISABLED";
                  AccessCredentialDisableReason22222[AccessCredentialDisableReason22222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
                  AccessCredentialDisableReason22222[AccessCredentialDisableReason22222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
                  AccessCredentialDisableReason22222[AccessCredentialDisableReason22222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
                  AccessCredentialDisableReason22222[AccessCredentialDisableReason22222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
                  AccessCredentialDisableReason22222[AccessCredentialDisableReason22222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
                  AccessCredentialDisableReason22222[AccessCredentialDisableReason22222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
                  AccessCredentialDisableReason22222[AccessCredentialDisableReason22222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
                  AccessCredentialDisableReason22222[AccessCredentialDisableReason22222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
                  AccessCredentialDisableReason22222[AccessCredentialDisableReason22222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
                  return AccessCredentialDisableReason22222;
                })(AccessCredentialDisableReason2222 || {});
                var AccessEvent2222 = /* @__PURE__ */ ((AccessEvent22222) => {
                  AccessEvent22222[AccessEvent22222["NONE"] = 0] = "NONE";
                  AccessEvent22222[AccessEvent22222["GRANTED"] = 1] = "GRANTED";
                  AccessEvent22222[AccessEvent22222["MUSTER"] = 2] = "MUSTER";
                  AccessEvent22222[AccessEvent22222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
                  AccessEvent22222[AccessEvent22222["DURESS"] = 4] = "DURESS";
                  AccessEvent22222[AccessEvent22222["TRACE"] = 5] = "TRACE";
                  AccessEvent22222[AccessEvent22222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
                  AccessEvent22222[AccessEvent22222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
                  AccessEvent22222[AccessEvent22222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
                  AccessEvent22222[AccessEvent22222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
                  AccessEvent22222[AccessEvent22222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
                  AccessEvent22222[AccessEvent22222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
                  AccessEvent22222[AccessEvent22222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
                  AccessEvent22222[AccessEvent22222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
                  AccessEvent22222[AccessEvent22222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
                  AccessEvent22222[AccessEvent22222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
                  AccessEvent22222[AccessEvent22222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
                  AccessEvent22222[AccessEvent22222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
                  AccessEvent22222[AccessEvent22222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
                  AccessEvent22222[AccessEvent22222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
                  AccessEvent22222[AccessEvent22222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
                  AccessEvent22222[AccessEvent22222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
                  AccessEvent22222[AccessEvent22222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
                  AccessEvent22222[AccessEvent22222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
                  AccessEvent22222[AccessEvent22222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
                  AccessEvent22222[AccessEvent22222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
                  AccessEvent22222[AccessEvent22222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
                  AccessEvent22222[AccessEvent22222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
                  AccessEvent22222[AccessEvent22222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
                  AccessEvent22222[AccessEvent22222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
                  AccessEvent22222[AccessEvent22222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
                  AccessEvent22222[AccessEvent22222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
                  AccessEvent22222[AccessEvent22222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
                  AccessEvent22222[AccessEvent22222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
                  AccessEvent22222[AccessEvent22222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
                  AccessEvent22222[AccessEvent22222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
                  AccessEvent22222[AccessEvent22222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
                  AccessEvent22222[AccessEvent22222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
                  AccessEvent22222[AccessEvent22222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
                  AccessEvent22222[AccessEvent22222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
                  AccessEvent22222[AccessEvent22222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
                  AccessEvent22222[AccessEvent22222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
                  AccessEvent22222[AccessEvent22222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
                  AccessEvent22222[AccessEvent22222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
                  AccessEvent22222[AccessEvent22222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
                  AccessEvent22222[AccessEvent22222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
                  AccessEvent22222[AccessEvent22222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
                  AccessEvent22222[AccessEvent22222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
                  AccessEvent22222[AccessEvent22222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
                  AccessEvent22222[AccessEvent22222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
                  AccessEvent22222[AccessEvent22222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
                  AccessEvent22222[AccessEvent22222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
                  AccessEvent22222[AccessEvent22222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
                  AccessEvent22222[AccessEvent22222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
                  return AccessEvent22222;
                })(AccessEvent2222 || {});
                var AccessPassbackMode2222 = /* @__PURE__ */ ((AccessPassbackMode22222) => {
                  AccessPassbackMode22222[AccessPassbackMode22222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
                  AccessPassbackMode22222[AccessPassbackMode22222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
                  AccessPassbackMode22222[AccessPassbackMode22222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
                  return AccessPassbackMode22222;
                })(AccessPassbackMode2222 || {});
                var AccessUserType2222 = /* @__PURE__ */ ((AccessUserType22222) => {
                  AccessUserType22222[AccessUserType22222["ASSET"] = 0] = "ASSET";
                  AccessUserType22222[AccessUserType22222["GROUP"] = 1] = "GROUP";
                  AccessUserType22222[AccessUserType22222["PERSON"] = 2] = "PERSON";
                  return AccessUserType22222;
                })(AccessUserType2222 || {});
                var AccessZoneOccupancyState2222 = /* @__PURE__ */ ((AccessZoneOccupancyState22222) => {
                  AccessZoneOccupancyState22222[AccessZoneOccupancyState22222["NORMAL"] = 0] = "NORMAL";
                  AccessZoneOccupancyState22222[AccessZoneOccupancyState22222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
                  AccessZoneOccupancyState22222[AccessZoneOccupancyState22222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
                  AccessZoneOccupancyState22222[AccessZoneOccupancyState22222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
                  AccessZoneOccupancyState22222[AccessZoneOccupancyState22222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
                  AccessZoneOccupancyState22222[AccessZoneOccupancyState22222["DISABLED"] = 5] = "DISABLED";
                  AccessZoneOccupancyState22222[AccessZoneOccupancyState22222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
                  return AccessZoneOccupancyState22222;
                })(AccessZoneOccupancyState2222 || {});
                var Action2222 = /* @__PURE__ */ ((Action22222) => {
                  Action22222[Action22222["DIRECT"] = 0] = "DIRECT";
                  Action22222[Action22222["REVERSE"] = 1] = "REVERSE";
                  return Action22222;
                })(Action2222 || {});
                var AuthenticationFactorType2222 = /* @__PURE__ */ ((AuthenticationFactorType22222) => {
                  AuthenticationFactorType22222[AuthenticationFactorType22222["UNDEFINED"] = 0] = "UNDEFINED";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["ERROR"] = 1] = "ERROR";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["CUSTOM"] = 2] = "CUSTOM";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["WIEGAND26"] = 8] = "WIEGAND26";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["WIEGAND37"] = 9] = "WIEGAND37";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["FASC_N"] = 13] = "FASC_N";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["GSA75"] = 17] = "GSA75";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["CHUID"] = 18] = "CHUID";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["CHUID_FULL"] = 19] = "CHUID_FULL";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["GUID"] = 20] = "GUID";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["CBEFF_A"] = 21] = "CBEFF_A";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["CBEFF_B"] = 22] = "CBEFF_B";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["CBEFF_C"] = 23] = "CBEFF_C";
                  AuthenticationFactorType22222[AuthenticationFactorType22222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
                  return AuthenticationFactorType22222;
                })(AuthenticationFactorType2222 || {});
                var AuthenticationStatus2222 = /* @__PURE__ */ ((AuthenticationStatus22222) => {
                  AuthenticationStatus22222[AuthenticationStatus22222["NOT_READY"] = 0] = "NOT_READY";
                  AuthenticationStatus22222[AuthenticationStatus22222["READY"] = 1] = "READY";
                  AuthenticationStatus22222[AuthenticationStatus22222["DISABLED"] = 2] = "DISABLED";
                  AuthenticationStatus22222[AuthenticationStatus22222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
                  AuthenticationStatus22222[AuthenticationStatus22222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
                  AuthenticationStatus22222[AuthenticationStatus22222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
                  AuthenticationStatus22222[AuthenticationStatus22222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
                  return AuthenticationStatus22222;
                })(AuthenticationStatus2222 || {});
                var AuthorizationExemption2222 = /* @__PURE__ */ ((AuthorizationExemption22222) => {
                  AuthorizationExemption22222[AuthorizationExemption22222["PASSBACK"] = 0] = "PASSBACK";
                  AuthorizationExemption22222[AuthorizationExemption22222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
                  AuthorizationExemption22222[AuthorizationExemption22222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
                  AuthorizationExemption22222[AuthorizationExemption22222["LOCKOUT"] = 3] = "LOCKOUT";
                  AuthorizationExemption22222[AuthorizationExemption22222["DENY"] = 4] = "DENY";
                  AuthorizationExemption22222[AuthorizationExemption22222["VERIFICATION"] = 5] = "VERIFICATION";
                  AuthorizationExemption22222[AuthorizationExemption22222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
                  return AuthorizationExemption22222;
                })(AuthorizationExemption2222 || {});
                var AuthorizationMode2222 = /* @__PURE__ */ ((AuthorizationMode22222) => {
                  AuthorizationMode22222[AuthorizationMode22222["AUTHORIZE"] = 0] = "AUTHORIZE";
                  AuthorizationMode22222[AuthorizationMode22222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
                  AuthorizationMode22222[AuthorizationMode22222["DENY_ALL"] = 2] = "DENY_ALL";
                  AuthorizationMode22222[AuthorizationMode22222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
                  AuthorizationMode22222[AuthorizationMode22222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
                  AuthorizationMode22222[AuthorizationMode22222["NONE"] = 5] = "NONE";
                  return AuthorizationMode22222;
                })(AuthorizationMode2222 || {});
                var BackupState2222 = /* @__PURE__ */ ((BackupState22222) => {
                  BackupState22222[BackupState22222["IDLE"] = 0] = "IDLE";
                  BackupState22222[BackupState22222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
                  BackupState22222[BackupState22222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
                  BackupState22222[BackupState22222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
                  BackupState22222[BackupState22222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
                  BackupState22222[BackupState22222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
                  BackupState22222[BackupState22222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
                  return BackupState22222;
                })(BackupState2222 || {});
                var BinaryLightingPV2222 = /* @__PURE__ */ ((BinaryLightingPV22222) => {
                  BinaryLightingPV22222[BinaryLightingPV22222["OFF"] = 0] = "OFF";
                  BinaryLightingPV22222[BinaryLightingPV22222["ON"] = 1] = "ON";
                  BinaryLightingPV22222[BinaryLightingPV22222["WARN"] = 2] = "WARN";
                  BinaryLightingPV22222[BinaryLightingPV22222["WARN_OFF"] = 3] = "WARN_OFF";
                  BinaryLightingPV22222[BinaryLightingPV22222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
                  BinaryLightingPV22222[BinaryLightingPV22222["STOP"] = 5] = "STOP";
                  return BinaryLightingPV22222;
                })(BinaryLightingPV2222 || {});
                var BinaryPV2222 = /* @__PURE__ */ ((BinaryPV22222) => {
                  BinaryPV22222[BinaryPV22222["INACTIVE"] = 0] = "INACTIVE";
                  BinaryPV22222[BinaryPV22222["ACTIVE"] = 1] = "ACTIVE";
                  return BinaryPV22222;
                })(BinaryPV2222 || {});
                var DeviceStatus2222 = /* @__PURE__ */ ((DeviceStatus22222) => {
                  DeviceStatus22222[DeviceStatus22222["OPERATIONAL"] = 0] = "OPERATIONAL";
                  DeviceStatus22222[DeviceStatus22222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
                  DeviceStatus22222[DeviceStatus22222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
                  DeviceStatus22222[DeviceStatus22222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
                  DeviceStatus22222[DeviceStatus22222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
                  DeviceStatus22222[DeviceStatus22222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
                  return DeviceStatus22222;
                })(DeviceStatus2222 || {});
                var DoorAlarmState2222 = /* @__PURE__ */ ((DoorAlarmState22222) => {
                  DoorAlarmState22222[DoorAlarmState22222["NORMAL"] = 0] = "NORMAL";
                  DoorAlarmState22222[DoorAlarmState22222["ALARM"] = 1] = "ALARM";
                  DoorAlarmState22222[DoorAlarmState22222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
                  DoorAlarmState22222[DoorAlarmState22222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
                  DoorAlarmState22222[DoorAlarmState22222["TAMPER"] = 4] = "TAMPER";
                  DoorAlarmState22222[DoorAlarmState22222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
                  DoorAlarmState22222[DoorAlarmState22222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
                  DoorAlarmState22222[DoorAlarmState22222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
                  DoorAlarmState22222[DoorAlarmState22222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
                  return DoorAlarmState22222;
                })(DoorAlarmState2222 || {});
                var DoorSecuredStatus2222 = /* @__PURE__ */ ((DoorSecuredStatus22222) => {
                  DoorSecuredStatus22222[DoorSecuredStatus22222["SECURED"] = 0] = "SECURED";
                  DoorSecuredStatus22222[DoorSecuredStatus22222["UNSECURED"] = 1] = "UNSECURED";
                  DoorSecuredStatus22222[DoorSecuredStatus22222["UNKNOWN"] = 2] = "UNKNOWN";
                  return DoorSecuredStatus22222;
                })(DoorSecuredStatus2222 || {});
                var DoorStatus2222 = /* @__PURE__ */ ((DoorStatus22222) => {
                  DoorStatus22222[DoorStatus22222["CLOSED"] = 0] = "CLOSED";
                  DoorStatus22222[DoorStatus22222["OPENED"] = 1] = "OPENED";
                  DoorStatus22222[DoorStatus22222["UNKNOWN"] = 2] = "UNKNOWN";
                  DoorStatus22222[DoorStatus22222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
                  DoorStatus22222[DoorStatus22222["UNUSED"] = 4] = "UNUSED";
                  DoorStatus22222[DoorStatus22222["NONE"] = 5] = "NONE";
                  DoorStatus22222[DoorStatus22222["CLOSING"] = 6] = "CLOSING";
                  DoorStatus22222[DoorStatus22222["OPENING"] = 7] = "OPENING";
                  DoorStatus22222[DoorStatus22222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
                  DoorStatus22222[DoorStatus22222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
                  return DoorStatus22222;
                })(DoorStatus2222 || {});
                var DoorValue2222 = /* @__PURE__ */ ((DoorValue22222) => {
                  DoorValue22222[DoorValue22222["LOCK"] = 0] = "LOCK";
                  DoorValue22222[DoorValue22222["UNLOCK"] = 1] = "UNLOCK";
                  DoorValue22222[DoorValue22222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
                  DoorValue22222[DoorValue22222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
                  return DoorValue22222;
                })(DoorValue2222 || {});
                var EngineeringUnits2222 = /* @__PURE__ */ ((EngineeringUnits22222) => {
                  EngineeringUnits22222[EngineeringUnits22222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
                  EngineeringUnits22222[EngineeringUnits22222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
                  EngineeringUnits22222[EngineeringUnits22222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
                  EngineeringUnits22222[EngineeringUnits22222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
                  EngineeringUnits22222[EngineeringUnits22222["CURRENCY1"] = 105] = "CURRENCY1";
                  EngineeringUnits22222[EngineeringUnits22222["CURRENCY2"] = 106] = "CURRENCY2";
                  EngineeringUnits22222[EngineeringUnits22222["CURRENCY3"] = 107] = "CURRENCY3";
                  EngineeringUnits22222[EngineeringUnits22222["CURRENCY4"] = 108] = "CURRENCY4";
                  EngineeringUnits22222[EngineeringUnits22222["CURRENCY5"] = 109] = "CURRENCY5";
                  EngineeringUnits22222[EngineeringUnits22222["CURRENCY6"] = 110] = "CURRENCY6";
                  EngineeringUnits22222[EngineeringUnits22222["CURRENCY7"] = 111] = "CURRENCY7";
                  EngineeringUnits22222[EngineeringUnits22222["CURRENCY8"] = 112] = "CURRENCY8";
                  EngineeringUnits22222[EngineeringUnits22222["CURRENCY9"] = 113] = "CURRENCY9";
                  EngineeringUnits22222[EngineeringUnits22222["CURRENCY10"] = 114] = "CURRENCY10";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
                  EngineeringUnits22222[EngineeringUnits22222["AMPERES"] = 3] = "AMPERES";
                  EngineeringUnits22222[EngineeringUnits22222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
                  EngineeringUnits22222[EngineeringUnits22222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
                  EngineeringUnits22222[EngineeringUnits22222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
                  EngineeringUnits22222[EngineeringUnits22222["DECIBELS"] = 199] = "DECIBELS";
                  EngineeringUnits22222[EngineeringUnits22222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
                  EngineeringUnits22222[EngineeringUnits22222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
                  EngineeringUnits22222[EngineeringUnits22222["FARADS"] = 170] = "FARADS";
                  EngineeringUnits22222[EngineeringUnits22222["HENRYS"] = 171] = "HENRYS";
                  EngineeringUnits22222[EngineeringUnits22222["OHMS"] = 4] = "OHMS";
                  EngineeringUnits22222[EngineeringUnits22222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
                  EngineeringUnits22222[EngineeringUnits22222["OHM_METERS"] = 172] = "OHM_METERS";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIOHMS"] = 145] = "MILLIOHMS";
                  EngineeringUnits22222[EngineeringUnits22222["KILOHMS"] = 122] = "KILOHMS";
                  EngineeringUnits22222[EngineeringUnits22222["MEGOHMS"] = 123] = "MEGOHMS";
                  EngineeringUnits22222[EngineeringUnits22222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
                  EngineeringUnits22222[EngineeringUnits22222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
                  EngineeringUnits22222[EngineeringUnits22222["SIEMENS"] = 173] = "SIEMENS";
                  EngineeringUnits22222[EngineeringUnits22222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
                  EngineeringUnits22222[EngineeringUnits22222["TESLAS"] = 175] = "TESLAS";
                  EngineeringUnits22222[EngineeringUnits22222["VOLTS"] = 5] = "VOLTS";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
                  EngineeringUnits22222[EngineeringUnits22222["KILOVOLTS"] = 6] = "KILOVOLTS";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
                  EngineeringUnits22222[EngineeringUnits22222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
                  EngineeringUnits22222[EngineeringUnits22222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
                  EngineeringUnits22222[EngineeringUnits22222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
                  EngineeringUnits22222[EngineeringUnits22222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
                  EngineeringUnits22222[EngineeringUnits22222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
                  EngineeringUnits22222[EngineeringUnits22222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
                  EngineeringUnits22222[EngineeringUnits22222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
                  EngineeringUnits22222[EngineeringUnits22222["WEBERS"] = 178] = "WEBERS";
                  EngineeringUnits22222[EngineeringUnits22222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
                  EngineeringUnits22222[EngineeringUnits22222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
                  EngineeringUnits22222[EngineeringUnits22222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
                  EngineeringUnits22222[EngineeringUnits22222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
                  EngineeringUnits22222[EngineeringUnits22222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
                  EngineeringUnits22222[EngineeringUnits22222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
                  EngineeringUnits22222[EngineeringUnits22222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
                  EngineeringUnits22222[EngineeringUnits22222["JOULES"] = 16] = "JOULES";
                  EngineeringUnits22222[EngineeringUnits22222["KILOJOULES"] = 17] = "KILOJOULES";
                  EngineeringUnits22222[EngineeringUnits22222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAJOULES"] = 126] = "MEGAJOULES";
                  EngineeringUnits22222[EngineeringUnits22222["WATT_HOURS"] = 18] = "WATT_HOURS";
                  EngineeringUnits22222[EngineeringUnits22222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
                  EngineeringUnits22222[EngineeringUnits22222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
                  EngineeringUnits22222[EngineeringUnits22222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
                  EngineeringUnits22222[EngineeringUnits22222["BTUS"] = 20] = "BTUS";
                  EngineeringUnits22222[EngineeringUnits22222["KILO_BTUS"] = 147] = "KILO_BTUS";
                  EngineeringUnits22222[EngineeringUnits22222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
                  EngineeringUnits22222[EngineeringUnits22222["THERMS"] = 21] = "THERMS";
                  EngineeringUnits22222[EngineeringUnits22222["TON_HOURS"] = 22] = "TON_HOURS";
                  EngineeringUnits22222[EngineeringUnits22222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
                  EngineeringUnits22222[EngineeringUnits22222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
                  EngineeringUnits22222[EngineeringUnits22222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
                  EngineeringUnits22222[EngineeringUnits22222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
                  EngineeringUnits22222[EngineeringUnits22222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
                  EngineeringUnits22222[EngineeringUnits22222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
                  EngineeringUnits22222[EngineeringUnits22222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
                  EngineeringUnits22222[EngineeringUnits22222["NEWTON"] = 153] = "NEWTON";
                  EngineeringUnits22222[EngineeringUnits22222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["HERTZ"] = 27] = "HERTZ";
                  EngineeringUnits22222[EngineeringUnits22222["KILOHERTZ"] = 129] = "KILOHERTZ";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
                  EngineeringUnits22222[EngineeringUnits22222["PER_HOUR"] = 131] = "PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
                  EngineeringUnits22222[EngineeringUnits22222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
                  EngineeringUnits22222[EngineeringUnits22222["MICROMETERS"] = 194] = "MICROMETERS";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIMETERS"] = 30] = "MILLIMETERS";
                  EngineeringUnits22222[EngineeringUnits22222["CENTIMETERS"] = 118] = "CENTIMETERS";
                  EngineeringUnits22222[EngineeringUnits22222["KILOMETERS"] = 193] = "KILOMETERS";
                  EngineeringUnits22222[EngineeringUnits22222["METERS"] = 31] = "METERS";
                  EngineeringUnits22222[EngineeringUnits22222["INCHES"] = 32] = "INCHES";
                  EngineeringUnits22222[EngineeringUnits22222["FEET"] = 33] = "FEET";
                  EngineeringUnits22222[EngineeringUnits22222["CANDELAS"] = 179] = "CANDELAS";
                  EngineeringUnits22222[EngineeringUnits22222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
                  EngineeringUnits22222[EngineeringUnits22222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
                  EngineeringUnits22222[EngineeringUnits22222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
                  EngineeringUnits22222[EngineeringUnits22222["LUMENS"] = 36] = "LUMENS";
                  EngineeringUnits22222[EngineeringUnits22222["LUXES"] = 37] = "LUXES";
                  EngineeringUnits22222[EngineeringUnits22222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
                  EngineeringUnits22222[EngineeringUnits22222["GRAMS"] = 195] = "GRAMS";
                  EngineeringUnits22222[EngineeringUnits22222["KILOGRAMS"] = 39] = "KILOGRAMS";
                  EngineeringUnits22222[EngineeringUnits22222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
                  EngineeringUnits22222[EngineeringUnits22222["TONS"] = 41] = "TONS";
                  EngineeringUnits22222[EngineeringUnits22222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIWATTS"] = 132] = "MILLIWATTS";
                  EngineeringUnits22222[EngineeringUnits22222["WATTS"] = 47] = "WATTS";
                  EngineeringUnits22222[EngineeringUnits22222["KILOWATTS"] = 48] = "KILOWATTS";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAWATTS"] = 49] = "MEGAWATTS";
                  EngineeringUnits22222[EngineeringUnits22222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
                  EngineeringUnits22222[EngineeringUnits22222["HORSEPOWER"] = 51] = "HORSEPOWER";
                  EngineeringUnits22222[EngineeringUnits22222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
                  EngineeringUnits22222[EngineeringUnits22222["PASCALS"] = 53] = "PASCALS";
                  EngineeringUnits22222[EngineeringUnits22222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
                  EngineeringUnits22222[EngineeringUnits22222["KILOPASCALS"] = 54] = "KILOPASCALS";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIBARS"] = 134] = "MILLIBARS";
                  EngineeringUnits22222[EngineeringUnits22222["BARS"] = 55] = "BARS";
                  EngineeringUnits22222[EngineeringUnits22222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
                  EngineeringUnits22222[EngineeringUnits22222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
                  EngineeringUnits22222[EngineeringUnits22222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
                  EngineeringUnits22222[EngineeringUnits22222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
                  EngineeringUnits22222[EngineeringUnits22222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
                  EngineeringUnits22222[EngineeringUnits22222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
                  EngineeringUnits22222[EngineeringUnits22222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
                  EngineeringUnits22222[EngineeringUnits22222["YEARS"] = 67] = "YEARS";
                  EngineeringUnits22222[EngineeringUnits22222["MONTHS"] = 68] = "MONTHS";
                  EngineeringUnits22222[EngineeringUnits22222["WEEKS"] = 69] = "WEEKS";
                  EngineeringUnits22222[EngineeringUnits22222["DAYS"] = 70] = "DAYS";
                  EngineeringUnits22222[EngineeringUnits22222["HOURS"] = 71] = "HOURS";
                  EngineeringUnits22222[EngineeringUnits22222["MINUTES"] = 72] = "MINUTES";
                  EngineeringUnits22222[EngineeringUnits22222["SECONDS"] = 73] = "SECONDS";
                  EngineeringUnits22222[EngineeringUnits22222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
                  EngineeringUnits22222[EngineeringUnits22222["MILLISECONDS"] = 159] = "MILLISECONDS";
                  EngineeringUnits22222[EngineeringUnits22222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
                  EngineeringUnits22222[EngineeringUnits22222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
                  EngineeringUnits22222[EngineeringUnits22222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
                  EngineeringUnits22222[EngineeringUnits22222["MILLILITERS"] = 197] = "MILLILITERS";
                  EngineeringUnits22222[EngineeringUnits22222["LITERS"] = 82] = "LITERS";
                  EngineeringUnits22222[EngineeringUnits22222["US_GALLONS"] = 83] = "US_GALLONS";
                  EngineeringUnits22222[EngineeringUnits22222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
                  EngineeringUnits22222[EngineeringUnits22222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
                  EngineeringUnits22222[EngineeringUnits22222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
                  EngineeringUnits22222[EngineeringUnits22222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
                  EngineeringUnits22222[EngineeringUnits22222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
                  EngineeringUnits22222[EngineeringUnits22222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
                  EngineeringUnits22222[EngineeringUnits22222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
                  EngineeringUnits22222[EngineeringUnits22222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
                  EngineeringUnits22222[EngineeringUnits22222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
                  EngineeringUnits22222[EngineeringUnits22222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
                  EngineeringUnits22222[EngineeringUnits22222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
                  EngineeringUnits22222[EngineeringUnits22222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
                  EngineeringUnits22222[EngineeringUnits22222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
                  EngineeringUnits22222[EngineeringUnits22222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
                  EngineeringUnits22222[EngineeringUnits22222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
                  EngineeringUnits22222[EngineeringUnits22222["NO_UNITS"] = 95] = "NO_UNITS";
                  EngineeringUnits22222[EngineeringUnits22222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
                  EngineeringUnits22222[EngineeringUnits22222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
                  EngineeringUnits22222[EngineeringUnits22222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
                  EngineeringUnits22222[EngineeringUnits22222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
                  EngineeringUnits22222[EngineeringUnits22222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
                  EngineeringUnits22222[EngineeringUnits22222["PERCENT"] = 98] = "PERCENT";
                  EngineeringUnits22222[EngineeringUnits22222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
                  EngineeringUnits22222[EngineeringUnits22222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
                  EngineeringUnits22222[EngineeringUnits22222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["PER_MINUTE"] = 100] = "PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["PER_SECOND"] = 101] = "PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
                  EngineeringUnits22222[EngineeringUnits22222["RADIANS"] = 103] = "RADIANS";
                  EngineeringUnits22222[EngineeringUnits22222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
                  EngineeringUnits22222[EngineeringUnits22222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
                  EngineeringUnits22222[EngineeringUnits22222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
                  EngineeringUnits22222[EngineeringUnits22222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
                  EngineeringUnits22222[EngineeringUnits22222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
                  EngineeringUnits22222[EngineeringUnits22222["PER_MILLE"] = 207] = "PER_MILLE";
                  EngineeringUnits22222[EngineeringUnits22222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
                  EngineeringUnits22222[EngineeringUnits22222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
                  EngineeringUnits22222[EngineeringUnits22222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
                  EngineeringUnits22222[EngineeringUnits22222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
                  EngineeringUnits22222[EngineeringUnits22222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
                  EngineeringUnits22222[EngineeringUnits22222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
                  EngineeringUnits22222[EngineeringUnits22222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
                  EngineeringUnits22222[EngineeringUnits22222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
                  EngineeringUnits22222[EngineeringUnits22222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
                  EngineeringUnits22222[EngineeringUnits22222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
                  EngineeringUnits22222[EngineeringUnits22222["BECQUERELS"] = 222] = "BECQUERELS";
                  EngineeringUnits22222[EngineeringUnits22222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
                  EngineeringUnits22222[EngineeringUnits22222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
                  EngineeringUnits22222[EngineeringUnits22222["GRAY"] = 225] = "GRAY";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIGRAY"] = 226] = "MILLIGRAY";
                  EngineeringUnits22222[EngineeringUnits22222["MICROGRAY"] = 227] = "MICROGRAY";
                  EngineeringUnits22222[EngineeringUnits22222["SIEVERTS"] = 228] = "SIEVERTS";
                  EngineeringUnits22222[EngineeringUnits22222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
                  EngineeringUnits22222[EngineeringUnits22222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
                  EngineeringUnits22222[EngineeringUnits22222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIREMS"] = 47814] = "MILLIREMS";
                  EngineeringUnits22222[EngineeringUnits22222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
                  EngineeringUnits22222[EngineeringUnits22222["DECIBELS_A"] = 232] = "DECIBELS_A";
                  EngineeringUnits22222[EngineeringUnits22222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
                  EngineeringUnits22222[EngineeringUnits22222["PH"] = 234] = "PH";
                  EngineeringUnits22222[EngineeringUnits22222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
                  EngineeringUnits22222[EngineeringUnits22222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
                  return EngineeringUnits22222;
                })(EngineeringUnits2222 || {});
                var EscalatorFault2222 = /* @__PURE__ */ ((EscalatorFault22222) => {
                  EscalatorFault22222[EscalatorFault22222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                  EscalatorFault22222[EscalatorFault22222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                  EscalatorFault22222[EscalatorFault22222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
                  EscalatorFault22222[EscalatorFault22222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
                  EscalatorFault22222[EscalatorFault22222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                  EscalatorFault22222[EscalatorFault22222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
                  EscalatorFault22222[EscalatorFault22222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
                  EscalatorFault22222[EscalatorFault22222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
                  EscalatorFault22222[EscalatorFault22222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
                  return EscalatorFault22222;
                })(EscalatorFault2222 || {});
                var EscalatorMode2222 = /* @__PURE__ */ ((EscalatorMode22222) => {
                  EscalatorMode22222[EscalatorMode22222["UNKNOWN"] = 0] = "UNKNOWN";
                  EscalatorMode22222[EscalatorMode22222["STOP"] = 1] = "STOP";
                  EscalatorMode22222[EscalatorMode22222["UP"] = 2] = "UP";
                  EscalatorMode22222[EscalatorMode22222["DOWN"] = 3] = "DOWN";
                  EscalatorMode22222[EscalatorMode22222["INSPECTION"] = 4] = "INSPECTION";
                  EscalatorMode22222[EscalatorMode22222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
                  return EscalatorMode22222;
                })(EscalatorMode2222 || {});
                var EscalatorOperationDirection2222 = /* @__PURE__ */ ((EscalatorOperationDirection22222) => {
                  EscalatorOperationDirection22222[EscalatorOperationDirection22222["UNKNOWN"] = 0] = "UNKNOWN";
                  EscalatorOperationDirection22222[EscalatorOperationDirection22222["STOPPED"] = 1] = "STOPPED";
                  EscalatorOperationDirection22222[EscalatorOperationDirection22222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
                  EscalatorOperationDirection22222[EscalatorOperationDirection22222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
                  EscalatorOperationDirection22222[EscalatorOperationDirection22222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
                  EscalatorOperationDirection22222[EscalatorOperationDirection22222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
                  return EscalatorOperationDirection22222;
                })(EscalatorOperationDirection2222 || {});
                var EventState2222 = /* @__PURE__ */ ((EventState22222) => {
                  EventState22222[EventState22222["NORMAL"] = 0] = "NORMAL";
                  EventState22222[EventState22222["FAULT"] = 1] = "FAULT";
                  EventState22222[EventState22222["OFFNORMAL"] = 2] = "OFFNORMAL";
                  EventState22222[EventState22222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
                  EventState22222[EventState22222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
                  EventState22222[EventState22222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
                  return EventState22222;
                })(EventState2222 || {});
                var EventType2222 = /* @__PURE__ */ ((EventType22222) => {
                  EventType22222[EventType22222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
                  EventType22222[EventType22222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
                  EventType22222[EventType22222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
                  EventType22222[EventType22222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
                  EventType22222[EventType22222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
                  EventType22222[EventType22222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
                  EventType22222[EventType22222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
                  EventType22222[EventType22222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
                  EventType22222[EventType22222["EXTENDED"] = 9] = "EXTENDED";
                  EventType22222[EventType22222["BUFFER_READY"] = 10] = "BUFFER_READY";
                  EventType22222[EventType22222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
                  EventType22222[EventType22222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
                  EventType22222[EventType22222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
                  EventType22222[EventType22222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
                  EventType22222[EventType22222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
                  EventType22222[EventType22222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
                  EventType22222[EventType22222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
                  EventType22222[EventType22222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
                  EventType22222[EventType22222["NONE"] = 20] = "NONE";
                  EventType22222[EventType22222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
                  EventType22222[EventType22222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
                  return EventType22222;
                })(EventType2222 || {});
                var FaultType2222 = /* @__PURE__ */ ((FaultType22222) => {
                  FaultType22222[FaultType22222["NONE"] = 0] = "NONE";
                  FaultType22222[FaultType22222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
                  FaultType22222[FaultType22222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
                  FaultType22222[FaultType22222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
                  FaultType22222[FaultType22222["FAULT_STATE"] = 4] = "FAULT_STATE";
                  FaultType22222[FaultType22222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
                  FaultType22222[FaultType22222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
                  FaultType22222[FaultType22222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
                  return FaultType22222;
                })(FaultType2222 || {});
                var FileAccessMethod2222 = /* @__PURE__ */ ((FileAccessMethod22222) => {
                  FileAccessMethod22222[FileAccessMethod22222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
                  FileAccessMethod22222[FileAccessMethod22222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
                  return FileAccessMethod22222;
                })(FileAccessMethod2222 || {});
                var IPMode2222 = /* @__PURE__ */ ((IPMode22222) => {
                  IPMode22222[IPMode22222["NORMAL"] = 0] = "NORMAL";
                  IPMode22222[IPMode22222["FOREIGN"] = 1] = "FOREIGN";
                  IPMode22222[IPMode22222["BBMD"] = 2] = "BBMD";
                  return IPMode22222;
                })(IPMode2222 || {});
                var LifeSafetyMode2222 = /* @__PURE__ */ ((LifeSafetyMode22222) => {
                  LifeSafetyMode22222[LifeSafetyMode22222["OFF"] = 0] = "OFF";
                  LifeSafetyMode22222[LifeSafetyMode22222["ON"] = 1] = "ON";
                  LifeSafetyMode22222[LifeSafetyMode22222["TEST"] = 2] = "TEST";
                  LifeSafetyMode22222[LifeSafetyMode22222["MANNED"] = 3] = "MANNED";
                  LifeSafetyMode22222[LifeSafetyMode22222["UNMANNED"] = 4] = "UNMANNED";
                  LifeSafetyMode22222[LifeSafetyMode22222["ARMED"] = 5] = "ARMED";
                  LifeSafetyMode22222[LifeSafetyMode22222["DISARMED"] = 6] = "DISARMED";
                  LifeSafetyMode22222[LifeSafetyMode22222["PREARMED"] = 7] = "PREARMED";
                  LifeSafetyMode22222[LifeSafetyMode22222["SLOW"] = 8] = "SLOW";
                  LifeSafetyMode22222[LifeSafetyMode22222["FAST"] = 9] = "FAST";
                  LifeSafetyMode22222[LifeSafetyMode22222["DISCONNECTED"] = 10] = "DISCONNECTED";
                  LifeSafetyMode22222[LifeSafetyMode22222["ENABLED"] = 11] = "ENABLED";
                  LifeSafetyMode22222[LifeSafetyMode22222["DISABLED"] = 12] = "DISABLED";
                  LifeSafetyMode22222[LifeSafetyMode22222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
                  LifeSafetyMode22222[LifeSafetyMode22222["DEFAULT"] = 14] = "DEFAULT";
                  return LifeSafetyMode22222;
                })(LifeSafetyMode2222 || {});
                var LifeSafetyOperation2222 = /* @__PURE__ */ ((LifeSafetyOperation22222) => {
                  LifeSafetyOperation22222[LifeSafetyOperation22222["NONE"] = 0] = "NONE";
                  LifeSafetyOperation22222[LifeSafetyOperation22222["SILENCE"] = 1] = "SILENCE";
                  LifeSafetyOperation22222[LifeSafetyOperation22222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
                  LifeSafetyOperation22222[LifeSafetyOperation22222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
                  LifeSafetyOperation22222[LifeSafetyOperation22222["RESET"] = 4] = "RESET";
                  LifeSafetyOperation22222[LifeSafetyOperation22222["RESET_ALARM"] = 5] = "RESET_ALARM";
                  LifeSafetyOperation22222[LifeSafetyOperation22222["RESET_FAULT"] = 6] = "RESET_FAULT";
                  LifeSafetyOperation22222[LifeSafetyOperation22222["UNSILENCE"] = 7] = "UNSILENCE";
                  LifeSafetyOperation22222[LifeSafetyOperation22222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
                  LifeSafetyOperation22222[LifeSafetyOperation22222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
                  return LifeSafetyOperation22222;
                })(LifeSafetyOperation2222 || {});
                var LifeSafetyState2222 = /* @__PURE__ */ ((LifeSafetyState22222) => {
                  LifeSafetyState22222[LifeSafetyState22222["QUIET"] = 0] = "QUIET";
                  LifeSafetyState22222[LifeSafetyState22222["PRE_ALARM"] = 1] = "PRE_ALARM";
                  LifeSafetyState22222[LifeSafetyState22222["ALARM"] = 2] = "ALARM";
                  LifeSafetyState22222[LifeSafetyState22222["FAULT"] = 3] = "FAULT";
                  LifeSafetyState22222[LifeSafetyState22222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
                  LifeSafetyState22222[LifeSafetyState22222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
                  LifeSafetyState22222[LifeSafetyState22222["NOT_READY"] = 6] = "NOT_READY";
                  LifeSafetyState22222[LifeSafetyState22222["ACTIVE"] = 7] = "ACTIVE";
                  LifeSafetyState22222[LifeSafetyState22222["TAMPER"] = 8] = "TAMPER";
                  LifeSafetyState22222[LifeSafetyState22222["TEST_ALARM"] = 9] = "TEST_ALARM";
                  LifeSafetyState22222[LifeSafetyState22222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
                  LifeSafetyState22222[LifeSafetyState22222["TEST_FAULT"] = 11] = "TEST_FAULT";
                  LifeSafetyState22222[LifeSafetyState22222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
                  LifeSafetyState22222[LifeSafetyState22222["HOLDUP"] = 13] = "HOLDUP";
                  LifeSafetyState22222[LifeSafetyState22222["DURESS"] = 14] = "DURESS";
                  LifeSafetyState22222[LifeSafetyState22222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
                  LifeSafetyState22222[LifeSafetyState22222["ABNORMAL"] = 16] = "ABNORMAL";
                  LifeSafetyState22222[LifeSafetyState22222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
                  LifeSafetyState22222[LifeSafetyState22222["DELAYED"] = 18] = "DELAYED";
                  LifeSafetyState22222[LifeSafetyState22222["BLOCKED"] = 19] = "BLOCKED";
                  LifeSafetyState22222[LifeSafetyState22222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
                  LifeSafetyState22222[LifeSafetyState22222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
                  LifeSafetyState22222[LifeSafetyState22222["SUPERVISORY"] = 22] = "SUPERVISORY";
                  LifeSafetyState22222[LifeSafetyState22222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
                  return LifeSafetyState22222;
                })(LifeSafetyState2222 || {});
                var LiftCarDirection2222 = /* @__PURE__ */ ((LiftCarDirection22222) => {
                  LiftCarDirection22222[LiftCarDirection22222["UNKNOWN"] = 0] = "UNKNOWN";
                  LiftCarDirection22222[LiftCarDirection22222["NONE"] = 1] = "NONE";
                  LiftCarDirection22222[LiftCarDirection22222["STOPPED"] = 2] = "STOPPED";
                  LiftCarDirection22222[LiftCarDirection22222["UP"] = 3] = "UP";
                  LiftCarDirection22222[LiftCarDirection22222["DOWN"] = 4] = "DOWN";
                  LiftCarDirection22222[LiftCarDirection22222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
                  return LiftCarDirection22222;
                })(LiftCarDirection2222 || {});
                var LiftCarDoorCommand2222 = /* @__PURE__ */ ((LiftCarDoorCommand22222) => {
                  LiftCarDoorCommand22222[LiftCarDoorCommand22222["NONE"] = 0] = "NONE";
                  LiftCarDoorCommand22222[LiftCarDoorCommand22222["OPEN"] = 1] = "OPEN";
                  LiftCarDoorCommand22222[LiftCarDoorCommand22222["CLOSE"] = 2] = "CLOSE";
                  return LiftCarDoorCommand22222;
                })(LiftCarDoorCommand2222 || {});
                var LiftCarDriveStatus2222 = /* @__PURE__ */ ((LiftCarDriveStatus22222) => {
                  LiftCarDriveStatus22222[LiftCarDriveStatus22222["UNKNOWN"] = 0] = "UNKNOWN";
                  LiftCarDriveStatus22222[LiftCarDriveStatus22222["STATIONARY"] = 1] = "STATIONARY";
                  LiftCarDriveStatus22222[LiftCarDriveStatus22222["BRAKING"] = 2] = "BRAKING";
                  LiftCarDriveStatus22222[LiftCarDriveStatus22222["ACCELERATE"] = 3] = "ACCELERATE";
                  LiftCarDriveStatus22222[LiftCarDriveStatus22222["DECELERATE"] = 4] = "DECELERATE";
                  LiftCarDriveStatus22222[LiftCarDriveStatus22222["RATED_SPEED"] = 5] = "RATED_SPEED";
                  LiftCarDriveStatus22222[LiftCarDriveStatus22222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
                  LiftCarDriveStatus22222[LiftCarDriveStatus22222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
                  LiftCarDriveStatus22222[LiftCarDriveStatus22222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
                  LiftCarDriveStatus22222[LiftCarDriveStatus22222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
                  return LiftCarDriveStatus22222;
                })(LiftCarDriveStatus2222 || {});
                var LiftCarMode2222 = /* @__PURE__ */ ((LiftCarMode22222) => {
                  LiftCarMode22222[LiftCarMode22222["UNKNOWN"] = 0] = "UNKNOWN";
                  LiftCarMode22222[LiftCarMode22222["NORMAL"] = 1] = "NORMAL";
                  LiftCarMode22222[LiftCarMode22222["VIP"] = 2] = "VIP";
                  LiftCarMode22222[LiftCarMode22222["HOMING"] = 3] = "HOMING";
                  LiftCarMode22222[LiftCarMode22222["PARKING"] = 4] = "PARKING";
                  LiftCarMode22222[LiftCarMode22222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
                  LiftCarMode22222[LiftCarMode22222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
                  LiftCarMode22222[LiftCarMode22222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
                  LiftCarMode22222[LiftCarMode22222["INSPECTION"] = 8] = "INSPECTION";
                  LiftCarMode22222[LiftCarMode22222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
                  LiftCarMode22222[LiftCarMode22222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
                  LiftCarMode22222[LiftCarMode22222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
                  LiftCarMode22222[LiftCarMode22222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
                  LiftCarMode22222[LiftCarMode22222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
                  return LiftCarMode22222;
                })(LiftCarMode2222 || {});
                var LiftFault2222 = /* @__PURE__ */ ((LiftFault22222) => {
                  LiftFault22222[LiftFault22222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
                  LiftFault22222[LiftFault22222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
                  LiftFault22222[LiftFault22222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
                  LiftFault22222[LiftFault22222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
                  LiftFault22222[LiftFault22222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
                  LiftFault22222[LiftFault22222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
                  LiftFault22222[LiftFault22222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
                  LiftFault22222[LiftFault22222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
                  LiftFault22222[LiftFault22222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
                  LiftFault22222[LiftFault22222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
                  LiftFault22222[LiftFault22222["START_FAILURE"] = 10] = "START_FAILURE";
                  LiftFault22222[LiftFault22222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
                  LiftFault22222[LiftFault22222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
                  LiftFault22222[LiftFault22222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
                  LiftFault22222[LiftFault22222["POSITION_LOST"] = 14] = "POSITION_LOST";
                  LiftFault22222[LiftFault22222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
                  LiftFault22222[LiftFault22222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
                  return LiftFault22222;
                })(LiftFault2222 || {});
                var LiftGroupMode2222 = /* @__PURE__ */ ((LiftGroupMode22222) => {
                  LiftGroupMode22222[LiftGroupMode22222["UNKNOWN"] = 0] = "UNKNOWN";
                  LiftGroupMode22222[LiftGroupMode22222["NORMAL"] = 1] = "NORMAL";
                  LiftGroupMode22222[LiftGroupMode22222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
                  LiftGroupMode22222[LiftGroupMode22222["TWO_WAY"] = 3] = "TWO_WAY";
                  LiftGroupMode22222[LiftGroupMode22222["FOUR_WAY"] = 4] = "FOUR_WAY";
                  LiftGroupMode22222[LiftGroupMode22222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
                  LiftGroupMode22222[LiftGroupMode22222["UP_PEAK"] = 6] = "UP_PEAK";
                  return LiftGroupMode22222;
                })(LiftGroupMode2222 || {});
                var LightingInProgress2222 = /* @__PURE__ */ ((LightingInProgress22222) => {
                  LightingInProgress22222[LightingInProgress22222["IDLE"] = 0] = "IDLE";
                  LightingInProgress22222[LightingInProgress22222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
                  LightingInProgress22222[LightingInProgress22222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
                  LightingInProgress22222[LightingInProgress22222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
                  LightingInProgress22222[LightingInProgress22222["OTHER"] = 4] = "OTHER";
                  return LightingInProgress22222;
                })(LightingInProgress2222 || {});
                var LightingOperation2222 = /* @__PURE__ */ ((LightingOperation22222) => {
                  LightingOperation22222[LightingOperation22222["NONE"] = 0] = "NONE";
                  LightingOperation22222[LightingOperation22222["FADE_TO"] = 1] = "FADE_TO";
                  LightingOperation22222[LightingOperation22222["RAMP_TO"] = 2] = "RAMP_TO";
                  LightingOperation22222[LightingOperation22222["STEP_UP"] = 3] = "STEP_UP";
                  LightingOperation22222[LightingOperation22222["STEP_DOWN"] = 4] = "STEP_DOWN";
                  LightingOperation22222[LightingOperation22222["STEP_ON"] = 5] = "STEP_ON";
                  LightingOperation22222[LightingOperation22222["STEP_OFF"] = 6] = "STEP_OFF";
                  LightingOperation22222[LightingOperation22222["WARN"] = 7] = "WARN";
                  LightingOperation22222[LightingOperation22222["WARN_OFF"] = 8] = "WARN_OFF";
                  LightingOperation22222[LightingOperation22222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
                  LightingOperation22222[LightingOperation22222["STOP"] = 10] = "STOP";
                  return LightingOperation22222;
                })(LightingOperation2222 || {});
                var LightingTransition2222 = /* @__PURE__ */ ((LightingTransition22222) => {
                  LightingTransition22222[LightingTransition22222["NONE"] = 0] = "NONE";
                  LightingTransition22222[LightingTransition22222["FADE"] = 1] = "FADE";
                  LightingTransition22222[LightingTransition22222["RAMP"] = 2] = "RAMP";
                  return LightingTransition22222;
                })(LightingTransition2222 || {});
                var LockStatus2222 = /* @__PURE__ */ ((LockStatus22222) => {
                  LockStatus22222[LockStatus22222["LOCKED"] = 0] = "LOCKED";
                  LockStatus22222[LockStatus22222["UNLOCKED"] = 1] = "UNLOCKED";
                  LockStatus22222[LockStatus22222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
                  LockStatus22222[LockStatus22222["UNUSED"] = 3] = "UNUSED";
                  LockStatus22222[LockStatus22222["UNKNOWN"] = 4] = "UNKNOWN";
                  return LockStatus22222;
                })(LockStatus2222 || {});
                var LoggingType2222 = /* @__PURE__ */ ((LoggingType22222) => {
                  LoggingType22222[LoggingType22222["POLLED"] = 0] = "POLLED";
                  LoggingType22222[LoggingType22222["COV"] = 1] = "COV";
                  LoggingType22222[LoggingType22222["TRIGGERED"] = 2] = "TRIGGERED";
                  return LoggingType22222;
                })(LoggingType2222 || {});
                var Maintenance2222 = /* @__PURE__ */ ((Maintenance22222) => {
                  Maintenance22222[Maintenance22222["NONE"] = 0] = "NONE";
                  Maintenance22222[Maintenance22222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
                  Maintenance22222[Maintenance22222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
                  Maintenance22222[Maintenance22222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
                  return Maintenance22222;
                })(Maintenance2222 || {});
                var NetworkNumberQuality2222 = /* @__PURE__ */ ((NetworkNumberQuality22222) => {
                  NetworkNumberQuality22222[NetworkNumberQuality22222["UNKNOWN"] = 0] = "UNKNOWN";
                  NetworkNumberQuality22222[NetworkNumberQuality22222["LEARNED"] = 1] = "LEARNED";
                  NetworkNumberQuality22222[NetworkNumberQuality22222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
                  NetworkNumberQuality22222[NetworkNumberQuality22222["CONFIGURED"] = 3] = "CONFIGURED";
                  return NetworkNumberQuality22222;
                })(NetworkNumberQuality2222 || {});
                var NetworkPortCommand2222 = /* @__PURE__ */ ((NetworkPortCommand22222) => {
                  NetworkPortCommand22222[NetworkPortCommand22222["IDLE"] = 0] = "IDLE";
                  NetworkPortCommand22222[NetworkPortCommand22222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
                  NetworkPortCommand22222[NetworkPortCommand22222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
                  NetworkPortCommand22222[NetworkPortCommand22222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
                  NetworkPortCommand22222[NetworkPortCommand22222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
                  NetworkPortCommand22222[NetworkPortCommand22222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
                  NetworkPortCommand22222[NetworkPortCommand22222["DISCONNECT"] = 6] = "DISCONNECT";
                  NetworkPortCommand22222[NetworkPortCommand22222["RESTART_PORT"] = 7] = "RESTART_PORT";
                  return NetworkPortCommand22222;
                })(NetworkPortCommand2222 || {});
                var NetworkType2222 = /* @__PURE__ */ ((NetworkType22222) => {
                  NetworkType22222[NetworkType22222["ETHERNET"] = 0] = "ETHERNET";
                  NetworkType22222[NetworkType22222["ARCNET"] = 1] = "ARCNET";
                  NetworkType22222[NetworkType22222["MSTP"] = 2] = "MSTP";
                  NetworkType22222[NetworkType22222["PTP"] = 3] = "PTP";
                  NetworkType22222[NetworkType22222["LONTALK"] = 4] = "LONTALK";
                  NetworkType22222[NetworkType22222["IPV4"] = 5] = "IPV4";
                  NetworkType22222[NetworkType22222["ZIGBEE"] = 6] = "ZIGBEE";
                  NetworkType22222[NetworkType22222["VIRTUAL"] = 7] = "VIRTUAL";
                  NetworkType22222[NetworkType22222["IPV6"] = 9] = "IPV6";
                  NetworkType22222[NetworkType22222["SERIAL"] = 10] = "SERIAL";
                  return NetworkType22222;
                })(NetworkType2222 || {});
                var NodeType2222 = /* @__PURE__ */ ((NodeType22222) => {
                  NodeType22222[NodeType22222["UNKNOWN"] = 0] = "UNKNOWN";
                  NodeType22222[NodeType22222["SYSTEM"] = 1] = "SYSTEM";
                  NodeType22222[NodeType22222["NETWORK"] = 2] = "NETWORK";
                  NodeType22222[NodeType22222["DEVICE"] = 3] = "DEVICE";
                  NodeType22222[NodeType22222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
                  NodeType22222[NodeType22222["AREA"] = 5] = "AREA";
                  NodeType22222[NodeType22222["EQUIPMENT"] = 6] = "EQUIPMENT";
                  NodeType22222[NodeType22222["POINT"] = 7] = "POINT";
                  NodeType22222[NodeType22222["COLLECTION"] = 8] = "COLLECTION";
                  NodeType22222[NodeType22222["PROPERTY"] = 9] = "PROPERTY";
                  NodeType22222[NodeType22222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
                  NodeType22222[NodeType22222["OTHER"] = 11] = "OTHER";
                  NodeType22222[NodeType22222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
                  NodeType22222[NodeType22222["BUILDING"] = 13] = "BUILDING";
                  NodeType22222[NodeType22222["FLOOR"] = 14] = "FLOOR";
                  NodeType22222[NodeType22222["SECTION"] = 15] = "SECTION";
                  NodeType22222[NodeType22222["MODULE"] = 16] = "MODULE";
                  NodeType22222[NodeType22222["TREE"] = 17] = "TREE";
                  NodeType22222[NodeType22222["MEMBER"] = 18] = "MEMBER";
                  NodeType22222[NodeType22222["PROTOCOL"] = 19] = "PROTOCOL";
                  NodeType22222[NodeType22222["ROOM"] = 20] = "ROOM";
                  NodeType22222[NodeType22222["ZONE"] = 21] = "ZONE";
                  return NodeType22222;
                })(NodeType2222 || {});
                var NotifyType2222 = /* @__PURE__ */ ((NotifyType22222) => {
                  NotifyType22222[NotifyType22222["ALARM"] = 0] = "ALARM";
                  NotifyType22222[NotifyType22222["EVENT"] = 1] = "EVENT";
                  NotifyType22222[NotifyType22222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
                  return NotifyType22222;
                })(NotifyType2222 || {});
                var ObjectType2222 = /* @__PURE__ */ ((ObjectType22222) => {
                  ObjectType22222[ObjectType22222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                  ObjectType22222[ObjectType22222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                  ObjectType22222[ObjectType22222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                  ObjectType22222[ObjectType22222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                  ObjectType22222[ObjectType22222["ACCESS_USER"] = 35] = "ACCESS_USER";
                  ObjectType22222[ObjectType22222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                  ObjectType22222[ObjectType22222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                  ObjectType22222[ObjectType22222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                  ObjectType22222[ObjectType22222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                  ObjectType22222[ObjectType22222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                  ObjectType22222[ObjectType22222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                  ObjectType22222[ObjectType22222["AVERAGING"] = 18] = "AVERAGING";
                  ObjectType22222[ObjectType22222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                  ObjectType22222[ObjectType22222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                  ObjectType22222[ObjectType22222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                  ObjectType22222[ObjectType22222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                  ObjectType22222[ObjectType22222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                  ObjectType22222[ObjectType22222["CALENDAR"] = 6] = "CALENDAR";
                  ObjectType22222[ObjectType22222["CHANNEL"] = 53] = "CHANNEL";
                  ObjectType22222[ObjectType22222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                  ObjectType22222[ObjectType22222["COMMAND"] = 7] = "COMMAND";
                  ObjectType22222[ObjectType22222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                  ObjectType22222[ObjectType22222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                  ObjectType22222[ObjectType22222["DATE_VALUE"] = 42] = "DATE_VALUE";
                  ObjectType22222[ObjectType22222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                  ObjectType22222[ObjectType22222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                  ObjectType22222[ObjectType22222["DEVICE"] = 8] = "DEVICE";
                  ObjectType22222[ObjectType22222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                  ObjectType22222[ObjectType22222["ESCALATOR"] = 58] = "ESCALATOR";
                  ObjectType22222[ObjectType22222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                  ObjectType22222[ObjectType22222["EVENT_LOG"] = 25] = "EVENT_LOG";
                  ObjectType22222[ObjectType22222["FILE"] = 10] = "FILE";
                  ObjectType22222[ObjectType22222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                  ObjectType22222[ObjectType22222["GROUP"] = 11] = "GROUP";
                  ObjectType22222[ObjectType22222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                  ObjectType22222[ObjectType22222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                  ObjectType22222[ObjectType22222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                  ObjectType22222[ObjectType22222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                  ObjectType22222[ObjectType22222["LIFT"] = 59] = "LIFT";
                  ObjectType22222[ObjectType22222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                  ObjectType22222[ObjectType22222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                  ObjectType22222[ObjectType22222["LOOP"] = 12] = "LOOP";
                  ObjectType22222[ObjectType22222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                  ObjectType22222[ObjectType22222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                  ObjectType22222[ObjectType22222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                  ObjectType22222[ObjectType22222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                  ObjectType22222[ObjectType22222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                  ObjectType22222[ObjectType22222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                  ObjectType22222[ObjectType22222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                  ObjectType22222[ObjectType22222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                  ObjectType22222[ObjectType22222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                  ObjectType22222[ObjectType22222["PROGRAM"] = 16] = "PROGRAM";
                  ObjectType22222[ObjectType22222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                  ObjectType22222[ObjectType22222["SCHEDULE"] = 17] = "SCHEDULE";
                  ObjectType22222[ObjectType22222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                  ObjectType22222[ObjectType22222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                  ObjectType22222[ObjectType22222["TIME_VALUE"] = 50] = "TIME_VALUE";
                  ObjectType22222[ObjectType22222["TIMER"] = 31] = "TIMER";
                  ObjectType22222[ObjectType22222["TREND_LOG"] = 20] = "TREND_LOG";
                  ObjectType22222[ObjectType22222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                  return ObjectType22222;
                })(ObjectType2222 || {});
                var Polarity2222 = /* @__PURE__ */ ((Polarity22222) => {
                  Polarity22222[Polarity22222["NORMAL"] = 0] = "NORMAL";
                  Polarity22222[Polarity22222["REVERSE"] = 1] = "REVERSE";
                  return Polarity22222;
                })(Polarity2222 || {});
                var ProgramError2222 = /* @__PURE__ */ ((ProgramError22222) => {
                  ProgramError22222[ProgramError22222["NORMAL"] = 0] = "NORMAL";
                  ProgramError22222[ProgramError22222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
                  ProgramError22222[ProgramError22222["INTERNAL"] = 2] = "INTERNAL";
                  ProgramError22222[ProgramError22222["PROGRAM"] = 3] = "PROGRAM";
                  ProgramError22222[ProgramError22222["OTHER"] = 4] = "OTHER";
                  return ProgramError22222;
                })(ProgramError2222 || {});
                var ProgramRequest2222 = /* @__PURE__ */ ((ProgramRequest22222) => {
                  ProgramRequest22222[ProgramRequest22222["READY"] = 0] = "READY";
                  ProgramRequest22222[ProgramRequest22222["LOAD"] = 1] = "LOAD";
                  ProgramRequest22222[ProgramRequest22222["RUN"] = 2] = "RUN";
                  ProgramRequest22222[ProgramRequest22222["HALT"] = 3] = "HALT";
                  ProgramRequest22222[ProgramRequest22222["RESTART"] = 4] = "RESTART";
                  ProgramRequest22222[ProgramRequest22222["UNLOAD"] = 5] = "UNLOAD";
                  return ProgramRequest22222;
                })(ProgramRequest2222 || {});
                var ProgramState2222 = /* @__PURE__ */ ((ProgramState22222) => {
                  ProgramState22222[ProgramState22222["IDLE"] = 0] = "IDLE";
                  ProgramState22222[ProgramState22222["LOADING"] = 1] = "LOADING";
                  ProgramState22222[ProgramState22222["RUNNING"] = 2] = "RUNNING";
                  ProgramState22222[ProgramState22222["WAITING"] = 3] = "WAITING";
                  ProgramState22222[ProgramState22222["HALTED"] = 4] = "HALTED";
                  ProgramState22222[ProgramState22222["UNLOADING"] = 5] = "UNLOADING";
                  return ProgramState22222;
                })(ProgramState2222 || {});
                var PropertyIdentifier2222 = /* @__PURE__ */ ((PropertyIdentifier22222) => {
                  PropertyIdentifier22222[PropertyIdentifier22222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACTION"] = 2] = "ACTION";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
                  PropertyIdentifier22222[PropertyIdentifier22222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
                  PropertyIdentifier22222[PropertyIdentifier22222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ALL"] = 8] = "ALL";
                  PropertyIdentifier22222[PropertyIdentifier22222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
                  PropertyIdentifier22222[PropertyIdentifier22222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
                  PropertyIdentifier22222[PropertyIdentifier22222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
                  PropertyIdentifier22222[PropertyIdentifier22222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
                  PropertyIdentifier22222[PropertyIdentifier22222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
                  PropertyIdentifier22222[PropertyIdentifier22222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
                  PropertyIdentifier22222[PropertyIdentifier22222["ARCHIVE"] = 13] = "ARCHIVE";
                  PropertyIdentifier22222[PropertyIdentifier22222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
                  PropertyIdentifier22222[PropertyIdentifier22222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
                  PropertyIdentifier22222[PropertyIdentifier22222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
                  PropertyIdentifier22222[PropertyIdentifier22222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
                  PropertyIdentifier22222[PropertyIdentifier22222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
                  PropertyIdentifier22222[PropertyIdentifier22222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
                  PropertyIdentifier22222[PropertyIdentifier22222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
                  PropertyIdentifier22222[PropertyIdentifier22222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
                  PropertyIdentifier22222[PropertyIdentifier22222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
                  PropertyIdentifier22222[PropertyIdentifier22222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
                  PropertyIdentifier22222[PropertyIdentifier22222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
                  PropertyIdentifier22222[PropertyIdentifier22222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
                  PropertyIdentifier22222[PropertyIdentifier22222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
                  PropertyIdentifier22222[PropertyIdentifier22222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
                  PropertyIdentifier22222[PropertyIdentifier22222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
                  PropertyIdentifier22222[PropertyIdentifier22222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
                  PropertyIdentifier22222[PropertyIdentifier22222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
                  PropertyIdentifier22222[PropertyIdentifier22222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
                  PropertyIdentifier22222[PropertyIdentifier22222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
                  PropertyIdentifier22222[PropertyIdentifier22222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["BELONGS_TO"] = 262] = "BELONGS_TO";
                  PropertyIdentifier22222[PropertyIdentifier22222["BIAS"] = 14] = "BIAS";
                  PropertyIdentifier22222[PropertyIdentifier22222["BIT_MASK"] = 342] = "BIT_MASK";
                  PropertyIdentifier22222[PropertyIdentifier22222["BIT_TEXT"] = 343] = "BIT_TEXT";
                  PropertyIdentifier22222[PropertyIdentifier22222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
                  PropertyIdentifier22222[PropertyIdentifier22222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
                  PropertyIdentifier22222[PropertyIdentifier22222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
                  PropertyIdentifier22222[PropertyIdentifier22222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
                  PropertyIdentifier22222[PropertyIdentifier22222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
                  PropertyIdentifier22222[PropertyIdentifier22222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
                  PropertyIdentifier22222[PropertyIdentifier22222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
                  PropertyIdentifier22222[PropertyIdentifier22222["CAR_LOAD"] = 454] = "CAR_LOAD";
                  PropertyIdentifier22222[PropertyIdentifier22222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
                  PropertyIdentifier22222[PropertyIdentifier22222["CAR_MODE"] = 456] = "CAR_MODE";
                  PropertyIdentifier22222[PropertyIdentifier22222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
                  PropertyIdentifier22222[PropertyIdentifier22222["CAR_POSITION"] = 458] = "CAR_POSITION";
                  PropertyIdentifier22222[PropertyIdentifier22222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
                  PropertyIdentifier22222[PropertyIdentifier22222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
                  PropertyIdentifier22222[PropertyIdentifier22222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
                  PropertyIdentifier22222[PropertyIdentifier22222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
                  PropertyIdentifier22222[PropertyIdentifier22222["COMMAND"] = 417] = "COMMAND";
                  PropertyIdentifier22222[PropertyIdentifier22222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
                  PropertyIdentifier22222[PropertyIdentifier22222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
                  PropertyIdentifier22222[PropertyIdentifier22222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
                  PropertyIdentifier22222[PropertyIdentifier22222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
                  PropertyIdentifier22222[PropertyIdentifier22222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
                  PropertyIdentifier22222[PropertyIdentifier22222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["COUNT"] = 177] = "COUNT";
                  PropertyIdentifier22222[PropertyIdentifier22222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
                  PropertyIdentifier22222[PropertyIdentifier22222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
                  PropertyIdentifier22222[PropertyIdentifier22222["COV_PERIOD"] = 180] = "COV_PERIOD";
                  PropertyIdentifier22222[PropertyIdentifier22222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
                  PropertyIdentifier22222[PropertyIdentifier22222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
                  PropertyIdentifier22222[PropertyIdentifier22222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
                  PropertyIdentifier22222[PropertyIdentifier22222["CREDENTIALS"] = 265] = "CREDENTIALS";
                  PropertyIdentifier22222[PropertyIdentifier22222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
                  PropertyIdentifier22222[PropertyIdentifier22222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
                  PropertyIdentifier22222[PropertyIdentifier22222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
                  PropertyIdentifier22222[PropertyIdentifier22222["DATE_LIST"] = 23] = "DATE_LIST";
                  PropertyIdentifier22222[PropertyIdentifier22222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
                  PropertyIdentifier22222[PropertyIdentifier22222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
                  PropertyIdentifier22222[PropertyIdentifier22222["DEADBAND"] = 25] = "DEADBAND";
                  PropertyIdentifier22222[PropertyIdentifier22222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
                  PropertyIdentifier22222[PropertyIdentifier22222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
                  PropertyIdentifier22222[PropertyIdentifier22222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
                  PropertyIdentifier22222[PropertyIdentifier22222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
                  PropertyIdentifier22222[PropertyIdentifier22222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
                  PropertyIdentifier22222[PropertyIdentifier22222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
                  PropertyIdentifier22222[PropertyIdentifier22222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
                  PropertyIdentifier22222[PropertyIdentifier22222["DESCRIPTION"] = 28] = "DESCRIPTION";
                  PropertyIdentifier22222[PropertyIdentifier22222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
                  PropertyIdentifier22222[PropertyIdentifier22222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
                  PropertyIdentifier22222[PropertyIdentifier22222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
                  PropertyIdentifier22222[PropertyIdentifier22222["DIRECT_READING"] = 156] = "DIRECT_READING";
                  PropertyIdentifier22222[PropertyIdentifier22222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
                  PropertyIdentifier22222[PropertyIdentifier22222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
                  PropertyIdentifier22222[PropertyIdentifier22222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
                  PropertyIdentifier22222[PropertyIdentifier22222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
                  PropertyIdentifier22222[PropertyIdentifier22222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
                  PropertyIdentifier22222[PropertyIdentifier22222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
                  PropertyIdentifier22222[PropertyIdentifier22222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
                  PropertyIdentifier22222[PropertyIdentifier22222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
                  PropertyIdentifier22222[PropertyIdentifier22222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
                  PropertyIdentifier22222[PropertyIdentifier22222["ENABLE"] = 133] = "ENABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["ENERGY_METER"] = 460] = "ENERGY_METER";
                  PropertyIdentifier22222[PropertyIdentifier22222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
                  PropertyIdentifier22222[PropertyIdentifier22222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
                  PropertyIdentifier22222[PropertyIdentifier22222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
                  PropertyIdentifier22222[PropertyIdentifier22222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
                  PropertyIdentifier22222[PropertyIdentifier22222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
                  PropertyIdentifier22222[PropertyIdentifier22222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
                  PropertyIdentifier22222[PropertyIdentifier22222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
                  PropertyIdentifier22222[PropertyIdentifier22222["EVENT_STATE"] = 36] = "EVENT_STATE";
                  PropertyIdentifier22222[PropertyIdentifier22222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
                  PropertyIdentifier22222[PropertyIdentifier22222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
                  PropertyIdentifier22222[PropertyIdentifier22222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
                  PropertyIdentifier22222[PropertyIdentifier22222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
                  PropertyIdentifier22222[PropertyIdentifier22222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
                  PropertyIdentifier22222[PropertyIdentifier22222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
                  PropertyIdentifier22222[PropertyIdentifier22222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
                  PropertyIdentifier22222[PropertyIdentifier22222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
                  PropertyIdentifier22222[PropertyIdentifier22222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
                  PropertyIdentifier22222[PropertyIdentifier22222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
                  PropertyIdentifier22222[PropertyIdentifier22222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
                  PropertyIdentifier22222[PropertyIdentifier22222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
                  PropertyIdentifier22222[PropertyIdentifier22222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
                  PropertyIdentifier22222[PropertyIdentifier22222["FILE_SIZE"] = 42] = "FILE_SIZE";
                  PropertyIdentifier22222[PropertyIdentifier22222["FILE_TYPE"] = 43] = "FILE_TYPE";
                  PropertyIdentifier22222[PropertyIdentifier22222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
                  PropertyIdentifier22222[PropertyIdentifier22222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
                  PropertyIdentifier22222[PropertyIdentifier22222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
                  PropertyIdentifier22222[PropertyIdentifier22222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
                  PropertyIdentifier22222[PropertyIdentifier22222["GROUP_ID"] = 465] = "GROUP_ID";
                  PropertyIdentifier22222[PropertyIdentifier22222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
                  PropertyIdentifier22222[PropertyIdentifier22222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
                  PropertyIdentifier22222[PropertyIdentifier22222["GROUP_MODE"] = 467] = "GROUP_MODE";
                  PropertyIdentifier22222[PropertyIdentifier22222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
                  PropertyIdentifier22222[PropertyIdentifier22222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
                  PropertyIdentifier22222[PropertyIdentifier22222["IN_PROCESS"] = 47] = "IN_PROCESS";
                  PropertyIdentifier22222[PropertyIdentifier22222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
                  PropertyIdentifier22222[PropertyIdentifier22222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
                  PropertyIdentifier22222[PropertyIdentifier22222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
                  PropertyIdentifier22222[PropertyIdentifier22222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
                  PropertyIdentifier22222[PropertyIdentifier22222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
                  PropertyIdentifier22222[PropertyIdentifier22222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
                  PropertyIdentifier22222[PropertyIdentifier22222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
                  PropertyIdentifier22222[PropertyIdentifier22222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
                  PropertyIdentifier22222[PropertyIdentifier22222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
                  PropertyIdentifier22222[PropertyIdentifier22222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
                  PropertyIdentifier22222[PropertyIdentifier22222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
                  PropertyIdentifier22222[PropertyIdentifier22222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
                  PropertyIdentifier22222[PropertyIdentifier22222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
                  PropertyIdentifier22222[PropertyIdentifier22222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
                  PropertyIdentifier22222[PropertyIdentifier22222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
                  PropertyIdentifier22222[PropertyIdentifier22222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
                  PropertyIdentifier22222[PropertyIdentifier22222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
                  PropertyIdentifier22222[PropertyIdentifier22222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
                  PropertyIdentifier22222[PropertyIdentifier22222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
                  PropertyIdentifier22222[PropertyIdentifier22222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
                  PropertyIdentifier22222[PropertyIdentifier22222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
                  PropertyIdentifier22222[PropertyIdentifier22222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
                  PropertyIdentifier22222[PropertyIdentifier22222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
                  PropertyIdentifier22222[PropertyIdentifier22222["IS_UTC"] = 344] = "IS_UTC";
                  PropertyIdentifier22222[PropertyIdentifier22222["KEY_SETS"] = 330] = "KEY_SETS";
                  PropertyIdentifier22222[PropertyIdentifier22222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
                  PropertyIdentifier22222[PropertyIdentifier22222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
                  PropertyIdentifier22222[PropertyIdentifier22222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
                  PropertyIdentifier22222[PropertyIdentifier22222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
                  PropertyIdentifier22222[PropertyIdentifier22222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
                  PropertyIdentifier22222[PropertyIdentifier22222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
                  PropertyIdentifier22222[PropertyIdentifier22222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
                  PropertyIdentifier22222[PropertyIdentifier22222["LINK_SPEED"] = 420] = "LINK_SPEED";
                  PropertyIdentifier22222[PropertyIdentifier22222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
                  PropertyIdentifier22222[PropertyIdentifier22222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
                  PropertyIdentifier22222[PropertyIdentifier22222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
                  PropertyIdentifier22222[PropertyIdentifier22222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOCATION"] = 58] = "LOCATION";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOCKOUT"] = 282] = "LOCKOUT";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
                  PropertyIdentifier22222[PropertyIdentifier22222["LOWER_DECK"] = 473] = "LOWER_DECK";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
                  PropertyIdentifier22222[PropertyIdentifier22222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
                  PropertyIdentifier22222[PropertyIdentifier22222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
                  PropertyIdentifier22222[PropertyIdentifier22222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
                  PropertyIdentifier22222[PropertyIdentifier22222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAX_MASTER"] = 64] = "MAX_MASTER";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
                  PropertyIdentifier22222[PropertyIdentifier22222["MEMBER_OF"] = 159] = "MEMBER_OF";
                  PropertyIdentifier22222[PropertyIdentifier22222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
                  PropertyIdentifier22222[PropertyIdentifier22222["MEMBERS"] = 286] = "MEMBERS";
                  PropertyIdentifier22222[PropertyIdentifier22222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
                  PropertyIdentifier22222[PropertyIdentifier22222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
                  PropertyIdentifier22222[PropertyIdentifier22222["MODE"] = 160] = "MODE";
                  PropertyIdentifier22222[PropertyIdentifier22222["MODEL_NAME"] = 70] = "MODEL_NAME";
                  PropertyIdentifier22222[PropertyIdentifier22222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
                  PropertyIdentifier22222[PropertyIdentifier22222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
                  PropertyIdentifier22222[PropertyIdentifier22222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
                  PropertyIdentifier22222[PropertyIdentifier22222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
                  PropertyIdentifier22222[PropertyIdentifier22222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
                  PropertyIdentifier22222[PropertyIdentifier22222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
                  PropertyIdentifier22222[PropertyIdentifier22222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
                  PropertyIdentifier22222[PropertyIdentifier22222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
                  PropertyIdentifier22222[PropertyIdentifier22222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
                  PropertyIdentifier22222[PropertyIdentifier22222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
                  PropertyIdentifier22222[PropertyIdentifier22222["NODE_TYPE"] = 208] = "NODE_TYPE";
                  PropertyIdentifier22222[PropertyIdentifier22222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
                  PropertyIdentifier22222[PropertyIdentifier22222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
                  PropertyIdentifier22222[PropertyIdentifier22222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
                  PropertyIdentifier22222[PropertyIdentifier22222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
                  PropertyIdentifier22222[PropertyIdentifier22222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
                  PropertyIdentifier22222[PropertyIdentifier22222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
                  PropertyIdentifier22222[PropertyIdentifier22222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
                  PropertyIdentifier22222[PropertyIdentifier22222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
                  PropertyIdentifier22222[PropertyIdentifier22222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
                  PropertyIdentifier22222[PropertyIdentifier22222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
                  PropertyIdentifier22222[PropertyIdentifier22222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
                  PropertyIdentifier22222[PropertyIdentifier22222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
                  PropertyIdentifier22222[PropertyIdentifier22222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
                  PropertyIdentifier22222[PropertyIdentifier22222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
                  PropertyIdentifier22222[PropertyIdentifier22222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
                  PropertyIdentifier22222[PropertyIdentifier22222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
                  PropertyIdentifier22222[PropertyIdentifier22222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
                  PropertyIdentifier22222[PropertyIdentifier22222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
                  PropertyIdentifier22222[PropertyIdentifier22222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
                  PropertyIdentifier22222[PropertyIdentifier22222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
                  PropertyIdentifier22222[PropertyIdentifier22222["OPTIONAL"] = 80] = "OPTIONAL";
                  PropertyIdentifier22222[PropertyIdentifier22222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
                  PropertyIdentifier22222[PropertyIdentifier22222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
                  PropertyIdentifier22222[PropertyIdentifier22222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
                  PropertyIdentifier22222[PropertyIdentifier22222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
                  PropertyIdentifier22222[PropertyIdentifier22222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
                  PropertyIdentifier22222[PropertyIdentifier22222["POLARITY"] = 84] = "POLARITY";
                  PropertyIdentifier22222[PropertyIdentifier22222["PORT_FILTER"] = 363] = "PORT_FILTER";
                  PropertyIdentifier22222[PropertyIdentifier22222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
                  PropertyIdentifier22222[PropertyIdentifier22222["POWER"] = 384] = "POWER";
                  PropertyIdentifier22222[PropertyIdentifier22222["POWER_MODE"] = 479] = "POWER_MODE";
                  PropertyIdentifier22222[PropertyIdentifier22222["PRESCALE"] = 185] = "PRESCALE";
                  PropertyIdentifier22222[PropertyIdentifier22222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["PRIORITY"] = 86] = "PRIORITY";
                  PropertyIdentifier22222[PropertyIdentifier22222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
                  PropertyIdentifier22222[PropertyIdentifier22222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
                  PropertyIdentifier22222[PropertyIdentifier22222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
                  PropertyIdentifier22222[PropertyIdentifier22222["PULSE_RATE"] = 186] = "PULSE_RATE";
                  PropertyIdentifier22222[PropertyIdentifier22222["READ_ONLY"] = 99] = "READ_ONLY";
                  PropertyIdentifier22222[PropertyIdentifier22222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
                  PropertyIdentifier22222[PropertyIdentifier22222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
                  PropertyIdentifier22222[PropertyIdentifier22222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
                  PropertyIdentifier22222[PropertyIdentifier22222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
                  PropertyIdentifier22222[PropertyIdentifier22222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
                  PropertyIdentifier22222[PropertyIdentifier22222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
                  PropertyIdentifier22222[PropertyIdentifier22222["RELIABILITY"] = 103] = "RELIABILITY";
                  PropertyIdentifier22222[PropertyIdentifier22222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
                  PropertyIdentifier22222[PropertyIdentifier22222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
                  PropertyIdentifier22222[PropertyIdentifier22222["REPRESENTS"] = 491] = "REPRESENTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
                  PropertyIdentifier22222[PropertyIdentifier22222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
                  PropertyIdentifier22222[PropertyIdentifier22222["REQUIRED"] = 105] = "REQUIRED";
                  PropertyIdentifier22222[PropertyIdentifier22222["RESOLUTION"] = 106] = "RESOLUTION";
                  PropertyIdentifier22222[PropertyIdentifier22222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["SCALE"] = 187] = "SCALE";
                  PropertyIdentifier22222[PropertyIdentifier22222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
                  PropertyIdentifier22222[PropertyIdentifier22222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
                  PropertyIdentifier22222[PropertyIdentifier22222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
                  PropertyIdentifier22222[PropertyIdentifier22222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
                  PropertyIdentifier22222[PropertyIdentifier22222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
                  PropertyIdentifier22222[PropertyIdentifier22222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
                  PropertyIdentifier22222[PropertyIdentifier22222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
                  PropertyIdentifier22222[PropertyIdentifier22222["SETPOINT"] = 108] = "SETPOINT";
                  PropertyIdentifier22222[PropertyIdentifier22222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
                  PropertyIdentifier22222[PropertyIdentifier22222["SETTING"] = 162] = "SETTING";
                  PropertyIdentifier22222[PropertyIdentifier22222["SHED_DURATION"] = 219] = "SHED_DURATION";
                  PropertyIdentifier22222[PropertyIdentifier22222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
                  PropertyIdentifier22222[PropertyIdentifier22222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
                  PropertyIdentifier22222[PropertyIdentifier22222["SILENCED"] = 163] = "SILENCED";
                  PropertyIdentifier22222[PropertyIdentifier22222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
                  PropertyIdentifier22222[PropertyIdentifier22222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["START_TIME"] = 142] = "START_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
                  PropertyIdentifier22222[PropertyIdentifier22222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
                  PropertyIdentifier22222[PropertyIdentifier22222["STATE_TEXT"] = 110] = "STATE_TEXT";
                  PropertyIdentifier22222[PropertyIdentifier22222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
                  PropertyIdentifier22222[PropertyIdentifier22222["STOP_TIME"] = 143] = "STOP_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
                  PropertyIdentifier22222[PropertyIdentifier22222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
                  PropertyIdentifier22222[PropertyIdentifier22222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
                  PropertyIdentifier22222[PropertyIdentifier22222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
                  PropertyIdentifier22222[PropertyIdentifier22222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
                  PropertyIdentifier22222[PropertyIdentifier22222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
                  PropertyIdentifier22222[PropertyIdentifier22222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
                  PropertyIdentifier22222[PropertyIdentifier22222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
                  PropertyIdentifier22222[PropertyIdentifier22222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
                  PropertyIdentifier22222[PropertyIdentifier22222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
                  PropertyIdentifier22222[PropertyIdentifier22222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
                  PropertyIdentifier22222[PropertyIdentifier22222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
                  PropertyIdentifier22222[PropertyIdentifier22222["TAGS"] = 486] = "TAGS";
                  PropertyIdentifier22222[PropertyIdentifier22222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
                  PropertyIdentifier22222[PropertyIdentifier22222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
                  PropertyIdentifier22222[PropertyIdentifier22222["TIME_DELAY"] = 113] = "TIME_DELAY";
                  PropertyIdentifier22222[PropertyIdentifier22222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
                  PropertyIdentifier22222[PropertyIdentifier22222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
                  PropertyIdentifier22222[PropertyIdentifier22222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
                  PropertyIdentifier22222[PropertyIdentifier22222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
                  PropertyIdentifier22222[PropertyIdentifier22222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
                  PropertyIdentifier22222[PropertyIdentifier22222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
                  PropertyIdentifier22222[PropertyIdentifier22222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
                  PropertyIdentifier22222[PropertyIdentifier22222["TIMER_STATE"] = 398] = "TIMER_STATE";
                  PropertyIdentifier22222[PropertyIdentifier22222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
                  PropertyIdentifier22222[PropertyIdentifier22222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
                  PropertyIdentifier22222[PropertyIdentifier22222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
                  PropertyIdentifier22222[PropertyIdentifier22222["TRANSITION"] = 385] = "TRANSITION";
                  PropertyIdentifier22222[PropertyIdentifier22222["TRIGGER"] = 205] = "TRIGGER";
                  PropertyIdentifier22222[PropertyIdentifier22222["UNITS"] = 117] = "UNITS";
                  PropertyIdentifier22222[PropertyIdentifier22222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
                  PropertyIdentifier22222[PropertyIdentifier22222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
                  PropertyIdentifier22222[PropertyIdentifier22222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
                  PropertyIdentifier22222[PropertyIdentifier22222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
                  PropertyIdentifier22222[PropertyIdentifier22222["USER_NAME"] = 317] = "USER_NAME";
                  PropertyIdentifier22222[PropertyIdentifier22222["USER_TYPE"] = 318] = "USER_TYPE";
                  PropertyIdentifier22222[PropertyIdentifier22222["USES_REMAINING"] = 319] = "USES_REMAINING";
                  PropertyIdentifier22222[PropertyIdentifier22222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
                  PropertyIdentifier22222[PropertyIdentifier22222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
                  PropertyIdentifier22222[PropertyIdentifier22222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
                  PropertyIdentifier22222[PropertyIdentifier22222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
                  PropertyIdentifier22222[PropertyIdentifier22222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["VALUE_SET"] = 191] = "VALUE_SET";
                  PropertyIdentifier22222[PropertyIdentifier22222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
                  PropertyIdentifier22222[PropertyIdentifier22222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
                  PropertyIdentifier22222[PropertyIdentifier22222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
                  PropertyIdentifier22222[PropertyIdentifier22222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
                  PropertyIdentifier22222[PropertyIdentifier22222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
                  PropertyIdentifier22222[PropertyIdentifier22222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
                  PropertyIdentifier22222[PropertyIdentifier22222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
                  PropertyIdentifier22222[PropertyIdentifier22222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
                  PropertyIdentifier22222[PropertyIdentifier22222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
                  PropertyIdentifier22222[PropertyIdentifier22222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
                  PropertyIdentifier22222[PropertyIdentifier22222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
                  PropertyIdentifier22222[PropertyIdentifier22222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ZONE_FROM"] = 320] = "ZONE_FROM";
                  PropertyIdentifier22222[PropertyIdentifier22222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
                  PropertyIdentifier22222[PropertyIdentifier22222["ZONE_TO"] = 321] = "ZONE_TO";
                  return PropertyIdentifier22222;
                })(PropertyIdentifier2222 || {});
                var ProtocolLevel2222 = /* @__PURE__ */ ((ProtocolLevel22222) => {
                  ProtocolLevel22222[ProtocolLevel22222["PHYSICAL"] = 0] = "PHYSICAL";
                  ProtocolLevel22222[ProtocolLevel22222["PROTOCOL"] = 1] = "PROTOCOL";
                  ProtocolLevel22222[ProtocolLevel22222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
                  ProtocolLevel22222[ProtocolLevel22222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
                  return ProtocolLevel22222;
                })(ProtocolLevel2222 || {});
                var Relationship2222 = /* @__PURE__ */ ((Relationship22222) => {
                  Relationship22222[Relationship22222["UNKNOWN"] = 0] = "UNKNOWN";
                  Relationship22222[Relationship22222["DEFAULT"] = 1] = "DEFAULT";
                  Relationship22222[Relationship22222["CONTAINS"] = 2] = "CONTAINS";
                  Relationship22222[Relationship22222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
                  Relationship22222[Relationship22222["USES"] = 4] = "USES";
                  Relationship22222[Relationship22222["USED_BY"] = 5] = "USED_BY";
                  Relationship22222[Relationship22222["COMMANDS"] = 6] = "COMMANDS";
                  Relationship22222[Relationship22222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
                  Relationship22222[Relationship22222["ADJUSTS"] = 8] = "ADJUSTS";
                  Relationship22222[Relationship22222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
                  Relationship22222[Relationship22222["INGRESS"] = 10] = "INGRESS";
                  Relationship22222[Relationship22222["EGRESS"] = 11] = "EGRESS";
                  Relationship22222[Relationship22222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
                  Relationship22222[Relationship22222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
                  Relationship22222[Relationship22222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
                  Relationship22222[Relationship22222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
                  Relationship22222[Relationship22222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
                  Relationship22222[Relationship22222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
                  Relationship22222[Relationship22222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
                  Relationship22222[Relationship22222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
                  Relationship22222[Relationship22222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
                  Relationship22222[Relationship22222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
                  Relationship22222[Relationship22222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
                  Relationship22222[Relationship22222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
                  Relationship22222[Relationship22222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
                  Relationship22222[Relationship22222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
                  Relationship22222[Relationship22222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
                  Relationship22222[Relationship22222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
                  Relationship22222[Relationship22222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
                  Relationship22222[Relationship22222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
                  return Relationship22222;
                })(Relationship2222 || {});
                var Reliability2222 = /* @__PURE__ */ ((Reliability22222) => {
                  Reliability22222[Reliability22222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
                  Reliability22222[Reliability22222["NO_SENSOR"] = 1] = "NO_SENSOR";
                  Reliability22222[Reliability22222["OVER_RANGE"] = 2] = "OVER_RANGE";
                  Reliability22222[Reliability22222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
                  Reliability22222[Reliability22222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
                  Reliability22222[Reliability22222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
                  Reliability22222[Reliability22222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
                  Reliability22222[Reliability22222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
                  Reliability22222[Reliability22222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
                  Reliability22222[Reliability22222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
                  Reliability22222[Reliability22222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
                  Reliability22222[Reliability22222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
                  Reliability22222[Reliability22222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
                  Reliability22222[Reliability22222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
                  Reliability22222[Reliability22222["TRIPPED"] = 15] = "TRIPPED";
                  Reliability22222[Reliability22222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
                  Reliability22222[Reliability22222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
                  Reliability22222[Reliability22222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
                  Reliability22222[Reliability22222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
                  Reliability22222[Reliability22222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
                  Reliability22222[Reliability22222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
                  Reliability22222[Reliability22222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
                  Reliability22222[Reliability22222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
                  Reliability22222[Reliability22222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
                  return Reliability22222;
                })(Reliability2222 || {});
                var RestartReason2222 = /* @__PURE__ */ ((RestartReason22222) => {
                  RestartReason22222[RestartReason22222["UNKNOWN"] = 0] = "UNKNOWN";
                  RestartReason22222[RestartReason22222["COLDSTART"] = 1] = "COLDSTART";
                  RestartReason22222[RestartReason22222["WARMSTART"] = 2] = "WARMSTART";
                  RestartReason22222[RestartReason22222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
                  RestartReason22222[RestartReason22222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
                  RestartReason22222[RestartReason22222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
                  RestartReason22222[RestartReason22222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
                  RestartReason22222[RestartReason22222["SUSPENDED"] = 7] = "SUSPENDED";
                  RestartReason22222[RestartReason22222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
                  return RestartReason22222;
                })(RestartReason2222 || {});
                var SecurityLevel2222 = /* @__PURE__ */ ((SecurityLevel22222) => {
                  SecurityLevel22222[SecurityLevel22222["INCAPABLE"] = 0] = "INCAPABLE";
                  SecurityLevel22222[SecurityLevel22222["PLAIN"] = 1] = "PLAIN";
                  SecurityLevel22222[SecurityLevel22222["SIGNED"] = 2] = "SIGNED";
                  SecurityLevel22222[SecurityLevel22222["ENCRYPTED"] = 3] = "ENCRYPTED";
                  SecurityLevel22222[SecurityLevel22222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
                  SecurityLevel22222[SecurityLevel22222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
                  return SecurityLevel22222;
                })(SecurityLevel2222 || {});
                var SecurityPolicy2222 = /* @__PURE__ */ ((SecurityPolicy22222) => {
                  SecurityPolicy22222[SecurityPolicy22222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
                  SecurityPolicy22222[SecurityPolicy22222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
                  SecurityPolicy22222[SecurityPolicy22222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
                  SecurityPolicy22222[SecurityPolicy22222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
                  return SecurityPolicy22222;
                })(SecurityPolicy2222 || {});
                var Segmentation2222 = /* @__PURE__ */ ((Segmentation22222) => {
                  Segmentation22222[Segmentation22222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
                  Segmentation22222[Segmentation22222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
                  Segmentation22222[Segmentation22222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
                  Segmentation22222[Segmentation22222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
                  return Segmentation22222;
                })(Segmentation2222 || {});
                var ShedState2222 = /* @__PURE__ */ ((ShedState22222) => {
                  ShedState22222[ShedState22222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
                  ShedState22222[ShedState22222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
                  ShedState22222[ShedState22222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
                  ShedState22222[ShedState22222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
                  return ShedState22222;
                })(ShedState2222 || {});
                var SilencedState2222 = /* @__PURE__ */ ((SilencedState22222) => {
                  SilencedState22222[SilencedState22222["UNSILENCED"] = 0] = "UNSILENCED";
                  SilencedState22222[SilencedState22222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
                  SilencedState22222[SilencedState22222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
                  SilencedState22222[SilencedState22222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
                  return SilencedState22222;
                })(SilencedState2222 || {});
                var TimerState2222 = /* @__PURE__ */ ((TimerState22222) => {
                  TimerState22222[TimerState22222["IDLE"] = 0] = "IDLE";
                  TimerState22222[TimerState22222["RUNNING"] = 1] = "RUNNING";
                  TimerState22222[TimerState22222["EXPIRED"] = 2] = "EXPIRED";
                  return TimerState22222;
                })(TimerState2222 || {});
                var TimerTransition2222 = /* @__PURE__ */ ((TimerTransition22222) => {
                  TimerTransition22222[TimerTransition22222["NONE"] = 0] = "NONE";
                  TimerTransition22222[TimerTransition22222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
                  TimerTransition22222[TimerTransition22222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
                  TimerTransition22222[TimerTransition22222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
                  TimerTransition22222[TimerTransition22222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
                  TimerTransition22222[TimerTransition22222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
                  TimerTransition22222[TimerTransition22222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
                  TimerTransition22222[TimerTransition22222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
                  return TimerTransition22222;
                })(TimerTransition2222 || {});
                var VTClass2222 = /* @__PURE__ */ ((VTClass22222) => {
                  VTClass22222[VTClass22222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
                  VTClass22222[VTClass22222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
                  VTClass22222[VTClass22222["DEC_VT52"] = 2] = "DEC_VT52";
                  VTClass22222[VTClass22222["DEC_VT100"] = 3] = "DEC_VT100";
                  VTClass22222[VTClass22222["DEC_VT220"] = 4] = "DEC_VT220";
                  VTClass22222[VTClass22222["HP_700_94"] = 5] = "HP_700_94";
                  VTClass22222[VTClass22222["IBM_3130"] = 6] = "IBM_3130";
                  return VTClass22222;
                })(VTClass2222 || {});
                var WriteStatus2222 = /* @__PURE__ */ ((WriteStatus22222) => {
                  WriteStatus22222[WriteStatus22222["IDLE"] = 0] = "IDLE";
                  WriteStatus22222[WriteStatus22222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
                  WriteStatus22222[WriteStatus22222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
                  WriteStatus22222[WriteStatus22222["FAILED"] = 3] = "FAILED";
                  return WriteStatus22222;
                })(WriteStatus2222 || {});
                var DaysOfWeek2222 = /* @__PURE__ */ ((DaysOfWeek22222) => {
                  DaysOfWeek22222[DaysOfWeek22222["MONDAY"] = 0] = "MONDAY";
                  DaysOfWeek22222[DaysOfWeek22222["TUESDAY"] = 1] = "TUESDAY";
                  DaysOfWeek22222[DaysOfWeek22222["WEDNESDAY"] = 2] = "WEDNESDAY";
                  DaysOfWeek22222[DaysOfWeek22222["THURSDAY"] = 3] = "THURSDAY";
                  DaysOfWeek22222[DaysOfWeek22222["FRIDAY"] = 4] = "FRIDAY";
                  DaysOfWeek22222[DaysOfWeek22222["SATURDAY"] = 5] = "SATURDAY";
                  DaysOfWeek22222[DaysOfWeek22222["SUNDAY"] = 6] = "SUNDAY";
                  return DaysOfWeek22222;
                })(DaysOfWeek2222 || {});
                var EventTransitionBits2222 = /* @__PURE__ */ ((EventTransitionBits22222) => {
                  EventTransitionBits22222[EventTransitionBits22222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
                  EventTransitionBits22222[EventTransitionBits22222["TO_FAULT"] = 1] = "TO_FAULT";
                  EventTransitionBits22222[EventTransitionBits22222["TO_NORMAL"] = 2] = "TO_NORMAL";
                  return EventTransitionBits22222;
                })(EventTransitionBits2222 || {});
                var LimitEnable2222 = /* @__PURE__ */ ((LimitEnable22222) => {
                  LimitEnable22222[LimitEnable22222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
                  LimitEnable22222[LimitEnable22222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
                  return LimitEnable22222;
                })(LimitEnable2222 || {});
                var LogStatus2222 = /* @__PURE__ */ ((LogStatus22222) => {
                  LogStatus22222[LogStatus22222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
                  LogStatus22222[LogStatus22222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
                  LogStatus22222[LogStatus22222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
                  return LogStatus22222;
                })(LogStatus2222 || {});
                var ObjectTypesSupported2222 = /* @__PURE__ */ ((ObjectTypesSupported22222) => {
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["CALENDAR"] = 6] = "CALENDAR";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["COMMAND"] = 7] = "COMMAND";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["DEVICE"] = 8] = "DEVICE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["FILE"] = 10] = "FILE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["GROUP"] = 11] = "GROUP";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["LOOP"] = 12] = "LOOP";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["PROGRAM"] = 16] = "PROGRAM";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["SCHEDULE"] = 17] = "SCHEDULE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["AVERAGING"] = 18] = "AVERAGING";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["TREND_LOG"] = 20] = "TREND_LOG";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["EVENT_LOG"] = 25] = "EVENT_LOG";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["TIMER"] = 31] = "TIMER";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ACCESS_USER"] = 35] = "ACCESS_USER";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["DATE_VALUE"] = 42] = "DATE_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["TIME_VALUE"] = 50] = "TIME_VALUE";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["CHANNEL"] = 53] = "CHANNEL";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["ESCALATOR"] = 58] = "ESCALATOR";
                  ObjectTypesSupported22222[ObjectTypesSupported22222["LIFT"] = 59] = "LIFT";
                  return ObjectTypesSupported22222;
                })(ObjectTypesSupported2222 || {});
                var ResultFlags2222 = /* @__PURE__ */ ((ResultFlags22222) => {
                  ResultFlags22222[ResultFlags22222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
                  ResultFlags22222[ResultFlags22222["LAST_ITEM"] = 1] = "LAST_ITEM";
                  ResultFlags22222[ResultFlags22222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
                  return ResultFlags22222;
                })(ResultFlags2222 || {});
                var ServicesSupported2222 = /* @__PURE__ */ ((ServicesSupported22222) => {
                  ServicesSupported22222[ServicesSupported22222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
                  ServicesSupported22222[ServicesSupported22222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
                  ServicesSupported22222[ServicesSupported22222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
                  ServicesSupported22222[ServicesSupported22222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
                  ServicesSupported22222[ServicesSupported22222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
                  ServicesSupported22222[ServicesSupported22222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
                  ServicesSupported22222[ServicesSupported22222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
                  ServicesSupported22222[ServicesSupported22222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
                  ServicesSupported22222[ServicesSupported22222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
                  ServicesSupported22222[ServicesSupported22222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
                  ServicesSupported22222[ServicesSupported22222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
                  ServicesSupported22222[ServicesSupported22222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
                  ServicesSupported22222[ServicesSupported22222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
                  ServicesSupported22222[ServicesSupported22222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
                  ServicesSupported22222[ServicesSupported22222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
                  ServicesSupported22222[ServicesSupported22222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
                  ServicesSupported22222[ServicesSupported22222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
                  ServicesSupported22222[ServicesSupported22222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
                  ServicesSupported22222[ServicesSupported22222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
                  ServicesSupported22222[ServicesSupported22222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
                  ServicesSupported22222[ServicesSupported22222["VT_OPEN"] = 21] = "VT_OPEN";
                  ServicesSupported22222[ServicesSupported22222["VT_CLOSE"] = 22] = "VT_CLOSE";
                  ServicesSupported22222[ServicesSupported22222["VT_DATA"] = 23] = "VT_DATA";
                  ServicesSupported22222[ServicesSupported22222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
                  ServicesSupported22222[ServicesSupported22222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
                  ServicesSupported22222[ServicesSupported22222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
                  ServicesSupported22222[ServicesSupported22222["I_AM"] = 26] = "I_AM";
                  ServicesSupported22222[ServicesSupported22222["I_HAVE"] = 27] = "I_HAVE";
                  ServicesSupported22222[ServicesSupported22222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
                  ServicesSupported22222[ServicesSupported22222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
                  ServicesSupported22222[ServicesSupported22222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
                  ServicesSupported22222[ServicesSupported22222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
                  ServicesSupported22222[ServicesSupported22222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
                  ServicesSupported22222[ServicesSupported22222["WHO_HAS"] = 33] = "WHO_HAS";
                  ServicesSupported22222[ServicesSupported22222["WHO_IS"] = 34] = "WHO_IS";
                  ServicesSupported22222[ServicesSupported22222["READ_RANGE"] = 35] = "READ_RANGE";
                  ServicesSupported22222[ServicesSupported22222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
                  ServicesSupported22222[ServicesSupported22222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
                  ServicesSupported22222[ServicesSupported22222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
                  ServicesSupported22222[ServicesSupported22222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
                  ServicesSupported22222[ServicesSupported22222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
                  ServicesSupported22222[ServicesSupported22222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
                  ServicesSupported22222[ServicesSupported22222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
                  ServicesSupported22222[ServicesSupported22222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
                  return ServicesSupported22222;
                })(ServicesSupported2222 || {});
                var StatusFlags2222 = /* @__PURE__ */ ((StatusFlags22222) => {
                  StatusFlags22222[StatusFlags22222["IN_ALARM"] = 0] = "IN_ALARM";
                  StatusFlags22222[StatusFlags22222["FAULT"] = 1] = "FAULT";
                  StatusFlags22222[StatusFlags22222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
                  StatusFlags22222[StatusFlags22222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
                  return StatusFlags22222;
                })(StatusFlags2222 || {});
                var ApplicationTag2222 = /* @__PURE__ */ ((ApplicationTag22222) => {
                  ApplicationTag22222[ApplicationTag22222["NULL"] = 0] = "NULL";
                  ApplicationTag22222[ApplicationTag22222["BOOLEAN"] = 1] = "BOOLEAN";
                  ApplicationTag22222[ApplicationTag22222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
                  ApplicationTag22222[ApplicationTag22222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
                  ApplicationTag22222[ApplicationTag22222["REAL"] = 4] = "REAL";
                  ApplicationTag22222[ApplicationTag22222["DOUBLE"] = 5] = "DOUBLE";
                  ApplicationTag22222[ApplicationTag22222["OCTET_STRING"] = 6] = "OCTET_STRING";
                  ApplicationTag22222[ApplicationTag22222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
                  ApplicationTag22222[ApplicationTag22222["BIT_STRING"] = 8] = "BIT_STRING";
                  ApplicationTag22222[ApplicationTag22222["ENUMERATED"] = 9] = "ENUMERATED";
                  ApplicationTag22222[ApplicationTag22222["DATE"] = 10] = "DATE";
                  ApplicationTag22222[ApplicationTag22222["TIME"] = 11] = "TIME";
                  ApplicationTag22222[ApplicationTag22222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
                  ApplicationTag22222[ApplicationTag22222["EMPTYLIST"] = 100] = "EMPTYLIST";
                  ApplicationTag22222[ApplicationTag22222["WEEKNDAY"] = 101] = "WEEKNDAY";
                  ApplicationTag22222[ApplicationTag22222["DATERANGE"] = 102] = "DATERANGE";
                  ApplicationTag22222[ApplicationTag22222["DATETIME"] = 103] = "DATETIME";
                  ApplicationTag22222[ApplicationTag22222["TIMESTAMP"] = 104] = "TIMESTAMP";
                  ApplicationTag22222[ApplicationTag22222["ERROR"] = 105] = "ERROR";
                  ApplicationTag22222[ApplicationTag22222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
                  ApplicationTag22222[ApplicationTag22222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
                  ApplicationTag22222[ApplicationTag22222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
                  ApplicationTag22222[ApplicationTag22222["DESTINATION"] = 109] = "DESTINATION";
                  ApplicationTag22222[ApplicationTag22222["RECIPIENT"] = 110] = "RECIPIENT";
                  ApplicationTag22222[ApplicationTag22222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
                  ApplicationTag22222[ApplicationTag22222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
                  ApplicationTag22222[ApplicationTag22222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
                  ApplicationTag22222[ApplicationTag22222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
                  ApplicationTag22222[ApplicationTag22222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
                  ApplicationTag22222[ApplicationTag22222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
                  ApplicationTag22222[ApplicationTag22222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
                  ApplicationTag22222[ApplicationTag22222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
                  ApplicationTag22222[ApplicationTag22222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
                  ApplicationTag22222[ApplicationTag22222["LOG_RECORD"] = 120] = "LOG_RECORD";
                  return ApplicationTag22222;
                })(ApplicationTag2222 || {});
                var ApplicationTagName2222 = invertEnum2222(
                  ApplicationTag2222
                );
                var BvlcResultFormat2222 = /* @__PURE__ */ ((BvlcResultFormat22222) => {
                  BvlcResultFormat22222[BvlcResultFormat22222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
                  BvlcResultFormat22222[BvlcResultFormat22222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
                  BvlcResultFormat22222[BvlcResultFormat22222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
                  BvlcResultFormat22222[BvlcResultFormat22222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
                  BvlcResultFormat22222[BvlcResultFormat22222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
                  BvlcResultFormat22222[BvlcResultFormat22222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
                  BvlcResultFormat22222[BvlcResultFormat22222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
                  return BvlcResultFormat22222;
                })(BvlcResultFormat2222 || {});
                var BvlcResultPurpose2222 = /* @__PURE__ */ ((BvlcResultPurpose22222) => {
                  BvlcResultPurpose22222[BvlcResultPurpose22222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
                  BvlcResultPurpose22222[BvlcResultPurpose22222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
                  BvlcResultPurpose22222[BvlcResultPurpose22222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
                  BvlcResultPurpose22222[BvlcResultPurpose22222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
                  BvlcResultPurpose22222[BvlcResultPurpose22222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
                  BvlcResultPurpose22222[BvlcResultPurpose22222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
                  BvlcResultPurpose22222[BvlcResultPurpose22222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
                  BvlcResultPurpose22222[BvlcResultPurpose22222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
                  BvlcResultPurpose22222[BvlcResultPurpose22222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
                  BvlcResultPurpose22222[BvlcResultPurpose22222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
                  BvlcResultPurpose22222[BvlcResultPurpose22222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
                  BvlcResultPurpose22222[BvlcResultPurpose22222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
                  BvlcResultPurpose22222[BvlcResultPurpose22222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
                  return BvlcResultPurpose22222;
                })(BvlcResultPurpose2222 || {});
                var CharacterStringEncoding2222 = /* @__PURE__ */ ((CharacterStringEncoding22222) => {
                  CharacterStringEncoding22222[CharacterStringEncoding22222["UTF_8"] = 0] = "UTF_8";
                  CharacterStringEncoding22222[CharacterStringEncoding22222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
                  CharacterStringEncoding22222[CharacterStringEncoding22222["JIS_X_0208"] = 2] = "JIS_X_0208";
                  CharacterStringEncoding22222[CharacterStringEncoding22222["UCS_4"] = 3] = "UCS_4";
                  CharacterStringEncoding22222[CharacterStringEncoding22222["UCS_2"] = 4] = "UCS_2";
                  CharacterStringEncoding22222[CharacterStringEncoding22222["ISO_8859_1"] = 5] = "ISO_8859_1";
                  return CharacterStringEncoding22222;
                })(CharacterStringEncoding2222 || {});
                var CovType2222 = /* @__PURE__ */ ((CovType22222) => {
                  CovType22222[CovType22222["REAL"] = 0] = "REAL";
                  CovType22222[CovType22222["BIT_STRING"] = 1] = "BIT_STRING";
                  return CovType22222;
                })(CovType2222 || {});
                var EnableDisable2222 = /* @__PURE__ */ ((EnableDisable22222) => {
                  EnableDisable22222[EnableDisable22222["ENABLE"] = 0] = "ENABLE";
                  EnableDisable22222[EnableDisable22222["DISABLE"] = 1] = "DISABLE";
                  EnableDisable22222[EnableDisable22222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
                  return EnableDisable22222;
                })(EnableDisable2222 || {});
                var MaxApduLengthAccepted2222 = /* @__PURE__ */ ((MaxApduLengthAccepted22222) => {
                  MaxApduLengthAccepted22222[MaxApduLengthAccepted22222["OCTETS_50"] = 0] = "OCTETS_50";
                  MaxApduLengthAccepted22222[MaxApduLengthAccepted22222["OCTETS_128"] = 1] = "OCTETS_128";
                  MaxApduLengthAccepted22222[MaxApduLengthAccepted22222["OCTETS_206"] = 2] = "OCTETS_206";
                  MaxApduLengthAccepted22222[MaxApduLengthAccepted22222["OCTETS_480"] = 3] = "OCTETS_480";
                  MaxApduLengthAccepted22222[MaxApduLengthAccepted22222["OCTETS_1024"] = 4] = "OCTETS_1024";
                  MaxApduLengthAccepted22222[MaxApduLengthAccepted22222["OCTETS_1476"] = 5] = "OCTETS_1476";
                  return MaxApduLengthAccepted22222;
                })(MaxApduLengthAccepted2222 || {});
                var MaxSegmentsAccepted2222 = /* @__PURE__ */ ((MaxSegmentsAccepted22222) => {
                  MaxSegmentsAccepted22222[MaxSegmentsAccepted22222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
                  MaxSegmentsAccepted22222[MaxSegmentsAccepted22222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
                  MaxSegmentsAccepted22222[MaxSegmentsAccepted22222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
                  MaxSegmentsAccepted22222[MaxSegmentsAccepted22222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
                  MaxSegmentsAccepted22222[MaxSegmentsAccepted22222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
                  MaxSegmentsAccepted22222[MaxSegmentsAccepted22222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
                  MaxSegmentsAccepted22222[MaxSegmentsAccepted22222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
                  MaxSegmentsAccepted22222[MaxSegmentsAccepted22222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
                  return MaxSegmentsAccepted22222;
                })(MaxSegmentsAccepted2222 || {});
                var NetworkLayerMessageType2222 = /* @__PURE__ */ ((NetworkLayerMessageType22222) => {
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
                  NetworkLayerMessageType22222[NetworkLayerMessageType22222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
                  return NetworkLayerMessageType22222;
                })(NetworkLayerMessageType2222 || {});
                var NpduControlBit2222 = /* @__PURE__ */ ((NpduControlBit22222) => {
                  NpduControlBit22222[NpduControlBit22222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
                  NpduControlBit22222[NpduControlBit22222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
                  NpduControlBit22222[NpduControlBit22222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
                  NpduControlBit22222[NpduControlBit22222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
                  return NpduControlBit22222;
                })(NpduControlBit2222 || {});
                var NpduControlPriority2222 = /* @__PURE__ */ ((NpduControlPriority22222) => {
                  NpduControlPriority22222[NpduControlPriority22222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
                  NpduControlPriority22222[NpduControlPriority22222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
                  NpduControlPriority22222[NpduControlPriority22222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
                  NpduControlPriority22222[NpduControlPriority22222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
                  return NpduControlPriority22222;
                })(NpduControlPriority2222 || {});
                var PduConReqBit2222 = /* @__PURE__ */ ((PduConReqBit22222) => {
                  PduConReqBit22222[PduConReqBit22222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
                  PduConReqBit22222[PduConReqBit22222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
                  PduConReqBit22222[PduConReqBit22222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
                  return PduConReqBit22222;
                })(PduConReqBit2222 || {});
                var PduSegAckBit2222 = /* @__PURE__ */ ((PduSegAckBit22222) => {
                  PduSegAckBit22222[PduSegAckBit22222["SERVER"] = 1] = "SERVER";
                  PduSegAckBit22222[PduSegAckBit22222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
                  return PduSegAckBit22222;
                })(PduSegAckBit2222 || {});
                var PduType2222 = /* @__PURE__ */ ((PduType22222) => {
                  PduType22222[PduType22222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
                  PduType22222[PduType22222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
                  PduType22222[PduType22222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
                  PduType22222[PduType22222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
                  PduType22222[PduType22222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
                  PduType22222[PduType22222["ERROR"] = 80] = "ERROR";
                  PduType22222[PduType22222["REJECT"] = 96] = "REJECT";
                  PduType22222[PduType22222["ABORT"] = 112] = "ABORT";
                  return PduType22222;
                })(PduType2222 || {});
                var PropertyStates2222 = /* @__PURE__ */ ((PropertyStates22222) => {
                  PropertyStates22222[PropertyStates22222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
                  PropertyStates22222[PropertyStates22222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
                  PropertyStates22222[PropertyStates22222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
                  PropertyStates22222[PropertyStates22222["POLARITY"] = 3] = "POLARITY";
                  PropertyStates22222[PropertyStates22222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
                  PropertyStates22222[PropertyStates22222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
                  PropertyStates22222[PropertyStates22222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
                  PropertyStates22222[PropertyStates22222["RELIABILITY"] = 7] = "RELIABILITY";
                  PropertyStates22222[PropertyStates22222["STATE"] = 8] = "STATE";
                  PropertyStates22222[PropertyStates22222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
                  PropertyStates22222[PropertyStates22222["UNITS"] = 10] = "UNITS";
                  PropertyStates22222[PropertyStates22222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
                  PropertyStates22222[PropertyStates22222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
                  PropertyStates22222[PropertyStates22222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
                  PropertyStates22222[PropertyStates22222["RESTART_REASON"] = 14] = "RESTART_REASON";
                  PropertyStates22222[PropertyStates22222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
                  PropertyStates22222[PropertyStates22222["ACTION"] = 16] = "ACTION";
                  PropertyStates22222[PropertyStates22222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
                  PropertyStates22222[PropertyStates22222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
                  PropertyStates22222[PropertyStates22222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
                  PropertyStates22222[PropertyStates22222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
                  PropertyStates22222[PropertyStates22222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
                  PropertyStates22222[PropertyStates22222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
                  PropertyStates22222[PropertyStates22222["MAINTENANCE"] = 23] = "MAINTENANCE";
                  PropertyStates22222[PropertyStates22222["NODE_TYPE"] = 24] = "NODE_TYPE";
                  PropertyStates22222[PropertyStates22222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
                  PropertyStates22222[PropertyStates22222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
                  PropertyStates22222[PropertyStates22222["SHED_STATE"] = 27] = "SHED_STATE";
                  PropertyStates22222[PropertyStates22222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
                  PropertyStates22222[PropertyStates22222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
                  PropertyStates22222[PropertyStates22222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
                  PropertyStates22222[PropertyStates22222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
                  PropertyStates22222[PropertyStates22222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
                  PropertyStates22222[PropertyStates22222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
                  PropertyStates22222[PropertyStates22222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
                  PropertyStates22222[PropertyStates22222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
                  PropertyStates22222[PropertyStates22222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
                  PropertyStates22222[PropertyStates22222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
                  PropertyStates22222[PropertyStates22222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
                  PropertyStates22222[PropertyStates22222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
                  PropertyStates22222[PropertyStates22222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
                  PropertyStates22222[PropertyStates22222["TIMER_STATE"] = 43] = "TIMER_STATE";
                  PropertyStates22222[PropertyStates22222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
                  PropertyStates22222[PropertyStates22222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
                  PropertyStates22222[PropertyStates22222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
                  PropertyStates22222[PropertyStates22222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
                  PropertyStates22222[PropertyStates22222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
                  PropertyStates22222[PropertyStates22222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
                  PropertyStates22222[PropertyStates22222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
                  PropertyStates22222[PropertyStates22222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
                  PropertyStates22222[PropertyStates22222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
                  PropertyStates22222[PropertyStates22222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
                  PropertyStates22222[PropertyStates22222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
                  PropertyStates22222[PropertyStates22222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
                  PropertyStates22222[PropertyStates22222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
                  PropertyStates22222[PropertyStates22222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
                  PropertyStates22222[PropertyStates22222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
                  PropertyStates22222[PropertyStates22222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
                  return PropertyStates22222;
                })(PropertyStates2222 || {});
                var ReadRangeType2222 = /* @__PURE__ */ ((ReadRangeType22222) => {
                  ReadRangeType22222[ReadRangeType22222["BY_POSITION"] = 0] = "BY_POSITION";
                  ReadRangeType22222[ReadRangeType22222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
                  ReadRangeType22222[ReadRangeType22222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
                  return ReadRangeType22222;
                })(ReadRangeType2222 || {});
                var ReinitializedState2222 = /* @__PURE__ */ ((ReinitializedState22222) => {
                  ReinitializedState22222[ReinitializedState22222["COLDSTART"] = 0] = "COLDSTART";
                  ReinitializedState22222[ReinitializedState22222["WARMSTART"] = 1] = "WARMSTART";
                  ReinitializedState22222[ReinitializedState22222["STARTBACKUP"] = 2] = "STARTBACKUP";
                  ReinitializedState22222[ReinitializedState22222["ENDBACKUP"] = 3] = "ENDBACKUP";
                  ReinitializedState22222[ReinitializedState22222["STARTRESTORE"] = 4] = "STARTRESTORE";
                  ReinitializedState22222[ReinitializedState22222["ENDRESTORE"] = 5] = "ENDRESTORE";
                  ReinitializedState22222[ReinitializedState22222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
                  ReinitializedState22222[ReinitializedState22222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
                  return ReinitializedState22222;
                })(ReinitializedState2222 || {});
                var TimeStamp2222 = /* @__PURE__ */ ((TimeStamp22222) => {
                  TimeStamp22222[TimeStamp22222["TIME"] = 0] = "TIME";
                  TimeStamp22222[TimeStamp22222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
                  TimeStamp22222[TimeStamp22222["DATETIME"] = 2] = "DATETIME";
                  return TimeStamp22222;
                })(TimeStamp2222 || {});
                var import_events22222 = __toESM2222(require("events"));
                var import_debug32222 = __toESM2222(require("debug"));
                var import_dgram2222 = require("dgram");
                var import_events3222 = __toESM2222(require("events"));
                var import_debug22222 = __toESM2222(require("debug"));
                var EventEmitter3222 = import_events3222.default.EventEmitter;
                var debug22222 = (0, import_debug22222.default)("bacnet:client:debug");
                var DEFAULT_BACNET_PORT3222 = 47808;
                var Transport2222 = class extends EventEmitter3222 {
                  constructor(settings) {
                    super();
                    this._lastSendMessages = {};
                    this._settings = settings;
                    this._server = (0, import_dgram2222.createSocket)({
                      type: "udp4",
                      reuseAddr: settings.reuseAddr
                    });
                    this._server.on("message", (msg, rinfo) => {
                      if (this.ownAddress.port === rinfo.port) {
                        for (let [messageKey, earlierSentBuffer] of Object.entries(
                          this._lastSendMessages
                        )) {
                          if (msg.equals(earlierSentBuffer)) {
                            debug22222(
                              `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                            );
                            return;
                          }
                        }
                      }
                      debug22222(
                        `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                          "hex"
                        )}`
                      );
                      this.emit(
                        "message",
                        msg,
                        rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT3222 ? "" : ":" + rinfo.port)
                      );
                    });
                    this._server.on("listening", () => {
                      this.ownAddress = this._server.address();
                      debug22222(
                        `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                      );
                      this.emit("listening", this.ownAddress);
                    });
                    this._server.on("error", (err) => {
                      debug22222("transport error", err.message);
                      this.emit("error", err);
                    });
                    this._server.on("close", () => {
                      debug22222("transport closed");
                      this.emit("close");
                    });
                  }
                  getBroadcastAddress() {
                    return this._settings.broadcastAddress;
                  }
                  getMaxPayload() {
                    return 1482;
                  }
                  send(buffer, offset, receiver) {
                    if (!receiver) {
                      receiver = this.getBroadcastAddress();
                      const dataToSend = Buffer.alloc(offset);
                      const hrTime = process.hrtime();
                      const messageKey = hrTime[0] * 1e9 + hrTime[1];
                      buffer.copy(dataToSend, 0, 0, offset);
                      this._lastSendMessages[messageKey] = dataToSend;
                      setTimeout(() => {
                        delete this._lastSendMessages[messageKey];
                      }, 1e4);
                    }
                    const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                    const [address, port] = receiverAddress.split(":");
                    debug22222(
                      "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                    );
                    this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT3222, address);
                  }
                  open() {
                    this._server.bind(this._settings.port, this._settings.interface, () => {
                      this._server.setBroadcast(true);
                    });
                  }
                  close() {
                    this._server.close();
                  }
                };
                var services_exports2222 = {};
                __export2222(services_exports2222, {
                  addListElement: () => add_list_element_exports2222,
                  alarmAcknowledge: () => alarm_acknowledge_exports2222,
                  alarmSummary: () => alarm_summary_exports2222,
                  atomicReadFile: () => atomic_read_file_exports2222,
                  atomicWriteFile: () => atomic_write_file_exports2222,
                  covNotify: () => cov_notify_exports2222,
                  covNotifyUnconfirmed: () => cov_notify_exports2222,
                  createObject: () => create_object_exports2222,
                  deleteObject: () => delete_object_exports2222,
                  deviceCommunicationControl: () => device_communication_control_exports2222,
                  error: () => error_exports2222,
                  eventInformation: () => event_information_exports2222,
                  eventNotifyData: () => event_notify_data_exports2222,
                  getEnrollmentSummary: () => get_enrollment_summary_exports2222,
                  getEventInformation: () => get_event_information_exports2222,
                  iAm: () => i_am_exports2222,
                  iHave: () => i_have_exports2222,
                  lifeSafetyOperation: () => life_safety_operation_exports2222,
                  privateTransfer: () => private_transfer_exports2222,
                  readProperty: () => read_property_exports2222,
                  readPropertyMultiple: () => read_property_multiple_exports2222,
                  readRange: () => read_range_exports2222,
                  registerForeignDevice: () => register_foreign_device_exports2222,
                  reinitializeDevice: () => reinitialize_device_exports2222,
                  subscribeCov: () => subscribe_cov_exports2222,
                  subscribeProperty: () => subscribe_property_exports2222,
                  timeSync: () => time_sync_exports2222,
                  timeSyncUTC: () => time_sync_exports2222,
                  whoHas: () => who_has_exports2222,
                  whoIs: () => who_is_exports2222,
                  writeProperty: () => write_property_exports2222,
                  writePropertyMultiple: () => write_property_multiple_exports2222
                });
                var add_list_element_exports2222 = {};
                __export2222(add_list_element_exports2222, {
                  decode: () => decode33222,
                  encode: () => encode33222
                });
                var import_iconv_lite2222 = __toESM2222(require("iconv-lite"));
                var enums_default2222 = enum_exports2222;
                var START_YEAR2222 = 1900;
                var MAX_YEARS2222 = 256;
                var getBuffer2222 = () => {
                  return {
                    buffer: Buffer.alloc(1472),
                    offset: 0
                  };
                };
                var getSignedLength2222 = (value) => {
                  if (value >= -128 && value < 128)
                    return 1;
                  else if (value >= -32768 && value < 32768)
                    return 2;
                  else if (value > -8388608 && value < 8388608)
                    return 3;
                  else
                    return 4;
                };
                var getUnsignedLength2222 = (value) => {
                  if (value < 256)
                    return 1;
                  else if (value < 65536)
                    return 2;
                  else if (value < 16777216)
                    return 3;
                  else
                    return 4;
                };
                var getEncodingType2222 = (encoding, decodingBuffer, decodingOffset) => {
                  switch (encoding) {
                    case enums_default2222.CharacterStringEncoding.UCS_2:
                      if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                        return "ucs2";
                      }
                      return "UTF-16BE";
                    case enums_default2222.CharacterStringEncoding.ISO_8859_1:
                      return "latin1";
                    case enums_default2222.CharacterStringEncoding.MICROSOFT_DBCS:
                      return "cp850";
                    case enums_default2222.CharacterStringEncoding.JIS_X_0208:
                      return "Shift_JIS";
                    default:
                      return "utf8";
                  }
                };
                var encodeUnsigned2222 = (buffer, value, length) => {
                  buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
                  buffer.offset += length;
                };
                var encodeBacnetUnsigned2222 = (buffer, value) => {
                  encodeUnsigned2222(buffer, value, getUnsignedLength2222(value));
                };
                var encodeSigned2222 = (buffer, value, length) => {
                  buffer.buffer.writeIntBE(value, buffer.offset, length, true);
                  buffer.offset += length;
                };
                var encodeBacnetSigned2222 = (buffer, value) => {
                  encodeSigned2222(buffer, value, getSignedLength2222(value));
                };
                var encodeBacnetReal2222 = (buffer, value) => {
                  buffer.buffer.writeFloatBE(value, buffer.offset, true);
                  buffer.offset += 4;
                };
                var encodeBacnetDouble2222 = (buffer, value) => {
                  buffer.buffer.writeDoubleBE(value, buffer.offset, true);
                  buffer.offset += 8;
                };
                var decodeUnsigned2222 = (buffer, offset, length) => {
                  if (length === 0) {
                    return {
                      len: 0,
                      value: 0
                    };
                  }
                  return {
                    len: length,
                    //@ts-ignore
                    value: buffer.readUIntBE(offset, length)
                  };
                };
                var decodeEnumerated2222 = (buffer, offset, length) => {
                  return decodeUnsigned2222(buffer, offset, length);
                };
                var encodeBacnetObjectId2222 = (buffer, objectType, instance) => {
                  const value = ((objectType & enums_default2222.ASN1_MAX_OBJECT) << enums_default2222.ASN1_INSTANCE_BITS | instance & enums_default2222.ASN1_MAX_INSTANCE) >>> 0;
                  encodeUnsigned2222(buffer, value, 4);
                };
                var encodeTag2222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
                  let len = 1;
                  const tmp = new Array(3);
                  tmp[0] = 0;
                  if (contextSpecific) {
                    tmp[0] |= 8;
                  }
                  if (tagNumber <= 14) {
                    tmp[0] |= tagNumber << 4;
                  } else {
                    tmp[0] |= 240;
                    tmp[1] = tagNumber;
                    len++;
                  }
                  if (lenValueType <= 4) {
                    tmp[0] |= lenValueType;
                    Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                    buffer.offset += len;
                  } else {
                    tmp[0] |= 5;
                    if (lenValueType <= 253) {
                      tmp[len++] = lenValueType;
                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                      buffer.offset += len;
                    } else if (lenValueType <= 65535) {
                      tmp[len++] = 254;
                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                      buffer.offset += len;
                      encodeUnsigned2222(buffer, lenValueType, 2);
                    } else {
                      tmp[len++] = 255;
                      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                      buffer.offset += len;
                      encodeUnsigned2222(buffer, lenValueType, 4);
                    }
                  }
                };
                var encodeBacnetEnumerated2222 = (buffer, value) => {
                  encodeBacnetUnsigned2222(buffer, value);
                };
                var isExtendedTagNumber2222 = (x) => {
                  return (x & 240) === 240;
                };
                var isExtendedValue2222 = (x) => {
                  return (x & 7) === 5;
                };
                var isContextSpecific2222 = (x) => {
                  return (x & 8) === 8;
                };
                var isOpeningTag2222 = (x) => {
                  return (x & 7) === 6;
                };
                var isClosingTag2222 = (x) => {
                  return (x & 7) === 7;
                };
                var encodeContextReal2222 = (buffer, tagNumber, value) => {
                  encodeTag2222(buffer, tagNumber, true, 4);
                  encodeBacnetReal2222(buffer, value);
                };
                var encodeContextUnsigned2222 = (buffer, tagNumber, value) => {
                  encodeTag2222(buffer, tagNumber, true, getUnsignedLength2222(value));
                  encodeBacnetUnsigned2222(buffer, value);
                };
                var encodeContextEnumerated2222 = (buffer, tagNumber, value) => {
                  encodeContextUnsigned2222(buffer, tagNumber, value);
                };
                var encodeOctetString2222 = (buffer, octetString, octetOffset, octetCount) => {
                  if (octetString) {
                    for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                      buffer.buffer[buffer.offset++] = octetString[i];
                    }
                  }
                };
                var encodeApplicationOctetString2222 = (buffer, octetString, octetOffset, octetCount) => {
                  encodeTag2222(buffer, enums_default2222.ApplicationTag.OCTET_STRING, false, octetCount);
                  encodeOctetString2222(buffer, octetString, octetOffset, octetCount);
                };
                var encodeApplicationNull2222 = (buffer) => {
                  buffer.buffer[buffer.offset++] = enums_default2222.ApplicationTag.NULL;
                };
                var encodeApplicationBoolean2222 = (buffer, booleanValue) => {
                  encodeTag2222(buffer, enums_default2222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
                };
                var encodeApplicationReal2222 = (buffer, value) => {
                  encodeTag2222(buffer, enums_default2222.ApplicationTag.REAL, false, 4);
                  encodeBacnetReal2222(buffer, value);
                };
                var encodeApplicationDouble2222 = (buffer, value) => {
                  encodeTag2222(buffer, enums_default2222.ApplicationTag.DOUBLE, false, 8);
                  encodeBacnetDouble2222(buffer, value);
                };
                var bitstringBytesUsed2222 = (bitString) => {
                  let len = 0;
                  if (bitString.bitsUsed > 0) {
                    const lastBit = bitString.bitsUsed - 1;
                    const usedBytes = lastBit / 8 + 1;
                    len = Math.floor(usedBytes);
                  }
                  return len;
                };
                var encodeApplicationObjectId2222 = (buffer, objectType, instance) => {
                  const tmp = getBuffer2222();
                  encodeBacnetObjectId2222(tmp, objectType, instance);
                  encodeTag2222(buffer, enums_default2222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                  buffer.offset += tmp.offset;
                };
                var encodeApplicationUnsigned2222 = (buffer, value) => {
                  const tmp = getBuffer2222();
                  encodeBacnetUnsigned2222(tmp, value);
                  encodeTag2222(buffer, enums_default2222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                  buffer.offset += tmp.offset;
                };
                var encodeApplicationEnumerated2222 = (buffer, value) => {
                  const tmp = getBuffer2222();
                  encodeBacnetEnumerated2222(tmp, value);
                  encodeTag2222(buffer, enums_default2222.ApplicationTag.ENUMERATED, false, tmp.offset);
                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                  buffer.offset += tmp.offset;
                };
                var encodeApplicationSigned2222 = (buffer, value) => {
                  const tmp = getBuffer2222();
                  encodeBacnetSigned2222(tmp, value);
                  encodeTag2222(buffer, enums_default2222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                  buffer.offset += tmp.offset;
                };
                var byteReverseBits2222 = (inByte) => {
                  let outByte = 0;
                  if ((inByte & 1) > 0) {
                    outByte |= 128;
                  }
                  if ((inByte & 2) > 0) {
                    outByte |= 64;
                  }
                  if ((inByte & 4) > 0) {
                    outByte |= 32;
                  }
                  if ((inByte & 8) > 0) {
                    outByte |= 16;
                  }
                  if ((inByte & 16) > 0) {
                    outByte |= 8;
                  }
                  if ((inByte & 32) > 0) {
                    outByte |= 4;
                  }
                  if ((inByte & 64) > 0) {
                    outByte |= 2;
                  }
                  if ((inByte & 128) > 0) {
                    outByte |= 1;
                  }
                  return outByte;
                };
                var bitstringOctet2222 = (bitString, octetIndex) => {
                  let octet = 0;
                  if (bitString.value && octetIndex < enums_default2222.ASN1_MAX_BITSTRING_BYTES) {
                    octet = bitString.value[octetIndex];
                  }
                  return octet;
                };
                var encodeBitstring2222 = (buffer, bitString) => {
                  if (bitString.bitsUsed === 0) {
                    buffer.buffer[buffer.offset++] = 0;
                  } else {
                    const usedBytes = bitstringBytesUsed2222(bitString);
                    const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                    buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                    for (let i = 0; i < usedBytes; i++) {
                      buffer.buffer[buffer.offset++] = byteReverseBits2222(
                        bitstringOctet2222(bitString, i)
                      );
                    }
                  }
                };
                var encodeApplicationBitstring2222 = (buffer, bitString) => {
                  let bitStringEncodedLength = 1;
                  bitStringEncodedLength += bitstringBytesUsed2222(bitString);
                  encodeTag2222(
                    buffer,
                    enums_default2222.ApplicationTag.BIT_STRING,
                    false,
                    bitStringEncodedLength
                  );
                  encodeBitstring2222(buffer, bitString);
                };
                var encodeBacnetDate2222 = (buffer, value) => {
                  if (value === new Date(1, 1, 1)) {
                    buffer.buffer[buffer.offset++] = 255;
                    buffer.buffer[buffer.offset++] = 255;
                    buffer.buffer[buffer.offset++] = 255;
                    buffer.buffer[buffer.offset++] = 255;
                    return;
                  }
                  if (value.getFullYear() >= START_YEAR2222) {
                    buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR2222;
                  } else if (value.getFullYear() < MAX_YEARS2222) {
                    buffer.buffer[buffer.offset++] = value.getFullYear();
                  } else {
                    throw new Error("invaide year: " + value.getFullYear());
                  }
                  buffer.buffer[buffer.offset++] = value.getMonth();
                  buffer.buffer[buffer.offset++] = value.getDate();
                  buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
                };
                var encodeApplicationDate2222 = (buffer, value) => {
                  encodeTag2222(buffer, enums_default2222.ApplicationTag.DATE, false, 4);
                  encodeBacnetDate2222(buffer, value);
                };
                var encodeBacnetTime2222 = (buffer, value) => {
                  buffer.buffer[buffer.offset++] = value.getHours();
                  buffer.buffer[buffer.offset++] = value.getMinutes();
                  buffer.buffer[buffer.offset++] = value.getSeconds();
                  buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
                };
                var encodeApplicationTime2222 = (buffer, value) => {
                  encodeTag2222(buffer, enums_default2222.ApplicationTag.TIME, false, 4);
                  encodeBacnetTime2222(buffer, value);
                };
                var bacappEncodeDatetime2222 = (buffer, value) => {
                  if (value !== new Date(1, 1, 1)) {
                    encodeApplicationDate2222(buffer, value);
                    encodeApplicationTime2222(buffer, value);
                  }
                };
                var encodeContextObjectId2222 = (buffer, tagNumber, objectType, instance) => {
                  encodeTag2222(buffer, tagNumber, true, 4);
                  encodeBacnetObjectId2222(buffer, objectType, instance);
                };
                var encodeOpeningTag2222 = (buffer, tagNumber) => {
                  let len = 1;
                  const tmp = new Array(2);
                  tmp[0] = 8;
                  if (tagNumber <= 14) {
                    tmp[0] |= tagNumber << 4;
                  } else {
                    tmp[0] |= 240;
                    tmp[1] = tagNumber;
                    len++;
                  }
                  tmp[0] |= 6;
                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                  buffer.offset += len;
                };
                var encodeClosingTag2222 = (buffer, tagNumber) => {
                  let len = 1;
                  const tmp = new Array(2);
                  tmp[0] = 8;
                  if (tagNumber <= 14) {
                    tmp[0] |= tagNumber << 4;
                  } else {
                    tmp[0] |= 240;
                    tmp[1] = tagNumber;
                    len++;
                  }
                  tmp[0] |= 7;
                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                  buffer.offset += len;
                };
                var encodeReadAccessSpecification2222 = (buffer, value) => {
                  encodeContextObjectId2222(
                    buffer,
                    0,
                    value.objectId.type,
                    value.objectId.instance
                  );
                  encodeOpeningTag2222(buffer, 1);
                  value.properties.forEach((p) => {
                    encodeContextEnumerated2222(buffer, 0, p.id);
                    if (p.index && p.index !== enums_default2222.ASN1_ARRAY_ALL) {
                      encodeContextUnsigned2222(buffer, 1, p.index);
                    }
                  });
                  encodeClosingTag2222(buffer, 1);
                };
                var encodeContextBoolean2222 = (buffer, tagNumber, booleanValue) => {
                  encodeTag2222(buffer, tagNumber, true, 1);
                  buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
                  buffer.offset += 1;
                };
                var encodeCovSubscription2222 = (buffer, value) => {
                  encodeOpeningTag2222(buffer, 0);
                  encodeOpeningTag2222(buffer, 0);
                  encodeOpeningTag2222(buffer, 1);
                  encodeApplicationUnsigned2222(buffer, value.recipient.network);
                  if (value.recipient.network === 65535) {
                    encodeApplicationOctetString2222(buffer, 0, 0, 0);
                  } else {
                    encodeApplicationOctetString2222(
                      buffer,
                      value.recipient.address,
                      0,
                      value.recipient.address.length
                    );
                  }
                  encodeClosingTag2222(buffer, 1);
                  encodeClosingTag2222(buffer, 0);
                  encodeContextUnsigned2222(buffer, 1, value.subscriptionProcessId);
                  encodeClosingTag2222(buffer, 0);
                  encodeOpeningTag2222(buffer, 1);
                  encodeContextObjectId2222(
                    buffer,
                    0,
                    value.monitoredObjectId.type,
                    value.monitoredObjectId.instance
                  );
                  encodeContextEnumerated2222(buffer, 1, value.monitoredProperty.id);
                  if (value.monitoredProperty.index !== enums_default2222.ASN1_ARRAY_ALL) {
                    encodeContextUnsigned2222(buffer, 2, value.monitoredProperty.index);
                  }
                  encodeClosingTag2222(buffer, 1);
                  encodeContextBoolean2222(buffer, 2, value.issueConfirmedNotifications);
                  encodeContextUnsigned2222(buffer, 3, value.timeRemaining);
                  if (value.covIncrement > 0) {
                    encodeContextReal2222(buffer, 4, value.covIncrement);
                  }
                };
                var bacappEncodeApplicationData2222 = (buffer, value) => {
                  if (value.value === null) {
                    value.type = enums_default2222.ApplicationTag.NULL;
                  }
                  switch (value.type) {
                    case enums_default2222.ApplicationTag.NULL:
                      encodeApplicationNull2222(buffer);
                      break;
                    case enums_default2222.ApplicationTag.BOOLEAN:
                      encodeApplicationBoolean2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.UNSIGNED_INTEGER:
                      encodeApplicationUnsigned2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.SIGNED_INTEGER:
                      encodeApplicationSigned2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.REAL:
                      encodeApplicationReal2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.DOUBLE:
                      encodeApplicationDouble2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.OCTET_STRING:
                      encodeApplicationOctetString2222(buffer, value.value, 0, value.value.length);
                      break;
                    case enums_default2222.ApplicationTag.CHARACTER_STRING:
                      encodeApplicationCharacterString2222(buffer, value.value, value.encoding);
                      break;
                    case enums_default2222.ApplicationTag.BIT_STRING:
                      encodeApplicationBitstring2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.ENUMERATED:
                      encodeApplicationEnumerated2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.DATE:
                      encodeApplicationDate2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.TIME:
                      encodeApplicationTime2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.TIMESTAMP:
                      bacappEncodeTimestamp2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.DATETIME:
                      bacappEncodeDatetime2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.OBJECTIDENTIFIER:
                      encodeApplicationObjectId2222(buffer, value.value.type, value.value.instance);
                      break;
                    case enums_default2222.ApplicationTag.COV_SUBSCRIPTION:
                      encodeCovSubscription2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.READ_ACCESS_RESULT:
                      encodeReadAccessResult2222(buffer, value.value);
                      break;
                    case enums_default2222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                      encodeReadAccessSpecification2222(buffer, value.value);
                      break;
                    case void 0:
                      throw new Error(
                        "Cannot encode a value if the type has not been specified"
                      );
                    default:
                      throw "No encode for ApplicationTag type: " + enums_default2222.getEnumName(
                        enums_default2222.ApplicationTag,
                        value.type
                      );
                  }
                };
                var bacappEncodeDeviceObjPropertyRef2222 = (buffer, value) => {
                  encodeContextObjectId2222(
                    buffer,
                    0,
                    value.objectId.type,
                    value.objectId.instance
                  );
                  encodeContextEnumerated2222(buffer, 1, value.id);
                  if (value.arrayIndex !== enums_default2222.ASN1_ARRAY_ALL) {
                    encodeContextUnsigned2222(buffer, 2, value.arrayIndex);
                  }
                  if (value.deviceIndentifier.type === enums_default2222.ObjectType.DEVICE) {
                    encodeContextObjectId2222(
                      buffer,
                      3,
                      value.deviceIndentifier.type,
                      value.deviceIndentifier.instance
                    );
                  }
                };
                var bacappEncodeContextDeviceObjPropertyRef2222 = (buffer, tagNumber, value) => {
                  encodeOpeningTag2222(buffer, tagNumber);
                  bacappEncodeDeviceObjPropertyRef2222(buffer, value);
                  encodeClosingTag2222(buffer, tagNumber);
                };
                var bacappEncodePropertyState2222 = (buffer, value) => {
                  switch (value.type) {
                    case enums_default2222.PropertyStates.BOOLEAN_VALUE:
                      encodeContextBoolean2222(buffer, 0, value.state === 1);
                      break;
                    case enums_default2222.PropertyStates.BINARY_VALUE:
                      encodeContextEnumerated2222(buffer, 1, value.state);
                      break;
                    case enums_default2222.PropertyStates.EVENT_TYPE:
                      encodeContextEnumerated2222(buffer, 2, value.state);
                      break;
                    case enums_default2222.PropertyStates.POLARITY:
                      encodeContextEnumerated2222(buffer, 3, value.state);
                      break;
                    case enums_default2222.PropertyStates.PROGRAM_CHANGE:
                      encodeContextEnumerated2222(buffer, 4, value.state);
                      break;
                    case enums_default2222.PropertyStates.PROGRAM_STATE:
                      encodeContextEnumerated2222(buffer, 5, value.state);
                      break;
                    case enums_default2222.PropertyStates.REASON_FOR_HALT:
                      encodeContextEnumerated2222(buffer, 6, value.state);
                      break;
                    case enums_default2222.PropertyStates.RELIABILITY:
                      encodeContextEnumerated2222(buffer, 7, value.state);
                      break;
                    case enums_default2222.PropertyStates.STATE:
                      encodeContextEnumerated2222(buffer, 8, value.state);
                      break;
                    case enums_default2222.PropertyStates.SYSTEM_STATUS:
                      encodeContextEnumerated2222(buffer, 9, value.state);
                      break;
                    case enums_default2222.PropertyStates.UNITS:
                      encodeContextEnumerated2222(buffer, 10, value.state);
                      break;
                    case enums_default2222.PropertyStates.UNSIGNED_VALUE:
                      encodeContextUnsigned2222(buffer, 11, value.state);
                      break;
                    case enums_default2222.PropertyStates.LIFE_SAFETY_MODE:
                      encodeContextEnumerated2222(buffer, 12, value.state);
                      break;
                    case enums_default2222.PropertyStates.LIFE_SAFETY_STATE:
                      encodeContextEnumerated2222(buffer, 13, value.state);
                      break;
                    default:
                      break;
                  }
                };
                var encodeContextBitstring2222 = (buffer, tagNumber, bitString) => {
                  let bitStringEncodedLength = 1;
                  bitStringEncodedLength += bitstringBytesUsed2222(bitString);
                  encodeTag2222(buffer, tagNumber, true, bitStringEncodedLength);
                  encodeBitstring2222(buffer, bitString);
                };
                var encodeContextSigned2222 = (buffer, tagNumber, value) => {
                  encodeTag2222(buffer, tagNumber, true, getSignedLength2222(value));
                  encodeBacnetSigned2222(buffer, value);
                };
                var encodeContextTime2222 = (buffer, tagNumber, value) => {
                  encodeTag2222(buffer, tagNumber, true, 4);
                  encodeBacnetTime2222(buffer, value);
                };
                var bacappEncodeContextDatetime2222 = (buffer, tagNumber, value) => {
                  if (value !== new Date(1, 1, 1)) {
                    encodeOpeningTag2222(buffer, tagNumber);
                    bacappEncodeDatetime2222(buffer, value);
                    encodeClosingTag2222(buffer, tagNumber);
                  } else {
                    throw new Error("wrong Datetime while bacapp encoding context");
                  }
                };
                var decodeTagNumber2222 = (buffer, offset) => {
                  let len = 1;
                  let tagNumber;
                  if (isExtendedTagNumber2222(buffer[offset])) {
                    tagNumber = buffer[offset + 1];
                    len++;
                  } else {
                    tagNumber = buffer[offset] >> 4;
                  }
                  return {
                    len,
                    tagNumber
                  };
                };
                var decodeIsContextTag2222 = (buffer, offset, tagNumber) => {
                  const result = decodeTagNumber2222(buffer, offset);
                  return isContextSpecific2222(buffer[offset]) && result.tagNumber === tagNumber;
                };
                var decodeIsOpeningTagNumber2222 = (buffer, offset, tagNumber) => {
                  const result = decodeTagNumber2222(buffer, offset);
                  return isOpeningTag2222(buffer[offset]) && result.tagNumber === tagNumber;
                };
                var decodeIsClosingTagNumber2222 = (buffer, offset, tagNumber) => {
                  const result = decodeTagNumber2222(buffer, offset);
                  return isClosingTag2222(buffer[offset]) && result.tagNumber === tagNumber;
                };
                var decodeIsClosingTag2222 = (buffer, offset) => {
                  return (buffer[offset] & 7) === 7;
                };
                var decodeIsOpeningTag2222 = (buffer, offset) => {
                  return (buffer[offset] & 7) === 6;
                };
                var decodeObjectId2222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
                  const result = decodeUnsigned2222(buffer, offset, 4);
                  const objectType = result.value >> enums_default2222.ASN1_INSTANCE_BITS & enums_default2222.ASN1_MAX_OBJECT;
                  const instance = result.value & enums_default2222.ASN1_MAX_INSTANCE;
                  return {
                    len: result.len,
                    objectType,
                    instance
                  };
                };
                var decodeObjectIdSafe2222 = (buffer, offset, lenValue) => {
                  if (lenValue !== 4) {
                    return {
                      len: 0,
                      objectType: 0,
                      instance: 0
                    };
                  } else {
                    return decodeObjectId2222(buffer, offset);
                  }
                };
                var decodeTagNumberAndValue2222 = (buffer, offset) => {
                  let value;
                  let result = decodeTagNumber2222(buffer, offset);
                  let len = result.len;
                  if (isExtendedValue2222(buffer[offset])) {
                    if (buffer[offset + len] === 255) {
                      len++;
                      result = decodeUnsigned2222(buffer, offset + len, 4);
                      len += result.len;
                      value = result.value;
                    } else if (buffer[offset + len] === 254) {
                      len++;
                      result = decodeUnsigned2222(buffer, offset + len, 2);
                      len += result.len;
                      value = result.value;
                    } else {
                      value = buffer[offset + len];
                      len++;
                    }
                  } else if (isOpeningTag2222(buffer[offset])) {
                    value = 0;
                  } else if (isClosingTag2222(buffer[offset])) {
                    value = 0;
                  } else {
                    value = buffer[offset] & 7;
                  }
                  return {
                    len,
                    tagNumber: result.tagNumber,
                    value
                  };
                };
                var bacappDecodeApplicationData2222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                  if (!isContextSpecific2222(buffer[offset])) {
                    let result = decodeTagNumberAndValue2222(buffer, offset);
                    if (result) {
                      let len = result.len;
                      result = bacappDecodeData2222(
                        buffer,
                        offset + len,
                        maxOffset,
                        result.tagNumber,
                        result.value
                      );
                      if (!result) {
                        return void 0;
                      }
                      let resObj = {
                        len: len + result.len,
                        type: result.type,
                        value: result.value
                      };
                      if (result.encoding !== void 0)
                        resObj.encoding = result.encoding;
                      return resObj;
                    }
                  } else {
                    return bacappDecodeContextApplicationData2222(
                      buffer,
                      offset,
                      maxOffset,
                      objectType,
                      propertyId
                    );
                  }
                };
                var encodeReadAccessResult2222 = (buffer, value) => {
                  encodeContextObjectId2222(
                    buffer,
                    0,
                    value.objectId.type,
                    value.objectId.instance
                  );
                  encodeOpeningTag2222(buffer, 1);
                  value.values.forEach((item) => {
                    encodeContextEnumerated2222(buffer, 2, item.property.id);
                    if (item.property.index !== enums_default2222.ASN1_ARRAY_ALL) {
                      encodeContextUnsigned2222(buffer, 3, item.property.index);
                    }
                    if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                      encodeOpeningTag2222(buffer, 5);
                      encodeApplicationEnumerated2222(buffer, item.value[0].value.errorClass);
                      encodeApplicationEnumerated2222(buffer, item.value[0].value.errorCode);
                      encodeClosingTag2222(buffer, 5);
                    } else {
                      if (!item.value)
                        throw new Error("No value in item");
                      encodeOpeningTag2222(buffer, 4);
                      item.value.forEach((subItem) => {
                        bacappEncodeApplicationData2222(buffer, subItem);
                      });
                      encodeClosingTag2222(buffer, 4);
                    }
                  });
                  encodeClosingTag2222(buffer, 1);
                };
                var decodeReadAccessResult2222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let value = {};
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  let result = decodeObjectId2222(buffer, offset + len);
                  value.objectId = {
                    type: result.objectType,
                    instance: result.instance
                  };
                  len += result.len;
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 1)) {
                    return -1;
                  }
                  len++;
                  const values = [];
                  while (apduLen - len > 0) {
                    let newEntry = {};
                    if (decodeIsClosingTagNumber2222(buffer, offset + len, 1)) {
                      len++;
                      break;
                    }
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 2) {
                      return void 0;
                    }
                    result = decodeEnumerated2222(buffer, offset + len, result.value);
                    newEntry.id = result.value;
                    len += result.len;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    if (result.tagNumber === 3) {
                      len += result.len;
                      result = decodeUnsigned2222(buffer, offset + len, result.value);
                      newEntry.index = result.value;
                      len += result.len;
                    } else {
                      newEntry.index = enums_default2222.ASN1_ARRAY_ALL;
                    }
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber === 4) {
                      const localValues = [];
                      while (len + offset <= buffer.length && !decodeIsClosingTagNumber2222(buffer, offset + len, 4)) {
                        let localResult = bacappDecodeApplicationData2222(
                          buffer,
                          offset + len,
                          apduLen + offset - 1,
                          value.objectId.type,
                          newEntry.id
                        );
                        if (!localResult) {
                          return void 0;
                        }
                        len += localResult.len;
                        let resObj = {
                          value: localResult.value,
                          type: localResult.type
                        };
                        if (localResult.encoding !== void 0)
                          resObj.encoding = localResult.encoding;
                        localValues.push(resObj);
                      }
                      if (!decodeIsClosingTagNumber2222(buffer, offset + len, 4)) {
                        return void 0;
                      }
                      if (localValues.count === 2 && localValues[0].type === enums_default2222.ApplicationTag.DATE && localValues[1].type === enums_default2222.ApplicationTag.TIME) {
                        const date = localValues[0].value;
                        const time = localValues[1].value;
                        const bdatetime = new Date(
                          date.year,
                          date.month,
                          date.day,
                          time.hour,
                          time.minute,
                          time.second,
                          time.millisecond
                        );
                        newEntry.value = [
                          { type: enums_default2222.ApplicationTag.DATETIME, value: bdatetime }
                        ];
                      } else {
                        newEntry.value = localValues;
                      }
                      len++;
                    } else if (result.tagNumber === 5) {
                      let err = {};
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                      result = decodeEnumerated2222(buffer, offset + len, result.value);
                      len += result.len;
                      err.errorClass = result.value;
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                      result = decodeEnumerated2222(buffer, offset + len, result.value);
                      len += result.len;
                      err.errorCode = result.value;
                      if (!decodeIsClosingTagNumber2222(buffer, offset + len, 5)) {
                        return void 0;
                      }
                      len++;
                      newEntry.value = [
                        {
                          type: enums_default2222.ApplicationTag.ERROR,
                          value: err
                        }
                      ];
                    }
                    values.push(newEntry);
                  }
                  value.values = values;
                  return {
                    len,
                    value
                  };
                };
                var decodeSigned2222 = (buffer, offset, length) => {
                  return {
                    len: length,
                    value: buffer.readIntBE(offset, length, true)
                  };
                };
                var decodeReal2222 = (buffer, offset) => {
                  return {
                    len: 4,
                    value: buffer.readFloatBE(offset, true)
                  };
                };
                var decodeRealSafe2222 = (buffer, offset, lenValue) => {
                  if (lenValue !== 4) {
                    return {
                      len: lenValue,
                      value: 0
                    };
                  } else {
                    return decodeReal2222(buffer, offset);
                  }
                };
                var decodeDouble2222 = (buffer, offset) => {
                  return {
                    len: 8,
                    value: buffer.readDoubleBE(offset, true)
                  };
                };
                var decodeDoubleSafe2222 = (buffer, offset, lenValue) => {
                  if (lenValue !== 8) {
                    return {
                      len: lenValue,
                      value: 0
                    };
                  } else {
                    return decodeDouble2222(buffer, offset);
                  }
                };
                var decodeOctetString2222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
                  const octetString = [];
                  for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                    octetString.push(buffer[offset + i]);
                  }
                  return {
                    len: octetStringLength,
                    value: octetString
                  };
                };
                var multiCharsetCharacterstringDecode2222 = (buffer, offset, maxLength, encoding, length) => {
                  const stringBuf = Buffer.alloc(length);
                  buffer.copy(stringBuf, 0, offset, offset + length);
                  return {
                    value: import_iconv_lite2222.default.decode(stringBuf, getEncodingType2222(encoding, buffer, offset)),
                    len: length + 1,
                    encoding
                  };
                };
                var decodeCharacterString2222 = (buffer, offset, maxLength, lenValue) => {
                  return multiCharsetCharacterstringDecode2222(
                    buffer,
                    offset + 1,
                    maxLength,
                    buffer[offset],
                    lenValue - 1
                  );
                };
                var bitstringSetBitsUsed2222 = (bitString, bytesUsed, unusedBits) => {
                  bitString.bitsUsed = bytesUsed * 8;
                  bitString.bitsUsed -= unusedBits;
                };
                var decodeBitstring2222 = (buffer, offset, lenValue) => {
                  let len = 0;
                  let bitString = {};
                  bitString.value = [];
                  if (lenValue > 0) {
                    const bytesUsed = lenValue - 1;
                    if (bytesUsed <= enums_default2222.ASN1_MAX_BITSTRING_BYTES) {
                      len = 1;
                      for (let i = 0; i < bytesUsed; i++) {
                        bitString.value.push(byteReverseBits2222(buffer[offset + len++]));
                      }
                      const unusedBits = buffer[offset] & 7;
                      bitstringSetBitsUsed2222(bitString, bytesUsed, unusedBits);
                    }
                  }
                  return {
                    len,
                    value: bitString
                  };
                };
                var decodeDate2222 = (buffer, offset) => {
                  let date;
                  const year = buffer[offset] + 1900;
                  const month = buffer[offset + 1];
                  const day = buffer[offset + 2];
                  const wday = buffer[offset + 3];
                  if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                    date = new Date(1, 1, 1);
                  } else {
                    date = new Date(year, month, day);
                  }
                  return {
                    len: 4,
                    value: date
                  };
                };
                var decodeDateSafe2222 = (buffer, offset, lenValue) => {
                  if (lenValue !== 4) {
                    return {
                      len: lenValue,
                      value: new Date(1, 1, 1)
                    };
                  } else {
                    return decodeDate2222(buffer, offset);
                  }
                };
                var decodeApplicationDate2222 = (buffer, offset) => {
                  const result = decodeTagNumber2222(buffer, offset);
                  if (result.tagNumber === enums_default2222.ApplicationTag.DATE) {
                    const value = decodeDate2222(buffer, offset + 1);
                    return {
                      len: value.len + 1,
                      value
                    };
                  }
                  return void 0;
                };
                var decodeBacnetTime2222 = (buffer, offset, value = new Date(1, 1, 1)) => {
                  const hour = buffer[offset + 0];
                  const min = buffer[offset + 1];
                  const sec = buffer[offset + 2];
                  let hundredths = buffer[offset + 3];
                  if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                    value = new Date(1, 1, 1);
                  } else {
                    if (hundredths > 100)
                      hundredths = 0;
                    value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
                  }
                  return {
                    len: 4,
                    value
                  };
                };
                var decodeBacnetTimeSafe2222 = (buffer, offset, lenValue) => {
                  if (lenValue !== 4) {
                    return {
                      len: lenValue,
                      value: new Date(1, 1, 1)
                    };
                  } else {
                    return decodeBacnetTime2222(buffer, offset);
                  }
                };
                var decodeApplicationTime2222 = (buffer, offset) => {
                  const result = decodeTagNumber2222(buffer, offset);
                  if (result.tagNumber === enums_default2222.ApplicationTag.TIME) {
                    const value = decodeBacnetTime2222(buffer, offset + 1);
                    return {
                      len: value.len + 1,
                      value
                    };
                  }
                  return void 0;
                };
                var decodeBacnetDatetime2222 = (buffer, offset) => {
                  let len = 0;
                  const date = decodeApplicationDate2222(buffer, offset + len);
                  len += date.len;
                  const time = decodeApplicationTime2222(buffer, offset + len);
                  len += time.len;
                  return {
                    len,
                    value: new Date(
                      date.year,
                      date.month,
                      date.day,
                      time.hour,
                      time.minute,
                      time.second,
                      time.millisecond
                    )
                  };
                };
                var bacappDecodeData2222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
                  let result;
                  let value = {
                    len: 0,
                    type: tagDataType
                  };
                  switch (tagDataType) {
                    case enums_default2222.ApplicationTag.NULL:
                      value.value = null;
                      break;
                    case enums_default2222.ApplicationTag.BOOLEAN:
                      value.value = lenValueType > 0;
                      break;
                    case enums_default2222.ApplicationTag.UNSIGNED_INTEGER:
                      result = decodeUnsigned2222(buffer, offset, lenValueType);
                      value.len += result.len;
                      value.value = result.value;
                      break;
                    case enums_default2222.ApplicationTag.SIGNED_INTEGER:
                      result = decodeSigned2222(buffer, offset, lenValueType);
                      value.len += result.len;
                      value.value = result.value;
                      break;
                    case enums_default2222.ApplicationTag.REAL:
                      result = decodeRealSafe2222(buffer, offset, lenValueType);
                      value.len += result.len;
                      value.value = result.value;
                      break;
                    case enums_default2222.ApplicationTag.DOUBLE:
                      result = decodeDoubleSafe2222(buffer, offset, lenValueType);
                      value.len += result.len;
                      value.value = result.value;
                      break;
                    case enums_default2222.ApplicationTag.OCTET_STRING:
                      result = decodeOctetString2222(buffer, offset, maxLength, 0, lenValueType);
                      value.len += result.len;
                      value.value = result.value;
                      break;
                    case enums_default2222.ApplicationTag.CHARACTER_STRING:
                      result = decodeCharacterString2222(buffer, offset, maxLength, lenValueType);
                      value.len += result.len;
                      value.value = result.value;
                      value.encoding = result.encoding;
                      break;
                    case enums_default2222.ApplicationTag.BIT_STRING:
                      result = decodeBitstring2222(buffer, offset, lenValueType);
                      value.len += result.len;
                      value.value = result.value;
                      break;
                    case enums_default2222.ApplicationTag.ENUMERATED:
                      result = decodeEnumerated2222(buffer, offset, lenValueType);
                      value.len += result.len;
                      value.value = result.value;
                      break;
                    case enums_default2222.ApplicationTag.DATE:
                      result = decodeDateSafe2222(buffer, offset, lenValueType);
                      value.len += result.len;
                      value.value = result.value;
                      break;
                    case enums_default2222.ApplicationTag.TIME:
                      result = decodeBacnetTimeSafe2222(buffer, offset, lenValueType);
                      value.len += result.len;
                      value.value = result.value;
                      break;
                    case enums_default2222.ApplicationTag.OBJECTIDENTIFIER:
                      result = decodeObjectIdSafe2222(buffer, offset, lenValueType);
                      value.len += result.len;
                      value.value = { type: result.objectType, instance: result.instance };
                      break;
                    default:
                      break;
                  }
                  return value;
                };
                var bacappContextTagType2222 = (property, tagNumber) => {
                  let tag = 0;
                  switch (property) {
                    case enums_default2222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                    case enums_default2222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                    case enums_default2222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                      switch (tagNumber) {
                        case 0:
                        case 1:
                          tag = enums_default2222.ApplicationTag.UNSIGNED_INTEGER;
                          break;
                        case 2:
                          tag = enums_default2222.ApplicationTag.REAL;
                          break;
                        default:
                          break;
                      }
                      break;
                    case enums_default2222.PropertyIdentifier.ACTION:
                      switch (tagNumber) {
                        case 0:
                        case 1:
                          tag = enums_default2222.ApplicationTag.OBJECTIDENTIFIER;
                          break;
                        case 2:
                          tag = enums_default2222.ApplicationTag.ENUMERATED;
                          break;
                        case 3:
                        case 5:
                        case 6:
                          tag = enums_default2222.ApplicationTag.UNSIGNED_INTEGER;
                          break;
                        case 7:
                        case 8:
                          tag = enums_default2222.ApplicationTag.BOOLEAN;
                          break;
                        default:
                          break;
                      }
                      break;
                    case enums_default2222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                      switch (tagNumber) {
                        case 0:
                          tag = enums_default2222.ApplicationTag.OBJECTIDENTIFIER;
                          break;
                        default:
                          break;
                      }
                      break;
                    case enums_default2222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                      switch (tagNumber) {
                        case 1:
                          tag = enums_default2222.ApplicationTag.OBJECTIDENTIFIER;
                          break;
                        case 3:
                          tag = enums_default2222.ApplicationTag.UNSIGNED_INTEGER;
                          break;
                        default:
                          break;
                      }
                      break;
                    case enums_default2222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                      switch (tagNumber) {
                        case 0:
                        case 3:
                          tag = enums_default2222.ApplicationTag.OBJECTIDENTIFIER;
                          break;
                        case 1:
                          tag = enums_default2222.ApplicationTag.ENUMERATED;
                          break;
                        case 2:
                          tag = enums_default2222.ApplicationTag.UNSIGNED_INTEGER;
                          break;
                        default:
                          break;
                      }
                      break;
                    case enums_default2222.PropertyIdentifier.SUBORDINATE_LIST:
                      switch (tagNumber) {
                        case 0:
                        case 1:
                          tag = enums_default2222.ApplicationTag.OBJECTIDENTIFIER;
                          break;
                        default:
                          break;
                      }
                      break;
                    case enums_default2222.PropertyIdentifier.RECIPIENT_LIST:
                      switch (tagNumber) {
                        case 0:
                          tag = enums_default2222.ApplicationTag.OBJECTIDENTIFIER;
                          break;
                        default:
                          break;
                      }
                      break;
                    case enums_default2222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                      switch (tagNumber) {
                        case 0:
                        case 1:
                          break;
                        case 2:
                          tag = enums_default2222.ApplicationTag.BOOLEAN;
                          break;
                        case 3:
                          tag = enums_default2222.ApplicationTag.UNSIGNED_INTEGER;
                          break;
                        case 4:
                          tag = enums_default2222.ApplicationTag.REAL;
                          break;
                        default:
                          break;
                      }
                      break;
                    default:
                      break;
                  }
                  return tag;
                };
                var decodeDeviceObjPropertyRef2222 = (buffer, offset, NOTUSEDARG = 0) => {
                  let len = 0;
                  let arrayIndex = enums_default2222.ASN1_ARRAY_ALL;
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  let objectId = decodeObjectId2222(buffer, offset + len);
                  len += objectId.len;
                  let result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 1) {
                    return void 0;
                  }
                  let id = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += id.len;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  if (result.tagNumber === 2) {
                    len += result.len;
                    arrayIndex = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += arrayIndex.len;
                  }
                  if (decodeIsContextTag2222(buffer, offset + len, 3)) {
                    if (!isClosingTag2222(buffer[offset + len])) {
                      len++;
                      objectId = decodeObjectId2222(buffer, offset + len);
                      len += objectId.len;
                    }
                  }
                  return {
                    len,
                    value: {
                      objectId,
                      id
                    }
                  };
                };
                var decodeReadAccessSpecification2222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let value = {};
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  let decodedValue = decodeObjectId2222(buffer, offset + len);
                  value.objectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  len += decodedValue.len;
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  len++;
                  const propertyIdAndArrayIndex = [];
                  while (apduLen - len > 1 && !decodeIsClosingTagNumber2222(buffer, offset + len, 1)) {
                    let propertyRef = {};
                    if (!isContextSpecific2222(buffer[offset + len])) {
                      return void 0;
                    }
                    let result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 0) {
                      return void 0;
                    }
                    if (len + result.value >= apduLen) {
                      return void 0;
                    }
                    decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                    propertyRef.id = decodedValue.value;
                    len += decodedValue.len;
                    propertyRef.index = enums_default2222.ASN1_ARRAY_ALL;
                    if (isContextSpecific2222(buffer[offset + len]) && !isClosingTag2222(buffer[offset + len])) {
                      const tmp = decodeTagNumberAndValue2222(buffer, offset + len);
                      if (tmp.tagNumber === 1) {
                        len += tmp.len;
                        if (len + tmp.value >= apduLen) {
                          return void 0;
                        }
                        decodedValue = decodeUnsigned2222(buffer, offset + len, tmp.value);
                        propertyRef.index = decodedValue.value;
                        len += decodedValue.len;
                      }
                    }
                    propertyIdAndArrayIndex.push(propertyRef);
                  }
                  if (!decodeIsClosingTagNumber2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  len++;
                  value.properties = propertyIdAndArrayIndex;
                  return {
                    len,
                    value
                  };
                };
                var decodeCovSubscription2222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let value = {};
                  let result;
                  let decodedValue;
                  value.recipient = {};
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  len++;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== enums_default2222.ApplicationTag.UNSIGNED_INTEGER) {
                    return void 0;
                  }
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.recipient.net = decodedValue.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== enums_default2222.ApplicationTag.OCTET_STRING) {
                    return void 0;
                  }
                  decodedValue = decodeOctetString2222(
                    buffer,
                    offset + len,
                    apduLen,
                    0,
                    result.value
                  );
                  len += decodedValue.len;
                  value.recipient.adr = decodedValue.value;
                  if (!decodeIsClosingTagNumber2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  len++;
                  if (!decodeIsClosingTagNumber2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 1) {
                    return void 0;
                  }
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.subscriptionProcessId = decodedValue.value;
                  if (!decodeIsClosingTagNumber2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  len++;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 0) {
                    return void 0;
                  }
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  value.monitoredObjectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 1) {
                    return void 0;
                  }
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.monitoredProperty = {};
                  value.monitoredProperty.id = decodedValue.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  if (result.tagNumber === 2) {
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.monitoredProperty.index = decodedValue.value;
                  } else {
                    value.monitoredProperty.index = enums_default2222.ASN1_ARRAY_ALL;
                  }
                  if (!decodeIsClosingTagNumber2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  len++;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 2) {
                    return void 0;
                  }
                  value.issueConfirmedNotifications = buffer[offset + len] > 0;
                  len++;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 3) {
                    return void 0;
                  }
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.timeRemaining = decodedValue.value;
                  if (len < apduLen && !isClosingTag2222(buffer[offset + len])) {
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 4) {
                      return void 0;
                    }
                    decodedValue = decodeReal2222(buffer, offset + len);
                    len += decodedValue.len;
                    value.covIncrement = decodedValue.value;
                  }
                  return {
                    len,
                    value
                  };
                };
                var decodeCalendarDate2222 = (buffer, offset) => {
                  return {
                    len: 4,
                    year: buffer[offset],
                    month: buffer[offset + 1],
                    day: buffer[offset + 2],
                    wday: buffer[offset + 3]
                  };
                };
                var decodeCalendarDateRange2222 = (buffer, offset) => {
                  let len = 1;
                  const startDate = decodeDate2222(buffer, offset + len);
                  len += startDate.len + 1;
                  const endDate = decodeDate2222(buffer, offset + len);
                  len += endDate.len + 1;
                  return {
                    len,
                    startDate,
                    endDate
                  };
                };
                var decodeCalendarWeekDay2222 = (buffer, offset) => {
                  return {
                    len: 3,
                    month: buffer[offset],
                    week: buffer[offset + 1],
                    wday: buffer[offset + 2]
                  };
                };
                var decodeCalendar2222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  const entries = [];
                  let decodedValue;
                  while (len < apduLen) {
                    const result = decodeTagNumber2222(buffer, offset + len);
                    len += result.len;
                    switch (result.tagNumber) {
                      case 0:
                        decodedValue = decodeCalendarDate2222(buffer, offset + len);
                        len += decodedValue.len;
                        entries.push(decodedValue);
                        break;
                      case 1:
                        decodedValue = decodeCalendarDateRange2222(buffer, offset + len);
                        len += decodedValue.len;
                        entries.push(decodedValue);
                        break;
                      case 2:
                        decodedValue = decodeCalendarWeekDay2222(buffer, offset + len);
                        len += decodedValue.len;
                        entries.push(decodedValue);
                        break;
                      default:
                        return {
                          len: len - 1,
                          value: entries
                        };
                    }
                  }
                };
                var bacappDecodeContextApplicationData2222 = (buffer, offset, maxOffset, objectType, propertyId) => {
                  let len = 0;
                  let result;
                  if (isContextSpecific2222(buffer[offset])) {
                    if (propertyId === enums_default2222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                      result = decodeReadAccessSpecification2222(buffer, offset, maxOffset);
                      if (!result) {
                        return void 0;
                      }
                      return {
                        type: enums_default2222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                        value: result.value,
                        len: result.len
                      };
                    } else if (propertyId === enums_default2222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                      result = decodeCovSubscription2222(buffer, offset, maxOffset);
                      if (!result) {
                        return void 0;
                      }
                      return {
                        type: enums_default2222.ApplicationTag.COV_SUBSCRIPTION,
                        value: result.value,
                        len: result.len
                      };
                    } else if (objectType === enums_default2222.ObjectType.GROUP && propertyId === enums_default2222.PropertyIdentifier.PRESENT_VALUE) {
                      result = decodeReadAccessResult2222(buffer, offset, maxOffset);
                      if (!result) {
                        return void 0;
                      }
                      return {
                        type: enums_default2222.ApplicationTag.READ_ACCESS_RESULT,
                        value: result.value,
                        len: result.len
                      };
                    } else if (propertyId === enums_default2222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default2222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default2222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                      result = decodeDeviceObjPropertyRef2222(buffer, offset, maxOffset);
                      if (!result) {
                        return void 0;
                      }
                      return {
                        type: enums_default2222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                        value: result.value,
                        len: result.len
                      };
                    } else if (propertyId === enums_default2222.PropertyIdentifier.DATE_LIST) {
                      result = decodeCalendar2222(buffer, offset, maxOffset);
                      if (!result) {
                        return void 0;
                      }
                      return {
                        type: enums_default2222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                        value: result.value,
                        len: result.len
                      };
                    } else if (propertyId === enums_default2222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                      let subEvtResult;
                      let evtResult = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += 1;
                      if (evtResult.tagNumber === 0) {
                        subEvtResult = decodeBacnetTime2222(buffer, offset + 1);
                        return {
                          type: enums_default2222.ApplicationTag.TIMESTAMP,
                          value: subEvtResult.value,
                          len: subEvtResult.len + 1
                        };
                      } else if (evtResult.tagNumber === 1) {
                        subEvtResult = decodeUnsigned2222(buffer, offset + len, evtResult.value);
                        return {
                          type: enums_default2222.ApplicationTag.UNSIGNED_INTEGER,
                          value: subEvtResult.value,
                          len: subEvtResult.len + 1
                        };
                      } else if (evtResult.tagNumber === 2) {
                        subEvtResult = decodeBacnetDatetime2222(buffer, offset + len);
                        return {
                          type: enums_default2222.ApplicationTag.TIMESTAMP,
                          value: subEvtResult.value,
                          len: subEvtResult.len + 2
                        };
                      } else {
                        return void 0;
                      }
                    }
                    const list = [];
                    let tagResult = decodeTagNumberAndValue2222(buffer, offset + len);
                    let multipleValues = isOpeningTag2222(buffer[offset + len]);
                    while (len + offset <= maxOffset && !isClosingTag2222(buffer[offset + len])) {
                      let subResult = decodeTagNumberAndValue2222(buffer, offset + len);
                      if (!subResult) {
                        return void 0;
                      }
                      if (subResult.value === 0) {
                        len += subResult.len;
                        result = bacappDecodeApplicationData2222(
                          buffer,
                          offset + len,
                          maxOffset,
                          enums_default2222.ASN1_MAX_OBJECT_TYPE,
                          enums_default2222.ASN1_MAX_PROPERTY_ID
                        );
                        if (!result) {
                          return void 0;
                        }
                        list.push(result);
                        len += result.len;
                      } else {
                        const overrideTagNumber = bacappContextTagType2222(
                          propertyId,
                          subResult.tagNumber
                        );
                        if (overrideTagNumber !== enums_default2222.ASN1_MAX_APPLICATION_TAG) {
                          subResult.tagNumber = overrideTagNumber;
                        }
                        let bacappResult = bacappDecodeData2222(
                          buffer,
                          offset + len + subResult.len,
                          maxOffset,
                          subResult.tagNumber,
                          subResult.value
                        );
                        if (!bacappResult) {
                          return void 0;
                        }
                        if (bacappResult.len === subResult.value) {
                          let resObj = {
                            value: bacappResult.value,
                            type: bacappResult.type
                          };
                          if (bacappResult.encoding !== void 0)
                            resObj.encoding = bacappResult.encoding;
                          list.push(resObj);
                          len += subResult.len + subResult.value;
                        } else {
                          list.push({
                            value: buffer.slice(
                              offset + len + subResult.len,
                              offset + len + subResult.len + subResult.value
                            ),
                            type: enums_default2222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                          });
                          len += subResult.len + subResult.value;
                        }
                      }
                      if (multipleValues === false) {
                        return {
                          len,
                          value: list[0],
                          type: enums_default2222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                        };
                      }
                    }
                    if (len + offset > maxOffset) {
                      return void 0;
                    }
                    if (decodeIsClosingTagNumber2222(buffer, offset + len, tagResult.tagNumber)) {
                      len++;
                    }
                    return {
                      len,
                      value: list,
                      type: enums_default2222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                    };
                  }
                  return void 0;
                };
                var bacappEncodeTimestamp2222 = (buffer, value) => {
                  switch (value.type) {
                    case enums_default2222.TimeStamp.TIME:
                      encodeContextTime2222(buffer, 0, value.value);
                      break;
                    case enums_default2222.TimeStamp.SEQUENCE_NUMBER:
                      encodeContextUnsigned2222(buffer, 1, value.value);
                      break;
                    case enums_default2222.TimeStamp.DATETIME:
                      bacappEncodeContextDatetime2222(buffer, 2, value.value);
                      break;
                    default:
                      throw new Error("NOT_IMPLEMENTED");
                  }
                };
                var bacappEncodeContextTimestamp2222 = (buffer, tagNumber, value) => {
                  encodeOpeningTag2222(buffer, tagNumber);
                  bacappEncodeTimestamp2222(buffer, value);
                  encodeClosingTag2222(buffer, tagNumber);
                };
                var decodeContextCharacterString2222 = (buffer, offset, maxLength, tagNumber) => {
                  let len = 0;
                  if (!decodeIsContextTag2222(buffer, offset + len, tagNumber)) {
                    return void 0;
                  }
                  const result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  const decodedValue = multiCharsetCharacterstringDecode2222(
                    buffer,
                    offset + 1 + len,
                    maxLength,
                    buffer[offset + len],
                    result.value - 1
                  );
                  if (!decodedValue) {
                    return void 0;
                  }
                  len += result.value;
                  return {
                    len,
                    value: decodedValue.value,
                    encoding: decodedValue.encoding
                  };
                };
                var decodeIsContextTagWithLength2222 = (buffer, offset, tagNumber) => {
                  const result = decodeTagNumber2222(buffer, offset);
                  return {
                    len: result.len,
                    value: isContextSpecific2222(buffer[offset]) && result.tagNumber === tagNumber
                  };
                };
                var decodeContextObjectId2222 = (buffer, offset, tagNumber) => {
                  const result = decodeIsContextTagWithLength2222(buffer, offset, tagNumber);
                  if (!result.value) {
                    return void 0;
                  }
                  const decodedValue = decodeObjectId2222(buffer, offset + result.len);
                  decodedValue.len = decodedValue.len + result.len;
                  return decodedValue;
                };
                var encodeBacnetCharacterString2222 = (buffer, value, encoding) => {
                  encoding = encoding || enums_default2222.CharacterStringEncoding.UTF_8;
                  buffer.buffer[buffer.offset++] = encoding;
                  const bufEncoded = import_iconv_lite2222.default.encode(value, getEncodingType2222(encoding));
                  buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
                };
                var encodeApplicationCharacterString2222 = (buffer, value, encoding) => {
                  const tmp = getBuffer2222();
                  encodeBacnetCharacterString2222(tmp, value, encoding);
                  encodeTag2222(buffer, enums_default2222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                  buffer.offset += tmp.offset;
                };
                var encodeContextCharacterString2222 = (buffer, tagNumber, value, encoding) => {
                  const tmp = getBuffer2222();
                  encodeBacnetCharacterString2222(tmp, value, encoding);
                  encodeTag2222(buffer, tagNumber, true, tmp.offset);
                  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
                  buffer.offset += tmp.offset;
                };
                var encode33222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                  encodeContextObjectId2222(buffer, 0, objectId.type, objectId.instance);
                  encodeContextEnumerated2222(buffer, 1, propertyId);
                  if (arrayIndex !== ASN1_ARRAY_ALL2222) {
                    encodeContextUnsigned2222(buffer, 2, arrayIndex);
                  }
                  encodeOpeningTag2222(buffer, 3);
                  values.forEach((value) => {
                    bacappEncodeApplicationData2222(buffer, value);
                  });
                  encodeClosingTag2222(buffer, 3);
                };
                var decode33222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let value = {};
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  value.objectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.property = { id: decodedValue.value };
                  if (len < apduLen && decodeIsContextTag2222(buffer, offset + len, 2)) {
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.property.index = decodedValue.value;
                  } else {
                    value.property.index = ASN1_ARRAY_ALL2222;
                  }
                  const values = [];
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 3)) {
                    return void 0;
                  }
                  len++;
                  while (apduLen - len > 1) {
                    result = bacappDecodeApplicationData2222(
                      buffer,
                      offset + len,
                      apduLen + offset,
                      value.objectId.type,
                      value.property.id
                    );
                    if (!result) {
                      return void 0;
                    }
                    len += result.len;
                    delete result.len;
                    values.push(result);
                  }
                  value.values = values;
                  if (!decodeIsClosingTagNumber2222(buffer, offset + len, 3)) {
                    return void 0;
                  }
                  len++;
                  value.len = len;
                  return value;
                };
                var alarm_acknowledge_exports2222 = {};
                __export2222(alarm_acknowledge_exports2222, {
                  decode: () => decode210222,
                  encode: () => encode210222
                });
                var encode210222 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
                  encodeContextUnsigned2222(buffer, 0, ackProcessId);
                  encodeContextObjectId2222(
                    buffer,
                    1,
                    eventObjectId.type,
                    eventObjectId.instance
                  );
                  encodeContextEnumerated2222(buffer, 2, eventStateAcknowledged);
                  bacappEncodeContextTimestamp2222(buffer, 3, eventTimeStamp);
                  encodeContextCharacterString2222(buffer, 4, ackSource);
                  bacappEncodeContextTimestamp2222(buffer, 5, ackTimeStamp);
                };
                var decode210222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let value = {};
                  let result;
                  let decodedValue;
                  let date;
                  let time;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.acknowledgedProcessId = decodedValue.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  value.eventObjectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.eventStateAcknowledged = decodedValue.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber === 0) {
                    decodedValue = decodeBacnetTime2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.eventTimeStamp = decodedValue.value;
                  } else if (result.tagNumber === 1) {
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.eventTimeStamp = decodedValue.value;
                  } else if (result.tagNumber === 2) {
                    date = decodeApplicationDate2222(buffer, offset + len);
                    len += date.len;
                    date = date.value.value;
                    time = decodeApplicationTime2222(buffer, offset + len);
                    len += time.len;
                    time = time.value.value;
                    value.eventTimeStamp = new Date(
                      date.getFullYear(),
                      date.getMonth(),
                      date.getDate(),
                      time.getHours(),
                      time.getMinutes(),
                      time.getSeconds(),
                      time.getMilliseconds()
                    );
                    len++;
                  }
                  len++;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeCharacterString2222(
                    buffer,
                    offset + len,
                    apduLen - (offset + len),
                    result.value
                  );
                  value.acknowledgeSource = decodedValue.value;
                  len += decodedValue.len;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber === 0) {
                    decodedValue = decodeBacnetTime2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.acknowledgeTimeStamp = decodedValue.value;
                  } else if (result.tagNumber === 1) {
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.acknowledgeTimeStamp = decodedValue.value;
                  } else if (result.tagNumber === 2) {
                    date = decodeApplicationDate2222(buffer, offset + len);
                    len += date.len;
                    date = date.value.value;
                    time = decodeApplicationTime2222(buffer, offset + len);
                    len += time.len;
                    time = time.value.value;
                    value.acknowledgeTimeStamp = new Date(
                      date.getFullYear(),
                      date.getMonth(),
                      date.getDate(),
                      time.getHours(),
                      time.getMinutes(),
                      time.getSeconds(),
                      time.getMilliseconds()
                    );
                    len++;
                  }
                  len++;
                  value.len = len;
                  return value;
                };
                var alarm_summary_exports2222 = {};
                __export2222(alarm_summary_exports2222, {
                  decode: () => decode34222,
                  encode: () => encode34222
                });
                var encode34222 = (buffer, alarms) => {
                  alarms.forEach((alarm) => {
                    encodeContextObjectId2222(
                      buffer,
                      12,
                      alarm.objectId.type,
                      alarm.objectId.instance
                    );
                    encodeContextEnumerated2222(buffer, 9, alarm.alarmState);
                    encodeContextBitstring2222(buffer, 8, alarm.acknowledgedTransitions);
                  });
                };
                var decode34222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  const alarms = [];
                  while (apduLen - 3 - len > 0) {
                    let value = {};
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeObjectId2222(buffer, offset + len);
                    len += decodedValue.len;
                    value.objectId = {
                      type: decodedValue.objectType,
                      instance: decodedValue.instance
                    };
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.alarmState = decodedValue.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeBitstring2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.acknowledgedTransitions = decodedValue.value;
                    alarms.push(value);
                  }
                  return {
                    len,
                    alarms
                  };
                };
                var atomic_read_file_exports2222 = {};
                __export2222(atomic_read_file_exports2222, {
                  decode: () => decode42222,
                  decodeAcknowledge: () => decodeAcknowledge8222,
                  encode: () => encode42222,
                  encodeAcknowledge: () => encodeAcknowledge9222
                });
                var encode42222 = (buffer, isStream, objectId, position, count) => {
                  encodeApplicationObjectId2222(buffer, objectId.type, objectId.instance);
                  if (isStream) {
                    encodeOpeningTag2222(buffer, 0);
                    encodeApplicationSigned2222(buffer, position);
                    encodeApplicationUnsigned2222(buffer, count);
                    encodeClosingTag2222(buffer, 0);
                  } else {
                    encodeOpeningTag2222(buffer, 1);
                    encodeApplicationSigned2222(buffer, position);
                    encodeApplicationUnsigned2222(buffer, count);
                    encodeClosingTag2222(buffer, 1);
                  }
                };
                var decode42222 = (buffer, offset) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let isStream = true;
                  let objectId = {};
                  let position = -1;
                  let count = 0;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 12) {
                    return void 0;
                  }
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
                  if (decodeIsOpeningTagNumber2222(buffer, offset + len, 0)) {
                    isStream = true;
                    len++;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 3) {
                      return void 0;
                    }
                    decodedValue = decodeSigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    position = decodedValue.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 2) {
                      return void 0;
                    }
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    count = decodedValue.value;
                    if (!decodeIsClosingTagNumber2222(buffer, offset + len, 0)) {
                      return void 0;
                    }
                    len++;
                  } else if (decodeIsOpeningTagNumber2222(buffer, offset + len, 1)) {
                    isStream = false;
                    len++;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 3) {
                      return void 0;
                    }
                    decodedValue = decodeSigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    position = decodedValue.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 2) {
                      return void 0;
                    }
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    count = decodedValue.value;
                    if (!decodeIsClosingTagNumber2222(buffer, offset + len, 1)) {
                      return void 0;
                    }
                    len++;
                  } else {
                    return void 0;
                  }
                  return {
                    len,
                    isStream,
                    objectId,
                    position,
                    count
                  };
                };
                var encodeAcknowledge9222 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
                  encodeApplicationBoolean2222(buffer, endOfFile);
                  if (isStream) {
                    encodeOpeningTag2222(buffer, 0);
                    encodeApplicationSigned2222(buffer, position);
                    encodeApplicationOctetString2222(buffer, blocks[0], 0, counts[0]);
                    encodeClosingTag2222(buffer, 0);
                  } else {
                    encodeOpeningTag2222(buffer, 1);
                    encodeApplicationSigned2222(buffer, position);
                    encodeApplicationUnsigned2222(buffer, blockCount);
                    for (let i = 0; i < blockCount; i++) {
                      encodeApplicationOctetString2222(buffer, blocks[i], 0, counts[i]);
                    }
                    encodeClosingTag2222(buffer, 1);
                  }
                };
                var decodeAcknowledge8222 = (buffer, offset, length = 0) => {
                  let len = length;
                  let result;
                  let decodedValue;
                  let endOfFile;
                  let isStream;
                  let position;
                  let targetBuffer;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 1) {
                    return void 0;
                  }
                  endOfFile = result.value > 0;
                  if (decodeIsOpeningTagNumber2222(buffer, offset + len, 0)) {
                    isStream = true;
                    len++;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 3) {
                      return void 0;
                    }
                    decodedValue = decodeSigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    position = decodedValue.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 6) {
                      return void 0;
                    }
                    targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                    len += result.value;
                    if (!decodeIsClosingTagNumber2222(buffer, offset + len, 0)) {
                      return void 0;
                    }
                    len++;
                  } else if (decodeIsOpeningTagNumber2222(buffer, offset + len, 1)) {
                    isStream = false;
                    throw new Error("NotImplemented");
                  } else {
                    return void 0;
                  }
                  return {
                    len,
                    endOfFile,
                    isStream,
                    position,
                    buffer: targetBuffer
                  };
                };
                var atomic_write_file_exports2222 = {};
                __export2222(atomic_write_file_exports2222, {
                  decode: () => decode52222,
                  decodeAcknowledge: () => decodeAcknowledge22222,
                  encode: () => encode52222,
                  encodeAcknowledge: () => encodeAcknowledge22222
                });
                var encode52222 = (buffer, isStream, objectId, position, blocks) => {
                  encodeApplicationObjectId2222(buffer, objectId.type, objectId.instance);
                  if (isStream) {
                    encodeOpeningTag2222(buffer, 0);
                    encodeApplicationSigned2222(buffer, position);
                    encodeApplicationOctetString2222(buffer, blocks[0], 0, blocks[0].length);
                    encodeClosingTag2222(buffer, 0);
                  } else {
                    encodeOpeningTag2222(buffer, 1);
                    encodeApplicationSigned2222(buffer, position);
                    encodeApplicationUnsigned2222(buffer, blocks.length);
                    for (let i = 0; i < blocks.length; i++) {
                      encodeApplicationOctetString2222(
                        buffer,
                        blocks[i],
                        0,
                        blocks[i].length
                      );
                    }
                    encodeClosingTag2222(buffer, 1);
                  }
                };
                var decode52222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let isStream;
                  let position;
                  let blocks = [];
                  let blockCount;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 12) {
                    return void 0;
                  }
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  let objectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  if (decodeIsOpeningTagNumber2222(buffer, offset + len, 0)) {
                    isStream = true;
                    len++;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 3) {
                      return void 0;
                    }
                    decodedValue = decodeSigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    position = decodedValue.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 6) {
                      return void 0;
                    }
                    decodedValue = decodeOctetString2222(
                      buffer,
                      offset + len,
                      apduLen,
                      0,
                      result.value
                    );
                    len += decodedValue.len;
                    blocks.push(decodedValue.value);
                    if (!decodeIsClosingTagNumber2222(buffer, offset + len, 0)) {
                      return void 0;
                    }
                    len++;
                  } else if (decodeIsOpeningTagNumber2222(buffer, offset + len, 1)) {
                    isStream = false;
                    len++;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 3) {
                      return void 0;
                    }
                    decodedValue = decodeSigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    position = decodedValue.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 2) {
                      return void 0;
                    }
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    blockCount = decodedValue.value;
                    for (let i = 0; i < blockCount; i++) {
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber !== 6) {
                        return void 0;
                      }
                      decodedValue = decodeOctetString2222(
                        buffer,
                        offset + len,
                        apduLen,
                        0,
                        result.value
                      );
                      len += decodedValue.len;
                      blocks.push(decodedValue.value);
                    }
                    if (!decodeIsClosingTagNumber2222(buffer, offset + len, 1)) {
                      return void 0;
                    }
                    len++;
                  } else {
                    return void 0;
                  }
                  return {
                    len,
                    isStream,
                    objectId,
                    position,
                    blocks
                  };
                };
                var encodeAcknowledge22222 = (buffer, isStream, position) => {
                  if (isStream) {
                    encodeContextSigned2222(buffer, 0, position);
                  } else {
                    encodeContextSigned2222(buffer, 1, position);
                  }
                };
                var decodeAcknowledge22222 = (buffer, offset, length = 0) => {
                  let len = length;
                  let isStream = false;
                  let position = 0;
                  let decodedValue;
                  const result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber === 0) {
                    isStream = true;
                  } else if (result.tagNumber === 1) {
                    isStream = false;
                  } else {
                    return void 0;
                  }
                  decodedValue = decodeSigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  position = decodedValue.value;
                  return {
                    len,
                    isStream,
                    position
                  };
                };
                var cov_notify_exports2222 = {};
                __export2222(cov_notify_exports2222, {
                  decode: () => decode62222,
                  encode: () => encode62222
                });
                var encode62222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
                  encodeContextUnsigned2222(buffer, 0, subscriberProcessId);
                  encodeContextObjectId2222(
                    buffer,
                    1,
                    8,
                    initiatingDeviceId
                  );
                  encodeContextObjectId2222(
                    buffer,
                    2,
                    monitoredObjectId.type,
                    monitoredObjectId.instance
                  );
                  encodeContextUnsigned2222(buffer, 3, timeRemaining);
                  encodeOpeningTag2222(buffer, 4);
                  values.forEach((value) => {
                    encodeContextEnumerated2222(buffer, 0, value.property.id);
                    if (value.property.index === ASN1_ARRAY_ALL2222) {
                      encodeContextUnsigned2222(buffer, 1, value.property.index);
                    }
                    encodeOpeningTag2222(buffer, 2);
                    value.value.forEach((v) => {
                      bacappEncodeApplicationData2222(buffer, v);
                    });
                    encodeClosingTag2222(buffer, 2);
                    if (value.priority === ASN1_NO_PRIORITY2222) {
                      encodeContextUnsigned2222(buffer, 3, value.priority);
                    }
                  });
                  encodeClosingTag2222(buffer, 4);
                };
                var decode62222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  const subscriberProcessId = decodedValue.value;
                  if (!decodeIsContextTag2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  const initiatingDeviceId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  if (!decodeIsContextTag2222(buffer, offset + len, 2)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  const monitoredObjectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  if (!decodeIsContextTag2222(buffer, offset + len, 3)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  const timeRemaining = decodedValue.value;
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 4)) {
                    return void 0;
                  }
                  len++;
                  const values = [];
                  while (apduLen - len > 1 && !decodeIsClosingTagNumber2222(buffer, offset + len, 4)) {
                    let newEntry = {};
                    newEntry.property = {};
                    if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                      return void 0;
                    }
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    newEntry.property.id = decodedValue.value;
                    if (decodeIsContextTag2222(buffer, offset + len, 1)) {
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      newEntry.property.index = decodedValue.value;
                    } else {
                      newEntry.property.index = ASN1_ARRAY_ALL2222;
                    }
                    if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 2)) {
                      return void 0;
                    }
                    len++;
                    const properties = [];
                    while (apduLen - len > 1 && !decodeIsClosingTagNumber2222(buffer, offset + len, 2)) {
                      decodedValue = bacappDecodeApplicationData2222(
                        buffer,
                        offset + len,
                        apduLen + offset,
                        monitoredObjectId.type,
                        newEntry.property.id
                      );
                      if (!decodedValue) {
                        return void 0;
                      }
                      len += decodedValue.len;
                      delete decodedValue.len;
                      properties.push(decodedValue);
                    }
                    newEntry.value = properties;
                    len++;
                    if (decodeIsContextTag2222(buffer, offset + len, 3)) {
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      newEntry.priority = decodedValue.value;
                    } else {
                      newEntry.priority = ASN1_NO_PRIORITY2222;
                    }
                    values.push(newEntry);
                  }
                  return {
                    len,
                    subscriberProcessId,
                    initiatingDeviceId,
                    monitoredObjectId,
                    timeRemaining,
                    values
                  };
                };
                var create_object_exports2222 = {};
                __export2222(create_object_exports2222, {
                  decode: () => decode72222,
                  encode: () => encode72222,
                  encodeAcknowledge: () => encodeAcknowledge32222
                });
                var encode72222 = (buffer, objectId, values) => {
                  encodeOpeningTag2222(buffer, 0);
                  encodeContextObjectId2222(buffer, 1, objectId.type, objectId.instance);
                  encodeClosingTag2222(buffer, 0);
                  encodeOpeningTag2222(buffer, 1);
                  values.forEach((propertyValue) => {
                    encodeContextEnumerated2222(buffer, 0, propertyValue.property.id);
                    if (propertyValue.property.index !== ASN1_ARRAY_ALL2222) {
                      encodeContextUnsigned2222(buffer, 1, propertyValue.property.index);
                    }
                    encodeOpeningTag2222(buffer, 2);
                    propertyValue.value.forEach((value) => {
                      bacappEncodeApplicationData2222(buffer, value);
                    });
                    encodeClosingTag2222(buffer, 2);
                    if (propertyValue.priority !== ASN1_NO_PRIORITY2222) {
                      encodeContextUnsigned2222(buffer, 3, propertyValue.priority);
                    }
                  });
                  encodeClosingTag2222(buffer, 1);
                };
                var decode72222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let objectId;
                  const valueList = [];
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber === 0 && apduLen > len) {
                    apduLen -= len;
                    if (apduLen < 4) {
                      return void 0;
                    }
                    decodedValue = decodeContextObjectId2222(buffer, offset + len, 1);
                    len += decodedValue.len;
                    objectId = {
                      type: decodedValue.objectType,
                      instance: decodedValue.instance
                    };
                  } else {
                    return void 0;
                  }
                  if (decodeIsClosingTag2222(buffer, offset + len)) {
                    len++;
                  }
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  len++;
                  while (apduLen - len > 1) {
                    let newEntry = {};
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 0) {
                      return void 0;
                    }
                    decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    let propertyId = decodedValue.value;
                    let arraIndex = ASN1_ARRAY_ALL2222;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber === 1) {
                      decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      arraIndex += decodedValue.value;
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                    }
                    newEntry.property = { id: propertyId, index: arraIndex };
                    if (result.tagNumber === 2 && decodeIsOpeningTag2222(buffer, offset + len - 1)) {
                      const values = [];
                      while (!decodeIsClosingTag2222(buffer, offset + len)) {
                        decodedValue = bacappDecodeApplicationData2222(
                          buffer,
                          offset + len,
                          apduLen + offset,
                          objectId.type,
                          propertyId
                        );
                        if (!decodedValue) {
                          return void 0;
                        }
                        len += decodedValue.len;
                        delete decodedValue.len;
                        values.push(decodedValue);
                      }
                      len++;
                      newEntry.value = values;
                    } else {
                      return void 0;
                    }
                    valueList.push(newEntry);
                  }
                  if (!decodeIsClosingTagNumber2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  len++;
                  return {
                    len,
                    objectId,
                    values: valueList
                  };
                };
                var encodeAcknowledge32222 = (buffer, objectId) => {
                  encodeApplicationObjectId2222(buffer, objectId.type, objectId.instance);
                };
                var delete_object_exports2222 = {};
                __export2222(delete_object_exports2222, {
                  decode: () => decode82222,
                  encode: () => encode82222
                });
                var decode82222 = (buffer, offset, apduLen) => {
                  const result = decodeTagNumberAndValue2222(buffer, offset);
                  if (result.tagNumber !== 12) {
                    return void 0;
                  }
                  let len = 1;
                  const value = decodeObjectId2222(buffer, offset + len);
                  len += value.len;
                  if (len !== apduLen) {
                    return void 0;
                  }
                  value.len = len;
                  return value;
                };
                var encode82222 = (buffer, objectId) => {
                  encodeApplicationObjectId2222(buffer, objectId.type, objectId.instance);
                };
                var device_communication_control_exports2222 = {};
                __export2222(device_communication_control_exports2222, {
                  decode: () => decode92222,
                  encode: () => encode92222
                });
                var encode92222 = (buffer, timeDuration, enableDisable, password) => {
                  if (timeDuration > 0) {
                    encodeContextUnsigned2222(buffer, 0, timeDuration);
                  }
                  encodeContextEnumerated2222(buffer, 1, enableDisable);
                  if (password && password !== "") {
                    encodeContextCharacterString2222(buffer, 2, password);
                  }
                };
                var decode92222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let value = {};
                  let decodedValue;
                  let result;
                  if (decodeIsContextTag2222(buffer, offset + len, 0)) {
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    value.timeDuration = decodedValue.value;
                    len += decodedValue.len;
                  }
                  if (!decodeIsContextTag2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  value.enableDisable = decodedValue.value;
                  len += decodedValue.len;
                  if (len < apduLen) {
                    if (!decodeIsContextTag2222(buffer, offset + len, 2)) {
                      return void 0;
                    }
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeCharacterString2222(
                      buffer,
                      offset + len,
                      apduLen - (offset + len),
                      result.value
                    );
                    value.password = decodedValue.value;
                    len += decodedValue.len;
                  }
                  value.len = len;
                  return value;
                };
                var error_exports2222 = {};
                __export2222(error_exports2222, {
                  buildMessage: () => buildMessage2222,
                  decode: () => decode102222,
                  encode: () => encode102222
                });
                var encode102222 = (buffer, errorClass, errorCode) => {
                  encodeApplicationEnumerated2222(buffer, errorClass);
                  encodeApplicationEnumerated2222(buffer, errorCode);
                };
                var decode102222 = (buffer, offset) => {
                  const orgOffset = offset;
                  let result;
                  result = decodeTagNumberAndValue2222(buffer, offset);
                  offset += result.len;
                  const errorClass = decodeEnumerated2222(buffer, offset, result.value);
                  offset += errorClass.len;
                  result = decodeTagNumberAndValue2222(buffer, offset);
                  offset += result.len;
                  const errorCode = decodeEnumerated2222(buffer, offset, result.value);
                  offset += errorClass.len;
                  return {
                    len: offset - orgOffset,
                    class: errorClass.value,
                    code: errorCode.value
                  };
                };
                var buildMessage2222 = function(result) {
                  return "BacnetError Class: " + ErrorClassName2222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName2222[result.code] + " (" + result.code + ")";
                };
                var event_information_exports2222 = {};
                __export2222(event_information_exports2222, {
                  decode: () => decode112222,
                  encode: () => encode112222
                });
                var encode112222 = (buffer, events, moreEvents) => {
                  encodeOpeningTag2222(buffer, 0);
                  events.forEach((event) => {
                    encodeContextObjectId2222(
                      buffer,
                      0,
                      event.objectId.type,
                      event.objectId.instance
                    );
                    encodeContextEnumerated2222(buffer, 1, event.eventState);
                    encodeContextBitstring2222(buffer, 2, event.acknowledgedTransitions);
                    encodeOpeningTag2222(buffer, 3);
                    for (let i = 0; i < 3; i++) {
                      encodeApplicationDate2222(buffer, event.eventTimeStamps[i]);
                      encodeApplicationTime2222(buffer, event.eventTimeStamps[i]);
                    }
                    encodeClosingTag2222(buffer, 3);
                    encodeContextEnumerated2222(buffer, 4, event.notifyType);
                    encodeContextBitstring2222(buffer, 5, event.eventEnable);
                    encodeOpeningTag2222(buffer, 6);
                    for (let i = 0; i < 3; i++) {
                      encodeApplicationUnsigned2222(buffer, event.eventPriorities[i]);
                    }
                    encodeClosingTag2222(buffer, 6);
                  });
                  encodeClosingTag2222(buffer, 0);
                  encodeContextBoolean2222(buffer, 1, moreEvents);
                };
                var decode112222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  len++;
                  const alarms = [];
                  let moreEvents;
                  while (apduLen - 3 - len > 0) {
                    let value = {};
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeObjectId2222(buffer, offset + len);
                    len += decodedValue.len;
                    value.objectId = {
                      type: decodedValue.objectType,
                      instance: decodedValue.instance
                    };
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.eventState = decodedValue.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeBitstring2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.acknowledgedTransitions = decodedValue.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    value.eventTimeStamps = [];
                    for (let i = 0; i < 3; i++) {
                      if (result.tagNumber !== 0) {
                        decodedValue = decodeApplicationDate2222(buffer, offset + len);
                        len += decodedValue.len;
                        const date = decodedValue.value.value;
                        decodedValue = decodeApplicationTime2222(buffer, offset + len);
                        len += decodedValue.len;
                        const time = decodedValue.value.value;
                        value.eventTimeStamps[i] = new Date(
                          date.getFullYear(),
                          date.getMonth(),
                          date.getDate(),
                          time.getHours(),
                          time.getMinutes(),
                          time.getSeconds(),
                          time.getMilliseconds()
                        );
                      } else {
                        len += result.value;
                      }
                    }
                    len++;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.notifyType = decodedValue.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeBitstring2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.eventEnable = decodedValue.value;
                    len++;
                    value.eventPriorities = [];
                    for (let i = 0; i < 3; i++) {
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.eventPriorities[i] = decodedValue.value;
                    }
                    len++;
                    alarms.push(value);
                  }
                  moreEvents = buffer[apduLen - 1] === 1;
                  return {
                    len,
                    alarms,
                    moreEvents
                  };
                };
                var event_notify_data_exports2222 = {};
                __export2222(event_notify_data_exports2222, {
                  decode: () => decode122222,
                  encode: () => encode122222
                });
                var encode122222 = (buffer, data) => {
                  encodeContextUnsigned2222(buffer, 0, data.processId);
                  encodeContextObjectId2222(
                    buffer,
                    1,
                    data.initiatingObjectId.type,
                    data.initiatingObjectId.instance
                  );
                  encodeContextObjectId2222(
                    buffer,
                    2,
                    data.eventObjectId.type,
                    data.eventObjectId.instance
                  );
                  bacappEncodeContextTimestamp2222(buffer, 3, data.timeStamp);
                  encodeContextUnsigned2222(buffer, 4, data.notificationClass);
                  encodeContextUnsigned2222(buffer, 5, data.priority);
                  encodeContextEnumerated2222(buffer, 6, data.eventType);
                  if (data.messageText && data.messageText !== "") {
                    encodeContextCharacterString2222(buffer, 7, data.messageText);
                  }
                  encodeContextEnumerated2222(buffer, 8, data.notifyType);
                  switch (data.notifyType) {
                    case 0:
                    case 1:
                      encodeContextBoolean2222(buffer, 9, data.ackRequired);
                      encodeContextEnumerated2222(buffer, 10, data.fromState);
                      break;
                    default:
                      break;
                  }
                  encodeContextEnumerated2222(buffer, 11, data.toState);
                  switch (data.notifyType) {
                    case 0:
                    case 1:
                      encodeOpeningTag2222(buffer, 12);
                      switch (data.eventType) {
                        case 0:
                          encodeOpeningTag2222(buffer, 0);
                          encodeContextBitstring2222(
                            buffer,
                            0,
                            data.changeOfBitstringReferencedBitString
                          );
                          encodeContextBitstring2222(
                            buffer,
                            1,
                            data.changeOfBitstringStatusFlags
                          );
                          encodeClosingTag2222(buffer, 0);
                          break;
                        case 1:
                          encodeOpeningTag2222(buffer, 1);
                          encodeOpeningTag2222(buffer, 0);
                          bacappEncodePropertyState2222(buffer, data.changeOfStateNewState);
                          encodeClosingTag2222(buffer, 0);
                          encodeContextBitstring2222(
                            buffer,
                            1,
                            data.changeOfStateStatusFlags
                          );
                          encodeClosingTag2222(buffer, 1);
                          break;
                        case 2:
                          encodeOpeningTag2222(buffer, 2);
                          encodeOpeningTag2222(buffer, 0);
                          switch (data.changeOfValueTag) {
                            case 0:
                              encodeContextReal2222(
                                buffer,
                                1,
                                data.changeOfValueChangeValue
                              );
                              break;
                            case 1:
                              encodeContextBitstring2222(
                                buffer,
                                0,
                                data.changeOfValueChangedBits
                              );
                              break;
                            default:
                              throw new Error("NotImplemented");
                          }
                          encodeClosingTag2222(buffer, 0);
                          encodeContextBitstring2222(
                            buffer,
                            1,
                            data.changeOfValueStatusFlags
                          );
                          encodeClosingTag2222(buffer, 2);
                          break;
                        case 4:
                          encodeOpeningTag2222(buffer, 4);
                          encodeContextReal2222(buffer, 0, data.floatingLimitReferenceValue);
                          encodeContextBitstring2222(
                            buffer,
                            1,
                            data.floatingLimitStatusFlags
                          );
                          encodeContextReal2222(buffer, 2, data.floatingLimitSetPointValue);
                          encodeContextReal2222(buffer, 3, data.floatingLimitErrorLimit);
                          encodeClosingTag2222(buffer, 4);
                          break;
                        case 5:
                          encodeOpeningTag2222(buffer, 5);
                          encodeContextReal2222(buffer, 0, data.outOfRangeExceedingValue);
                          encodeContextBitstring2222(buffer, 1, data.outOfRangeStatusFlags);
                          encodeContextReal2222(buffer, 2, data.outOfRangeDeadband);
                          encodeContextReal2222(buffer, 3, data.outOfRangeExceededLimit);
                          encodeClosingTag2222(buffer, 5);
                          break;
                        case 8:
                          encodeOpeningTag2222(buffer, 8);
                          encodeContextEnumerated2222(
                            buffer,
                            0,
                            data.changeOfLifeSafetyNewState
                          );
                          encodeContextEnumerated2222(
                            buffer,
                            1,
                            data.changeOfLifeSafetyNewMode
                          );
                          encodeContextBitstring2222(
                            buffer,
                            2,
                            data.changeOfLifeSafetyStatusFlags
                          );
                          encodeContextEnumerated2222(
                            buffer,
                            3,
                            data.changeOfLifeSafetyOperationExpected
                          );
                          encodeClosingTag2222(buffer, 8);
                          break;
                        case 10:
                          encodeOpeningTag2222(buffer, 10);
                          bacappEncodeContextDeviceObjPropertyRef2222(
                            buffer,
                            0,
                            data.bufferReadyBufferProperty
                          );
                          encodeContextUnsigned2222(
                            buffer,
                            1,
                            data.bufferReadyPreviousNotification
                          );
                          encodeContextUnsigned2222(
                            buffer,
                            2,
                            data.bufferReadyCurrentNotification
                          );
                          encodeClosingTag2222(buffer, 10);
                          break;
                        case 11:
                          encodeOpeningTag2222(buffer, 11);
                          encodeContextUnsigned2222(
                            buffer,
                            0,
                            data.unsignedRangeExceedingValue
                          );
                          encodeContextBitstring2222(
                            buffer,
                            1,
                            data.unsignedRangeStatusFlags
                          );
                          encodeContextUnsigned2222(
                            buffer,
                            2,
                            data.unsignedRangeExceededLimit
                          );
                          encodeClosingTag2222(buffer, 11);
                          break;
                        case 9:
                        case 3:
                          throw new Error("NotImplemented");
                        default:
                          throw new Error("NotImplemented");
                      }
                      encodeClosingTag2222(buffer, 12);
                      break;
                    case 2:
                      throw new Error("NotImplemented");
                    default:
                      break;
                  }
                };
                var decode122222 = (buffer, offset) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let eventData = {};
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  eventData.processId = decodedValue.value;
                  if (!decodeIsContextTag2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  eventData.initiatingObjectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  if (!decodeIsContextTag2222(buffer, offset + len, 2)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  eventData.eventObjectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  if (!decodeIsContextTag2222(buffer, offset + len, 3)) {
                    return void 0;
                  }
                  len += 2;
                  decodedValue = decodeApplicationDate2222(buffer, offset + len);
                  len += decodedValue.len;
                  const date = decodedValue.value.value;
                  decodedValue = decodeApplicationTime2222(buffer, offset + len);
                  len += decodedValue.len;
                  const time = decodedValue.value.value;
                  eventData.timeStamp = new Date(
                    date.getFullYear(),
                    date.getMonth(),
                    date.getDate(),
                    time.getHours(),
                    time.getMinutes(),
                    time.getSeconds(),
                    time.getMilliseconds()
                  );
                  len += 2;
                  if (!decodeIsContextTag2222(buffer, offset + len, 4)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  eventData.notificationClass = decodedValue.value;
                  if (!decodeIsContextTag2222(buffer, offset + len, 5)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  eventData.priority = decodedValue.value;
                  if (eventData.priority > 255) {
                    return void 0;
                  }
                  if (!decodeIsContextTag2222(buffer, offset + len, 6)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  eventData.eventType = decodedValue.value;
                  if (decodeIsContextTag2222(buffer, offset + len, 7)) {
                    decodedValue = decodeContextCharacterString2222(
                      buffer,
                      offset + len,
                      2e4,
                      7
                    );
                    len += decodedValue.len;
                    eventData.messageText = decodedValue.value;
                  }
                  if (!decodeIsContextTag2222(buffer, offset + len, 8)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  eventData.notifyType = decodedValue.value;
                  switch (eventData.notifyType) {
                    case 0:
                    case 1:
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned2222(buffer, offset + len, 1);
                      len += decodedValue.len;
                      eventData.ackRequired = decodedValue.value > 0;
                      if (!decodeIsContextTag2222(buffer, offset + len, 10)) {
                        return void 0;
                      }
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeEnumerated2222(
                        buffer,
                        offset + len,
                        result.value
                      );
                      len += decodedValue.len;
                      eventData.fromState = decodedValue.value;
                      break;
                    default:
                      break;
                  }
                  if (!decodeIsContextTag2222(buffer, offset + len, 11)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  eventData.toState = decodedValue.value;
                  eventData.len = len;
                  return eventData;
                };
                var get_enrollment_summary_exports2222 = {};
                __export2222(get_enrollment_summary_exports2222, {
                  decode: () => decode132222,
                  decodeAcknowledge: () => decodeAcknowledge32222,
                  encode: () => encode132222,
                  encodeAcknowledge: () => encodeAcknowledge42222
                });
                var encode132222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
                  encodeContextEnumerated2222(buffer, 0, acknowledgmentFilter);
                  if (enrollmentFilter) {
                    encodeOpeningTag2222(buffer, 1);
                    encodeOpeningTag2222(buffer, 0);
                    encodeContextObjectId2222(
                      buffer,
                      0,
                      enrollmentFilter.objectId.type,
                      enrollmentFilter.objectId.instance
                    );
                    encodeClosingTag2222(buffer, 0);
                    encodeContextUnsigned2222(buffer, 1, enrollmentFilter.processId);
                    encodeClosingTag2222(buffer, 1);
                  }
                  if (eventStateFilter) {
                    encodeOpeningTag2222(buffer, 2);
                    encodeContextEnumerated2222(buffer, 0, eventStateFilter);
                    encodeClosingTag2222(buffer, 2);
                  }
                  if (eventTypeFilter) {
                    encodeOpeningTag2222(buffer, 3);
                    encodeContextEnumerated2222(buffer, 0, eventTypeFilter);
                    encodeClosingTag2222(buffer, 3);
                  }
                  if (priorityFilter) {
                    encodeOpeningTag2222(buffer, 4);
                    encodeContextUnsigned2222(buffer, 0, priorityFilter.min);
                    encodeContextUnsigned2222(buffer, 1, priorityFilter.max);
                    encodeClosingTag2222(buffer, 4);
                  }
                  if (notificationClassFilter) {
                    encodeOpeningTag2222(buffer, 5);
                    encodeContextUnsigned2222(buffer, 0, notificationClassFilter);
                    encodeClosingTag2222(buffer, 5);
                  }
                };
                var decode132222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let value = {};
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.acknowledgmentFilter = decodedValue.value;
                  if (decodeIsContextTag2222(buffer, offset + len, 1)) {
                    len++;
                    value.enrollmentFilter = {};
                    if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                      return void 0;
                    }
                    len++;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeObjectId2222(buffer, offset + len);
                    len += decodedValue.len;
                    value.enrollmentFilter.objectId = {
                      type: decodedValue.objectType,
                      instance: decodedValue.instance
                    };
                    len++;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.enrollmentFilter.processId = decodedValue.value;
                    len++;
                  }
                  if (decodeIsContextTag2222(buffer, offset + len, 2)) {
                    len++;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.eventStateFilter = decodedValue.value;
                    len++;
                  }
                  if (decodeIsContextTag2222(buffer, offset + len, 3)) {
                    len++;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.eventTypeFilter = decodedValue.value;
                    len++;
                  }
                  if (decodeIsContextTag2222(buffer, offset + len, 4)) {
                    len++;
                    value.priorityFilter = {};
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.priorityFilter.min = decodedValue.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.priorityFilter.max = decodedValue.value;
                    len++;
                  }
                  if (decodeIsContextTag2222(buffer, offset + len, 5)) {
                    len++;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.notificationClassFilter = decodedValue.value;
                    len++;
                  }
                  value.len = len;
                  return value;
                };
                var encodeAcknowledge42222 = (buffer, enrollmentSummaries) => {
                  enrollmentSummaries.forEach((enrollmentSummary) => {
                    encodeApplicationObjectId2222(
                      buffer,
                      enrollmentSummary.objectId.type,
                      enrollmentSummary.objectId.instance
                    );
                    encodeApplicationEnumerated2222(buffer, enrollmentSummary.eventType);
                    encodeApplicationEnumerated2222(buffer, enrollmentSummary.eventState);
                    encodeApplicationUnsigned2222(buffer, enrollmentSummary.priority);
                    encodeApplicationUnsigned2222(
                      buffer,
                      enrollmentSummary.notificationClass
                    );
                  });
                };
                var decodeAcknowledge32222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  const enrollmentSummaries = [];
                  while (apduLen - len > 0) {
                    const enrollmentSummary = {};
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 12) {
                      return void 0;
                    }
                    result = decodeObjectId2222(buffer, offset + len);
                    len += result.len;
                    enrollmentSummary.objectId = {
                      type: result.objectType,
                      instance: result.instance
                    };
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 9) {
                      return void 0;
                    }
                    result = decodeEnumerated2222(buffer, offset + len, result.value);
                    len += result.len;
                    enrollmentSummary.eventType = result.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 9) {
                      return void 0;
                    }
                    result = decodeEnumerated2222(buffer, offset + len, result.value);
                    len += result.len;
                    enrollmentSummary.eventState = result.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 2) {
                      return void 0;
                    }
                    result = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += result.len;
                    enrollmentSummary.priority = result.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 2) {
                      return void 0;
                    }
                    result = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += result.len;
                    enrollmentSummary.notificationClass = result.value;
                    enrollmentSummaries.push(enrollmentSummary);
                  }
                  return {
                    enrollmentSummaries,
                    len
                  };
                };
                var get_event_information_exports2222 = {};
                __export2222(get_event_information_exports2222, {
                  decode: () => decode142222,
                  decodeAcknowledge: () => decodeAcknowledge42222,
                  encode: () => encode142222,
                  encodeAcknowledge: () => encodeAcknowledge52222
                });
                var encode142222 = (buffer, lastReceivedObjectId) => {
                  encodeContextObjectId2222(
                    buffer,
                    0,
                    lastReceivedObjectId.type,
                    lastReceivedObjectId.instance
                  );
                };
                var decode142222 = (buffer, offset) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let value = {};
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  value.lastReceivedObjectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  value.len = len;
                  return value;
                };
                var encodeAcknowledge52222 = (buffer, events, moreEvents) => {
                  encodeOpeningTag2222(buffer, 0);
                  events.forEach((eventData) => {
                    encodeContextObjectId2222(
                      buffer,
                      0,
                      eventData.objectId.type,
                      eventData.objectId.instance
                    );
                    encodeContextEnumerated2222(buffer, 1, eventData.eventState);
                    encodeContextBitstring2222(buffer, 2, eventData.acknowledgedTransitions);
                    encodeOpeningTag2222(buffer, 3);
                    for (let i = 0; i < 3; i++) {
                      bacappEncodeTimestamp2222(buffer, eventData.eventTimeStamps[i]);
                    }
                    encodeClosingTag2222(buffer, 3);
                    encodeContextEnumerated2222(buffer, 4, eventData.notifyType);
                    encodeContextBitstring2222(buffer, 5, eventData.eventEnable);
                    encodeOpeningTag2222(buffer, 6);
                    for (let i = 0; i < 3; i++) {
                      encodeApplicationUnsigned2222(buffer, eventData.eventPriorities[i]);
                    }
                    encodeClosingTag2222(buffer, 6);
                  });
                  encodeClosingTag2222(buffer, 0);
                  encodeContextBoolean2222(buffer, 1, moreEvents);
                };
                var decodeAcknowledge42222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let value = {};
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  value.events = [];
                  while (apduLen - len > 3) {
                    let event = {};
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeObjectId2222(buffer, offset + len);
                    len += decodedValue.len;
                    event.objectId = {
                      type: decodedValue.objectType,
                      instance: decodedValue.instance
                    };
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    event.eventState = decodedValue.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeBitstring2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    event.acknowledgedTransitions = decodedValue.value;
                    if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 3)) {
                      return void 0;
                    }
                    len++;
                    event.eventTimeStamps = [];
                    for (let i = 0; i < 3; i++) {
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                      if (result.tagNumber === 0) {
                        decodedValue = decodeBacnetTime2222(
                          buffer,
                          offset + len,
                          result.value
                        );
                        len += decodedValue.len;
                        event.eventTimeStamps[i] = {
                          value: decodedValue.value,
                          type: 0
                          /* TIME */
                        };
                      } else if (result.tagNumber === 1) {
                        decodedValue = decodeUnsigned2222(
                          buffer,
                          offset + len,
                          result.value
                        );
                        len += decodedValue.len;
                        event.eventTimeStamps[i] = {
                          value: decodedValue.value,
                          type: 1
                          /* SEQUENCE_NUMBER */
                        };
                      } else if (result.tagNumber === 2) {
                        let date = decodeApplicationDate2222(
                          buffer,
                          offset + len
                        );
                        len += date.len;
                        date = date.value.value;
                        let time = decodeApplicationTime2222(
                          buffer,
                          offset + len
                        );
                        len += time.len;
                        time = time.value.value;
                        event.eventTimeStamps[i] = {
                          value: new Date(
                            date.getFullYear(),
                            date.getMonth(),
                            date.getDate(),
                            time.getHours(),
                            time.getMinutes(),
                            time.getSeconds(),
                            time.getMilliseconds()
                          ),
                          type: 2
                          /* DATETIME */
                        };
                        len++;
                      }
                    }
                    if (!decodeIsClosingTagNumber2222(buffer, offset + len, 3)) {
                      return void 0;
                    }
                    len++;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    event.notifyType = decodedValue.value;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeBitstring2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    event.eventEnable = decodedValue.value;
                    if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 6)) {
                      return void 0;
                    }
                    len++;
                    event.eventPriorities = [];
                    for (let i = 0; i < 3; i++) {
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      event.eventPriorities[i] = decodedValue.value;
                    }
                    if (!decodeIsClosingTagNumber2222(buffer, offset + len, 6)) {
                      return void 0;
                    }
                    len++;
                    value.events.push(event);
                  }
                  if (!decodeIsClosingTagNumber2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  value.moreEvents = buffer[offset + len] > 0;
                  len++;
                  value.len = len;
                  return value;
                };
                var i_am_exports2222 = {};
                __export2222(i_am_exports2222, {
                  decode: () => decode152222,
                  encode: () => encode152222
                });
                var encode152222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
                  encodeApplicationObjectId2222(buffer, 8, deviceId);
                  encodeApplicationUnsigned2222(buffer, maxApdu);
                  encodeApplicationEnumerated2222(buffer, segmentation);
                  encodeApplicationUnsigned2222(buffer, vendorId);
                };
                var decode152222 = (buffer, offset) => {
                  let result;
                  let apduLen = 0;
                  const orgOffset = offset;
                  result = decodeTagNumberAndValue2222(buffer, offset + apduLen);
                  apduLen += result.len;
                  if (result.tagNumber !== 12) {
                    return void 0;
                  }
                  result = decodeObjectId2222(buffer, offset + apduLen);
                  apduLen += result.len;
                  if (result.objectType !== 8) {
                    return void 0;
                  }
                  const deviceId = result.instance;
                  result = decodeTagNumberAndValue2222(buffer, offset + apduLen);
                  apduLen += result.len;
                  if (result.tagNumber !== 2) {
                    return void 0;
                  }
                  result = decodeUnsigned2222(buffer, offset + apduLen, result.value);
                  apduLen += result.len;
                  const maxApdu = result.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + apduLen);
                  apduLen += result.len;
                  if (result.tagNumber !== 9) {
                    return void 0;
                  }
                  result = decodeEnumerated2222(buffer, offset + apduLen, result.value);
                  apduLen += result.len;
                  if (result.value > 3) {
                    return void 0;
                  }
                  const segmentation = result.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + apduLen);
                  apduLen += result.len;
                  if (result.tagNumber !== 2) {
                    return void 0;
                  }
                  result = decodeUnsigned2222(buffer, offset + apduLen, result.value);
                  apduLen += result.len;
                  if (result.value > 65535) {
                    return void 0;
                  }
                  const vendorId = result.value;
                  return {
                    len: offset - orgOffset,
                    deviceId,
                    maxApdu,
                    segmentation,
                    vendorId
                  };
                };
                var i_have_exports2222 = {};
                __export2222(i_have_exports2222, {
                  decode: () => decode162222,
                  encode: () => encode162222
                });
                var encode162222 = (buffer, deviceId, objectId, objectName) => {
                  encodeApplicationObjectId2222(buffer, deviceId.type, deviceId.instance);
                  encodeApplicationObjectId2222(buffer, objectId.type, objectId.instance);
                  encodeApplicationCharacterString2222(buffer, objectName);
                };
                var decode162222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let value = {};
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  value.deviceId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  value.objectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeCharacterString2222(
                    buffer,
                    offset + len,
                    apduLen - (offset + len),
                    result.value
                  );
                  len += decodedValue.len;
                  value.objectName = decodedValue.value;
                  value.len = len;
                  return value;
                };
                var life_safety_operation_exports2222 = {};
                __export2222(life_safety_operation_exports2222, {
                  decode: () => decode172222,
                  encode: () => encode172222
                });
                var encode172222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
                  encodeContextUnsigned2222(buffer, 0, processId);
                  encodeContextCharacterString2222(buffer, 1, requestingSource);
                  encodeContextEnumerated2222(buffer, 2, operation);
                  encodeContextObjectId2222(
                    buffer,
                    3,
                    targetObjectId.type,
                    targetObjectId.instance
                  );
                };
                var decode172222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let value = {};
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.processId = decodedValue.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeCharacterString2222(
                    buffer,
                    offset + len,
                    apduLen - (offset + len),
                    result.value
                  );
                  len += decodedValue.len;
                  value.requestingSource = decodedValue.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.operation = decodedValue.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  value.targetObjectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  value.len = len;
                  return value;
                };
                var private_transfer_exports2222 = {};
                __export2222(private_transfer_exports2222, {
                  decode: () => decode182222,
                  encode: () => encode182222
                });
                var encode182222 = (buffer, vendorId, serviceNumber, data) => {
                  encodeContextUnsigned2222(buffer, 0, vendorId);
                  encodeContextUnsigned2222(buffer, 1, serviceNumber);
                  encodeOpeningTag2222(buffer, 2);
                  for (let i = 0; i < data.length; i++) {
                    buffer.buffer[buffer.offset++] = data[i];
                  }
                  encodeClosingTag2222(buffer, 2);
                };
                var decode182222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let value = {};
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.vendorId = decodedValue.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.serviceNumber = decodedValue.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  const size = apduLen - (offset + len + 1);
                  const data = [];
                  for (let i = 0; i < size; i++) {
                    data.push(buffer[offset + len++]);
                  }
                  value.data = data;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  value.len = len;
                  return value;
                };
                var read_property_exports2222 = {};
                __export2222(read_property_exports2222, {
                  decode: () => decode192222,
                  decodeAcknowledge: () => decodeAcknowledge52222,
                  encode: () => encode192222,
                  encodeAcknowledge: () => encodeAcknowledge62222
                });
                var encode192222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
                  if (objectType <= ASN1_MAX_OBJECT2222) {
                    encodeContextObjectId2222(buffer, 0, objectType, objectInstance);
                  }
                  if (propertyId <= ASN1_MAX_PROPERTY_ID2222) {
                    encodeContextEnumerated2222(buffer, 1, propertyId);
                  }
                  if (arrayIndex !== ASN1_ARRAY_ALL2222) {
                    encodeContextUnsigned2222(
                      buffer,
                      2,
                      arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL2222
                    );
                  }
                };
                var decode192222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  if (apduLen < 7) {
                    return void 0;
                  }
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  let objectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  let property = {};
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 1) {
                    return void 0;
                  }
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  property.id = decodedValue.value;
                  property.index = ASN1_ARRAY_ALL2222;
                  if (len < apduLen) {
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber === 2 && len < apduLen) {
                      decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      property.index = decodedValue.value;
                    } else {
                      return void 0;
                    }
                  }
                  if (len < apduLen) {
                    return void 0;
                  }
                  return {
                    len,
                    objectId,
                    property
                  };
                };
                var encodeAcknowledge62222 = (buffer, objectId, propertyId, arrayIndex, values) => {
                  encodeContextObjectId2222(buffer, 0, objectId.type, objectId.instance);
                  encodeContextEnumerated2222(buffer, 1, propertyId);
                  if (arrayIndex !== ASN1_ARRAY_ALL2222) {
                    encodeContextUnsigned2222(buffer, 2, arrayIndex);
                  }
                  encodeOpeningTag2222(buffer, 3);
                  values.forEach((value) => {
                    bacappEncodeApplicationData2222(buffer, value);
                  });
                  encodeClosingTag2222(buffer, 3);
                };
                var decodeAcknowledge52222 = (buffer, offset, apduLen) => {
                  let result;
                  let decodedValue;
                  let objectId = {};
                  let property = {};
                  if (!decodeIsContextTag2222(buffer, offset, 0)) {
                    return void 0;
                  }
                  let len = 1;
                  result = decodeObjectId2222(buffer, offset + len);
                  len += result.len;
                  objectId.type = result.objectType;
                  objectId.instance = result.instance;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 1) {
                    return void 0;
                  }
                  result = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += result.len;
                  property.id = result.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  if (result.tagNumber === 2) {
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    property.index = decodedValue.value;
                  } else {
                    property.index = ASN1_ARRAY_ALL2222;
                  }
                  const values = [];
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 3)) {
                    return void 0;
                  }
                  len++;
                  while (apduLen - len > 1) {
                    result = bacappDecodeApplicationData2222(
                      buffer,
                      offset + len,
                      apduLen + offset,
                      objectId.type,
                      property.id
                    );
                    if (!result) {
                      return void 0;
                    }
                    len += result.len;
                    delete result.len;
                    values.push(result);
                  }
                  if (!decodeIsClosingTagNumber2222(buffer, offset + len, 3)) {
                    return void 0;
                  }
                  len++;
                  return {
                    len,
                    objectId,
                    property,
                    values
                  };
                };
                var read_property_multiple_exports2222 = {};
                __export2222(read_property_multiple_exports2222, {
                  decode: () => decode202222,
                  decodeAcknowledge: () => decodeAcknowledge62222,
                  encode: () => encode202222,
                  encodeAcknowledge: () => encodeAcknowledge72222
                });
                var encode202222 = (buffer, properties) => {
                  properties.forEach((value) => {
                    encodeReadAccessSpecification2222(buffer, value);
                  });
                };
                var decode202222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  const values = [];
                  while (apduLen - len > 0) {
                    const decodedValue = decodeReadAccessSpecification2222(
                      buffer,
                      offset + len,
                      apduLen - len
                    );
                    if (!decodedValue) {
                      return void 0;
                    }
                    len += decodedValue.len;
                    values.push(decodedValue.value);
                  }
                  return {
                    len,
                    properties: values
                  };
                };
                var encodeAcknowledge72222 = (buffer, values) => {
                  values.forEach((value) => {
                    encodeReadAccessResult2222(buffer, value);
                  });
                };
                var decodeAcknowledge62222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  const values = [];
                  while (apduLen - len > 0) {
                    const result = decodeReadAccessResult2222(
                      buffer,
                      offset + len,
                      apduLen - len
                    );
                    if (!result || result === -1) {
                      return void 0;
                    }
                    len += result.len;
                    values.push(result.value);
                  }
                  return {
                    len,
                    values
                  };
                };
                var read_range_exports2222 = {};
                __export2222(read_range_exports2222, {
                  decode: () => decode212222,
                  decodeAcknowledge: () => decodeAcknowledge72222,
                  encode: () => encode212222,
                  encodeAcknowledge: () => encodeAcknowledge82222
                });
                var encode212222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
                  encodeContextObjectId2222(buffer, 0, objectId.type, objectId.instance);
                  encodeContextEnumerated2222(buffer, 1, propertyId);
                  if (arrayIndex !== ASN1_ARRAY_ALL2222) {
                    encodeContextUnsigned2222(buffer, 2, arrayIndex);
                  }
                  switch (requestType) {
                    case 0:
                      encodeOpeningTag2222(buffer, 3);
                      encodeApplicationUnsigned2222(buffer, position);
                      encodeApplicationSigned2222(buffer, count);
                      encodeClosingTag2222(buffer, 3);
                      break;
                    case 1:
                      encodeOpeningTag2222(buffer, 6);
                      encodeApplicationUnsigned2222(buffer, position);
                      encodeApplicationSigned2222(buffer, count);
                      encodeClosingTag2222(buffer, 6);
                      break;
                    case 2:
                      encodeOpeningTag2222(buffer, 7);
                      encodeApplicationDate2222(buffer, time);
                      encodeApplicationTime2222(buffer, time);
                      encodeApplicationSigned2222(buffer, count);
                      encodeClosingTag2222(buffer, 7);
                      break;
                    default:
                      break;
                  }
                };
                var decode212222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let requestType;
                  let position;
                  let time;
                  let count;
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  decodedValue = decodeObjectId2222(buffer, offset + len, 0);
                  len += decodedValue.len;
                  let objectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  let property = {};
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 1) {
                    return void 0;
                  }
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  property.id = decodedValue.value;
                  if (len < apduLen && decodeIsContextTag2222(buffer, offset + len, 2)) {
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    property.index = decodedValue.value;
                  } else {
                    property.index = ASN1_ARRAY_ALL2222;
                  }
                  if (len < apduLen) {
                    result = decodeTagNumber2222(buffer, offset + len);
                    len += result.len;
                    switch (result.tagNumber) {
                      case 3:
                        requestType = 0;
                        result = decodeTagNumberAndValue2222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeUnsigned2222(
                          buffer,
                          offset + len,
                          result.value
                        );
                        len += decodedValue.len;
                        position = decodedValue.value;
                        result = decodeTagNumberAndValue2222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeSigned2222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        count = decodedValue.value;
                        break;
                      case 6:
                        requestType = 1;
                        result = decodeTagNumberAndValue2222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeUnsigned2222(
                          buffer,
                          offset + len,
                          result.value
                        );
                        len += decodedValue.len;
                        position = decodedValue.value;
                        result = decodeTagNumberAndValue2222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeSigned2222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        count = decodedValue.value;
                        break;
                      case 7:
                        requestType = 2;
                        decodedValue = decodeApplicationDate2222(buffer, offset + len);
                        len += decodedValue.len;
                        const tmpDate = decodedValue.value.value;
                        decodedValue = decodeApplicationTime2222(buffer, offset + len);
                        len += decodedValue.len;
                        const tmpTime = decodedValue.value.value;
                        time = new Date(
                          tmpDate.getYear(),
                          tmpDate.getMonth(),
                          tmpDate.getDate(),
                          tmpTime.getHours(),
                          tmpTime.getMinutes(),
                          tmpTime.getSeconds(),
                          tmpTime.getMilliseconds()
                        );
                        result = decodeTagNumberAndValue2222(buffer, offset + len);
                        len += result.len;
                        decodedValue = decodeSigned2222(buffer, offset + len, result.value);
                        len += decodedValue.len;
                        count = decodedValue.value;
                        break;
                      default:
                        return void 0;
                    }
                    result = decodeTagNumber2222(buffer, offset + len);
                    len += result.len;
                  }
                  return {
                    len,
                    objectId,
                    property,
                    requestType,
                    position,
                    time,
                    count
                  };
                };
                var encodeAcknowledge82222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
                  encodeContextObjectId2222(buffer, 0, objectId.type, objectId.instance);
                  encodeContextEnumerated2222(buffer, 1, propertyId);
                  if (arrayIndex !== ASN1_ARRAY_ALL2222) {
                    encodeContextUnsigned2222(buffer, 2, arrayIndex);
                  }
                  encodeContextBitstring2222(buffer, 3, resultFlags);
                  encodeContextUnsigned2222(buffer, 4, itemCount);
                  encodeOpeningTag2222(buffer, 5);
                  if (itemCount !== 0) {
                    applicationData.copy(
                      buffer.buffer,
                      buffer.offset,
                      0,
                      applicationData.length
                    );
                    buffer.offset += applicationData.length;
                  }
                  encodeClosingTag2222(buffer, 5);
                  if (itemCount !== 0 && requestType && requestType !== 0) {
                    encodeContextUnsigned2222(buffer, 6, firstSequence);
                  }
                };
                var decodeAcknowledge72222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  const objectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  const property = { index: ASN1_ARRAY_ALL2222 };
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 1) {
                    return void 0;
                  }
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  property.id = decodedValue.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  if (result.tagNumber === 2 && len < apduLen) {
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    property.index = decodedValue.value;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeBitstring2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  const resultFlag = decodedValue.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  const itemCount = decodedValue.value;
                  if (!decodeIsOpeningTag2222(buffer, offset + len)) {
                    return void 0;
                  }
                  len++;
                  const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
                  return {
                    objectId,
                    property,
                    resultFlag,
                    itemCount,
                    rangeBuffer,
                    len
                  };
                };
                var register_foreign_device_exports2222 = {};
                __export2222(register_foreign_device_exports2222, {
                  decode: () => decode222222,
                  encode: () => encode222222
                });
                var encode222222 = (buffer, ttl, length = 2) => {
                  encodeUnsigned2222(buffer, ttl, length);
                };
                var decode222222 = (buffer, offset, length = 2) => {
                  let len = 0;
                  let result = decodeUnsigned2222(buffer, offset + len, length);
                  len += result.len;
                  return {
                    len,
                    ttl: result.value
                  };
                };
                var reinitialize_device_exports2222 = {};
                __export2222(reinitialize_device_exports2222, {
                  decode: () => decode232222,
                  encode: () => encode232222
                });
                var encode232222 = (buffer, state, password) => {
                  encodeContextEnumerated2222(buffer, 0, state);
                  if (password && password !== "") {
                    encodeContextCharacterString2222(buffer, 1, password);
                  }
                };
                var decode232222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let value = {};
                  let result;
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  let decodedValue = decodeEnumerated2222(
                    buffer,
                    offset + len,
                    result.value
                  );
                  value.state = decodedValue.value;
                  len += decodedValue.len;
                  if (len < apduLen) {
                    if (!decodeIsContextTag2222(buffer, offset + len, 1)) {
                      return void 0;
                    }
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeCharacterString2222(
                      buffer,
                      offset + len,
                      apduLen - (offset + len),
                      result.value
                    );
                    value.password = decodedValue.value;
                    len += decodedValue.len;
                  }
                  value.len = len;
                  return value;
                };
                var subscribe_cov_exports2222 = {};
                __export2222(subscribe_cov_exports2222, {
                  decode: () => decode242222,
                  encode: () => encode242222
                });
                var encode242222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
                  encodeContextUnsigned2222(buffer, 0, subscriberProcessId);
                  encodeContextObjectId2222(
                    buffer,
                    1,
                    monitoredObjectId.type,
                    monitoredObjectId.instance
                  );
                  if (!cancellationRequest) {
                    encodeContextBoolean2222(buffer, 2, issueConfirmedNotifications);
                    encodeContextUnsigned2222(buffer, 3, lifetime);
                  }
                };
                var decode242222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let value = {};
                  let result;
                  let decodedValue;
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.subscriberProcessId = decodedValue.value;
                  if (!decodeIsContextTag2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  value.monitoredObjectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  value.cancellationRequest = true;
                  if (len < apduLen) {
                    value.issueConfirmedNotifications = false;
                    if (decodeIsContextTag2222(buffer, offset + len, 2)) {
                      value.cancellationRequest = false;
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                      value.issueConfirmedNotifications = buffer[offset + len] > 0;
                      len++;
                    }
                    value.lifetime = 0;
                    if (decodeIsContextTag2222(buffer, offset + len, 3)) {
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                      decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      value.lifetime = decodedValue.value;
                    }
                  }
                  value.len = len;
                  return value;
                };
                var subscribe_property_exports2222 = {};
                __export2222(subscribe_property_exports2222, {
                  decode: () => decode252222,
                  encode: () => encode252222
                });
                var encode252222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
                  encodeContextUnsigned2222(buffer, 0, subscriberProcessId);
                  encodeContextObjectId2222(
                    buffer,
                    1,
                    monitoredObjectId.type,
                    monitoredObjectId.instance
                  );
                  if (!cancellationRequest) {
                    encodeContextBoolean2222(buffer, 2, issueConfirmedNotifications);
                    encodeContextUnsigned2222(buffer, 3, lifetime);
                  }
                  encodeOpeningTag2222(buffer, 4);
                  encodeContextEnumerated2222(buffer, 0, monitoredProperty.id);
                  if (monitoredProperty.index !== ASN1_ARRAY_ALL2222) {
                    encodeContextUnsigned2222(buffer, 1, monitoredProperty.index);
                  }
                  encodeClosingTag2222(buffer, 4);
                  if (covIncrementPresent) {
                    encodeContextReal2222(buffer, 5, covIncrement);
                  }
                };
                var decode252222 = (buffer, offset) => {
                  let len = 0;
                  let value = {};
                  let result;
                  let decodedValue;
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.subscriberProcessId = decodedValue.value;
                  if (!decodeIsContextTag2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  value.monitoredObjectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  value.cancellationRequest = true;
                  value.issueConfirmedNotifications = false;
                  if (decodeIsContextTag2222(buffer, offset + len, 2)) {
                    value.cancellationRequest = false;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    value.issueConfirmedNotifications = buffer[offset + len] > 0;
                    len++;
                  }
                  value.lifetime = 0;
                  if (decodeIsContextTag2222(buffer, offset + len, 3)) {
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.lifetime = decodedValue.value;
                  }
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 4)) {
                    return void 0;
                  }
                  len++;
                  value.monitoredProperty = {};
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.monitoredProperty.id = decodedValue.value;
                  value.monitoredProperty.index = ASN1_ARRAY_ALL2222;
                  if (decodeIsContextTag2222(buffer, offset + len, 1)) {
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.monitoredProperty.index = decodedValue.value;
                  }
                  if (!decodeIsClosingTagNumber2222(buffer, offset + len, 4)) {
                    return void 0;
                  }
                  len++;
                  value.covIncrement = 0;
                  if (decodeIsContextTag2222(buffer, offset + len, 5)) {
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeReal2222(buffer, offset + len);
                    len += decodedValue.len;
                    value.covIncrement = decodedValue.value;
                  }
                  value.len = len;
                  return value;
                };
                var time_sync_exports2222 = {};
                __export2222(time_sync_exports2222, {
                  decode: () => decode262222,
                  encode: () => encode262222
                });
                var encode262222 = (buffer, time) => {
                  encodeApplicationDate2222(buffer, time);
                  encodeApplicationTime2222(buffer, time);
                };
                var decode262222 = (buffer, offset, length) => {
                  let len = 0;
                  let result;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 10) {
                    return void 0;
                  }
                  const date = decodeDate2222(buffer, offset + len);
                  len += date.len;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 11) {
                    return void 0;
                  }
                  const time = decodeBacnetTime2222(buffer, offset + len);
                  len += time.len;
                  return {
                    len,
                    value: new Date(
                      date.value.getFullYear(),
                      date.value.getMonth(),
                      date.value.getDate(),
                      time.value.getHours(),
                      time.value.getMinutes(),
                      time.value.getSeconds(),
                      time.value.getMilliseconds()
                    )
                  };
                };
                var who_has_exports2222 = {};
                __export2222(who_has_exports2222, {
                  decode: () => decode272222,
                  encode: () => encode272222
                });
                var encode272222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
                  if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE2222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE2222) {
                    encodeContextUnsigned2222(buffer, 0, lowLimit);
                    encodeContextUnsigned2222(buffer, 1, highLimit);
                  }
                  if (objectName && objectName !== "") {
                    encodeContextCharacterString2222(buffer, 3, objectName);
                  } else {
                    encodeContextObjectId2222(buffer, 2, objectId.type, objectId.instance);
                  }
                };
                var decode272222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let value = {};
                  let decodedValue;
                  let result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber === 0) {
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    if (decodedValue.value <= ASN1_MAX_INSTANCE2222) {
                      value.lowLimit = decodedValue.value;
                    }
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                  }
                  if (result.tagNumber === 1) {
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    if (decodedValue.value <= ASN1_MAX_INSTANCE2222) {
                      value.highLimit = decodedValue.value;
                    }
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                  }
                  if (result.tagNumber === 2) {
                    decodedValue = decodeObjectId2222(buffer, offset + len);
                    len += decodedValue.len;
                    value.objectId = {
                      type: decodedValue.objectType,
                      instance: decodedValue.instance
                    };
                  }
                  if (result.tagNumber === 3) {
                    decodedValue = decodeCharacterString2222(
                      buffer,
                      offset + len,
                      apduLen - (offset + len),
                      result.value
                    );
                    len += decodedValue.len;
                    value.objectName = decodedValue.value;
                  }
                  value.len = len;
                  return value;
                };
                var who_is_exports2222 = {};
                __export2222(who_is_exports2222, {
                  decode: () => decode282222,
                  encode: () => encode282222
                });
                var encode282222 = (buffer, lowLimit, highLimit) => {
                  if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE2222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE2222) {
                    encodeContextUnsigned2222(buffer, 0, lowLimit);
                    encodeContextUnsigned2222(buffer, 1, highLimit);
                  }
                };
                var decode282222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let value = {};
                  if (apduLen <= 0) {
                    return {};
                  }
                  let result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 0) {
                    return void 0;
                  }
                  if (apduLen <= len) {
                    return void 0;
                  }
                  let decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  if (decodedValue.value <= ASN1_MAX_INSTANCE2222) {
                    value.lowLimit = decodedValue.value;
                  }
                  if (apduLen <= len) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 1) {
                    return void 0;
                  }
                  if (apduLen <= len) {
                    return void 0;
                  }
                  decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  if (decodedValue.value <= ASN1_MAX_INSTANCE2222) {
                    value.highLimit = decodedValue.value;
                  }
                  value.len = len;
                  return value;
                };
                var write_property_exports2222 = {};
                __export2222(write_property_exports2222, {
                  decode: () => decode292222,
                  encode: () => encode292222
                });
                var encode292222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
                  encodeContextObjectId2222(buffer, 0, objectType, objectInstance);
                  encodeContextEnumerated2222(buffer, 1, propertyId);
                  if (arrayIndex !== ASN1_ARRAY_ALL2222) {
                    encodeContextUnsigned2222(buffer, 2, arrayIndex);
                  }
                  encodeOpeningTag2222(buffer, 3);
                  values.forEach((value) => {
                    bacappEncodeApplicationData2222(buffer, value);
                  });
                  encodeClosingTag2222(buffer, 3);
                  if (priority !== ASN1_NO_PRIORITY2222) {
                    encodeContextUnsigned2222(buffer, 4, priority);
                  }
                };
                var decode292222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let value = {
                    property: {}
                  };
                  let decodedValue;
                  let result;
                  if (!decodeIsContextTag2222(buffer, offset + len, 0)) {
                    return void 0;
                  }
                  len++;
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  let objectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  len += decodedValue.len;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 1) {
                    return void 0;
                  }
                  decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.property.id = decodedValue.value;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  if (result.tagNumber === 2) {
                    len += result.len;
                    decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    value.property.index = decodedValue.value;
                  } else {
                    value.property.index = ASN1_ARRAY_ALL2222;
                  }
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 3)) {
                    return void 0;
                  }
                  len++;
                  const values = [];
                  while (apduLen - len > 1 && !decodeIsClosingTagNumber2222(buffer, offset + len, 3)) {
                    decodedValue = bacappDecodeApplicationData2222(
                      buffer,
                      offset + len,
                      apduLen + offset,
                      objectId.type,
                      value.property.id
                    );
                    if (!decodedValue) {
                      return void 0;
                    }
                    len += decodedValue.len;
                    delete decodedValue.len;
                    values.push(decodedValue);
                  }
                  value.value = values;
                  if (!decodeIsClosingTagNumber2222(buffer, offset + len, 3)) {
                    return void 0;
                  }
                  len++;
                  value.priority = ASN1_MAX_PRIORITY2222;
                  if (len < apduLen) {
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    if (result.tagNumber === 4) {
                      len += result.len;
                      decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                      len += decodedValue;
                      if (decodedValue.value >= ASN1_MIN_PRIORITY2222 && decodedValue.value <= ASN1_MAX_PRIORITY2222) {
                        value.priority = decodedValue.value;
                      } else {
                        return void 0;
                      }
                    }
                  }
                  return {
                    len,
                    objectId,
                    value
                  };
                };
                var write_property_multiple_exports2222 = {};
                __export2222(write_property_multiple_exports2222, {
                  decode: () => decode302222,
                  encode: () => encode302222,
                  encodeObject: () => encodeObject2222
                });
                var encode302222 = (buffer, objectId, values) => {
                  encodeContextObjectId2222(buffer, 0, objectId.type, objectId.instance);
                  encodeOpeningTag2222(buffer, 1);
                  values.forEach((pValue) => {
                    encodeContextEnumerated2222(buffer, 0, pValue.property.id);
                    if (pValue.property.index !== ASN1_ARRAY_ALL2222) {
                      encodeContextUnsigned2222(buffer, 1, pValue.property.index);
                    }
                    encodeOpeningTag2222(buffer, 2);
                    pValue.value.forEach((value) => {
                      bacappEncodeApplicationData2222(buffer, value);
                    });
                    encodeClosingTag2222(buffer, 2);
                    if (pValue.priority !== ASN1_NO_PRIORITY2222) {
                      encodeContextUnsigned2222(buffer, 3, pValue.priority);
                    }
                  });
                  encodeClosingTag2222(buffer, 1);
                };
                var decode302222 = (buffer, offset, apduLen) => {
                  let len = 0;
                  let result;
                  let decodedValue;
                  let objectId;
                  result = decodeTagNumberAndValue2222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 0 || apduLen <= len) {
                    return void 0;
                  }
                  apduLen -= len;
                  if (apduLen < 4) {
                    return void 0;
                  }
                  decodedValue = decodeObjectId2222(buffer, offset + len);
                  len += decodedValue.len;
                  objectId = {
                    type: decodedValue.objectType,
                    instance: decodedValue.instance
                  };
                  if (!decodeIsOpeningTagNumber2222(buffer, offset + len, 1)) {
                    return void 0;
                  }
                  len++;
                  const _values = [];
                  while (apduLen - len > 1) {
                    let newEntry = {};
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber !== 0) {
                      return void 0;
                    }
                    decodedValue = decodeEnumerated2222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    let propertyId = decodedValue.value;
                    let arrayIndex = ASN1_ARRAY_ALL2222;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber === 1) {
                      decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      arrayIndex = decodedValue.value;
                      result = decodeTagNumberAndValue2222(buffer, offset + len);
                      len += result.len;
                    }
                    newEntry.property = { id: propertyId, index: arrayIndex };
                    if (result.tagNumber !== 2 || !decodeIsOpeningTag2222(buffer, offset + len - 1)) {
                      return void 0;
                    }
                    const values = [];
                    while (len + offset <= buffer.length && !decodeIsClosingTag2222(buffer, offset + len)) {
                      let value = bacappDecodeApplicationData2222(
                        buffer,
                        offset + len,
                        apduLen + offset,
                        objectId.type,
                        propertyId
                      );
                      if (!value) {
                        return void 0;
                      }
                      len += value.len;
                      delete value.len;
                      values.push(value);
                    }
                    len++;
                    newEntry.value = values;
                    let priority = ASN1_NO_PRIORITY2222;
                    result = decodeTagNumberAndValue2222(buffer, offset + len);
                    len += result.len;
                    if (result.tagNumber === 3) {
                      decodedValue = decodeUnsigned2222(buffer, offset + len, result.value);
                      len += decodedValue.len;
                      priority = decodedValue.value;
                    } else {
                      len--;
                    }
                    newEntry.priority = priority;
                    _values.push(newEntry);
                    if (decodeIsClosingTagNumber2222(buffer, offset + len, 1)) {
                      len++;
                    }
                  }
                  if (decodeIsClosingTagNumber2222(buffer, offset + len, 1)) {
                    len++;
                  }
                  return {
                    len,
                    objectId,
                    values: _values
                  };
                };
                var encodeObject2222 = (buffer, values) => {
                  values.forEach((object) => {
                    encode302222(buffer, object.objectId, object.values);
                  });
                };
                var getDecodedType2222 = (buffer, offset) => {
                  return buffer[offset];
                };
                var encodeConfirmedServiceRequest2222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
                  buffer.buffer[buffer.offset++] = type;
                  buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
                  buffer.buffer[buffer.offset++] = invokeId;
                  if ((type & 8) > 0) {
                    buffer.buffer[buffer.offset++] = sequencenumber;
                    buffer.buffer[buffer.offset++] = proposedWindowSize;
                  }
                  buffer.buffer[buffer.offset++] = service;
                };
                var decodeConfirmedServiceRequest2222 = (buffer, offset) => {
                  const orgOffset = offset;
                  const type = buffer[offset++];
                  const maxSegments = buffer[offset] & 240;
                  const maxApdu = buffer[offset++] & 15;
                  const invokeId = buffer[offset++];
                  let sequencenumber = 0;
                  let proposedWindowNumber = 0;
                  if ((type & 8) > 0) {
                    sequencenumber = buffer[offset++];
                    proposedWindowNumber = buffer[offset++];
                  }
                  const service = buffer[offset++];
                  return {
                    len: offset - orgOffset,
                    type,
                    service,
                    maxSegments,
                    maxApdu,
                    invokeId,
                    sequencenumber,
                    proposedWindowNumber
                  };
                };
                var encodeUnconfirmedServiceRequest2222 = (buffer, type, service) => {
                  buffer.buffer[buffer.offset++] = type;
                  buffer.buffer[buffer.offset++] = service;
                };
                var decodeUnconfirmedServiceRequest2222 = (buffer, offset) => {
                  const orgOffset = offset;
                  const type = buffer[offset++];
                  const service = buffer[offset++];
                  return {
                    len: offset - orgOffset,
                    type,
                    service
                  };
                };
                var encodeSimpleAck2222 = (buffer, type, service, invokeId) => {
                  buffer.buffer[buffer.offset++] = type;
                  buffer.buffer[buffer.offset++] = invokeId;
                  buffer.buffer[buffer.offset++] = service;
                };
                var decodeSimpleAck2222 = (buffer, offset) => {
                  const orgOffset = offset;
                  const type = buffer[offset++];
                  const invokeId = buffer[offset++];
                  const service = buffer[offset++];
                  return {
                    len: offset - orgOffset,
                    type,
                    service,
                    invokeId
                  };
                };
                var encodeComplexAck2222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
                  let len = 3;
                  buffer.buffer[buffer.offset++] = type;
                  buffer.buffer[buffer.offset++] = invokeId;
                  if ((type & 8) > 0) {
                    buffer.buffer[buffer.offset++] = sequencenumber;
                    buffer.buffer[buffer.offset++] = proposedWindowNumber;
                    len += 2;
                  }
                  buffer.buffer[buffer.offset++] = service;
                  return len;
                };
                var decodeComplexAck2222 = (buffer, offset) => {
                  const orgOffset = offset;
                  const type = buffer[offset++];
                  const invokeId = buffer[offset++];
                  let sequencenumber = 0;
                  let proposedWindowNumber = 0;
                  if ((type & 8) > 0) {
                    sequencenumber = buffer[offset++];
                    proposedWindowNumber = buffer[offset++];
                  }
                  const service = buffer[offset++];
                  return {
                    len: offset - orgOffset,
                    type,
                    service,
                    invokeId,
                    sequencenumber,
                    proposedWindowNumber
                  };
                };
                var encodeSegmentAck2222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
                  buffer.buffer[buffer.offset++] = type;
                  buffer.buffer[buffer.offset++] = originalInvokeId;
                  buffer.buffer[buffer.offset++] = sequencenumber;
                  buffer.buffer[buffer.offset++] = actualWindowSize;
                };
                var decodeSegmentAck2222 = (buffer, offset) => {
                  const orgOffset = offset;
                  const type = buffer[offset++];
                  const originalInvokeId = buffer[offset++];
                  const sequencenumber = buffer[offset++];
                  const actualWindowSize = buffer[offset++];
                  return {
                    len: offset - orgOffset,
                    type,
                    originalInvokeId,
                    sequencenumber,
                    actualWindowSize
                  };
                };
                var encodeResult2222 = (buffer, resultCode) => {
                  encodeUnsigned2222(buffer, resultCode, 2);
                };
                var encodeError2222 = (buffer, type, service, invokeId) => {
                  buffer.buffer[buffer.offset++] = type;
                  buffer.buffer[buffer.offset++] = invokeId;
                  buffer.buffer[buffer.offset++] = service;
                };
                var decodeError2222 = (buffer, offset) => {
                  const orgOffset = offset;
                  const type = buffer[offset++];
                  const invokeId = buffer[offset++];
                  const service = buffer[offset++];
                  return {
                    len: offset - orgOffset,
                    type,
                    service,
                    invokeId
                  };
                };
                var decodeAbort2222 = (buffer, offset) => {
                  const orgOffset = offset;
                  const type = buffer[offset++];
                  const invokeId = buffer[offset++];
                  const reason = buffer[offset++];
                  return {
                    len: offset - orgOffset,
                    type,
                    invokeId,
                    reason
                  };
                };
                var DEFAULT_HOP_COUNT3222 = 255;
                var BACNET_PROTOCOL_VERSION2222 = 1;
                var BACNET_ADDRESS_TYPES2222 = {
                  NONE: 0,
                  IP: 1
                };
                var decodeTarget2222 = (buffer, offset) => {
                  let len = 0;
                  const target = {
                    type: BACNET_ADDRESS_TYPES2222.NONE,
                    net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
                  };
                  const adrLen = buffer[offset + len++];
                  if (adrLen > 0) {
                    target.adr = [];
                    for (let i = 0; i < adrLen; i++) {
                      target.adr.push(buffer[offset + len++]);
                    }
                  }
                  return {
                    target,
                    len
                  };
                };
                var encodeTarget2222 = (buffer, target) => {
                  buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
                  buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
                  if (target.net === 65535 || !target.adr) {
                    buffer.buffer[buffer.offset++] = 0;
                  } else {
                    buffer.buffer[buffer.offset++] = target.adr.length;
                    if (target.adr.length > 0) {
                      for (let i = 0; i < target.adr.length; i++) {
                        buffer.buffer[buffer.offset++] = target.adr[i];
                      }
                    }
                  }
                };
                var decode312222 = (buffer, offset) => {
                  let adrLen;
                  const orgOffset = offset;
                  offset++;
                  const funct = buffer[offset++];
                  let destination;
                  if (funct & 32) {
                    const tmpDestination = decodeTarget2222(buffer, offset);
                    offset += tmpDestination.len;
                    destination = tmpDestination.target;
                  }
                  let source;
                  if (funct & 8) {
                    const tmpSource = decodeTarget2222(buffer, offset);
                    offset += tmpSource.len;
                    source = tmpSource.target;
                  }
                  let hopCount = 0;
                  if (funct & 32) {
                    hopCount = buffer[offset++];
                  }
                  let networkMsgType = 0;
                  let vendorId = 0;
                  if (funct & 128) {
                    networkMsgType = buffer[offset++];
                    if (networkMsgType >= 128) {
                      vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                    } else if (networkMsgType === 0) {
                      offset += 2;
                    }
                  }
                  if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION2222) {
                    return void 0;
                  }
                  return {
                    len: offset - orgOffset,
                    funct,
                    destination,
                    source,
                    hopCount,
                    networkMsgType,
                    vendorId
                  };
                };
                var encode312222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
                  const hasDestination = destination && destination.net > 0;
                  const hasSource = source && source.net > 0 && source.net !== 65535;
                  buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION2222;
                  buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
                  if (hasDestination) {
                    encodeTarget2222(buffer, destination);
                  }
                  if (hasSource) {
                    encodeTarget2222(buffer, source);
                  }
                  if (hasDestination) {
                    buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT3222;
                  }
                  if ((funct & 128) > 0) {
                    buffer.buffer[buffer.offset++] = networkMsgType;
                    if (networkMsgType >= 128) {
                      buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                      buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                    }
                  }
                };
                var DEFAULT_BACNET_PORT22222 = 47808;
                var encode322222 = (buffer, func, msgLength, originatingIP) => {
                  buffer[0] = BVLL_TYPE_BACNET_IP2222;
                  buffer[1] = func;
                  buffer[2] = (msgLength & 65280) >> 8;
                  buffer[3] = (msgLength & 255) >> 0;
                  if (originatingIP) {
                    if (func !== 4) {
                      throw new Error(
                        "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                      );
                    }
                    const [ipstr, portstr] = originatingIP.split(":");
                    const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT22222;
                    const ip = ipstr.split(".");
                    buffer[4] = parseInt(ip[0], 10);
                    buffer[5] = parseInt(ip[1], 10);
                    buffer[6] = parseInt(ip[2], 10);
                    buffer[7] = parseInt(ip[3], 10);
                    buffer[8] = (port & 65280) >> 8;
                    buffer[9] = (port & 255) >> 0;
                    return 6 + BVLC_HEADER_LENGTH3222;
                  } else {
                    if (func === 4) {
                      throw new Error(
                        "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                      );
                    }
                  }
                  return BVLC_HEADER_LENGTH3222;
                };
                var decode322222 = (buffer, _offset) => {
                  let len;
                  const func = buffer[1];
                  const msgLength = buffer[2] << 8 | buffer[3] << 0;
                  if (buffer[0] !== BVLL_TYPE_BACNET_IP2222 || buffer.length !== msgLength) {
                    return void 0;
                  }
                  let originatingIP = null;
                  switch (func) {
                    case 0:
                    case 10:
                    case 11:
                    case 9:
                    case 5:
                    case 6:
                    case 8:
                    case 2:
                    case 1:
                    case 3:
                    case 7:
                      len = 4;
                      break;
                    case 4:
                      const port = buffer[8] << 8 | buffer[9];
                      originatingIP = buffer.slice(4, 8).join(".");
                      if (port !== DEFAULT_BACNET_PORT22222) {
                        originatingIP += ":" + port;
                      }
                      len = 10;
                      break;
                    case 12:
                      return void 0;
                    default:
                      return void 0;
                  }
                  return {
                    len,
                    func,
                    msgLength,
                    // Originating IP is set to the IP address of the node that originally
                    // sent the packet, when it has been forwarded to us by a BBMD (since the
                    // BBMD's IP address will be in the sender field.
                    originatingIP
                  };
                };
                var EventEmitter22222 = import_events22222.default.EventEmitter;
                var debug32222 = (0, import_debug32222.default)("bacnet:client:debug");
                var trace22222 = (0, import_debug32222.default)("bacnet:client:trace");
                var ALL_INTERFACES2222 = "0.0.0.0";
                var LOCALHOST_INTERFACES_IPV42222 = "127.0.0.1";
                var BROADCAST_ADDRESS2222 = "255.255.255.255";
                var DEFAULT_HOP_COUNT22222 = 255;
                var BVLC_HEADER_LENGTH22222 = 4;
                var BVLC_FWD_HEADER_LENGTH2222 = 10;
                var beU2222 = UnconfirmedServiceChoice2222;
                var unconfirmedServiceMap2222 = {
                  [beU2222.I_AM]: "iAm",
                  [beU2222.WHO_IS]: "whoIs",
                  [beU2222.WHO_HAS]: "whoHas",
                  [beU2222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
                  [beU2222.TIME_SYNCHRONIZATION]: "timeSync",
                  [beU2222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
                  [beU2222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                  [beU2222.I_HAVE]: "iHave",
                  [beU2222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                };
                var beC2222 = ConfirmedServiceChoice2222;
                var confirmedServiceMap2222 = {
                  [beC2222.READ_PROPERTY]: "readProperty",
                  [beC2222.WRITE_PROPERTY]: "writeProperty",
                  [beC2222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
                  [beC2222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
                  [beC2222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
                  [beC2222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
                  [beC2222.ATOMIC_READ_FILE]: "atomicReadFile",
                  [beC2222.SUBSCRIBE_COV]: "subscribeCov",
                  [beC2222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
                  [beC2222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
                  [beC2222.REINITIALIZE_DEVICE]: "reinitializeDevice",
                  [beC2222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
                  [beC2222.READ_RANGE]: "readRange",
                  [beC2222.CREATE_OBJECT]: "createObject",
                  [beC2222.DELETE_OBJECT]: "deleteObject",
                  [beC2222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
                  [beC2222.GET_ALARM_SUMMARY]: "getAlarmSummary",
                  [beC2222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
                  [beC2222.GET_EVENT_INFORMATION]: "getEventInformation",
                  [beC2222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
                  [beC2222.ADD_LIST_ELEMENT]: "addListElement",
                  [beC2222.REMOVE_LIST_ELEMENT]: "removeListElement",
                  [beC2222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
                };
                var errorReasonEnums2222 = {
                  BacnetAbort: RejectReason2222
                };
                var BacnetError2222 = class extends Error {
                  constructor(message, bacnetErrorClass, bacnetErrorCode) {
                    super(message);
                    this.bacnetErrorClass = bacnetErrorClass;
                    this.bacnetErrorCode = bacnetErrorCode;
                  }
                };
                function bacnetErrorToString2222(err) {
                  var _a;
                  const isError = err instanceof Error || err instanceof BacnetError2222;
                  if (!isError)
                    return;
                  const message = err.message;
                  const reasonClass = message == null ? void 0 : message.split(" - ")[0];
                  const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
                  if (!errorReasonEnums2222[reasonClass])
                    return;
                  const reasonString = errorReasonEnums2222[reasonClass][reason];
                  return reasonClass + ": " + reasonString;
                }
                var Client2222 = class extends EventEmitter22222 {
                  /**
                   *
                   * @param options
                   */
                  constructor(options) {
                    super();
                    options = options || {};
                    this._invokeCounter = 1;
                    this._invokeStore = {};
                    this._lastSequenceNumber = 0;
                    this._segmentStore = [];
                    this._settings = {
                      port: options.port || 47808,
                      interface: options.interface || ALL_INTERFACES2222,
                      transport: options.transport,
                      broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS2222,
                      apduTimeout: options.apduTimeout || 3e3
                    };
                    options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                    this._transport = this._settings.transport || new Transport2222({
                      port: this._settings.port,
                      interface: this._settings.interface,
                      broadcastAddress: this._settings.broadcastAddress,
                      reuseAddr: options.reuseAddr
                    });
                    this._transport.on("message", this._receiveData.bind(this));
                    this._transport.on("error", this._receiveError.bind(this));
                    this._transport.on("listening", () => this.emit("listening"));
                    this._transport.open();
                  }
                  /**
                   *
                   * @returns {number}
                   * @private
                   */
                  _getInvokeId() {
                    const id = this._invokeCounter++;
                    if (id >= 256)
                      this._invokeCounter = 1;
                    return id - 1;
                  }
                  /**
                   *
                   * @param id
                   * @param err
                   * @param result
                   * @returns {*}
                   * @private
                   */
                  _invokeCallback(id, err, result) {
                    const callback = this._invokeStore[id];
                    if (callback) {
                      return void callback(err, result);
                    }
                    debug32222("InvokeId", id, "not found -> drop package");
                  }
                  /**
                   *
                   * @param id
                   * @param callback
                   * @private
                   */
                  _addCallback(id, callback) {
                    const timeout = setTimeout(() => {
                      delete this._invokeStore[id];
                      callback(new Error("ERR_TIMEOUT"));
                    }, this._settings.apduTimeout);
                    this._invokeStore[id] = (err, data) => {
                      clearTimeout(timeout);
                      delete this._invokeStore[id];
                      callback(err, data);
                    };
                  }
                  /**
                   *
                   * @param isForwarded
                   * @returns {{offset: (number), buffer: *}}
                   * @private
                   */
                  _getBuffer(isForwarded) {
                    return Object.assign(
                      {},
                      {
                        buffer: Buffer.alloc(this._transport.getMaxPayload()),
                        offset: isForwarded ? BVLC_FWD_HEADER_LENGTH2222 : BVLC_HEADER_LENGTH22222
                      }
                    );
                  }
                  /**
                   *
                   * @param invokeId
                   * @param buffer
                   * @param offset
                   * @param length
                   * @returns {*}
                   * @private
                   */
                  _processError(invokeId, buffer, offset, length) {
                    const result = error_exports2222.decode(buffer, offset);
                    trace22222("Received error:", result);
                    if (!result) {
                      return debug32222("Couldn`t decode Error");
                    }
                    const err = new BacnetError2222(error_exports2222.buildMessage(result));
                    err.bacnetErrorClass = result.class;
                    err.bacnetErrorCode = result.code;
                    this._invokeCallback(invokeId, err);
                  }
                  /**
                   *
                   * @param invokeId
                   * @param reason
                   * @private
                   */
                  _processAbort(invokeId, reason) {
                    const err = new BacnetError2222("BacnetAbort - Reason:" + reason);
                    err.bacnetAbortReason = reason;
                    err.bacnetErrorClass = AbortReason2222;
                    this._invokeCallback(invokeId, err);
                  }
                  /**
                   *
                   * @param receiver
                   * @param negative
                   * @param server
                   * @param originalInvokeId
                   * @param sequencenumber
                   * @param actualWindowSize
                   * @private
                   */
                  _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                    const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                    encode312222(
                      buffer,
                      0,
                      receiver,
                      null,
                      DEFAULT_HOP_COUNT22222,
                      0,
                      0
                    );
                    encodeSegmentAck2222(
                      buffer,
                      64 | (negative ? 2 : 0) | (server ? 1 : 0),
                      originalInvokeId,
                      sequencenumber,
                      actualWindowSize
                    );
                    this.sendBvlc(receiver, buffer);
                  }
                  /**
                   *
                   * @param msg
                   * @param first
                   * @param moreFollows
                   * @param buffer
                   * @param offset
                   * @param length
                   * @private
                   */
                  _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                    if (first) {
                      this._segmentStore = [];
                      msg.type &= ~8;
                      let apduHeaderLen = 3;
                      if ((msg.type & PDU_TYPE_MASK2222) === 0) {
                        apduHeaderLen = 4;
                      }
                      const apdubuffer = this._getBuffer();
                      apdubuffer.offset = 0;
                      buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                      if ((msg.type & PDU_TYPE_MASK2222) === 0) {
                        encodeConfirmedServiceRequest2222(
                          apdubuffer,
                          msg.type,
                          msg.service,
                          msg.maxSegments,
                          msg.maxApdu,
                          msg.invokeId,
                          0,
                          0
                        );
                      } else {
                        encodeComplexAck2222(
                          apdubuffer,
                          msg.type,
                          msg.service,
                          msg.invokeId,
                          0,
                          0
                        );
                      }
                      this._segmentStore.push(
                        //@ts-ignore
                        apdubuffer.buffer.slice(0, length + apduHeaderLen)
                      );
                    } else {
                      this._segmentStore.push(buffer.slice(offset, offset + length));
                    }
                    if (!moreFollows) {
                      const apduBuffer = Buffer.concat(this._segmentStore);
                      this._segmentStore = [];
                      msg.type &= ~8;
                      this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                    }
                  }
                  /**
                   *
                   * @param msg
                   * @param server
                   * @param buffer
                   * @param offset
                   * @param length
                   * @private
                   */
                  _processSegment(msg, server, buffer, offset, length) {
                    let first = false;
                    if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                      first = true;
                    } else {
                      if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                        return this._segmentAckResponse(
                          msg.header.address,
                          true,
                          server,
                          msg.invokeId,
                          this._lastSequenceNumber,
                          msg.proposedWindowNumber
                        );
                      }
                    }
                    this._lastSequenceNumber = msg.sequencenumber;
                    const moreFollows = msg.type & 4;
                    if (!moreFollows) {
                      this._lastSequenceNumber = 0;
                    }
                    if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                      this._segmentAckResponse(
                        msg.header.address,
                        false,
                        server,
                        msg.invokeId,
                        msg.sequencenumber,
                        msg.proposedWindowNumber
                      );
                    }
                    this._performDefaultSegmentHandling(
                      msg,
                      first,
                      moreFollows,
                      buffer,
                      offset,
                      length
                    );
                  }
                  /**
                   *
                   * @param serviceMap
                   * @param content
                   * @param buffer
                   * @param offset
                   * @param length
                   * @returns {*}
                   * @private
                   */
                  _processServiceRequest(serviceMap, content, buffer, offset, length) {
                    let result;
                    const sender = content.header.sender;
                    if (sender.address === LOCALHOST_INTERFACES_IPV42222) {
                      debug32222("Received and skipped localhost service request:", content.service);
                      return;
                    }
                    const name = serviceMap[content.service];
                    if (!name) {
                      debug32222("Received unsupported service request:", content.service);
                      return;
                    }
                    const id = content.invokeId ? "@" + content.invokeId : "";
                    trace22222(`Received service request${id}:`, name);
                    const serviceHandler = services_exports2222[name];
                    if (serviceHandler) {
                      try {
                        content.payload = serviceHandler.decode(buffer, offset, length);
                        trace22222(`Handled service request${id}:`, name, JSON.stringify(content));
                      } catch (e) {
                        debug32222("Exception thrown when processing message:", e);
                        debug32222("Original message was", name + ":", content);
                        return;
                      }
                      if (!content.payload) {
                        return debug32222("Received invalid", name, "message");
                      }
                    } else {
                      debug32222("No serviceHandler defined for:", name);
                    }
                    if (this.listenerCount(name)) {
                      trace22222("listener count by name emits " + name + " with content");
                      this.emit(name, content);
                    } else {
                      if (this.listenerCount("unhandledEvent")) {
                        trace22222("unhandled event emiting with content");
                        this.emit("unhandledEvent", content);
                      } else {
                        trace22222(
                          "no unhandled event handler with header: " + JSON.stringify(content.header)
                        );
                        if (content.header.expectingReply) {
                          debug32222("Replying with error for unhandled service:", name);
                          content.header.sender.forwardedFrom = null;
                          this.errorResponse(
                            content.header.sender,
                            content.service,
                            content.invokeId,
                            5,
                            67
                            /* REJECT_UNRECOGNIZED_SERVICE */
                          );
                        }
                      }
                    }
                  }
                  /**
                   *
                   * @param buffer
                   * @param offset
                   * @param length
                   * @param header
                   * @private
                   */
                  _handlePdu(buffer, offset, length, header) {
                    let msg;
                    trace22222("handlePdu Header: ", header);
                    switch (header.apduType & PDU_TYPE_MASK2222) {
                      case 16:
                        msg = decodeUnconfirmedServiceRequest2222(buffer, offset);
                        msg.header = header;
                        msg.header.confirmedService = false;
                        this._processServiceRequest(
                          unconfirmedServiceMap2222,
                          msg,
                          buffer,
                          offset + msg.len,
                          length - msg.len
                        );
                        break;
                      case 32:
                        msg = decodeSimpleAck2222(buffer, offset);
                        offset += msg.len;
                        length -= msg.len;
                        this._invokeCallback(msg.invokeId, null, {
                          msg,
                          buffer,
                          offset: offset + msg.len,
                          length: length - msg.len
                        });
                        break;
                      case 48:
                        msg = decodeComplexAck2222(buffer, offset);
                        msg.header = header;
                        if ((header.apduType & 8) === 0) {
                          this._invokeCallback(msg.invokeId, null, {
                            msg,
                            buffer,
                            offset: offset + msg.len,
                            length: length - msg.len
                          });
                        } else {
                          this._processSegment(
                            msg,
                            true,
                            buffer,
                            offset + msg.len,
                            length - msg.len
                          );
                        }
                        break;
                      case 64:
                        msg = decodeSegmentAck2222(buffer, offset);
                        msg.header = header;
                        this._processSegment(
                          msg,
                          true,
                          buffer,
                          offset + msg.len,
                          length - msg.len
                        );
                        break;
                      case 80:
                        msg = decodeError2222(buffer, offset);
                        this._processError(
                          msg.invokeId,
                          buffer,
                          offset + msg.len,
                          length - msg.len
                        );
                        break;
                      case 96:
                      case 112:
                        msg = decodeAbort2222(buffer, offset);
                        this._processAbort(msg.invokeId, msg.reason);
                        break;
                      case 0:
                        msg = decodeConfirmedServiceRequest2222(buffer, offset);
                        msg.header = header;
                        msg.header.confirmedService = true;
                        if ((header.apduType & 8) === 0) {
                          this._processServiceRequest(
                            confirmedServiceMap2222,
                            msg,
                            buffer,
                            offset + msg.len,
                            length - msg.len
                          );
                        } else {
                          this._processSegment(
                            msg,
                            true,
                            buffer,
                            offset + msg.len,
                            length - msg.len
                          );
                        }
                        break;
                      default:
                        debug32222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                        break;
                    }
                  }
                  /**
                   *
                   * @param buffer
                   * @param offset
                   * @param msgLength
                   * @param header
                   * @returns {*}
                   * @private
                   */
                  _handleNpdu(buffer, offset, msgLength, header) {
                    if (msgLength <= 0) {
                      return trace22222("No NPDU data -> Drop package");
                    }
                    const result = decode312222(buffer, offset);
                    if (!result) {
                      return trace22222("Received invalid NPDU header -> Drop package");
                    }
                    if (result.funct & 128) {
                      return trace22222("Received network layer message -> Drop package");
                    }
                    offset += result.len;
                    msgLength -= result.len;
                    if (msgLength <= 0) {
                      return trace22222("No APDU data -> Drop package");
                    }
                    header.apduType = getDecodedType2222(buffer, offset);
                    header.expectingReply = !!(result.funct & 4);
                    this._handlePdu(buffer, offset, msgLength, header);
                  }
                  /**
                   *
                   * @param buffer
                   * @param remoteAddress
                   * @returns {*}
                   * @private
                   */
                  _receiveData(buffer, remoteAddress) {
                    if (buffer.length < BVLC_HEADER_LENGTH3222) {
                      return trace22222("Received invalid data -> Drop package");
                    }
                    const result = decode322222(buffer, 0);
                    if (!result) {
                      return trace22222("Received invalid BVLC header -> Drop package");
                    }
                    let header = {
                      // Which function the packet came in on, so later code can distinguish
                      // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                      func: result.func,
                      sender: {
                        // Address of the host we are directly connected to. String, IP:port.
                        address: remoteAddress,
                        // If the host is a BBMD passing messages along to another node, this
                        // is the address of the distant BACnet node.  String, IP:port.
                        // Typically we won't have network connectivity to this address, but
                        // we have to include it in replies so the host we are connect to knows
                        // where to forward the messages.
                        forwardedFrom: null
                      }
                    };
                    switch (result.func) {
                      case 10:
                      case 11:
                        this._handleNpdu(
                          buffer,
                          result.len,
                          buffer.length - result.len,
                          header
                        );
                        break;
                      case 4:
                        header.sender.forwardedFrom = result.originatingIP;
                        this._handleNpdu(
                          buffer,
                          result.len,
                          buffer.length - result.len,
                          header
                        );
                        break;
                      case 5:
                        let decodeResult = register_foreign_device_exports2222.decode(
                          buffer,
                          result.len,
                          buffer.length - result.len
                        );
                        if (!decodeResult) {
                          return trace22222("Received invalid registerForeignDevice message");
                        }
                        this.emit("registerForeignDevice", {
                          header,
                          payload: decodeResult
                        });
                        break;
                      case 9:
                        this._handleNpdu(
                          buffer,
                          result.len,
                          buffer.length - result.len,
                          header
                        );
                        break;
                      default:
                        debug32222(
                          "Received unknown BVLC function " + result.func + " -> Drop package"
                        );
                        break;
                    }
                  }
                  /**
                   * @event bacnet.error
                   * @param {error} err - The error object thrown by the underlying transport layer.
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * client.on('error', (err) => {
                   *   console.log('Error occurred: ', err);
                   *   client.close();
                   * });
                   */
                  _receiveError(err) {
                    this.emit("error", err);
                  }
                  /**
                   * The whoIs command discovers all BACNET devices in a network.
                   * @function bacnet.whoIs
                   * @param {string} receiver - IP address of the target device.
                   * @param {object=} options
                   * @param {number=} options.lowLimit - Minimal device instance number to search for.
                   * @param {number=} options.highLimit - Maximal device instance number to search for.
                   * @fires bacnet.iAm
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * client.whoIs();
                   */
                  whoIs(receiver, options) {
                    if (!options) {
                      if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                        options = receiver;
                        receiver = void 0;
                      }
                    }
                    options = options || {};
                    const settings = {
                      lowLimit: options.lowLimit,
                      highLimit: options.highLimit
                    };
                    const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                    encode312222(
                      buffer,
                      0,
                      //@ts-ignore
                      receiver,
                      null,
                      DEFAULT_HOP_COUNT22222,
                      0,
                      0
                    );
                    encodeUnconfirmedServiceRequest2222(
                      buffer,
                      16,
                      8
                      /* WHO_IS */
                    );
                    who_is_exports2222.encode(buffer, settings.lowLimit, settings.highLimit);
                    this.sendBvlc(receiver, buffer);
                  }
                  /**
                   * The timeSync command sets the time of a target device.
                   * @function bacnet.timeSync
                   * @param {string} receiver - IP address of the target device.
                   * @param {date} dateTime - The date and time to set on the target device.
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * client.timeSync('192.168.1.43', new Date());
                   */
                  timeSync(receiver, dateTime) {
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(buffer, 0, receiver);
                    encodeUnconfirmedServiceRequest2222(
                      buffer,
                      16,
                      6
                      /* TIME_SYNCHRONIZATION */
                    );
                    time_sync_exports2222.encode(buffer, dateTime);
                    this.sendBvlc(receiver, buffer);
                  }
                  /**
                   * The timeSyncUTC command sets the UTC time of a target device.
                   * @function bacnet.timeSyncUTC
                   * @param {string} receiver - IP address of the target device.
                   * @param {date} dateTime - The date and time to set on the target device.
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * client.timeSyncUTC('192.168.1.43', new Date());
                   */
                  timeSyncUTC(receiver, dateTime) {
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(buffer, 0, receiver);
                    encodeUnconfirmedServiceRequest2222(
                      buffer,
                      16,
                      9
                      /* UTC_TIME_SYNCHRONIZATION */
                    );
                    time_sync_exports2222.encode(buffer, dateTime);
                    this.sendBvlc(receiver, buffer);
                  }
                  /**
                   * The readProperty command reads a single property of an object from a device.
                   * @function bacnet.readProperty
                   * @param {string} receiver - IP address of the target device.
                   * @param {object} objectId - The BACNET object ID to read.
                   * @param {number} objectId.type - The BACNET object type to read.
                   * @param {number} objectId.instance - The BACNET object instance to read.
                   * @param {number} propertyId - The BACNET property id in the specified object to read.
                   * @param {object=} options
                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                   * @param {number=} options.arrayIndex - The array index of the property to be read.
                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
                   *   console.log('value: ', value);
                   * });
                   */
                  readProperty(receiver, objectId, propertyId, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId(),
                      arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL2222
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      //@ts-ignore
                      receiver,
                      null,
                      DEFAULT_HOP_COUNT22222,
                      0,
                      0
                    );
                    const type = 0 | //@ts-ignore
                    (settings.maxSegments !== 0 ? 2 : 0);
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      type,
                      12,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    read_property_exports2222.encode(
                      buffer,
                      objectId.type,
                      objectId.instance,
                      propertyId,
                      settings.arrayIndex
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      const result = read_property_exports2222.decodeAcknowledge(
                        data.buffer,
                        data.offset,
                        data.length
                      );
                      if (!result) {
                        return void next(new Error("INVALID_DECODING"));
                      }
                      next(null, result);
                    });
                  }
                  /**
                   * The writeProperty command writes a single property of an object to a device.
                   * @function bacnet.writeProperty
                   * @param {string} receiver - IP address of the target device.
                   * @param {object} objectId - The BACNET object ID to write.
                   * @param {number} objectId.type - The BACNET object type to write.
                   * @param {number} objectId.instance - The BACNET object instance to write.
                   * @param {number} propertyId - The BACNET property id in the specified object to write.
                   * @param {object[]} values - A list of values to be written to the specified property.
                   * @param {ApplicationTag} values.type - The data-type of the value to be written.
                   * @param {number} values.value - The actual value to be written.
                   * @param {object=} options
                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                   * @param {number=} options.arrayIndex - The array index of the property to be read.
                   * @param {number=} options.priority - The priority of the value to be written.
                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
                   *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
                   * ], (err, value) => {
                   *   console.log('value: ', value);
                   * });
                   */
                  writeProperty(receiver, objectId, propertyId, values, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId(),
                      arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL2222,
                      priority: options.priority || ASN1_NO_PRIORITY2222
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      //@ts-ignore Todo somehow types do not match at all
                      receiver,
                      null,
                      DEFAULT_HOP_COUNT22222,
                      0,
                      0
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      15,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    write_property_exports2222.encode(
                      buffer,
                      objectId.type,
                      objectId.instance,
                      propertyId,
                      settings.arrayIndex,
                      settings.priority,
                      values
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      next(err);
                    });
                  }
                  /**
                   * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
                   * @function bacnet.readPropertyMultiple
                   * @param {string} receiver - IP address of the target device.
                   * @param {object[]} propertiesArray - List of object and property specifications to be read.
                   * @param {object} propertiesArray.objectId - Specifies which object to read.
                   * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
                   * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
                   * @param {object[]} propertiesArray.properties - List of properties to be read.
                   * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
                   * @param {object=} options
                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * const requestArray = [
                   *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
                   * ];
                   * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
                   *   console.log('value: ', value);
                   * });
                   */
                  readPropertyMultiple(receiver, propertiesArray, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                    const buffer = this._getBuffer(!!isForwarded);
                    encode312222(
                      buffer,
                      0 | 4,
                      //@ts-ignore Todo somehow types do not match at all
                      receiver,
                      null,
                      DEFAULT_HOP_COUNT22222,
                      0,
                      0
                    );
                    const type = 0 | //@ts-ignore
                    (settings.maxSegments !== 0 ? 2 : 0);
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      type,
                      14,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    read_property_multiple_exports2222.encode(buffer, propertiesArray);
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return next(err);
                      }
                      const result = read_property_multiple_exports2222.decodeAcknowledge(
                        data.buffer,
                        data.offset,
                        data.length
                      );
                      if (!result) {
                        return next(new Error("INVALID_DECODING"));
                      }
                      next(null, result);
                    });
                  }
                  /**
                   * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
                   * @function bacnet.writePropertyMultiple
                   * @param {string} receiver - IP address of the target device.
                   * @param {object[]} values - List of object and property specifications to be written.
                   * @param {object} values.objectId - Specifies which object to read.
                   * @param {number} values.objectId.type - The BACNET object type to read.
                   * @param {number} values.objectId.instance - The BACNET object instance to read.
                   * @param {object[]} values.values - List of properties to be written.
                   * @param {object} values.values.property - Property specifications to be written.
                   * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
                   * @param {number} values.values.property.index - The array index of the property to be written.
                   * @param {object[]} values.values.value - A list of values to be written to the specified property.
                   * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
                   * @param {object} values.values.value.value - The actual value to be written.
                   * @param {number} values.values.priority - The priority to be used for writing to the property.
                   * @param {object=} options
                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * const values = [
                   *   {objectId: {type: 8, instance: 44301}, values: [
                   *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
                   *   ]}
                   * ];
                   * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
                   *   console.log('value: ', value);
                   * });
                   */
                  writePropertyMultiple(receiver, values, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      //@ts-ignore
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      16,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId
                    );
                    write_property_multiple_exports2222.encodeObject(buffer, values);
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      next(err);
                    });
                  }
                  /**
                   * The confirmedCOVNotification command is used to push notifications to other
                   * systems that have registered with us via a subscribeCOV message.
                   * @function bacnet.confirmedCOVNotification
                   * @param {string} receiver - IP address of the target device.
                   * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
                   * @param {number} monitoredObject.type - Object type.
                   * @param {number} monitoredObject.instance - Object instance.
                   * @param {number} subscribeId - Subscriber ID from subscribeCOV,
                   * @param {number} initiatingDeviceId - Our BACnet device ID.
                   * @param {number} lifetime - Number of seconds left until the subscription expires.
                   * @param {array} values - values for the monitored object.  See example.
                   * @param {object=} options
                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * const settings = {deviceId: 123}; // our BACnet device
                   *
                   * // Items saved from subscribeCOV message
                   * const monitoredObject = {type: 1, instance: 1};
                   * const subscriberProcessId = 123;
                   *
                   * client.confirmedCOVNotification(
                   *   '192.168.1.43',
                   *   monitoredObject,
                   *   subscriberProcessId,
                   *   settings.deviceId,
                   *   30, // should be lifetime of subscription really
                   *   [
                   *     {
                   *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
                   *       value: [
                   *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
                   *       ],
                   *     },
                   *   ],
                   *   (err) => {
                   *     console.log('error: ', err);
                   *   }
                   * );
                   */
                  confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer();
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      1,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    cov_notify_exports2222.encode(
                      buffer,
                      subscribeId,
                      initiatingDeviceId,
                      monitoredObject,
                      lifetime,
                      values
                    );
                    encode322222(
                      buffer.buffer,
                      10,
                      buffer.offset
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      next();
                    });
                  }
                  /**
                   * The deviceCommunicationControl command enables or disables network communication of the target device.
                   * @function bacnet.deviceCommunicationControl
                   * @param {string} receiver - IP address of the target device.
                   * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
                   * @param {EnableDisable} enableDisable - The network communication state to set.
                   * @param {object=} options
                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                   * @param {string=} options.password - The optional password used to set the network communication state.
                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
                   *   console.log('error: ', err);
                   * });
                   */
                  deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId(),
                      password: options.password
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      17,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    device_communication_control_exports2222.encode(
                      buffer,
                      timeDuration,
                      enableDisable,
                      settings.password
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      next(err);
                    });
                  }
                  /**
                   * The reinitializeDevice command initiates a restart of the target device.
                   * @function bacnet.reinitializeDevice
                   * @param {string} receiver - IP address of the target device.
                   * @param {ReinitializedState} state - The type of restart to be initiated.
                   * @param {object=} options
                   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
                   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
                   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
                   * @param {string=} options.password - The optional password used to restart the device.
                   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
                   *   console.log('value: ', value);
                   * });
                   */
                  reinitializeDevice(receiver, state, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId(),
                      password: options.password
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      20,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    reinitialize_device_exports2222.encode(buffer, state, settings.password);
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      next(err);
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param objectId
                   * @param position
                   * @param fileBuffer
                   * @param options
                   * @param next
                   */
                  writeFile(receiver, objectId, position, fileBuffer, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      7,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    atomic_write_file_exports2222.encode(
                      buffer,
                      false,
                      objectId,
                      position,
                      fileBuffer
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      const result = atomic_write_file_exports2222.decodeAcknowledge(
                        data.buffer,
                        data.offset,
                        data.length
                      );
                      if (!result) {
                        return void next(new Error("INVALID_DECODING"));
                      }
                      next(null, result);
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param objectId
                   * @param position
                   * @param count
                   * @param options
                   * @param next
                   */
                  readFile(receiver, objectId, position, count, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      6,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    atomic_read_file_exports2222.encode(buffer, true, objectId, position, count);
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      const result = atomic_read_file_exports2222.decodeAcknowledge(
                        data.buffer,
                        data.offset,
                        data.length
                      );
                      if (!result) {
                        return void next(new Error("INVALID_DECODING"));
                      }
                      next(null, result);
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param objectId
                   * @param idxBegin
                   * @param quantity
                   * @param options
                   * @param next
                   */
                  readRange(receiver, objectId, idxBegin, quantity, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      26,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    read_range_exports2222.encode(
                      buffer,
                      objectId,
                      131,
                      ASN1_ARRAY_ALL2222,
                      0,
                      idxBegin,
                      /* @__PURE__ */ new Date(),
                      quantity
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      const result = read_range_exports2222.decodeAcknowledge(
                        data.buffer,
                        data.offset,
                        data.length
                      );
                      if (!result) {
                        return void next(new Error("INVALID_DECODING"));
                      }
                      next(null, result);
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param objectId
                   * @param subscribeId
                   * @param cancel
                   * @param issueConfirmedNotifications
                   * @param lifetime
                   * @param options
                   * @param next
                   */
                  subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                    const next = nextFunc || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      // @ts-ignore TODO types not matching with documentation and code
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      5,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    subscribe_cov_exports2222.encode(
                      buffer,
                      subscribeId,
                      objectId,
                      cancel,
                      issueConfirmedNotifications,
                      lifetime
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      next();
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param objectId
                   * @param monitoredProperty
                   * @param subscribeId
                   * @param cancel
                   * @param issueConfirmedNotifications
                   * @param options
                   * @param next
                   */
                  subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      28,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    subscribe_property_exports2222.encode(
                      buffer,
                      subscribeId,
                      objectId,
                      cancel,
                      issueConfirmedNotifications,
                      0,
                      monitoredProperty,
                      false,
                      15
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      next();
                    });
                  }
                  /**
                   * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
                   * @function bacnet.unconfirmedCOVNotification
                   * @param {string} receiver - IP address of the target device.
                   * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
                   * @param {number} initiatingDeviceId - The id of this device.
                   * @param {object} monitoredObjectId - Specifies about which object the notification is.
                   * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
                   * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
                   * @param {number} timeRemaining - How long the subscription is still active in seconds.
                   * @param {object[]} values - List of properties with updated values.
                   * @param {object} values.property - Property specifications.
                   * @param {number} values.property.id - The updated BACNET property id.
                   * @param {number} values.property.index - The array index of the updated property.
                   * @param {object[]} values.value - A list of updated values.
                   * @param {ApplicationTag} values.value.type - The data-type of the updated value.
                   * @param {object} values.value.value - The actual updated value.
                   * @param {number} values.priority - The priority of the updated property.
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * client.unconfirmedCOVNotification(
                   *            '127.0.0.1',
                   *            3,
                   *            433,
                   *            {type: 2, instance: 122},
                   *            120,
                   *            [
                   *              {
                   *                property: {id: 85},
                   *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
                   *              },
                   *              {
                   *                property: {id: 111},
                   *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
                   *              }
                   *            ]);
                   */
                  unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                    const buffer = this._getBuffer();
                    encode312222(buffer, 0, receiver);
                    encodeUnconfirmedServiceRequest2222(
                      buffer,
                      16,
                      2
                      /* UNCONFIRMED_COV_NOTIFICATION */
                    );
                    cov_notify_exports2222.encode(
                      buffer,
                      subscriberProcessId,
                      initiatingDeviceId,
                      monitoredObjectId,
                      timeRemaining,
                      values
                    );
                    encode322222(
                      buffer.buffer,
                      10,
                      buffer.offset
                    );
                    this._transport.send(buffer.buffer, buffer.offset, receiver);
                  }
                  /**
                   *
                   * @param receiver
                   * @param objectId
                   * @param values
                   * @param options
                   * @param next
                   */
                  createObject(receiver, objectId, values, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      10,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    create_object_exports2222.encode(buffer, objectId, values);
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      next();
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param objectId
                   * @param options
                   * @param next
                   */
                  deleteObject(receiver, objectId, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      11,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    delete_object_exports2222.encode(buffer, objectId);
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      next();
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param objectId
                   * @param reference
                   * @param values
                   * @param options
                   * @param next
                   */
                  removeListElement(receiver, objectId, reference, values, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      9,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    add_list_element_exports2222.encode(
                      buffer,
                      objectId,
                      reference.id,
                      reference.index,
                      values
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      next();
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param objectId
                   * @param reference
                   * @param values
                   * @param options
                   * @param next
                   */
                  addListElement(receiver, objectId, reference, values, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      8,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    add_list_element_exports2222.encode(
                      buffer,
                      objectId,
                      reference.id,
                      reference.index,
                      values
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      next();
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param options
                   * @param next
                   */
                  getAlarmSummary(receiver, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      3,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      const result = alarm_summary_exports2222.decode(
                        data.buffer,
                        data.offset,
                        data.length
                      );
                      if (!result) {
                        return void next(new Error("INVALID_DECODING"));
                      }
                      next(null, result);
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param objectId
                   * @param options
                   * @param next
                   */
                  getEventInformation(receiver, objectId, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      29,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    encodeContextObjectId2222(buffer, 0, objectId.type, objectId.instance);
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      const result = event_information_exports2222.decode(
                        data.buffer,
                        data.offset,
                        data.length
                      );
                      if (!result) {
                        return void next(new Error("INVALID_DECODING"));
                      }
                      next(null, result);
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param objectId
                   * @param eventState
                   * @param ackText
                   * @param evTimeStamp
                   * @param ackTimeStamp
                   * @param options
                   * @param next
                   */
                  acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      0,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    alarm_acknowledge_exports2222.encode(
                      buffer,
                      57,
                      objectId,
                      eventState,
                      ackText,
                      evTimeStamp,
                      ackTimeStamp
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      next();
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param vendorId
                   * @param serviceNumber
                   * @param data
                   * @param options
                   * @param next
                   */
                  confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      18,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    private_transfer_exports2222.encode(buffer, vendorId, serviceNumber, data);
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data2) => {
                      if (err) {
                        return void next(err);
                      }
                      next();
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param vendorId
                   * @param serviceNumber
                   * @param data
                   */
                  unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(buffer, 0, receiver);
                    encodeUnconfirmedServiceRequest2222(
                      buffer,
                      16,
                      4
                      /* UNCONFIRMED_PRIVATE_TRANSFER */
                    );
                    private_transfer_exports2222.encode(buffer, vendorId, serviceNumber, data);
                    this.sendBvlc(receiver, buffer);
                  }
                  /**
                   *
                   * @param receiver
                   * @param acknowledgmentFilter
                   * @param options
                   * @param next
                   */
                  getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      4,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    get_enrollment_summary_exports2222.encode(
                      buffer,
                      acknowledgmentFilter,
                      options.enrollmentFilter,
                      options.eventStateFilter,
                      options.eventTypeFilter,
                      options.priorityFilter,
                      options.notificationClassFilter
                    );
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      const result = get_enrollment_summary_exports2222.decodeAcknowledge(
                        data.buffer,
                        data.offset,
                        data.length
                      );
                      if (!result) {
                        return void next(new Error("INVALID_DECODING"));
                      }
                      next(null, result);
                    });
                  }
                  /**
                   *
                   * @param receiver
                   * @param eventNotification
                   */
                  unconfirmedEventNotification(receiver, eventNotification) {
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(buffer, 0, receiver);
                    encodeUnconfirmedServiceRequest2222(
                      buffer,
                      16,
                      3
                      /* UNCONFIRMED_EVENT_NOTIFICATION */
                    );
                    event_notify_data_exports2222.encode(buffer, eventNotification);
                    this.sendBvlc(receiver, buffer);
                  }
                  /**
                   *
                   * @param receiver
                   * @param eventNotification
                   * @param options
                   * @param next
                   */
                  confirmedEventNotification(receiver, eventNotification, options, next) {
                    next = next || options;
                    const settings = {
                      maxSegments: options.maxSegments || 112,
                      maxApdu: options.maxApdu || 5,
                      invokeId: options.invokeId || this._getInvokeId()
                    };
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(
                      buffer,
                      0 | 4,
                      receiver
                    );
                    encodeConfirmedServiceRequest2222(
                      buffer,
                      0,
                      2,
                      settings.maxSegments,
                      settings.maxApdu,
                      settings.invokeId,
                      0,
                      0
                    );
                    event_notify_data_exports2222.encode(buffer, eventNotification);
                    this.sendBvlc(receiver, buffer);
                    this._addCallback(settings.invokeId, (err, data) => {
                      if (err) {
                        return void next(err);
                      }
                      next();
                    });
                  }
                  /**
                   * The readPropertyResponse call sends a response with information about one of our properties.
                   * @function bacnet.readPropertyResponse
                   * @param {string} receiver - IP address of the target device.
                   * @param {number} invokeId - ID of the original readProperty request.
                   * @param {object} objectId - objectId from the original request,
                   * @param {object} property - property being read, taken from the original request.
                   * @param {object=} options varying behaviour for special circumstances
                   * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
                   */
                  readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(buffer, 0, receiver);
                    encodeComplexAck2222(
                      buffer,
                      48,
                      12,
                      invokeId
                    );
                    read_property_exports2222.encodeAcknowledge(
                      buffer,
                      objectId,
                      property.id,
                      property.index,
                      value
                    );
                    this.sendBvlc(receiver, buffer);
                  }
                  readPropertyMultipleResponse(receiver, invokeId, values) {
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(buffer, 0, receiver);
                    encodeComplexAck2222(
                      buffer,
                      48,
                      14,
                      invokeId
                    );
                    read_property_multiple_exports2222.encodeAcknowledge(buffer, values);
                    this.sendBvlc(receiver, buffer);
                  }
                  /**
                   * The iAmResponse command is sent as a reply to a whoIs request.
                   * @function bacnet.iAmResponse
                   * @param {object} receiver - address to send packet to, null for local broadcast.
                   * @param {number} deviceId - Our device ID.
                   * @param {number} segmentation - an enum.Segmentation value.
                   * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
                   */
                  iAmResponse(receiver, deviceId, segmentation, vendorId) {
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(buffer, 0, receiver);
                    encodeUnconfirmedServiceRequest2222(
                      buffer,
                      16,
                      0
                      /* I_AM */
                    );
                    i_am_exports2222.encode(
                      buffer,
                      deviceId,
                      this._transport.getMaxPayload(),
                      segmentation,
                      vendorId
                    );
                    this.sendBvlc(receiver, buffer);
                  }
                  /**
                   *
                   * @param receiver
                   * @param deviceId
                   * @param objectId
                   * @param objectName
                   */
                  iHaveResponse(receiver, deviceId, objectId, objectName) {
                    const buffer = this._getBuffer(
                      !!(typeof receiver !== "string" && receiver.forwardedFrom)
                    );
                    encode312222(buffer, 0, receiver);
                    encodeUnconfirmedServiceRequest2222(
                      buffer,
                      16,
                      1
                      /* I_HAVE */
                    );
                    i_have_exports2222.encode(buffer, deviceId, objectId, objectName);
                    this.sendBvlc(receiver, buffer);
                  }
                  /**
                   *
                   * @param receiver
                   * @param service
                   * @param invokeId
                   */
                  simpleAckResponse(receiver, service, invokeId) {
                    if (typeof receiver === "string")
                      return;
                    const buffer = this._getBuffer(!!receiver.forwardedFrom);
                    encode312222(buffer, 0, receiver);
                    encodeSimpleAck2222(
                      buffer,
                      32,
                      service,
                      invokeId
                    );
                    this.sendBvlc(receiver, buffer);
                  }
                  /**
                   *
                   * @param receiver
                   * @param service
                   * @param invokeId
                   * @param errorClass
                   * @param errorCode
                   */
                  errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                    trace22222(
                      `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                        service
                      )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                    );
                    trace22222(
                      `error message ${error_exports2222.buildMessage({
                        class: errorClass,
                        code: errorCode
                      })}`
                    );
                    const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                    if (typeof receiver === "string")
                      throw new Error("receiver must be object");
                    const buffer = this._getBuffer(hasSource);
                    encode312222(buffer, 0, receiver);
                    encodeError2222(buffer, 80, service, invokeId);
                    error_exports2222.encode(buffer, errorClass, errorCode);
                    this.sendBvlc(receiver, buffer);
                  }
                  /**
                   *
                   * @param receiver
                   * @param buffer
                   */
                  sendBvlc(receiver, buffer) {
                    if (typeof receiver === "string") {
                      receiver = {
                        address: receiver
                      };
                    }
                    if (receiver && receiver.forwardedFrom) {
                      encode322222(
                        buffer.buffer,
                        4,
                        buffer.offset,
                        receiver.forwardedFrom
                      );
                    } else if (receiver && receiver.address) {
                      encode322222(
                        buffer.buffer,
                        10,
                        buffer.offset
                      );
                    } else {
                      encode322222(
                        buffer.buffer,
                        11,
                        buffer.offset
                      );
                    }
                    this._transport.send(
                      buffer.buffer,
                      buffer.offset,
                      receiver && receiver.address || null
                    );
                  }
                  /**
                   * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
                   * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
                   * @function bacnet.resultResponse
                   * @param {string} receiver - IP address of the target device.
                   * @param {number} resultCode - Single value from BvlcResultFormat enum.
                   */
                  resultResponse(receiver, resultCode) {
                    const buffer = this._getBuffer();
                    encodeResult2222(buffer, resultCode);
                    encode322222(
                      buffer.buffer,
                      0,
                      buffer.offset
                    );
                    this._transport.send(buffer.buffer, buffer.offset, receiver.address);
                  }
                  /**
                   * Unloads the current bacnet instance and closes the underlying UDP socket.
                   * @function bacnet.close
                   * @example
                   * const bacnet = require('node-bacnet');
                   * const client = new bacnet();
                   *
                   * client.close();
                   */
                  close() {
                    this._transport.close();
                  }
                  /**
                   * Helper function to take an array of enums and produce a bitstring suitable
                   * for inclusion as a property.
                   *
                   * @example
                   * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
                   *   {value: bacnet.createBitstring([
                   *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
                   *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
                   *   ]),
                   *   type: bacnet.enum.ApplicationTag.BIT_STRING},
                   * ],
                   */
                  static createBitstring(items) {
                    let offset = 0;
                    let bytes = [];
                    let bitsUsed = 0;
                    while (items.length) {
                      let value = 0;
                      items = items.filter((i) => {
                        if (i >= offset + 8) {
                          return true;
                        }
                        value |= 1 << i - offset;
                        bitsUsed = Math.max(bitsUsed, i);
                        return false;
                      });
                      bytes.push(value);
                      offset += 8;
                    }
                    bitsUsed++;
                    return {
                      value: bytes,
                      bitsUsed
                    };
                  }
                };
                var import_underscore2222 = __toESM2222(require("underscore"));
                var import_process2222 = __toESM2222(require("process"));
                var import__2222 = __toESM2222(require_dist2222());
                var PropertyIdentifierToEnumMap2222 = {};
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.OBJECT_TYPE] = import__2222.enums.ObjectType;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__2222.enums.Segmentation;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.EVENT_STATE] = import__2222.enums.EventState;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.UNITS] = import__2222.enums.EngineeringUnits;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.RELIABILITY] = import__2222.enums.Reliability;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__2222.enums.NotifyType;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.POLARITY] = import__2222.enums.Polarity;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__2222.enums.ServicesSupported;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__2222.enums.ObjectTypesSupported;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.STATUS_FLAGS] = import__2222.enums.StatusFlags;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__2222.enums.LimitEnable;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.EVENT_ENABLE] = import__2222.enums.EventTransitionBits;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__2222.enums.EventTransitionBits;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__2222.enums.DeviceStatus;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__2222.enums.DeviceStatus;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.ACK_REQUIRED] = import__2222.enums.EventTransitionBits;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.LOGGING_TYPE] = import__2222.enums.LoggingType;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__2222.enums.FileAccessMethod;
                PropertyIdentifierToEnumMap2222[import__2222.enums.PropertyIdentifier.NODE_TYPE] = import__2222.enums.NodeType;
                var ObjectTypeSpecificPropertyIdentifierToEnumMap2222 = {};
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BINARY_INPUT] = {};
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BINARY_INPUT][import__2222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222.enums.BinaryPV;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BINARY_INPUT][import__2222.enums.PropertyIdentifier.MODE] = import__2222.enums.BinaryPV;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.ANALOG_INPUT] = {};
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.ANALOG_INPUT][import__2222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222.enums.BinaryPV;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.ANALOG_OUTPUT] = {};
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.ANALOG_OUTPUT][import__2222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222.enums.BinaryPV;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BINARY_OUTPUT] = {};
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BINARY_OUTPUT][import__2222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222.enums.BinaryPV;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BINARY_OUTPUT][import__2222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__2222.enums.BinaryPV;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BINARY_VALUE] = {};
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BINARY_VALUE][import__2222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222.enums.BinaryPV;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BINARY_VALUE][import__2222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__2222.enums.BinaryPV;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__2222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222.enums.BinaryLightingPV;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BITSTRING_VALUE] = {};
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.BINARY_VALUE][import__2222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222.enums.BinaryPV;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222.enums.LifeSafetyState;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222.enums.PropertyIdentifier.TRACKING_VALUE] = import__2222.enums.LifeSafetyState;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222.enums.PropertyIdentifier.MODE] = import__2222.enums.LifeSafetyMode;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__2222.enums.LifeSafetyMode;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222.enums.PropertyIdentifier.SILENCED] = import__2222.enums.LifeSafetyState;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.LIFE_SAFETY_POINT][import__2222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__2222.enums.LifeSafetyOperation;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.LIFE_SAFETY_ZONE][import__2222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222.enums.LifeSafetyState;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.LIFE_SAFETY_ZONE][import__2222.enums.PropertyIdentifier.MODE] = import__2222.enums.LifeSafetyMode;
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.LOAD_CONTROL] = {};
                ObjectTypeSpecificPropertyIdentifierToEnumMap2222[import__2222.enums.ObjectType.LOAD_CONTROL][import__2222.enums.PropertyIdentifier.PRESENT_VALUE] = import__2222.enums.ShedState;
                var propSubSet2222 = import_process2222.default.argv.includes("--all") ? Object.values(import__2222.enums.PropertyIdentifier) : [
                  /* normally supported from all devices */
                  import__2222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
                  import__2222.enums.PropertyIdentifier.OBJECT_NAME,
                  import__2222.enums.PropertyIdentifier.OBJECT_TYPE,
                  import__2222.enums.PropertyIdentifier.PRESENT_VALUE,
                  import__2222.enums.PropertyIdentifier.STATUS_FLAGS,
                  import__2222.enums.PropertyIdentifier.EVENT_STATE,
                  import__2222.enums.PropertyIdentifier.RELIABILITY,
                  import__2222.enums.PropertyIdentifier.OUT_OF_SERVICE,
                  import__2222.enums.PropertyIdentifier.UNITS,
                  /* other properties */
                  import__2222.enums.PropertyIdentifier.DESCRIPTION,
                  import__2222.enums.PropertyIdentifier.SYSTEM_STATUS,
                  import__2222.enums.PropertyIdentifier.VENDOR_NAME,
                  import__2222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
                  import__2222.enums.PropertyIdentifier.MODEL_NAME,
                  import__2222.enums.PropertyIdentifier.FIRMWARE_REVISION,
                  import__2222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
                  import__2222.enums.PropertyIdentifier.LOCATION,
                  import__2222.enums.PropertyIdentifier.LOCAL_DATE,
                  import__2222.enums.PropertyIdentifier.LOCAL_TIME,
                  import__2222.enums.PropertyIdentifier.UTC_OFFSET,
                  import__2222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
                  import__2222.enums.PropertyIdentifier.PROTOCOL_VERSION,
                  import__2222.enums.PropertyIdentifier.PROTOCOL_REVISION,
                  import__2222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
                  import__2222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
                  import__2222.enums.PropertyIdentifier.OBJECT_LIST,
                  import__2222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
                  import__2222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
                  import__2222.enums.PropertyIdentifier.APDU_TIMEOUT,
                  import__2222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
                  import__2222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
                  import__2222.enums.PropertyIdentifier.DATABASE_REVISION,
                  import__2222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
                  import__2222.enums.PropertyIdentifier.MAX_MASTER,
                  import__2222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
                  import__2222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
                ];
                var debug42222 = import_process2222.default.argv.includes("--debug");
                function getAllPropertiesManually2222(address, objectId, callback, propList, result) {
                  if (!propList) {
                    propList = propSubSet2222.map((x) => x);
                  }
                  if (!result) {
                    result = [];
                  }
                  if (!propList.length) {
                    return callback({
                      values: [
                        {
                          objectId,
                          values: result
                        }
                      ]
                    });
                  }
                  const prop = propList.shift();
                  bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                    if (!err) {
                      if (debug42222) {
                        console.log("Handle value " + prop + ": ", JSON.stringify(value));
                      }
                      const objRes = value.property;
                      objRes.value = value.values;
                      result.push(objRes);
                    } else {
                    }
                    getAllPropertiesManually2222(address, objectId, callback, propList, result);
                  });
                }
                function readBit2222(buffer, i, bit) {
                  return (buffer[i] >> bit) % 2;
                }
                function handleBitString2222(buffer, bitsUsed, usedEnum) {
                  const res = [];
                  for (let i = 0; i < bitsUsed; i++) {
                    const bufferIndex = Math.floor(i / 8);
                    if (readBit2222(buffer, bufferIndex, i % 8)) {
                      res.push(import__2222.enums.getEnumName(usedEnum, i));
                    }
                  }
                  return res;
                }
                function parseValue2222(address, parentType, value, supportsMultiple = false, callback) {
                  let resValue = null;
                  if (value && value.type && value.value !== null && value.value !== void 0) {
                    switch (value.type) {
                      case import__2222.enums.ApplicationTag.NULL:
                        resValue = null;
                        break;
                      case import__2222.enums.ApplicationTag.BOOLEAN:
                        resValue = !!value.value;
                        break;
                      case import__2222.enums.ApplicationTag.UNSIGNED_INTEGER:
                      case import__2222.enums.ApplicationTag.SIGNED_INTEGER:
                      case import__2222.enums.ApplicationTag.REAL:
                      case import__2222.enums.ApplicationTag.DOUBLE:
                      case import__2222.enums.ApplicationTag.CHARACTER_STRING:
                        resValue = value.value;
                        break;
                      case import__2222.enums.ApplicationTag.DATE:
                      case import__2222.enums.ApplicationTag.TIME:
                      case import__2222.enums.ApplicationTag.TIMESTAMP:
                        resValue = value.value;
                        break;
                      case import__2222.enums.ApplicationTag.BIT_STRING:
                        if (ObjectTypeSpecificPropertyIdentifierToEnumMap2222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap2222[parentType][objId]) {
                          resValue = handleBitString2222(
                            value.value.value,
                            value.value.bitsUsed,
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222[parentType][objId]
                          );
                        } else if (PropertyIdentifierToEnumMap2222[objId]) {
                          resValue = handleBitString2222(
                            value.value.value,
                            value.value.bitsUsed,
                            PropertyIdentifierToEnumMap2222[objId]
                          );
                        } else {
                          if (parentType !== import__2222.enums.ObjectType.BITSTRING_VALUE) {
                            console.log(
                              "Unknown value for BIT_STRING type for objId " + import__2222.enums.getEnumName(import__2222.enums.PropertyIdentifier, objId) + " and parent type " + import__2222.enums.getEnumName(import__2222.enums.ObjectType, parentType)
                            );
                          }
                          resValue = value.value;
                        }
                        break;
                      case import__2222.enums.ApplicationTag.ENUMERATED:
                        if (ObjectTypeSpecificPropertyIdentifierToEnumMap2222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap2222[parentType][objId]) {
                          resValue = import__2222.enums.getEnumName(
                            ObjectTypeSpecificPropertyIdentifierToEnumMap2222[parentType][objId],
                            value.value
                          );
                        } else if (PropertyIdentifierToEnumMap2222[objId]) {
                          resValue = import__2222.enums.getEnumName(
                            PropertyIdentifierToEnumMap2222[objId],
                            value.value
                          );
                        } else {
                          console.log(
                            "Unknown value for ENUMERATED type for objId " + import__2222.enums.getEnumName(import__2222.enums.PropertyIdentifier, objId) + " and parent type " + import__2222.enums.getEnumName(import__2222.enums.ObjectType, parentType)
                          );
                          resValue = value.value;
                        }
                        break;
                      case import__2222.enums.ApplicationTag.OBJECTIDENTIFIER:
                        if (objId === import__2222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId === import__2222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId === import__2222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                          resValue = value.value;
                        } else if (supportsMultiple) {
                          const requestArray = [
                            {
                              objectId: value.value,
                              // meaning read all properties
                              properties: [{ id: 8 }]
                            }
                          ];
                          bacnetClient.readPropertyMultiple(
                            address,
                            requestArray,
                            (err, resValue2) => {
                              parseDeviceObject2222(address, resValue2, value.value, true, callback);
                            }
                          );
                          return;
                        } else {
                          getAllPropertiesManually2222(address, value.value, (result) => {
                            parseDeviceObject2222(address, result, value.value, false, callback);
                          });
                          return;
                        }
                        break;
                      case import__2222.enums.ApplicationTag.OCTET_STRING:
                        resValue = value.value;
                        break;
                      case import__2222.enums.ApplicationTag.ERROR:
                        resValue = {
                          errorClass: import__2222.enums.getEnumName(
                            import__2222.enums.ErrorClass,
                            value.value.errorClass
                          ),
                          errorCode: import__2222.enums.getEnumName(import__2222.enums.ErrorCode, value.value.errorCode)
                        };
                        break;
                      case import__2222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                      case import__2222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                      case import__2222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                      case import__2222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                        resValue = value.value;
                        break;
                      case import__2222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                        parseValue2222(
                          address,
                          parentType,
                          value.value,
                          supportsMultiple,
                          callback
                        );
                        return;
                      case import__2222.enums.ApplicationTag.READ_ACCESS_RESULT:
                        resValue = value.value;
                        break;
                      default:
                        console.log(
                          "unknown type " + value.type + ": " + JSON.stringify(value)
                        );
                        resValue = value;
                    }
                  }
                  setImmediate(() => callback(resValue));
                }
                function parseDeviceObject2222(address, obj, parent, supportsMultiple, callback) {
                  if (debug42222) {
                    console.log(
                      "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                    );
                  }
                  if (!obj) {
                    console.log("object not valid on parse device object");
                    return;
                  }
                  if (!obj.values || !Array.isArray(obj.values)) {
                    console.log("No device or invalid response");
                    callback({ ERROR: "No device or invalid response" });
                    return;
                  }
                  let cbCount = 0;
                  let objDef = {};
                  const finalize = () => {
                    Object.keys(objDef).forEach((devId) => {
                      Object.keys(objDef[devId]).forEach((objId2) => {
                        if (objDef[devId][objId2].length === 1) {
                          objDef[devId][objId2] = objDef[devId][objId2][0];
                        }
                      });
                    });
                    if (obj.values.length === 1) {
                      objDef = objDef[obj.values[0].objectId.instance];
                    }
                    if (debug42222) {
                      console.log(
                        "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                      );
                    }
                    callback(objDef);
                  };
                  obj.values.forEach((devBaseObj) => {
                    if (!devBaseObj.objectId) {
                      console.log("No device Id found in object data");
                      return;
                    }
                    if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                      console.log("No device type or instance found in object data");
                      return;
                    }
                    if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                      console.log("No device values response");
                      return;
                    }
                    const deviceId = devBaseObj.objectId.instance;
                    objDef[deviceId] = {};
                    devBaseObj.values.forEach((devObj) => {
                      let objId2 = import__2222.enums.getEnumName(import__2222.enums.PropertyIdentifier, devObj.id);
                      if (devObj.index !== 4294967295) {
                        objId2 += "-" + devObj.index;
                      }
                      if (debug42222) {
                        console.log("Handle Object property:", deviceId, objId2, devObj.value);
                      }
                      devObj.value.forEach((val) => {
                        if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                          objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                          objDef[deviceId][objId2].push(val.value);
                          return;
                        }
                        cbCount++;
                        parseValue2222(
                          address,
                          parent.type,
                          val,
                          supportsMultiple,
                          (parsedValue) => {
                            if (debug42222) {
                              console.log(
                                "RETURN parsedValue",
                                deviceId,
                                objId2,
                                devObj.value,
                                parsedValue
                              );
                            }
                            objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                            objDef[deviceId][objId2].push(parsedValue);
                            if (!--cbCount) {
                              finalize();
                            }
                          }
                        );
                      });
                    });
                  });
                  if (cbCount === 0) {
                    finalize();
                  }
                }
                var limitToDevice2222 = null;
                if (import_process2222.default.argv.length === 3) {
                  limitToDevice2222 = parseInt(import_process2222.default.argv[2]);
                  if (isNaN(limitToDevice2222)) {
                    limitToDevice2222 = null;
                  }
                }
                var node_bacnet_default2222 = Client2222;
              }
            });
            var node_bacnet_exports222 = {};
            __export222(node_bacnet_exports222, {
              _: () => import_underscore222.default,
              bacnetErrorToString: () => bacnetErrorToString222,
              default: () => node_bacnet_default222,
              enums: () => enum_exports222,
              parseValue: () => parseValue222
            });
            module222.exports = __toCommonJS222(node_bacnet_exports222);
            var enum_exports222 = {};
            __export222(enum_exports222, {
              ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL222,
              ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS222,
              ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG222,
              ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES222,
              ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE222,
              ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT222,
              ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE222,
              ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY222,
              ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID222,
              ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY222,
              ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY222,
              AbortReason: () => AbortReason222,
              AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable222,
              AccessCredentialDisable: () => AccessCredentialDisable222,
              AccessCredentialDisableReason: () => AccessCredentialDisableReason222,
              AccessEvent: () => AccessEvent222,
              AccessPassbackMode: () => AccessPassbackMode222,
              AccessUserType: () => AccessUserType222,
              AccessZoneOccupancyState: () => AccessZoneOccupancyState222,
              Action: () => Action222,
              ApplicationTag: () => ApplicationTag222,
              ApplicationTagName: () => ApplicationTagName222,
              AuthenticationFactorType: () => AuthenticationFactorType222,
              AuthenticationStatus: () => AuthenticationStatus222,
              AuthorizationExemption: () => AuthorizationExemption222,
              AuthorizationMode: () => AuthorizationMode222,
              BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH322,
              BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP222,
              BackupState: () => BackupState222,
              BinaryLightingPV: () => BinaryLightingPV222,
              BinaryPV: () => BinaryPV222,
              BvlcResultFormat: () => BvlcResultFormat222,
              BvlcResultPurpose: () => BvlcResultPurpose222,
              CharacterStringEncoding: () => CharacterStringEncoding222,
              ConfirmedServiceChoice: () => ConfirmedServiceChoice222,
              CovType: () => CovType222,
              DaysOfWeek: () => DaysOfWeek222,
              DeviceStatus: () => DeviceStatus222,
              DoorAlarmState: () => DoorAlarmState222,
              DoorSecuredStatus: () => DoorSecuredStatus222,
              DoorStatus: () => DoorStatus222,
              DoorValue: () => DoorValue222,
              EnableDisable: () => EnableDisable222,
              EngineeringUnits: () => EngineeringUnits222,
              ErrorClass: () => ErrorClass222,
              ErrorClassName: () => ErrorClassName222,
              ErrorCode: () => ErrorCode222,
              ErrorCodeName: () => ErrorCodeName222,
              EscalatorFault: () => EscalatorFault222,
              EscalatorMode: () => EscalatorMode222,
              EscalatorOperationDirection: () => EscalatorOperationDirection222,
              EventState: () => EventState222,
              EventTransitionBits: () => EventTransitionBits222,
              EventType: () => EventType222,
              FaultType: () => FaultType222,
              FileAccessMethod: () => FileAccessMethod222,
              IPMode: () => IPMode222,
              LifeSafetyMode: () => LifeSafetyMode222,
              LifeSafetyOperation: () => LifeSafetyOperation222,
              LifeSafetyState: () => LifeSafetyState222,
              LiftCarDirection: () => LiftCarDirection222,
              LiftCarDoorCommand: () => LiftCarDoorCommand222,
              LiftCarDriveStatus: () => LiftCarDriveStatus222,
              LiftCarMode: () => LiftCarMode222,
              LiftFault: () => LiftFault222,
              LiftGroupMode: () => LiftGroupMode222,
              LightingInProgress: () => LightingInProgress222,
              LightingOperation: () => LightingOperation222,
              LightingTransition: () => LightingTransition222,
              LimitEnable: () => LimitEnable222,
              LockStatus: () => LockStatus222,
              LogStatus: () => LogStatus222,
              LoggingType: () => LoggingType222,
              Maintenance: () => Maintenance222,
              MaxApduLengthAccepted: () => MaxApduLengthAccepted222,
              MaxSegmentsAccepted: () => MaxSegmentsAccepted222,
              NetworkLayerMessageType: () => NetworkLayerMessageType222,
              NetworkNumberQuality: () => NetworkNumberQuality222,
              NetworkPortCommand: () => NetworkPortCommand222,
              NetworkType: () => NetworkType222,
              NodeType: () => NodeType222,
              NotifyType: () => NotifyType222,
              NpduControlBit: () => NpduControlBit222,
              NpduControlPriority: () => NpduControlPriority222,
              ObjectType: () => ObjectType222,
              ObjectTypesSupported: () => ObjectTypesSupported222,
              PDU_TYPE_MASK: () => PDU_TYPE_MASK222,
              PduConReqBit: () => PduConReqBit222,
              PduSegAckBit: () => PduSegAckBit222,
              PduType: () => PduType222,
              Polarity: () => Polarity222,
              ProgramError: () => ProgramError222,
              ProgramRequest: () => ProgramRequest222,
              ProgramState: () => ProgramState222,
              PropertyIdentifier: () => PropertyIdentifier222,
              PropertyStates: () => PropertyStates222,
              ProtocolLevel: () => ProtocolLevel222,
              ReadRangeType: () => ReadRangeType222,
              ReinitializedState: () => ReinitializedState222,
              RejectReason: () => RejectReason222,
              Relationship: () => Relationship222,
              Reliability: () => Reliability222,
              RestartReason: () => RestartReason222,
              ResultFlags: () => ResultFlags222,
              SecurityLevel: () => SecurityLevel222,
              SecurityPolicy: () => SecurityPolicy222,
              Segmentation: () => Segmentation222,
              ServicesSupported: () => ServicesSupported222,
              ShedState: () => ShedState222,
              SilencedState: () => SilencedState222,
              StatusFlags: () => StatusFlags222,
              TimeStamp: () => TimeStamp222,
              TimerState: () => TimerState222,
              TimerTransition: () => TimerTransition222,
              UnconfirmedServiceChoice: () => UnconfirmedServiceChoice222,
              VTClass: () => VTClass222,
              WriteStatus: () => WriteStatus222,
              getEnumName: () => getEnumName222
            });
            var import_debug422 = __toESM222(require("debug"));
            var debug522 = (0, import_debug422.default)("bacnet=enum=debug");
            var trace322 = (0, import_debug422.default)("bacnet=enum=trace");
            function invertEnum222(enumToInvert) {
              return Object.keys(enumToInvert).reduce((acc, key) => {
                const val = enumToInvert[key];
                acc[val] = key;
                return acc;
              }, {});
            }
            function getEnumName222(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
              if (!Number.isInteger(value)) {
                throw new Error(
                  'getEnumName() can only be passed an integer value, was given "' + value + '"'
                );
              }
              let foundEntry;
              try {
                const invertedGroup = invertEnum222(group);
                foundEntry = invertedGroup[value];
                if (foundEntry === void 0 && undefinedFallbackValue) {
                  foundEntry = undefinedFallbackValue;
                }
                if (foundEntry === void 0) {
                  foundEntry = value.toString();
                } else if (addNumberValue) {
                  let strinmanipulation = "";
                  strinmanipulation += "(" + value + ")";
                  foundEntry = foundEntry + strinmanipulation;
                }
              } catch (e) {
                trace322(e.message);
                foundEntry = null;
              }
              return foundEntry;
            }
            var PDU_TYPE_MASK222 = 240;
            var ASN1_MAX_OBJECT222 = 1023;
            var ASN1_INSTANCE_BITS222 = 22;
            var ASN1_MAX_INSTANCE222 = 4194303;
            var ASN1_MAX_BITSTRING_BYTES222 = 15;
            var ASN1_ARRAY_ALL222 = 4294967295;
            var ASN1_NO_PRIORITY222 = 0;
            var ASN1_MIN_PRIORITY222 = 1;
            var ASN1_MAX_PRIORITY222 = 16;
            var ASN1_MAX_APPLICATION_TAG222 = 16;
            var ASN1_MAX_OBJECT_TYPE222 = 1024;
            var ASN1_MAX_PROPERTY_ID222 = 4194303;
            var BVLL_TYPE_BACNET_IP222 = 129;
            var BVLC_HEADER_LENGTH322 = 4;
            var ConfirmedServiceChoice222 = /* @__PURE__ */ ((ConfirmedServiceChoice2222) => {
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["VT_OPEN"] = 21] = "VT_OPEN";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["VT_CLOSE"] = 22] = "VT_CLOSE";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["VT_DATA"] = 23] = "VT_DATA";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["READ_RANGE"] = 26] = "READ_RANGE";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
              ConfirmedServiceChoice2222[ConfirmedServiceChoice2222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
              return ConfirmedServiceChoice2222;
            })(ConfirmedServiceChoice222 || {});
            var UnconfirmedServiceChoice222 = /* @__PURE__ */ ((UnconfirmedServiceChoice2222) => {
              UnconfirmedServiceChoice2222[UnconfirmedServiceChoice2222["I_AM"] = 0] = "I_AM";
              UnconfirmedServiceChoice2222[UnconfirmedServiceChoice2222["I_HAVE"] = 1] = "I_HAVE";
              UnconfirmedServiceChoice2222[UnconfirmedServiceChoice2222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
              UnconfirmedServiceChoice2222[UnconfirmedServiceChoice2222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
              UnconfirmedServiceChoice2222[UnconfirmedServiceChoice2222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
              UnconfirmedServiceChoice2222[UnconfirmedServiceChoice2222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
              UnconfirmedServiceChoice2222[UnconfirmedServiceChoice2222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
              UnconfirmedServiceChoice2222[UnconfirmedServiceChoice2222["WHO_HAS"] = 7] = "WHO_HAS";
              UnconfirmedServiceChoice2222[UnconfirmedServiceChoice2222["WHO_IS"] = 8] = "WHO_IS";
              UnconfirmedServiceChoice2222[UnconfirmedServiceChoice2222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
              UnconfirmedServiceChoice2222[UnconfirmedServiceChoice2222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
              UnconfirmedServiceChoice2222[UnconfirmedServiceChoice2222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
              return UnconfirmedServiceChoice2222;
            })(UnconfirmedServiceChoice222 || {});
            var AbortReason222 = /* @__PURE__ */ ((AbortReason2222) => {
              AbortReason2222[AbortReason2222["OTHER"] = 0] = "OTHER";
              AbortReason2222[AbortReason2222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
              AbortReason2222[AbortReason2222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
              AbortReason2222[AbortReason2222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
              AbortReason2222[AbortReason2222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
              AbortReason2222[AbortReason2222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
              AbortReason2222[AbortReason2222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
              AbortReason2222[AbortReason2222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
              AbortReason2222[AbortReason2222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
              AbortReason2222[AbortReason2222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
              AbortReason2222[AbortReason2222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
              AbortReason2222[AbortReason2222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
              return AbortReason2222;
            })(AbortReason222 || {});
            var RejectReason222 = /* @__PURE__ */ ((RejectReason2222) => {
              RejectReason2222[RejectReason2222["OTHER"] = 0] = "OTHER";
              RejectReason2222[RejectReason2222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
              RejectReason2222[RejectReason2222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
              RejectReason2222[RejectReason2222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
              RejectReason2222[RejectReason2222["INVALID_TAG"] = 4] = "INVALID_TAG";
              RejectReason2222[RejectReason2222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
              RejectReason2222[RejectReason2222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
              RejectReason2222[RejectReason2222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
              RejectReason2222[RejectReason2222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
              RejectReason2222[RejectReason2222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
              return RejectReason2222;
            })(RejectReason222 || {});
            var ErrorClass222 = /* @__PURE__ */ ((ErrorClass2222) => {
              ErrorClass2222[ErrorClass2222["DEVICE"] = 0] = "DEVICE";
              ErrorClass2222[ErrorClass2222["OBJECT"] = 1] = "OBJECT";
              ErrorClass2222[ErrorClass2222["PROPERTY"] = 2] = "PROPERTY";
              ErrorClass2222[ErrorClass2222["RESOURCES"] = 3] = "RESOURCES";
              ErrorClass2222[ErrorClass2222["SECURITY"] = 4] = "SECURITY";
              ErrorClass2222[ErrorClass2222["SERVICES"] = 5] = "SERVICES";
              ErrorClass2222[ErrorClass2222["VT"] = 6] = "VT";
              ErrorClass2222[ErrorClass2222["COMMUNICATION"] = 7] = "COMMUNICATION";
              return ErrorClass2222;
            })(ErrorClass222 || {});
            var ErrorClassName222 = invertEnum222(
              ErrorClass222
            );
            var ErrorCode222 = /* @__PURE__ */ ((ErrorCode2222) => {
              ErrorCode2222[ErrorCode2222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
              ErrorCode2222[ErrorCode2222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
              ErrorCode2222[ErrorCode2222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
              ErrorCode2222[ErrorCode2222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
              ErrorCode2222[ErrorCode2222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
              ErrorCode2222[ErrorCode2222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
              ErrorCode2222[ErrorCode2222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
              ErrorCode2222[ErrorCode2222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
              ErrorCode2222[ErrorCode2222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
              ErrorCode2222[ErrorCode2222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
              ErrorCode2222[ErrorCode2222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
              ErrorCode2222[ErrorCode2222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
              ErrorCode2222[ErrorCode2222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
              ErrorCode2222[ErrorCode2222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
              ErrorCode2222[ErrorCode2222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
              ErrorCode2222[ErrorCode2222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
              ErrorCode2222[ErrorCode2222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
              ErrorCode2222[ErrorCode2222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
              ErrorCode2222[ErrorCode2222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
              ErrorCode2222[ErrorCode2222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
              ErrorCode2222[ErrorCode2222["BUSY"] = 82] = "BUSY";
              ErrorCode2222[ErrorCode2222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
              ErrorCode2222[ErrorCode2222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
              ErrorCode2222[ErrorCode2222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
              ErrorCode2222[ErrorCode2222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
              ErrorCode2222[ErrorCode2222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
              ErrorCode2222[ErrorCode2222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
              ErrorCode2222[ErrorCode2222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
              ErrorCode2222[ErrorCode2222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
              ErrorCode2222[ErrorCode2222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
              ErrorCode2222[ErrorCode2222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
              ErrorCode2222[ErrorCode2222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
              ErrorCode2222[ErrorCode2222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
              ErrorCode2222[ErrorCode2222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
              ErrorCode2222[ErrorCode2222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
              ErrorCode2222[ErrorCode2222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
              ErrorCode2222[ErrorCode2222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
              ErrorCode2222[ErrorCode2222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
              ErrorCode2222[ErrorCode2222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
              ErrorCode2222[ErrorCode2222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
              ErrorCode2222[ErrorCode2222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
              ErrorCode2222[ErrorCode2222["FILE_FULL"] = 128] = "FILE_FULL";
              ErrorCode2222[ErrorCode2222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
              ErrorCode2222[ErrorCode2222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
              ErrorCode2222[ErrorCode2222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
              ErrorCode2222[ErrorCode2222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
              ErrorCode2222[ErrorCode2222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
              ErrorCode2222[ErrorCode2222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
              ErrorCode2222[ErrorCode2222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
              ErrorCode2222[ErrorCode2222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
              ErrorCode2222[ErrorCode2222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
              ErrorCode2222[ErrorCode2222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
              ErrorCode2222[ErrorCode2222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
              ErrorCode2222[ErrorCode2222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
              ErrorCode2222[ErrorCode2222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
              ErrorCode2222[ErrorCode2222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
              ErrorCode2222[ErrorCode2222["INVALID_TAG"] = 57] = "INVALID_TAG";
              ErrorCode2222[ErrorCode2222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
              ErrorCode2222[ErrorCode2222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
              ErrorCode2222[ErrorCode2222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
              ErrorCode2222[ErrorCode2222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
              ErrorCode2222[ErrorCode2222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
              ErrorCode2222[ErrorCode2222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
              ErrorCode2222[ErrorCode2222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
              ErrorCode2222[ErrorCode2222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
              ErrorCode2222[ErrorCode2222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
              ErrorCode2222[ErrorCode2222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
              ErrorCode2222[ErrorCode2222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
              ErrorCode2222[ErrorCode2222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
              ErrorCode2222[ErrorCode2222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
              ErrorCode2222[ErrorCode2222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
              ErrorCode2222[ErrorCode2222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
              ErrorCode2222[ErrorCode2222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
              ErrorCode2222[ErrorCode2222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
              ErrorCode2222[ErrorCode2222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
              ErrorCode2222[ErrorCode2222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
              ErrorCode2222[ErrorCode2222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
              ErrorCode2222[ErrorCode2222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
              ErrorCode2222[ErrorCode2222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
              ErrorCode2222[ErrorCode2222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
              ErrorCode2222[ErrorCode2222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
              ErrorCode2222[ErrorCode2222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
              ErrorCode2222[ErrorCode2222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
              ErrorCode2222[ErrorCode2222["OTHER"] = 0] = "OTHER";
              ErrorCode2222[ErrorCode2222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
              ErrorCode2222[ErrorCode2222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
              ErrorCode2222[ErrorCode2222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
              ErrorCode2222[ErrorCode2222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
              ErrorCode2222[ErrorCode2222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
              ErrorCode2222[ErrorCode2222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
              ErrorCode2222[ErrorCode2222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
              ErrorCode2222[ErrorCode2222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
              ErrorCode2222[ErrorCode2222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
              ErrorCode2222[ErrorCode2222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
              ErrorCode2222[ErrorCode2222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
              ErrorCode2222[ErrorCode2222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
              ErrorCode2222[ErrorCode2222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
              ErrorCode2222[ErrorCode2222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
              ErrorCode2222[ErrorCode2222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
              ErrorCode2222[ErrorCode2222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
              ErrorCode2222[ErrorCode2222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
              ErrorCode2222[ErrorCode2222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
              ErrorCode2222[ErrorCode2222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
              ErrorCode2222[ErrorCode2222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
              ErrorCode2222[ErrorCode2222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
              ErrorCode2222[ErrorCode2222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
              ErrorCode2222[ErrorCode2222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
              ErrorCode2222[ErrorCode2222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
              ErrorCode2222[ErrorCode2222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
              ErrorCode2222[ErrorCode2222["SUCCESS"] = 84] = "SUCCESS";
              ErrorCode2222[ErrorCode2222["TIMEOUT"] = 30] = "TIMEOUT";
              ErrorCode2222[ErrorCode2222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
              ErrorCode2222[ErrorCode2222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
              ErrorCode2222[ErrorCode2222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
              ErrorCode2222[ErrorCode2222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
              ErrorCode2222[ErrorCode2222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
              ErrorCode2222[ErrorCode2222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
              ErrorCode2222[ErrorCode2222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
              ErrorCode2222[ErrorCode2222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
              ErrorCode2222[ErrorCode2222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
              ErrorCode2222[ErrorCode2222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
              ErrorCode2222[ErrorCode2222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
              ErrorCode2222[ErrorCode2222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
              ErrorCode2222[ErrorCode2222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
              ErrorCode2222[ErrorCode2222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
              ErrorCode2222[ErrorCode2222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
              ErrorCode2222[ErrorCode2222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
              ErrorCode2222[ErrorCode2222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
              ErrorCode2222[ErrorCode2222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
              ErrorCode2222[ErrorCode2222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
              ErrorCode2222[ErrorCode2222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
              ErrorCode2222[ErrorCode2222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
              ErrorCode2222[ErrorCode2222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
              return ErrorCode2222;
            })(ErrorCode222 || {});
            var ErrorCodeName222 = invertEnum222(
              ErrorCode222
            );
            var AccessAuthenticationFactorDisable222 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable2222) => {
              AccessAuthenticationFactorDisable2222[AccessAuthenticationFactorDisable2222["NONE"] = 0] = "NONE";
              AccessAuthenticationFactorDisable2222[AccessAuthenticationFactorDisable2222["DISABLED"] = 1] = "DISABLED";
              AccessAuthenticationFactorDisable2222[AccessAuthenticationFactorDisable2222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
              AccessAuthenticationFactorDisable2222[AccessAuthenticationFactorDisable2222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
              AccessAuthenticationFactorDisable2222[AccessAuthenticationFactorDisable2222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
              AccessAuthenticationFactorDisable2222[AccessAuthenticationFactorDisable2222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
              return AccessAuthenticationFactorDisable2222;
            })(AccessAuthenticationFactorDisable222 || {});
            var AccessCredentialDisable222 = /* @__PURE__ */ ((AccessCredentialDisable2222) => {
              AccessCredentialDisable2222[AccessCredentialDisable2222["NONE"] = 0] = "NONE";
              AccessCredentialDisable2222[AccessCredentialDisable2222["DISABLE"] = 1] = "DISABLE";
              AccessCredentialDisable2222[AccessCredentialDisable2222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
              AccessCredentialDisable2222[AccessCredentialDisable2222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
              return AccessCredentialDisable2222;
            })(AccessCredentialDisable222 || {});
            var AccessCredentialDisableReason222 = /* @__PURE__ */ ((AccessCredentialDisableReason2222) => {
              AccessCredentialDisableReason2222[AccessCredentialDisableReason2222["DISABLED"] = 0] = "DISABLED";
              AccessCredentialDisableReason2222[AccessCredentialDisableReason2222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
              AccessCredentialDisableReason2222[AccessCredentialDisableReason2222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
              AccessCredentialDisableReason2222[AccessCredentialDisableReason2222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
              AccessCredentialDisableReason2222[AccessCredentialDisableReason2222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
              AccessCredentialDisableReason2222[AccessCredentialDisableReason2222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
              AccessCredentialDisableReason2222[AccessCredentialDisableReason2222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
              AccessCredentialDisableReason2222[AccessCredentialDisableReason2222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
              AccessCredentialDisableReason2222[AccessCredentialDisableReason2222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
              AccessCredentialDisableReason2222[AccessCredentialDisableReason2222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
              return AccessCredentialDisableReason2222;
            })(AccessCredentialDisableReason222 || {});
            var AccessEvent222 = /* @__PURE__ */ ((AccessEvent2222) => {
              AccessEvent2222[AccessEvent2222["NONE"] = 0] = "NONE";
              AccessEvent2222[AccessEvent2222["GRANTED"] = 1] = "GRANTED";
              AccessEvent2222[AccessEvent2222["MUSTER"] = 2] = "MUSTER";
              AccessEvent2222[AccessEvent2222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
              AccessEvent2222[AccessEvent2222["DURESS"] = 4] = "DURESS";
              AccessEvent2222[AccessEvent2222["TRACE"] = 5] = "TRACE";
              AccessEvent2222[AccessEvent2222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
              AccessEvent2222[AccessEvent2222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
              AccessEvent2222[AccessEvent2222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
              AccessEvent2222[AccessEvent2222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
              AccessEvent2222[AccessEvent2222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
              AccessEvent2222[AccessEvent2222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
              AccessEvent2222[AccessEvent2222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
              AccessEvent2222[AccessEvent2222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
              AccessEvent2222[AccessEvent2222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
              AccessEvent2222[AccessEvent2222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
              AccessEvent2222[AccessEvent2222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
              AccessEvent2222[AccessEvent2222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
              AccessEvent2222[AccessEvent2222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
              AccessEvent2222[AccessEvent2222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
              AccessEvent2222[AccessEvent2222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
              AccessEvent2222[AccessEvent2222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
              AccessEvent2222[AccessEvent2222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
              AccessEvent2222[AccessEvent2222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
              AccessEvent2222[AccessEvent2222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
              AccessEvent2222[AccessEvent2222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
              AccessEvent2222[AccessEvent2222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
              AccessEvent2222[AccessEvent2222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
              AccessEvent2222[AccessEvent2222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
              AccessEvent2222[AccessEvent2222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
              AccessEvent2222[AccessEvent2222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
              AccessEvent2222[AccessEvent2222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
              AccessEvent2222[AccessEvent2222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
              AccessEvent2222[AccessEvent2222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
              AccessEvent2222[AccessEvent2222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
              AccessEvent2222[AccessEvent2222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
              AccessEvent2222[AccessEvent2222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
              AccessEvent2222[AccessEvent2222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
              AccessEvent2222[AccessEvent2222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
              AccessEvent2222[AccessEvent2222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
              AccessEvent2222[AccessEvent2222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
              AccessEvent2222[AccessEvent2222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
              AccessEvent2222[AccessEvent2222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
              AccessEvent2222[AccessEvent2222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
              AccessEvent2222[AccessEvent2222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
              AccessEvent2222[AccessEvent2222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
              AccessEvent2222[AccessEvent2222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
              AccessEvent2222[AccessEvent2222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
              AccessEvent2222[AccessEvent2222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
              AccessEvent2222[AccessEvent2222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
              AccessEvent2222[AccessEvent2222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
              AccessEvent2222[AccessEvent2222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
              AccessEvent2222[AccessEvent2222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
              AccessEvent2222[AccessEvent2222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
              return AccessEvent2222;
            })(AccessEvent222 || {});
            var AccessPassbackMode222 = /* @__PURE__ */ ((AccessPassbackMode2222) => {
              AccessPassbackMode2222[AccessPassbackMode2222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
              AccessPassbackMode2222[AccessPassbackMode2222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
              AccessPassbackMode2222[AccessPassbackMode2222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
              return AccessPassbackMode2222;
            })(AccessPassbackMode222 || {});
            var AccessUserType222 = /* @__PURE__ */ ((AccessUserType2222) => {
              AccessUserType2222[AccessUserType2222["ASSET"] = 0] = "ASSET";
              AccessUserType2222[AccessUserType2222["GROUP"] = 1] = "GROUP";
              AccessUserType2222[AccessUserType2222["PERSON"] = 2] = "PERSON";
              return AccessUserType2222;
            })(AccessUserType222 || {});
            var AccessZoneOccupancyState222 = /* @__PURE__ */ ((AccessZoneOccupancyState2222) => {
              AccessZoneOccupancyState2222[AccessZoneOccupancyState2222["NORMAL"] = 0] = "NORMAL";
              AccessZoneOccupancyState2222[AccessZoneOccupancyState2222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
              AccessZoneOccupancyState2222[AccessZoneOccupancyState2222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
              AccessZoneOccupancyState2222[AccessZoneOccupancyState2222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
              AccessZoneOccupancyState2222[AccessZoneOccupancyState2222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
              AccessZoneOccupancyState2222[AccessZoneOccupancyState2222["DISABLED"] = 5] = "DISABLED";
              AccessZoneOccupancyState2222[AccessZoneOccupancyState2222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
              return AccessZoneOccupancyState2222;
            })(AccessZoneOccupancyState222 || {});
            var Action222 = /* @__PURE__ */ ((Action2222) => {
              Action2222[Action2222["DIRECT"] = 0] = "DIRECT";
              Action2222[Action2222["REVERSE"] = 1] = "REVERSE";
              return Action2222;
            })(Action222 || {});
            var AuthenticationFactorType222 = /* @__PURE__ */ ((AuthenticationFactorType2222) => {
              AuthenticationFactorType2222[AuthenticationFactorType2222["UNDEFINED"] = 0] = "UNDEFINED";
              AuthenticationFactorType2222[AuthenticationFactorType2222["ERROR"] = 1] = "ERROR";
              AuthenticationFactorType2222[AuthenticationFactorType2222["CUSTOM"] = 2] = "CUSTOM";
              AuthenticationFactorType2222[AuthenticationFactorType2222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
              AuthenticationFactorType2222[AuthenticationFactorType2222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
              AuthenticationFactorType2222[AuthenticationFactorType2222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
              AuthenticationFactorType2222[AuthenticationFactorType2222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
              AuthenticationFactorType2222[AuthenticationFactorType2222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
              AuthenticationFactorType2222[AuthenticationFactorType2222["WIEGAND26"] = 8] = "WIEGAND26";
              AuthenticationFactorType2222[AuthenticationFactorType2222["WIEGAND37"] = 9] = "WIEGAND37";
              AuthenticationFactorType2222[AuthenticationFactorType2222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
              AuthenticationFactorType2222[AuthenticationFactorType2222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
              AuthenticationFactorType2222[AuthenticationFactorType2222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
              AuthenticationFactorType2222[AuthenticationFactorType2222["FASC_N"] = 13] = "FASC_N";
              AuthenticationFactorType2222[AuthenticationFactorType2222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
              AuthenticationFactorType2222[AuthenticationFactorType2222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
              AuthenticationFactorType2222[AuthenticationFactorType2222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
              AuthenticationFactorType2222[AuthenticationFactorType2222["GSA75"] = 17] = "GSA75";
              AuthenticationFactorType2222[AuthenticationFactorType2222["CHUID"] = 18] = "CHUID";
              AuthenticationFactorType2222[AuthenticationFactorType2222["CHUID_FULL"] = 19] = "CHUID_FULL";
              AuthenticationFactorType2222[AuthenticationFactorType2222["GUID"] = 20] = "GUID";
              AuthenticationFactorType2222[AuthenticationFactorType2222["CBEFF_A"] = 21] = "CBEFF_A";
              AuthenticationFactorType2222[AuthenticationFactorType2222["CBEFF_B"] = 22] = "CBEFF_B";
              AuthenticationFactorType2222[AuthenticationFactorType2222["CBEFF_C"] = 23] = "CBEFF_C";
              AuthenticationFactorType2222[AuthenticationFactorType2222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
              return AuthenticationFactorType2222;
            })(AuthenticationFactorType222 || {});
            var AuthenticationStatus222 = /* @__PURE__ */ ((AuthenticationStatus2222) => {
              AuthenticationStatus2222[AuthenticationStatus2222["NOT_READY"] = 0] = "NOT_READY";
              AuthenticationStatus2222[AuthenticationStatus2222["READY"] = 1] = "READY";
              AuthenticationStatus2222[AuthenticationStatus2222["DISABLED"] = 2] = "DISABLED";
              AuthenticationStatus2222[AuthenticationStatus2222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
              AuthenticationStatus2222[AuthenticationStatus2222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
              AuthenticationStatus2222[AuthenticationStatus2222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
              AuthenticationStatus2222[AuthenticationStatus2222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
              return AuthenticationStatus2222;
            })(AuthenticationStatus222 || {});
            var AuthorizationExemption222 = /* @__PURE__ */ ((AuthorizationExemption2222) => {
              AuthorizationExemption2222[AuthorizationExemption2222["PASSBACK"] = 0] = "PASSBACK";
              AuthorizationExemption2222[AuthorizationExemption2222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
              AuthorizationExemption2222[AuthorizationExemption2222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
              AuthorizationExemption2222[AuthorizationExemption2222["LOCKOUT"] = 3] = "LOCKOUT";
              AuthorizationExemption2222[AuthorizationExemption2222["DENY"] = 4] = "DENY";
              AuthorizationExemption2222[AuthorizationExemption2222["VERIFICATION"] = 5] = "VERIFICATION";
              AuthorizationExemption2222[AuthorizationExemption2222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
              return AuthorizationExemption2222;
            })(AuthorizationExemption222 || {});
            var AuthorizationMode222 = /* @__PURE__ */ ((AuthorizationMode2222) => {
              AuthorizationMode2222[AuthorizationMode2222["AUTHORIZE"] = 0] = "AUTHORIZE";
              AuthorizationMode2222[AuthorizationMode2222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
              AuthorizationMode2222[AuthorizationMode2222["DENY_ALL"] = 2] = "DENY_ALL";
              AuthorizationMode2222[AuthorizationMode2222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
              AuthorizationMode2222[AuthorizationMode2222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
              AuthorizationMode2222[AuthorizationMode2222["NONE"] = 5] = "NONE";
              return AuthorizationMode2222;
            })(AuthorizationMode222 || {});
            var BackupState222 = /* @__PURE__ */ ((BackupState2222) => {
              BackupState2222[BackupState2222["IDLE"] = 0] = "IDLE";
              BackupState2222[BackupState2222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
              BackupState2222[BackupState2222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
              BackupState2222[BackupState2222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
              BackupState2222[BackupState2222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
              BackupState2222[BackupState2222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
              BackupState2222[BackupState2222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
              return BackupState2222;
            })(BackupState222 || {});
            var BinaryLightingPV222 = /* @__PURE__ */ ((BinaryLightingPV2222) => {
              BinaryLightingPV2222[BinaryLightingPV2222["OFF"] = 0] = "OFF";
              BinaryLightingPV2222[BinaryLightingPV2222["ON"] = 1] = "ON";
              BinaryLightingPV2222[BinaryLightingPV2222["WARN"] = 2] = "WARN";
              BinaryLightingPV2222[BinaryLightingPV2222["WARN_OFF"] = 3] = "WARN_OFF";
              BinaryLightingPV2222[BinaryLightingPV2222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
              BinaryLightingPV2222[BinaryLightingPV2222["STOP"] = 5] = "STOP";
              return BinaryLightingPV2222;
            })(BinaryLightingPV222 || {});
            var BinaryPV222 = /* @__PURE__ */ ((BinaryPV2222) => {
              BinaryPV2222[BinaryPV2222["INACTIVE"] = 0] = "INACTIVE";
              BinaryPV2222[BinaryPV2222["ACTIVE"] = 1] = "ACTIVE";
              return BinaryPV2222;
            })(BinaryPV222 || {});
            var DeviceStatus222 = /* @__PURE__ */ ((DeviceStatus2222) => {
              DeviceStatus2222[DeviceStatus2222["OPERATIONAL"] = 0] = "OPERATIONAL";
              DeviceStatus2222[DeviceStatus2222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
              DeviceStatus2222[DeviceStatus2222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
              DeviceStatus2222[DeviceStatus2222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
              DeviceStatus2222[DeviceStatus2222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
              DeviceStatus2222[DeviceStatus2222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
              return DeviceStatus2222;
            })(DeviceStatus222 || {});
            var DoorAlarmState222 = /* @__PURE__ */ ((DoorAlarmState2222) => {
              DoorAlarmState2222[DoorAlarmState2222["NORMAL"] = 0] = "NORMAL";
              DoorAlarmState2222[DoorAlarmState2222["ALARM"] = 1] = "ALARM";
              DoorAlarmState2222[DoorAlarmState2222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
              DoorAlarmState2222[DoorAlarmState2222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
              DoorAlarmState2222[DoorAlarmState2222["TAMPER"] = 4] = "TAMPER";
              DoorAlarmState2222[DoorAlarmState2222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
              DoorAlarmState2222[DoorAlarmState2222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
              DoorAlarmState2222[DoorAlarmState2222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
              DoorAlarmState2222[DoorAlarmState2222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
              return DoorAlarmState2222;
            })(DoorAlarmState222 || {});
            var DoorSecuredStatus222 = /* @__PURE__ */ ((DoorSecuredStatus2222) => {
              DoorSecuredStatus2222[DoorSecuredStatus2222["SECURED"] = 0] = "SECURED";
              DoorSecuredStatus2222[DoorSecuredStatus2222["UNSECURED"] = 1] = "UNSECURED";
              DoorSecuredStatus2222[DoorSecuredStatus2222["UNKNOWN"] = 2] = "UNKNOWN";
              return DoorSecuredStatus2222;
            })(DoorSecuredStatus222 || {});
            var DoorStatus222 = /* @__PURE__ */ ((DoorStatus2222) => {
              DoorStatus2222[DoorStatus2222["CLOSED"] = 0] = "CLOSED";
              DoorStatus2222[DoorStatus2222["OPENED"] = 1] = "OPENED";
              DoorStatus2222[DoorStatus2222["UNKNOWN"] = 2] = "UNKNOWN";
              DoorStatus2222[DoorStatus2222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
              DoorStatus2222[DoorStatus2222["UNUSED"] = 4] = "UNUSED";
              DoorStatus2222[DoorStatus2222["NONE"] = 5] = "NONE";
              DoorStatus2222[DoorStatus2222["CLOSING"] = 6] = "CLOSING";
              DoorStatus2222[DoorStatus2222["OPENING"] = 7] = "OPENING";
              DoorStatus2222[DoorStatus2222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
              DoorStatus2222[DoorStatus2222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
              return DoorStatus2222;
            })(DoorStatus222 || {});
            var DoorValue222 = /* @__PURE__ */ ((DoorValue2222) => {
              DoorValue2222[DoorValue2222["LOCK"] = 0] = "LOCK";
              DoorValue2222[DoorValue2222["UNLOCK"] = 1] = "UNLOCK";
              DoorValue2222[DoorValue2222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
              DoorValue2222[DoorValue2222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
              return DoorValue2222;
            })(DoorValue222 || {});
            var EngineeringUnits222 = /* @__PURE__ */ ((EngineeringUnits2222) => {
              EngineeringUnits2222[EngineeringUnits2222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
              EngineeringUnits2222[EngineeringUnits2222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
              EngineeringUnits2222[EngineeringUnits2222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
              EngineeringUnits2222[EngineeringUnits2222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
              EngineeringUnits2222[EngineeringUnits2222["CURRENCY1"] = 105] = "CURRENCY1";
              EngineeringUnits2222[EngineeringUnits2222["CURRENCY2"] = 106] = "CURRENCY2";
              EngineeringUnits2222[EngineeringUnits2222["CURRENCY3"] = 107] = "CURRENCY3";
              EngineeringUnits2222[EngineeringUnits2222["CURRENCY4"] = 108] = "CURRENCY4";
              EngineeringUnits2222[EngineeringUnits2222["CURRENCY5"] = 109] = "CURRENCY5";
              EngineeringUnits2222[EngineeringUnits2222["CURRENCY6"] = 110] = "CURRENCY6";
              EngineeringUnits2222[EngineeringUnits2222["CURRENCY7"] = 111] = "CURRENCY7";
              EngineeringUnits2222[EngineeringUnits2222["CURRENCY8"] = 112] = "CURRENCY8";
              EngineeringUnits2222[EngineeringUnits2222["CURRENCY9"] = 113] = "CURRENCY9";
              EngineeringUnits2222[EngineeringUnits2222["CURRENCY10"] = 114] = "CURRENCY10";
              EngineeringUnits2222[EngineeringUnits2222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
              EngineeringUnits2222[EngineeringUnits2222["AMPERES"] = 3] = "AMPERES";
              EngineeringUnits2222[EngineeringUnits2222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
              EngineeringUnits2222[EngineeringUnits2222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
              EngineeringUnits2222[EngineeringUnits2222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
              EngineeringUnits2222[EngineeringUnits2222["DECIBELS"] = 199] = "DECIBELS";
              EngineeringUnits2222[EngineeringUnits2222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
              EngineeringUnits2222[EngineeringUnits2222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
              EngineeringUnits2222[EngineeringUnits2222["FARADS"] = 170] = "FARADS";
              EngineeringUnits2222[EngineeringUnits2222["HENRYS"] = 171] = "HENRYS";
              EngineeringUnits2222[EngineeringUnits2222["OHMS"] = 4] = "OHMS";
              EngineeringUnits2222[EngineeringUnits2222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
              EngineeringUnits2222[EngineeringUnits2222["OHM_METERS"] = 172] = "OHM_METERS";
              EngineeringUnits2222[EngineeringUnits2222["MILLIOHMS"] = 145] = "MILLIOHMS";
              EngineeringUnits2222[EngineeringUnits2222["KILOHMS"] = 122] = "KILOHMS";
              EngineeringUnits2222[EngineeringUnits2222["MEGOHMS"] = 123] = "MEGOHMS";
              EngineeringUnits2222[EngineeringUnits2222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
              EngineeringUnits2222[EngineeringUnits2222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
              EngineeringUnits2222[EngineeringUnits2222["SIEMENS"] = 173] = "SIEMENS";
              EngineeringUnits2222[EngineeringUnits2222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
              EngineeringUnits2222[EngineeringUnits2222["TESLAS"] = 175] = "TESLAS";
              EngineeringUnits2222[EngineeringUnits2222["VOLTS"] = 5] = "VOLTS";
              EngineeringUnits2222[EngineeringUnits2222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
              EngineeringUnits2222[EngineeringUnits2222["KILOVOLTS"] = 6] = "KILOVOLTS";
              EngineeringUnits2222[EngineeringUnits2222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
              EngineeringUnits2222[EngineeringUnits2222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
              EngineeringUnits2222[EngineeringUnits2222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
              EngineeringUnits2222[EngineeringUnits2222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
              EngineeringUnits2222[EngineeringUnits2222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
              EngineeringUnits2222[EngineeringUnits2222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
              EngineeringUnits2222[EngineeringUnits2222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
              EngineeringUnits2222[EngineeringUnits2222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
              EngineeringUnits2222[EngineeringUnits2222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
              EngineeringUnits2222[EngineeringUnits2222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
              EngineeringUnits2222[EngineeringUnits2222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
              EngineeringUnits2222[EngineeringUnits2222["WEBERS"] = 178] = "WEBERS";
              EngineeringUnits2222[EngineeringUnits2222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
              EngineeringUnits2222[EngineeringUnits2222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
              EngineeringUnits2222[EngineeringUnits2222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
              EngineeringUnits2222[EngineeringUnits2222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
              EngineeringUnits2222[EngineeringUnits2222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
              EngineeringUnits2222[EngineeringUnits2222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
              EngineeringUnits2222[EngineeringUnits2222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
              EngineeringUnits2222[EngineeringUnits2222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
              EngineeringUnits2222[EngineeringUnits2222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
              EngineeringUnits2222[EngineeringUnits2222["JOULES"] = 16] = "JOULES";
              EngineeringUnits2222[EngineeringUnits2222["KILOJOULES"] = 17] = "KILOJOULES";
              EngineeringUnits2222[EngineeringUnits2222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
              EngineeringUnits2222[EngineeringUnits2222["MEGAJOULES"] = 126] = "MEGAJOULES";
              EngineeringUnits2222[EngineeringUnits2222["WATT_HOURS"] = 18] = "WATT_HOURS";
              EngineeringUnits2222[EngineeringUnits2222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
              EngineeringUnits2222[EngineeringUnits2222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
              EngineeringUnits2222[EngineeringUnits2222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
              EngineeringUnits2222[EngineeringUnits2222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
              EngineeringUnits2222[EngineeringUnits2222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
              EngineeringUnits2222[EngineeringUnits2222["BTUS"] = 20] = "BTUS";
              EngineeringUnits2222[EngineeringUnits2222["KILO_BTUS"] = 147] = "KILO_BTUS";
              EngineeringUnits2222[EngineeringUnits2222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
              EngineeringUnits2222[EngineeringUnits2222["THERMS"] = 21] = "THERMS";
              EngineeringUnits2222[EngineeringUnits2222["TON_HOURS"] = 22] = "TON_HOURS";
              EngineeringUnits2222[EngineeringUnits2222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
              EngineeringUnits2222[EngineeringUnits2222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
              EngineeringUnits2222[EngineeringUnits2222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
              EngineeringUnits2222[EngineeringUnits2222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
              EngineeringUnits2222[EngineeringUnits2222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
              EngineeringUnits2222[EngineeringUnits2222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
              EngineeringUnits2222[EngineeringUnits2222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
              EngineeringUnits2222[EngineeringUnits2222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
              EngineeringUnits2222[EngineeringUnits2222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
              EngineeringUnits2222[EngineeringUnits2222["NEWTON"] = 153] = "NEWTON";
              EngineeringUnits2222[EngineeringUnits2222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["HERTZ"] = 27] = "HERTZ";
              EngineeringUnits2222[EngineeringUnits2222["KILOHERTZ"] = 129] = "KILOHERTZ";
              EngineeringUnits2222[EngineeringUnits2222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
              EngineeringUnits2222[EngineeringUnits2222["PER_HOUR"] = 131] = "PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
              EngineeringUnits2222[EngineeringUnits2222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
              EngineeringUnits2222[EngineeringUnits2222["MICROMETERS"] = 194] = "MICROMETERS";
              EngineeringUnits2222[EngineeringUnits2222["MILLIMETERS"] = 30] = "MILLIMETERS";
              EngineeringUnits2222[EngineeringUnits2222["CENTIMETERS"] = 118] = "CENTIMETERS";
              EngineeringUnits2222[EngineeringUnits2222["KILOMETERS"] = 193] = "KILOMETERS";
              EngineeringUnits2222[EngineeringUnits2222["METERS"] = 31] = "METERS";
              EngineeringUnits2222[EngineeringUnits2222["INCHES"] = 32] = "INCHES";
              EngineeringUnits2222[EngineeringUnits2222["FEET"] = 33] = "FEET";
              EngineeringUnits2222[EngineeringUnits2222["CANDELAS"] = 179] = "CANDELAS";
              EngineeringUnits2222[EngineeringUnits2222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
              EngineeringUnits2222[EngineeringUnits2222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
              EngineeringUnits2222[EngineeringUnits2222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
              EngineeringUnits2222[EngineeringUnits2222["LUMENS"] = 36] = "LUMENS";
              EngineeringUnits2222[EngineeringUnits2222["LUXES"] = 37] = "LUXES";
              EngineeringUnits2222[EngineeringUnits2222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
              EngineeringUnits2222[EngineeringUnits2222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
              EngineeringUnits2222[EngineeringUnits2222["GRAMS"] = 195] = "GRAMS";
              EngineeringUnits2222[EngineeringUnits2222["KILOGRAMS"] = 39] = "KILOGRAMS";
              EngineeringUnits2222[EngineeringUnits2222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
              EngineeringUnits2222[EngineeringUnits2222["TONS"] = 41] = "TONS";
              EngineeringUnits2222[EngineeringUnits2222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["MILLIWATTS"] = 132] = "MILLIWATTS";
              EngineeringUnits2222[EngineeringUnits2222["WATTS"] = 47] = "WATTS";
              EngineeringUnits2222[EngineeringUnits2222["KILOWATTS"] = 48] = "KILOWATTS";
              EngineeringUnits2222[EngineeringUnits2222["MEGAWATTS"] = 49] = "MEGAWATTS";
              EngineeringUnits2222[EngineeringUnits2222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
              EngineeringUnits2222[EngineeringUnits2222["HORSEPOWER"] = 51] = "HORSEPOWER";
              EngineeringUnits2222[EngineeringUnits2222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
              EngineeringUnits2222[EngineeringUnits2222["PASCALS"] = 53] = "PASCALS";
              EngineeringUnits2222[EngineeringUnits2222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
              EngineeringUnits2222[EngineeringUnits2222["KILOPASCALS"] = 54] = "KILOPASCALS";
              EngineeringUnits2222[EngineeringUnits2222["MILLIBARS"] = 134] = "MILLIBARS";
              EngineeringUnits2222[EngineeringUnits2222["BARS"] = 55] = "BARS";
              EngineeringUnits2222[EngineeringUnits2222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
              EngineeringUnits2222[EngineeringUnits2222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
              EngineeringUnits2222[EngineeringUnits2222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
              EngineeringUnits2222[EngineeringUnits2222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
              EngineeringUnits2222[EngineeringUnits2222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
              EngineeringUnits2222[EngineeringUnits2222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
              EngineeringUnits2222[EngineeringUnits2222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
              EngineeringUnits2222[EngineeringUnits2222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
              EngineeringUnits2222[EngineeringUnits2222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
              EngineeringUnits2222[EngineeringUnits2222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
              EngineeringUnits2222[EngineeringUnits2222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
              EngineeringUnits2222[EngineeringUnits2222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
              EngineeringUnits2222[EngineeringUnits2222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
              EngineeringUnits2222[EngineeringUnits2222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
              EngineeringUnits2222[EngineeringUnits2222["YEARS"] = 67] = "YEARS";
              EngineeringUnits2222[EngineeringUnits2222["MONTHS"] = 68] = "MONTHS";
              EngineeringUnits2222[EngineeringUnits2222["WEEKS"] = 69] = "WEEKS";
              EngineeringUnits2222[EngineeringUnits2222["DAYS"] = 70] = "DAYS";
              EngineeringUnits2222[EngineeringUnits2222["HOURS"] = 71] = "HOURS";
              EngineeringUnits2222[EngineeringUnits2222["MINUTES"] = 72] = "MINUTES";
              EngineeringUnits2222[EngineeringUnits2222["SECONDS"] = 73] = "SECONDS";
              EngineeringUnits2222[EngineeringUnits2222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
              EngineeringUnits2222[EngineeringUnits2222["MILLISECONDS"] = 159] = "MILLISECONDS";
              EngineeringUnits2222[EngineeringUnits2222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
              EngineeringUnits2222[EngineeringUnits2222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
              EngineeringUnits2222[EngineeringUnits2222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
              EngineeringUnits2222[EngineeringUnits2222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
              EngineeringUnits2222[EngineeringUnits2222["MILLILITERS"] = 197] = "MILLILITERS";
              EngineeringUnits2222[EngineeringUnits2222["LITERS"] = 82] = "LITERS";
              EngineeringUnits2222[EngineeringUnits2222["US_GALLONS"] = 83] = "US_GALLONS";
              EngineeringUnits2222[EngineeringUnits2222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
              EngineeringUnits2222[EngineeringUnits2222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
              EngineeringUnits2222[EngineeringUnits2222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
              EngineeringUnits2222[EngineeringUnits2222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
              EngineeringUnits2222[EngineeringUnits2222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
              EngineeringUnits2222[EngineeringUnits2222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
              EngineeringUnits2222[EngineeringUnits2222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
              EngineeringUnits2222[EngineeringUnits2222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
              EngineeringUnits2222[EngineeringUnits2222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
              EngineeringUnits2222[EngineeringUnits2222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
              EngineeringUnits2222[EngineeringUnits2222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
              EngineeringUnits2222[EngineeringUnits2222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
              EngineeringUnits2222[EngineeringUnits2222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
              EngineeringUnits2222[EngineeringUnits2222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
              EngineeringUnits2222[EngineeringUnits2222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
              EngineeringUnits2222[EngineeringUnits2222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
              EngineeringUnits2222[EngineeringUnits2222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
              EngineeringUnits2222[EngineeringUnits2222["NO_UNITS"] = 95] = "NO_UNITS";
              EngineeringUnits2222[EngineeringUnits2222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
              EngineeringUnits2222[EngineeringUnits2222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
              EngineeringUnits2222[EngineeringUnits2222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
              EngineeringUnits2222[EngineeringUnits2222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
              EngineeringUnits2222[EngineeringUnits2222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
              EngineeringUnits2222[EngineeringUnits2222["PERCENT"] = 98] = "PERCENT";
              EngineeringUnits2222[EngineeringUnits2222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
              EngineeringUnits2222[EngineeringUnits2222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
              EngineeringUnits2222[EngineeringUnits2222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["PER_MINUTE"] = 100] = "PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["PER_SECOND"] = 101] = "PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
              EngineeringUnits2222[EngineeringUnits2222["RADIANS"] = 103] = "RADIANS";
              EngineeringUnits2222[EngineeringUnits2222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
              EngineeringUnits2222[EngineeringUnits2222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
              EngineeringUnits2222[EngineeringUnits2222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
              EngineeringUnits2222[EngineeringUnits2222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
              EngineeringUnits2222[EngineeringUnits2222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
              EngineeringUnits2222[EngineeringUnits2222["PER_MILLE"] = 207] = "PER_MILLE";
              EngineeringUnits2222[EngineeringUnits2222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
              EngineeringUnits2222[EngineeringUnits2222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
              EngineeringUnits2222[EngineeringUnits2222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
              EngineeringUnits2222[EngineeringUnits2222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
              EngineeringUnits2222[EngineeringUnits2222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
              EngineeringUnits2222[EngineeringUnits2222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
              EngineeringUnits2222[EngineeringUnits2222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
              EngineeringUnits2222[EngineeringUnits2222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
              EngineeringUnits2222[EngineeringUnits2222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
              EngineeringUnits2222[EngineeringUnits2222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
              EngineeringUnits2222[EngineeringUnits2222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
              EngineeringUnits2222[EngineeringUnits2222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
              EngineeringUnits2222[EngineeringUnits2222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
              EngineeringUnits2222[EngineeringUnits2222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
              EngineeringUnits2222[EngineeringUnits2222["BECQUERELS"] = 222] = "BECQUERELS";
              EngineeringUnits2222[EngineeringUnits2222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
              EngineeringUnits2222[EngineeringUnits2222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
              EngineeringUnits2222[EngineeringUnits2222["GRAY"] = 225] = "GRAY";
              EngineeringUnits2222[EngineeringUnits2222["MILLIGRAY"] = 226] = "MILLIGRAY";
              EngineeringUnits2222[EngineeringUnits2222["MICROGRAY"] = 227] = "MICROGRAY";
              EngineeringUnits2222[EngineeringUnits2222["SIEVERTS"] = 228] = "SIEVERTS";
              EngineeringUnits2222[EngineeringUnits2222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
              EngineeringUnits2222[EngineeringUnits2222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
              EngineeringUnits2222[EngineeringUnits2222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["MILLIREMS"] = 47814] = "MILLIREMS";
              EngineeringUnits2222[EngineeringUnits2222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
              EngineeringUnits2222[EngineeringUnits2222["DECIBELS_A"] = 232] = "DECIBELS_A";
              EngineeringUnits2222[EngineeringUnits2222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
              EngineeringUnits2222[EngineeringUnits2222["PH"] = 234] = "PH";
              EngineeringUnits2222[EngineeringUnits2222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
              EngineeringUnits2222[EngineeringUnits2222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
              return EngineeringUnits2222;
            })(EngineeringUnits222 || {});
            var EscalatorFault222 = /* @__PURE__ */ ((EscalatorFault2222) => {
              EscalatorFault2222[EscalatorFault2222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
              EscalatorFault2222[EscalatorFault2222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
              EscalatorFault2222[EscalatorFault2222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
              EscalatorFault2222[EscalatorFault2222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
              EscalatorFault2222[EscalatorFault2222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
              EscalatorFault2222[EscalatorFault2222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
              EscalatorFault2222[EscalatorFault2222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
              EscalatorFault2222[EscalatorFault2222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
              EscalatorFault2222[EscalatorFault2222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
              return EscalatorFault2222;
            })(EscalatorFault222 || {});
            var EscalatorMode222 = /* @__PURE__ */ ((EscalatorMode2222) => {
              EscalatorMode2222[EscalatorMode2222["UNKNOWN"] = 0] = "UNKNOWN";
              EscalatorMode2222[EscalatorMode2222["STOP"] = 1] = "STOP";
              EscalatorMode2222[EscalatorMode2222["UP"] = 2] = "UP";
              EscalatorMode2222[EscalatorMode2222["DOWN"] = 3] = "DOWN";
              EscalatorMode2222[EscalatorMode2222["INSPECTION"] = 4] = "INSPECTION";
              EscalatorMode2222[EscalatorMode2222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
              return EscalatorMode2222;
            })(EscalatorMode222 || {});
            var EscalatorOperationDirection222 = /* @__PURE__ */ ((EscalatorOperationDirection2222) => {
              EscalatorOperationDirection2222[EscalatorOperationDirection2222["UNKNOWN"] = 0] = "UNKNOWN";
              EscalatorOperationDirection2222[EscalatorOperationDirection2222["STOPPED"] = 1] = "STOPPED";
              EscalatorOperationDirection2222[EscalatorOperationDirection2222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
              EscalatorOperationDirection2222[EscalatorOperationDirection2222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
              EscalatorOperationDirection2222[EscalatorOperationDirection2222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
              EscalatorOperationDirection2222[EscalatorOperationDirection2222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
              return EscalatorOperationDirection2222;
            })(EscalatorOperationDirection222 || {});
            var EventState222 = /* @__PURE__ */ ((EventState2222) => {
              EventState2222[EventState2222["NORMAL"] = 0] = "NORMAL";
              EventState2222[EventState2222["FAULT"] = 1] = "FAULT";
              EventState2222[EventState2222["OFFNORMAL"] = 2] = "OFFNORMAL";
              EventState2222[EventState2222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
              EventState2222[EventState2222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
              EventState2222[EventState2222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
              return EventState2222;
            })(EventState222 || {});
            var EventType222 = /* @__PURE__ */ ((EventType2222) => {
              EventType2222[EventType2222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
              EventType2222[EventType2222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
              EventType2222[EventType2222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
              EventType2222[EventType2222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
              EventType2222[EventType2222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
              EventType2222[EventType2222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
              EventType2222[EventType2222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
              EventType2222[EventType2222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
              EventType2222[EventType2222["EXTENDED"] = 9] = "EXTENDED";
              EventType2222[EventType2222["BUFFER_READY"] = 10] = "BUFFER_READY";
              EventType2222[EventType2222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
              EventType2222[EventType2222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
              EventType2222[EventType2222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
              EventType2222[EventType2222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
              EventType2222[EventType2222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
              EventType2222[EventType2222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
              EventType2222[EventType2222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
              EventType2222[EventType2222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
              EventType2222[EventType2222["NONE"] = 20] = "NONE";
              EventType2222[EventType2222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
              EventType2222[EventType2222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
              return EventType2222;
            })(EventType222 || {});
            var FaultType222 = /* @__PURE__ */ ((FaultType2222) => {
              FaultType2222[FaultType2222["NONE"] = 0] = "NONE";
              FaultType2222[FaultType2222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
              FaultType2222[FaultType2222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
              FaultType2222[FaultType2222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
              FaultType2222[FaultType2222["FAULT_STATE"] = 4] = "FAULT_STATE";
              FaultType2222[FaultType2222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
              FaultType2222[FaultType2222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
              FaultType2222[FaultType2222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
              return FaultType2222;
            })(FaultType222 || {});
            var FileAccessMethod222 = /* @__PURE__ */ ((FileAccessMethod2222) => {
              FileAccessMethod2222[FileAccessMethod2222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
              FileAccessMethod2222[FileAccessMethod2222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
              return FileAccessMethod2222;
            })(FileAccessMethod222 || {});
            var IPMode222 = /* @__PURE__ */ ((IPMode2222) => {
              IPMode2222[IPMode2222["NORMAL"] = 0] = "NORMAL";
              IPMode2222[IPMode2222["FOREIGN"] = 1] = "FOREIGN";
              IPMode2222[IPMode2222["BBMD"] = 2] = "BBMD";
              return IPMode2222;
            })(IPMode222 || {});
            var LifeSafetyMode222 = /* @__PURE__ */ ((LifeSafetyMode2222) => {
              LifeSafetyMode2222[LifeSafetyMode2222["OFF"] = 0] = "OFF";
              LifeSafetyMode2222[LifeSafetyMode2222["ON"] = 1] = "ON";
              LifeSafetyMode2222[LifeSafetyMode2222["TEST"] = 2] = "TEST";
              LifeSafetyMode2222[LifeSafetyMode2222["MANNED"] = 3] = "MANNED";
              LifeSafetyMode2222[LifeSafetyMode2222["UNMANNED"] = 4] = "UNMANNED";
              LifeSafetyMode2222[LifeSafetyMode2222["ARMED"] = 5] = "ARMED";
              LifeSafetyMode2222[LifeSafetyMode2222["DISARMED"] = 6] = "DISARMED";
              LifeSafetyMode2222[LifeSafetyMode2222["PREARMED"] = 7] = "PREARMED";
              LifeSafetyMode2222[LifeSafetyMode2222["SLOW"] = 8] = "SLOW";
              LifeSafetyMode2222[LifeSafetyMode2222["FAST"] = 9] = "FAST";
              LifeSafetyMode2222[LifeSafetyMode2222["DISCONNECTED"] = 10] = "DISCONNECTED";
              LifeSafetyMode2222[LifeSafetyMode2222["ENABLED"] = 11] = "ENABLED";
              LifeSafetyMode2222[LifeSafetyMode2222["DISABLED"] = 12] = "DISABLED";
              LifeSafetyMode2222[LifeSafetyMode2222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
              LifeSafetyMode2222[LifeSafetyMode2222["DEFAULT"] = 14] = "DEFAULT";
              return LifeSafetyMode2222;
            })(LifeSafetyMode222 || {});
            var LifeSafetyOperation222 = /* @__PURE__ */ ((LifeSafetyOperation2222) => {
              LifeSafetyOperation2222[LifeSafetyOperation2222["NONE"] = 0] = "NONE";
              LifeSafetyOperation2222[LifeSafetyOperation2222["SILENCE"] = 1] = "SILENCE";
              LifeSafetyOperation2222[LifeSafetyOperation2222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
              LifeSafetyOperation2222[LifeSafetyOperation2222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
              LifeSafetyOperation2222[LifeSafetyOperation2222["RESET"] = 4] = "RESET";
              LifeSafetyOperation2222[LifeSafetyOperation2222["RESET_ALARM"] = 5] = "RESET_ALARM";
              LifeSafetyOperation2222[LifeSafetyOperation2222["RESET_FAULT"] = 6] = "RESET_FAULT";
              LifeSafetyOperation2222[LifeSafetyOperation2222["UNSILENCE"] = 7] = "UNSILENCE";
              LifeSafetyOperation2222[LifeSafetyOperation2222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
              LifeSafetyOperation2222[LifeSafetyOperation2222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
              return LifeSafetyOperation2222;
            })(LifeSafetyOperation222 || {});
            var LifeSafetyState222 = /* @__PURE__ */ ((LifeSafetyState2222) => {
              LifeSafetyState2222[LifeSafetyState2222["QUIET"] = 0] = "QUIET";
              LifeSafetyState2222[LifeSafetyState2222["PRE_ALARM"] = 1] = "PRE_ALARM";
              LifeSafetyState2222[LifeSafetyState2222["ALARM"] = 2] = "ALARM";
              LifeSafetyState2222[LifeSafetyState2222["FAULT"] = 3] = "FAULT";
              LifeSafetyState2222[LifeSafetyState2222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
              LifeSafetyState2222[LifeSafetyState2222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
              LifeSafetyState2222[LifeSafetyState2222["NOT_READY"] = 6] = "NOT_READY";
              LifeSafetyState2222[LifeSafetyState2222["ACTIVE"] = 7] = "ACTIVE";
              LifeSafetyState2222[LifeSafetyState2222["TAMPER"] = 8] = "TAMPER";
              LifeSafetyState2222[LifeSafetyState2222["TEST_ALARM"] = 9] = "TEST_ALARM";
              LifeSafetyState2222[LifeSafetyState2222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
              LifeSafetyState2222[LifeSafetyState2222["TEST_FAULT"] = 11] = "TEST_FAULT";
              LifeSafetyState2222[LifeSafetyState2222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
              LifeSafetyState2222[LifeSafetyState2222["HOLDUP"] = 13] = "HOLDUP";
              LifeSafetyState2222[LifeSafetyState2222["DURESS"] = 14] = "DURESS";
              LifeSafetyState2222[LifeSafetyState2222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
              LifeSafetyState2222[LifeSafetyState2222["ABNORMAL"] = 16] = "ABNORMAL";
              LifeSafetyState2222[LifeSafetyState2222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
              LifeSafetyState2222[LifeSafetyState2222["DELAYED"] = 18] = "DELAYED";
              LifeSafetyState2222[LifeSafetyState2222["BLOCKED"] = 19] = "BLOCKED";
              LifeSafetyState2222[LifeSafetyState2222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
              LifeSafetyState2222[LifeSafetyState2222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
              LifeSafetyState2222[LifeSafetyState2222["SUPERVISORY"] = 22] = "SUPERVISORY";
              LifeSafetyState2222[LifeSafetyState2222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
              return LifeSafetyState2222;
            })(LifeSafetyState222 || {});
            var LiftCarDirection222 = /* @__PURE__ */ ((LiftCarDirection2222) => {
              LiftCarDirection2222[LiftCarDirection2222["UNKNOWN"] = 0] = "UNKNOWN";
              LiftCarDirection2222[LiftCarDirection2222["NONE"] = 1] = "NONE";
              LiftCarDirection2222[LiftCarDirection2222["STOPPED"] = 2] = "STOPPED";
              LiftCarDirection2222[LiftCarDirection2222["UP"] = 3] = "UP";
              LiftCarDirection2222[LiftCarDirection2222["DOWN"] = 4] = "DOWN";
              LiftCarDirection2222[LiftCarDirection2222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
              return LiftCarDirection2222;
            })(LiftCarDirection222 || {});
            var LiftCarDoorCommand222 = /* @__PURE__ */ ((LiftCarDoorCommand2222) => {
              LiftCarDoorCommand2222[LiftCarDoorCommand2222["NONE"] = 0] = "NONE";
              LiftCarDoorCommand2222[LiftCarDoorCommand2222["OPEN"] = 1] = "OPEN";
              LiftCarDoorCommand2222[LiftCarDoorCommand2222["CLOSE"] = 2] = "CLOSE";
              return LiftCarDoorCommand2222;
            })(LiftCarDoorCommand222 || {});
            var LiftCarDriveStatus222 = /* @__PURE__ */ ((LiftCarDriveStatus2222) => {
              LiftCarDriveStatus2222[LiftCarDriveStatus2222["UNKNOWN"] = 0] = "UNKNOWN";
              LiftCarDriveStatus2222[LiftCarDriveStatus2222["STATIONARY"] = 1] = "STATIONARY";
              LiftCarDriveStatus2222[LiftCarDriveStatus2222["BRAKING"] = 2] = "BRAKING";
              LiftCarDriveStatus2222[LiftCarDriveStatus2222["ACCELERATE"] = 3] = "ACCELERATE";
              LiftCarDriveStatus2222[LiftCarDriveStatus2222["DECELERATE"] = 4] = "DECELERATE";
              LiftCarDriveStatus2222[LiftCarDriveStatus2222["RATED_SPEED"] = 5] = "RATED_SPEED";
              LiftCarDriveStatus2222[LiftCarDriveStatus2222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
              LiftCarDriveStatus2222[LiftCarDriveStatus2222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
              LiftCarDriveStatus2222[LiftCarDriveStatus2222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
              LiftCarDriveStatus2222[LiftCarDriveStatus2222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
              return LiftCarDriveStatus2222;
            })(LiftCarDriveStatus222 || {});
            var LiftCarMode222 = /* @__PURE__ */ ((LiftCarMode2222) => {
              LiftCarMode2222[LiftCarMode2222["UNKNOWN"] = 0] = "UNKNOWN";
              LiftCarMode2222[LiftCarMode2222["NORMAL"] = 1] = "NORMAL";
              LiftCarMode2222[LiftCarMode2222["VIP"] = 2] = "VIP";
              LiftCarMode2222[LiftCarMode2222["HOMING"] = 3] = "HOMING";
              LiftCarMode2222[LiftCarMode2222["PARKING"] = 4] = "PARKING";
              LiftCarMode2222[LiftCarMode2222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
              LiftCarMode2222[LiftCarMode2222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
              LiftCarMode2222[LiftCarMode2222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
              LiftCarMode2222[LiftCarMode2222["INSPECTION"] = 8] = "INSPECTION";
              LiftCarMode2222[LiftCarMode2222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
              LiftCarMode2222[LiftCarMode2222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
              LiftCarMode2222[LiftCarMode2222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
              LiftCarMode2222[LiftCarMode2222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
              LiftCarMode2222[LiftCarMode2222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
              return LiftCarMode2222;
            })(LiftCarMode222 || {});
            var LiftFault222 = /* @__PURE__ */ ((LiftFault2222) => {
              LiftFault2222[LiftFault2222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
              LiftFault2222[LiftFault2222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
              LiftFault2222[LiftFault2222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
              LiftFault2222[LiftFault2222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
              LiftFault2222[LiftFault2222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
              LiftFault2222[LiftFault2222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
              LiftFault2222[LiftFault2222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
              LiftFault2222[LiftFault2222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
              LiftFault2222[LiftFault2222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
              LiftFault2222[LiftFault2222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
              LiftFault2222[LiftFault2222["START_FAILURE"] = 10] = "START_FAILURE";
              LiftFault2222[LiftFault2222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
              LiftFault2222[LiftFault2222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
              LiftFault2222[LiftFault2222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
              LiftFault2222[LiftFault2222["POSITION_LOST"] = 14] = "POSITION_LOST";
              LiftFault2222[LiftFault2222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
              LiftFault2222[LiftFault2222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
              return LiftFault2222;
            })(LiftFault222 || {});
            var LiftGroupMode222 = /* @__PURE__ */ ((LiftGroupMode2222) => {
              LiftGroupMode2222[LiftGroupMode2222["UNKNOWN"] = 0] = "UNKNOWN";
              LiftGroupMode2222[LiftGroupMode2222["NORMAL"] = 1] = "NORMAL";
              LiftGroupMode2222[LiftGroupMode2222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
              LiftGroupMode2222[LiftGroupMode2222["TWO_WAY"] = 3] = "TWO_WAY";
              LiftGroupMode2222[LiftGroupMode2222["FOUR_WAY"] = 4] = "FOUR_WAY";
              LiftGroupMode2222[LiftGroupMode2222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
              LiftGroupMode2222[LiftGroupMode2222["UP_PEAK"] = 6] = "UP_PEAK";
              return LiftGroupMode2222;
            })(LiftGroupMode222 || {});
            var LightingInProgress222 = /* @__PURE__ */ ((LightingInProgress2222) => {
              LightingInProgress2222[LightingInProgress2222["IDLE"] = 0] = "IDLE";
              LightingInProgress2222[LightingInProgress2222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
              LightingInProgress2222[LightingInProgress2222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
              LightingInProgress2222[LightingInProgress2222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
              LightingInProgress2222[LightingInProgress2222["OTHER"] = 4] = "OTHER";
              return LightingInProgress2222;
            })(LightingInProgress222 || {});
            var LightingOperation222 = /* @__PURE__ */ ((LightingOperation2222) => {
              LightingOperation2222[LightingOperation2222["NONE"] = 0] = "NONE";
              LightingOperation2222[LightingOperation2222["FADE_TO"] = 1] = "FADE_TO";
              LightingOperation2222[LightingOperation2222["RAMP_TO"] = 2] = "RAMP_TO";
              LightingOperation2222[LightingOperation2222["STEP_UP"] = 3] = "STEP_UP";
              LightingOperation2222[LightingOperation2222["STEP_DOWN"] = 4] = "STEP_DOWN";
              LightingOperation2222[LightingOperation2222["STEP_ON"] = 5] = "STEP_ON";
              LightingOperation2222[LightingOperation2222["STEP_OFF"] = 6] = "STEP_OFF";
              LightingOperation2222[LightingOperation2222["WARN"] = 7] = "WARN";
              LightingOperation2222[LightingOperation2222["WARN_OFF"] = 8] = "WARN_OFF";
              LightingOperation2222[LightingOperation2222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
              LightingOperation2222[LightingOperation2222["STOP"] = 10] = "STOP";
              return LightingOperation2222;
            })(LightingOperation222 || {});
            var LightingTransition222 = /* @__PURE__ */ ((LightingTransition2222) => {
              LightingTransition2222[LightingTransition2222["NONE"] = 0] = "NONE";
              LightingTransition2222[LightingTransition2222["FADE"] = 1] = "FADE";
              LightingTransition2222[LightingTransition2222["RAMP"] = 2] = "RAMP";
              return LightingTransition2222;
            })(LightingTransition222 || {});
            var LockStatus222 = /* @__PURE__ */ ((LockStatus2222) => {
              LockStatus2222[LockStatus2222["LOCKED"] = 0] = "LOCKED";
              LockStatus2222[LockStatus2222["UNLOCKED"] = 1] = "UNLOCKED";
              LockStatus2222[LockStatus2222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
              LockStatus2222[LockStatus2222["UNUSED"] = 3] = "UNUSED";
              LockStatus2222[LockStatus2222["UNKNOWN"] = 4] = "UNKNOWN";
              return LockStatus2222;
            })(LockStatus222 || {});
            var LoggingType222 = /* @__PURE__ */ ((LoggingType2222) => {
              LoggingType2222[LoggingType2222["POLLED"] = 0] = "POLLED";
              LoggingType2222[LoggingType2222["COV"] = 1] = "COV";
              LoggingType2222[LoggingType2222["TRIGGERED"] = 2] = "TRIGGERED";
              return LoggingType2222;
            })(LoggingType222 || {});
            var Maintenance222 = /* @__PURE__ */ ((Maintenance2222) => {
              Maintenance2222[Maintenance2222["NONE"] = 0] = "NONE";
              Maintenance2222[Maintenance2222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
              Maintenance2222[Maintenance2222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
              Maintenance2222[Maintenance2222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
              return Maintenance2222;
            })(Maintenance222 || {});
            var NetworkNumberQuality222 = /* @__PURE__ */ ((NetworkNumberQuality2222) => {
              NetworkNumberQuality2222[NetworkNumberQuality2222["UNKNOWN"] = 0] = "UNKNOWN";
              NetworkNumberQuality2222[NetworkNumberQuality2222["LEARNED"] = 1] = "LEARNED";
              NetworkNumberQuality2222[NetworkNumberQuality2222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
              NetworkNumberQuality2222[NetworkNumberQuality2222["CONFIGURED"] = 3] = "CONFIGURED";
              return NetworkNumberQuality2222;
            })(NetworkNumberQuality222 || {});
            var NetworkPortCommand222 = /* @__PURE__ */ ((NetworkPortCommand2222) => {
              NetworkPortCommand2222[NetworkPortCommand2222["IDLE"] = 0] = "IDLE";
              NetworkPortCommand2222[NetworkPortCommand2222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
              NetworkPortCommand2222[NetworkPortCommand2222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
              NetworkPortCommand2222[NetworkPortCommand2222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
              NetworkPortCommand2222[NetworkPortCommand2222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
              NetworkPortCommand2222[NetworkPortCommand2222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
              NetworkPortCommand2222[NetworkPortCommand2222["DISCONNECT"] = 6] = "DISCONNECT";
              NetworkPortCommand2222[NetworkPortCommand2222["RESTART_PORT"] = 7] = "RESTART_PORT";
              return NetworkPortCommand2222;
            })(NetworkPortCommand222 || {});
            var NetworkType222 = /* @__PURE__ */ ((NetworkType2222) => {
              NetworkType2222[NetworkType2222["ETHERNET"] = 0] = "ETHERNET";
              NetworkType2222[NetworkType2222["ARCNET"] = 1] = "ARCNET";
              NetworkType2222[NetworkType2222["MSTP"] = 2] = "MSTP";
              NetworkType2222[NetworkType2222["PTP"] = 3] = "PTP";
              NetworkType2222[NetworkType2222["LONTALK"] = 4] = "LONTALK";
              NetworkType2222[NetworkType2222["IPV4"] = 5] = "IPV4";
              NetworkType2222[NetworkType2222["ZIGBEE"] = 6] = "ZIGBEE";
              NetworkType2222[NetworkType2222["VIRTUAL"] = 7] = "VIRTUAL";
              NetworkType2222[NetworkType2222["IPV6"] = 9] = "IPV6";
              NetworkType2222[NetworkType2222["SERIAL"] = 10] = "SERIAL";
              return NetworkType2222;
            })(NetworkType222 || {});
            var NodeType222 = /* @__PURE__ */ ((NodeType2222) => {
              NodeType2222[NodeType2222["UNKNOWN"] = 0] = "UNKNOWN";
              NodeType2222[NodeType2222["SYSTEM"] = 1] = "SYSTEM";
              NodeType2222[NodeType2222["NETWORK"] = 2] = "NETWORK";
              NodeType2222[NodeType2222["DEVICE"] = 3] = "DEVICE";
              NodeType2222[NodeType2222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
              NodeType2222[NodeType2222["AREA"] = 5] = "AREA";
              NodeType2222[NodeType2222["EQUIPMENT"] = 6] = "EQUIPMENT";
              NodeType2222[NodeType2222["POINT"] = 7] = "POINT";
              NodeType2222[NodeType2222["COLLECTION"] = 8] = "COLLECTION";
              NodeType2222[NodeType2222["PROPERTY"] = 9] = "PROPERTY";
              NodeType2222[NodeType2222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
              NodeType2222[NodeType2222["OTHER"] = 11] = "OTHER";
              NodeType2222[NodeType2222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
              NodeType2222[NodeType2222["BUILDING"] = 13] = "BUILDING";
              NodeType2222[NodeType2222["FLOOR"] = 14] = "FLOOR";
              NodeType2222[NodeType2222["SECTION"] = 15] = "SECTION";
              NodeType2222[NodeType2222["MODULE"] = 16] = "MODULE";
              NodeType2222[NodeType2222["TREE"] = 17] = "TREE";
              NodeType2222[NodeType2222["MEMBER"] = 18] = "MEMBER";
              NodeType2222[NodeType2222["PROTOCOL"] = 19] = "PROTOCOL";
              NodeType2222[NodeType2222["ROOM"] = 20] = "ROOM";
              NodeType2222[NodeType2222["ZONE"] = 21] = "ZONE";
              return NodeType2222;
            })(NodeType222 || {});
            var NotifyType222 = /* @__PURE__ */ ((NotifyType2222) => {
              NotifyType2222[NotifyType2222["ALARM"] = 0] = "ALARM";
              NotifyType2222[NotifyType2222["EVENT"] = 1] = "EVENT";
              NotifyType2222[NotifyType2222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
              return NotifyType2222;
            })(NotifyType222 || {});
            var ObjectType222 = /* @__PURE__ */ ((ObjectType2222) => {
              ObjectType2222[ObjectType2222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
              ObjectType2222[ObjectType2222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
              ObjectType2222[ObjectType2222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
              ObjectType2222[ObjectType2222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
              ObjectType2222[ObjectType2222["ACCESS_USER"] = 35] = "ACCESS_USER";
              ObjectType2222[ObjectType2222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
              ObjectType2222[ObjectType2222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
              ObjectType2222[ObjectType2222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
              ObjectType2222[ObjectType2222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
              ObjectType2222[ObjectType2222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
              ObjectType2222[ObjectType2222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
              ObjectType2222[ObjectType2222["AVERAGING"] = 18] = "AVERAGING";
              ObjectType2222[ObjectType2222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
              ObjectType2222[ObjectType2222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
              ObjectType2222[ObjectType2222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
              ObjectType2222[ObjectType2222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
              ObjectType2222[ObjectType2222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
              ObjectType2222[ObjectType2222["CALENDAR"] = 6] = "CALENDAR";
              ObjectType2222[ObjectType2222["CHANNEL"] = 53] = "CHANNEL";
              ObjectType2222[ObjectType2222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
              ObjectType2222[ObjectType2222["COMMAND"] = 7] = "COMMAND";
              ObjectType2222[ObjectType2222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
              ObjectType2222[ObjectType2222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
              ObjectType2222[ObjectType2222["DATE_VALUE"] = 42] = "DATE_VALUE";
              ObjectType2222[ObjectType2222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
              ObjectType2222[ObjectType2222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
              ObjectType2222[ObjectType2222["DEVICE"] = 8] = "DEVICE";
              ObjectType2222[ObjectType2222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
              ObjectType2222[ObjectType2222["ESCALATOR"] = 58] = "ESCALATOR";
              ObjectType2222[ObjectType2222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
              ObjectType2222[ObjectType2222["EVENT_LOG"] = 25] = "EVENT_LOG";
              ObjectType2222[ObjectType2222["FILE"] = 10] = "FILE";
              ObjectType2222[ObjectType2222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
              ObjectType2222[ObjectType2222["GROUP"] = 11] = "GROUP";
              ObjectType2222[ObjectType2222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
              ObjectType2222[ObjectType2222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
              ObjectType2222[ObjectType2222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
              ObjectType2222[ObjectType2222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
              ObjectType2222[ObjectType2222["LIFT"] = 59] = "LIFT";
              ObjectType2222[ObjectType2222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
              ObjectType2222[ObjectType2222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
              ObjectType2222[ObjectType2222["LOOP"] = 12] = "LOOP";
              ObjectType2222[ObjectType2222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
              ObjectType2222[ObjectType2222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
              ObjectType2222[ObjectType2222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
              ObjectType2222[ObjectType2222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
              ObjectType2222[ObjectType2222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
              ObjectType2222[ObjectType2222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
              ObjectType2222[ObjectType2222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
              ObjectType2222[ObjectType2222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
              ObjectType2222[ObjectType2222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
              ObjectType2222[ObjectType2222["PROGRAM"] = 16] = "PROGRAM";
              ObjectType2222[ObjectType2222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
              ObjectType2222[ObjectType2222["SCHEDULE"] = 17] = "SCHEDULE";
              ObjectType2222[ObjectType2222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
              ObjectType2222[ObjectType2222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
              ObjectType2222[ObjectType2222["TIME_VALUE"] = 50] = "TIME_VALUE";
              ObjectType2222[ObjectType2222["TIMER"] = 31] = "TIMER";
              ObjectType2222[ObjectType2222["TREND_LOG"] = 20] = "TREND_LOG";
              ObjectType2222[ObjectType2222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
              return ObjectType2222;
            })(ObjectType222 || {});
            var Polarity222 = /* @__PURE__ */ ((Polarity2222) => {
              Polarity2222[Polarity2222["NORMAL"] = 0] = "NORMAL";
              Polarity2222[Polarity2222["REVERSE"] = 1] = "REVERSE";
              return Polarity2222;
            })(Polarity222 || {});
            var ProgramError222 = /* @__PURE__ */ ((ProgramError2222) => {
              ProgramError2222[ProgramError2222["NORMAL"] = 0] = "NORMAL";
              ProgramError2222[ProgramError2222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
              ProgramError2222[ProgramError2222["INTERNAL"] = 2] = "INTERNAL";
              ProgramError2222[ProgramError2222["PROGRAM"] = 3] = "PROGRAM";
              ProgramError2222[ProgramError2222["OTHER"] = 4] = "OTHER";
              return ProgramError2222;
            })(ProgramError222 || {});
            var ProgramRequest222 = /* @__PURE__ */ ((ProgramRequest2222) => {
              ProgramRequest2222[ProgramRequest2222["READY"] = 0] = "READY";
              ProgramRequest2222[ProgramRequest2222["LOAD"] = 1] = "LOAD";
              ProgramRequest2222[ProgramRequest2222["RUN"] = 2] = "RUN";
              ProgramRequest2222[ProgramRequest2222["HALT"] = 3] = "HALT";
              ProgramRequest2222[ProgramRequest2222["RESTART"] = 4] = "RESTART";
              ProgramRequest2222[ProgramRequest2222["UNLOAD"] = 5] = "UNLOAD";
              return ProgramRequest2222;
            })(ProgramRequest222 || {});
            var ProgramState222 = /* @__PURE__ */ ((ProgramState2222) => {
              ProgramState2222[ProgramState2222["IDLE"] = 0] = "IDLE";
              ProgramState2222[ProgramState2222["LOADING"] = 1] = "LOADING";
              ProgramState2222[ProgramState2222["RUNNING"] = 2] = "RUNNING";
              ProgramState2222[ProgramState2222["WAITING"] = 3] = "WAITING";
              ProgramState2222[ProgramState2222["HALTED"] = 4] = "HALTED";
              ProgramState2222[ProgramState2222["UNLOADING"] = 5] = "UNLOADING";
              return ProgramState2222;
            })(ProgramState222 || {});
            var PropertyIdentifier222 = /* @__PURE__ */ ((PropertyIdentifier2222) => {
              PropertyIdentifier2222[PropertyIdentifier2222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
              PropertyIdentifier2222[PropertyIdentifier2222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
              PropertyIdentifier2222[PropertyIdentifier2222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
              PropertyIdentifier2222[PropertyIdentifier2222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
              PropertyIdentifier2222[PropertyIdentifier2222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
              PropertyIdentifier2222[PropertyIdentifier2222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
              PropertyIdentifier2222[PropertyIdentifier2222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
              PropertyIdentifier2222[PropertyIdentifier2222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
              PropertyIdentifier2222[PropertyIdentifier2222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
              PropertyIdentifier2222[PropertyIdentifier2222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
              PropertyIdentifier2222[PropertyIdentifier2222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
              PropertyIdentifier2222[PropertyIdentifier2222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
              PropertyIdentifier2222[PropertyIdentifier2222["ACTION"] = 2] = "ACTION";
              PropertyIdentifier2222[PropertyIdentifier2222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
              PropertyIdentifier2222[PropertyIdentifier2222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
              PropertyIdentifier2222[PropertyIdentifier2222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
              PropertyIdentifier2222[PropertyIdentifier2222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
              PropertyIdentifier2222[PropertyIdentifier2222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
              PropertyIdentifier2222[PropertyIdentifier2222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
              PropertyIdentifier2222[PropertyIdentifier2222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
              PropertyIdentifier2222[PropertyIdentifier2222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
              PropertyIdentifier2222[PropertyIdentifier2222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
              PropertyIdentifier2222[PropertyIdentifier2222["ALL"] = 8] = "ALL";
              PropertyIdentifier2222[PropertyIdentifier2222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
              PropertyIdentifier2222[PropertyIdentifier2222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
              PropertyIdentifier2222[PropertyIdentifier2222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
              PropertyIdentifier2222[PropertyIdentifier2222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
              PropertyIdentifier2222[PropertyIdentifier2222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
              PropertyIdentifier2222[PropertyIdentifier2222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
              PropertyIdentifier2222[PropertyIdentifier2222["ARCHIVE"] = 13] = "ARCHIVE";
              PropertyIdentifier2222[PropertyIdentifier2222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
              PropertyIdentifier2222[PropertyIdentifier2222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
              PropertyIdentifier2222[PropertyIdentifier2222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
              PropertyIdentifier2222[PropertyIdentifier2222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
              PropertyIdentifier2222[PropertyIdentifier2222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
              PropertyIdentifier2222[PropertyIdentifier2222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
              PropertyIdentifier2222[PropertyIdentifier2222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
              PropertyIdentifier2222[PropertyIdentifier2222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
              PropertyIdentifier2222[PropertyIdentifier2222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
              PropertyIdentifier2222[PropertyIdentifier2222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
              PropertyIdentifier2222[PropertyIdentifier2222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
              PropertyIdentifier2222[PropertyIdentifier2222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
              PropertyIdentifier2222[PropertyIdentifier2222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
              PropertyIdentifier2222[PropertyIdentifier2222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
              PropertyIdentifier2222[PropertyIdentifier2222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
              PropertyIdentifier2222[PropertyIdentifier2222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
              PropertyIdentifier2222[PropertyIdentifier2222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
              PropertyIdentifier2222[PropertyIdentifier2222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
              PropertyIdentifier2222[PropertyIdentifier2222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
              PropertyIdentifier2222[PropertyIdentifier2222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
              PropertyIdentifier2222[PropertyIdentifier2222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
              PropertyIdentifier2222[PropertyIdentifier2222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["BELONGS_TO"] = 262] = "BELONGS_TO";
              PropertyIdentifier2222[PropertyIdentifier2222["BIAS"] = 14] = "BIAS";
              PropertyIdentifier2222[PropertyIdentifier2222["BIT_MASK"] = 342] = "BIT_MASK";
              PropertyIdentifier2222[PropertyIdentifier2222["BIT_TEXT"] = 343] = "BIT_TEXT";
              PropertyIdentifier2222[PropertyIdentifier2222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
              PropertyIdentifier2222[PropertyIdentifier2222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
              PropertyIdentifier2222[PropertyIdentifier2222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
              PropertyIdentifier2222[PropertyIdentifier2222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
              PropertyIdentifier2222[PropertyIdentifier2222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
              PropertyIdentifier2222[PropertyIdentifier2222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
              PropertyIdentifier2222[PropertyIdentifier2222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
              PropertyIdentifier2222[PropertyIdentifier2222["CAR_LOAD"] = 454] = "CAR_LOAD";
              PropertyIdentifier2222[PropertyIdentifier2222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
              PropertyIdentifier2222[PropertyIdentifier2222["CAR_MODE"] = 456] = "CAR_MODE";
              PropertyIdentifier2222[PropertyIdentifier2222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
              PropertyIdentifier2222[PropertyIdentifier2222["CAR_POSITION"] = 458] = "CAR_POSITION";
              PropertyIdentifier2222[PropertyIdentifier2222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
              PropertyIdentifier2222[PropertyIdentifier2222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
              PropertyIdentifier2222[PropertyIdentifier2222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
              PropertyIdentifier2222[PropertyIdentifier2222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
              PropertyIdentifier2222[PropertyIdentifier2222["COMMAND"] = 417] = "COMMAND";
              PropertyIdentifier2222[PropertyIdentifier2222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
              PropertyIdentifier2222[PropertyIdentifier2222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
              PropertyIdentifier2222[PropertyIdentifier2222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
              PropertyIdentifier2222[PropertyIdentifier2222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
              PropertyIdentifier2222[PropertyIdentifier2222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
              PropertyIdentifier2222[PropertyIdentifier2222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["COUNT"] = 177] = "COUNT";
              PropertyIdentifier2222[PropertyIdentifier2222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
              PropertyIdentifier2222[PropertyIdentifier2222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
              PropertyIdentifier2222[PropertyIdentifier2222["COV_PERIOD"] = 180] = "COV_PERIOD";
              PropertyIdentifier2222[PropertyIdentifier2222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
              PropertyIdentifier2222[PropertyIdentifier2222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
              PropertyIdentifier2222[PropertyIdentifier2222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
              PropertyIdentifier2222[PropertyIdentifier2222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
              PropertyIdentifier2222[PropertyIdentifier2222["CREDENTIALS"] = 265] = "CREDENTIALS";
              PropertyIdentifier2222[PropertyIdentifier2222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
              PropertyIdentifier2222[PropertyIdentifier2222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
              PropertyIdentifier2222[PropertyIdentifier2222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
              PropertyIdentifier2222[PropertyIdentifier2222["DATE_LIST"] = 23] = "DATE_LIST";
              PropertyIdentifier2222[PropertyIdentifier2222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
              PropertyIdentifier2222[PropertyIdentifier2222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
              PropertyIdentifier2222[PropertyIdentifier2222["DEADBAND"] = 25] = "DEADBAND";
              PropertyIdentifier2222[PropertyIdentifier2222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
              PropertyIdentifier2222[PropertyIdentifier2222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
              PropertyIdentifier2222[PropertyIdentifier2222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
              PropertyIdentifier2222[PropertyIdentifier2222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
              PropertyIdentifier2222[PropertyIdentifier2222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
              PropertyIdentifier2222[PropertyIdentifier2222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
              PropertyIdentifier2222[PropertyIdentifier2222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
              PropertyIdentifier2222[PropertyIdentifier2222["DESCRIPTION"] = 28] = "DESCRIPTION";
              PropertyIdentifier2222[PropertyIdentifier2222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
              PropertyIdentifier2222[PropertyIdentifier2222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
              PropertyIdentifier2222[PropertyIdentifier2222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
              PropertyIdentifier2222[PropertyIdentifier2222["DIRECT_READING"] = 156] = "DIRECT_READING";
              PropertyIdentifier2222[PropertyIdentifier2222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
              PropertyIdentifier2222[PropertyIdentifier2222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
              PropertyIdentifier2222[PropertyIdentifier2222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
              PropertyIdentifier2222[PropertyIdentifier2222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
              PropertyIdentifier2222[PropertyIdentifier2222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
              PropertyIdentifier2222[PropertyIdentifier2222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
              PropertyIdentifier2222[PropertyIdentifier2222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
              PropertyIdentifier2222[PropertyIdentifier2222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
              PropertyIdentifier2222[PropertyIdentifier2222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
              PropertyIdentifier2222[PropertyIdentifier2222["ENABLE"] = 133] = "ENABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["ENERGY_METER"] = 460] = "ENERGY_METER";
              PropertyIdentifier2222[PropertyIdentifier2222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
              PropertyIdentifier2222[PropertyIdentifier2222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
              PropertyIdentifier2222[PropertyIdentifier2222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
              PropertyIdentifier2222[PropertyIdentifier2222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
              PropertyIdentifier2222[PropertyIdentifier2222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
              PropertyIdentifier2222[PropertyIdentifier2222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
              PropertyIdentifier2222[PropertyIdentifier2222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
              PropertyIdentifier2222[PropertyIdentifier2222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
              PropertyIdentifier2222[PropertyIdentifier2222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
              PropertyIdentifier2222[PropertyIdentifier2222["EVENT_STATE"] = 36] = "EVENT_STATE";
              PropertyIdentifier2222[PropertyIdentifier2222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
              PropertyIdentifier2222[PropertyIdentifier2222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
              PropertyIdentifier2222[PropertyIdentifier2222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
              PropertyIdentifier2222[PropertyIdentifier2222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
              PropertyIdentifier2222[PropertyIdentifier2222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
              PropertyIdentifier2222[PropertyIdentifier2222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
              PropertyIdentifier2222[PropertyIdentifier2222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
              PropertyIdentifier2222[PropertyIdentifier2222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
              PropertyIdentifier2222[PropertyIdentifier2222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
              PropertyIdentifier2222[PropertyIdentifier2222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
              PropertyIdentifier2222[PropertyIdentifier2222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
              PropertyIdentifier2222[PropertyIdentifier2222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
              PropertyIdentifier2222[PropertyIdentifier2222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
              PropertyIdentifier2222[PropertyIdentifier2222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
              PropertyIdentifier2222[PropertyIdentifier2222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
              PropertyIdentifier2222[PropertyIdentifier2222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
              PropertyIdentifier2222[PropertyIdentifier2222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
              PropertyIdentifier2222[PropertyIdentifier2222["FILE_SIZE"] = 42] = "FILE_SIZE";
              PropertyIdentifier2222[PropertyIdentifier2222["FILE_TYPE"] = 43] = "FILE_TYPE";
              PropertyIdentifier2222[PropertyIdentifier2222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
              PropertyIdentifier2222[PropertyIdentifier2222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
              PropertyIdentifier2222[PropertyIdentifier2222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
              PropertyIdentifier2222[PropertyIdentifier2222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
              PropertyIdentifier2222[PropertyIdentifier2222["GROUP_ID"] = 465] = "GROUP_ID";
              PropertyIdentifier2222[PropertyIdentifier2222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
              PropertyIdentifier2222[PropertyIdentifier2222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
              PropertyIdentifier2222[PropertyIdentifier2222["GROUP_MODE"] = 467] = "GROUP_MODE";
              PropertyIdentifier2222[PropertyIdentifier2222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
              PropertyIdentifier2222[PropertyIdentifier2222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
              PropertyIdentifier2222[PropertyIdentifier2222["IN_PROCESS"] = 47] = "IN_PROCESS";
              PropertyIdentifier2222[PropertyIdentifier2222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
              PropertyIdentifier2222[PropertyIdentifier2222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
              PropertyIdentifier2222[PropertyIdentifier2222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
              PropertyIdentifier2222[PropertyIdentifier2222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
              PropertyIdentifier2222[PropertyIdentifier2222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
              PropertyIdentifier2222[PropertyIdentifier2222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
              PropertyIdentifier2222[PropertyIdentifier2222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
              PropertyIdentifier2222[PropertyIdentifier2222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
              PropertyIdentifier2222[PropertyIdentifier2222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
              PropertyIdentifier2222[PropertyIdentifier2222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
              PropertyIdentifier2222[PropertyIdentifier2222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
              PropertyIdentifier2222[PropertyIdentifier2222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
              PropertyIdentifier2222[PropertyIdentifier2222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
              PropertyIdentifier2222[PropertyIdentifier2222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
              PropertyIdentifier2222[PropertyIdentifier2222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
              PropertyIdentifier2222[PropertyIdentifier2222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
              PropertyIdentifier2222[PropertyIdentifier2222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
              PropertyIdentifier2222[PropertyIdentifier2222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
              PropertyIdentifier2222[PropertyIdentifier2222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
              PropertyIdentifier2222[PropertyIdentifier2222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
              PropertyIdentifier2222[PropertyIdentifier2222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
              PropertyIdentifier2222[PropertyIdentifier2222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
              PropertyIdentifier2222[PropertyIdentifier2222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
              PropertyIdentifier2222[PropertyIdentifier2222["IS_UTC"] = 344] = "IS_UTC";
              PropertyIdentifier2222[PropertyIdentifier2222["KEY_SETS"] = 330] = "KEY_SETS";
              PropertyIdentifier2222[PropertyIdentifier2222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
              PropertyIdentifier2222[PropertyIdentifier2222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
              PropertyIdentifier2222[PropertyIdentifier2222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
              PropertyIdentifier2222[PropertyIdentifier2222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
              PropertyIdentifier2222[PropertyIdentifier2222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
              PropertyIdentifier2222[PropertyIdentifier2222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
              PropertyIdentifier2222[PropertyIdentifier2222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
              PropertyIdentifier2222[PropertyIdentifier2222["LINK_SPEED"] = 420] = "LINK_SPEED";
              PropertyIdentifier2222[PropertyIdentifier2222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
              PropertyIdentifier2222[PropertyIdentifier2222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
              PropertyIdentifier2222[PropertyIdentifier2222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
              PropertyIdentifier2222[PropertyIdentifier2222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
              PropertyIdentifier2222[PropertyIdentifier2222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
              PropertyIdentifier2222[PropertyIdentifier2222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
              PropertyIdentifier2222[PropertyIdentifier2222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["LOCATION"] = 58] = "LOCATION";
              PropertyIdentifier2222[PropertyIdentifier2222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
              PropertyIdentifier2222[PropertyIdentifier2222["LOCKOUT"] = 282] = "LOCKOUT";
              PropertyIdentifier2222[PropertyIdentifier2222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
              PropertyIdentifier2222[PropertyIdentifier2222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
              PropertyIdentifier2222[PropertyIdentifier2222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
              PropertyIdentifier2222[PropertyIdentifier2222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
              PropertyIdentifier2222[PropertyIdentifier2222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
              PropertyIdentifier2222[PropertyIdentifier2222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
              PropertyIdentifier2222[PropertyIdentifier2222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
              PropertyIdentifier2222[PropertyIdentifier2222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
              PropertyIdentifier2222[PropertyIdentifier2222["LOWER_DECK"] = 473] = "LOWER_DECK";
              PropertyIdentifier2222[PropertyIdentifier2222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
              PropertyIdentifier2222[PropertyIdentifier2222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
              PropertyIdentifier2222[PropertyIdentifier2222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
              PropertyIdentifier2222[PropertyIdentifier2222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
              PropertyIdentifier2222[PropertyIdentifier2222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
              PropertyIdentifier2222[PropertyIdentifier2222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
              PropertyIdentifier2222[PropertyIdentifier2222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
              PropertyIdentifier2222[PropertyIdentifier2222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
              PropertyIdentifier2222[PropertyIdentifier2222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
              PropertyIdentifier2222[PropertyIdentifier2222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
              PropertyIdentifier2222[PropertyIdentifier2222["MAX_MASTER"] = 64] = "MAX_MASTER";
              PropertyIdentifier2222[PropertyIdentifier2222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
              PropertyIdentifier2222[PropertyIdentifier2222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
              PropertyIdentifier2222[PropertyIdentifier2222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
              PropertyIdentifier2222[PropertyIdentifier2222["MEMBER_OF"] = 159] = "MEMBER_OF";
              PropertyIdentifier2222[PropertyIdentifier2222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
              PropertyIdentifier2222[PropertyIdentifier2222["MEMBERS"] = 286] = "MEMBERS";
              PropertyIdentifier2222[PropertyIdentifier2222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
              PropertyIdentifier2222[PropertyIdentifier2222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
              PropertyIdentifier2222[PropertyIdentifier2222["MODE"] = 160] = "MODE";
              PropertyIdentifier2222[PropertyIdentifier2222["MODEL_NAME"] = 70] = "MODEL_NAME";
              PropertyIdentifier2222[PropertyIdentifier2222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
              PropertyIdentifier2222[PropertyIdentifier2222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
              PropertyIdentifier2222[PropertyIdentifier2222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
              PropertyIdentifier2222[PropertyIdentifier2222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
              PropertyIdentifier2222[PropertyIdentifier2222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
              PropertyIdentifier2222[PropertyIdentifier2222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
              PropertyIdentifier2222[PropertyIdentifier2222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
              PropertyIdentifier2222[PropertyIdentifier2222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
              PropertyIdentifier2222[PropertyIdentifier2222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
              PropertyIdentifier2222[PropertyIdentifier2222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
              PropertyIdentifier2222[PropertyIdentifier2222["NODE_TYPE"] = 208] = "NODE_TYPE";
              PropertyIdentifier2222[PropertyIdentifier2222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
              PropertyIdentifier2222[PropertyIdentifier2222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
              PropertyIdentifier2222[PropertyIdentifier2222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
              PropertyIdentifier2222[PropertyIdentifier2222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
              PropertyIdentifier2222[PropertyIdentifier2222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
              PropertyIdentifier2222[PropertyIdentifier2222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
              PropertyIdentifier2222[PropertyIdentifier2222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
              PropertyIdentifier2222[PropertyIdentifier2222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
              PropertyIdentifier2222[PropertyIdentifier2222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
              PropertyIdentifier2222[PropertyIdentifier2222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
              PropertyIdentifier2222[PropertyIdentifier2222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
              PropertyIdentifier2222[PropertyIdentifier2222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
              PropertyIdentifier2222[PropertyIdentifier2222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
              PropertyIdentifier2222[PropertyIdentifier2222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
              PropertyIdentifier2222[PropertyIdentifier2222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
              PropertyIdentifier2222[PropertyIdentifier2222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
              PropertyIdentifier2222[PropertyIdentifier2222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
              PropertyIdentifier2222[PropertyIdentifier2222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
              PropertyIdentifier2222[PropertyIdentifier2222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
              PropertyIdentifier2222[PropertyIdentifier2222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
              PropertyIdentifier2222[PropertyIdentifier2222["OPTIONAL"] = 80] = "OPTIONAL";
              PropertyIdentifier2222[PropertyIdentifier2222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
              PropertyIdentifier2222[PropertyIdentifier2222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
              PropertyIdentifier2222[PropertyIdentifier2222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
              PropertyIdentifier2222[PropertyIdentifier2222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
              PropertyIdentifier2222[PropertyIdentifier2222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
              PropertyIdentifier2222[PropertyIdentifier2222["POLARITY"] = 84] = "POLARITY";
              PropertyIdentifier2222[PropertyIdentifier2222["PORT_FILTER"] = 363] = "PORT_FILTER";
              PropertyIdentifier2222[PropertyIdentifier2222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
              PropertyIdentifier2222[PropertyIdentifier2222["POWER"] = 384] = "POWER";
              PropertyIdentifier2222[PropertyIdentifier2222["POWER_MODE"] = 479] = "POWER_MODE";
              PropertyIdentifier2222[PropertyIdentifier2222["PRESCALE"] = 185] = "PRESCALE";
              PropertyIdentifier2222[PropertyIdentifier2222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["PRIORITY"] = 86] = "PRIORITY";
              PropertyIdentifier2222[PropertyIdentifier2222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
              PropertyIdentifier2222[PropertyIdentifier2222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
              PropertyIdentifier2222[PropertyIdentifier2222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
              PropertyIdentifier2222[PropertyIdentifier2222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
              PropertyIdentifier2222[PropertyIdentifier2222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
              PropertyIdentifier2222[PropertyIdentifier2222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
              PropertyIdentifier2222[PropertyIdentifier2222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
              PropertyIdentifier2222[PropertyIdentifier2222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
              PropertyIdentifier2222[PropertyIdentifier2222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
              PropertyIdentifier2222[PropertyIdentifier2222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
              PropertyIdentifier2222[PropertyIdentifier2222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
              PropertyIdentifier2222[PropertyIdentifier2222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
              PropertyIdentifier2222[PropertyIdentifier2222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
              PropertyIdentifier2222[PropertyIdentifier2222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
              PropertyIdentifier2222[PropertyIdentifier2222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
              PropertyIdentifier2222[PropertyIdentifier2222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
              PropertyIdentifier2222[PropertyIdentifier2222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
              PropertyIdentifier2222[PropertyIdentifier2222["PULSE_RATE"] = 186] = "PULSE_RATE";
              PropertyIdentifier2222[PropertyIdentifier2222["READ_ONLY"] = 99] = "READ_ONLY";
              PropertyIdentifier2222[PropertyIdentifier2222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
              PropertyIdentifier2222[PropertyIdentifier2222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
              PropertyIdentifier2222[PropertyIdentifier2222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
              PropertyIdentifier2222[PropertyIdentifier2222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
              PropertyIdentifier2222[PropertyIdentifier2222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
              PropertyIdentifier2222[PropertyIdentifier2222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
              PropertyIdentifier2222[PropertyIdentifier2222["RELIABILITY"] = 103] = "RELIABILITY";
              PropertyIdentifier2222[PropertyIdentifier2222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
              PropertyIdentifier2222[PropertyIdentifier2222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
              PropertyIdentifier2222[PropertyIdentifier2222["REPRESENTS"] = 491] = "REPRESENTS";
              PropertyIdentifier2222[PropertyIdentifier2222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
              PropertyIdentifier2222[PropertyIdentifier2222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
              PropertyIdentifier2222[PropertyIdentifier2222["REQUIRED"] = 105] = "REQUIRED";
              PropertyIdentifier2222[PropertyIdentifier2222["RESOLUTION"] = 106] = "RESOLUTION";
              PropertyIdentifier2222[PropertyIdentifier2222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
              PropertyIdentifier2222[PropertyIdentifier2222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["SCALE"] = 187] = "SCALE";
              PropertyIdentifier2222[PropertyIdentifier2222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
              PropertyIdentifier2222[PropertyIdentifier2222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
              PropertyIdentifier2222[PropertyIdentifier2222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
              PropertyIdentifier2222[PropertyIdentifier2222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
              PropertyIdentifier2222[PropertyIdentifier2222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
              PropertyIdentifier2222[PropertyIdentifier2222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
              PropertyIdentifier2222[PropertyIdentifier2222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
              PropertyIdentifier2222[PropertyIdentifier2222["SETPOINT"] = 108] = "SETPOINT";
              PropertyIdentifier2222[PropertyIdentifier2222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
              PropertyIdentifier2222[PropertyIdentifier2222["SETTING"] = 162] = "SETTING";
              PropertyIdentifier2222[PropertyIdentifier2222["SHED_DURATION"] = 219] = "SHED_DURATION";
              PropertyIdentifier2222[PropertyIdentifier2222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
              PropertyIdentifier2222[PropertyIdentifier2222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
              PropertyIdentifier2222[PropertyIdentifier2222["SILENCED"] = 163] = "SILENCED";
              PropertyIdentifier2222[PropertyIdentifier2222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
              PropertyIdentifier2222[PropertyIdentifier2222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["START_TIME"] = 142] = "START_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
              PropertyIdentifier2222[PropertyIdentifier2222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
              PropertyIdentifier2222[PropertyIdentifier2222["STATE_TEXT"] = 110] = "STATE_TEXT";
              PropertyIdentifier2222[PropertyIdentifier2222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
              PropertyIdentifier2222[PropertyIdentifier2222["STOP_TIME"] = 143] = "STOP_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
              PropertyIdentifier2222[PropertyIdentifier2222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
              PropertyIdentifier2222[PropertyIdentifier2222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
              PropertyIdentifier2222[PropertyIdentifier2222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
              PropertyIdentifier2222[PropertyIdentifier2222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
              PropertyIdentifier2222[PropertyIdentifier2222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
              PropertyIdentifier2222[PropertyIdentifier2222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
              PropertyIdentifier2222[PropertyIdentifier2222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
              PropertyIdentifier2222[PropertyIdentifier2222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
              PropertyIdentifier2222[PropertyIdentifier2222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
              PropertyIdentifier2222[PropertyIdentifier2222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
              PropertyIdentifier2222[PropertyIdentifier2222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
              PropertyIdentifier2222[PropertyIdentifier2222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
              PropertyIdentifier2222[PropertyIdentifier2222["TAGS"] = 486] = "TAGS";
              PropertyIdentifier2222[PropertyIdentifier2222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
              PropertyIdentifier2222[PropertyIdentifier2222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
              PropertyIdentifier2222[PropertyIdentifier2222["TIME_DELAY"] = 113] = "TIME_DELAY";
              PropertyIdentifier2222[PropertyIdentifier2222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
              PropertyIdentifier2222[PropertyIdentifier2222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
              PropertyIdentifier2222[PropertyIdentifier2222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
              PropertyIdentifier2222[PropertyIdentifier2222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
              PropertyIdentifier2222[PropertyIdentifier2222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
              PropertyIdentifier2222[PropertyIdentifier2222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
              PropertyIdentifier2222[PropertyIdentifier2222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
              PropertyIdentifier2222[PropertyIdentifier2222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
              PropertyIdentifier2222[PropertyIdentifier2222["TIMER_STATE"] = 398] = "TIMER_STATE";
              PropertyIdentifier2222[PropertyIdentifier2222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
              PropertyIdentifier2222[PropertyIdentifier2222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
              PropertyIdentifier2222[PropertyIdentifier2222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
              PropertyIdentifier2222[PropertyIdentifier2222["TRANSITION"] = 385] = "TRANSITION";
              PropertyIdentifier2222[PropertyIdentifier2222["TRIGGER"] = 205] = "TRIGGER";
              PropertyIdentifier2222[PropertyIdentifier2222["UNITS"] = 117] = "UNITS";
              PropertyIdentifier2222[PropertyIdentifier2222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
              PropertyIdentifier2222[PropertyIdentifier2222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
              PropertyIdentifier2222[PropertyIdentifier2222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
              PropertyIdentifier2222[PropertyIdentifier2222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
              PropertyIdentifier2222[PropertyIdentifier2222["USER_NAME"] = 317] = "USER_NAME";
              PropertyIdentifier2222[PropertyIdentifier2222["USER_TYPE"] = 318] = "USER_TYPE";
              PropertyIdentifier2222[PropertyIdentifier2222["USES_REMAINING"] = 319] = "USES_REMAINING";
              PropertyIdentifier2222[PropertyIdentifier2222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
              PropertyIdentifier2222[PropertyIdentifier2222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
              PropertyIdentifier2222[PropertyIdentifier2222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
              PropertyIdentifier2222[PropertyIdentifier2222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
              PropertyIdentifier2222[PropertyIdentifier2222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["VALUE_SET"] = 191] = "VALUE_SET";
              PropertyIdentifier2222[PropertyIdentifier2222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
              PropertyIdentifier2222[PropertyIdentifier2222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
              PropertyIdentifier2222[PropertyIdentifier2222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
              PropertyIdentifier2222[PropertyIdentifier2222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
              PropertyIdentifier2222[PropertyIdentifier2222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
              PropertyIdentifier2222[PropertyIdentifier2222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
              PropertyIdentifier2222[PropertyIdentifier2222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
              PropertyIdentifier2222[PropertyIdentifier2222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
              PropertyIdentifier2222[PropertyIdentifier2222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
              PropertyIdentifier2222[PropertyIdentifier2222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
              PropertyIdentifier2222[PropertyIdentifier2222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
              PropertyIdentifier2222[PropertyIdentifier2222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
              PropertyIdentifier2222[PropertyIdentifier2222["ZONE_FROM"] = 320] = "ZONE_FROM";
              PropertyIdentifier2222[PropertyIdentifier2222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
              PropertyIdentifier2222[PropertyIdentifier2222["ZONE_TO"] = 321] = "ZONE_TO";
              return PropertyIdentifier2222;
            })(PropertyIdentifier222 || {});
            var ProtocolLevel222 = /* @__PURE__ */ ((ProtocolLevel2222) => {
              ProtocolLevel2222[ProtocolLevel2222["PHYSICAL"] = 0] = "PHYSICAL";
              ProtocolLevel2222[ProtocolLevel2222["PROTOCOL"] = 1] = "PROTOCOL";
              ProtocolLevel2222[ProtocolLevel2222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
              ProtocolLevel2222[ProtocolLevel2222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
              return ProtocolLevel2222;
            })(ProtocolLevel222 || {});
            var Relationship222 = /* @__PURE__ */ ((Relationship2222) => {
              Relationship2222[Relationship2222["UNKNOWN"] = 0] = "UNKNOWN";
              Relationship2222[Relationship2222["DEFAULT"] = 1] = "DEFAULT";
              Relationship2222[Relationship2222["CONTAINS"] = 2] = "CONTAINS";
              Relationship2222[Relationship2222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
              Relationship2222[Relationship2222["USES"] = 4] = "USES";
              Relationship2222[Relationship2222["USED_BY"] = 5] = "USED_BY";
              Relationship2222[Relationship2222["COMMANDS"] = 6] = "COMMANDS";
              Relationship2222[Relationship2222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
              Relationship2222[Relationship2222["ADJUSTS"] = 8] = "ADJUSTS";
              Relationship2222[Relationship2222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
              Relationship2222[Relationship2222["INGRESS"] = 10] = "INGRESS";
              Relationship2222[Relationship2222["EGRESS"] = 11] = "EGRESS";
              Relationship2222[Relationship2222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
              Relationship2222[Relationship2222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
              Relationship2222[Relationship2222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
              Relationship2222[Relationship2222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
              Relationship2222[Relationship2222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
              Relationship2222[Relationship2222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
              Relationship2222[Relationship2222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
              Relationship2222[Relationship2222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
              Relationship2222[Relationship2222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
              Relationship2222[Relationship2222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
              Relationship2222[Relationship2222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
              Relationship2222[Relationship2222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
              Relationship2222[Relationship2222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
              Relationship2222[Relationship2222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
              Relationship2222[Relationship2222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
              Relationship2222[Relationship2222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
              Relationship2222[Relationship2222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
              Relationship2222[Relationship2222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
              return Relationship2222;
            })(Relationship222 || {});
            var Reliability222 = /* @__PURE__ */ ((Reliability2222) => {
              Reliability2222[Reliability2222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
              Reliability2222[Reliability2222["NO_SENSOR"] = 1] = "NO_SENSOR";
              Reliability2222[Reliability2222["OVER_RANGE"] = 2] = "OVER_RANGE";
              Reliability2222[Reliability2222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
              Reliability2222[Reliability2222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
              Reliability2222[Reliability2222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
              Reliability2222[Reliability2222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
              Reliability2222[Reliability2222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
              Reliability2222[Reliability2222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
              Reliability2222[Reliability2222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
              Reliability2222[Reliability2222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
              Reliability2222[Reliability2222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
              Reliability2222[Reliability2222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
              Reliability2222[Reliability2222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
              Reliability2222[Reliability2222["TRIPPED"] = 15] = "TRIPPED";
              Reliability2222[Reliability2222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
              Reliability2222[Reliability2222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
              Reliability2222[Reliability2222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
              Reliability2222[Reliability2222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
              Reliability2222[Reliability2222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
              Reliability2222[Reliability2222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
              Reliability2222[Reliability2222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
              Reliability2222[Reliability2222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
              Reliability2222[Reliability2222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
              return Reliability2222;
            })(Reliability222 || {});
            var RestartReason222 = /* @__PURE__ */ ((RestartReason2222) => {
              RestartReason2222[RestartReason2222["UNKNOWN"] = 0] = "UNKNOWN";
              RestartReason2222[RestartReason2222["COLDSTART"] = 1] = "COLDSTART";
              RestartReason2222[RestartReason2222["WARMSTART"] = 2] = "WARMSTART";
              RestartReason2222[RestartReason2222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
              RestartReason2222[RestartReason2222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
              RestartReason2222[RestartReason2222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
              RestartReason2222[RestartReason2222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
              RestartReason2222[RestartReason2222["SUSPENDED"] = 7] = "SUSPENDED";
              RestartReason2222[RestartReason2222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
              return RestartReason2222;
            })(RestartReason222 || {});
            var SecurityLevel222 = /* @__PURE__ */ ((SecurityLevel2222) => {
              SecurityLevel2222[SecurityLevel2222["INCAPABLE"] = 0] = "INCAPABLE";
              SecurityLevel2222[SecurityLevel2222["PLAIN"] = 1] = "PLAIN";
              SecurityLevel2222[SecurityLevel2222["SIGNED"] = 2] = "SIGNED";
              SecurityLevel2222[SecurityLevel2222["ENCRYPTED"] = 3] = "ENCRYPTED";
              SecurityLevel2222[SecurityLevel2222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
              SecurityLevel2222[SecurityLevel2222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
              return SecurityLevel2222;
            })(SecurityLevel222 || {});
            var SecurityPolicy222 = /* @__PURE__ */ ((SecurityPolicy2222) => {
              SecurityPolicy2222[SecurityPolicy2222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
              SecurityPolicy2222[SecurityPolicy2222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
              SecurityPolicy2222[SecurityPolicy2222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
              SecurityPolicy2222[SecurityPolicy2222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
              return SecurityPolicy2222;
            })(SecurityPolicy222 || {});
            var Segmentation222 = /* @__PURE__ */ ((Segmentation2222) => {
              Segmentation2222[Segmentation2222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
              Segmentation2222[Segmentation2222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
              Segmentation2222[Segmentation2222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
              Segmentation2222[Segmentation2222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
              return Segmentation2222;
            })(Segmentation222 || {});
            var ShedState222 = /* @__PURE__ */ ((ShedState2222) => {
              ShedState2222[ShedState2222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
              ShedState2222[ShedState2222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
              ShedState2222[ShedState2222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
              ShedState2222[ShedState2222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
              return ShedState2222;
            })(ShedState222 || {});
            var SilencedState222 = /* @__PURE__ */ ((SilencedState2222) => {
              SilencedState2222[SilencedState2222["UNSILENCED"] = 0] = "UNSILENCED";
              SilencedState2222[SilencedState2222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
              SilencedState2222[SilencedState2222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
              SilencedState2222[SilencedState2222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
              return SilencedState2222;
            })(SilencedState222 || {});
            var TimerState222 = /* @__PURE__ */ ((TimerState2222) => {
              TimerState2222[TimerState2222["IDLE"] = 0] = "IDLE";
              TimerState2222[TimerState2222["RUNNING"] = 1] = "RUNNING";
              TimerState2222[TimerState2222["EXPIRED"] = 2] = "EXPIRED";
              return TimerState2222;
            })(TimerState222 || {});
            var TimerTransition222 = /* @__PURE__ */ ((TimerTransition2222) => {
              TimerTransition2222[TimerTransition2222["NONE"] = 0] = "NONE";
              TimerTransition2222[TimerTransition2222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
              TimerTransition2222[TimerTransition2222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
              TimerTransition2222[TimerTransition2222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
              TimerTransition2222[TimerTransition2222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
              TimerTransition2222[TimerTransition2222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
              TimerTransition2222[TimerTransition2222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
              TimerTransition2222[TimerTransition2222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
              return TimerTransition2222;
            })(TimerTransition222 || {});
            var VTClass222 = /* @__PURE__ */ ((VTClass2222) => {
              VTClass2222[VTClass2222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
              VTClass2222[VTClass2222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
              VTClass2222[VTClass2222["DEC_VT52"] = 2] = "DEC_VT52";
              VTClass2222[VTClass2222["DEC_VT100"] = 3] = "DEC_VT100";
              VTClass2222[VTClass2222["DEC_VT220"] = 4] = "DEC_VT220";
              VTClass2222[VTClass2222["HP_700_94"] = 5] = "HP_700_94";
              VTClass2222[VTClass2222["IBM_3130"] = 6] = "IBM_3130";
              return VTClass2222;
            })(VTClass222 || {});
            var WriteStatus222 = /* @__PURE__ */ ((WriteStatus2222) => {
              WriteStatus2222[WriteStatus2222["IDLE"] = 0] = "IDLE";
              WriteStatus2222[WriteStatus2222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
              WriteStatus2222[WriteStatus2222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
              WriteStatus2222[WriteStatus2222["FAILED"] = 3] = "FAILED";
              return WriteStatus2222;
            })(WriteStatus222 || {});
            var DaysOfWeek222 = /* @__PURE__ */ ((DaysOfWeek2222) => {
              DaysOfWeek2222[DaysOfWeek2222["MONDAY"] = 0] = "MONDAY";
              DaysOfWeek2222[DaysOfWeek2222["TUESDAY"] = 1] = "TUESDAY";
              DaysOfWeek2222[DaysOfWeek2222["WEDNESDAY"] = 2] = "WEDNESDAY";
              DaysOfWeek2222[DaysOfWeek2222["THURSDAY"] = 3] = "THURSDAY";
              DaysOfWeek2222[DaysOfWeek2222["FRIDAY"] = 4] = "FRIDAY";
              DaysOfWeek2222[DaysOfWeek2222["SATURDAY"] = 5] = "SATURDAY";
              DaysOfWeek2222[DaysOfWeek2222["SUNDAY"] = 6] = "SUNDAY";
              return DaysOfWeek2222;
            })(DaysOfWeek222 || {});
            var EventTransitionBits222 = /* @__PURE__ */ ((EventTransitionBits2222) => {
              EventTransitionBits2222[EventTransitionBits2222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
              EventTransitionBits2222[EventTransitionBits2222["TO_FAULT"] = 1] = "TO_FAULT";
              EventTransitionBits2222[EventTransitionBits2222["TO_NORMAL"] = 2] = "TO_NORMAL";
              return EventTransitionBits2222;
            })(EventTransitionBits222 || {});
            var LimitEnable222 = /* @__PURE__ */ ((LimitEnable2222) => {
              LimitEnable2222[LimitEnable2222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
              LimitEnable2222[LimitEnable2222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
              return LimitEnable2222;
            })(LimitEnable222 || {});
            var LogStatus222 = /* @__PURE__ */ ((LogStatus2222) => {
              LogStatus2222[LogStatus2222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
              LogStatus2222[LogStatus2222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
              LogStatus2222[LogStatus2222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
              return LogStatus2222;
            })(LogStatus222 || {});
            var ObjectTypesSupported222 = /* @__PURE__ */ ((ObjectTypesSupported2222) => {
              ObjectTypesSupported2222[ObjectTypesSupported2222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["CALENDAR"] = 6] = "CALENDAR";
              ObjectTypesSupported2222[ObjectTypesSupported2222["COMMAND"] = 7] = "COMMAND";
              ObjectTypesSupported2222[ObjectTypesSupported2222["DEVICE"] = 8] = "DEVICE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["FILE"] = 10] = "FILE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["GROUP"] = 11] = "GROUP";
              ObjectTypesSupported2222[ObjectTypesSupported2222["LOOP"] = 12] = "LOOP";
              ObjectTypesSupported2222[ObjectTypesSupported2222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
              ObjectTypesSupported2222[ObjectTypesSupported2222["PROGRAM"] = 16] = "PROGRAM";
              ObjectTypesSupported2222[ObjectTypesSupported2222["SCHEDULE"] = 17] = "SCHEDULE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["AVERAGING"] = 18] = "AVERAGING";
              ObjectTypesSupported2222[ObjectTypesSupported2222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["TREND_LOG"] = 20] = "TREND_LOG";
              ObjectTypesSupported2222[ObjectTypesSupported2222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
              ObjectTypesSupported2222[ObjectTypesSupported2222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
              ObjectTypesSupported2222[ObjectTypesSupported2222["EVENT_LOG"] = 25] = "EVENT_LOG";
              ObjectTypesSupported2222[ObjectTypesSupported2222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
              ObjectTypesSupported2222[ObjectTypesSupported2222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
              ObjectTypesSupported2222[ObjectTypesSupported2222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
              ObjectTypesSupported2222[ObjectTypesSupported2222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
              ObjectTypesSupported2222[ObjectTypesSupported2222["TIMER"] = 31] = "TIMER";
              ObjectTypesSupported2222[ObjectTypesSupported2222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
              ObjectTypesSupported2222[ObjectTypesSupported2222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
              ObjectTypesSupported2222[ObjectTypesSupported2222["ACCESS_USER"] = 35] = "ACCESS_USER";
              ObjectTypesSupported2222[ObjectTypesSupported2222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
              ObjectTypesSupported2222[ObjectTypesSupported2222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["DATE_VALUE"] = 42] = "DATE_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["TIME_VALUE"] = 50] = "TIME_VALUE";
              ObjectTypesSupported2222[ObjectTypesSupported2222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
              ObjectTypesSupported2222[ObjectTypesSupported2222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["CHANNEL"] = 53] = "CHANNEL";
              ObjectTypesSupported2222[ObjectTypesSupported2222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
              ObjectTypesSupported2222[ObjectTypesSupported2222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
              ObjectTypesSupported2222[ObjectTypesSupported2222["ESCALATOR"] = 58] = "ESCALATOR";
              ObjectTypesSupported2222[ObjectTypesSupported2222["LIFT"] = 59] = "LIFT";
              return ObjectTypesSupported2222;
            })(ObjectTypesSupported222 || {});
            var ResultFlags222 = /* @__PURE__ */ ((ResultFlags2222) => {
              ResultFlags2222[ResultFlags2222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
              ResultFlags2222[ResultFlags2222["LAST_ITEM"] = 1] = "LAST_ITEM";
              ResultFlags2222[ResultFlags2222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
              return ResultFlags2222;
            })(ResultFlags222 || {});
            var ServicesSupported222 = /* @__PURE__ */ ((ServicesSupported2222) => {
              ServicesSupported2222[ServicesSupported2222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
              ServicesSupported2222[ServicesSupported2222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
              ServicesSupported2222[ServicesSupported2222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
              ServicesSupported2222[ServicesSupported2222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
              ServicesSupported2222[ServicesSupported2222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
              ServicesSupported2222[ServicesSupported2222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
              ServicesSupported2222[ServicesSupported2222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
              ServicesSupported2222[ServicesSupported2222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
              ServicesSupported2222[ServicesSupported2222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
              ServicesSupported2222[ServicesSupported2222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
              ServicesSupported2222[ServicesSupported2222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
              ServicesSupported2222[ServicesSupported2222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
              ServicesSupported2222[ServicesSupported2222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
              ServicesSupported2222[ServicesSupported2222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
              ServicesSupported2222[ServicesSupported2222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
              ServicesSupported2222[ServicesSupported2222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
              ServicesSupported2222[ServicesSupported2222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
              ServicesSupported2222[ServicesSupported2222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
              ServicesSupported2222[ServicesSupported2222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
              ServicesSupported2222[ServicesSupported2222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
              ServicesSupported2222[ServicesSupported2222["VT_OPEN"] = 21] = "VT_OPEN";
              ServicesSupported2222[ServicesSupported2222["VT_CLOSE"] = 22] = "VT_CLOSE";
              ServicesSupported2222[ServicesSupported2222["VT_DATA"] = 23] = "VT_DATA";
              ServicesSupported2222[ServicesSupported2222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
              ServicesSupported2222[ServicesSupported2222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
              ServicesSupported2222[ServicesSupported2222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
              ServicesSupported2222[ServicesSupported2222["I_AM"] = 26] = "I_AM";
              ServicesSupported2222[ServicesSupported2222["I_HAVE"] = 27] = "I_HAVE";
              ServicesSupported2222[ServicesSupported2222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
              ServicesSupported2222[ServicesSupported2222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
              ServicesSupported2222[ServicesSupported2222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
              ServicesSupported2222[ServicesSupported2222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
              ServicesSupported2222[ServicesSupported2222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
              ServicesSupported2222[ServicesSupported2222["WHO_HAS"] = 33] = "WHO_HAS";
              ServicesSupported2222[ServicesSupported2222["WHO_IS"] = 34] = "WHO_IS";
              ServicesSupported2222[ServicesSupported2222["READ_RANGE"] = 35] = "READ_RANGE";
              ServicesSupported2222[ServicesSupported2222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
              ServicesSupported2222[ServicesSupported2222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
              ServicesSupported2222[ServicesSupported2222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
              ServicesSupported2222[ServicesSupported2222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
              ServicesSupported2222[ServicesSupported2222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
              ServicesSupported2222[ServicesSupported2222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
              ServicesSupported2222[ServicesSupported2222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
              ServicesSupported2222[ServicesSupported2222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
              return ServicesSupported2222;
            })(ServicesSupported222 || {});
            var StatusFlags222 = /* @__PURE__ */ ((StatusFlags2222) => {
              StatusFlags2222[StatusFlags2222["IN_ALARM"] = 0] = "IN_ALARM";
              StatusFlags2222[StatusFlags2222["FAULT"] = 1] = "FAULT";
              StatusFlags2222[StatusFlags2222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
              StatusFlags2222[StatusFlags2222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
              return StatusFlags2222;
            })(StatusFlags222 || {});
            var ApplicationTag222 = /* @__PURE__ */ ((ApplicationTag2222) => {
              ApplicationTag2222[ApplicationTag2222["NULL"] = 0] = "NULL";
              ApplicationTag2222[ApplicationTag2222["BOOLEAN"] = 1] = "BOOLEAN";
              ApplicationTag2222[ApplicationTag2222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
              ApplicationTag2222[ApplicationTag2222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
              ApplicationTag2222[ApplicationTag2222["REAL"] = 4] = "REAL";
              ApplicationTag2222[ApplicationTag2222["DOUBLE"] = 5] = "DOUBLE";
              ApplicationTag2222[ApplicationTag2222["OCTET_STRING"] = 6] = "OCTET_STRING";
              ApplicationTag2222[ApplicationTag2222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
              ApplicationTag2222[ApplicationTag2222["BIT_STRING"] = 8] = "BIT_STRING";
              ApplicationTag2222[ApplicationTag2222["ENUMERATED"] = 9] = "ENUMERATED";
              ApplicationTag2222[ApplicationTag2222["DATE"] = 10] = "DATE";
              ApplicationTag2222[ApplicationTag2222["TIME"] = 11] = "TIME";
              ApplicationTag2222[ApplicationTag2222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
              ApplicationTag2222[ApplicationTag2222["EMPTYLIST"] = 100] = "EMPTYLIST";
              ApplicationTag2222[ApplicationTag2222["WEEKNDAY"] = 101] = "WEEKNDAY";
              ApplicationTag2222[ApplicationTag2222["DATERANGE"] = 102] = "DATERANGE";
              ApplicationTag2222[ApplicationTag2222["DATETIME"] = 103] = "DATETIME";
              ApplicationTag2222[ApplicationTag2222["TIMESTAMP"] = 104] = "TIMESTAMP";
              ApplicationTag2222[ApplicationTag2222["ERROR"] = 105] = "ERROR";
              ApplicationTag2222[ApplicationTag2222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
              ApplicationTag2222[ApplicationTag2222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
              ApplicationTag2222[ApplicationTag2222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
              ApplicationTag2222[ApplicationTag2222["DESTINATION"] = 109] = "DESTINATION";
              ApplicationTag2222[ApplicationTag2222["RECIPIENT"] = 110] = "RECIPIENT";
              ApplicationTag2222[ApplicationTag2222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
              ApplicationTag2222[ApplicationTag2222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
              ApplicationTag2222[ApplicationTag2222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
              ApplicationTag2222[ApplicationTag2222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
              ApplicationTag2222[ApplicationTag2222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
              ApplicationTag2222[ApplicationTag2222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
              ApplicationTag2222[ApplicationTag2222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
              ApplicationTag2222[ApplicationTag2222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
              ApplicationTag2222[ApplicationTag2222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
              ApplicationTag2222[ApplicationTag2222["LOG_RECORD"] = 120] = "LOG_RECORD";
              return ApplicationTag2222;
            })(ApplicationTag222 || {});
            var ApplicationTagName222 = invertEnum222(
              ApplicationTag222
            );
            var BvlcResultFormat222 = /* @__PURE__ */ ((BvlcResultFormat2222) => {
              BvlcResultFormat2222[BvlcResultFormat2222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
              BvlcResultFormat2222[BvlcResultFormat2222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
              BvlcResultFormat2222[BvlcResultFormat2222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
              BvlcResultFormat2222[BvlcResultFormat2222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
              BvlcResultFormat2222[BvlcResultFormat2222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
              BvlcResultFormat2222[BvlcResultFormat2222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
              BvlcResultFormat2222[BvlcResultFormat2222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
              return BvlcResultFormat2222;
            })(BvlcResultFormat222 || {});
            var BvlcResultPurpose222 = /* @__PURE__ */ ((BvlcResultPurpose2222) => {
              BvlcResultPurpose2222[BvlcResultPurpose2222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
              BvlcResultPurpose2222[BvlcResultPurpose2222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
              BvlcResultPurpose2222[BvlcResultPurpose2222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
              BvlcResultPurpose2222[BvlcResultPurpose2222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
              BvlcResultPurpose2222[BvlcResultPurpose2222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
              BvlcResultPurpose2222[BvlcResultPurpose2222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
              BvlcResultPurpose2222[BvlcResultPurpose2222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
              BvlcResultPurpose2222[BvlcResultPurpose2222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
              BvlcResultPurpose2222[BvlcResultPurpose2222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
              BvlcResultPurpose2222[BvlcResultPurpose2222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
              BvlcResultPurpose2222[BvlcResultPurpose2222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
              BvlcResultPurpose2222[BvlcResultPurpose2222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
              BvlcResultPurpose2222[BvlcResultPurpose2222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
              return BvlcResultPurpose2222;
            })(BvlcResultPurpose222 || {});
            var CharacterStringEncoding222 = /* @__PURE__ */ ((CharacterStringEncoding2222) => {
              CharacterStringEncoding2222[CharacterStringEncoding2222["UTF_8"] = 0] = "UTF_8";
              CharacterStringEncoding2222[CharacterStringEncoding2222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
              CharacterStringEncoding2222[CharacterStringEncoding2222["JIS_X_0208"] = 2] = "JIS_X_0208";
              CharacterStringEncoding2222[CharacterStringEncoding2222["UCS_4"] = 3] = "UCS_4";
              CharacterStringEncoding2222[CharacterStringEncoding2222["UCS_2"] = 4] = "UCS_2";
              CharacterStringEncoding2222[CharacterStringEncoding2222["ISO_8859_1"] = 5] = "ISO_8859_1";
              return CharacterStringEncoding2222;
            })(CharacterStringEncoding222 || {});
            var CovType222 = /* @__PURE__ */ ((CovType2222) => {
              CovType2222[CovType2222["REAL"] = 0] = "REAL";
              CovType2222[CovType2222["BIT_STRING"] = 1] = "BIT_STRING";
              return CovType2222;
            })(CovType222 || {});
            var EnableDisable222 = /* @__PURE__ */ ((EnableDisable2222) => {
              EnableDisable2222[EnableDisable2222["ENABLE"] = 0] = "ENABLE";
              EnableDisable2222[EnableDisable2222["DISABLE"] = 1] = "DISABLE";
              EnableDisable2222[EnableDisable2222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
              return EnableDisable2222;
            })(EnableDisable222 || {});
            var MaxApduLengthAccepted222 = /* @__PURE__ */ ((MaxApduLengthAccepted2222) => {
              MaxApduLengthAccepted2222[MaxApduLengthAccepted2222["OCTETS_50"] = 0] = "OCTETS_50";
              MaxApduLengthAccepted2222[MaxApduLengthAccepted2222["OCTETS_128"] = 1] = "OCTETS_128";
              MaxApduLengthAccepted2222[MaxApduLengthAccepted2222["OCTETS_206"] = 2] = "OCTETS_206";
              MaxApduLengthAccepted2222[MaxApduLengthAccepted2222["OCTETS_480"] = 3] = "OCTETS_480";
              MaxApduLengthAccepted2222[MaxApduLengthAccepted2222["OCTETS_1024"] = 4] = "OCTETS_1024";
              MaxApduLengthAccepted2222[MaxApduLengthAccepted2222["OCTETS_1476"] = 5] = "OCTETS_1476";
              return MaxApduLengthAccepted2222;
            })(MaxApduLengthAccepted222 || {});
            var MaxSegmentsAccepted222 = /* @__PURE__ */ ((MaxSegmentsAccepted2222) => {
              MaxSegmentsAccepted2222[MaxSegmentsAccepted2222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
              MaxSegmentsAccepted2222[MaxSegmentsAccepted2222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
              MaxSegmentsAccepted2222[MaxSegmentsAccepted2222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
              MaxSegmentsAccepted2222[MaxSegmentsAccepted2222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
              MaxSegmentsAccepted2222[MaxSegmentsAccepted2222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
              MaxSegmentsAccepted2222[MaxSegmentsAccepted2222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
              MaxSegmentsAccepted2222[MaxSegmentsAccepted2222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
              MaxSegmentsAccepted2222[MaxSegmentsAccepted2222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
              return MaxSegmentsAccepted2222;
            })(MaxSegmentsAccepted222 || {});
            var NetworkLayerMessageType222 = /* @__PURE__ */ ((NetworkLayerMessageType2222) => {
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
              NetworkLayerMessageType2222[NetworkLayerMessageType2222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
              return NetworkLayerMessageType2222;
            })(NetworkLayerMessageType222 || {});
            var NpduControlBit222 = /* @__PURE__ */ ((NpduControlBit2222) => {
              NpduControlBit2222[NpduControlBit2222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
              NpduControlBit2222[NpduControlBit2222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
              NpduControlBit2222[NpduControlBit2222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
              NpduControlBit2222[NpduControlBit2222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
              return NpduControlBit2222;
            })(NpduControlBit222 || {});
            var NpduControlPriority222 = /* @__PURE__ */ ((NpduControlPriority2222) => {
              NpduControlPriority2222[NpduControlPriority2222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
              NpduControlPriority2222[NpduControlPriority2222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
              NpduControlPriority2222[NpduControlPriority2222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
              NpduControlPriority2222[NpduControlPriority2222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
              return NpduControlPriority2222;
            })(NpduControlPriority222 || {});
            var PduConReqBit222 = /* @__PURE__ */ ((PduConReqBit2222) => {
              PduConReqBit2222[PduConReqBit2222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
              PduConReqBit2222[PduConReqBit2222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
              PduConReqBit2222[PduConReqBit2222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
              return PduConReqBit2222;
            })(PduConReqBit222 || {});
            var PduSegAckBit222 = /* @__PURE__ */ ((PduSegAckBit2222) => {
              PduSegAckBit2222[PduSegAckBit2222["SERVER"] = 1] = "SERVER";
              PduSegAckBit2222[PduSegAckBit2222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
              return PduSegAckBit2222;
            })(PduSegAckBit222 || {});
            var PduType222 = /* @__PURE__ */ ((PduType2222) => {
              PduType2222[PduType2222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
              PduType2222[PduType2222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
              PduType2222[PduType2222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
              PduType2222[PduType2222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
              PduType2222[PduType2222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
              PduType2222[PduType2222["ERROR"] = 80] = "ERROR";
              PduType2222[PduType2222["REJECT"] = 96] = "REJECT";
              PduType2222[PduType2222["ABORT"] = 112] = "ABORT";
              return PduType2222;
            })(PduType222 || {});
            var PropertyStates222 = /* @__PURE__ */ ((PropertyStates2222) => {
              PropertyStates2222[PropertyStates2222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
              PropertyStates2222[PropertyStates2222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
              PropertyStates2222[PropertyStates2222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
              PropertyStates2222[PropertyStates2222["POLARITY"] = 3] = "POLARITY";
              PropertyStates2222[PropertyStates2222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
              PropertyStates2222[PropertyStates2222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
              PropertyStates2222[PropertyStates2222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
              PropertyStates2222[PropertyStates2222["RELIABILITY"] = 7] = "RELIABILITY";
              PropertyStates2222[PropertyStates2222["STATE"] = 8] = "STATE";
              PropertyStates2222[PropertyStates2222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
              PropertyStates2222[PropertyStates2222["UNITS"] = 10] = "UNITS";
              PropertyStates2222[PropertyStates2222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
              PropertyStates2222[PropertyStates2222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
              PropertyStates2222[PropertyStates2222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
              PropertyStates2222[PropertyStates2222["RESTART_REASON"] = 14] = "RESTART_REASON";
              PropertyStates2222[PropertyStates2222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
              PropertyStates2222[PropertyStates2222["ACTION"] = 16] = "ACTION";
              PropertyStates2222[PropertyStates2222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
              PropertyStates2222[PropertyStates2222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
              PropertyStates2222[PropertyStates2222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
              PropertyStates2222[PropertyStates2222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
              PropertyStates2222[PropertyStates2222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
              PropertyStates2222[PropertyStates2222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
              PropertyStates2222[PropertyStates2222["MAINTENANCE"] = 23] = "MAINTENANCE";
              PropertyStates2222[PropertyStates2222["NODE_TYPE"] = 24] = "NODE_TYPE";
              PropertyStates2222[PropertyStates2222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
              PropertyStates2222[PropertyStates2222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
              PropertyStates2222[PropertyStates2222["SHED_STATE"] = 27] = "SHED_STATE";
              PropertyStates2222[PropertyStates2222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
              PropertyStates2222[PropertyStates2222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
              PropertyStates2222[PropertyStates2222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
              PropertyStates2222[PropertyStates2222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
              PropertyStates2222[PropertyStates2222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
              PropertyStates2222[PropertyStates2222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
              PropertyStates2222[PropertyStates2222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
              PropertyStates2222[PropertyStates2222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
              PropertyStates2222[PropertyStates2222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
              PropertyStates2222[PropertyStates2222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
              PropertyStates2222[PropertyStates2222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
              PropertyStates2222[PropertyStates2222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
              PropertyStates2222[PropertyStates2222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
              PropertyStates2222[PropertyStates2222["TIMER_STATE"] = 43] = "TIMER_STATE";
              PropertyStates2222[PropertyStates2222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
              PropertyStates2222[PropertyStates2222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
              PropertyStates2222[PropertyStates2222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
              PropertyStates2222[PropertyStates2222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
              PropertyStates2222[PropertyStates2222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
              PropertyStates2222[PropertyStates2222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
              PropertyStates2222[PropertyStates2222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
              PropertyStates2222[PropertyStates2222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
              PropertyStates2222[PropertyStates2222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
              PropertyStates2222[PropertyStates2222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
              PropertyStates2222[PropertyStates2222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
              PropertyStates2222[PropertyStates2222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
              PropertyStates2222[PropertyStates2222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
              PropertyStates2222[PropertyStates2222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
              PropertyStates2222[PropertyStates2222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
              PropertyStates2222[PropertyStates2222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
              return PropertyStates2222;
            })(PropertyStates222 || {});
            var ReadRangeType222 = /* @__PURE__ */ ((ReadRangeType2222) => {
              ReadRangeType2222[ReadRangeType2222["BY_POSITION"] = 0] = "BY_POSITION";
              ReadRangeType2222[ReadRangeType2222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
              ReadRangeType2222[ReadRangeType2222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
              return ReadRangeType2222;
            })(ReadRangeType222 || {});
            var ReinitializedState222 = /* @__PURE__ */ ((ReinitializedState2222) => {
              ReinitializedState2222[ReinitializedState2222["COLDSTART"] = 0] = "COLDSTART";
              ReinitializedState2222[ReinitializedState2222["WARMSTART"] = 1] = "WARMSTART";
              ReinitializedState2222[ReinitializedState2222["STARTBACKUP"] = 2] = "STARTBACKUP";
              ReinitializedState2222[ReinitializedState2222["ENDBACKUP"] = 3] = "ENDBACKUP";
              ReinitializedState2222[ReinitializedState2222["STARTRESTORE"] = 4] = "STARTRESTORE";
              ReinitializedState2222[ReinitializedState2222["ENDRESTORE"] = 5] = "ENDRESTORE";
              ReinitializedState2222[ReinitializedState2222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
              ReinitializedState2222[ReinitializedState2222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
              return ReinitializedState2222;
            })(ReinitializedState222 || {});
            var TimeStamp222 = /* @__PURE__ */ ((TimeStamp2222) => {
              TimeStamp2222[TimeStamp2222["TIME"] = 0] = "TIME";
              TimeStamp2222[TimeStamp2222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
              TimeStamp2222[TimeStamp2222["DATETIME"] = 2] = "DATETIME";
              return TimeStamp2222;
            })(TimeStamp222 || {});
            var import_events2222 = __toESM222(require("events"));
            var import_debug3222 = __toESM222(require("debug"));
            var import_dgram222 = require("dgram");
            var import_events322 = __toESM222(require("events"));
            var import_debug2222 = __toESM222(require("debug"));
            var EventEmitter322 = import_events322.default.EventEmitter;
            var debug2222 = (0, import_debug2222.default)("bacnet:client:debug");
            var DEFAULT_BACNET_PORT322 = 47808;
            var Transport222 = class extends EventEmitter322 {
              constructor(settings) {
                super();
                this._lastSendMessages = {};
                this._settings = settings;
                this._server = (0, import_dgram222.createSocket)({
                  type: "udp4",
                  reuseAddr: settings.reuseAddr
                });
                this._server.on("message", (msg, rinfo) => {
                  if (this.ownAddress.port === rinfo.port) {
                    for (let [messageKey, earlierSentBuffer] of Object.entries(
                      this._lastSendMessages
                    )) {
                      if (msg.equals(earlierSentBuffer)) {
                        debug2222(
                          `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                        );
                        return;
                      }
                    }
                  }
                  debug2222(
                    `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                      "hex"
                    )}`
                  );
                  this.emit(
                    "message",
                    msg,
                    rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT322 ? "" : ":" + rinfo.port)
                  );
                });
                this._server.on("listening", () => {
                  this.ownAddress = this._server.address();
                  debug2222(
                    `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
                  );
                  this.emit("listening", this.ownAddress);
                });
                this._server.on("error", (err) => {
                  debug2222("transport error", err.message);
                  this.emit("error", err);
                });
                this._server.on("close", () => {
                  debug2222("transport closed");
                  this.emit("close");
                });
              }
              getBroadcastAddress() {
                return this._settings.broadcastAddress;
              }
              getMaxPayload() {
                return 1482;
              }
              send(buffer, offset, receiver) {
                if (!receiver) {
                  receiver = this.getBroadcastAddress();
                  const dataToSend = Buffer.alloc(offset);
                  const hrTime = process.hrtime();
                  const messageKey = hrTime[0] * 1e9 + hrTime[1];
                  buffer.copy(dataToSend, 0, 0, offset);
                  this._lastSendMessages[messageKey] = dataToSend;
                  setTimeout(() => {
                    delete this._lastSendMessages[messageKey];
                  }, 1e4);
                }
                const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
                const [address, port] = receiverAddress.split(":");
                debug2222(
                  "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
                );
                this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT322, address);
              }
              open() {
                this._server.bind(this._settings.port, this._settings.interface, () => {
                  this._server.setBroadcast(true);
                });
              }
              close() {
                this._server.close();
              }
            };
            var services_exports222 = {};
            __export222(services_exports222, {
              addListElement: () => add_list_element_exports222,
              alarmAcknowledge: () => alarm_acknowledge_exports222,
              alarmSummary: () => alarm_summary_exports222,
              atomicReadFile: () => atomic_read_file_exports222,
              atomicWriteFile: () => atomic_write_file_exports222,
              covNotify: () => cov_notify_exports222,
              covNotifyUnconfirmed: () => cov_notify_exports222,
              createObject: () => create_object_exports222,
              deleteObject: () => delete_object_exports222,
              deviceCommunicationControl: () => device_communication_control_exports222,
              error: () => error_exports222,
              eventInformation: () => event_information_exports222,
              eventNotifyData: () => event_notify_data_exports222,
              getEnrollmentSummary: () => get_enrollment_summary_exports222,
              getEventInformation: () => get_event_information_exports222,
              iAm: () => i_am_exports222,
              iHave: () => i_have_exports222,
              lifeSafetyOperation: () => life_safety_operation_exports222,
              privateTransfer: () => private_transfer_exports222,
              readProperty: () => read_property_exports222,
              readPropertyMultiple: () => read_property_multiple_exports222,
              readRange: () => read_range_exports222,
              registerForeignDevice: () => register_foreign_device_exports222,
              reinitializeDevice: () => reinitialize_device_exports222,
              subscribeCov: () => subscribe_cov_exports222,
              subscribeProperty: () => subscribe_property_exports222,
              timeSync: () => time_sync_exports222,
              timeSyncUTC: () => time_sync_exports222,
              whoHas: () => who_has_exports222,
              whoIs: () => who_is_exports222,
              writeProperty: () => write_property_exports222,
              writePropertyMultiple: () => write_property_multiple_exports222
            });
            var add_list_element_exports222 = {};
            __export222(add_list_element_exports222, {
              decode: () => decode3322,
              encode: () => encode3322
            });
            var import_iconv_lite222 = __toESM222(require("iconv-lite"));
            var enums_default222 = enum_exports222;
            var START_YEAR222 = 1900;
            var MAX_YEARS222 = 256;
            var getBuffer222 = () => {
              return {
                buffer: Buffer.alloc(1472),
                offset: 0
              };
            };
            var getSignedLength222 = (value) => {
              if (value >= -128 && value < 128)
                return 1;
              else if (value >= -32768 && value < 32768)
                return 2;
              else if (value > -8388608 && value < 8388608)
                return 3;
              else
                return 4;
            };
            var getUnsignedLength222 = (value) => {
              if (value < 256)
                return 1;
              else if (value < 65536)
                return 2;
              else if (value < 16777216)
                return 3;
              else
                return 4;
            };
            var getEncodingType222 = (encoding, decodingBuffer, decodingOffset) => {
              switch (encoding) {
                case enums_default222.CharacterStringEncoding.UCS_2:
                  if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                    return "ucs2";
                  }
                  return "UTF-16BE";
                case enums_default222.CharacterStringEncoding.ISO_8859_1:
                  return "latin1";
                case enums_default222.CharacterStringEncoding.MICROSOFT_DBCS:
                  return "cp850";
                case enums_default222.CharacterStringEncoding.JIS_X_0208:
                  return "Shift_JIS";
                default:
                  return "utf8";
              }
            };
            var encodeUnsigned222 = (buffer, value, length) => {
              buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
              buffer.offset += length;
            };
            var encodeBacnetUnsigned222 = (buffer, value) => {
              encodeUnsigned222(buffer, value, getUnsignedLength222(value));
            };
            var encodeSigned222 = (buffer, value, length) => {
              buffer.buffer.writeIntBE(value, buffer.offset, length, true);
              buffer.offset += length;
            };
            var encodeBacnetSigned222 = (buffer, value) => {
              encodeSigned222(buffer, value, getSignedLength222(value));
            };
            var encodeBacnetReal222 = (buffer, value) => {
              buffer.buffer.writeFloatBE(value, buffer.offset, true);
              buffer.offset += 4;
            };
            var encodeBacnetDouble222 = (buffer, value) => {
              buffer.buffer.writeDoubleBE(value, buffer.offset, true);
              buffer.offset += 8;
            };
            var decodeUnsigned222 = (buffer, offset, length) => {
              if (length === 0) {
                return {
                  len: 0,
                  value: 0
                };
              }
              return {
                len: length,
                //@ts-ignore
                value: buffer.readUIntBE(offset, length)
              };
            };
            var decodeEnumerated222 = (buffer, offset, length) => {
              return decodeUnsigned222(buffer, offset, length);
            };
            var encodeBacnetObjectId222 = (buffer, objectType, instance) => {
              const value = ((objectType & enums_default222.ASN1_MAX_OBJECT) << enums_default222.ASN1_INSTANCE_BITS | instance & enums_default222.ASN1_MAX_INSTANCE) >>> 0;
              encodeUnsigned222(buffer, value, 4);
            };
            var encodeTag222 = (buffer, tagNumber, contextSpecific, lenValueType) => {
              let len = 1;
              const tmp = new Array(3);
              tmp[0] = 0;
              if (contextSpecific) {
                tmp[0] |= 8;
              }
              if (tagNumber <= 14) {
                tmp[0] |= tagNumber << 4;
              } else {
                tmp[0] |= 240;
                tmp[1] = tagNumber;
                len++;
              }
              if (lenValueType <= 4) {
                tmp[0] |= lenValueType;
                Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                buffer.offset += len;
              } else {
                tmp[0] |= 5;
                if (lenValueType <= 253) {
                  tmp[len++] = lenValueType;
                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                  buffer.offset += len;
                } else if (lenValueType <= 65535) {
                  tmp[len++] = 254;
                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                  buffer.offset += len;
                  encodeUnsigned222(buffer, lenValueType, 2);
                } else {
                  tmp[len++] = 255;
                  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
                  buffer.offset += len;
                  encodeUnsigned222(buffer, lenValueType, 4);
                }
              }
            };
            var encodeBacnetEnumerated222 = (buffer, value) => {
              encodeBacnetUnsigned222(buffer, value);
            };
            var isExtendedTagNumber222 = (x) => {
              return (x & 240) === 240;
            };
            var isExtendedValue222 = (x) => {
              return (x & 7) === 5;
            };
            var isContextSpecific222 = (x) => {
              return (x & 8) === 8;
            };
            var isOpeningTag222 = (x) => {
              return (x & 7) === 6;
            };
            var isClosingTag222 = (x) => {
              return (x & 7) === 7;
            };
            var encodeContextReal222 = (buffer, tagNumber, value) => {
              encodeTag222(buffer, tagNumber, true, 4);
              encodeBacnetReal222(buffer, value);
            };
            var encodeContextUnsigned222 = (buffer, tagNumber, value) => {
              encodeTag222(buffer, tagNumber, true, getUnsignedLength222(value));
              encodeBacnetUnsigned222(buffer, value);
            };
            var encodeContextEnumerated222 = (buffer, tagNumber, value) => {
              encodeContextUnsigned222(buffer, tagNumber, value);
            };
            var encodeOctetString222 = (buffer, octetString, octetOffset, octetCount) => {
              if (octetString) {
                for (let i = octetOffset; i < octetOffset + octetCount; i++) {
                  buffer.buffer[buffer.offset++] = octetString[i];
                }
              }
            };
            var encodeApplicationOctetString222 = (buffer, octetString, octetOffset, octetCount) => {
              encodeTag222(buffer, enums_default222.ApplicationTag.OCTET_STRING, false, octetCount);
              encodeOctetString222(buffer, octetString, octetOffset, octetCount);
            };
            var encodeApplicationNull222 = (buffer) => {
              buffer.buffer[buffer.offset++] = enums_default222.ApplicationTag.NULL;
            };
            var encodeApplicationBoolean222 = (buffer, booleanValue) => {
              encodeTag222(buffer, enums_default222.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
            };
            var encodeApplicationReal222 = (buffer, value) => {
              encodeTag222(buffer, enums_default222.ApplicationTag.REAL, false, 4);
              encodeBacnetReal222(buffer, value);
            };
            var encodeApplicationDouble222 = (buffer, value) => {
              encodeTag222(buffer, enums_default222.ApplicationTag.DOUBLE, false, 8);
              encodeBacnetDouble222(buffer, value);
            };
            var bitstringBytesUsed222 = (bitString) => {
              let len = 0;
              if (bitString.bitsUsed > 0) {
                const lastBit = bitString.bitsUsed - 1;
                const usedBytes = lastBit / 8 + 1;
                len = Math.floor(usedBytes);
              }
              return len;
            };
            var encodeApplicationObjectId222 = (buffer, objectType, instance) => {
              const tmp = getBuffer222();
              encodeBacnetObjectId222(tmp, objectType, instance);
              encodeTag222(buffer, enums_default222.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
              buffer.offset += tmp.offset;
            };
            var encodeApplicationUnsigned222 = (buffer, value) => {
              const tmp = getBuffer222();
              encodeBacnetUnsigned222(tmp, value);
              encodeTag222(buffer, enums_default222.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
              buffer.offset += tmp.offset;
            };
            var encodeApplicationEnumerated222 = (buffer, value) => {
              const tmp = getBuffer222();
              encodeBacnetEnumerated222(tmp, value);
              encodeTag222(buffer, enums_default222.ApplicationTag.ENUMERATED, false, tmp.offset);
              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
              buffer.offset += tmp.offset;
            };
            var encodeApplicationSigned222 = (buffer, value) => {
              const tmp = getBuffer222();
              encodeBacnetSigned222(tmp, value);
              encodeTag222(buffer, enums_default222.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
              buffer.offset += tmp.offset;
            };
            var byteReverseBits222 = (inByte) => {
              let outByte = 0;
              if ((inByte & 1) > 0) {
                outByte |= 128;
              }
              if ((inByte & 2) > 0) {
                outByte |= 64;
              }
              if ((inByte & 4) > 0) {
                outByte |= 32;
              }
              if ((inByte & 8) > 0) {
                outByte |= 16;
              }
              if ((inByte & 16) > 0) {
                outByte |= 8;
              }
              if ((inByte & 32) > 0) {
                outByte |= 4;
              }
              if ((inByte & 64) > 0) {
                outByte |= 2;
              }
              if ((inByte & 128) > 0) {
                outByte |= 1;
              }
              return outByte;
            };
            var bitstringOctet222 = (bitString, octetIndex) => {
              let octet = 0;
              if (bitString.value && octetIndex < enums_default222.ASN1_MAX_BITSTRING_BYTES) {
                octet = bitString.value[octetIndex];
              }
              return octet;
            };
            var encodeBitstring222 = (buffer, bitString) => {
              if (bitString.bitsUsed === 0) {
                buffer.buffer[buffer.offset++] = 0;
              } else {
                const usedBytes = bitstringBytesUsed222(bitString);
                const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
                buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
                for (let i = 0; i < usedBytes; i++) {
                  buffer.buffer[buffer.offset++] = byteReverseBits222(
                    bitstringOctet222(bitString, i)
                  );
                }
              }
            };
            var encodeApplicationBitstring222 = (buffer, bitString) => {
              let bitStringEncodedLength = 1;
              bitStringEncodedLength += bitstringBytesUsed222(bitString);
              encodeTag222(
                buffer,
                enums_default222.ApplicationTag.BIT_STRING,
                false,
                bitStringEncodedLength
              );
              encodeBitstring222(buffer, bitString);
            };
            var encodeBacnetDate222 = (buffer, value) => {
              if (value === new Date(1, 1, 1)) {
                buffer.buffer[buffer.offset++] = 255;
                buffer.buffer[buffer.offset++] = 255;
                buffer.buffer[buffer.offset++] = 255;
                buffer.buffer[buffer.offset++] = 255;
                return;
              }
              if (value.getFullYear() >= START_YEAR222) {
                buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR222;
              } else if (value.getFullYear() < MAX_YEARS222) {
                buffer.buffer[buffer.offset++] = value.getFullYear();
              } else {
                throw new Error("invaide year: " + value.getFullYear());
              }
              buffer.buffer[buffer.offset++] = value.getMonth();
              buffer.buffer[buffer.offset++] = value.getDate();
              buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
            };
            var encodeApplicationDate222 = (buffer, value) => {
              encodeTag222(buffer, enums_default222.ApplicationTag.DATE, false, 4);
              encodeBacnetDate222(buffer, value);
            };
            var encodeBacnetTime222 = (buffer, value) => {
              buffer.buffer[buffer.offset++] = value.getHours();
              buffer.buffer[buffer.offset++] = value.getMinutes();
              buffer.buffer[buffer.offset++] = value.getSeconds();
              buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
            };
            var encodeApplicationTime222 = (buffer, value) => {
              encodeTag222(buffer, enums_default222.ApplicationTag.TIME, false, 4);
              encodeBacnetTime222(buffer, value);
            };
            var bacappEncodeDatetime222 = (buffer, value) => {
              if (value !== new Date(1, 1, 1)) {
                encodeApplicationDate222(buffer, value);
                encodeApplicationTime222(buffer, value);
              }
            };
            var encodeContextObjectId222 = (buffer, tagNumber, objectType, instance) => {
              encodeTag222(buffer, tagNumber, true, 4);
              encodeBacnetObjectId222(buffer, objectType, instance);
            };
            var encodeOpeningTag222 = (buffer, tagNumber) => {
              let len = 1;
              const tmp = new Array(2);
              tmp[0] = 8;
              if (tagNumber <= 14) {
                tmp[0] |= tagNumber << 4;
              } else {
                tmp[0] |= 240;
                tmp[1] = tagNumber;
                len++;
              }
              tmp[0] |= 6;
              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
              buffer.offset += len;
            };
            var encodeClosingTag222 = (buffer, tagNumber) => {
              let len = 1;
              const tmp = new Array(2);
              tmp[0] = 8;
              if (tagNumber <= 14) {
                tmp[0] |= tagNumber << 4;
              } else {
                tmp[0] |= 240;
                tmp[1] = tagNumber;
                len++;
              }
              tmp[0] |= 7;
              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
              buffer.offset += len;
            };
            var encodeReadAccessSpecification222 = (buffer, value) => {
              encodeContextObjectId222(
                buffer,
                0,
                value.objectId.type,
                value.objectId.instance
              );
              encodeOpeningTag222(buffer, 1);
              value.properties.forEach((p) => {
                encodeContextEnumerated222(buffer, 0, p.id);
                if (p.index && p.index !== enums_default222.ASN1_ARRAY_ALL) {
                  encodeContextUnsigned222(buffer, 1, p.index);
                }
              });
              encodeClosingTag222(buffer, 1);
            };
            var encodeContextBoolean222 = (buffer, tagNumber, booleanValue) => {
              encodeTag222(buffer, tagNumber, true, 1);
              buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
              buffer.offset += 1;
            };
            var encodeCovSubscription222 = (buffer, value) => {
              encodeOpeningTag222(buffer, 0);
              encodeOpeningTag222(buffer, 0);
              encodeOpeningTag222(buffer, 1);
              encodeApplicationUnsigned222(buffer, value.recipient.network);
              if (value.recipient.network === 65535) {
                encodeApplicationOctetString222(buffer, 0, 0, 0);
              } else {
                encodeApplicationOctetString222(
                  buffer,
                  value.recipient.address,
                  0,
                  value.recipient.address.length
                );
              }
              encodeClosingTag222(buffer, 1);
              encodeClosingTag222(buffer, 0);
              encodeContextUnsigned222(buffer, 1, value.subscriptionProcessId);
              encodeClosingTag222(buffer, 0);
              encodeOpeningTag222(buffer, 1);
              encodeContextObjectId222(
                buffer,
                0,
                value.monitoredObjectId.type,
                value.monitoredObjectId.instance
              );
              encodeContextEnumerated222(buffer, 1, value.monitoredProperty.id);
              if (value.monitoredProperty.index !== enums_default222.ASN1_ARRAY_ALL) {
                encodeContextUnsigned222(buffer, 2, value.monitoredProperty.index);
              }
              encodeClosingTag222(buffer, 1);
              encodeContextBoolean222(buffer, 2, value.issueConfirmedNotifications);
              encodeContextUnsigned222(buffer, 3, value.timeRemaining);
              if (value.covIncrement > 0) {
                encodeContextReal222(buffer, 4, value.covIncrement);
              }
            };
            var bacappEncodeApplicationData222 = (buffer, value) => {
              if (value.value === null) {
                value.type = enums_default222.ApplicationTag.NULL;
              }
              switch (value.type) {
                case enums_default222.ApplicationTag.NULL:
                  encodeApplicationNull222(buffer);
                  break;
                case enums_default222.ApplicationTag.BOOLEAN:
                  encodeApplicationBoolean222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.UNSIGNED_INTEGER:
                  encodeApplicationUnsigned222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.SIGNED_INTEGER:
                  encodeApplicationSigned222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.REAL:
                  encodeApplicationReal222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.DOUBLE:
                  encodeApplicationDouble222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.OCTET_STRING:
                  encodeApplicationOctetString222(buffer, value.value, 0, value.value.length);
                  break;
                case enums_default222.ApplicationTag.CHARACTER_STRING:
                  encodeApplicationCharacterString222(buffer, value.value, value.encoding);
                  break;
                case enums_default222.ApplicationTag.BIT_STRING:
                  encodeApplicationBitstring222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.ENUMERATED:
                  encodeApplicationEnumerated222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.DATE:
                  encodeApplicationDate222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.TIME:
                  encodeApplicationTime222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.TIMESTAMP:
                  bacappEncodeTimestamp222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.DATETIME:
                  bacappEncodeDatetime222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.OBJECTIDENTIFIER:
                  encodeApplicationObjectId222(buffer, value.value.type, value.value.instance);
                  break;
                case enums_default222.ApplicationTag.COV_SUBSCRIPTION:
                  encodeCovSubscription222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.READ_ACCESS_RESULT:
                  encodeReadAccessResult222(buffer, value.value);
                  break;
                case enums_default222.ApplicationTag.READ_ACCESS_SPECIFICATION:
                  encodeReadAccessSpecification222(buffer, value.value);
                  break;
                case void 0:
                  throw new Error(
                    "Cannot encode a value if the type has not been specified"
                  );
                default:
                  throw "No encode for ApplicationTag type: " + enums_default222.getEnumName(
                    enums_default222.ApplicationTag,
                    value.type
                  );
              }
            };
            var bacappEncodeDeviceObjPropertyRef222 = (buffer, value) => {
              encodeContextObjectId222(
                buffer,
                0,
                value.objectId.type,
                value.objectId.instance
              );
              encodeContextEnumerated222(buffer, 1, value.id);
              if (value.arrayIndex !== enums_default222.ASN1_ARRAY_ALL) {
                encodeContextUnsigned222(buffer, 2, value.arrayIndex);
              }
              if (value.deviceIndentifier.type === enums_default222.ObjectType.DEVICE) {
                encodeContextObjectId222(
                  buffer,
                  3,
                  value.deviceIndentifier.type,
                  value.deviceIndentifier.instance
                );
              }
            };
            var bacappEncodeContextDeviceObjPropertyRef222 = (buffer, tagNumber, value) => {
              encodeOpeningTag222(buffer, tagNumber);
              bacappEncodeDeviceObjPropertyRef222(buffer, value);
              encodeClosingTag222(buffer, tagNumber);
            };
            var bacappEncodePropertyState222 = (buffer, value) => {
              switch (value.type) {
                case enums_default222.PropertyStates.BOOLEAN_VALUE:
                  encodeContextBoolean222(buffer, 0, value.state === 1);
                  break;
                case enums_default222.PropertyStates.BINARY_VALUE:
                  encodeContextEnumerated222(buffer, 1, value.state);
                  break;
                case enums_default222.PropertyStates.EVENT_TYPE:
                  encodeContextEnumerated222(buffer, 2, value.state);
                  break;
                case enums_default222.PropertyStates.POLARITY:
                  encodeContextEnumerated222(buffer, 3, value.state);
                  break;
                case enums_default222.PropertyStates.PROGRAM_CHANGE:
                  encodeContextEnumerated222(buffer, 4, value.state);
                  break;
                case enums_default222.PropertyStates.PROGRAM_STATE:
                  encodeContextEnumerated222(buffer, 5, value.state);
                  break;
                case enums_default222.PropertyStates.REASON_FOR_HALT:
                  encodeContextEnumerated222(buffer, 6, value.state);
                  break;
                case enums_default222.PropertyStates.RELIABILITY:
                  encodeContextEnumerated222(buffer, 7, value.state);
                  break;
                case enums_default222.PropertyStates.STATE:
                  encodeContextEnumerated222(buffer, 8, value.state);
                  break;
                case enums_default222.PropertyStates.SYSTEM_STATUS:
                  encodeContextEnumerated222(buffer, 9, value.state);
                  break;
                case enums_default222.PropertyStates.UNITS:
                  encodeContextEnumerated222(buffer, 10, value.state);
                  break;
                case enums_default222.PropertyStates.UNSIGNED_VALUE:
                  encodeContextUnsigned222(buffer, 11, value.state);
                  break;
                case enums_default222.PropertyStates.LIFE_SAFETY_MODE:
                  encodeContextEnumerated222(buffer, 12, value.state);
                  break;
                case enums_default222.PropertyStates.LIFE_SAFETY_STATE:
                  encodeContextEnumerated222(buffer, 13, value.state);
                  break;
                default:
                  break;
              }
            };
            var encodeContextBitstring222 = (buffer, tagNumber, bitString) => {
              let bitStringEncodedLength = 1;
              bitStringEncodedLength += bitstringBytesUsed222(bitString);
              encodeTag222(buffer, tagNumber, true, bitStringEncodedLength);
              encodeBitstring222(buffer, bitString);
            };
            var encodeContextSigned222 = (buffer, tagNumber, value) => {
              encodeTag222(buffer, tagNumber, true, getSignedLength222(value));
              encodeBacnetSigned222(buffer, value);
            };
            var encodeContextTime222 = (buffer, tagNumber, value) => {
              encodeTag222(buffer, tagNumber, true, 4);
              encodeBacnetTime222(buffer, value);
            };
            var bacappEncodeContextDatetime222 = (buffer, tagNumber, value) => {
              if (value !== new Date(1, 1, 1)) {
                encodeOpeningTag222(buffer, tagNumber);
                bacappEncodeDatetime222(buffer, value);
                encodeClosingTag222(buffer, tagNumber);
              } else {
                throw new Error("wrong Datetime while bacapp encoding context");
              }
            };
            var decodeTagNumber222 = (buffer, offset) => {
              let len = 1;
              let tagNumber;
              if (isExtendedTagNumber222(buffer[offset])) {
                tagNumber = buffer[offset + 1];
                len++;
              } else {
                tagNumber = buffer[offset] >> 4;
              }
              return {
                len,
                tagNumber
              };
            };
            var decodeIsContextTag222 = (buffer, offset, tagNumber) => {
              const result = decodeTagNumber222(buffer, offset);
              return isContextSpecific222(buffer[offset]) && result.tagNumber === tagNumber;
            };
            var decodeIsOpeningTagNumber222 = (buffer, offset, tagNumber) => {
              const result = decodeTagNumber222(buffer, offset);
              return isOpeningTag222(buffer[offset]) && result.tagNumber === tagNumber;
            };
            var decodeIsClosingTagNumber222 = (buffer, offset, tagNumber) => {
              const result = decodeTagNumber222(buffer, offset);
              return isClosingTag222(buffer[offset]) && result.tagNumber === tagNumber;
            };
            var decodeIsClosingTag222 = (buffer, offset) => {
              return (buffer[offset] & 7) === 7;
            };
            var decodeIsOpeningTag222 = (buffer, offset) => {
              return (buffer[offset] & 7) === 6;
            };
            var decodeObjectId222 = (buffer, offset, NOT_USED_NUMBER = 0) => {
              const result = decodeUnsigned222(buffer, offset, 4);
              const objectType = result.value >> enums_default222.ASN1_INSTANCE_BITS & enums_default222.ASN1_MAX_OBJECT;
              const instance = result.value & enums_default222.ASN1_MAX_INSTANCE;
              return {
                len: result.len,
                objectType,
                instance
              };
            };
            var decodeObjectIdSafe222 = (buffer, offset, lenValue) => {
              if (lenValue !== 4) {
                return {
                  len: 0,
                  objectType: 0,
                  instance: 0
                };
              } else {
                return decodeObjectId222(buffer, offset);
              }
            };
            var decodeTagNumberAndValue222 = (buffer, offset) => {
              let value;
              let result = decodeTagNumber222(buffer, offset);
              let len = result.len;
              if (isExtendedValue222(buffer[offset])) {
                if (buffer[offset + len] === 255) {
                  len++;
                  result = decodeUnsigned222(buffer, offset + len, 4);
                  len += result.len;
                  value = result.value;
                } else if (buffer[offset + len] === 254) {
                  len++;
                  result = decodeUnsigned222(buffer, offset + len, 2);
                  len += result.len;
                  value = result.value;
                } else {
                  value = buffer[offset + len];
                  len++;
                }
              } else if (isOpeningTag222(buffer[offset])) {
                value = 0;
              } else if (isClosingTag222(buffer[offset])) {
                value = 0;
              } else {
                value = buffer[offset] & 7;
              }
              return {
                len,
                tagNumber: result.tagNumber,
                value
              };
            };
            var bacappDecodeApplicationData222 = (buffer, offset, maxOffset, objectType, propertyId) => {
              if (!isContextSpecific222(buffer[offset])) {
                let result = decodeTagNumberAndValue222(buffer, offset);
                if (result) {
                  let len = result.len;
                  result = bacappDecodeData222(
                    buffer,
                    offset + len,
                    maxOffset,
                    result.tagNumber,
                    result.value
                  );
                  if (!result) {
                    return void 0;
                  }
                  let resObj = {
                    len: len + result.len,
                    type: result.type,
                    value: result.value
                  };
                  if (result.encoding !== void 0)
                    resObj.encoding = result.encoding;
                  return resObj;
                }
              } else {
                return bacappDecodeContextApplicationData222(
                  buffer,
                  offset,
                  maxOffset,
                  objectType,
                  propertyId
                );
              }
            };
            var encodeReadAccessResult222 = (buffer, value) => {
              encodeContextObjectId222(
                buffer,
                0,
                value.objectId.type,
                value.objectId.instance
              );
              encodeOpeningTag222(buffer, 1);
              value.values.forEach((item) => {
                encodeContextEnumerated222(buffer, 2, item.property.id);
                if (item.property.index !== enums_default222.ASN1_ARRAY_ALL) {
                  encodeContextUnsigned222(buffer, 3, item.property.index);
                }
                if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
                  encodeOpeningTag222(buffer, 5);
                  encodeApplicationEnumerated222(buffer, item.value[0].value.errorClass);
                  encodeApplicationEnumerated222(buffer, item.value[0].value.errorCode);
                  encodeClosingTag222(buffer, 5);
                } else {
                  if (!item.value)
                    throw new Error("No value in item");
                  encodeOpeningTag222(buffer, 4);
                  item.value.forEach((subItem) => {
                    bacappEncodeApplicationData222(buffer, subItem);
                  });
                  encodeClosingTag222(buffer, 4);
                }
              });
              encodeClosingTag222(buffer, 1);
            };
            var decodeReadAccessResult222 = (buffer, offset, apduLen) => {
              let len = 0;
              let value = {};
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              let result = decodeObjectId222(buffer, offset + len);
              value.objectId = {
                type: result.objectType,
                instance: result.instance
              };
              len += result.len;
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 1)) {
                return -1;
              }
              len++;
              const values = [];
              while (apduLen - len > 0) {
                let newEntry = {};
                if (decodeIsClosingTagNumber222(buffer, offset + len, 1)) {
                  len++;
                  break;
                }
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 2) {
                  return void 0;
                }
                result = decodeEnumerated222(buffer, offset + len, result.value);
                newEntry.id = result.value;
                len += result.len;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                if (result.tagNumber === 3) {
                  len += result.len;
                  result = decodeUnsigned222(buffer, offset + len, result.value);
                  newEntry.index = result.value;
                  len += result.len;
                } else {
                  newEntry.index = enums_default222.ASN1_ARRAY_ALL;
                }
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber === 4) {
                  const localValues = [];
                  while (len + offset <= buffer.length && !decodeIsClosingTagNumber222(buffer, offset + len, 4)) {
                    let localResult = bacappDecodeApplicationData222(
                      buffer,
                      offset + len,
                      apduLen + offset - 1,
                      value.objectId.type,
                      newEntry.id
                    );
                    if (!localResult) {
                      return void 0;
                    }
                    len += localResult.len;
                    let resObj = {
                      value: localResult.value,
                      type: localResult.type
                    };
                    if (localResult.encoding !== void 0)
                      resObj.encoding = localResult.encoding;
                    localValues.push(resObj);
                  }
                  if (!decodeIsClosingTagNumber222(buffer, offset + len, 4)) {
                    return void 0;
                  }
                  if (localValues.count === 2 && localValues[0].type === enums_default222.ApplicationTag.DATE && localValues[1].type === enums_default222.ApplicationTag.TIME) {
                    const date = localValues[0].value;
                    const time = localValues[1].value;
                    const bdatetime = new Date(
                      date.year,
                      date.month,
                      date.day,
                      time.hour,
                      time.minute,
                      time.second,
                      time.millisecond
                    );
                    newEntry.value = [
                      { type: enums_default222.ApplicationTag.DATETIME, value: bdatetime }
                    ];
                  } else {
                    newEntry.value = localValues;
                  }
                  len++;
                } else if (result.tagNumber === 5) {
                  let err = {};
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                  result = decodeEnumerated222(buffer, offset + len, result.value);
                  len += result.len;
                  err.errorClass = result.value;
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                  result = decodeEnumerated222(buffer, offset + len, result.value);
                  len += result.len;
                  err.errorCode = result.value;
                  if (!decodeIsClosingTagNumber222(buffer, offset + len, 5)) {
                    return void 0;
                  }
                  len++;
                  newEntry.value = [
                    {
                      type: enums_default222.ApplicationTag.ERROR,
                      value: err
                    }
                  ];
                }
                values.push(newEntry);
              }
              value.values = values;
              return {
                len,
                value
              };
            };
            var decodeSigned222 = (buffer, offset, length) => {
              return {
                len: length,
                value: buffer.readIntBE(offset, length, true)
              };
            };
            var decodeReal222 = (buffer, offset) => {
              return {
                len: 4,
                value: buffer.readFloatBE(offset, true)
              };
            };
            var decodeRealSafe222 = (buffer, offset, lenValue) => {
              if (lenValue !== 4) {
                return {
                  len: lenValue,
                  value: 0
                };
              } else {
                return decodeReal222(buffer, offset);
              }
            };
            var decodeDouble222 = (buffer, offset) => {
              return {
                len: 8,
                value: buffer.readDoubleBE(offset, true)
              };
            };
            var decodeDoubleSafe222 = (buffer, offset, lenValue) => {
              if (lenValue !== 8) {
                return {
                  len: lenValue,
                  value: 0
                };
              } else {
                return decodeDouble222(buffer, offset);
              }
            };
            var decodeOctetString222 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
              const octetString = [];
              for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
                octetString.push(buffer[offset + i]);
              }
              return {
                len: octetStringLength,
                value: octetString
              };
            };
            var multiCharsetCharacterstringDecode222 = (buffer, offset, maxLength, encoding, length) => {
              const stringBuf = Buffer.alloc(length);
              buffer.copy(stringBuf, 0, offset, offset + length);
              return {
                value: import_iconv_lite222.default.decode(stringBuf, getEncodingType222(encoding, buffer, offset)),
                len: length + 1,
                encoding
              };
            };
            var decodeCharacterString222 = (buffer, offset, maxLength, lenValue) => {
              return multiCharsetCharacterstringDecode222(
                buffer,
                offset + 1,
                maxLength,
                buffer[offset],
                lenValue - 1
              );
            };
            var bitstringSetBitsUsed222 = (bitString, bytesUsed, unusedBits) => {
              bitString.bitsUsed = bytesUsed * 8;
              bitString.bitsUsed -= unusedBits;
            };
            var decodeBitstring222 = (buffer, offset, lenValue) => {
              let len = 0;
              let bitString = {};
              bitString.value = [];
              if (lenValue > 0) {
                const bytesUsed = lenValue - 1;
                if (bytesUsed <= enums_default222.ASN1_MAX_BITSTRING_BYTES) {
                  len = 1;
                  for (let i = 0; i < bytesUsed; i++) {
                    bitString.value.push(byteReverseBits222(buffer[offset + len++]));
                  }
                  const unusedBits = buffer[offset] & 7;
                  bitstringSetBitsUsed222(bitString, bytesUsed, unusedBits);
                }
              }
              return {
                len,
                value: bitString
              };
            };
            var decodeDate222 = (buffer, offset) => {
              let date;
              const year = buffer[offset] + 1900;
              const month = buffer[offset + 1];
              const day = buffer[offset + 2];
              const wday = buffer[offset + 3];
              if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
                date = new Date(1, 1, 1);
              } else {
                date = new Date(year, month, day);
              }
              return {
                len: 4,
                value: date
              };
            };
            var decodeDateSafe222 = (buffer, offset, lenValue) => {
              if (lenValue !== 4) {
                return {
                  len: lenValue,
                  value: new Date(1, 1, 1)
                };
              } else {
                return decodeDate222(buffer, offset);
              }
            };
            var decodeApplicationDate222 = (buffer, offset) => {
              const result = decodeTagNumber222(buffer, offset);
              if (result.tagNumber === enums_default222.ApplicationTag.DATE) {
                const value = decodeDate222(buffer, offset + 1);
                return {
                  len: value.len + 1,
                  value
                };
              }
              return void 0;
            };
            var decodeBacnetTime222 = (buffer, offset, value = new Date(1, 1, 1)) => {
              const hour = buffer[offset + 0];
              const min = buffer[offset + 1];
              const sec = buffer[offset + 2];
              let hundredths = buffer[offset + 3];
              if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
                value = new Date(1, 1, 1);
              } else {
                if (hundredths > 100)
                  hundredths = 0;
                value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
              }
              return {
                len: 4,
                value
              };
            };
            var decodeBacnetTimeSafe222 = (buffer, offset, lenValue) => {
              if (lenValue !== 4) {
                return {
                  len: lenValue,
                  value: new Date(1, 1, 1)
                };
              } else {
                return decodeBacnetTime222(buffer, offset);
              }
            };
            var decodeApplicationTime222 = (buffer, offset) => {
              const result = decodeTagNumber222(buffer, offset);
              if (result.tagNumber === enums_default222.ApplicationTag.TIME) {
                const value = decodeBacnetTime222(buffer, offset + 1);
                return {
                  len: value.len + 1,
                  value
                };
              }
              return void 0;
            };
            var decodeBacnetDatetime222 = (buffer, offset) => {
              let len = 0;
              const date = decodeApplicationDate222(buffer, offset + len);
              len += date.len;
              const time = decodeApplicationTime222(buffer, offset + len);
              len += time.len;
              return {
                len,
                value: new Date(
                  date.year,
                  date.month,
                  date.day,
                  time.hour,
                  time.minute,
                  time.second,
                  time.millisecond
                )
              };
            };
            var bacappDecodeData222 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
              let result;
              let value = {
                len: 0,
                type: tagDataType
              };
              switch (tagDataType) {
                case enums_default222.ApplicationTag.NULL:
                  value.value = null;
                  break;
                case enums_default222.ApplicationTag.BOOLEAN:
                  value.value = lenValueType > 0;
                  break;
                case enums_default222.ApplicationTag.UNSIGNED_INTEGER:
                  result = decodeUnsigned222(buffer, offset, lenValueType);
                  value.len += result.len;
                  value.value = result.value;
                  break;
                case enums_default222.ApplicationTag.SIGNED_INTEGER:
                  result = decodeSigned222(buffer, offset, lenValueType);
                  value.len += result.len;
                  value.value = result.value;
                  break;
                case enums_default222.ApplicationTag.REAL:
                  result = decodeRealSafe222(buffer, offset, lenValueType);
                  value.len += result.len;
                  value.value = result.value;
                  break;
                case enums_default222.ApplicationTag.DOUBLE:
                  result = decodeDoubleSafe222(buffer, offset, lenValueType);
                  value.len += result.len;
                  value.value = result.value;
                  break;
                case enums_default222.ApplicationTag.OCTET_STRING:
                  result = decodeOctetString222(buffer, offset, maxLength, 0, lenValueType);
                  value.len += result.len;
                  value.value = result.value;
                  break;
                case enums_default222.ApplicationTag.CHARACTER_STRING:
                  result = decodeCharacterString222(buffer, offset, maxLength, lenValueType);
                  value.len += result.len;
                  value.value = result.value;
                  value.encoding = result.encoding;
                  break;
                case enums_default222.ApplicationTag.BIT_STRING:
                  result = decodeBitstring222(buffer, offset, lenValueType);
                  value.len += result.len;
                  value.value = result.value;
                  break;
                case enums_default222.ApplicationTag.ENUMERATED:
                  result = decodeEnumerated222(buffer, offset, lenValueType);
                  value.len += result.len;
                  value.value = result.value;
                  break;
                case enums_default222.ApplicationTag.DATE:
                  result = decodeDateSafe222(buffer, offset, lenValueType);
                  value.len += result.len;
                  value.value = result.value;
                  break;
                case enums_default222.ApplicationTag.TIME:
                  result = decodeBacnetTimeSafe222(buffer, offset, lenValueType);
                  value.len += result.len;
                  value.value = result.value;
                  break;
                case enums_default222.ApplicationTag.OBJECTIDENTIFIER:
                  result = decodeObjectIdSafe222(buffer, offset, lenValueType);
                  value.len += result.len;
                  value.value = { type: result.objectType, instance: result.instance };
                  break;
                default:
                  break;
              }
              return value;
            };
            var bacappContextTagType222 = (property, tagNumber) => {
              let tag = 0;
              switch (property) {
                case enums_default222.PropertyIdentifier.ACTUAL_SHED_LEVEL:
                case enums_default222.PropertyIdentifier.REQUESTED_SHED_LEVEL:
                case enums_default222.PropertyIdentifier.EXPECTED_SHED_LEVEL:
                  switch (tagNumber) {
                    case 0:
                    case 1:
                      tag = enums_default222.ApplicationTag.UNSIGNED_INTEGER;
                      break;
                    case 2:
                      tag = enums_default222.ApplicationTag.REAL;
                      break;
                    default:
                      break;
                  }
                  break;
                case enums_default222.PropertyIdentifier.ACTION:
                  switch (tagNumber) {
                    case 0:
                    case 1:
                      tag = enums_default222.ApplicationTag.OBJECTIDENTIFIER;
                      break;
                    case 2:
                      tag = enums_default222.ApplicationTag.ENUMERATED;
                      break;
                    case 3:
                    case 5:
                    case 6:
                      tag = enums_default222.ApplicationTag.UNSIGNED_INTEGER;
                      break;
                    case 7:
                    case 8:
                      tag = enums_default222.ApplicationTag.BOOLEAN;
                      break;
                    default:
                      break;
                  }
                  break;
                case enums_default222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
                  switch (tagNumber) {
                    case 0:
                      tag = enums_default222.ApplicationTag.OBJECTIDENTIFIER;
                      break;
                    default:
                      break;
                  }
                  break;
                case enums_default222.PropertyIdentifier.EXCEPTION_SCHEDULE:
                  switch (tagNumber) {
                    case 1:
                      tag = enums_default222.ApplicationTag.OBJECTIDENTIFIER;
                      break;
                    case 3:
                      tag = enums_default222.ApplicationTag.UNSIGNED_INTEGER;
                      break;
                    default:
                      break;
                  }
                  break;
                case enums_default222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
                  switch (tagNumber) {
                    case 0:
                    case 3:
                      tag = enums_default222.ApplicationTag.OBJECTIDENTIFIER;
                      break;
                    case 1:
                      tag = enums_default222.ApplicationTag.ENUMERATED;
                      break;
                    case 2:
                      tag = enums_default222.ApplicationTag.UNSIGNED_INTEGER;
                      break;
                    default:
                      break;
                  }
                  break;
                case enums_default222.PropertyIdentifier.SUBORDINATE_LIST:
                  switch (tagNumber) {
                    case 0:
                    case 1:
                      tag = enums_default222.ApplicationTag.OBJECTIDENTIFIER;
                      break;
                    default:
                      break;
                  }
                  break;
                case enums_default222.PropertyIdentifier.RECIPIENT_LIST:
                  switch (tagNumber) {
                    case 0:
                      tag = enums_default222.ApplicationTag.OBJECTIDENTIFIER;
                      break;
                    default:
                      break;
                  }
                  break;
                case enums_default222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
                  switch (tagNumber) {
                    case 0:
                    case 1:
                      break;
                    case 2:
                      tag = enums_default222.ApplicationTag.BOOLEAN;
                      break;
                    case 3:
                      tag = enums_default222.ApplicationTag.UNSIGNED_INTEGER;
                      break;
                    case 4:
                      tag = enums_default222.ApplicationTag.REAL;
                      break;
                    default:
                      break;
                  }
                  break;
                default:
                  break;
              }
              return tag;
            };
            var decodeDeviceObjPropertyRef222 = (buffer, offset, NOTUSEDARG = 0) => {
              let len = 0;
              let arrayIndex = enums_default222.ASN1_ARRAY_ALL;
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              let objectId = decodeObjectId222(buffer, offset + len);
              len += objectId.len;
              let result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 1) {
                return void 0;
              }
              let id = decodeEnumerated222(buffer, offset + len, result.value);
              len += id.len;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              if (result.tagNumber === 2) {
                len += result.len;
                arrayIndex = decodeUnsigned222(buffer, offset + len, result.value);
                len += arrayIndex.len;
              }
              if (decodeIsContextTag222(buffer, offset + len, 3)) {
                if (!isClosingTag222(buffer[offset + len])) {
                  len++;
                  objectId = decodeObjectId222(buffer, offset + len);
                  len += objectId.len;
                }
              }
              return {
                len,
                value: {
                  objectId,
                  id
                }
              };
            };
            var decodeReadAccessSpecification222 = (buffer, offset, apduLen) => {
              let len = 0;
              let value = {};
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              let decodedValue = decodeObjectId222(buffer, offset + len);
              value.objectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              len += decodedValue.len;
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 1)) {
                return void 0;
              }
              len++;
              const propertyIdAndArrayIndex = [];
              while (apduLen - len > 1 && !decodeIsClosingTagNumber222(buffer, offset + len, 1)) {
                let propertyRef = {};
                if (!isContextSpecific222(buffer[offset + len])) {
                  return void 0;
                }
                let result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 0) {
                  return void 0;
                }
                if (len + result.value >= apduLen) {
                  return void 0;
                }
                decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
                propertyRef.id = decodedValue.value;
                len += decodedValue.len;
                propertyRef.index = enums_default222.ASN1_ARRAY_ALL;
                if (isContextSpecific222(buffer[offset + len]) && !isClosingTag222(buffer[offset + len])) {
                  const tmp = decodeTagNumberAndValue222(buffer, offset + len);
                  if (tmp.tagNumber === 1) {
                    len += tmp.len;
                    if (len + tmp.value >= apduLen) {
                      return void 0;
                    }
                    decodedValue = decodeUnsigned222(buffer, offset + len, tmp.value);
                    propertyRef.index = decodedValue.value;
                    len += decodedValue.len;
                  }
                }
                propertyIdAndArrayIndex.push(propertyRef);
              }
              if (!decodeIsClosingTagNumber222(buffer, offset + len, 1)) {
                return void 0;
              }
              len++;
              value.properties = propertyIdAndArrayIndex;
              return {
                len,
                value
              };
            };
            var decodeCovSubscription222 = (buffer, offset, apduLen) => {
              let len = 0;
              let value = {};
              let result;
              let decodedValue;
              value.recipient = {};
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 1)) {
                return void 0;
              }
              len++;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== enums_default222.ApplicationTag.UNSIGNED_INTEGER) {
                return void 0;
              }
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.recipient.net = decodedValue.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== enums_default222.ApplicationTag.OCTET_STRING) {
                return void 0;
              }
              decodedValue = decodeOctetString222(
                buffer,
                offset + len,
                apduLen,
                0,
                result.value
              );
              len += decodedValue.len;
              value.recipient.adr = decodedValue.value;
              if (!decodeIsClosingTagNumber222(buffer, offset + len, 1)) {
                return void 0;
              }
              len++;
              if (!decodeIsClosingTagNumber222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 1) {
                return void 0;
              }
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.subscriptionProcessId = decodedValue.value;
              if (!decodeIsClosingTagNumber222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 1)) {
                return void 0;
              }
              len++;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 0) {
                return void 0;
              }
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              value.monitoredObjectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 1) {
                return void 0;
              }
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.monitoredProperty = {};
              value.monitoredProperty.id = decodedValue.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              if (result.tagNumber === 2) {
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.monitoredProperty.index = decodedValue.value;
              } else {
                value.monitoredProperty.index = enums_default222.ASN1_ARRAY_ALL;
              }
              if (!decodeIsClosingTagNumber222(buffer, offset + len, 1)) {
                return void 0;
              }
              len++;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 2) {
                return void 0;
              }
              value.issueConfirmedNotifications = buffer[offset + len] > 0;
              len++;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 3) {
                return void 0;
              }
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.timeRemaining = decodedValue.value;
              if (len < apduLen && !isClosingTag222(buffer[offset + len])) {
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 4) {
                  return void 0;
                }
                decodedValue = decodeReal222(buffer, offset + len);
                len += decodedValue.len;
                value.covIncrement = decodedValue.value;
              }
              return {
                len,
                value
              };
            };
            var decodeCalendarDate222 = (buffer, offset) => {
              return {
                len: 4,
                year: buffer[offset],
                month: buffer[offset + 1],
                day: buffer[offset + 2],
                wday: buffer[offset + 3]
              };
            };
            var decodeCalendarDateRange222 = (buffer, offset) => {
              let len = 1;
              const startDate = decodeDate222(buffer, offset + len);
              len += startDate.len + 1;
              const endDate = decodeDate222(buffer, offset + len);
              len += endDate.len + 1;
              return {
                len,
                startDate,
                endDate
              };
            };
            var decodeCalendarWeekDay222 = (buffer, offset) => {
              return {
                len: 3,
                month: buffer[offset],
                week: buffer[offset + 1],
                wday: buffer[offset + 2]
              };
            };
            var decodeCalendar222 = (buffer, offset, apduLen) => {
              let len = 0;
              const entries = [];
              let decodedValue;
              while (len < apduLen) {
                const result = decodeTagNumber222(buffer, offset + len);
                len += result.len;
                switch (result.tagNumber) {
                  case 0:
                    decodedValue = decodeCalendarDate222(buffer, offset + len);
                    len += decodedValue.len;
                    entries.push(decodedValue);
                    break;
                  case 1:
                    decodedValue = decodeCalendarDateRange222(buffer, offset + len);
                    len += decodedValue.len;
                    entries.push(decodedValue);
                    break;
                  case 2:
                    decodedValue = decodeCalendarWeekDay222(buffer, offset + len);
                    len += decodedValue.len;
                    entries.push(decodedValue);
                    break;
                  default:
                    return {
                      len: len - 1,
                      value: entries
                    };
                }
              }
            };
            var bacappDecodeContextApplicationData222 = (buffer, offset, maxOffset, objectType, propertyId) => {
              let len = 0;
              let result;
              if (isContextSpecific222(buffer[offset])) {
                if (propertyId === enums_default222.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
                  result = decodeReadAccessSpecification222(buffer, offset, maxOffset);
                  if (!result) {
                    return void 0;
                  }
                  return {
                    type: enums_default222.ApplicationTag.READ_ACCESS_SPECIFICATION,
                    value: result.value,
                    len: result.len
                  };
                } else if (propertyId === enums_default222.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
                  result = decodeCovSubscription222(buffer, offset, maxOffset);
                  if (!result) {
                    return void 0;
                  }
                  return {
                    type: enums_default222.ApplicationTag.COV_SUBSCRIPTION,
                    value: result.value,
                    len: result.len
                  };
                } else if (objectType === enums_default222.ObjectType.GROUP && propertyId === enums_default222.PropertyIdentifier.PRESENT_VALUE) {
                  result = decodeReadAccessResult222(buffer, offset, maxOffset);
                  if (!result) {
                    return void 0;
                  }
                  return {
                    type: enums_default222.ApplicationTag.READ_ACCESS_RESULT,
                    value: result.value,
                    len: result.len
                  };
                } else if (propertyId === enums_default222.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default222.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default222.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
                  result = decodeDeviceObjPropertyRef222(buffer, offset, maxOffset);
                  if (!result) {
                    return void 0;
                  }
                  return {
                    type: enums_default222.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                    value: result.value,
                    len: result.len
                  };
                } else if (propertyId === enums_default222.PropertyIdentifier.DATE_LIST) {
                  result = decodeCalendar222(buffer, offset, maxOffset);
                  if (!result) {
                    return void 0;
                  }
                  return {
                    type: enums_default222.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                    value: result.value,
                    len: result.len
                  };
                } else if (propertyId === enums_default222.PropertyIdentifier.EVENT_TIME_STAMPS) {
                  let subEvtResult;
                  let evtResult = decodeTagNumberAndValue222(buffer, offset + len);
                  len += 1;
                  if (evtResult.tagNumber === 0) {
                    subEvtResult = decodeBacnetTime222(buffer, offset + 1);
                    return {
                      type: enums_default222.ApplicationTag.TIMESTAMP,
                      value: subEvtResult.value,
                      len: subEvtResult.len + 1
                    };
                  } else if (evtResult.tagNumber === 1) {
                    subEvtResult = decodeUnsigned222(buffer, offset + len, evtResult.value);
                    return {
                      type: enums_default222.ApplicationTag.UNSIGNED_INTEGER,
                      value: subEvtResult.value,
                      len: subEvtResult.len + 1
                    };
                  } else if (evtResult.tagNumber === 2) {
                    subEvtResult = decodeBacnetDatetime222(buffer, offset + len);
                    return {
                      type: enums_default222.ApplicationTag.TIMESTAMP,
                      value: subEvtResult.value,
                      len: subEvtResult.len + 2
                    };
                  } else {
                    return void 0;
                  }
                }
                const list = [];
                let tagResult = decodeTagNumberAndValue222(buffer, offset + len);
                let multipleValues = isOpeningTag222(buffer[offset + len]);
                while (len + offset <= maxOffset && !isClosingTag222(buffer[offset + len])) {
                  let subResult = decodeTagNumberAndValue222(buffer, offset + len);
                  if (!subResult) {
                    return void 0;
                  }
                  if (subResult.value === 0) {
                    len += subResult.len;
                    result = bacappDecodeApplicationData222(
                      buffer,
                      offset + len,
                      maxOffset,
                      enums_default222.ASN1_MAX_OBJECT_TYPE,
                      enums_default222.ASN1_MAX_PROPERTY_ID
                    );
                    if (!result) {
                      return void 0;
                    }
                    list.push(result);
                    len += result.len;
                  } else {
                    const overrideTagNumber = bacappContextTagType222(
                      propertyId,
                      subResult.tagNumber
                    );
                    if (overrideTagNumber !== enums_default222.ASN1_MAX_APPLICATION_TAG) {
                      subResult.tagNumber = overrideTagNumber;
                    }
                    let bacappResult = bacappDecodeData222(
                      buffer,
                      offset + len + subResult.len,
                      maxOffset,
                      subResult.tagNumber,
                      subResult.value
                    );
                    if (!bacappResult) {
                      return void 0;
                    }
                    if (bacappResult.len === subResult.value) {
                      let resObj = {
                        value: bacappResult.value,
                        type: bacappResult.type
                      };
                      if (bacappResult.encoding !== void 0)
                        resObj.encoding = bacappResult.encoding;
                      list.push(resObj);
                      len += subResult.len + subResult.value;
                    } else {
                      list.push({
                        value: buffer.slice(
                          offset + len + subResult.len,
                          offset + len + subResult.len + subResult.value
                        ),
                        type: enums_default222.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                      });
                      len += subResult.len + subResult.value;
                    }
                  }
                  if (multipleValues === false) {
                    return {
                      len,
                      value: list[0],
                      type: enums_default222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                    };
                  }
                }
                if (len + offset > maxOffset) {
                  return void 0;
                }
                if (decodeIsClosingTagNumber222(buffer, offset + len, tagResult.tagNumber)) {
                  len++;
                }
                return {
                  len,
                  value: list,
                  type: enums_default222.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                };
              }
              return void 0;
            };
            var bacappEncodeTimestamp222 = (buffer, value) => {
              switch (value.type) {
                case enums_default222.TimeStamp.TIME:
                  encodeContextTime222(buffer, 0, value.value);
                  break;
                case enums_default222.TimeStamp.SEQUENCE_NUMBER:
                  encodeContextUnsigned222(buffer, 1, value.value);
                  break;
                case enums_default222.TimeStamp.DATETIME:
                  bacappEncodeContextDatetime222(buffer, 2, value.value);
                  break;
                default:
                  throw new Error("NOT_IMPLEMENTED");
              }
            };
            var bacappEncodeContextTimestamp222 = (buffer, tagNumber, value) => {
              encodeOpeningTag222(buffer, tagNumber);
              bacappEncodeTimestamp222(buffer, value);
              encodeClosingTag222(buffer, tagNumber);
            };
            var decodeContextCharacterString222 = (buffer, offset, maxLength, tagNumber) => {
              let len = 0;
              if (!decodeIsContextTag222(buffer, offset + len, tagNumber)) {
                return void 0;
              }
              const result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              const decodedValue = multiCharsetCharacterstringDecode222(
                buffer,
                offset + 1 + len,
                maxLength,
                buffer[offset + len],
                result.value - 1
              );
              if (!decodedValue) {
                return void 0;
              }
              len += result.value;
              return {
                len,
                value: decodedValue.value,
                encoding: decodedValue.encoding
              };
            };
            var decodeIsContextTagWithLength222 = (buffer, offset, tagNumber) => {
              const result = decodeTagNumber222(buffer, offset);
              return {
                len: result.len,
                value: isContextSpecific222(buffer[offset]) && result.tagNumber === tagNumber
              };
            };
            var decodeContextObjectId222 = (buffer, offset, tagNumber) => {
              const result = decodeIsContextTagWithLength222(buffer, offset, tagNumber);
              if (!result.value) {
                return void 0;
              }
              const decodedValue = decodeObjectId222(buffer, offset + result.len);
              decodedValue.len = decodedValue.len + result.len;
              return decodedValue;
            };
            var encodeBacnetCharacterString222 = (buffer, value, encoding) => {
              encoding = encoding || enums_default222.CharacterStringEncoding.UTF_8;
              buffer.buffer[buffer.offset++] = encoding;
              const bufEncoded = import_iconv_lite222.default.encode(value, getEncodingType222(encoding));
              buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
            };
            var encodeApplicationCharacterString222 = (buffer, value, encoding) => {
              const tmp = getBuffer222();
              encodeBacnetCharacterString222(tmp, value, encoding);
              encodeTag222(buffer, enums_default222.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
              buffer.offset += tmp.offset;
            };
            var encodeContextCharacterString222 = (buffer, tagNumber, value, encoding) => {
              const tmp = getBuffer222();
              encodeBacnetCharacterString222(tmp, value, encoding);
              encodeTag222(buffer, tagNumber, true, tmp.offset);
              tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
              buffer.offset += tmp.offset;
            };
            var encode3322 = (buffer, objectId, propertyId, arrayIndex, values) => {
              encodeContextObjectId222(buffer, 0, objectId.type, objectId.instance);
              encodeContextEnumerated222(buffer, 1, propertyId);
              if (arrayIndex !== ASN1_ARRAY_ALL222) {
                encodeContextUnsigned222(buffer, 2, arrayIndex);
              }
              encodeOpeningTag222(buffer, 3);
              values.forEach((value) => {
                bacappEncodeApplicationData222(buffer, value);
              });
              encodeClosingTag222(buffer, 3);
            };
            var decode3322 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              let value = {};
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              value.objectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.property = { id: decodedValue.value };
              if (len < apduLen && decodeIsContextTag222(buffer, offset + len, 2)) {
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.property.index = decodedValue.value;
              } else {
                value.property.index = ASN1_ARRAY_ALL222;
              }
              const values = [];
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 3)) {
                return void 0;
              }
              len++;
              while (apduLen - len > 1) {
                result = bacappDecodeApplicationData222(
                  buffer,
                  offset + len,
                  apduLen + offset,
                  value.objectId.type,
                  value.property.id
                );
                if (!result) {
                  return void 0;
                }
                len += result.len;
                delete result.len;
                values.push(result);
              }
              value.values = values;
              if (!decodeIsClosingTagNumber222(buffer, offset + len, 3)) {
                return void 0;
              }
              len++;
              value.len = len;
              return value;
            };
            var alarm_acknowledge_exports222 = {};
            __export222(alarm_acknowledge_exports222, {
              decode: () => decode21022,
              encode: () => encode21022
            });
            var encode21022 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
              encodeContextUnsigned222(buffer, 0, ackProcessId);
              encodeContextObjectId222(
                buffer,
                1,
                eventObjectId.type,
                eventObjectId.instance
              );
              encodeContextEnumerated222(buffer, 2, eventStateAcknowledged);
              bacappEncodeContextTimestamp222(buffer, 3, eventTimeStamp);
              encodeContextCharacterString222(buffer, 4, ackSource);
              bacappEncodeContextTimestamp222(buffer, 5, ackTimeStamp);
            };
            var decode21022 = (buffer, offset, apduLen) => {
              let len = 0;
              let value = {};
              let result;
              let decodedValue;
              let date;
              let time;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.acknowledgedProcessId = decodedValue.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              value.eventObjectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.eventStateAcknowledged = decodedValue.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber === 0) {
                decodedValue = decodeBacnetTime222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.eventTimeStamp = decodedValue.value;
              } else if (result.tagNumber === 1) {
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.eventTimeStamp = decodedValue.value;
              } else if (result.tagNumber === 2) {
                date = decodeApplicationDate222(buffer, offset + len);
                len += date.len;
                date = date.value.value;
                time = decodeApplicationTime222(buffer, offset + len);
                len += time.len;
                time = time.value.value;
                value.eventTimeStamp = new Date(
                  date.getFullYear(),
                  date.getMonth(),
                  date.getDate(),
                  time.getHours(),
                  time.getMinutes(),
                  time.getSeconds(),
                  time.getMilliseconds()
                );
                len++;
              }
              len++;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeCharacterString222(
                buffer,
                offset + len,
                apduLen - (offset + len),
                result.value
              );
              value.acknowledgeSource = decodedValue.value;
              len += decodedValue.len;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber === 0) {
                decodedValue = decodeBacnetTime222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.acknowledgeTimeStamp = decodedValue.value;
              } else if (result.tagNumber === 1) {
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.acknowledgeTimeStamp = decodedValue.value;
              } else if (result.tagNumber === 2) {
                date = decodeApplicationDate222(buffer, offset + len);
                len += date.len;
                date = date.value.value;
                time = decodeApplicationTime222(buffer, offset + len);
                len += time.len;
                time = time.value.value;
                value.acknowledgeTimeStamp = new Date(
                  date.getFullYear(),
                  date.getMonth(),
                  date.getDate(),
                  time.getHours(),
                  time.getMinutes(),
                  time.getSeconds(),
                  time.getMilliseconds()
                );
                len++;
              }
              len++;
              value.len = len;
              return value;
            };
            var alarm_summary_exports222 = {};
            __export222(alarm_summary_exports222, {
              decode: () => decode3422,
              encode: () => encode3422
            });
            var encode3422 = (buffer, alarms) => {
              alarms.forEach((alarm) => {
                encodeContextObjectId222(
                  buffer,
                  12,
                  alarm.objectId.type,
                  alarm.objectId.instance
                );
                encodeContextEnumerated222(buffer, 9, alarm.alarmState);
                encodeContextBitstring222(buffer, 8, alarm.acknowledgedTransitions);
              });
            };
            var decode3422 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              const alarms = [];
              while (apduLen - 3 - len > 0) {
                let value = {};
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeObjectId222(buffer, offset + len);
                len += decodedValue.len;
                value.objectId = {
                  type: decodedValue.objectType,
                  instance: decodedValue.instance
                };
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.alarmState = decodedValue.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeBitstring222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.acknowledgedTransitions = decodedValue.value;
                alarms.push(value);
              }
              return {
                len,
                alarms
              };
            };
            var atomic_read_file_exports222 = {};
            __export222(atomic_read_file_exports222, {
              decode: () => decode4222,
              decodeAcknowledge: () => decodeAcknowledge822,
              encode: () => encode4222,
              encodeAcknowledge: () => encodeAcknowledge922
            });
            var encode4222 = (buffer, isStream, objectId, position, count) => {
              encodeApplicationObjectId222(buffer, objectId.type, objectId.instance);
              if (isStream) {
                encodeOpeningTag222(buffer, 0);
                encodeApplicationSigned222(buffer, position);
                encodeApplicationUnsigned222(buffer, count);
                encodeClosingTag222(buffer, 0);
              } else {
                encodeOpeningTag222(buffer, 1);
                encodeApplicationSigned222(buffer, position);
                encodeApplicationUnsigned222(buffer, count);
                encodeClosingTag222(buffer, 1);
              }
            };
            var decode4222 = (buffer, offset) => {
              let len = 0;
              let result;
              let decodedValue;
              let isStream = true;
              let objectId = {};
              let position = -1;
              let count = 0;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 12) {
                return void 0;
              }
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
              if (decodeIsOpeningTagNumber222(buffer, offset + len, 0)) {
                isStream = true;
                len++;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 3) {
                  return void 0;
                }
                decodedValue = decodeSigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                position = decodedValue.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 2) {
                  return void 0;
                }
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                count = decodedValue.value;
                if (!decodeIsClosingTagNumber222(buffer, offset + len, 0)) {
                  return void 0;
                }
                len++;
              } else if (decodeIsOpeningTagNumber222(buffer, offset + len, 1)) {
                isStream = false;
                len++;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 3) {
                  return void 0;
                }
                decodedValue = decodeSigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                position = decodedValue.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 2) {
                  return void 0;
                }
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                count = decodedValue.value;
                if (!decodeIsClosingTagNumber222(buffer, offset + len, 1)) {
                  return void 0;
                }
                len++;
              } else {
                return void 0;
              }
              return {
                len,
                isStream,
                objectId,
                position,
                count
              };
            };
            var encodeAcknowledge922 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
              encodeApplicationBoolean222(buffer, endOfFile);
              if (isStream) {
                encodeOpeningTag222(buffer, 0);
                encodeApplicationSigned222(buffer, position);
                encodeApplicationOctetString222(buffer, blocks[0], 0, counts[0]);
                encodeClosingTag222(buffer, 0);
              } else {
                encodeOpeningTag222(buffer, 1);
                encodeApplicationSigned222(buffer, position);
                encodeApplicationUnsigned222(buffer, blockCount);
                for (let i = 0; i < blockCount; i++) {
                  encodeApplicationOctetString222(buffer, blocks[i], 0, counts[i]);
                }
                encodeClosingTag222(buffer, 1);
              }
            };
            var decodeAcknowledge822 = (buffer, offset, length = 0) => {
              let len = length;
              let result;
              let decodedValue;
              let endOfFile;
              let isStream;
              let position;
              let targetBuffer;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 1) {
                return void 0;
              }
              endOfFile = result.value > 0;
              if (decodeIsOpeningTagNumber222(buffer, offset + len, 0)) {
                isStream = true;
                len++;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 3) {
                  return void 0;
                }
                decodedValue = decodeSigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                position = decodedValue.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 6) {
                  return void 0;
                }
                targetBuffer = buffer.slice(offset + len, offset + len + result.value);
                len += result.value;
                if (!decodeIsClosingTagNumber222(buffer, offset + len, 0)) {
                  return void 0;
                }
                len++;
              } else if (decodeIsOpeningTagNumber222(buffer, offset + len, 1)) {
                isStream = false;
                throw new Error("NotImplemented");
              } else {
                return void 0;
              }
              return {
                len,
                endOfFile,
                isStream,
                position,
                buffer: targetBuffer
              };
            };
            var atomic_write_file_exports222 = {};
            __export222(atomic_write_file_exports222, {
              decode: () => decode5222,
              decodeAcknowledge: () => decodeAcknowledge2222,
              encode: () => encode5222,
              encodeAcknowledge: () => encodeAcknowledge2222
            });
            var encode5222 = (buffer, isStream, objectId, position, blocks) => {
              encodeApplicationObjectId222(buffer, objectId.type, objectId.instance);
              if (isStream) {
                encodeOpeningTag222(buffer, 0);
                encodeApplicationSigned222(buffer, position);
                encodeApplicationOctetString222(buffer, blocks[0], 0, blocks[0].length);
                encodeClosingTag222(buffer, 0);
              } else {
                encodeOpeningTag222(buffer, 1);
                encodeApplicationSigned222(buffer, position);
                encodeApplicationUnsigned222(buffer, blocks.length);
                for (let i = 0; i < blocks.length; i++) {
                  encodeApplicationOctetString222(
                    buffer,
                    blocks[i],
                    0,
                    blocks[i].length
                  );
                }
                encodeClosingTag222(buffer, 1);
              }
            };
            var decode5222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              let isStream;
              let position;
              let blocks = [];
              let blockCount;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 12) {
                return void 0;
              }
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              let objectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              if (decodeIsOpeningTagNumber222(buffer, offset + len, 0)) {
                isStream = true;
                len++;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 3) {
                  return void 0;
                }
                decodedValue = decodeSigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                position = decodedValue.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 6) {
                  return void 0;
                }
                decodedValue = decodeOctetString222(
                  buffer,
                  offset + len,
                  apduLen,
                  0,
                  result.value
                );
                len += decodedValue.len;
                blocks.push(decodedValue.value);
                if (!decodeIsClosingTagNumber222(buffer, offset + len, 0)) {
                  return void 0;
                }
                len++;
              } else if (decodeIsOpeningTagNumber222(buffer, offset + len, 1)) {
                isStream = false;
                len++;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 3) {
                  return void 0;
                }
                decodedValue = decodeSigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                position = decodedValue.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 2) {
                  return void 0;
                }
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                blockCount = decodedValue.value;
                for (let i = 0; i < blockCount; i++) {
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber !== 6) {
                    return void 0;
                  }
                  decodedValue = decodeOctetString222(
                    buffer,
                    offset + len,
                    apduLen,
                    0,
                    result.value
                  );
                  len += decodedValue.len;
                  blocks.push(decodedValue.value);
                }
                if (!decodeIsClosingTagNumber222(buffer, offset + len, 1)) {
                  return void 0;
                }
                len++;
              } else {
                return void 0;
              }
              return {
                len,
                isStream,
                objectId,
                position,
                blocks
              };
            };
            var encodeAcknowledge2222 = (buffer, isStream, position) => {
              if (isStream) {
                encodeContextSigned222(buffer, 0, position);
              } else {
                encodeContextSigned222(buffer, 1, position);
              }
            };
            var decodeAcknowledge2222 = (buffer, offset, length = 0) => {
              let len = length;
              let isStream = false;
              let position = 0;
              let decodedValue;
              const result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber === 0) {
                isStream = true;
              } else if (result.tagNumber === 1) {
                isStream = false;
              } else {
                return void 0;
              }
              decodedValue = decodeSigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              position = decodedValue.value;
              return {
                len,
                isStream,
                position
              };
            };
            var cov_notify_exports222 = {};
            __export222(cov_notify_exports222, {
              decode: () => decode6222,
              encode: () => encode6222
            });
            var encode6222 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
              encodeContextUnsigned222(buffer, 0, subscriberProcessId);
              encodeContextObjectId222(
                buffer,
                1,
                8,
                initiatingDeviceId
              );
              encodeContextObjectId222(
                buffer,
                2,
                monitoredObjectId.type,
                monitoredObjectId.instance
              );
              encodeContextUnsigned222(buffer, 3, timeRemaining);
              encodeOpeningTag222(buffer, 4);
              values.forEach((value) => {
                encodeContextEnumerated222(buffer, 0, value.property.id);
                if (value.property.index === ASN1_ARRAY_ALL222) {
                  encodeContextUnsigned222(buffer, 1, value.property.index);
                }
                encodeOpeningTag222(buffer, 2);
                value.value.forEach((v) => {
                  bacappEncodeApplicationData222(buffer, v);
                });
                encodeClosingTag222(buffer, 2);
                if (value.priority === ASN1_NO_PRIORITY222) {
                  encodeContextUnsigned222(buffer, 3, value.priority);
                }
              });
              encodeClosingTag222(buffer, 4);
            };
            var decode6222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              const subscriberProcessId = decodedValue.value;
              if (!decodeIsContextTag222(buffer, offset + len, 1)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              const initiatingDeviceId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              if (!decodeIsContextTag222(buffer, offset + len, 2)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              const monitoredObjectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              if (!decodeIsContextTag222(buffer, offset + len, 3)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              const timeRemaining = decodedValue.value;
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 4)) {
                return void 0;
              }
              len++;
              const values = [];
              while (apduLen - len > 1 && !decodeIsClosingTagNumber222(buffer, offset + len, 4)) {
                let newEntry = {};
                newEntry.property = {};
                if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                  return void 0;
                }
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
                len += decodedValue.len;
                newEntry.property.id = decodedValue.value;
                if (decodeIsContextTag222(buffer, offset + len, 1)) {
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  newEntry.property.index = decodedValue.value;
                } else {
                  newEntry.property.index = ASN1_ARRAY_ALL222;
                }
                if (!decodeIsOpeningTagNumber222(buffer, offset + len, 2)) {
                  return void 0;
                }
                len++;
                const properties = [];
                while (apduLen - len > 1 && !decodeIsClosingTagNumber222(buffer, offset + len, 2)) {
                  decodedValue = bacappDecodeApplicationData222(
                    buffer,
                    offset + len,
                    apduLen + offset,
                    monitoredObjectId.type,
                    newEntry.property.id
                  );
                  if (!decodedValue) {
                    return void 0;
                  }
                  len += decodedValue.len;
                  delete decodedValue.len;
                  properties.push(decodedValue);
                }
                newEntry.value = properties;
                len++;
                if (decodeIsContextTag222(buffer, offset + len, 3)) {
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  newEntry.priority = decodedValue.value;
                } else {
                  newEntry.priority = ASN1_NO_PRIORITY222;
                }
                values.push(newEntry);
              }
              return {
                len,
                subscriberProcessId,
                initiatingDeviceId,
                monitoredObjectId,
                timeRemaining,
                values
              };
            };
            var create_object_exports222 = {};
            __export222(create_object_exports222, {
              decode: () => decode7222,
              encode: () => encode7222,
              encodeAcknowledge: () => encodeAcknowledge3222
            });
            var encode7222 = (buffer, objectId, values) => {
              encodeOpeningTag222(buffer, 0);
              encodeContextObjectId222(buffer, 1, objectId.type, objectId.instance);
              encodeClosingTag222(buffer, 0);
              encodeOpeningTag222(buffer, 1);
              values.forEach((propertyValue) => {
                encodeContextEnumerated222(buffer, 0, propertyValue.property.id);
                if (propertyValue.property.index !== ASN1_ARRAY_ALL222) {
                  encodeContextUnsigned222(buffer, 1, propertyValue.property.index);
                }
                encodeOpeningTag222(buffer, 2);
                propertyValue.value.forEach((value) => {
                  bacappEncodeApplicationData222(buffer, value);
                });
                encodeClosingTag222(buffer, 2);
                if (propertyValue.priority !== ASN1_NO_PRIORITY222) {
                  encodeContextUnsigned222(buffer, 3, propertyValue.priority);
                }
              });
              encodeClosingTag222(buffer, 1);
            };
            var decode7222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              let objectId;
              const valueList = [];
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber === 0 && apduLen > len) {
                apduLen -= len;
                if (apduLen < 4) {
                  return void 0;
                }
                decodedValue = decodeContextObjectId222(buffer, offset + len, 1);
                len += decodedValue.len;
                objectId = {
                  type: decodedValue.objectType,
                  instance: decodedValue.instance
                };
              } else {
                return void 0;
              }
              if (decodeIsClosingTag222(buffer, offset + len)) {
                len++;
              }
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 1)) {
                return void 0;
              }
              len++;
              while (apduLen - len > 1) {
                let newEntry = {};
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 0) {
                  return void 0;
                }
                decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
                len += decodedValue.len;
                let propertyId = decodedValue.value;
                let arraIndex = ASN1_ARRAY_ALL222;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber === 1) {
                  decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  arraIndex += decodedValue.value;
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                }
                newEntry.property = { id: propertyId, index: arraIndex };
                if (result.tagNumber === 2 && decodeIsOpeningTag222(buffer, offset + len - 1)) {
                  const values = [];
                  while (!decodeIsClosingTag222(buffer, offset + len)) {
                    decodedValue = bacappDecodeApplicationData222(
                      buffer,
                      offset + len,
                      apduLen + offset,
                      objectId.type,
                      propertyId
                    );
                    if (!decodedValue) {
                      return void 0;
                    }
                    len += decodedValue.len;
                    delete decodedValue.len;
                    values.push(decodedValue);
                  }
                  len++;
                  newEntry.value = values;
                } else {
                  return void 0;
                }
                valueList.push(newEntry);
              }
              if (!decodeIsClosingTagNumber222(buffer, offset + len, 1)) {
                return void 0;
              }
              len++;
              return {
                len,
                objectId,
                values: valueList
              };
            };
            var encodeAcknowledge3222 = (buffer, objectId) => {
              encodeApplicationObjectId222(buffer, objectId.type, objectId.instance);
            };
            var delete_object_exports222 = {};
            __export222(delete_object_exports222, {
              decode: () => decode8222,
              encode: () => encode8222
            });
            var decode8222 = (buffer, offset, apduLen) => {
              const result = decodeTagNumberAndValue222(buffer, offset);
              if (result.tagNumber !== 12) {
                return void 0;
              }
              let len = 1;
              const value = decodeObjectId222(buffer, offset + len);
              len += value.len;
              if (len !== apduLen) {
                return void 0;
              }
              value.len = len;
              return value;
            };
            var encode8222 = (buffer, objectId) => {
              encodeApplicationObjectId222(buffer, objectId.type, objectId.instance);
            };
            var device_communication_control_exports222 = {};
            __export222(device_communication_control_exports222, {
              decode: () => decode9222,
              encode: () => encode9222
            });
            var encode9222 = (buffer, timeDuration, enableDisable, password) => {
              if (timeDuration > 0) {
                encodeContextUnsigned222(buffer, 0, timeDuration);
              }
              encodeContextEnumerated222(buffer, 1, enableDisable);
              if (password && password !== "") {
                encodeContextCharacterString222(buffer, 2, password);
              }
            };
            var decode9222 = (buffer, offset, apduLen) => {
              let len = 0;
              let value = {};
              let decodedValue;
              let result;
              if (decodeIsContextTag222(buffer, offset + len, 0)) {
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                value.timeDuration = decodedValue.value;
                len += decodedValue.len;
              }
              if (!decodeIsContextTag222(buffer, offset + len, 1)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              value.enableDisable = decodedValue.value;
              len += decodedValue.len;
              if (len < apduLen) {
                if (!decodeIsContextTag222(buffer, offset + len, 2)) {
                  return void 0;
                }
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeCharacterString222(
                  buffer,
                  offset + len,
                  apduLen - (offset + len),
                  result.value
                );
                value.password = decodedValue.value;
                len += decodedValue.len;
              }
              value.len = len;
              return value;
            };
            var error_exports222 = {};
            __export222(error_exports222, {
              buildMessage: () => buildMessage222,
              decode: () => decode10222,
              encode: () => encode10222
            });
            var encode10222 = (buffer, errorClass, errorCode) => {
              encodeApplicationEnumerated222(buffer, errorClass);
              encodeApplicationEnumerated222(buffer, errorCode);
            };
            var decode10222 = (buffer, offset) => {
              const orgOffset = offset;
              let result;
              result = decodeTagNumberAndValue222(buffer, offset);
              offset += result.len;
              const errorClass = decodeEnumerated222(buffer, offset, result.value);
              offset += errorClass.len;
              result = decodeTagNumberAndValue222(buffer, offset);
              offset += result.len;
              const errorCode = decodeEnumerated222(buffer, offset, result.value);
              offset += errorClass.len;
              return {
                len: offset - orgOffset,
                class: errorClass.value,
                code: errorCode.value
              };
            };
            var buildMessage222 = function(result) {
              return "BacnetError Class: " + ErrorClassName222[result.class] + " (" + result.class + ") Code: " + ErrorCodeName222[result.code] + " (" + result.code + ")";
            };
            var event_information_exports222 = {};
            __export222(event_information_exports222, {
              decode: () => decode11222,
              encode: () => encode11222
            });
            var encode11222 = (buffer, events, moreEvents) => {
              encodeOpeningTag222(buffer, 0);
              events.forEach((event) => {
                encodeContextObjectId222(
                  buffer,
                  0,
                  event.objectId.type,
                  event.objectId.instance
                );
                encodeContextEnumerated222(buffer, 1, event.eventState);
                encodeContextBitstring222(buffer, 2, event.acknowledgedTransitions);
                encodeOpeningTag222(buffer, 3);
                for (let i = 0; i < 3; i++) {
                  encodeApplicationDate222(buffer, event.eventTimeStamps[i]);
                  encodeApplicationTime222(buffer, event.eventTimeStamps[i]);
                }
                encodeClosingTag222(buffer, 3);
                encodeContextEnumerated222(buffer, 4, event.notifyType);
                encodeContextBitstring222(buffer, 5, event.eventEnable);
                encodeOpeningTag222(buffer, 6);
                for (let i = 0; i < 3; i++) {
                  encodeApplicationUnsigned222(buffer, event.eventPriorities[i]);
                }
                encodeClosingTag222(buffer, 6);
              });
              encodeClosingTag222(buffer, 0);
              encodeContextBoolean222(buffer, 1, moreEvents);
            };
            var decode11222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              len++;
              const alarms = [];
              let moreEvents;
              while (apduLen - 3 - len > 0) {
                let value = {};
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeObjectId222(buffer, offset + len);
                len += decodedValue.len;
                value.objectId = {
                  type: decodedValue.objectType,
                  instance: decodedValue.instance
                };
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.eventState = decodedValue.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeBitstring222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.acknowledgedTransitions = decodedValue.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                value.eventTimeStamps = [];
                for (let i = 0; i < 3; i++) {
                  if (result.tagNumber !== 0) {
                    decodedValue = decodeApplicationDate222(buffer, offset + len);
                    len += decodedValue.len;
                    const date = decodedValue.value.value;
                    decodedValue = decodeApplicationTime222(buffer, offset + len);
                    len += decodedValue.len;
                    const time = decodedValue.value.value;
                    value.eventTimeStamps[i] = new Date(
                      date.getFullYear(),
                      date.getMonth(),
                      date.getDate(),
                      time.getHours(),
                      time.getMinutes(),
                      time.getSeconds(),
                      time.getMilliseconds()
                    );
                  } else {
                    len += result.value;
                  }
                }
                len++;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.notifyType = decodedValue.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeBitstring222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.eventEnable = decodedValue.value;
                len++;
                value.eventPriorities = [];
                for (let i = 0; i < 3; i++) {
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.eventPriorities[i] = decodedValue.value;
                }
                len++;
                alarms.push(value);
              }
              moreEvents = buffer[apduLen - 1] === 1;
              return {
                len,
                alarms,
                moreEvents
              };
            };
            var event_notify_data_exports222 = {};
            __export222(event_notify_data_exports222, {
              decode: () => decode12222,
              encode: () => encode12222
            });
            var encode12222 = (buffer, data) => {
              encodeContextUnsigned222(buffer, 0, data.processId);
              encodeContextObjectId222(
                buffer,
                1,
                data.initiatingObjectId.type,
                data.initiatingObjectId.instance
              );
              encodeContextObjectId222(
                buffer,
                2,
                data.eventObjectId.type,
                data.eventObjectId.instance
              );
              bacappEncodeContextTimestamp222(buffer, 3, data.timeStamp);
              encodeContextUnsigned222(buffer, 4, data.notificationClass);
              encodeContextUnsigned222(buffer, 5, data.priority);
              encodeContextEnumerated222(buffer, 6, data.eventType);
              if (data.messageText && data.messageText !== "") {
                encodeContextCharacterString222(buffer, 7, data.messageText);
              }
              encodeContextEnumerated222(buffer, 8, data.notifyType);
              switch (data.notifyType) {
                case 0:
                case 1:
                  encodeContextBoolean222(buffer, 9, data.ackRequired);
                  encodeContextEnumerated222(buffer, 10, data.fromState);
                  break;
                default:
                  break;
              }
              encodeContextEnumerated222(buffer, 11, data.toState);
              switch (data.notifyType) {
                case 0:
                case 1:
                  encodeOpeningTag222(buffer, 12);
                  switch (data.eventType) {
                    case 0:
                      encodeOpeningTag222(buffer, 0);
                      encodeContextBitstring222(
                        buffer,
                        0,
                        data.changeOfBitstringReferencedBitString
                      );
                      encodeContextBitstring222(
                        buffer,
                        1,
                        data.changeOfBitstringStatusFlags
                      );
                      encodeClosingTag222(buffer, 0);
                      break;
                    case 1:
                      encodeOpeningTag222(buffer, 1);
                      encodeOpeningTag222(buffer, 0);
                      bacappEncodePropertyState222(buffer, data.changeOfStateNewState);
                      encodeClosingTag222(buffer, 0);
                      encodeContextBitstring222(
                        buffer,
                        1,
                        data.changeOfStateStatusFlags
                      );
                      encodeClosingTag222(buffer, 1);
                      break;
                    case 2:
                      encodeOpeningTag222(buffer, 2);
                      encodeOpeningTag222(buffer, 0);
                      switch (data.changeOfValueTag) {
                        case 0:
                          encodeContextReal222(
                            buffer,
                            1,
                            data.changeOfValueChangeValue
                          );
                          break;
                        case 1:
                          encodeContextBitstring222(
                            buffer,
                            0,
                            data.changeOfValueChangedBits
                          );
                          break;
                        default:
                          throw new Error("NotImplemented");
                      }
                      encodeClosingTag222(buffer, 0);
                      encodeContextBitstring222(
                        buffer,
                        1,
                        data.changeOfValueStatusFlags
                      );
                      encodeClosingTag222(buffer, 2);
                      break;
                    case 4:
                      encodeOpeningTag222(buffer, 4);
                      encodeContextReal222(buffer, 0, data.floatingLimitReferenceValue);
                      encodeContextBitstring222(
                        buffer,
                        1,
                        data.floatingLimitStatusFlags
                      );
                      encodeContextReal222(buffer, 2, data.floatingLimitSetPointValue);
                      encodeContextReal222(buffer, 3, data.floatingLimitErrorLimit);
                      encodeClosingTag222(buffer, 4);
                      break;
                    case 5:
                      encodeOpeningTag222(buffer, 5);
                      encodeContextReal222(buffer, 0, data.outOfRangeExceedingValue);
                      encodeContextBitstring222(buffer, 1, data.outOfRangeStatusFlags);
                      encodeContextReal222(buffer, 2, data.outOfRangeDeadband);
                      encodeContextReal222(buffer, 3, data.outOfRangeExceededLimit);
                      encodeClosingTag222(buffer, 5);
                      break;
                    case 8:
                      encodeOpeningTag222(buffer, 8);
                      encodeContextEnumerated222(
                        buffer,
                        0,
                        data.changeOfLifeSafetyNewState
                      );
                      encodeContextEnumerated222(
                        buffer,
                        1,
                        data.changeOfLifeSafetyNewMode
                      );
                      encodeContextBitstring222(
                        buffer,
                        2,
                        data.changeOfLifeSafetyStatusFlags
                      );
                      encodeContextEnumerated222(
                        buffer,
                        3,
                        data.changeOfLifeSafetyOperationExpected
                      );
                      encodeClosingTag222(buffer, 8);
                      break;
                    case 10:
                      encodeOpeningTag222(buffer, 10);
                      bacappEncodeContextDeviceObjPropertyRef222(
                        buffer,
                        0,
                        data.bufferReadyBufferProperty
                      );
                      encodeContextUnsigned222(
                        buffer,
                        1,
                        data.bufferReadyPreviousNotification
                      );
                      encodeContextUnsigned222(
                        buffer,
                        2,
                        data.bufferReadyCurrentNotification
                      );
                      encodeClosingTag222(buffer, 10);
                      break;
                    case 11:
                      encodeOpeningTag222(buffer, 11);
                      encodeContextUnsigned222(
                        buffer,
                        0,
                        data.unsignedRangeExceedingValue
                      );
                      encodeContextBitstring222(
                        buffer,
                        1,
                        data.unsignedRangeStatusFlags
                      );
                      encodeContextUnsigned222(
                        buffer,
                        2,
                        data.unsignedRangeExceededLimit
                      );
                      encodeClosingTag222(buffer, 11);
                      break;
                    case 9:
                    case 3:
                      throw new Error("NotImplemented");
                    default:
                      throw new Error("NotImplemented");
                  }
                  encodeClosingTag222(buffer, 12);
                  break;
                case 2:
                  throw new Error("NotImplemented");
                default:
                  break;
              }
            };
            var decode12222 = (buffer, offset) => {
              let len = 0;
              let result;
              let decodedValue;
              let eventData = {};
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              eventData.processId = decodedValue.value;
              if (!decodeIsContextTag222(buffer, offset + len, 1)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              eventData.initiatingObjectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              if (!decodeIsContextTag222(buffer, offset + len, 2)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              eventData.eventObjectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              if (!decodeIsContextTag222(buffer, offset + len, 3)) {
                return void 0;
              }
              len += 2;
              decodedValue = decodeApplicationDate222(buffer, offset + len);
              len += decodedValue.len;
              const date = decodedValue.value.value;
              decodedValue = decodeApplicationTime222(buffer, offset + len);
              len += decodedValue.len;
              const time = decodedValue.value.value;
              eventData.timeStamp = new Date(
                date.getFullYear(),
                date.getMonth(),
                date.getDate(),
                time.getHours(),
                time.getMinutes(),
                time.getSeconds(),
                time.getMilliseconds()
              );
              len += 2;
              if (!decodeIsContextTag222(buffer, offset + len, 4)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              eventData.notificationClass = decodedValue.value;
              if (!decodeIsContextTag222(buffer, offset + len, 5)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              eventData.priority = decodedValue.value;
              if (eventData.priority > 255) {
                return void 0;
              }
              if (!decodeIsContextTag222(buffer, offset + len, 6)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              eventData.eventType = decodedValue.value;
              if (decodeIsContextTag222(buffer, offset + len, 7)) {
                decodedValue = decodeContextCharacterString222(
                  buffer,
                  offset + len,
                  2e4,
                  7
                );
                len += decodedValue.len;
                eventData.messageText = decodedValue.value;
              }
              if (!decodeIsContextTag222(buffer, offset + len, 8)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              eventData.notifyType = decodedValue.value;
              switch (eventData.notifyType) {
                case 0:
                case 1:
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned222(buffer, offset + len, 1);
                  len += decodedValue.len;
                  eventData.ackRequired = decodedValue.value > 0;
                  if (!decodeIsContextTag222(buffer, offset + len, 10)) {
                    return void 0;
                  }
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeEnumerated222(
                    buffer,
                    offset + len,
                    result.value
                  );
                  len += decodedValue.len;
                  eventData.fromState = decodedValue.value;
                  break;
                default:
                  break;
              }
              if (!decodeIsContextTag222(buffer, offset + len, 11)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              eventData.toState = decodedValue.value;
              eventData.len = len;
              return eventData;
            };
            var get_enrollment_summary_exports222 = {};
            __export222(get_enrollment_summary_exports222, {
              decode: () => decode13222,
              decodeAcknowledge: () => decodeAcknowledge3222,
              encode: () => encode13222,
              encodeAcknowledge: () => encodeAcknowledge4222
            });
            var encode13222 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
              encodeContextEnumerated222(buffer, 0, acknowledgmentFilter);
              if (enrollmentFilter) {
                encodeOpeningTag222(buffer, 1);
                encodeOpeningTag222(buffer, 0);
                encodeContextObjectId222(
                  buffer,
                  0,
                  enrollmentFilter.objectId.type,
                  enrollmentFilter.objectId.instance
                );
                encodeClosingTag222(buffer, 0);
                encodeContextUnsigned222(buffer, 1, enrollmentFilter.processId);
                encodeClosingTag222(buffer, 1);
              }
              if (eventStateFilter) {
                encodeOpeningTag222(buffer, 2);
                encodeContextEnumerated222(buffer, 0, eventStateFilter);
                encodeClosingTag222(buffer, 2);
              }
              if (eventTypeFilter) {
                encodeOpeningTag222(buffer, 3);
                encodeContextEnumerated222(buffer, 0, eventTypeFilter);
                encodeClosingTag222(buffer, 3);
              }
              if (priorityFilter) {
                encodeOpeningTag222(buffer, 4);
                encodeContextUnsigned222(buffer, 0, priorityFilter.min);
                encodeContextUnsigned222(buffer, 1, priorityFilter.max);
                encodeClosingTag222(buffer, 4);
              }
              if (notificationClassFilter) {
                encodeOpeningTag222(buffer, 5);
                encodeContextUnsigned222(buffer, 0, notificationClassFilter);
                encodeClosingTag222(buffer, 5);
              }
            };
            var decode13222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              let value = {};
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.acknowledgmentFilter = decodedValue.value;
              if (decodeIsContextTag222(buffer, offset + len, 1)) {
                len++;
                value.enrollmentFilter = {};
                if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                  return void 0;
                }
                len++;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeObjectId222(buffer, offset + len);
                len += decodedValue.len;
                value.enrollmentFilter.objectId = {
                  type: decodedValue.objectType,
                  instance: decodedValue.instance
                };
                len++;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.enrollmentFilter.processId = decodedValue.value;
                len++;
              }
              if (decodeIsContextTag222(buffer, offset + len, 2)) {
                len++;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.eventStateFilter = decodedValue.value;
                len++;
              }
              if (decodeIsContextTag222(buffer, offset + len, 3)) {
                len++;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.eventTypeFilter = decodedValue.value;
                len++;
              }
              if (decodeIsContextTag222(buffer, offset + len, 4)) {
                len++;
                value.priorityFilter = {};
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.priorityFilter.min = decodedValue.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.priorityFilter.max = decodedValue.value;
                len++;
              }
              if (decodeIsContextTag222(buffer, offset + len, 5)) {
                len++;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.notificationClassFilter = decodedValue.value;
                len++;
              }
              value.len = len;
              return value;
            };
            var encodeAcknowledge4222 = (buffer, enrollmentSummaries) => {
              enrollmentSummaries.forEach((enrollmentSummary) => {
                encodeApplicationObjectId222(
                  buffer,
                  enrollmentSummary.objectId.type,
                  enrollmentSummary.objectId.instance
                );
                encodeApplicationEnumerated222(buffer, enrollmentSummary.eventType);
                encodeApplicationEnumerated222(buffer, enrollmentSummary.eventState);
                encodeApplicationUnsigned222(buffer, enrollmentSummary.priority);
                encodeApplicationUnsigned222(
                  buffer,
                  enrollmentSummary.notificationClass
                );
              });
            };
            var decodeAcknowledge3222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              const enrollmentSummaries = [];
              while (apduLen - len > 0) {
                const enrollmentSummary = {};
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 12) {
                  return void 0;
                }
                result = decodeObjectId222(buffer, offset + len);
                len += result.len;
                enrollmentSummary.objectId = {
                  type: result.objectType,
                  instance: result.instance
                };
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 9) {
                  return void 0;
                }
                result = decodeEnumerated222(buffer, offset + len, result.value);
                len += result.len;
                enrollmentSummary.eventType = result.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 9) {
                  return void 0;
                }
                result = decodeEnumerated222(buffer, offset + len, result.value);
                len += result.len;
                enrollmentSummary.eventState = result.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 2) {
                  return void 0;
                }
                result = decodeUnsigned222(buffer, offset + len, result.value);
                len += result.len;
                enrollmentSummary.priority = result.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 2) {
                  return void 0;
                }
                result = decodeUnsigned222(buffer, offset + len, result.value);
                len += result.len;
                enrollmentSummary.notificationClass = result.value;
                enrollmentSummaries.push(enrollmentSummary);
              }
              return {
                enrollmentSummaries,
                len
              };
            };
            var get_event_information_exports222 = {};
            __export222(get_event_information_exports222, {
              decode: () => decode14222,
              decodeAcknowledge: () => decodeAcknowledge4222,
              encode: () => encode14222,
              encodeAcknowledge: () => encodeAcknowledge5222
            });
            var encode14222 = (buffer, lastReceivedObjectId) => {
              encodeContextObjectId222(
                buffer,
                0,
                lastReceivedObjectId.type,
                lastReceivedObjectId.instance
              );
            };
            var decode14222 = (buffer, offset) => {
              let len = 0;
              let result;
              let decodedValue;
              let value = {};
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              value.lastReceivedObjectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              value.len = len;
              return value;
            };
            var encodeAcknowledge5222 = (buffer, events, moreEvents) => {
              encodeOpeningTag222(buffer, 0);
              events.forEach((eventData) => {
                encodeContextObjectId222(
                  buffer,
                  0,
                  eventData.objectId.type,
                  eventData.objectId.instance
                );
                encodeContextEnumerated222(buffer, 1, eventData.eventState);
                encodeContextBitstring222(buffer, 2, eventData.acknowledgedTransitions);
                encodeOpeningTag222(buffer, 3);
                for (let i = 0; i < 3; i++) {
                  bacappEncodeTimestamp222(buffer, eventData.eventTimeStamps[i]);
                }
                encodeClosingTag222(buffer, 3);
                encodeContextEnumerated222(buffer, 4, eventData.notifyType);
                encodeContextBitstring222(buffer, 5, eventData.eventEnable);
                encodeOpeningTag222(buffer, 6);
                for (let i = 0; i < 3; i++) {
                  encodeApplicationUnsigned222(buffer, eventData.eventPriorities[i]);
                }
                encodeClosingTag222(buffer, 6);
              });
              encodeClosingTag222(buffer, 0);
              encodeContextBoolean222(buffer, 1, moreEvents);
            };
            var decodeAcknowledge4222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              let value = {};
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              value.events = [];
              while (apduLen - len > 3) {
                let event = {};
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeObjectId222(buffer, offset + len);
                len += decodedValue.len;
                event.objectId = {
                  type: decodedValue.objectType,
                  instance: decodedValue.instance
                };
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
                len += decodedValue.len;
                event.eventState = decodedValue.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeBitstring222(buffer, offset + len, result.value);
                len += decodedValue.len;
                event.acknowledgedTransitions = decodedValue.value;
                if (!decodeIsOpeningTagNumber222(buffer, offset + len, 3)) {
                  return void 0;
                }
                len++;
                event.eventTimeStamps = [];
                for (let i = 0; i < 3; i++) {
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                  if (result.tagNumber === 0) {
                    decodedValue = decodeBacnetTime222(
                      buffer,
                      offset + len,
                      result.value
                    );
                    len += decodedValue.len;
                    event.eventTimeStamps[i] = {
                      value: decodedValue.value,
                      type: 0
                      /* TIME */
                    };
                  } else if (result.tagNumber === 1) {
                    decodedValue = decodeUnsigned222(
                      buffer,
                      offset + len,
                      result.value
                    );
                    len += decodedValue.len;
                    event.eventTimeStamps[i] = {
                      value: decodedValue.value,
                      type: 1
                      /* SEQUENCE_NUMBER */
                    };
                  } else if (result.tagNumber === 2) {
                    let date = decodeApplicationDate222(
                      buffer,
                      offset + len
                    );
                    len += date.len;
                    date = date.value.value;
                    let time = decodeApplicationTime222(
                      buffer,
                      offset + len
                    );
                    len += time.len;
                    time = time.value.value;
                    event.eventTimeStamps[i] = {
                      value: new Date(
                        date.getFullYear(),
                        date.getMonth(),
                        date.getDate(),
                        time.getHours(),
                        time.getMinutes(),
                        time.getSeconds(),
                        time.getMilliseconds()
                      ),
                      type: 2
                      /* DATETIME */
                    };
                    len++;
                  }
                }
                if (!decodeIsClosingTagNumber222(buffer, offset + len, 3)) {
                  return void 0;
                }
                len++;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
                len += decodedValue.len;
                event.notifyType = decodedValue.value;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeBitstring222(buffer, offset + len, result.value);
                len += decodedValue.len;
                event.eventEnable = decodedValue.value;
                if (!decodeIsOpeningTagNumber222(buffer, offset + len, 6)) {
                  return void 0;
                }
                len++;
                event.eventPriorities = [];
                for (let i = 0; i < 3; i++) {
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  event.eventPriorities[i] = decodedValue.value;
                }
                if (!decodeIsClosingTagNumber222(buffer, offset + len, 6)) {
                  return void 0;
                }
                len++;
                value.events.push(event);
              }
              if (!decodeIsClosingTagNumber222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              value.moreEvents = buffer[offset + len] > 0;
              len++;
              value.len = len;
              return value;
            };
            var i_am_exports222 = {};
            __export222(i_am_exports222, {
              decode: () => decode15222,
              encode: () => encode15222
            });
            var encode15222 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
              encodeApplicationObjectId222(buffer, 8, deviceId);
              encodeApplicationUnsigned222(buffer, maxApdu);
              encodeApplicationEnumerated222(buffer, segmentation);
              encodeApplicationUnsigned222(buffer, vendorId);
            };
            var decode15222 = (buffer, offset) => {
              let result;
              let apduLen = 0;
              const orgOffset = offset;
              result = decodeTagNumberAndValue222(buffer, offset + apduLen);
              apduLen += result.len;
              if (result.tagNumber !== 12) {
                return void 0;
              }
              result = decodeObjectId222(buffer, offset + apduLen);
              apduLen += result.len;
              if (result.objectType !== 8) {
                return void 0;
              }
              const deviceId = result.instance;
              result = decodeTagNumberAndValue222(buffer, offset + apduLen);
              apduLen += result.len;
              if (result.tagNumber !== 2) {
                return void 0;
              }
              result = decodeUnsigned222(buffer, offset + apduLen, result.value);
              apduLen += result.len;
              const maxApdu = result.value;
              result = decodeTagNumberAndValue222(buffer, offset + apduLen);
              apduLen += result.len;
              if (result.tagNumber !== 9) {
                return void 0;
              }
              result = decodeEnumerated222(buffer, offset + apduLen, result.value);
              apduLen += result.len;
              if (result.value > 3) {
                return void 0;
              }
              const segmentation = result.value;
              result = decodeTagNumberAndValue222(buffer, offset + apduLen);
              apduLen += result.len;
              if (result.tagNumber !== 2) {
                return void 0;
              }
              result = decodeUnsigned222(buffer, offset + apduLen, result.value);
              apduLen += result.len;
              if (result.value > 65535) {
                return void 0;
              }
              const vendorId = result.value;
              return {
                len: offset - orgOffset,
                deviceId,
                maxApdu,
                segmentation,
                vendorId
              };
            };
            var i_have_exports222 = {};
            __export222(i_have_exports222, {
              decode: () => decode16222,
              encode: () => encode16222
            });
            var encode16222 = (buffer, deviceId, objectId, objectName) => {
              encodeApplicationObjectId222(buffer, deviceId.type, deviceId.instance);
              encodeApplicationObjectId222(buffer, objectId.type, objectId.instance);
              encodeApplicationCharacterString222(buffer, objectName);
            };
            var decode16222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              let value = {};
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              value.deviceId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              value.objectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeCharacterString222(
                buffer,
                offset + len,
                apduLen - (offset + len),
                result.value
              );
              len += decodedValue.len;
              value.objectName = decodedValue.value;
              value.len = len;
              return value;
            };
            var life_safety_operation_exports222 = {};
            __export222(life_safety_operation_exports222, {
              decode: () => decode17222,
              encode: () => encode17222
            });
            var encode17222 = (buffer, processId, requestingSource, operation, targetObjectId) => {
              encodeContextUnsigned222(buffer, 0, processId);
              encodeContextCharacterString222(buffer, 1, requestingSource);
              encodeContextEnumerated222(buffer, 2, operation);
              encodeContextObjectId222(
                buffer,
                3,
                targetObjectId.type,
                targetObjectId.instance
              );
            };
            var decode17222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              let value = {};
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.processId = decodedValue.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeCharacterString222(
                buffer,
                offset + len,
                apduLen - (offset + len),
                result.value
              );
              len += decodedValue.len;
              value.requestingSource = decodedValue.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.operation = decodedValue.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              value.targetObjectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              value.len = len;
              return value;
            };
            var private_transfer_exports222 = {};
            __export222(private_transfer_exports222, {
              decode: () => decode18222,
              encode: () => encode18222
            });
            var encode18222 = (buffer, vendorId, serviceNumber, data) => {
              encodeContextUnsigned222(buffer, 0, vendorId);
              encodeContextUnsigned222(buffer, 1, serviceNumber);
              encodeOpeningTag222(buffer, 2);
              for (let i = 0; i < data.length; i++) {
                buffer.buffer[buffer.offset++] = data[i];
              }
              encodeClosingTag222(buffer, 2);
            };
            var decode18222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              let value = {};
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.vendorId = decodedValue.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.serviceNumber = decodedValue.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              const size = apduLen - (offset + len + 1);
              const data = [];
              for (let i = 0; i < size; i++) {
                data.push(buffer[offset + len++]);
              }
              value.data = data;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              value.len = len;
              return value;
            };
            var read_property_exports222 = {};
            __export222(read_property_exports222, {
              decode: () => decode19222,
              decodeAcknowledge: () => decodeAcknowledge5222,
              encode: () => encode19222,
              encodeAcknowledge: () => encodeAcknowledge6222
            });
            var encode19222 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
              if (objectType <= ASN1_MAX_OBJECT222) {
                encodeContextObjectId222(buffer, 0, objectType, objectInstance);
              }
              if (propertyId <= ASN1_MAX_PROPERTY_ID222) {
                encodeContextEnumerated222(buffer, 1, propertyId);
              }
              if (arrayIndex !== ASN1_ARRAY_ALL222) {
                encodeContextUnsigned222(
                  buffer,
                  2,
                  arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL222
                );
              }
            };
            var decode19222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              if (apduLen < 7) {
                return void 0;
              }
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              let objectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              let property = {};
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 1) {
                return void 0;
              }
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              property.id = decodedValue.value;
              property.index = ASN1_ARRAY_ALL222;
              if (len < apduLen) {
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber === 2 && len < apduLen) {
                  decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  property.index = decodedValue.value;
                } else {
                  return void 0;
                }
              }
              if (len < apduLen) {
                return void 0;
              }
              return {
                len,
                objectId,
                property
              };
            };
            var encodeAcknowledge6222 = (buffer, objectId, propertyId, arrayIndex, values) => {
              encodeContextObjectId222(buffer, 0, objectId.type, objectId.instance);
              encodeContextEnumerated222(buffer, 1, propertyId);
              if (arrayIndex !== ASN1_ARRAY_ALL222) {
                encodeContextUnsigned222(buffer, 2, arrayIndex);
              }
              encodeOpeningTag222(buffer, 3);
              values.forEach((value) => {
                bacappEncodeApplicationData222(buffer, value);
              });
              encodeClosingTag222(buffer, 3);
            };
            var decodeAcknowledge5222 = (buffer, offset, apduLen) => {
              let result;
              let decodedValue;
              let objectId = {};
              let property = {};
              if (!decodeIsContextTag222(buffer, offset, 0)) {
                return void 0;
              }
              let len = 1;
              result = decodeObjectId222(buffer, offset + len);
              len += result.len;
              objectId.type = result.objectType;
              objectId.instance = result.instance;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 1) {
                return void 0;
              }
              result = decodeEnumerated222(buffer, offset + len, result.value);
              len += result.len;
              property.id = result.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              if (result.tagNumber === 2) {
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                property.index = decodedValue.value;
              } else {
                property.index = ASN1_ARRAY_ALL222;
              }
              const values = [];
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 3)) {
                return void 0;
              }
              len++;
              while (apduLen - len > 1) {
                result = bacappDecodeApplicationData222(
                  buffer,
                  offset + len,
                  apduLen + offset,
                  objectId.type,
                  property.id
                );
                if (!result) {
                  return void 0;
                }
                len += result.len;
                delete result.len;
                values.push(result);
              }
              if (!decodeIsClosingTagNumber222(buffer, offset + len, 3)) {
                return void 0;
              }
              len++;
              return {
                len,
                objectId,
                property,
                values
              };
            };
            var read_property_multiple_exports222 = {};
            __export222(read_property_multiple_exports222, {
              decode: () => decode20222,
              decodeAcknowledge: () => decodeAcknowledge6222,
              encode: () => encode20222,
              encodeAcknowledge: () => encodeAcknowledge7222
            });
            var encode20222 = (buffer, properties) => {
              properties.forEach((value) => {
                encodeReadAccessSpecification222(buffer, value);
              });
            };
            var decode20222 = (buffer, offset, apduLen) => {
              let len = 0;
              const values = [];
              while (apduLen - len > 0) {
                const decodedValue = decodeReadAccessSpecification222(
                  buffer,
                  offset + len,
                  apduLen - len
                );
                if (!decodedValue) {
                  return void 0;
                }
                len += decodedValue.len;
                values.push(decodedValue.value);
              }
              return {
                len,
                properties: values
              };
            };
            var encodeAcknowledge7222 = (buffer, values) => {
              values.forEach((value) => {
                encodeReadAccessResult222(buffer, value);
              });
            };
            var decodeAcknowledge6222 = (buffer, offset, apduLen) => {
              let len = 0;
              const values = [];
              while (apduLen - len > 0) {
                const result = decodeReadAccessResult222(
                  buffer,
                  offset + len,
                  apduLen - len
                );
                if (!result || result === -1) {
                  return void 0;
                }
                len += result.len;
                values.push(result.value);
              }
              return {
                len,
                values
              };
            };
            var read_range_exports222 = {};
            __export222(read_range_exports222, {
              decode: () => decode21222,
              decodeAcknowledge: () => decodeAcknowledge7222,
              encode: () => encode21222,
              encodeAcknowledge: () => encodeAcknowledge8222
            });
            var encode21222 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
              encodeContextObjectId222(buffer, 0, objectId.type, objectId.instance);
              encodeContextEnumerated222(buffer, 1, propertyId);
              if (arrayIndex !== ASN1_ARRAY_ALL222) {
                encodeContextUnsigned222(buffer, 2, arrayIndex);
              }
              switch (requestType) {
                case 0:
                  encodeOpeningTag222(buffer, 3);
                  encodeApplicationUnsigned222(buffer, position);
                  encodeApplicationSigned222(buffer, count);
                  encodeClosingTag222(buffer, 3);
                  break;
                case 1:
                  encodeOpeningTag222(buffer, 6);
                  encodeApplicationUnsigned222(buffer, position);
                  encodeApplicationSigned222(buffer, count);
                  encodeClosingTag222(buffer, 6);
                  break;
                case 2:
                  encodeOpeningTag222(buffer, 7);
                  encodeApplicationDate222(buffer, time);
                  encodeApplicationTime222(buffer, time);
                  encodeApplicationSigned222(buffer, count);
                  encodeClosingTag222(buffer, 7);
                  break;
                default:
                  break;
              }
            };
            var decode21222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              let requestType;
              let position;
              let time;
              let count;
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              decodedValue = decodeObjectId222(buffer, offset + len, 0);
              len += decodedValue.len;
              let objectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              let property = {};
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 1) {
                return void 0;
              }
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              property.id = decodedValue.value;
              if (len < apduLen && decodeIsContextTag222(buffer, offset + len, 2)) {
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                property.index = decodedValue.value;
              } else {
                property.index = ASN1_ARRAY_ALL222;
              }
              if (len < apduLen) {
                result = decodeTagNumber222(buffer, offset + len);
                len += result.len;
                switch (result.tagNumber) {
                  case 3:
                    requestType = 0;
                    result = decodeTagNumberAndValue222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeUnsigned222(
                      buffer,
                      offset + len,
                      result.value
                    );
                    len += decodedValue.len;
                    position = decodedValue.value;
                    result = decodeTagNumberAndValue222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeSigned222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    count = decodedValue.value;
                    break;
                  case 6:
                    requestType = 1;
                    result = decodeTagNumberAndValue222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeUnsigned222(
                      buffer,
                      offset + len,
                      result.value
                    );
                    len += decodedValue.len;
                    position = decodedValue.value;
                    result = decodeTagNumberAndValue222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeSigned222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    count = decodedValue.value;
                    break;
                  case 7:
                    requestType = 2;
                    decodedValue = decodeApplicationDate222(buffer, offset + len);
                    len += decodedValue.len;
                    const tmpDate = decodedValue.value.value;
                    decodedValue = decodeApplicationTime222(buffer, offset + len);
                    len += decodedValue.len;
                    const tmpTime = decodedValue.value.value;
                    time = new Date(
                      tmpDate.getYear(),
                      tmpDate.getMonth(),
                      tmpDate.getDate(),
                      tmpTime.getHours(),
                      tmpTime.getMinutes(),
                      tmpTime.getSeconds(),
                      tmpTime.getMilliseconds()
                    );
                    result = decodeTagNumberAndValue222(buffer, offset + len);
                    len += result.len;
                    decodedValue = decodeSigned222(buffer, offset + len, result.value);
                    len += decodedValue.len;
                    count = decodedValue.value;
                    break;
                  default:
                    return void 0;
                }
                result = decodeTagNumber222(buffer, offset + len);
                len += result.len;
              }
              return {
                len,
                objectId,
                property,
                requestType,
                position,
                time,
                count
              };
            };
            var encodeAcknowledge8222 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
              encodeContextObjectId222(buffer, 0, objectId.type, objectId.instance);
              encodeContextEnumerated222(buffer, 1, propertyId);
              if (arrayIndex !== ASN1_ARRAY_ALL222) {
                encodeContextUnsigned222(buffer, 2, arrayIndex);
              }
              encodeContextBitstring222(buffer, 3, resultFlags);
              encodeContextUnsigned222(buffer, 4, itemCount);
              encodeOpeningTag222(buffer, 5);
              if (itemCount !== 0) {
                applicationData.copy(
                  buffer.buffer,
                  buffer.offset,
                  0,
                  applicationData.length
                );
                buffer.offset += applicationData.length;
              }
              encodeClosingTag222(buffer, 5);
              if (itemCount !== 0 && requestType && requestType !== 0) {
                encodeContextUnsigned222(buffer, 6, firstSequence);
              }
            };
            var decodeAcknowledge7222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              const objectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              const property = { index: ASN1_ARRAY_ALL222 };
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 1) {
                return void 0;
              }
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              property.id = decodedValue.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              if (result.tagNumber === 2 && len < apduLen) {
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                property.index = decodedValue.value;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeBitstring222(buffer, offset + len, result.value);
              len += decodedValue.len;
              const resultFlag = decodedValue.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              const itemCount = decodedValue.value;
              if (!decodeIsOpeningTag222(buffer, offset + len)) {
                return void 0;
              }
              len++;
              const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
              return {
                objectId,
                property,
                resultFlag,
                itemCount,
                rangeBuffer,
                len
              };
            };
            var register_foreign_device_exports222 = {};
            __export222(register_foreign_device_exports222, {
              decode: () => decode22222,
              encode: () => encode22222
            });
            var encode22222 = (buffer, ttl, length = 2) => {
              encodeUnsigned222(buffer, ttl, length);
            };
            var decode22222 = (buffer, offset, length = 2) => {
              let len = 0;
              let result = decodeUnsigned222(buffer, offset + len, length);
              len += result.len;
              return {
                len,
                ttl: result.value
              };
            };
            var reinitialize_device_exports222 = {};
            __export222(reinitialize_device_exports222, {
              decode: () => decode23222,
              encode: () => encode23222
            });
            var encode23222 = (buffer, state, password) => {
              encodeContextEnumerated222(buffer, 0, state);
              if (password && password !== "") {
                encodeContextCharacterString222(buffer, 1, password);
              }
            };
            var decode23222 = (buffer, offset, apduLen) => {
              let len = 0;
              let value = {};
              let result;
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              let decodedValue = decodeEnumerated222(
                buffer,
                offset + len,
                result.value
              );
              value.state = decodedValue.value;
              len += decodedValue.len;
              if (len < apduLen) {
                if (!decodeIsContextTag222(buffer, offset + len, 1)) {
                  return void 0;
                }
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeCharacterString222(
                  buffer,
                  offset + len,
                  apduLen - (offset + len),
                  result.value
                );
                value.password = decodedValue.value;
                len += decodedValue.len;
              }
              value.len = len;
              return value;
            };
            var subscribe_cov_exports222 = {};
            __export222(subscribe_cov_exports222, {
              decode: () => decode24222,
              encode: () => encode24222
            });
            var encode24222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
              encodeContextUnsigned222(buffer, 0, subscriberProcessId);
              encodeContextObjectId222(
                buffer,
                1,
                monitoredObjectId.type,
                monitoredObjectId.instance
              );
              if (!cancellationRequest) {
                encodeContextBoolean222(buffer, 2, issueConfirmedNotifications);
                encodeContextUnsigned222(buffer, 3, lifetime);
              }
            };
            var decode24222 = (buffer, offset, apduLen) => {
              let len = 0;
              let value = {};
              let result;
              let decodedValue;
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.subscriberProcessId = decodedValue.value;
              if (!decodeIsContextTag222(buffer, offset + len, 1)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              value.monitoredObjectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              value.cancellationRequest = true;
              if (len < apduLen) {
                value.issueConfirmedNotifications = false;
                if (decodeIsContextTag222(buffer, offset + len, 2)) {
                  value.cancellationRequest = false;
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                  value.issueConfirmedNotifications = buffer[offset + len] > 0;
                  len++;
                }
                value.lifetime = 0;
                if (decodeIsContextTag222(buffer, offset + len, 3)) {
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                  decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  value.lifetime = decodedValue.value;
                }
              }
              value.len = len;
              return value;
            };
            var subscribe_property_exports222 = {};
            __export222(subscribe_property_exports222, {
              decode: () => decode25222,
              encode: () => encode25222
            });
            var encode25222 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
              encodeContextUnsigned222(buffer, 0, subscriberProcessId);
              encodeContextObjectId222(
                buffer,
                1,
                monitoredObjectId.type,
                monitoredObjectId.instance
              );
              if (!cancellationRequest) {
                encodeContextBoolean222(buffer, 2, issueConfirmedNotifications);
                encodeContextUnsigned222(buffer, 3, lifetime);
              }
              encodeOpeningTag222(buffer, 4);
              encodeContextEnumerated222(buffer, 0, monitoredProperty.id);
              if (monitoredProperty.index !== ASN1_ARRAY_ALL222) {
                encodeContextUnsigned222(buffer, 1, monitoredProperty.index);
              }
              encodeClosingTag222(buffer, 4);
              if (covIncrementPresent) {
                encodeContextReal222(buffer, 5, covIncrement);
              }
            };
            var decode25222 = (buffer, offset) => {
              let len = 0;
              let value = {};
              let result;
              let decodedValue;
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.subscriberProcessId = decodedValue.value;
              if (!decodeIsContextTag222(buffer, offset + len, 1)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              value.monitoredObjectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              value.cancellationRequest = true;
              value.issueConfirmedNotifications = false;
              if (decodeIsContextTag222(buffer, offset + len, 2)) {
                value.cancellationRequest = false;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                value.issueConfirmedNotifications = buffer[offset + len] > 0;
                len++;
              }
              value.lifetime = 0;
              if (decodeIsContextTag222(buffer, offset + len, 3)) {
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.lifetime = decodedValue.value;
              }
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 4)) {
                return void 0;
              }
              len++;
              value.monitoredProperty = {};
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.monitoredProperty.id = decodedValue.value;
              value.monitoredProperty.index = ASN1_ARRAY_ALL222;
              if (decodeIsContextTag222(buffer, offset + len, 1)) {
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.monitoredProperty.index = decodedValue.value;
              }
              if (!decodeIsClosingTagNumber222(buffer, offset + len, 4)) {
                return void 0;
              }
              len++;
              value.covIncrement = 0;
              if (decodeIsContextTag222(buffer, offset + len, 5)) {
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                decodedValue = decodeReal222(buffer, offset + len);
                len += decodedValue.len;
                value.covIncrement = decodedValue.value;
              }
              value.len = len;
              return value;
            };
            var time_sync_exports222 = {};
            __export222(time_sync_exports222, {
              decode: () => decode26222,
              encode: () => encode26222
            });
            var encode26222 = (buffer, time) => {
              encodeApplicationDate222(buffer, time);
              encodeApplicationTime222(buffer, time);
            };
            var decode26222 = (buffer, offset, length) => {
              let len = 0;
              let result;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 10) {
                return void 0;
              }
              const date = decodeDate222(buffer, offset + len);
              len += date.len;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 11) {
                return void 0;
              }
              const time = decodeBacnetTime222(buffer, offset + len);
              len += time.len;
              return {
                len,
                value: new Date(
                  date.value.getFullYear(),
                  date.value.getMonth(),
                  date.value.getDate(),
                  time.value.getHours(),
                  time.value.getMinutes(),
                  time.value.getSeconds(),
                  time.value.getMilliseconds()
                )
              };
            };
            var who_has_exports222 = {};
            __export222(who_has_exports222, {
              decode: () => decode27222,
              encode: () => encode27222
            });
            var encode27222 = (buffer, lowLimit, highLimit, objectId, objectName) => {
              if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE222) {
                encodeContextUnsigned222(buffer, 0, lowLimit);
                encodeContextUnsigned222(buffer, 1, highLimit);
              }
              if (objectName && objectName !== "") {
                encodeContextCharacterString222(buffer, 3, objectName);
              } else {
                encodeContextObjectId222(buffer, 2, objectId.type, objectId.instance);
              }
            };
            var decode27222 = (buffer, offset, apduLen) => {
              let len = 0;
              let value = {};
              let decodedValue;
              let result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber === 0) {
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                if (decodedValue.value <= ASN1_MAX_INSTANCE222) {
                  value.lowLimit = decodedValue.value;
                }
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
              }
              if (result.tagNumber === 1) {
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                if (decodedValue.value <= ASN1_MAX_INSTANCE222) {
                  value.highLimit = decodedValue.value;
                }
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
              }
              if (result.tagNumber === 2) {
                decodedValue = decodeObjectId222(buffer, offset + len);
                len += decodedValue.len;
                value.objectId = {
                  type: decodedValue.objectType,
                  instance: decodedValue.instance
                };
              }
              if (result.tagNumber === 3) {
                decodedValue = decodeCharacterString222(
                  buffer,
                  offset + len,
                  apduLen - (offset + len),
                  result.value
                );
                len += decodedValue.len;
                value.objectName = decodedValue.value;
              }
              value.len = len;
              return value;
            };
            var who_is_exports222 = {};
            __export222(who_is_exports222, {
              decode: () => decode28222,
              encode: () => encode28222
            });
            var encode28222 = (buffer, lowLimit, highLimit) => {
              if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE222 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE222) {
                encodeContextUnsigned222(buffer, 0, lowLimit);
                encodeContextUnsigned222(buffer, 1, highLimit);
              }
            };
            var decode28222 = (buffer, offset, apduLen) => {
              let len = 0;
              let value = {};
              if (apduLen <= 0) {
                return {};
              }
              let result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 0) {
                return void 0;
              }
              if (apduLen <= len) {
                return void 0;
              }
              let decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              if (decodedValue.value <= ASN1_MAX_INSTANCE222) {
                value.lowLimit = decodedValue.value;
              }
              if (apduLen <= len) {
                return void 0;
              }
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 1) {
                return void 0;
              }
              if (apduLen <= len) {
                return void 0;
              }
              decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
              len += decodedValue.len;
              if (decodedValue.value <= ASN1_MAX_INSTANCE222) {
                value.highLimit = decodedValue.value;
              }
              value.len = len;
              return value;
            };
            var write_property_exports222 = {};
            __export222(write_property_exports222, {
              decode: () => decode29222,
              encode: () => encode29222
            });
            var encode29222 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
              encodeContextObjectId222(buffer, 0, objectType, objectInstance);
              encodeContextEnumerated222(buffer, 1, propertyId);
              if (arrayIndex !== ASN1_ARRAY_ALL222) {
                encodeContextUnsigned222(buffer, 2, arrayIndex);
              }
              encodeOpeningTag222(buffer, 3);
              values.forEach((value) => {
                bacappEncodeApplicationData222(buffer, value);
              });
              encodeClosingTag222(buffer, 3);
              if (priority !== ASN1_NO_PRIORITY222) {
                encodeContextUnsigned222(buffer, 4, priority);
              }
            };
            var decode29222 = (buffer, offset, apduLen) => {
              let len = 0;
              let value = {
                property: {}
              };
              let decodedValue;
              let result;
              if (!decodeIsContextTag222(buffer, offset + len, 0)) {
                return void 0;
              }
              len++;
              decodedValue = decodeObjectId222(buffer, offset + len);
              let objectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              len += decodedValue.len;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 1) {
                return void 0;
              }
              decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.property.id = decodedValue.value;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              if (result.tagNumber === 2) {
                len += result.len;
                decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                len += decodedValue.len;
                value.property.index = decodedValue.value;
              } else {
                value.property.index = ASN1_ARRAY_ALL222;
              }
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 3)) {
                return void 0;
              }
              len++;
              const values = [];
              while (apduLen - len > 1 && !decodeIsClosingTagNumber222(buffer, offset + len, 3)) {
                decodedValue = bacappDecodeApplicationData222(
                  buffer,
                  offset + len,
                  apduLen + offset,
                  objectId.type,
                  value.property.id
                );
                if (!decodedValue) {
                  return void 0;
                }
                len += decodedValue.len;
                delete decodedValue.len;
                values.push(decodedValue);
              }
              value.value = values;
              if (!decodeIsClosingTagNumber222(buffer, offset + len, 3)) {
                return void 0;
              }
              len++;
              value.priority = ASN1_MAX_PRIORITY222;
              if (len < apduLen) {
                result = decodeTagNumberAndValue222(buffer, offset + len);
                if (result.tagNumber === 4) {
                  len += result.len;
                  decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                  len += decodedValue;
                  if (decodedValue.value >= ASN1_MIN_PRIORITY222 && decodedValue.value <= ASN1_MAX_PRIORITY222) {
                    value.priority = decodedValue.value;
                  } else {
                    return void 0;
                  }
                }
              }
              return {
                len,
                objectId,
                value
              };
            };
            var write_property_multiple_exports222 = {};
            __export222(write_property_multiple_exports222, {
              decode: () => decode30222,
              encode: () => encode30222,
              encodeObject: () => encodeObject222
            });
            var encode30222 = (buffer, objectId, values) => {
              encodeContextObjectId222(buffer, 0, objectId.type, objectId.instance);
              encodeOpeningTag222(buffer, 1);
              values.forEach((pValue) => {
                encodeContextEnumerated222(buffer, 0, pValue.property.id);
                if (pValue.property.index !== ASN1_ARRAY_ALL222) {
                  encodeContextUnsigned222(buffer, 1, pValue.property.index);
                }
                encodeOpeningTag222(buffer, 2);
                pValue.value.forEach((value) => {
                  bacappEncodeApplicationData222(buffer, value);
                });
                encodeClosingTag222(buffer, 2);
                if (pValue.priority !== ASN1_NO_PRIORITY222) {
                  encodeContextUnsigned222(buffer, 3, pValue.priority);
                }
              });
              encodeClosingTag222(buffer, 1);
            };
            var decode30222 = (buffer, offset, apduLen) => {
              let len = 0;
              let result;
              let decodedValue;
              let objectId;
              result = decodeTagNumberAndValue222(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 0 || apduLen <= len) {
                return void 0;
              }
              apduLen -= len;
              if (apduLen < 4) {
                return void 0;
              }
              decodedValue = decodeObjectId222(buffer, offset + len);
              len += decodedValue.len;
              objectId = {
                type: decodedValue.objectType,
                instance: decodedValue.instance
              };
              if (!decodeIsOpeningTagNumber222(buffer, offset + len, 1)) {
                return void 0;
              }
              len++;
              const _values = [];
              while (apduLen - len > 1) {
                let newEntry = {};
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber !== 0) {
                  return void 0;
                }
                decodedValue = decodeEnumerated222(buffer, offset + len, result.value);
                len += decodedValue.len;
                let propertyId = decodedValue.value;
                let arrayIndex = ASN1_ARRAY_ALL222;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber === 1) {
                  decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  arrayIndex = decodedValue.value;
                  result = decodeTagNumberAndValue222(buffer, offset + len);
                  len += result.len;
                }
                newEntry.property = { id: propertyId, index: arrayIndex };
                if (result.tagNumber !== 2 || !decodeIsOpeningTag222(buffer, offset + len - 1)) {
                  return void 0;
                }
                const values = [];
                while (len + offset <= buffer.length && !decodeIsClosingTag222(buffer, offset + len)) {
                  let value = bacappDecodeApplicationData222(
                    buffer,
                    offset + len,
                    apduLen + offset,
                    objectId.type,
                    propertyId
                  );
                  if (!value) {
                    return void 0;
                  }
                  len += value.len;
                  delete value.len;
                  values.push(value);
                }
                len++;
                newEntry.value = values;
                let priority = ASN1_NO_PRIORITY222;
                result = decodeTagNumberAndValue222(buffer, offset + len);
                len += result.len;
                if (result.tagNumber === 3) {
                  decodedValue = decodeUnsigned222(buffer, offset + len, result.value);
                  len += decodedValue.len;
                  priority = decodedValue.value;
                } else {
                  len--;
                }
                newEntry.priority = priority;
                _values.push(newEntry);
                if (decodeIsClosingTagNumber222(buffer, offset + len, 1)) {
                  len++;
                }
              }
              if (decodeIsClosingTagNumber222(buffer, offset + len, 1)) {
                len++;
              }
              return {
                len,
                objectId,
                values: _values
              };
            };
            var encodeObject222 = (buffer, values) => {
              values.forEach((object) => {
                encode30222(buffer, object.objectId, object.values);
              });
            };
            var getDecodedType222 = (buffer, offset) => {
              return buffer[offset];
            };
            var encodeConfirmedServiceRequest222 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
              buffer.buffer[buffer.offset++] = type;
              buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
              buffer.buffer[buffer.offset++] = invokeId;
              if ((type & 8) > 0) {
                buffer.buffer[buffer.offset++] = sequencenumber;
                buffer.buffer[buffer.offset++] = proposedWindowSize;
              }
              buffer.buffer[buffer.offset++] = service;
            };
            var decodeConfirmedServiceRequest222 = (buffer, offset) => {
              const orgOffset = offset;
              const type = buffer[offset++];
              const maxSegments = buffer[offset] & 240;
              const maxApdu = buffer[offset++] & 15;
              const invokeId = buffer[offset++];
              let sequencenumber = 0;
              let proposedWindowNumber = 0;
              if ((type & 8) > 0) {
                sequencenumber = buffer[offset++];
                proposedWindowNumber = buffer[offset++];
              }
              const service = buffer[offset++];
              return {
                len: offset - orgOffset,
                type,
                service,
                maxSegments,
                maxApdu,
                invokeId,
                sequencenumber,
                proposedWindowNumber
              };
            };
            var encodeUnconfirmedServiceRequest222 = (buffer, type, service) => {
              buffer.buffer[buffer.offset++] = type;
              buffer.buffer[buffer.offset++] = service;
            };
            var decodeUnconfirmedServiceRequest222 = (buffer, offset) => {
              const orgOffset = offset;
              const type = buffer[offset++];
              const service = buffer[offset++];
              return {
                len: offset - orgOffset,
                type,
                service
              };
            };
            var encodeSimpleAck222 = (buffer, type, service, invokeId) => {
              buffer.buffer[buffer.offset++] = type;
              buffer.buffer[buffer.offset++] = invokeId;
              buffer.buffer[buffer.offset++] = service;
            };
            var decodeSimpleAck222 = (buffer, offset) => {
              const orgOffset = offset;
              const type = buffer[offset++];
              const invokeId = buffer[offset++];
              const service = buffer[offset++];
              return {
                len: offset - orgOffset,
                type,
                service,
                invokeId
              };
            };
            var encodeComplexAck222 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
              let len = 3;
              buffer.buffer[buffer.offset++] = type;
              buffer.buffer[buffer.offset++] = invokeId;
              if ((type & 8) > 0) {
                buffer.buffer[buffer.offset++] = sequencenumber;
                buffer.buffer[buffer.offset++] = proposedWindowNumber;
                len += 2;
              }
              buffer.buffer[buffer.offset++] = service;
              return len;
            };
            var decodeComplexAck222 = (buffer, offset) => {
              const orgOffset = offset;
              const type = buffer[offset++];
              const invokeId = buffer[offset++];
              let sequencenumber = 0;
              let proposedWindowNumber = 0;
              if ((type & 8) > 0) {
                sequencenumber = buffer[offset++];
                proposedWindowNumber = buffer[offset++];
              }
              const service = buffer[offset++];
              return {
                len: offset - orgOffset,
                type,
                service,
                invokeId,
                sequencenumber,
                proposedWindowNumber
              };
            };
            var encodeSegmentAck222 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
              buffer.buffer[buffer.offset++] = type;
              buffer.buffer[buffer.offset++] = originalInvokeId;
              buffer.buffer[buffer.offset++] = sequencenumber;
              buffer.buffer[buffer.offset++] = actualWindowSize;
            };
            var decodeSegmentAck222 = (buffer, offset) => {
              const orgOffset = offset;
              const type = buffer[offset++];
              const originalInvokeId = buffer[offset++];
              const sequencenumber = buffer[offset++];
              const actualWindowSize = buffer[offset++];
              return {
                len: offset - orgOffset,
                type,
                originalInvokeId,
                sequencenumber,
                actualWindowSize
              };
            };
            var encodeResult222 = (buffer, resultCode) => {
              encodeUnsigned222(buffer, resultCode, 2);
            };
            var encodeError222 = (buffer, type, service, invokeId) => {
              buffer.buffer[buffer.offset++] = type;
              buffer.buffer[buffer.offset++] = invokeId;
              buffer.buffer[buffer.offset++] = service;
            };
            var decodeError222 = (buffer, offset) => {
              const orgOffset = offset;
              const type = buffer[offset++];
              const invokeId = buffer[offset++];
              const service = buffer[offset++];
              return {
                len: offset - orgOffset,
                type,
                service,
                invokeId
              };
            };
            var decodeAbort222 = (buffer, offset) => {
              const orgOffset = offset;
              const type = buffer[offset++];
              const invokeId = buffer[offset++];
              const reason = buffer[offset++];
              return {
                len: offset - orgOffset,
                type,
                invokeId,
                reason
              };
            };
            var DEFAULT_HOP_COUNT322 = 255;
            var BACNET_PROTOCOL_VERSION222 = 1;
            var BACNET_ADDRESS_TYPES222 = {
              NONE: 0,
              IP: 1
            };
            var decodeTarget222 = (buffer, offset) => {
              let len = 0;
              const target = {
                type: BACNET_ADDRESS_TYPES222.NONE,
                net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
              };
              const adrLen = buffer[offset + len++];
              if (adrLen > 0) {
                target.adr = [];
                for (let i = 0; i < adrLen; i++) {
                  target.adr.push(buffer[offset + len++]);
                }
              }
              return {
                target,
                len
              };
            };
            var encodeTarget222 = (buffer, target) => {
              buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
              buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
              if (target.net === 65535 || !target.adr) {
                buffer.buffer[buffer.offset++] = 0;
              } else {
                buffer.buffer[buffer.offset++] = target.adr.length;
                if (target.adr.length > 0) {
                  for (let i = 0; i < target.adr.length; i++) {
                    buffer.buffer[buffer.offset++] = target.adr[i];
                  }
                }
              }
            };
            var decode31222 = (buffer, offset) => {
              let adrLen;
              const orgOffset = offset;
              offset++;
              const funct = buffer[offset++];
              let destination;
              if (funct & 32) {
                const tmpDestination = decodeTarget222(buffer, offset);
                offset += tmpDestination.len;
                destination = tmpDestination.target;
              }
              let source;
              if (funct & 8) {
                const tmpSource = decodeTarget222(buffer, offset);
                offset += tmpSource.len;
                source = tmpSource.target;
              }
              let hopCount = 0;
              if (funct & 32) {
                hopCount = buffer[offset++];
              }
              let networkMsgType = 0;
              let vendorId = 0;
              if (funct & 128) {
                networkMsgType = buffer[offset++];
                if (networkMsgType >= 128) {
                  vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
                } else if (networkMsgType === 0) {
                  offset += 2;
                }
              }
              if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION222) {
                return void 0;
              }
              return {
                len: offset - orgOffset,
                funct,
                destination,
                source,
                hopCount,
                networkMsgType,
                vendorId
              };
            };
            var encode31222 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
              const hasDestination = destination && destination.net > 0;
              const hasSource = source && source.net > 0 && source.net !== 65535;
              buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION222;
              buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
              if (hasDestination) {
                encodeTarget222(buffer, destination);
              }
              if (hasSource) {
                encodeTarget222(buffer, source);
              }
              if (hasDestination) {
                buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT322;
              }
              if ((funct & 128) > 0) {
                buffer.buffer[buffer.offset++] = networkMsgType;
                if (networkMsgType >= 128) {
                  buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
                  buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
                }
              }
            };
            var DEFAULT_BACNET_PORT2222 = 47808;
            var encode32222 = (buffer, func, msgLength, originatingIP) => {
              buffer[0] = BVLL_TYPE_BACNET_IP222;
              buffer[1] = func;
              buffer[2] = (msgLength & 65280) >> 8;
              buffer[3] = (msgLength & 255) >> 0;
              if (originatingIP) {
                if (func !== 4) {
                  throw new Error(
                    "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
                  );
                }
                const [ipstr, portstr] = originatingIP.split(":");
                const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT2222;
                const ip = ipstr.split(".");
                buffer[4] = parseInt(ip[0], 10);
                buffer[5] = parseInt(ip[1], 10);
                buffer[6] = parseInt(ip[2], 10);
                buffer[7] = parseInt(ip[3], 10);
                buffer[8] = (port & 65280) >> 8;
                buffer[9] = (port & 255) >> 0;
                return 6 + BVLC_HEADER_LENGTH322;
              } else {
                if (func === 4) {
                  throw new Error(
                    "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
                  );
                }
              }
              return BVLC_HEADER_LENGTH322;
            };
            var decode32222 = (buffer, _offset) => {
              let len;
              const func = buffer[1];
              const msgLength = buffer[2] << 8 | buffer[3] << 0;
              if (buffer[0] !== BVLL_TYPE_BACNET_IP222 || buffer.length !== msgLength) {
                return void 0;
              }
              let originatingIP = null;
              switch (func) {
                case 0:
                case 10:
                case 11:
                case 9:
                case 5:
                case 6:
                case 8:
                case 2:
                case 1:
                case 3:
                case 7:
                  len = 4;
                  break;
                case 4:
                  const port = buffer[8] << 8 | buffer[9];
                  originatingIP = buffer.slice(4, 8).join(".");
                  if (port !== DEFAULT_BACNET_PORT2222) {
                    originatingIP += ":" + port;
                  }
                  len = 10;
                  break;
                case 12:
                  return void 0;
                default:
                  return void 0;
              }
              return {
                len,
                func,
                msgLength,
                // Originating IP is set to the IP address of the node that originally
                // sent the packet, when it has been forwarded to us by a BBMD (since the
                // BBMD's IP address will be in the sender field.
                originatingIP
              };
            };
            var EventEmitter2222 = import_events2222.default.EventEmitter;
            var debug3222 = (0, import_debug3222.default)("bacnet:client:debug");
            var trace2222 = (0, import_debug3222.default)("bacnet:client:trace");
            var ALL_INTERFACES222 = "0.0.0.0";
            var LOCALHOST_INTERFACES_IPV4222 = "127.0.0.1";
            var BROADCAST_ADDRESS222 = "255.255.255.255";
            var DEFAULT_HOP_COUNT2222 = 255;
            var BVLC_HEADER_LENGTH2222 = 4;
            var BVLC_FWD_HEADER_LENGTH222 = 10;
            var beU222 = UnconfirmedServiceChoice222;
            var unconfirmedServiceMap222 = {
              [beU222.I_AM]: "iAm",
              [beU222.WHO_IS]: "whoIs",
              [beU222.WHO_HAS]: "whoHas",
              [beU222.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
              [beU222.TIME_SYNCHRONIZATION]: "timeSync",
              [beU222.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
              [beU222.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
              [beU222.I_HAVE]: "iHave",
              [beU222.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
            };
            var beC222 = ConfirmedServiceChoice222;
            var confirmedServiceMap222 = {
              [beC222.READ_PROPERTY]: "readProperty",
              [beC222.WRITE_PROPERTY]: "writeProperty",
              [beC222.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
              [beC222.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
              [beC222.CONFIRMED_COV_NOTIFICATION]: "covNotify",
              [beC222.ATOMIC_WRITE_FILE]: "atomicWriteFile",
              [beC222.ATOMIC_READ_FILE]: "atomicReadFile",
              [beC222.SUBSCRIBE_COV]: "subscribeCov",
              [beC222.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
              [beC222.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
              [beC222.REINITIALIZE_DEVICE]: "reinitializeDevice",
              [beC222.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
              [beC222.READ_RANGE]: "readRange",
              [beC222.CREATE_OBJECT]: "createObject",
              [beC222.DELETE_OBJECT]: "deleteObject",
              [beC222.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
              [beC222.GET_ALARM_SUMMARY]: "getAlarmSummary",
              [beC222.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
              [beC222.GET_EVENT_INFORMATION]: "getEventInformation",
              [beC222.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
              [beC222.ADD_LIST_ELEMENT]: "addListElement",
              [beC222.REMOVE_LIST_ELEMENT]: "removeListElement",
              [beC222.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
            };
            var errorReasonEnums222 = {
              BacnetAbort: RejectReason222,
              another: AbortReason222
            };
            var BacnetError222 = class extends Error {
              constructor(message, bacnetErrorClass, bacnetErrorCode) {
                super(message);
                this.bacnetErrorClass = bacnetErrorClass;
                this.bacnetErrorCode = bacnetErrorCode;
              }
            };
            function bacnetErrorToString222(err) {
              var _a;
              const isError = err instanceof Error || err instanceof BacnetError222;
              if (!isError)
                return;
              const message = err.message;
              const reasonClass = message == null ? void 0 : message.split(" - ")[0];
              const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
              if (!errorReasonEnums222[reasonClass])
                return;
              const reasonString = errorReasonEnums222[reasonClass][reason];
              const alternativeReasonString = errorReasonEnums222["another"][reason];
              return reasonClass + ": " + reasonString + "or alternatively it could be " + alternativeReasonString;
            }
            var Client222 = class extends EventEmitter2222 {
              /**
               *
               * @param options
               */
              constructor(options) {
                super();
                options = options || {};
                this._invokeCounter = 1;
                this._invokeStore = {};
                this._lastSequenceNumber = 0;
                this._segmentStore = [];
                this._settings = {
                  port: options.port || 47808,
                  interface: options.interface || ALL_INTERFACES222,
                  transport: options.transport,
                  broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS222,
                  apduTimeout: options.apduTimeout || 3e3
                };
                options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
                this._transport = this._settings.transport || new Transport222({
                  port: this._settings.port,
                  interface: this._settings.interface,
                  broadcastAddress: this._settings.broadcastAddress,
                  reuseAddr: options.reuseAddr
                });
                this._transport.on("message", this._receiveData.bind(this));
                this._transport.on("error", this._receiveError.bind(this));
                this._transport.on("listening", () => this.emit("listening"));
                this._transport.open();
              }
              /**
               *
               * @returns {number}
               * @private
               */
              _getInvokeId() {
                const id = this._invokeCounter++;
                if (id >= 256)
                  this._invokeCounter = 1;
                return id - 1;
              }
              /**
               *
               * @param id
               * @param err
               * @param result
               * @returns {*}
               * @private
               */
              _invokeCallback(id, err, result) {
                const callback = this._invokeStore[id];
                if (callback) {
                  return void callback(err, result);
                }
                debug3222("InvokeId", id, "not found -> drop package");
              }
              /**
               *
               * @param id
               * @param callback
               * @private
               */
              _addCallback(id, callback) {
                const timeout = setTimeout(() => {
                  delete this._invokeStore[id];
                  callback(new Error("ERR_TIMEOUT"));
                }, this._settings.apduTimeout);
                this._invokeStore[id] = (err, data) => {
                  clearTimeout(timeout);
                  delete this._invokeStore[id];
                  callback(err, data);
                };
              }
              /**
               *
               * @param isForwarded
               * @returns {{offset: (number), buffer: *}}
               * @private
               */
              _getBuffer(isForwarded) {
                return Object.assign(
                  {},
                  {
                    buffer: Buffer.alloc(this._transport.getMaxPayload()),
                    offset: isForwarded ? BVLC_FWD_HEADER_LENGTH222 : BVLC_HEADER_LENGTH2222
                  }
                );
              }
              /**
               *
               * @param invokeId
               * @param buffer
               * @param offset
               * @param length
               * @returns {*}
               * @private
               */
              _processError(invokeId, buffer, offset, length) {
                const result = error_exports222.decode(buffer, offset);
                trace2222("Received error:", result);
                if (!result) {
                  return debug3222("Couldn`t decode Error");
                }
                const err = new BacnetError222(error_exports222.buildMessage(result));
                err.bacnetErrorClass = result.class;
                err.bacnetErrorCode = result.code;
                this._invokeCallback(invokeId, err);
              }
              /**
               *
               * @param invokeId
               * @param reason
               * @private
               */
              _processAbort(invokeId, reason) {
                const err = new BacnetError222("BacnetAbort - Reason:" + reason);
                err.bacnetAbortReason = reason;
                err.bacnetErrorClass = AbortReason222;
                this._invokeCallback(invokeId, err);
              }
              /**
               *
               * @param receiver
               * @param negative
               * @param server
               * @param originalInvokeId
               * @param sequencenumber
               * @param actualWindowSize
               * @private
               */
              _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
                const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                encode31222(
                  buffer,
                  0,
                  receiver,
                  null,
                  DEFAULT_HOP_COUNT2222,
                  0,
                  0
                );
                encodeSegmentAck222(
                  buffer,
                  64 | (negative ? 2 : 0) | (server ? 1 : 0),
                  originalInvokeId,
                  sequencenumber,
                  actualWindowSize
                );
                this.sendBvlc(receiver, buffer);
              }
              /**
               *
               * @param msg
               * @param first
               * @param moreFollows
               * @param buffer
               * @param offset
               * @param length
               * @private
               */
              _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
                if (first) {
                  this._segmentStore = [];
                  msg.type &= ~8;
                  let apduHeaderLen = 3;
                  if ((msg.type & PDU_TYPE_MASK222) === 0) {
                    apduHeaderLen = 4;
                  }
                  const apdubuffer = this._getBuffer();
                  apdubuffer.offset = 0;
                  buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
                  if ((msg.type & PDU_TYPE_MASK222) === 0) {
                    encodeConfirmedServiceRequest222(
                      apdubuffer,
                      msg.type,
                      msg.service,
                      msg.maxSegments,
                      msg.maxApdu,
                      msg.invokeId,
                      0,
                      0
                    );
                  } else {
                    encodeComplexAck222(
                      apdubuffer,
                      msg.type,
                      msg.service,
                      msg.invokeId,
                      0,
                      0
                    );
                  }
                  this._segmentStore.push(
                    //@ts-ignore
                    apdubuffer.buffer.slice(0, length + apduHeaderLen)
                  );
                } else {
                  this._segmentStore.push(buffer.slice(offset, offset + length));
                }
                if (!moreFollows) {
                  const apduBuffer = Buffer.concat(this._segmentStore);
                  this._segmentStore = [];
                  msg.type &= ~8;
                  this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
                }
              }
              /**
               *
               * @param msg
               * @param server
               * @param buffer
               * @param offset
               * @param length
               * @private
               */
              _processSegment(msg, server, buffer, offset, length) {
                let first = false;
                if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
                  first = true;
                } else {
                  if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                    return this._segmentAckResponse(
                      msg.header.address,
                      true,
                      server,
                      msg.invokeId,
                      this._lastSequenceNumber,
                      msg.proposedWindowNumber
                    );
                  }
                }
                this._lastSequenceNumber = msg.sequencenumber;
                const moreFollows = msg.type & 4;
                if (!moreFollows) {
                  this._lastSequenceNumber = 0;
                }
                if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
                  this._segmentAckResponse(
                    msg.header.address,
                    false,
                    server,
                    msg.invokeId,
                    msg.sequencenumber,
                    msg.proposedWindowNumber
                  );
                }
                this._performDefaultSegmentHandling(
                  msg,
                  first,
                  moreFollows,
                  buffer,
                  offset,
                  length
                );
              }
              /**
               *
               * @param serviceMap
               * @param content
               * @param buffer
               * @param offset
               * @param length
               * @returns {*}
               * @private
               */
              _processServiceRequest(serviceMap, content, buffer, offset, length) {
                let result;
                const sender = content.header.sender;
                if (sender.address === LOCALHOST_INTERFACES_IPV4222) {
                  debug3222("Received and skipped localhost service request:", content.service);
                  return;
                }
                const name = serviceMap[content.service];
                if (!name) {
                  debug3222("Received unsupported service request:", content.service);
                  return;
                }
                const id = content.invokeId ? "@" + content.invokeId : "";
                trace2222(`Received service request${id}:`, name);
                const serviceHandler = services_exports222[name];
                if (serviceHandler) {
                  try {
                    content.payload = serviceHandler.decode(buffer, offset, length);
                    trace2222(`Handled service request${id}:`, name, JSON.stringify(content));
                  } catch (e) {
                    debug3222("Exception thrown when processing message:", e);
                    debug3222("Original message was", name + ":", content);
                    return;
                  }
                  if (!content.payload) {
                    return debug3222("Received invalid", name, "message");
                  }
                } else {
                  debug3222("No serviceHandler defined for:", name);
                }
                if (this.listenerCount(name)) {
                  trace2222("listener count by name emits " + name + " with content");
                  this.emit(name, content);
                } else {
                  if (this.listenerCount("unhandledEvent")) {
                    trace2222("unhandled event emiting with content");
                    this.emit("unhandledEvent", content);
                  } else {
                    trace2222(
                      "no unhandled event handler with header: " + JSON.stringify(content.header)
                    );
                    if (content.header.expectingReply) {
                      debug3222("Replying with error for unhandled service:", name);
                      content.header.sender.forwardedFrom = null;
                      this.errorResponse(
                        content.header.sender,
                        content.service,
                        content.invokeId,
                        5,
                        67
                        /* REJECT_UNRECOGNIZED_SERVICE */
                      );
                    }
                  }
                }
              }
              /**
               *
               * @param buffer
               * @param offset
               * @param length
               * @param header
               * @private
               */
              _handlePdu(buffer, offset, length, header) {
                let msg;
                trace2222("handlePdu Header: ", header);
                switch (header.apduType & PDU_TYPE_MASK222) {
                  case 16:
                    msg = decodeUnconfirmedServiceRequest222(buffer, offset);
                    msg.header = header;
                    msg.header.confirmedService = false;
                    this._processServiceRequest(
                      unconfirmedServiceMap222,
                      msg,
                      buffer,
                      offset + msg.len,
                      length - msg.len
                    );
                    break;
                  case 32:
                    msg = decodeSimpleAck222(buffer, offset);
                    offset += msg.len;
                    length -= msg.len;
                    this._invokeCallback(msg.invokeId, null, {
                      msg,
                      buffer,
                      offset: offset + msg.len,
                      length: length - msg.len
                    });
                    break;
                  case 48:
                    msg = decodeComplexAck222(buffer, offset);
                    msg.header = header;
                    if ((header.apduType & 8) === 0) {
                      this._invokeCallback(msg.invokeId, null, {
                        msg,
                        buffer,
                        offset: offset + msg.len,
                        length: length - msg.len
                      });
                    } else {
                      this._processSegment(
                        msg,
                        true,
                        buffer,
                        offset + msg.len,
                        length - msg.len
                      );
                    }
                    break;
                  case 64:
                    msg = decodeSegmentAck222(buffer, offset);
                    msg.header = header;
                    this._processSegment(
                      msg,
                      true,
                      buffer,
                      offset + msg.len,
                      length - msg.len
                    );
                    break;
                  case 80:
                    msg = decodeError222(buffer, offset);
                    this._processError(
                      msg.invokeId,
                      buffer,
                      offset + msg.len,
                      length - msg.len
                    );
                    break;
                  case 96:
                  case 112:
                    msg = decodeAbort222(buffer, offset);
                    this._processAbort(msg.invokeId, msg.reason);
                    break;
                  case 0:
                    msg = decodeConfirmedServiceRequest222(buffer, offset);
                    msg.header = header;
                    msg.header.confirmedService = true;
                    if ((header.apduType & 8) === 0) {
                      this._processServiceRequest(
                        confirmedServiceMap222,
                        msg,
                        buffer,
                        offset + msg.len,
                        length - msg.len
                      );
                    } else {
                      this._processSegment(
                        msg,
                        true,
                        buffer,
                        offset + msg.len,
                        length - msg.len
                      );
                    }
                    break;
                  default:
                    debug3222(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                    break;
                }
              }
              /**
               *
               * @param buffer
               * @param offset
               * @param msgLength
               * @param header
               * @returns {*}
               * @private
               */
              _handleNpdu(buffer, offset, msgLength, header) {
                if (msgLength <= 0) {
                  return trace2222("No NPDU data -> Drop package");
                }
                const result = decode31222(buffer, offset);
                if (!result) {
                  return trace2222("Received invalid NPDU header -> Drop package");
                }
                if (result.funct & 128) {
                  return trace2222("Received network layer message -> Drop package");
                }
                offset += result.len;
                msgLength -= result.len;
                if (msgLength <= 0) {
                  return trace2222("No APDU data -> Drop package");
                }
                header.apduType = getDecodedType222(buffer, offset);
                header.expectingReply = !!(result.funct & 4);
                this._handlePdu(buffer, offset, msgLength, header);
              }
              /**
               *
               * @param buffer
               * @param remoteAddress
               * @returns {*}
               * @private
               */
              _receiveData(buffer, remoteAddress) {
                if (buffer.length < BVLC_HEADER_LENGTH322) {
                  return trace2222("Received invalid data -> Drop package");
                }
                const result = decode32222(buffer, 0);
                if (!result) {
                  return trace2222("Received invalid BVLC header -> Drop package");
                }
                let header = {
                  // Which function the packet came in on, so later code can distinguish
                  // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
                  func: result.func,
                  sender: {
                    // Address of the host we are directly connected to. String, IP:port.
                    address: remoteAddress,
                    // If the host is a BBMD passing messages along to another node, this
                    // is the address of the distant BACnet node.  String, IP:port.
                    // Typically we won't have network connectivity to this address, but
                    // we have to include it in replies so the host we are connect to knows
                    // where to forward the messages.
                    forwardedFrom: null
                  }
                };
                switch (result.func) {
                  case 10:
                  case 11:
                    this._handleNpdu(
                      buffer,
                      result.len,
                      buffer.length - result.len,
                      header
                    );
                    break;
                  case 4:
                    header.sender.forwardedFrom = result.originatingIP;
                    this._handleNpdu(
                      buffer,
                      result.len,
                      buffer.length - result.len,
                      header
                    );
                    break;
                  case 5:
                    let decodeResult = register_foreign_device_exports222.decode(
                      buffer,
                      result.len,
                      buffer.length - result.len
                    );
                    if (!decodeResult) {
                      return trace2222("Received invalid registerForeignDevice message");
                    }
                    this.emit("registerForeignDevice", {
                      header,
                      payload: decodeResult
                    });
                    break;
                  case 9:
                    this._handleNpdu(
                      buffer,
                      result.len,
                      buffer.length - result.len,
                      header
                    );
                    break;
                  default:
                    debug3222(
                      "Received unknown BVLC function " + result.func + " -> Drop package"
                    );
                    break;
                }
              }
              /**
               * @event bacnet.error
               * @param {error} err - The error object thrown by the underlying transport layer.
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * client.on('error', (err) => {
               *   console.log('Error occurred: ', err);
               *   client.close();
               * });
               */
              _receiveError(err) {
                this.emit("error", err);
              }
              /**
               * The whoIs command discovers all BACNET devices in a network.
               * @function bacnet.whoIs
               * @param {string} receiver - IP address of the target device.
               * @param {object=} options
               * @param {number=} options.lowLimit - Minimal device instance number to search for.
               * @param {number=} options.highLimit - Maximal device instance number to search for.
               * @fires bacnet.iAm
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * client.whoIs();
               */
              whoIs(receiver, options) {
                if (!options) {
                  if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                    options = receiver;
                    receiver = void 0;
                  }
                }
                options = options || {};
                const settings = {
                  lowLimit: options.lowLimit,
                  highLimit: options.highLimit
                };
                const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
                encode31222(
                  buffer,
                  0,
                  //@ts-ignore
                  receiver,
                  null,
                  DEFAULT_HOP_COUNT2222,
                  0,
                  0
                );
                encodeUnconfirmedServiceRequest222(
                  buffer,
                  16,
                  8
                  /* WHO_IS */
                );
                who_is_exports222.encode(buffer, settings.lowLimit, settings.highLimit);
                this.sendBvlc(receiver, buffer);
              }
              /**
               * The timeSync command sets the time of a target device.
               * @function bacnet.timeSync
               * @param {string} receiver - IP address of the target device.
               * @param {date} dateTime - The date and time to set on the target device.
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * client.timeSync('192.168.1.43', new Date());
               */
              timeSync(receiver, dateTime) {
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(buffer, 0, receiver);
                encodeUnconfirmedServiceRequest222(
                  buffer,
                  16,
                  6
                  /* TIME_SYNCHRONIZATION */
                );
                time_sync_exports222.encode(buffer, dateTime);
                this.sendBvlc(receiver, buffer);
              }
              /**
               * The timeSyncUTC command sets the UTC time of a target device.
               * @function bacnet.timeSyncUTC
               * @param {string} receiver - IP address of the target device.
               * @param {date} dateTime - The date and time to set on the target device.
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * client.timeSyncUTC('192.168.1.43', new Date());
               */
              timeSyncUTC(receiver, dateTime) {
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(buffer, 0, receiver);
                encodeUnconfirmedServiceRequest222(
                  buffer,
                  16,
                  9
                  /* UTC_TIME_SYNCHRONIZATION */
                );
                time_sync_exports222.encode(buffer, dateTime);
                this.sendBvlc(receiver, buffer);
              }
              /**
               * The readProperty command reads a single property of an object from a device.
               * @function bacnet.readProperty
               * @param {string} receiver - IP address of the target device.
               * @param {object} objectId - The BACNET object ID to read.
               * @param {number} objectId.type - The BACNET object type to read.
               * @param {number} objectId.instance - The BACNET object instance to read.
               * @param {number} propertyId - The BACNET property id in the specified object to read.
               * @param {object=} options
               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
               * @param {number=} options.arrayIndex - The array index of the property to be read.
               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
               *   console.log('value: ', value);
               * });
               */
              readProperty(receiver, objectId, propertyId, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId(),
                  arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL222
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  //@ts-ignore
                  receiver,
                  null,
                  DEFAULT_HOP_COUNT2222,
                  0,
                  0
                );
                const type = 0 | //@ts-ignore
                (settings.maxSegments !== 0 ? 2 : 0);
                encodeConfirmedServiceRequest222(
                  buffer,
                  type,
                  12,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                read_property_exports222.encode(
                  buffer,
                  objectId.type,
                  objectId.instance,
                  propertyId,
                  settings.arrayIndex
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  const result = read_property_exports222.decodeAcknowledge(
                    data.buffer,
                    data.offset,
                    data.length
                  );
                  if (!result) {
                    return void next(new Error("INVALID_DECODING"));
                  }
                  next(null, result);
                });
              }
              /**
               * The writeProperty command writes a single property of an object to a device.
               * @function bacnet.writeProperty
               * @param {string} receiver - IP address of the target device.
               * @param {object} objectId - The BACNET object ID to write.
               * @param {number} objectId.type - The BACNET object type to write.
               * @param {number} objectId.instance - The BACNET object instance to write.
               * @param {number} propertyId - The BACNET property id in the specified object to write.
               * @param {object[]} values - A list of values to be written to the specified property.
               * @param {ApplicationTag} values.type - The data-type of the value to be written.
               * @param {number} values.value - The actual value to be written.
               * @param {object=} options
               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
               * @param {number=} options.arrayIndex - The array index of the property to be read.
               * @param {number=} options.priority - The priority of the value to be written.
               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
               *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
               * ], (err, value) => {
               *   console.log('value: ', value);
               * });
               */
              writeProperty(receiver, objectId, propertyId, values, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId(),
                  arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL222,
                  priority: options.priority || ASN1_NO_PRIORITY222
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  //@ts-ignore Todo somehow types do not match at all
                  receiver,
                  null,
                  DEFAULT_HOP_COUNT2222,
                  0,
                  0
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  15,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                write_property_exports222.encode(
                  buffer,
                  objectId.type,
                  objectId.instance,
                  propertyId,
                  settings.arrayIndex,
                  settings.priority,
                  values
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  next(err);
                });
              }
              /**
               * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
               * @function bacnet.readPropertyMultiple
               * @param {string} receiver - IP address of the target device.
               * @param {object[]} propertiesArray - List of object and property specifications to be read.
               * @param {object} propertiesArray.objectId - Specifies which object to read.
               * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
               * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
               * @param {object[]} propertiesArray.properties - List of properties to be read.
               * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
               * @param {object=} options
               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * const requestArray = [
               *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
               * ];
               * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
               *   console.log('value: ', value);
               * });
               */
              readPropertyMultiple(receiver, propertiesArray, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
                const buffer = this._getBuffer(!!isForwarded);
                encode31222(
                  buffer,
                  0 | 4,
                  //@ts-ignore Todo somehow types do not match at all
                  receiver,
                  null,
                  DEFAULT_HOP_COUNT2222,
                  0,
                  0
                );
                const type = 0 | //@ts-ignore
                (settings.maxSegments !== 0 ? 2 : 0);
                encodeConfirmedServiceRequest222(
                  buffer,
                  type,
                  14,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                read_property_multiple_exports222.encode(buffer, propertiesArray);
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return next(err);
                  }
                  const result = read_property_multiple_exports222.decodeAcknowledge(
                    data.buffer,
                    data.offset,
                    data.length
                  );
                  if (!result) {
                    return next(new Error("INVALID_DECODING"));
                  }
                  next(null, result);
                });
              }
              /**
               * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
               * @function bacnet.writePropertyMultiple
               * @param {string} receiver - IP address of the target device.
               * @param {object[]} values - List of object and property specifications to be written.
               * @param {object} values.objectId - Specifies which object to read.
               * @param {number} values.objectId.type - The BACNET object type to read.
               * @param {number} values.objectId.instance - The BACNET object instance to read.
               * @param {object[]} values.values - List of properties to be written.
               * @param {object} values.values.property - Property specifications to be written.
               * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
               * @param {number} values.values.property.index - The array index of the property to be written.
               * @param {object[]} values.values.value - A list of values to be written to the specified property.
               * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
               * @param {object} values.values.value.value - The actual value to be written.
               * @param {number} values.values.priority - The priority to be used for writing to the property.
               * @param {object=} options
               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * const values = [
               *   {objectId: {type: 8, instance: 44301}, values: [
               *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
               *   ]}
               * ];
               * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
               *   console.log('value: ', value);
               * });
               */
              writePropertyMultiple(receiver, values, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  //@ts-ignore
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  16,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId
                );
                write_property_multiple_exports222.encodeObject(buffer, values);
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  next(err);
                });
              }
              /**
               * The confirmedCOVNotification command is used to push notifications to other
               * systems that have registered with us via a subscribeCOV message.
               * @function bacnet.confirmedCOVNotification
               * @param {string} receiver - IP address of the target device.
               * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
               * @param {number} monitoredObject.type - Object type.
               * @param {number} monitoredObject.instance - Object instance.
               * @param {number} subscribeId - Subscriber ID from subscribeCOV,
               * @param {number} initiatingDeviceId - Our BACnet device ID.
               * @param {number} lifetime - Number of seconds left until the subscription expires.
               * @param {array} values - values for the monitored object.  See example.
               * @param {object=} options
               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * const settings = {deviceId: 123}; // our BACnet device
               *
               * // Items saved from subscribeCOV message
               * const monitoredObject = {type: 1, instance: 1};
               * const subscriberProcessId = 123;
               *
               * client.confirmedCOVNotification(
               *   '192.168.1.43',
               *   monitoredObject,
               *   subscriberProcessId,
               *   settings.deviceId,
               *   30, // should be lifetime of subscription really
               *   [
               *     {
               *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
               *       value: [
               *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
               *       ],
               *     },
               *   ],
               *   (err) => {
               *     console.log('error: ', err);
               *   }
               * );
               */
              confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer();
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  1,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                cov_notify_exports222.encode(
                  buffer,
                  subscribeId,
                  initiatingDeviceId,
                  monitoredObject,
                  lifetime,
                  values
                );
                encode32222(
                  buffer.buffer,
                  10,
                  buffer.offset
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  next();
                });
              }
              /**
               * The deviceCommunicationControl command enables or disables network communication of the target device.
               * @function bacnet.deviceCommunicationControl
               * @param {string} receiver - IP address of the target device.
               * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
               * @param {EnableDisable} enableDisable - The network communication state to set.
               * @param {object=} options
               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
               * @param {string=} options.password - The optional password used to set the network communication state.
               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
               *   console.log('error: ', err);
               * });
               */
              deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId(),
                  password: options.password
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  17,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                device_communication_control_exports222.encode(
                  buffer,
                  timeDuration,
                  enableDisable,
                  settings.password
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  next(err);
                });
              }
              /**
               * The reinitializeDevice command initiates a restart of the target device.
               * @function bacnet.reinitializeDevice
               * @param {string} receiver - IP address of the target device.
               * @param {ReinitializedState} state - The type of restart to be initiated.
               * @param {object=} options
               * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
               * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
               * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
               * @param {string=} options.password - The optional password used to restart the device.
               * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
               *   console.log('value: ', value);
               * });
               */
              reinitializeDevice(receiver, state, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId(),
                  password: options.password
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  20,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                reinitialize_device_exports222.encode(buffer, state, settings.password);
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  next(err);
                });
              }
              /**
               *
               * @param receiver
               * @param objectId
               * @param position
               * @param fileBuffer
               * @param options
               * @param next
               */
              writeFile(receiver, objectId, position, fileBuffer, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  7,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                atomic_write_file_exports222.encode(
                  buffer,
                  false,
                  objectId,
                  position,
                  fileBuffer
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  const result = atomic_write_file_exports222.decodeAcknowledge(
                    data.buffer,
                    data.offset,
                    data.length
                  );
                  if (!result) {
                    return void next(new Error("INVALID_DECODING"));
                  }
                  next(null, result);
                });
              }
              /**
               *
               * @param receiver
               * @param objectId
               * @param position
               * @param count
               * @param options
               * @param next
               */
              readFile(receiver, objectId, position, count, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  6,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                atomic_read_file_exports222.encode(buffer, true, objectId, position, count);
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  const result = atomic_read_file_exports222.decodeAcknowledge(
                    data.buffer,
                    data.offset,
                    data.length
                  );
                  if (!result) {
                    return void next(new Error("INVALID_DECODING"));
                  }
                  next(null, result);
                });
              }
              /**
               *
               * @param receiver
               * @param objectId
               * @param idxBegin
               * @param quantity
               * @param options
               * @param next
               */
              readRange(receiver, objectId, idxBegin, quantity, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  26,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                read_range_exports222.encode(
                  buffer,
                  objectId,
                  131,
                  ASN1_ARRAY_ALL222,
                  0,
                  idxBegin,
                  /* @__PURE__ */ new Date(),
                  quantity
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  const result = read_range_exports222.decodeAcknowledge(
                    data.buffer,
                    data.offset,
                    data.length
                  );
                  if (!result) {
                    return void next(new Error("INVALID_DECODING"));
                  }
                  next(null, result);
                });
              }
              /**
               *
               * @param receiver
               * @param objectId
               * @param subscribeId
               * @param cancel
               * @param issueConfirmedNotifications
               * @param lifetime
               * @param options
               * @param next
               */
              subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
                const next = nextFunc || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  // @ts-ignore TODO types not matching with documentation and code
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  5,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                subscribe_cov_exports222.encode(
                  buffer,
                  subscribeId,
                  objectId,
                  cancel,
                  issueConfirmedNotifications,
                  lifetime
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  next();
                });
              }
              /**
               *
               * @param receiver
               * @param objectId
               * @param monitoredProperty
               * @param subscribeId
               * @param cancel
               * @param issueConfirmedNotifications
               * @param options
               * @param next
               */
              subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  28,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                subscribe_property_exports222.encode(
                  buffer,
                  subscribeId,
                  objectId,
                  cancel,
                  issueConfirmedNotifications,
                  0,
                  monitoredProperty,
                  false,
                  15
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  next();
                });
              }
              /**
               * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
               * @function bacnet.unconfirmedCOVNotification
               * @param {string} receiver - IP address of the target device.
               * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
               * @param {number} initiatingDeviceId - The id of this device.
               * @param {object} monitoredObjectId - Specifies about which object the notification is.
               * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
               * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
               * @param {number} timeRemaining - How long the subscription is still active in seconds.
               * @param {object[]} values - List of properties with updated values.
               * @param {object} values.property - Property specifications.
               * @param {number} values.property.id - The updated BACNET property id.
               * @param {number} values.property.index - The array index of the updated property.
               * @param {object[]} values.value - A list of updated values.
               * @param {ApplicationTag} values.value.type - The data-type of the updated value.
               * @param {object} values.value.value - The actual updated value.
               * @param {number} values.priority - The priority of the updated property.
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * client.unconfirmedCOVNotification(
               *            '127.0.0.1',
               *            3,
               *            433,
               *            {type: 2, instance: 122},
               *            120,
               *            [
               *              {
               *                property: {id: 85},
               *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
               *              },
               *              {
               *                property: {id: 111},
               *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
               *              }
               *            ]);
               */
              unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
                const buffer = this._getBuffer();
                encode31222(buffer, 0, receiver);
                encodeUnconfirmedServiceRequest222(
                  buffer,
                  16,
                  2
                  /* UNCONFIRMED_COV_NOTIFICATION */
                );
                cov_notify_exports222.encode(
                  buffer,
                  subscriberProcessId,
                  initiatingDeviceId,
                  monitoredObjectId,
                  timeRemaining,
                  values
                );
                encode32222(
                  buffer.buffer,
                  10,
                  buffer.offset
                );
                this._transport.send(buffer.buffer, buffer.offset, receiver);
              }
              /**
               *
               * @param receiver
               * @param objectId
               * @param values
               * @param options
               * @param next
               */
              createObject(receiver, objectId, values, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  10,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                create_object_exports222.encode(buffer, objectId, values);
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  next();
                });
              }
              /**
               *
               * @param receiver
               * @param objectId
               * @param options
               * @param next
               */
              deleteObject(receiver, objectId, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  11,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                delete_object_exports222.encode(buffer, objectId);
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  next();
                });
              }
              /**
               *
               * @param receiver
               * @param objectId
               * @param reference
               * @param values
               * @param options
               * @param next
               */
              removeListElement(receiver, objectId, reference, values, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  9,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                add_list_element_exports222.encode(
                  buffer,
                  objectId,
                  reference.id,
                  reference.index,
                  values
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  next();
                });
              }
              /**
               *
               * @param receiver
               * @param objectId
               * @param reference
               * @param values
               * @param options
               * @param next
               */
              addListElement(receiver, objectId, reference, values, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  8,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                add_list_element_exports222.encode(
                  buffer,
                  objectId,
                  reference.id,
                  reference.index,
                  values
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  next();
                });
              }
              /**
               *
               * @param receiver
               * @param options
               * @param next
               */
              getAlarmSummary(receiver, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  3,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  const result = alarm_summary_exports222.decode(
                    data.buffer,
                    data.offset,
                    data.length
                  );
                  if (!result) {
                    return void next(new Error("INVALID_DECODING"));
                  }
                  next(null, result);
                });
              }
              /**
               *
               * @param receiver
               * @param objectId
               * @param options
               * @param next
               */
              getEventInformation(receiver, objectId, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  29,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                encodeContextObjectId222(buffer, 0, objectId.type, objectId.instance);
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  const result = event_information_exports222.decode(
                    data.buffer,
                    data.offset,
                    data.length
                  );
                  if (!result) {
                    return void next(new Error("INVALID_DECODING"));
                  }
                  next(null, result);
                });
              }
              /**
               *
               * @param receiver
               * @param objectId
               * @param eventState
               * @param ackText
               * @param evTimeStamp
               * @param ackTimeStamp
               * @param options
               * @param next
               */
              acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  0,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                alarm_acknowledge_exports222.encode(
                  buffer,
                  57,
                  objectId,
                  eventState,
                  ackText,
                  evTimeStamp,
                  ackTimeStamp
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  next();
                });
              }
              /**
               *
               * @param receiver
               * @param vendorId
               * @param serviceNumber
               * @param data
               * @param options
               * @param next
               */
              confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  18,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                private_transfer_exports222.encode(buffer, vendorId, serviceNumber, data);
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data2) => {
                  if (err) {
                    return void next(err);
                  }
                  next();
                });
              }
              /**
               *
               * @param receiver
               * @param vendorId
               * @param serviceNumber
               * @param data
               */
              unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(buffer, 0, receiver);
                encodeUnconfirmedServiceRequest222(
                  buffer,
                  16,
                  4
                  /* UNCONFIRMED_PRIVATE_TRANSFER */
                );
                private_transfer_exports222.encode(buffer, vendorId, serviceNumber, data);
                this.sendBvlc(receiver, buffer);
              }
              /**
               *
               * @param receiver
               * @param acknowledgmentFilter
               * @param options
               * @param next
               */
              getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  4,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                get_enrollment_summary_exports222.encode(
                  buffer,
                  acknowledgmentFilter,
                  options.enrollmentFilter,
                  options.eventStateFilter,
                  options.eventTypeFilter,
                  options.priorityFilter,
                  options.notificationClassFilter
                );
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  const result = get_enrollment_summary_exports222.decodeAcknowledge(
                    data.buffer,
                    data.offset,
                    data.length
                  );
                  if (!result) {
                    return void next(new Error("INVALID_DECODING"));
                  }
                  next(null, result);
                });
              }
              /**
               *
               * @param receiver
               * @param eventNotification
               */
              unconfirmedEventNotification(receiver, eventNotification) {
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(buffer, 0, receiver);
                encodeUnconfirmedServiceRequest222(
                  buffer,
                  16,
                  3
                  /* UNCONFIRMED_EVENT_NOTIFICATION */
                );
                event_notify_data_exports222.encode(buffer, eventNotification);
                this.sendBvlc(receiver, buffer);
              }
              /**
               *
               * @param receiver
               * @param eventNotification
               * @param options
               * @param next
               */
              confirmedEventNotification(receiver, eventNotification, options, next) {
                next = next || options;
                const settings = {
                  maxSegments: options.maxSegments || 112,
                  maxApdu: options.maxApdu || 5,
                  invokeId: options.invokeId || this._getInvokeId()
                };
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(
                  buffer,
                  0 | 4,
                  receiver
                );
                encodeConfirmedServiceRequest222(
                  buffer,
                  0,
                  2,
                  settings.maxSegments,
                  settings.maxApdu,
                  settings.invokeId,
                  0,
                  0
                );
                event_notify_data_exports222.encode(buffer, eventNotification);
                this.sendBvlc(receiver, buffer);
                this._addCallback(settings.invokeId, (err, data) => {
                  if (err) {
                    return void next(err);
                  }
                  next();
                });
              }
              /**
               * The readPropertyResponse call sends a response with information about one of our properties.
               * @function bacnet.readPropertyResponse
               * @param {string} receiver - IP address of the target device.
               * @param {number} invokeId - ID of the original readProperty request.
               * @param {object} objectId - objectId from the original request,
               * @param {object} property - property being read, taken from the original request.
               * @param {object=} options varying behaviour for special circumstances
               * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
               */
              readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(buffer, 0, receiver);
                encodeComplexAck222(
                  buffer,
                  48,
                  12,
                  invokeId
                );
                read_property_exports222.encodeAcknowledge(
                  buffer,
                  objectId,
                  property.id,
                  property.index,
                  value
                );
                this.sendBvlc(receiver, buffer);
              }
              readPropertyMultipleResponse(receiver, invokeId, values) {
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(buffer, 0, receiver);
                encodeComplexAck222(
                  buffer,
                  48,
                  14,
                  invokeId
                );
                read_property_multiple_exports222.encodeAcknowledge(buffer, values);
                this.sendBvlc(receiver, buffer);
              }
              /**
               * The iAmResponse command is sent as a reply to a whoIs request.
               * @function bacnet.iAmResponse
               * @param {object} receiver - address to send packet to, null for local broadcast.
               * @param {number} deviceId - Our device ID.
               * @param {number} segmentation - an enum.Segmentation value.
               * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
               */
              iAmResponse(receiver, deviceId, segmentation, vendorId) {
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(buffer, 0, receiver);
                encodeUnconfirmedServiceRequest222(
                  buffer,
                  16,
                  0
                  /* I_AM */
                );
                i_am_exports222.encode(
                  buffer,
                  deviceId,
                  this._transport.getMaxPayload(),
                  segmentation,
                  vendorId
                );
                this.sendBvlc(receiver, buffer);
              }
              /**
               *
               * @param receiver
               * @param deviceId
               * @param objectId
               * @param objectName
               */
              iHaveResponse(receiver, deviceId, objectId, objectName) {
                const buffer = this._getBuffer(
                  !!(typeof receiver !== "string" && receiver.forwardedFrom)
                );
                encode31222(buffer, 0, receiver);
                encodeUnconfirmedServiceRequest222(
                  buffer,
                  16,
                  1
                  /* I_HAVE */
                );
                i_have_exports222.encode(buffer, deviceId, objectId, objectName);
                this.sendBvlc(receiver, buffer);
              }
              /**
               *
               * @param receiver
               * @param service
               * @param invokeId
               */
              simpleAckResponse(receiver, service, invokeId) {
                if (typeof receiver === "string")
                  return;
                const buffer = this._getBuffer(!!receiver.forwardedFrom);
                encode31222(buffer, 0, receiver);
                encodeSimpleAck222(
                  buffer,
                  32,
                  service,
                  invokeId
                );
                this.sendBvlc(receiver, buffer);
              }
              /**
               *
               * @param receiver
               * @param service
               * @param invokeId
               * @param errorClass
               * @param errorCode
               */
              errorResponse(receiver, service, invokeId, errorClass, errorCode) {
                trace2222(
                  `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                    service
                  )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
                );
                trace2222(
                  `error message ${error_exports222.buildMessage({
                    class: errorClass,
                    code: errorCode
                  })}`
                );
                const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
                if (typeof receiver === "string")
                  throw new Error("receiver must be object");
                const buffer = this._getBuffer(hasSource);
                encode31222(buffer, 0, receiver);
                encodeError222(buffer, 80, service, invokeId);
                error_exports222.encode(buffer, errorClass, errorCode);
                this.sendBvlc(receiver, buffer);
              }
              /**
               *
               * @param receiver
               * @param buffer
               */
              sendBvlc(receiver, buffer) {
                if (typeof receiver === "string") {
                  receiver = {
                    address: receiver
                  };
                }
                if (receiver && receiver.forwardedFrom) {
                  encode32222(
                    buffer.buffer,
                    4,
                    buffer.offset,
                    receiver.forwardedFrom
                  );
                } else if (receiver && receiver.address) {
                  encode32222(
                    buffer.buffer,
                    10,
                    buffer.offset
                  );
                } else {
                  encode32222(
                    buffer.buffer,
                    11,
                    buffer.offset
                  );
                }
                this._transport.send(
                  buffer.buffer,
                  buffer.offset,
                  receiver && receiver.address || null
                );
              }
              /**
               * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
               * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
               * @function bacnet.resultResponse
               * @param {string} receiver - IP address of the target device.
               * @param {number} resultCode - Single value from BvlcResultFormat enum.
               */
              resultResponse(receiver, resultCode) {
                const buffer = this._getBuffer();
                encodeResult222(buffer, resultCode);
                encode32222(
                  buffer.buffer,
                  0,
                  buffer.offset
                );
                this._transport.send(buffer.buffer, buffer.offset, receiver.address);
              }
              /**
               * Unloads the current bacnet instance and closes the underlying UDP socket.
               * @function bacnet.close
               * @example
               * const bacnet = require('node-bacnet');
               * const client = new bacnet();
               *
               * client.close();
               */
              close() {
                this._transport.close();
              }
              /**
               * Helper function to take an array of enums and produce a bitstring suitable
               * for inclusion as a property.
               *
               * @example
               * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
               *   {value: bacnet.createBitstring([
               *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
               *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
               *   ]),
               *   type: bacnet.enum.ApplicationTag.BIT_STRING},
               * ],
               */
              static createBitstring(items) {
                let offset = 0;
                let bytes = [];
                let bitsUsed = 0;
                while (items.length) {
                  let value = 0;
                  items = items.filter((i) => {
                    if (i >= offset + 8) {
                      return true;
                    }
                    value |= 1 << i - offset;
                    bitsUsed = Math.max(bitsUsed, i);
                    return false;
                  });
                  bytes.push(value);
                  offset += 8;
                }
                bitsUsed++;
                return {
                  value: bytes,
                  bitsUsed
                };
              }
            };
            var import_underscore222 = __toESM222(require("underscore"));
            var import_process222 = __toESM222(require("process"));
            var import__222 = __toESM222(require_dist222());
            var PropertyIdentifierToEnumMap222 = {};
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.OBJECT_TYPE] = import__222.enums.ObjectType;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__222.enums.Segmentation;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.EVENT_STATE] = import__222.enums.EventState;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.UNITS] = import__222.enums.EngineeringUnits;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.RELIABILITY] = import__222.enums.Reliability;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.NOTIFY_TYPE] = import__222.enums.NotifyType;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.POLARITY] = import__222.enums.Polarity;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__222.enums.ServicesSupported;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__222.enums.ObjectTypesSupported;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.STATUS_FLAGS] = import__222.enums.StatusFlags;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.LIMIT_ENABLE] = import__222.enums.LimitEnable;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.EVENT_ENABLE] = import__222.enums.EventTransitionBits;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__222.enums.EventTransitionBits;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__222.enums.DeviceStatus;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.SYSTEM_STATUS] = import__222.enums.DeviceStatus;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.ACK_REQUIRED] = import__222.enums.EventTransitionBits;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.LOGGING_TYPE] = import__222.enums.LoggingType;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__222.enums.FileAccessMethod;
            PropertyIdentifierToEnumMap222[import__222.enums.PropertyIdentifier.NODE_TYPE] = import__222.enums.NodeType;
            var ObjectTypeSpecificPropertyIdentifierToEnumMap222 = {};
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BINARY_INPUT] = {};
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BINARY_INPUT][import__222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222.enums.BinaryPV;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BINARY_INPUT][import__222.enums.PropertyIdentifier.MODE] = import__222.enums.BinaryPV;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.ANALOG_INPUT] = {};
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.ANALOG_INPUT][import__222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222.enums.BinaryPV;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.ANALOG_OUTPUT] = {};
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.ANALOG_OUTPUT][import__222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222.enums.BinaryPV;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BINARY_OUTPUT] = {};
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BINARY_OUTPUT][import__222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222.enums.BinaryPV;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BINARY_OUTPUT][import__222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__222.enums.BinaryPV;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BINARY_VALUE] = {};
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BINARY_VALUE][import__222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222.enums.BinaryPV;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BINARY_VALUE][import__222.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__222.enums.BinaryPV;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222.enums.BinaryLightingPV;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BITSTRING_VALUE] = {};
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.BINARY_VALUE][import__222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222.enums.BinaryPV;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.LIFE_SAFETY_POINT] = {};
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.LIFE_SAFETY_POINT][import__222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222.enums.LifeSafetyState;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.LIFE_SAFETY_POINT][import__222.enums.PropertyIdentifier.TRACKING_VALUE] = import__222.enums.LifeSafetyState;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.LIFE_SAFETY_POINT][import__222.enums.PropertyIdentifier.MODE] = import__222.enums.LifeSafetyMode;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.LIFE_SAFETY_POINT][import__222.enums.PropertyIdentifier.ACCEPTED_MODES] = import__222.enums.LifeSafetyMode;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.LIFE_SAFETY_POINT][import__222.enums.PropertyIdentifier.SILENCED] = import__222.enums.LifeSafetyState;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.LIFE_SAFETY_POINT][import__222.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__222.enums.LifeSafetyOperation;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.LIFE_SAFETY_ZONE][import__222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222.enums.LifeSafetyState;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.LIFE_SAFETY_ZONE][import__222.enums.PropertyIdentifier.MODE] = import__222.enums.LifeSafetyMode;
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.LOAD_CONTROL] = {};
            ObjectTypeSpecificPropertyIdentifierToEnumMap222[import__222.enums.ObjectType.LOAD_CONTROL][import__222.enums.PropertyIdentifier.PRESENT_VALUE] = import__222.enums.ShedState;
            var propSubSet222 = import_process222.default.argv.includes("--all") ? Object.values(import__222.enums.PropertyIdentifier) : [
              /* normally supported from all devices */
              import__222.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
              import__222.enums.PropertyIdentifier.OBJECT_NAME,
              import__222.enums.PropertyIdentifier.OBJECT_TYPE,
              import__222.enums.PropertyIdentifier.PRESENT_VALUE,
              import__222.enums.PropertyIdentifier.STATUS_FLAGS,
              import__222.enums.PropertyIdentifier.EVENT_STATE,
              import__222.enums.PropertyIdentifier.RELIABILITY,
              import__222.enums.PropertyIdentifier.OUT_OF_SERVICE,
              import__222.enums.PropertyIdentifier.UNITS,
              /* other properties */
              import__222.enums.PropertyIdentifier.DESCRIPTION,
              import__222.enums.PropertyIdentifier.SYSTEM_STATUS,
              import__222.enums.PropertyIdentifier.VENDOR_NAME,
              import__222.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
              import__222.enums.PropertyIdentifier.MODEL_NAME,
              import__222.enums.PropertyIdentifier.FIRMWARE_REVISION,
              import__222.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
              import__222.enums.PropertyIdentifier.LOCATION,
              import__222.enums.PropertyIdentifier.LOCAL_DATE,
              import__222.enums.PropertyIdentifier.LOCAL_TIME,
              import__222.enums.PropertyIdentifier.UTC_OFFSET,
              import__222.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
              import__222.enums.PropertyIdentifier.PROTOCOL_VERSION,
              import__222.enums.PropertyIdentifier.PROTOCOL_REVISION,
              import__222.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
              import__222.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
              import__222.enums.PropertyIdentifier.OBJECT_LIST,
              import__222.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
              import__222.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
              import__222.enums.PropertyIdentifier.APDU_TIMEOUT,
              import__222.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
              import__222.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
              import__222.enums.PropertyIdentifier.DATABASE_REVISION,
              import__222.enums.PropertyIdentifier.MAX_INFO_FRAMES,
              import__222.enums.PropertyIdentifier.MAX_MASTER,
              import__222.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
              import__222.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
            ];
            var debug4222 = import_process222.default.argv.includes("--debug");
            function getAllPropertiesManually222(address, objectId, callback, propList, result) {
              if (!propList) {
                propList = propSubSet222.map((x) => x);
              }
              if (!result) {
                result = [];
              }
              if (!propList.length) {
                return callback({
                  values: [
                    {
                      objectId,
                      values: result
                    }
                  ]
                });
              }
              const prop = propList.shift();
              bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
                if (!err) {
                  if (debug4222) {
                    console.log("Handle value " + prop + ": ", JSON.stringify(value));
                  }
                  const objRes = value.property;
                  objRes.value = value.values;
                  result.push(objRes);
                } else {
                }
                getAllPropertiesManually222(address, objectId, callback, propList, result);
              });
            }
            function readBit222(buffer, i, bit) {
              return (buffer[i] >> bit) % 2;
            }
            function handleBitString222(buffer, bitsUsed, usedEnum) {
              const res = [];
              for (let i = 0; i < bitsUsed; i++) {
                const bufferIndex = Math.floor(i / 8);
                if (readBit222(buffer, bufferIndex, i % 8)) {
                  res.push(import__222.enums.getEnumName(usedEnum, i));
                }
              }
              return res;
            }
            function parseValue222(address, objId2, parentType, value, supportsMultiple = false, callback) {
              let resValue = null;
              if (value && value.type && value.value !== null && value.value !== void 0) {
                switch (value.type) {
                  case import__222.enums.ApplicationTag.NULL:
                    resValue = null;
                    break;
                  case import__222.enums.ApplicationTag.BOOLEAN:
                    resValue = !!value.value;
                    break;
                  case import__222.enums.ApplicationTag.UNSIGNED_INTEGER:
                  case import__222.enums.ApplicationTag.SIGNED_INTEGER:
                  case import__222.enums.ApplicationTag.REAL:
                  case import__222.enums.ApplicationTag.DOUBLE:
                  case import__222.enums.ApplicationTag.CHARACTER_STRING:
                    resValue = value.value;
                    break;
                  case import__222.enums.ApplicationTag.DATE:
                  case import__222.enums.ApplicationTag.TIME:
                  case import__222.enums.ApplicationTag.TIMESTAMP:
                    resValue = value.value;
                    break;
                  case import__222.enums.ApplicationTag.BIT_STRING:
                    if (ObjectTypeSpecificPropertyIdentifierToEnumMap222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap222[parentType][objId2]) {
                      resValue = handleBitString222(
                        value.value.value,
                        value.value.bitsUsed,
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222[parentType][objId2]
                      );
                    } else if (PropertyIdentifierToEnumMap222[objId2]) {
                      resValue = handleBitString222(
                        value.value.value,
                        value.value.bitsUsed,
                        PropertyIdentifierToEnumMap222[objId2]
                      );
                    } else {
                      if (parentType !== import__222.enums.ObjectType.BITSTRING_VALUE) {
                        console.log(
                          "Unknown value for BIT_STRING type for objId " + import__222.enums.getEnumName(import__222.enums.PropertyIdentifier, objId2) + " and parent type " + import__222.enums.getEnumName(import__222.enums.ObjectType, parentType)
                        );
                      }
                      resValue = value.value;
                    }
                    break;
                  case import__222.enums.ApplicationTag.ENUMERATED:
                    if (ObjectTypeSpecificPropertyIdentifierToEnumMap222[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap222[parentType][objId2]) {
                      resValue = import__222.enums.getEnumName(
                        ObjectTypeSpecificPropertyIdentifierToEnumMap222[parentType][objId2],
                        value.value
                      );
                    } else if (PropertyIdentifierToEnumMap222[objId2]) {
                      resValue = import__222.enums.getEnumName(
                        PropertyIdentifierToEnumMap222[objId2],
                        value.value
                      );
                    } else {
                      console.log(
                        "Unknown value for ENUMERATED type for objId " + import__222.enums.getEnumName(import__222.enums.PropertyIdentifier, objId2) + " and parent type " + import__222.enums.getEnumName(import__222.enums.ObjectType, parentType)
                      );
                      resValue = value.value;
                    }
                    break;
                  case import__222.enums.ApplicationTag.OBJECTIDENTIFIER:
                    if (objId2 === import__222.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__222.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__222.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                      resValue = value.value;
                    } else if (supportsMultiple) {
                      const requestArray = [
                        {
                          objectId: value.value,
                          // meaning read all properties
                          properties: [{ id: 8 }]
                        }
                      ];
                      bacnetClient.readPropertyMultiple(
                        address,
                        requestArray,
                        (err, resValue2) => {
                          parseDeviceObject222(address, resValue2, value.value, true, callback);
                        }
                      );
                      return;
                    } else {
                      getAllPropertiesManually222(address, value.value, (result) => {
                        parseDeviceObject222(address, result, value.value, false, callback);
                      });
                      return;
                    }
                    break;
                  case import__222.enums.ApplicationTag.OCTET_STRING:
                    resValue = value.value;
                    break;
                  case import__222.enums.ApplicationTag.ERROR:
                    resValue = {
                      errorClass: import__222.enums.getEnumName(
                        import__222.enums.ErrorClass,
                        value.value.errorClass
                      ),
                      errorCode: import__222.enums.getEnumName(import__222.enums.ErrorCode, value.value.errorCode)
                    };
                    break;
                  case import__222.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
                  case import__222.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
                  case import__222.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
                  case import__222.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                    resValue = value.value;
                    break;
                  case import__222.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                    parseValue222(
                      address,
                      parentType,
                      value.value,
                      supportsMultiple,
                      callback
                    );
                    return;
                  case import__222.enums.ApplicationTag.READ_ACCESS_RESULT:
                    resValue = value.value;
                    break;
                  default:
                    console.log(
                      "unknown type " + value.type + ": " + JSON.stringify(value)
                    );
                    resValue = value;
                }
              }
              setImmediate(() => callback(resValue));
            }
            function parseDeviceObject222(address, obj, parent, supportsMultiple, callback) {
              if (debug4222) {
                console.log(
                  "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
                );
              }
              if (!obj) {
                console.log("object not valid on parse device object");
                return;
              }
              if (!obj.values || !Array.isArray(obj.values)) {
                console.log("No device or invalid response");
                callback({ ERROR: "No device or invalid response" });
                return;
              }
              let cbCount = 0;
              let objDef = {};
              const finalize = () => {
                Object.keys(objDef).forEach((devId) => {
                  Object.keys(objDef[devId]).forEach((objId2) => {
                    if (objDef[devId][objId2].length === 1) {
                      objDef[devId][objId2] = objDef[devId][objId2][0];
                    }
                  });
                });
                if (obj.values.length === 1) {
                  objDef = objDef[obj.values[0].objectId.instance];
                }
                if (debug4222) {
                  console.log(
                    "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
                  );
                }
                callback(objDef);
              };
              obj.values.forEach((devBaseObj) => {
                if (!devBaseObj.objectId) {
                  console.log("No device Id found in object data");
                  return;
                }
                if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
                  console.log("No device type or instance found in object data");
                  return;
                }
                if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
                  console.log("No device values response");
                  return;
                }
                const deviceId = devBaseObj.objectId.instance;
                objDef[deviceId] = {};
                devBaseObj.values.forEach((devObj) => {
                  let objId2 = import__222.enums.getEnumName(import__222.enums.PropertyIdentifier, devObj.id);
                  if (devObj.index !== 4294967295) {
                    objId2 += "-" + devObj.index;
                  }
                  if (debug4222) {
                    console.log("Handle Object property:", deviceId, objId2, devObj.value);
                  }
                  devObj.value.forEach((val) => {
                    if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                      objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                      objDef[deviceId][objId2].push(val.value);
                      return;
                    }
                    cbCount++;
                    parseValue222(
                      address,
                      parent.type,
                      val,
                      supportsMultiple,
                      (parsedValue) => {
                        if (debug4222) {
                          console.log(
                            "RETURN parsedValue",
                            deviceId,
                            objId2,
                            devObj.value,
                            parsedValue
                          );
                        }
                        objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                        objDef[deviceId][objId2].push(parsedValue);
                        if (!--cbCount) {
                          finalize();
                        }
                      }
                    );
                  });
                });
              });
              if (cbCount === 0) {
                finalize();
              }
            }
            var limitToDevice222 = null;
            if (import_process222.default.argv.length === 3) {
              limitToDevice222 = parseInt(import_process222.default.argv[2]);
              if (isNaN(limitToDevice222)) {
                limitToDevice222 = null;
              }
            }
            var node_bacnet_default222 = Client222;
          }
        });
        var node_bacnet_exports22 = {};
        __export22(node_bacnet_exports22, {
          _: () => import_underscore22.default,
          bacnetErrorToString: () => bacnetErrorToString22,
          default: () => node_bacnet_default22,
          enums: () => enum_exports22,
          parseValue: () => parseValue22
        });
        module22.exports = __toCommonJS22(node_bacnet_exports22);
        var enum_exports22 = {};
        __export22(enum_exports22, {
          ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL22,
          ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS22,
          ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG22,
          ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES22,
          ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE22,
          ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT22,
          ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE22,
          ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY22,
          ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID22,
          ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY22,
          ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY22,
          AbortReason: () => AbortReason22,
          AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable22,
          AccessCredentialDisable: () => AccessCredentialDisable22,
          AccessCredentialDisableReason: () => AccessCredentialDisableReason22,
          AccessEvent: () => AccessEvent22,
          AccessPassbackMode: () => AccessPassbackMode22,
          AccessUserType: () => AccessUserType22,
          AccessZoneOccupancyState: () => AccessZoneOccupancyState22,
          Action: () => Action22,
          ApplicationTag: () => ApplicationTag22,
          ApplicationTagName: () => ApplicationTagName22,
          AuthenticationFactorType: () => AuthenticationFactorType22,
          AuthenticationStatus: () => AuthenticationStatus22,
          AuthorizationExemption: () => AuthorizationExemption22,
          AuthorizationMode: () => AuthorizationMode22,
          BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH32,
          BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP22,
          BackupState: () => BackupState22,
          BinaryLightingPV: () => BinaryLightingPV22,
          BinaryPV: () => BinaryPV22,
          BvlcResultFormat: () => BvlcResultFormat22,
          BvlcResultPurpose: () => BvlcResultPurpose22,
          CharacterStringEncoding: () => CharacterStringEncoding22,
          ConfirmedServiceChoice: () => ConfirmedServiceChoice22,
          CovType: () => CovType22,
          DaysOfWeek: () => DaysOfWeek22,
          DeviceStatus: () => DeviceStatus22,
          DoorAlarmState: () => DoorAlarmState22,
          DoorSecuredStatus: () => DoorSecuredStatus22,
          DoorStatus: () => DoorStatus22,
          DoorValue: () => DoorValue22,
          EnableDisable: () => EnableDisable22,
          EngineeringUnits: () => EngineeringUnits22,
          ErrorClass: () => ErrorClass22,
          ErrorClassName: () => ErrorClassName22,
          ErrorCode: () => ErrorCode22,
          ErrorCodeName: () => ErrorCodeName22,
          EscalatorFault: () => EscalatorFault22,
          EscalatorMode: () => EscalatorMode22,
          EscalatorOperationDirection: () => EscalatorOperationDirection22,
          EventState: () => EventState22,
          EventTransitionBits: () => EventTransitionBits22,
          EventType: () => EventType22,
          FaultType: () => FaultType22,
          FileAccessMethod: () => FileAccessMethod22,
          IPMode: () => IPMode22,
          LifeSafetyMode: () => LifeSafetyMode22,
          LifeSafetyOperation: () => LifeSafetyOperation22,
          LifeSafetyState: () => LifeSafetyState22,
          LiftCarDirection: () => LiftCarDirection22,
          LiftCarDoorCommand: () => LiftCarDoorCommand22,
          LiftCarDriveStatus: () => LiftCarDriveStatus22,
          LiftCarMode: () => LiftCarMode22,
          LiftFault: () => LiftFault22,
          LiftGroupMode: () => LiftGroupMode22,
          LightingInProgress: () => LightingInProgress22,
          LightingOperation: () => LightingOperation22,
          LightingTransition: () => LightingTransition22,
          LimitEnable: () => LimitEnable22,
          LockStatus: () => LockStatus22,
          LogStatus: () => LogStatus22,
          LoggingType: () => LoggingType22,
          Maintenance: () => Maintenance22,
          MaxApduLengthAccepted: () => MaxApduLengthAccepted22,
          MaxSegmentsAccepted: () => MaxSegmentsAccepted22,
          NetworkLayerMessageType: () => NetworkLayerMessageType22,
          NetworkNumberQuality: () => NetworkNumberQuality22,
          NetworkPortCommand: () => NetworkPortCommand22,
          NetworkType: () => NetworkType22,
          NodeType: () => NodeType22,
          NotifyType: () => NotifyType22,
          NpduControlBit: () => NpduControlBit22,
          NpduControlPriority: () => NpduControlPriority22,
          ObjectType: () => ObjectType22,
          ObjectTypesSupported: () => ObjectTypesSupported22,
          PDU_TYPE_MASK: () => PDU_TYPE_MASK22,
          PduConReqBit: () => PduConReqBit22,
          PduSegAckBit: () => PduSegAckBit22,
          PduType: () => PduType22,
          Polarity: () => Polarity22,
          ProgramError: () => ProgramError22,
          ProgramRequest: () => ProgramRequest22,
          ProgramState: () => ProgramState22,
          PropertyIdentifier: () => PropertyIdentifier22,
          PropertyStates: () => PropertyStates22,
          ProtocolLevel: () => ProtocolLevel22,
          ReadRangeType: () => ReadRangeType22,
          ReinitializedState: () => ReinitializedState22,
          RejectReason: () => RejectReason22,
          Relationship: () => Relationship22,
          Reliability: () => Reliability22,
          RestartReason: () => RestartReason22,
          ResultFlags: () => ResultFlags22,
          SecurityLevel: () => SecurityLevel22,
          SecurityPolicy: () => SecurityPolicy22,
          Segmentation: () => Segmentation22,
          ServicesSupported: () => ServicesSupported22,
          ShedState: () => ShedState22,
          SilencedState: () => SilencedState22,
          StatusFlags: () => StatusFlags22,
          TimeStamp: () => TimeStamp22,
          TimerState: () => TimerState22,
          TimerTransition: () => TimerTransition22,
          UnconfirmedServiceChoice: () => UnconfirmedServiceChoice22,
          VTClass: () => VTClass22,
          WriteStatus: () => WriteStatus22,
          getEnumName: () => getEnumName22
        });
        var import_debug42 = __toESM22(require("debug"));
        var debug52 = (0, import_debug42.default)("bacnet=enum=debug");
        var trace32 = (0, import_debug42.default)("bacnet=enum=trace");
        function invertEnum22(enumToInvert) {
          return Object.keys(enumToInvert).reduce((acc, key) => {
            const val = enumToInvert[key];
            acc[val] = key;
            return acc;
          }, {});
        }
        function getEnumName22(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
          if (!Number.isInteger(value)) {
            throw new Error(
              'getEnumName() can only be passed an integer value, was given "' + value + '"'
            );
          }
          let foundEntry;
          try {
            const invertedGroup = invertEnum22(group);
            foundEntry = invertedGroup[value];
            if (foundEntry === void 0 && undefinedFallbackValue) {
              foundEntry = undefinedFallbackValue;
            }
            if (foundEntry === void 0) {
              foundEntry = value.toString();
            } else if (addNumberValue) {
              let strinmanipulation = "";
              strinmanipulation += "(" + value + ")";
              foundEntry = foundEntry + strinmanipulation;
            }
          } catch (e) {
            trace32(e.message);
            foundEntry = null;
          }
          return foundEntry;
        }
        var PDU_TYPE_MASK22 = 240;
        var ASN1_MAX_OBJECT22 = 1023;
        var ASN1_INSTANCE_BITS22 = 22;
        var ASN1_MAX_INSTANCE22 = 4194303;
        var ASN1_MAX_BITSTRING_BYTES22 = 15;
        var ASN1_ARRAY_ALL22 = 4294967295;
        var ASN1_NO_PRIORITY22 = 0;
        var ASN1_MIN_PRIORITY22 = 1;
        var ASN1_MAX_PRIORITY22 = 16;
        var ASN1_MAX_APPLICATION_TAG22 = 16;
        var ASN1_MAX_OBJECT_TYPE22 = 1024;
        var ASN1_MAX_PROPERTY_ID22 = 4194303;
        var BVLL_TYPE_BACNET_IP22 = 129;
        var BVLC_HEADER_LENGTH32 = 4;
        var ConfirmedServiceChoice22 = /* @__PURE__ */ ((ConfirmedServiceChoice222) => {
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["VT_OPEN"] = 21] = "VT_OPEN";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["VT_CLOSE"] = 22] = "VT_CLOSE";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["VT_DATA"] = 23] = "VT_DATA";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["READ_RANGE"] = 26] = "READ_RANGE";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
          ConfirmedServiceChoice222[ConfirmedServiceChoice222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
          return ConfirmedServiceChoice222;
        })(ConfirmedServiceChoice22 || {});
        var UnconfirmedServiceChoice22 = /* @__PURE__ */ ((UnconfirmedServiceChoice222) => {
          UnconfirmedServiceChoice222[UnconfirmedServiceChoice222["I_AM"] = 0] = "I_AM";
          UnconfirmedServiceChoice222[UnconfirmedServiceChoice222["I_HAVE"] = 1] = "I_HAVE";
          UnconfirmedServiceChoice222[UnconfirmedServiceChoice222["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
          UnconfirmedServiceChoice222[UnconfirmedServiceChoice222["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
          UnconfirmedServiceChoice222[UnconfirmedServiceChoice222["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
          UnconfirmedServiceChoice222[UnconfirmedServiceChoice222["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
          UnconfirmedServiceChoice222[UnconfirmedServiceChoice222["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
          UnconfirmedServiceChoice222[UnconfirmedServiceChoice222["WHO_HAS"] = 7] = "WHO_HAS";
          UnconfirmedServiceChoice222[UnconfirmedServiceChoice222["WHO_IS"] = 8] = "WHO_IS";
          UnconfirmedServiceChoice222[UnconfirmedServiceChoice222["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
          UnconfirmedServiceChoice222[UnconfirmedServiceChoice222["WRITE_GROUP"] = 10] = "WRITE_GROUP";
          UnconfirmedServiceChoice222[UnconfirmedServiceChoice222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
          return UnconfirmedServiceChoice222;
        })(UnconfirmedServiceChoice22 || {});
        var AbortReason22 = /* @__PURE__ */ ((AbortReason222) => {
          AbortReason222[AbortReason222["OTHER"] = 0] = "OTHER";
          AbortReason222[AbortReason222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
          AbortReason222[AbortReason222["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
          AbortReason222[AbortReason222["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
          AbortReason222[AbortReason222["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
          AbortReason222[AbortReason222["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
          AbortReason222[AbortReason222["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
          AbortReason222[AbortReason222["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
          AbortReason222[AbortReason222["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
          AbortReason222[AbortReason222["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
          AbortReason222[AbortReason222["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
          AbortReason222[AbortReason222["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
          return AbortReason222;
        })(AbortReason22 || {});
        var RejectReason22 = /* @__PURE__ */ ((RejectReason222) => {
          RejectReason222[RejectReason222["OTHER"] = 0] = "OTHER";
          RejectReason222[RejectReason222["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
          RejectReason222[RejectReason222["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
          RejectReason222[RejectReason222["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
          RejectReason222[RejectReason222["INVALID_TAG"] = 4] = "INVALID_TAG";
          RejectReason222[RejectReason222["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
          RejectReason222[RejectReason222["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
          RejectReason222[RejectReason222["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
          RejectReason222[RejectReason222["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
          RejectReason222[RejectReason222["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
          return RejectReason222;
        })(RejectReason22 || {});
        var ErrorClass22 = /* @__PURE__ */ ((ErrorClass222) => {
          ErrorClass222[ErrorClass222["DEVICE"] = 0] = "DEVICE";
          ErrorClass222[ErrorClass222["OBJECT"] = 1] = "OBJECT";
          ErrorClass222[ErrorClass222["PROPERTY"] = 2] = "PROPERTY";
          ErrorClass222[ErrorClass222["RESOURCES"] = 3] = "RESOURCES";
          ErrorClass222[ErrorClass222["SECURITY"] = 4] = "SECURITY";
          ErrorClass222[ErrorClass222["SERVICES"] = 5] = "SERVICES";
          ErrorClass222[ErrorClass222["VT"] = 6] = "VT";
          ErrorClass222[ErrorClass222["COMMUNICATION"] = 7] = "COMMUNICATION";
          return ErrorClass222;
        })(ErrorClass22 || {});
        var ErrorClassName22 = invertEnum22(
          ErrorClass22
        );
        var ErrorCode22 = /* @__PURE__ */ ((ErrorCode222) => {
          ErrorCode222[ErrorCode222["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
          ErrorCode222[ErrorCode222["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
          ErrorCode222[ErrorCode222["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
          ErrorCode222[ErrorCode222["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
          ErrorCode222[ErrorCode222["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
          ErrorCode222[ErrorCode222["ABORT_OTHER"] = 56] = "ABORT_OTHER";
          ErrorCode222[ErrorCode222["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
          ErrorCode222[ErrorCode222["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
          ErrorCode222[ErrorCode222["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
          ErrorCode222[ErrorCode222["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
          ErrorCode222[ErrorCode222["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
          ErrorCode222[ErrorCode222["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
          ErrorCode222[ErrorCode222["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
          ErrorCode222[ErrorCode222["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
          ErrorCode222[ErrorCode222["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
          ErrorCode222[ErrorCode222["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
          ErrorCode222[ErrorCode222["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
          ErrorCode222[ErrorCode222["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
          ErrorCode222[ErrorCode222["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
          ErrorCode222[ErrorCode222["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
          ErrorCode222[ErrorCode222["BUSY"] = 82] = "BUSY";
          ErrorCode222[ErrorCode222["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
          ErrorCode222[ErrorCode222["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
          ErrorCode222[ErrorCode222["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
          ErrorCode222[ErrorCode222["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
          ErrorCode222[ErrorCode222["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
          ErrorCode222[ErrorCode222["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
          ErrorCode222[ErrorCode222["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
          ErrorCode222[ErrorCode222["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
          ErrorCode222[ErrorCode222["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
          ErrorCode222[ErrorCode222["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
          ErrorCode222[ErrorCode222["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
          ErrorCode222[ErrorCode222["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
          ErrorCode222[ErrorCode222["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
          ErrorCode222[ErrorCode222["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
          ErrorCode222[ErrorCode222["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
          ErrorCode222[ErrorCode222["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
          ErrorCode222[ErrorCode222["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
          ErrorCode222[ErrorCode222["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
          ErrorCode222[ErrorCode222["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
          ErrorCode222[ErrorCode222["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
          ErrorCode222[ErrorCode222["FILE_FULL"] = 128] = "FILE_FULL";
          ErrorCode222[ErrorCode222["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
          ErrorCode222[ErrorCode222["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
          ErrorCode222[ErrorCode222["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
          ErrorCode222[ErrorCode222["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
          ErrorCode222[ErrorCode222["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
          ErrorCode222[ErrorCode222["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
          ErrorCode222[ErrorCode222["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
          ErrorCode222[ErrorCode222["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
          ErrorCode222[ErrorCode222["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
          ErrorCode222[ErrorCode222["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
          ErrorCode222[ErrorCode222["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
          ErrorCode222[ErrorCode222["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
          ErrorCode222[ErrorCode222["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
          ErrorCode222[ErrorCode222["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
          ErrorCode222[ErrorCode222["INVALID_TAG"] = 57] = "INVALID_TAG";
          ErrorCode222[ErrorCode222["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
          ErrorCode222[ErrorCode222["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
          ErrorCode222[ErrorCode222["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
          ErrorCode222[ErrorCode222["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
          ErrorCode222[ErrorCode222["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
          ErrorCode222[ErrorCode222["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
          ErrorCode222[ErrorCode222["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
          ErrorCode222[ErrorCode222["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
          ErrorCode222[ErrorCode222["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
          ErrorCode222[ErrorCode222["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
          ErrorCode222[ErrorCode222["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
          ErrorCode222[ErrorCode222["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
          ErrorCode222[ErrorCode222["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
          ErrorCode222[ErrorCode222["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
          ErrorCode222[ErrorCode222["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
          ErrorCode222[ErrorCode222["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
          ErrorCode222[ErrorCode222["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
          ErrorCode222[ErrorCode222["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
          ErrorCode222[ErrorCode222["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
          ErrorCode222[ErrorCode222["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
          ErrorCode222[ErrorCode222["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
          ErrorCode222[ErrorCode222["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
          ErrorCode222[ErrorCode222["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
          ErrorCode222[ErrorCode222["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
          ErrorCode222[ErrorCode222["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
          ErrorCode222[ErrorCode222["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
          ErrorCode222[ErrorCode222["OTHER"] = 0] = "OTHER";
          ErrorCode222[ErrorCode222["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
          ErrorCode222[ErrorCode222["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
          ErrorCode222[ErrorCode222["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
          ErrorCode222[ErrorCode222["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
          ErrorCode222[ErrorCode222["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
          ErrorCode222[ErrorCode222["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
          ErrorCode222[ErrorCode222["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
          ErrorCode222[ErrorCode222["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
          ErrorCode222[ErrorCode222["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
          ErrorCode222[ErrorCode222["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
          ErrorCode222[ErrorCode222["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
          ErrorCode222[ErrorCode222["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
          ErrorCode222[ErrorCode222["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
          ErrorCode222[ErrorCode222["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
          ErrorCode222[ErrorCode222["REJECT_OTHER"] = 69] = "REJECT_OTHER";
          ErrorCode222[ErrorCode222["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
          ErrorCode222[ErrorCode222["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
          ErrorCode222[ErrorCode222["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
          ErrorCode222[ErrorCode222["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
          ErrorCode222[ErrorCode222["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
          ErrorCode222[ErrorCode222["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
          ErrorCode222[ErrorCode222["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
          ErrorCode222[ErrorCode222["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
          ErrorCode222[ErrorCode222["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
          ErrorCode222[ErrorCode222["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
          ErrorCode222[ErrorCode222["SUCCESS"] = 84] = "SUCCESS";
          ErrorCode222[ErrorCode222["TIMEOUT"] = 30] = "TIMEOUT";
          ErrorCode222[ErrorCode222["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
          ErrorCode222[ErrorCode222["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
          ErrorCode222[ErrorCode222["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
          ErrorCode222[ErrorCode222["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
          ErrorCode222[ErrorCode222["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
          ErrorCode222[ErrorCode222["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
          ErrorCode222[ErrorCode222["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
          ErrorCode222[ErrorCode222["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
          ErrorCode222[ErrorCode222["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
          ErrorCode222[ErrorCode222["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
          ErrorCode222[ErrorCode222["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
          ErrorCode222[ErrorCode222["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
          ErrorCode222[ErrorCode222["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
          ErrorCode222[ErrorCode222["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
          ErrorCode222[ErrorCode222["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
          ErrorCode222[ErrorCode222["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
          ErrorCode222[ErrorCode222["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
          ErrorCode222[ErrorCode222["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
          ErrorCode222[ErrorCode222["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
          ErrorCode222[ErrorCode222["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
          ErrorCode222[ErrorCode222["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
          ErrorCode222[ErrorCode222["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
          return ErrorCode222;
        })(ErrorCode22 || {});
        var ErrorCodeName22 = invertEnum22(
          ErrorCode22
        );
        var AccessAuthenticationFactorDisable22 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable222) => {
          AccessAuthenticationFactorDisable222[AccessAuthenticationFactorDisable222["NONE"] = 0] = "NONE";
          AccessAuthenticationFactorDisable222[AccessAuthenticationFactorDisable222["DISABLED"] = 1] = "DISABLED";
          AccessAuthenticationFactorDisable222[AccessAuthenticationFactorDisable222["DISABLED_LOST"] = 2] = "DISABLED_LOST";
          AccessAuthenticationFactorDisable222[AccessAuthenticationFactorDisable222["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
          AccessAuthenticationFactorDisable222[AccessAuthenticationFactorDisable222["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
          AccessAuthenticationFactorDisable222[AccessAuthenticationFactorDisable222["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
          return AccessAuthenticationFactorDisable222;
        })(AccessAuthenticationFactorDisable22 || {});
        var AccessCredentialDisable22 = /* @__PURE__ */ ((AccessCredentialDisable222) => {
          AccessCredentialDisable222[AccessCredentialDisable222["NONE"] = 0] = "NONE";
          AccessCredentialDisable222[AccessCredentialDisable222["DISABLE"] = 1] = "DISABLE";
          AccessCredentialDisable222[AccessCredentialDisable222["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
          AccessCredentialDisable222[AccessCredentialDisable222["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
          return AccessCredentialDisable222;
        })(AccessCredentialDisable22 || {});
        var AccessCredentialDisableReason22 = /* @__PURE__ */ ((AccessCredentialDisableReason222) => {
          AccessCredentialDisableReason222[AccessCredentialDisableReason222["DISABLED"] = 0] = "DISABLED";
          AccessCredentialDisableReason222[AccessCredentialDisableReason222["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
          AccessCredentialDisableReason222[AccessCredentialDisableReason222["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
          AccessCredentialDisableReason222[AccessCredentialDisableReason222["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
          AccessCredentialDisableReason222[AccessCredentialDisableReason222["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
          AccessCredentialDisableReason222[AccessCredentialDisableReason222["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
          AccessCredentialDisableReason222[AccessCredentialDisableReason222["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
          AccessCredentialDisableReason222[AccessCredentialDisableReason222["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
          AccessCredentialDisableReason222[AccessCredentialDisableReason222["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
          AccessCredentialDisableReason222[AccessCredentialDisableReason222["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
          return AccessCredentialDisableReason222;
        })(AccessCredentialDisableReason22 || {});
        var AccessEvent22 = /* @__PURE__ */ ((AccessEvent222) => {
          AccessEvent222[AccessEvent222["NONE"] = 0] = "NONE";
          AccessEvent222[AccessEvent222["GRANTED"] = 1] = "GRANTED";
          AccessEvent222[AccessEvent222["MUSTER"] = 2] = "MUSTER";
          AccessEvent222[AccessEvent222["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
          AccessEvent222[AccessEvent222["DURESS"] = 4] = "DURESS";
          AccessEvent222[AccessEvent222["TRACE"] = 5] = "TRACE";
          AccessEvent222[AccessEvent222["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
          AccessEvent222[AccessEvent222["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
          AccessEvent222[AccessEvent222["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
          AccessEvent222[AccessEvent222["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
          AccessEvent222[AccessEvent222["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
          AccessEvent222[AccessEvent222["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
          AccessEvent222[AccessEvent222["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
          AccessEvent222[AccessEvent222["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
          AccessEvent222[AccessEvent222["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
          AccessEvent222[AccessEvent222["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
          AccessEvent222[AccessEvent222["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
          AccessEvent222[AccessEvent222["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
          AccessEvent222[AccessEvent222["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
          AccessEvent222[AccessEvent222["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
          AccessEvent222[AccessEvent222["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
          AccessEvent222[AccessEvent222["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
          AccessEvent222[AccessEvent222["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
          AccessEvent222[AccessEvent222["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
          AccessEvent222[AccessEvent222["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
          AccessEvent222[AccessEvent222["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
          AccessEvent222[AccessEvent222["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
          AccessEvent222[AccessEvent222["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
          AccessEvent222[AccessEvent222["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
          AccessEvent222[AccessEvent222["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
          AccessEvent222[AccessEvent222["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
          AccessEvent222[AccessEvent222["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
          AccessEvent222[AccessEvent222["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
          AccessEvent222[AccessEvent222["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
          AccessEvent222[AccessEvent222["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
          AccessEvent222[AccessEvent222["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
          AccessEvent222[AccessEvent222["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
          AccessEvent222[AccessEvent222["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
          AccessEvent222[AccessEvent222["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
          AccessEvent222[AccessEvent222["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
          AccessEvent222[AccessEvent222["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
          AccessEvent222[AccessEvent222["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
          AccessEvent222[AccessEvent222["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
          AccessEvent222[AccessEvent222["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
          AccessEvent222[AccessEvent222["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
          AccessEvent222[AccessEvent222["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
          AccessEvent222[AccessEvent222["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
          AccessEvent222[AccessEvent222["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
          AccessEvent222[AccessEvent222["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
          AccessEvent222[AccessEvent222["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
          AccessEvent222[AccessEvent222["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
          AccessEvent222[AccessEvent222["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
          AccessEvent222[AccessEvent222["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
          AccessEvent222[AccessEvent222["DENIED_OTHER"] = 164] = "DENIED_OTHER";
          return AccessEvent222;
        })(AccessEvent22 || {});
        var AccessPassbackMode22 = /* @__PURE__ */ ((AccessPassbackMode222) => {
          AccessPassbackMode222[AccessPassbackMode222["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
          AccessPassbackMode222[AccessPassbackMode222["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
          AccessPassbackMode222[AccessPassbackMode222["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
          return AccessPassbackMode222;
        })(AccessPassbackMode22 || {});
        var AccessUserType22 = /* @__PURE__ */ ((AccessUserType222) => {
          AccessUserType222[AccessUserType222["ASSET"] = 0] = "ASSET";
          AccessUserType222[AccessUserType222["GROUP"] = 1] = "GROUP";
          AccessUserType222[AccessUserType222["PERSON"] = 2] = "PERSON";
          return AccessUserType222;
        })(AccessUserType22 || {});
        var AccessZoneOccupancyState22 = /* @__PURE__ */ ((AccessZoneOccupancyState222) => {
          AccessZoneOccupancyState222[AccessZoneOccupancyState222["NORMAL"] = 0] = "NORMAL";
          AccessZoneOccupancyState222[AccessZoneOccupancyState222["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
          AccessZoneOccupancyState222[AccessZoneOccupancyState222["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
          AccessZoneOccupancyState222[AccessZoneOccupancyState222["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
          AccessZoneOccupancyState222[AccessZoneOccupancyState222["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
          AccessZoneOccupancyState222[AccessZoneOccupancyState222["DISABLED"] = 5] = "DISABLED";
          AccessZoneOccupancyState222[AccessZoneOccupancyState222["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
          return AccessZoneOccupancyState222;
        })(AccessZoneOccupancyState22 || {});
        var Action22 = /* @__PURE__ */ ((Action222) => {
          Action222[Action222["DIRECT"] = 0] = "DIRECT";
          Action222[Action222["REVERSE"] = 1] = "REVERSE";
          return Action222;
        })(Action22 || {});
        var AuthenticationFactorType22 = /* @__PURE__ */ ((AuthenticationFactorType222) => {
          AuthenticationFactorType222[AuthenticationFactorType222["UNDEFINED"] = 0] = "UNDEFINED";
          AuthenticationFactorType222[AuthenticationFactorType222["ERROR"] = 1] = "ERROR";
          AuthenticationFactorType222[AuthenticationFactorType222["CUSTOM"] = 2] = "CUSTOM";
          AuthenticationFactorType222[AuthenticationFactorType222["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
          AuthenticationFactorType222[AuthenticationFactorType222["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
          AuthenticationFactorType222[AuthenticationFactorType222["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
          AuthenticationFactorType222[AuthenticationFactorType222["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
          AuthenticationFactorType222[AuthenticationFactorType222["ABA_TRACK2"] = 7] = "ABA_TRACK2";
          AuthenticationFactorType222[AuthenticationFactorType222["WIEGAND26"] = 8] = "WIEGAND26";
          AuthenticationFactorType222[AuthenticationFactorType222["WIEGAND37"] = 9] = "WIEGAND37";
          AuthenticationFactorType222[AuthenticationFactorType222["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
          AuthenticationFactorType222[AuthenticationFactorType222["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
          AuthenticationFactorType222[AuthenticationFactorType222["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
          AuthenticationFactorType222[AuthenticationFactorType222["FASC_N"] = 13] = "FASC_N";
          AuthenticationFactorType222[AuthenticationFactorType222["FASC_N_BCD"] = 14] = "FASC_N_BCD";
          AuthenticationFactorType222[AuthenticationFactorType222["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
          AuthenticationFactorType222[AuthenticationFactorType222["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
          AuthenticationFactorType222[AuthenticationFactorType222["GSA75"] = 17] = "GSA75";
          AuthenticationFactorType222[AuthenticationFactorType222["CHUID"] = 18] = "CHUID";
          AuthenticationFactorType222[AuthenticationFactorType222["CHUID_FULL"] = 19] = "CHUID_FULL";
          AuthenticationFactorType222[AuthenticationFactorType222["GUID"] = 20] = "GUID";
          AuthenticationFactorType222[AuthenticationFactorType222["CBEFF_A"] = 21] = "CBEFF_A";
          AuthenticationFactorType222[AuthenticationFactorType222["CBEFF_B"] = 22] = "CBEFF_B";
          AuthenticationFactorType222[AuthenticationFactorType222["CBEFF_C"] = 23] = "CBEFF_C";
          AuthenticationFactorType222[AuthenticationFactorType222["USER_PASSWORD"] = 24] = "USER_PASSWORD";
          return AuthenticationFactorType222;
        })(AuthenticationFactorType22 || {});
        var AuthenticationStatus22 = /* @__PURE__ */ ((AuthenticationStatus222) => {
          AuthenticationStatus222[AuthenticationStatus222["NOT_READY"] = 0] = "NOT_READY";
          AuthenticationStatus222[AuthenticationStatus222["READY"] = 1] = "READY";
          AuthenticationStatus222[AuthenticationStatus222["DISABLED"] = 2] = "DISABLED";
          AuthenticationStatus222[AuthenticationStatus222["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
          AuthenticationStatus222[AuthenticationStatus222["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
          AuthenticationStatus222[AuthenticationStatus222["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
          AuthenticationStatus222[AuthenticationStatus222["IN_PROGRESS"] = 6] = "IN_PROGRESS";
          return AuthenticationStatus222;
        })(AuthenticationStatus22 || {});
        var AuthorizationExemption22 = /* @__PURE__ */ ((AuthorizationExemption222) => {
          AuthorizationExemption222[AuthorizationExemption222["PASSBACK"] = 0] = "PASSBACK";
          AuthorizationExemption222[AuthorizationExemption222["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
          AuthorizationExemption222[AuthorizationExemption222["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
          AuthorizationExemption222[AuthorizationExemption222["LOCKOUT"] = 3] = "LOCKOUT";
          AuthorizationExemption222[AuthorizationExemption222["DENY"] = 4] = "DENY";
          AuthorizationExemption222[AuthorizationExemption222["VERIFICATION"] = 5] = "VERIFICATION";
          AuthorizationExemption222[AuthorizationExemption222["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
          return AuthorizationExemption222;
        })(AuthorizationExemption22 || {});
        var AuthorizationMode22 = /* @__PURE__ */ ((AuthorizationMode222) => {
          AuthorizationMode222[AuthorizationMode222["AUTHORIZE"] = 0] = "AUTHORIZE";
          AuthorizationMode222[AuthorizationMode222["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
          AuthorizationMode222[AuthorizationMode222["DENY_ALL"] = 2] = "DENY_ALL";
          AuthorizationMode222[AuthorizationMode222["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
          AuthorizationMode222[AuthorizationMode222["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
          AuthorizationMode222[AuthorizationMode222["NONE"] = 5] = "NONE";
          return AuthorizationMode222;
        })(AuthorizationMode22 || {});
        var BackupState22 = /* @__PURE__ */ ((BackupState222) => {
          BackupState222[BackupState222["IDLE"] = 0] = "IDLE";
          BackupState222[BackupState222["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
          BackupState222[BackupState222["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
          BackupState222[BackupState222["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
          BackupState222[BackupState222["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
          BackupState222[BackupState222["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
          BackupState222[BackupState222["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
          return BackupState222;
        })(BackupState22 || {});
        var BinaryLightingPV22 = /* @__PURE__ */ ((BinaryLightingPV222) => {
          BinaryLightingPV222[BinaryLightingPV222["OFF"] = 0] = "OFF";
          BinaryLightingPV222[BinaryLightingPV222["ON"] = 1] = "ON";
          BinaryLightingPV222[BinaryLightingPV222["WARN"] = 2] = "WARN";
          BinaryLightingPV222[BinaryLightingPV222["WARN_OFF"] = 3] = "WARN_OFF";
          BinaryLightingPV222[BinaryLightingPV222["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
          BinaryLightingPV222[BinaryLightingPV222["STOP"] = 5] = "STOP";
          return BinaryLightingPV222;
        })(BinaryLightingPV22 || {});
        var BinaryPV22 = /* @__PURE__ */ ((BinaryPV222) => {
          BinaryPV222[BinaryPV222["INACTIVE"] = 0] = "INACTIVE";
          BinaryPV222[BinaryPV222["ACTIVE"] = 1] = "ACTIVE";
          return BinaryPV222;
        })(BinaryPV22 || {});
        var DeviceStatus22 = /* @__PURE__ */ ((DeviceStatus222) => {
          DeviceStatus222[DeviceStatus222["OPERATIONAL"] = 0] = "OPERATIONAL";
          DeviceStatus222[DeviceStatus222["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
          DeviceStatus222[DeviceStatus222["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
          DeviceStatus222[DeviceStatus222["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
          DeviceStatus222[DeviceStatus222["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
          DeviceStatus222[DeviceStatus222["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
          return DeviceStatus222;
        })(DeviceStatus22 || {});
        var DoorAlarmState22 = /* @__PURE__ */ ((DoorAlarmState222) => {
          DoorAlarmState222[DoorAlarmState222["NORMAL"] = 0] = "NORMAL";
          DoorAlarmState222[DoorAlarmState222["ALARM"] = 1] = "ALARM";
          DoorAlarmState222[DoorAlarmState222["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
          DoorAlarmState222[DoorAlarmState222["FORCED_OPEN"] = 3] = "FORCED_OPEN";
          DoorAlarmState222[DoorAlarmState222["TAMPER"] = 4] = "TAMPER";
          DoorAlarmState222[DoorAlarmState222["DOOR_FAULT"] = 5] = "DOOR_FAULT";
          DoorAlarmState222[DoorAlarmState222["LOCK_DOWN"] = 6] = "LOCK_DOWN";
          DoorAlarmState222[DoorAlarmState222["FREE_ACCESS"] = 7] = "FREE_ACCESS";
          DoorAlarmState222[DoorAlarmState222["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
          return DoorAlarmState222;
        })(DoorAlarmState22 || {});
        var DoorSecuredStatus22 = /* @__PURE__ */ ((DoorSecuredStatus222) => {
          DoorSecuredStatus222[DoorSecuredStatus222["SECURED"] = 0] = "SECURED";
          DoorSecuredStatus222[DoorSecuredStatus222["UNSECURED"] = 1] = "UNSECURED";
          DoorSecuredStatus222[DoorSecuredStatus222["UNKNOWN"] = 2] = "UNKNOWN";
          return DoorSecuredStatus222;
        })(DoorSecuredStatus22 || {});
        var DoorStatus22 = /* @__PURE__ */ ((DoorStatus222) => {
          DoorStatus222[DoorStatus222["CLOSED"] = 0] = "CLOSED";
          DoorStatus222[DoorStatus222["OPENED"] = 1] = "OPENED";
          DoorStatus222[DoorStatus222["UNKNOWN"] = 2] = "UNKNOWN";
          DoorStatus222[DoorStatus222["DOOR_FAULT"] = 3] = "DOOR_FAULT";
          DoorStatus222[DoorStatus222["UNUSED"] = 4] = "UNUSED";
          DoorStatus222[DoorStatus222["NONE"] = 5] = "NONE";
          DoorStatus222[DoorStatus222["CLOSING"] = 6] = "CLOSING";
          DoorStatus222[DoorStatus222["OPENING"] = 7] = "OPENING";
          DoorStatus222[DoorStatus222["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
          DoorStatus222[DoorStatus222["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
          return DoorStatus222;
        })(DoorStatus22 || {});
        var DoorValue22 = /* @__PURE__ */ ((DoorValue222) => {
          DoorValue222[DoorValue222["LOCK"] = 0] = "LOCK";
          DoorValue222[DoorValue222["UNLOCK"] = 1] = "UNLOCK";
          DoorValue222[DoorValue222["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
          DoorValue222[DoorValue222["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
          return DoorValue222;
        })(DoorValue22 || {});
        var EngineeringUnits22 = /* @__PURE__ */ ((EngineeringUnits222) => {
          EngineeringUnits222[EngineeringUnits222["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["SQUARE_METERS"] = 0] = "SQUARE_METERS";
          EngineeringUnits222[EngineeringUnits222["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
          EngineeringUnits222[EngineeringUnits222["SQUARE_FEET"] = 1] = "SQUARE_FEET";
          EngineeringUnits222[EngineeringUnits222["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
          EngineeringUnits222[EngineeringUnits222["CURRENCY1"] = 105] = "CURRENCY1";
          EngineeringUnits222[EngineeringUnits222["CURRENCY2"] = 106] = "CURRENCY2";
          EngineeringUnits222[EngineeringUnits222["CURRENCY3"] = 107] = "CURRENCY3";
          EngineeringUnits222[EngineeringUnits222["CURRENCY4"] = 108] = "CURRENCY4";
          EngineeringUnits222[EngineeringUnits222["CURRENCY5"] = 109] = "CURRENCY5";
          EngineeringUnits222[EngineeringUnits222["CURRENCY6"] = 110] = "CURRENCY6";
          EngineeringUnits222[EngineeringUnits222["CURRENCY7"] = 111] = "CURRENCY7";
          EngineeringUnits222[EngineeringUnits222["CURRENCY8"] = 112] = "CURRENCY8";
          EngineeringUnits222[EngineeringUnits222["CURRENCY9"] = 113] = "CURRENCY9";
          EngineeringUnits222[EngineeringUnits222["CURRENCY10"] = 114] = "CURRENCY10";
          EngineeringUnits222[EngineeringUnits222["MILLIAMPERES"] = 2] = "MILLIAMPERES";
          EngineeringUnits222[EngineeringUnits222["AMPERES"] = 3] = "AMPERES";
          EngineeringUnits222[EngineeringUnits222["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
          EngineeringUnits222[EngineeringUnits222["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
          EngineeringUnits222[EngineeringUnits222["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
          EngineeringUnits222[EngineeringUnits222["DECIBELS"] = 199] = "DECIBELS";
          EngineeringUnits222[EngineeringUnits222["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
          EngineeringUnits222[EngineeringUnits222["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
          EngineeringUnits222[EngineeringUnits222["FARADS"] = 170] = "FARADS";
          EngineeringUnits222[EngineeringUnits222["HENRYS"] = 171] = "HENRYS";
          EngineeringUnits222[EngineeringUnits222["OHMS"] = 4] = "OHMS";
          EngineeringUnits222[EngineeringUnits222["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
          EngineeringUnits222[EngineeringUnits222["OHM_METERS"] = 172] = "OHM_METERS";
          EngineeringUnits222[EngineeringUnits222["MILLIOHMS"] = 145] = "MILLIOHMS";
          EngineeringUnits222[EngineeringUnits222["KILOHMS"] = 122] = "KILOHMS";
          EngineeringUnits222[EngineeringUnits222["MEGOHMS"] = 123] = "MEGOHMS";
          EngineeringUnits222[EngineeringUnits222["MICROSIEMENS"] = 190] = "MICROSIEMENS";
          EngineeringUnits222[EngineeringUnits222["MILLISIEMENS"] = 202] = "MILLISIEMENS";
          EngineeringUnits222[EngineeringUnits222["SIEMENS"] = 173] = "SIEMENS";
          EngineeringUnits222[EngineeringUnits222["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
          EngineeringUnits222[EngineeringUnits222["TESLAS"] = 175] = "TESLAS";
          EngineeringUnits222[EngineeringUnits222["VOLTS"] = 5] = "VOLTS";
          EngineeringUnits222[EngineeringUnits222["MILLIVOLTS"] = 124] = "MILLIVOLTS";
          EngineeringUnits222[EngineeringUnits222["KILOVOLTS"] = 6] = "KILOVOLTS";
          EngineeringUnits222[EngineeringUnits222["MEGAVOLTS"] = 7] = "MEGAVOLTS";
          EngineeringUnits222[EngineeringUnits222["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
          EngineeringUnits222[EngineeringUnits222["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
          EngineeringUnits222[EngineeringUnits222["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
          EngineeringUnits222[EngineeringUnits222["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
          EngineeringUnits222[EngineeringUnits222["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
          EngineeringUnits222[EngineeringUnits222["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
          EngineeringUnits222[EngineeringUnits222["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
          EngineeringUnits222[EngineeringUnits222["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
          EngineeringUnits222[EngineeringUnits222["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
          EngineeringUnits222[EngineeringUnits222["POWER_FACTOR"] = 15] = "POWER_FACTOR";
          EngineeringUnits222[EngineeringUnits222["WEBERS"] = 178] = "WEBERS";
          EngineeringUnits222[EngineeringUnits222["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
          EngineeringUnits222[EngineeringUnits222["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
          EngineeringUnits222[EngineeringUnits222["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
          EngineeringUnits222[EngineeringUnits222["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
          EngineeringUnits222[EngineeringUnits222["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
          EngineeringUnits222[EngineeringUnits222["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
          EngineeringUnits222[EngineeringUnits222["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
          EngineeringUnits222[EngineeringUnits222["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
          EngineeringUnits222[EngineeringUnits222["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
          EngineeringUnits222[EngineeringUnits222["JOULES"] = 16] = "JOULES";
          EngineeringUnits222[EngineeringUnits222["KILOJOULES"] = 17] = "KILOJOULES";
          EngineeringUnits222[EngineeringUnits222["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
          EngineeringUnits222[EngineeringUnits222["MEGAJOULES"] = 126] = "MEGAJOULES";
          EngineeringUnits222[EngineeringUnits222["WATT_HOURS"] = 18] = "WATT_HOURS";
          EngineeringUnits222[EngineeringUnits222["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
          EngineeringUnits222[EngineeringUnits222["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
          EngineeringUnits222[EngineeringUnits222["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
          EngineeringUnits222[EngineeringUnits222["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
          EngineeringUnits222[EngineeringUnits222["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
          EngineeringUnits222[EngineeringUnits222["BTUS"] = 20] = "BTUS";
          EngineeringUnits222[EngineeringUnits222["KILO_BTUS"] = 147] = "KILO_BTUS";
          EngineeringUnits222[EngineeringUnits222["MEGA_BTUS"] = 148] = "MEGA_BTUS";
          EngineeringUnits222[EngineeringUnits222["THERMS"] = 21] = "THERMS";
          EngineeringUnits222[EngineeringUnits222["TON_HOURS"] = 22] = "TON_HOURS";
          EngineeringUnits222[EngineeringUnits222["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
          EngineeringUnits222[EngineeringUnits222["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
          EngineeringUnits222[EngineeringUnits222["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
          EngineeringUnits222[EngineeringUnits222["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
          EngineeringUnits222[EngineeringUnits222["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
          EngineeringUnits222[EngineeringUnits222["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
          EngineeringUnits222[EngineeringUnits222["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
          EngineeringUnits222[EngineeringUnits222["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
          EngineeringUnits222[EngineeringUnits222["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
          EngineeringUnits222[EngineeringUnits222["NEWTON"] = 153] = "NEWTON";
          EngineeringUnits222[EngineeringUnits222["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["HERTZ"] = 27] = "HERTZ";
          EngineeringUnits222[EngineeringUnits222["KILOHERTZ"] = 129] = "KILOHERTZ";
          EngineeringUnits222[EngineeringUnits222["MEGAHERTZ"] = 130] = "MEGAHERTZ";
          EngineeringUnits222[EngineeringUnits222["PER_HOUR"] = 131] = "PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
          EngineeringUnits222[EngineeringUnits222["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
          EngineeringUnits222[EngineeringUnits222["MICROMETERS"] = 194] = "MICROMETERS";
          EngineeringUnits222[EngineeringUnits222["MILLIMETERS"] = 30] = "MILLIMETERS";
          EngineeringUnits222[EngineeringUnits222["CENTIMETERS"] = 118] = "CENTIMETERS";
          EngineeringUnits222[EngineeringUnits222["KILOMETERS"] = 193] = "KILOMETERS";
          EngineeringUnits222[EngineeringUnits222["METERS"] = 31] = "METERS";
          EngineeringUnits222[EngineeringUnits222["INCHES"] = 32] = "INCHES";
          EngineeringUnits222[EngineeringUnits222["FEET"] = 33] = "FEET";
          EngineeringUnits222[EngineeringUnits222["CANDELAS"] = 179] = "CANDELAS";
          EngineeringUnits222[EngineeringUnits222["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
          EngineeringUnits222[EngineeringUnits222["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
          EngineeringUnits222[EngineeringUnits222["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
          EngineeringUnits222[EngineeringUnits222["LUMENS"] = 36] = "LUMENS";
          EngineeringUnits222[EngineeringUnits222["LUXES"] = 37] = "LUXES";
          EngineeringUnits222[EngineeringUnits222["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
          EngineeringUnits222[EngineeringUnits222["MILLIGRAMS"] = 196] = "MILLIGRAMS";
          EngineeringUnits222[EngineeringUnits222["GRAMS"] = 195] = "GRAMS";
          EngineeringUnits222[EngineeringUnits222["KILOGRAMS"] = 39] = "KILOGRAMS";
          EngineeringUnits222[EngineeringUnits222["POUNDS_MASS"] = 40] = "POUNDS_MASS";
          EngineeringUnits222[EngineeringUnits222["TONS"] = 41] = "TONS";
          EngineeringUnits222[EngineeringUnits222["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["MILLIWATTS"] = 132] = "MILLIWATTS";
          EngineeringUnits222[EngineeringUnits222["WATTS"] = 47] = "WATTS";
          EngineeringUnits222[EngineeringUnits222["KILOWATTS"] = 48] = "KILOWATTS";
          EngineeringUnits222[EngineeringUnits222["MEGAWATTS"] = 49] = "MEGAWATTS";
          EngineeringUnits222[EngineeringUnits222["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
          EngineeringUnits222[EngineeringUnits222["HORSEPOWER"] = 51] = "HORSEPOWER";
          EngineeringUnits222[EngineeringUnits222["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
          EngineeringUnits222[EngineeringUnits222["PASCALS"] = 53] = "PASCALS";
          EngineeringUnits222[EngineeringUnits222["HECTOPASCALS"] = 133] = "HECTOPASCALS";
          EngineeringUnits222[EngineeringUnits222["KILOPASCALS"] = 54] = "KILOPASCALS";
          EngineeringUnits222[EngineeringUnits222["MILLIBARS"] = 134] = "MILLIBARS";
          EngineeringUnits222[EngineeringUnits222["BARS"] = 55] = "BARS";
          EngineeringUnits222[EngineeringUnits222["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
          EngineeringUnits222[EngineeringUnits222["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
          EngineeringUnits222[EngineeringUnits222["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
          EngineeringUnits222[EngineeringUnits222["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
          EngineeringUnits222[EngineeringUnits222["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
          EngineeringUnits222[EngineeringUnits222["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
          EngineeringUnits222[EngineeringUnits222["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
          EngineeringUnits222[EngineeringUnits222["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
          EngineeringUnits222[EngineeringUnits222["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
          EngineeringUnits222[EngineeringUnits222["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
          EngineeringUnits222[EngineeringUnits222["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
          EngineeringUnits222[EngineeringUnits222["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
          EngineeringUnits222[EngineeringUnits222["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
          EngineeringUnits222[EngineeringUnits222["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
          EngineeringUnits222[EngineeringUnits222["YEARS"] = 67] = "YEARS";
          EngineeringUnits222[EngineeringUnits222["MONTHS"] = 68] = "MONTHS";
          EngineeringUnits222[EngineeringUnits222["WEEKS"] = 69] = "WEEKS";
          EngineeringUnits222[EngineeringUnits222["DAYS"] = 70] = "DAYS";
          EngineeringUnits222[EngineeringUnits222["HOURS"] = 71] = "HOURS";
          EngineeringUnits222[EngineeringUnits222["MINUTES"] = 72] = "MINUTES";
          EngineeringUnits222[EngineeringUnits222["SECONDS"] = 73] = "SECONDS";
          EngineeringUnits222[EngineeringUnits222["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
          EngineeringUnits222[EngineeringUnits222["MILLISECONDS"] = 159] = "MILLISECONDS";
          EngineeringUnits222[EngineeringUnits222["NEWTON_METERS"] = 160] = "NEWTON_METERS";
          EngineeringUnits222[EngineeringUnits222["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["CUBIC_FEET"] = 79] = "CUBIC_FEET";
          EngineeringUnits222[EngineeringUnits222["CUBIC_METERS"] = 80] = "CUBIC_METERS";
          EngineeringUnits222[EngineeringUnits222["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
          EngineeringUnits222[EngineeringUnits222["MILLILITERS"] = 197] = "MILLILITERS";
          EngineeringUnits222[EngineeringUnits222["LITERS"] = 82] = "LITERS";
          EngineeringUnits222[EngineeringUnits222["US_GALLONS"] = 83] = "US_GALLONS";
          EngineeringUnits222[EngineeringUnits222["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
          EngineeringUnits222[EngineeringUnits222["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
          EngineeringUnits222[EngineeringUnits222["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
          EngineeringUnits222[EngineeringUnits222["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
          EngineeringUnits222[EngineeringUnits222["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
          EngineeringUnits222[EngineeringUnits222["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
          EngineeringUnits222[EngineeringUnits222["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
          EngineeringUnits222[EngineeringUnits222["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
          EngineeringUnits222[EngineeringUnits222["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
          EngineeringUnits222[EngineeringUnits222["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
          EngineeringUnits222[EngineeringUnits222["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
          EngineeringUnits222[EngineeringUnits222["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
          EngineeringUnits222[EngineeringUnits222["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
          EngineeringUnits222[EngineeringUnits222["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
          EngineeringUnits222[EngineeringUnits222["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
          EngineeringUnits222[EngineeringUnits222["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
          EngineeringUnits222[EngineeringUnits222["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
          EngineeringUnits222[EngineeringUnits222["NO_UNITS"] = 95] = "NO_UNITS";
          EngineeringUnits222[EngineeringUnits222["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
          EngineeringUnits222[EngineeringUnits222["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
          EngineeringUnits222[EngineeringUnits222["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
          EngineeringUnits222[EngineeringUnits222["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
          EngineeringUnits222[EngineeringUnits222["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
          EngineeringUnits222[EngineeringUnits222["PERCENT"] = 98] = "PERCENT";
          EngineeringUnits222[EngineeringUnits222["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
          EngineeringUnits222[EngineeringUnits222["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
          EngineeringUnits222[EngineeringUnits222["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["PER_MINUTE"] = 100] = "PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["PER_SECOND"] = 101] = "PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
          EngineeringUnits222[EngineeringUnits222["RADIANS"] = 103] = "RADIANS";
          EngineeringUnits222[EngineeringUnits222["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
          EngineeringUnits222[EngineeringUnits222["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
          EngineeringUnits222[EngineeringUnits222["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
          EngineeringUnits222[EngineeringUnits222["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
          EngineeringUnits222[EngineeringUnits222["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
          EngineeringUnits222[EngineeringUnits222["PER_MILLE"] = 207] = "PER_MILLE";
          EngineeringUnits222[EngineeringUnits222["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
          EngineeringUnits222[EngineeringUnits222["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
          EngineeringUnits222[EngineeringUnits222["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
          EngineeringUnits222[EngineeringUnits222["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
          EngineeringUnits222[EngineeringUnits222["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
          EngineeringUnits222[EngineeringUnits222["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
          EngineeringUnits222[EngineeringUnits222["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
          EngineeringUnits222[EngineeringUnits222["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
          EngineeringUnits222[EngineeringUnits222["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
          EngineeringUnits222[EngineeringUnits222["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
          EngineeringUnits222[EngineeringUnits222["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
          EngineeringUnits222[EngineeringUnits222["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
          EngineeringUnits222[EngineeringUnits222["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
          EngineeringUnits222[EngineeringUnits222["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
          EngineeringUnits222[EngineeringUnits222["BECQUERELS"] = 222] = "BECQUERELS";
          EngineeringUnits222[EngineeringUnits222["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
          EngineeringUnits222[EngineeringUnits222["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
          EngineeringUnits222[EngineeringUnits222["GRAY"] = 225] = "GRAY";
          EngineeringUnits222[EngineeringUnits222["MILLIGRAY"] = 226] = "MILLIGRAY";
          EngineeringUnits222[EngineeringUnits222["MICROGRAY"] = 227] = "MICROGRAY";
          EngineeringUnits222[EngineeringUnits222["SIEVERTS"] = 228] = "SIEVERTS";
          EngineeringUnits222[EngineeringUnits222["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
          EngineeringUnits222[EngineeringUnits222["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
          EngineeringUnits222[EngineeringUnits222["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["MILLIREMS"] = 47814] = "MILLIREMS";
          EngineeringUnits222[EngineeringUnits222["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
          EngineeringUnits222[EngineeringUnits222["DECIBELS_A"] = 232] = "DECIBELS_A";
          EngineeringUnits222[EngineeringUnits222["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
          EngineeringUnits222[EngineeringUnits222["PH"] = 234] = "PH";
          EngineeringUnits222[EngineeringUnits222["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
          EngineeringUnits222[EngineeringUnits222["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
          return EngineeringUnits222;
        })(EngineeringUnits22 || {});
        var EscalatorFault22 = /* @__PURE__ */ ((EscalatorFault222) => {
          EscalatorFault222[EscalatorFault222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
          EscalatorFault222[EscalatorFault222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
          EscalatorFault222[EscalatorFault222["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
          EscalatorFault222[EscalatorFault222["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
          EscalatorFault222[EscalatorFault222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
          EscalatorFault222[EscalatorFault222["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
          EscalatorFault222[EscalatorFault222["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
          EscalatorFault222[EscalatorFault222["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
          EscalatorFault222[EscalatorFault222["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
          return EscalatorFault222;
        })(EscalatorFault22 || {});
        var EscalatorMode22 = /* @__PURE__ */ ((EscalatorMode222) => {
          EscalatorMode222[EscalatorMode222["UNKNOWN"] = 0] = "UNKNOWN";
          EscalatorMode222[EscalatorMode222["STOP"] = 1] = "STOP";
          EscalatorMode222[EscalatorMode222["UP"] = 2] = "UP";
          EscalatorMode222[EscalatorMode222["DOWN"] = 3] = "DOWN";
          EscalatorMode222[EscalatorMode222["INSPECTION"] = 4] = "INSPECTION";
          EscalatorMode222[EscalatorMode222["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
          return EscalatorMode222;
        })(EscalatorMode22 || {});
        var EscalatorOperationDirection22 = /* @__PURE__ */ ((EscalatorOperationDirection222) => {
          EscalatorOperationDirection222[EscalatorOperationDirection222["UNKNOWN"] = 0] = "UNKNOWN";
          EscalatorOperationDirection222[EscalatorOperationDirection222["STOPPED"] = 1] = "STOPPED";
          EscalatorOperationDirection222[EscalatorOperationDirection222["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
          EscalatorOperationDirection222[EscalatorOperationDirection222["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
          EscalatorOperationDirection222[EscalatorOperationDirection222["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
          EscalatorOperationDirection222[EscalatorOperationDirection222["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
          return EscalatorOperationDirection222;
        })(EscalatorOperationDirection22 || {});
        var EventState22 = /* @__PURE__ */ ((EventState222) => {
          EventState222[EventState222["NORMAL"] = 0] = "NORMAL";
          EventState222[EventState222["FAULT"] = 1] = "FAULT";
          EventState222[EventState222["OFFNORMAL"] = 2] = "OFFNORMAL";
          EventState222[EventState222["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
          EventState222[EventState222["LOW_LIMIT"] = 4] = "LOW_LIMIT";
          EventState222[EventState222["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
          return EventState222;
        })(EventState22 || {});
        var EventType22 = /* @__PURE__ */ ((EventType222) => {
          EventType222[EventType222["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
          EventType222[EventType222["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
          EventType222[EventType222["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
          EventType222[EventType222["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
          EventType222[EventType222["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
          EventType222[EventType222["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
          EventType222[EventType222["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
          EventType222[EventType222["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
          EventType222[EventType222["EXTENDED"] = 9] = "EXTENDED";
          EventType222[EventType222["BUFFER_READY"] = 10] = "BUFFER_READY";
          EventType222[EventType222["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
          EventType222[EventType222["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
          EventType222[EventType222["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
          EventType222[EventType222["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
          EventType222[EventType222["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
          EventType222[EventType222["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
          EventType222[EventType222["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
          EventType222[EventType222["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
          EventType222[EventType222["NONE"] = 20] = "NONE";
          EventType222[EventType222["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
          EventType222[EventType222["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
          return EventType222;
        })(EventType22 || {});
        var FaultType22 = /* @__PURE__ */ ((FaultType222) => {
          FaultType222[FaultType222["NONE"] = 0] = "NONE";
          FaultType222[FaultType222["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
          FaultType222[FaultType222["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
          FaultType222[FaultType222["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
          FaultType222[FaultType222["FAULT_STATE"] = 4] = "FAULT_STATE";
          FaultType222[FaultType222["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
          FaultType222[FaultType222["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
          FaultType222[FaultType222["FAULT_LISTED"] = 7] = "FAULT_LISTED";
          return FaultType222;
        })(FaultType22 || {});
        var FileAccessMethod22 = /* @__PURE__ */ ((FileAccessMethod222) => {
          FileAccessMethod222[FileAccessMethod222["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
          FileAccessMethod222[FileAccessMethod222["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
          return FileAccessMethod222;
        })(FileAccessMethod22 || {});
        var IPMode22 = /* @__PURE__ */ ((IPMode222) => {
          IPMode222[IPMode222["NORMAL"] = 0] = "NORMAL";
          IPMode222[IPMode222["FOREIGN"] = 1] = "FOREIGN";
          IPMode222[IPMode222["BBMD"] = 2] = "BBMD";
          return IPMode222;
        })(IPMode22 || {});
        var LifeSafetyMode22 = /* @__PURE__ */ ((LifeSafetyMode222) => {
          LifeSafetyMode222[LifeSafetyMode222["OFF"] = 0] = "OFF";
          LifeSafetyMode222[LifeSafetyMode222["ON"] = 1] = "ON";
          LifeSafetyMode222[LifeSafetyMode222["TEST"] = 2] = "TEST";
          LifeSafetyMode222[LifeSafetyMode222["MANNED"] = 3] = "MANNED";
          LifeSafetyMode222[LifeSafetyMode222["UNMANNED"] = 4] = "UNMANNED";
          LifeSafetyMode222[LifeSafetyMode222["ARMED"] = 5] = "ARMED";
          LifeSafetyMode222[LifeSafetyMode222["DISARMED"] = 6] = "DISARMED";
          LifeSafetyMode222[LifeSafetyMode222["PREARMED"] = 7] = "PREARMED";
          LifeSafetyMode222[LifeSafetyMode222["SLOW"] = 8] = "SLOW";
          LifeSafetyMode222[LifeSafetyMode222["FAST"] = 9] = "FAST";
          LifeSafetyMode222[LifeSafetyMode222["DISCONNECTED"] = 10] = "DISCONNECTED";
          LifeSafetyMode222[LifeSafetyMode222["ENABLED"] = 11] = "ENABLED";
          LifeSafetyMode222[LifeSafetyMode222["DISABLED"] = 12] = "DISABLED";
          LifeSafetyMode222[LifeSafetyMode222["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
          LifeSafetyMode222[LifeSafetyMode222["DEFAULT"] = 14] = "DEFAULT";
          return LifeSafetyMode222;
        })(LifeSafetyMode22 || {});
        var LifeSafetyOperation22 = /* @__PURE__ */ ((LifeSafetyOperation222) => {
          LifeSafetyOperation222[LifeSafetyOperation222["NONE"] = 0] = "NONE";
          LifeSafetyOperation222[LifeSafetyOperation222["SILENCE"] = 1] = "SILENCE";
          LifeSafetyOperation222[LifeSafetyOperation222["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
          LifeSafetyOperation222[LifeSafetyOperation222["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
          LifeSafetyOperation222[LifeSafetyOperation222["RESET"] = 4] = "RESET";
          LifeSafetyOperation222[LifeSafetyOperation222["RESET_ALARM"] = 5] = "RESET_ALARM";
          LifeSafetyOperation222[LifeSafetyOperation222["RESET_FAULT"] = 6] = "RESET_FAULT";
          LifeSafetyOperation222[LifeSafetyOperation222["UNSILENCE"] = 7] = "UNSILENCE";
          LifeSafetyOperation222[LifeSafetyOperation222["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
          LifeSafetyOperation222[LifeSafetyOperation222["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
          return LifeSafetyOperation222;
        })(LifeSafetyOperation22 || {});
        var LifeSafetyState22 = /* @__PURE__ */ ((LifeSafetyState222) => {
          LifeSafetyState222[LifeSafetyState222["QUIET"] = 0] = "QUIET";
          LifeSafetyState222[LifeSafetyState222["PRE_ALARM"] = 1] = "PRE_ALARM";
          LifeSafetyState222[LifeSafetyState222["ALARM"] = 2] = "ALARM";
          LifeSafetyState222[LifeSafetyState222["FAULT"] = 3] = "FAULT";
          LifeSafetyState222[LifeSafetyState222["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
          LifeSafetyState222[LifeSafetyState222["FAULT_ALARM"] = 5] = "FAULT_ALARM";
          LifeSafetyState222[LifeSafetyState222["NOT_READY"] = 6] = "NOT_READY";
          LifeSafetyState222[LifeSafetyState222["ACTIVE"] = 7] = "ACTIVE";
          LifeSafetyState222[LifeSafetyState222["TAMPER"] = 8] = "TAMPER";
          LifeSafetyState222[LifeSafetyState222["TEST_ALARM"] = 9] = "TEST_ALARM";
          LifeSafetyState222[LifeSafetyState222["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
          LifeSafetyState222[LifeSafetyState222["TEST_FAULT"] = 11] = "TEST_FAULT";
          LifeSafetyState222[LifeSafetyState222["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
          LifeSafetyState222[LifeSafetyState222["HOLDUP"] = 13] = "HOLDUP";
          LifeSafetyState222[LifeSafetyState222["DURESS"] = 14] = "DURESS";
          LifeSafetyState222[LifeSafetyState222["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
          LifeSafetyState222[LifeSafetyState222["ABNORMAL"] = 16] = "ABNORMAL";
          LifeSafetyState222[LifeSafetyState222["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
          LifeSafetyState222[LifeSafetyState222["DELAYED"] = 18] = "DELAYED";
          LifeSafetyState222[LifeSafetyState222["BLOCKED"] = 19] = "BLOCKED";
          LifeSafetyState222[LifeSafetyState222["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
          LifeSafetyState222[LifeSafetyState222["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
          LifeSafetyState222[LifeSafetyState222["SUPERVISORY"] = 22] = "SUPERVISORY";
          LifeSafetyState222[LifeSafetyState222["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
          return LifeSafetyState222;
        })(LifeSafetyState22 || {});
        var LiftCarDirection22 = /* @__PURE__ */ ((LiftCarDirection222) => {
          LiftCarDirection222[LiftCarDirection222["UNKNOWN"] = 0] = "UNKNOWN";
          LiftCarDirection222[LiftCarDirection222["NONE"] = 1] = "NONE";
          LiftCarDirection222[LiftCarDirection222["STOPPED"] = 2] = "STOPPED";
          LiftCarDirection222[LiftCarDirection222["UP"] = 3] = "UP";
          LiftCarDirection222[LiftCarDirection222["DOWN"] = 4] = "DOWN";
          LiftCarDirection222[LiftCarDirection222["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
          return LiftCarDirection222;
        })(LiftCarDirection22 || {});
        var LiftCarDoorCommand22 = /* @__PURE__ */ ((LiftCarDoorCommand222) => {
          LiftCarDoorCommand222[LiftCarDoorCommand222["NONE"] = 0] = "NONE";
          LiftCarDoorCommand222[LiftCarDoorCommand222["OPEN"] = 1] = "OPEN";
          LiftCarDoorCommand222[LiftCarDoorCommand222["CLOSE"] = 2] = "CLOSE";
          return LiftCarDoorCommand222;
        })(LiftCarDoorCommand22 || {});
        var LiftCarDriveStatus22 = /* @__PURE__ */ ((LiftCarDriveStatus222) => {
          LiftCarDriveStatus222[LiftCarDriveStatus222["UNKNOWN"] = 0] = "UNKNOWN";
          LiftCarDriveStatus222[LiftCarDriveStatus222["STATIONARY"] = 1] = "STATIONARY";
          LiftCarDriveStatus222[LiftCarDriveStatus222["BRAKING"] = 2] = "BRAKING";
          LiftCarDriveStatus222[LiftCarDriveStatus222["ACCELERATE"] = 3] = "ACCELERATE";
          LiftCarDriveStatus222[LiftCarDriveStatus222["DECELERATE"] = 4] = "DECELERATE";
          LiftCarDriveStatus222[LiftCarDriveStatus222["RATED_SPEED"] = 5] = "RATED_SPEED";
          LiftCarDriveStatus222[LiftCarDriveStatus222["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
          LiftCarDriveStatus222[LiftCarDriveStatus222["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
          LiftCarDriveStatus222[LiftCarDriveStatus222["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
          LiftCarDriveStatus222[LiftCarDriveStatus222["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
          return LiftCarDriveStatus222;
        })(LiftCarDriveStatus22 || {});
        var LiftCarMode22 = /* @__PURE__ */ ((LiftCarMode222) => {
          LiftCarMode222[LiftCarMode222["UNKNOWN"] = 0] = "UNKNOWN";
          LiftCarMode222[LiftCarMode222["NORMAL"] = 1] = "NORMAL";
          LiftCarMode222[LiftCarMode222["VIP"] = 2] = "VIP";
          LiftCarMode222[LiftCarMode222["HOMING"] = 3] = "HOMING";
          LiftCarMode222[LiftCarMode222["PARKING"] = 4] = "PARKING";
          LiftCarMode222[LiftCarMode222["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
          LiftCarMode222[LiftCarMode222["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
          LiftCarMode222[LiftCarMode222["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
          LiftCarMode222[LiftCarMode222["INSPECTION"] = 8] = "INSPECTION";
          LiftCarMode222[LiftCarMode222["CABINET_RECALL"] = 9] = "CABINET_RECALL";
          LiftCarMode222[LiftCarMode222["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
          LiftCarMode222[LiftCarMode222["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
          LiftCarMode222[LiftCarMode222["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
          LiftCarMode222[LiftCarMode222["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
          return LiftCarMode222;
        })(LiftCarMode22 || {});
        var LiftFault22 = /* @__PURE__ */ ((LiftFault222) => {
          LiftFault222[LiftFault222["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
          LiftFault222[LiftFault222["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
          LiftFault222[LiftFault222["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
          LiftFault222[LiftFault222["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
          LiftFault222[LiftFault222["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
          LiftFault222[LiftFault222["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
          LiftFault222[LiftFault222["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
          LiftFault222[LiftFault222["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
          LiftFault222[LiftFault222["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
          LiftFault222[LiftFault222["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
          LiftFault222[LiftFault222["START_FAILURE"] = 10] = "START_FAILURE";
          LiftFault222[LiftFault222["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
          LiftFault222[LiftFault222["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
          LiftFault222[LiftFault222["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
          LiftFault222[LiftFault222["POSITION_LOST"] = 14] = "POSITION_LOST";
          LiftFault222[LiftFault222["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
          LiftFault222[LiftFault222["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
          return LiftFault222;
        })(LiftFault22 || {});
        var LiftGroupMode22 = /* @__PURE__ */ ((LiftGroupMode222) => {
          LiftGroupMode222[LiftGroupMode222["UNKNOWN"] = 0] = "UNKNOWN";
          LiftGroupMode222[LiftGroupMode222["NORMAL"] = 1] = "NORMAL";
          LiftGroupMode222[LiftGroupMode222["DOWN_PEAK"] = 2] = "DOWN_PEAK";
          LiftGroupMode222[LiftGroupMode222["TWO_WAY"] = 3] = "TWO_WAY";
          LiftGroupMode222[LiftGroupMode222["FOUR_WAY"] = 4] = "FOUR_WAY";
          LiftGroupMode222[LiftGroupMode222["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
          LiftGroupMode222[LiftGroupMode222["UP_PEAK"] = 6] = "UP_PEAK";
          return LiftGroupMode222;
        })(LiftGroupMode22 || {});
        var LightingInProgress22 = /* @__PURE__ */ ((LightingInProgress222) => {
          LightingInProgress222[LightingInProgress222["IDLE"] = 0] = "IDLE";
          LightingInProgress222[LightingInProgress222["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
          LightingInProgress222[LightingInProgress222["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
          LightingInProgress222[LightingInProgress222["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
          LightingInProgress222[LightingInProgress222["OTHER"] = 4] = "OTHER";
          return LightingInProgress222;
        })(LightingInProgress22 || {});
        var LightingOperation22 = /* @__PURE__ */ ((LightingOperation222) => {
          LightingOperation222[LightingOperation222["NONE"] = 0] = "NONE";
          LightingOperation222[LightingOperation222["FADE_TO"] = 1] = "FADE_TO";
          LightingOperation222[LightingOperation222["RAMP_TO"] = 2] = "RAMP_TO";
          LightingOperation222[LightingOperation222["STEP_UP"] = 3] = "STEP_UP";
          LightingOperation222[LightingOperation222["STEP_DOWN"] = 4] = "STEP_DOWN";
          LightingOperation222[LightingOperation222["STEP_ON"] = 5] = "STEP_ON";
          LightingOperation222[LightingOperation222["STEP_OFF"] = 6] = "STEP_OFF";
          LightingOperation222[LightingOperation222["WARN"] = 7] = "WARN";
          LightingOperation222[LightingOperation222["WARN_OFF"] = 8] = "WARN_OFF";
          LightingOperation222[LightingOperation222["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
          LightingOperation222[LightingOperation222["STOP"] = 10] = "STOP";
          return LightingOperation222;
        })(LightingOperation22 || {});
        var LightingTransition22 = /* @__PURE__ */ ((LightingTransition222) => {
          LightingTransition222[LightingTransition222["NONE"] = 0] = "NONE";
          LightingTransition222[LightingTransition222["FADE"] = 1] = "FADE";
          LightingTransition222[LightingTransition222["RAMP"] = 2] = "RAMP";
          return LightingTransition222;
        })(LightingTransition22 || {});
        var LockStatus22 = /* @__PURE__ */ ((LockStatus222) => {
          LockStatus222[LockStatus222["LOCKED"] = 0] = "LOCKED";
          LockStatus222[LockStatus222["UNLOCKED"] = 1] = "UNLOCKED";
          LockStatus222[LockStatus222["LOCK_FAULT"] = 2] = "LOCK_FAULT";
          LockStatus222[LockStatus222["UNUSED"] = 3] = "UNUSED";
          LockStatus222[LockStatus222["UNKNOWN"] = 4] = "UNKNOWN";
          return LockStatus222;
        })(LockStatus22 || {});
        var LoggingType22 = /* @__PURE__ */ ((LoggingType222) => {
          LoggingType222[LoggingType222["POLLED"] = 0] = "POLLED";
          LoggingType222[LoggingType222["COV"] = 1] = "COV";
          LoggingType222[LoggingType222["TRIGGERED"] = 2] = "TRIGGERED";
          return LoggingType222;
        })(LoggingType22 || {});
        var Maintenance22 = /* @__PURE__ */ ((Maintenance222) => {
          Maintenance222[Maintenance222["NONE"] = 0] = "NONE";
          Maintenance222[Maintenance222["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
          Maintenance222[Maintenance222["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
          Maintenance222[Maintenance222["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
          return Maintenance222;
        })(Maintenance22 || {});
        var NetworkNumberQuality22 = /* @__PURE__ */ ((NetworkNumberQuality222) => {
          NetworkNumberQuality222[NetworkNumberQuality222["UNKNOWN"] = 0] = "UNKNOWN";
          NetworkNumberQuality222[NetworkNumberQuality222["LEARNED"] = 1] = "LEARNED";
          NetworkNumberQuality222[NetworkNumberQuality222["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
          NetworkNumberQuality222[NetworkNumberQuality222["CONFIGURED"] = 3] = "CONFIGURED";
          return NetworkNumberQuality222;
        })(NetworkNumberQuality22 || {});
        var NetworkPortCommand22 = /* @__PURE__ */ ((NetworkPortCommand222) => {
          NetworkPortCommand222[NetworkPortCommand222["IDLE"] = 0] = "IDLE";
          NetworkPortCommand222[NetworkPortCommand222["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
          NetworkPortCommand222[NetworkPortCommand222["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
          NetworkPortCommand222[NetworkPortCommand222["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
          NetworkPortCommand222[NetworkPortCommand222["RENEW_DHCP"] = 4] = "RENEW_DHCP";
          NetworkPortCommand222[NetworkPortCommand222["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
          NetworkPortCommand222[NetworkPortCommand222["DISCONNECT"] = 6] = "DISCONNECT";
          NetworkPortCommand222[NetworkPortCommand222["RESTART_PORT"] = 7] = "RESTART_PORT";
          return NetworkPortCommand222;
        })(NetworkPortCommand22 || {});
        var NetworkType22 = /* @__PURE__ */ ((NetworkType222) => {
          NetworkType222[NetworkType222["ETHERNET"] = 0] = "ETHERNET";
          NetworkType222[NetworkType222["ARCNET"] = 1] = "ARCNET";
          NetworkType222[NetworkType222["MSTP"] = 2] = "MSTP";
          NetworkType222[NetworkType222["PTP"] = 3] = "PTP";
          NetworkType222[NetworkType222["LONTALK"] = 4] = "LONTALK";
          NetworkType222[NetworkType222["IPV4"] = 5] = "IPV4";
          NetworkType222[NetworkType222["ZIGBEE"] = 6] = "ZIGBEE";
          NetworkType222[NetworkType222["VIRTUAL"] = 7] = "VIRTUAL";
          NetworkType222[NetworkType222["IPV6"] = 9] = "IPV6";
          NetworkType222[NetworkType222["SERIAL"] = 10] = "SERIAL";
          return NetworkType222;
        })(NetworkType22 || {});
        var NodeType22 = /* @__PURE__ */ ((NodeType222) => {
          NodeType222[NodeType222["UNKNOWN"] = 0] = "UNKNOWN";
          NodeType222[NodeType222["SYSTEM"] = 1] = "SYSTEM";
          NodeType222[NodeType222["NETWORK"] = 2] = "NETWORK";
          NodeType222[NodeType222["DEVICE"] = 3] = "DEVICE";
          NodeType222[NodeType222["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
          NodeType222[NodeType222["AREA"] = 5] = "AREA";
          NodeType222[NodeType222["EQUIPMENT"] = 6] = "EQUIPMENT";
          NodeType222[NodeType222["POINT"] = 7] = "POINT";
          NodeType222[NodeType222["COLLECTION"] = 8] = "COLLECTION";
          NodeType222[NodeType222["PROPERTY"] = 9] = "PROPERTY";
          NodeType222[NodeType222["FUNCTIONAL"] = 10] = "FUNCTIONAL";
          NodeType222[NodeType222["OTHER"] = 11] = "OTHER";
          NodeType222[NodeType222["SUBSYSTEM"] = 12] = "SUBSYSTEM";
          NodeType222[NodeType222["BUILDING"] = 13] = "BUILDING";
          NodeType222[NodeType222["FLOOR"] = 14] = "FLOOR";
          NodeType222[NodeType222["SECTION"] = 15] = "SECTION";
          NodeType222[NodeType222["MODULE"] = 16] = "MODULE";
          NodeType222[NodeType222["TREE"] = 17] = "TREE";
          NodeType222[NodeType222["MEMBER"] = 18] = "MEMBER";
          NodeType222[NodeType222["PROTOCOL"] = 19] = "PROTOCOL";
          NodeType222[NodeType222["ROOM"] = 20] = "ROOM";
          NodeType222[NodeType222["ZONE"] = 21] = "ZONE";
          return NodeType222;
        })(NodeType22 || {});
        var NotifyType22 = /* @__PURE__ */ ((NotifyType222) => {
          NotifyType222[NotifyType222["ALARM"] = 0] = "ALARM";
          NotifyType222[NotifyType222["EVENT"] = 1] = "EVENT";
          NotifyType222[NotifyType222["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
          return NotifyType222;
        })(NotifyType22 || {});
        var ObjectType22 = /* @__PURE__ */ ((ObjectType222) => {
          ObjectType222[ObjectType222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
          ObjectType222[ObjectType222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
          ObjectType222[ObjectType222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
          ObjectType222[ObjectType222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
          ObjectType222[ObjectType222["ACCESS_USER"] = 35] = "ACCESS_USER";
          ObjectType222[ObjectType222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
          ObjectType222[ObjectType222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
          ObjectType222[ObjectType222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
          ObjectType222[ObjectType222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
          ObjectType222[ObjectType222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
          ObjectType222[ObjectType222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
          ObjectType222[ObjectType222["AVERAGING"] = 18] = "AVERAGING";
          ObjectType222[ObjectType222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
          ObjectType222[ObjectType222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
          ObjectType222[ObjectType222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
          ObjectType222[ObjectType222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
          ObjectType222[ObjectType222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
          ObjectType222[ObjectType222["CALENDAR"] = 6] = "CALENDAR";
          ObjectType222[ObjectType222["CHANNEL"] = 53] = "CHANNEL";
          ObjectType222[ObjectType222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
          ObjectType222[ObjectType222["COMMAND"] = 7] = "COMMAND";
          ObjectType222[ObjectType222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
          ObjectType222[ObjectType222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
          ObjectType222[ObjectType222["DATE_VALUE"] = 42] = "DATE_VALUE";
          ObjectType222[ObjectType222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
          ObjectType222[ObjectType222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
          ObjectType222[ObjectType222["DEVICE"] = 8] = "DEVICE";
          ObjectType222[ObjectType222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
          ObjectType222[ObjectType222["ESCALATOR"] = 58] = "ESCALATOR";
          ObjectType222[ObjectType222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
          ObjectType222[ObjectType222["EVENT_LOG"] = 25] = "EVENT_LOG";
          ObjectType222[ObjectType222["FILE"] = 10] = "FILE";
          ObjectType222[ObjectType222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
          ObjectType222[ObjectType222["GROUP"] = 11] = "GROUP";
          ObjectType222[ObjectType222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
          ObjectType222[ObjectType222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
          ObjectType222[ObjectType222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
          ObjectType222[ObjectType222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
          ObjectType222[ObjectType222["LIFT"] = 59] = "LIFT";
          ObjectType222[ObjectType222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
          ObjectType222[ObjectType222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
          ObjectType222[ObjectType222["LOOP"] = 12] = "LOOP";
          ObjectType222[ObjectType222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
          ObjectType222[ObjectType222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
          ObjectType222[ObjectType222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
          ObjectType222[ObjectType222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
          ObjectType222[ObjectType222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
          ObjectType222[ObjectType222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
          ObjectType222[ObjectType222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
          ObjectType222[ObjectType222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
          ObjectType222[ObjectType222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
          ObjectType222[ObjectType222["PROGRAM"] = 16] = "PROGRAM";
          ObjectType222[ObjectType222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
          ObjectType222[ObjectType222["SCHEDULE"] = 17] = "SCHEDULE";
          ObjectType222[ObjectType222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
          ObjectType222[ObjectType222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
          ObjectType222[ObjectType222["TIME_VALUE"] = 50] = "TIME_VALUE";
          ObjectType222[ObjectType222["TIMER"] = 31] = "TIMER";
          ObjectType222[ObjectType222["TREND_LOG"] = 20] = "TREND_LOG";
          ObjectType222[ObjectType222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
          return ObjectType222;
        })(ObjectType22 || {});
        var Polarity22 = /* @__PURE__ */ ((Polarity222) => {
          Polarity222[Polarity222["NORMAL"] = 0] = "NORMAL";
          Polarity222[Polarity222["REVERSE"] = 1] = "REVERSE";
          return Polarity222;
        })(Polarity22 || {});
        var ProgramError22 = /* @__PURE__ */ ((ProgramError222) => {
          ProgramError222[ProgramError222["NORMAL"] = 0] = "NORMAL";
          ProgramError222[ProgramError222["LOAD_FAILED"] = 1] = "LOAD_FAILED";
          ProgramError222[ProgramError222["INTERNAL"] = 2] = "INTERNAL";
          ProgramError222[ProgramError222["PROGRAM"] = 3] = "PROGRAM";
          ProgramError222[ProgramError222["OTHER"] = 4] = "OTHER";
          return ProgramError222;
        })(ProgramError22 || {});
        var ProgramRequest22 = /* @__PURE__ */ ((ProgramRequest222) => {
          ProgramRequest222[ProgramRequest222["READY"] = 0] = "READY";
          ProgramRequest222[ProgramRequest222["LOAD"] = 1] = "LOAD";
          ProgramRequest222[ProgramRequest222["RUN"] = 2] = "RUN";
          ProgramRequest222[ProgramRequest222["HALT"] = 3] = "HALT";
          ProgramRequest222[ProgramRequest222["RESTART"] = 4] = "RESTART";
          ProgramRequest222[ProgramRequest222["UNLOAD"] = 5] = "UNLOAD";
          return ProgramRequest222;
        })(ProgramRequest22 || {});
        var ProgramState22 = /* @__PURE__ */ ((ProgramState222) => {
          ProgramState222[ProgramState222["IDLE"] = 0] = "IDLE";
          ProgramState222[ProgramState222["LOADING"] = 1] = "LOADING";
          ProgramState222[ProgramState222["RUNNING"] = 2] = "RUNNING";
          ProgramState222[ProgramState222["WAITING"] = 3] = "WAITING";
          ProgramState222[ProgramState222["HALTED"] = 4] = "HALTED";
          ProgramState222[ProgramState222["UNLOADING"] = 5] = "UNLOADING";
          return ProgramState222;
        })(ProgramState22 || {});
        var PropertyIdentifier22 = /* @__PURE__ */ ((PropertyIdentifier222) => {
          PropertyIdentifier222[PropertyIdentifier222["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
          PropertyIdentifier222[PropertyIdentifier222["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
          PropertyIdentifier222[PropertyIdentifier222["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
          PropertyIdentifier222[PropertyIdentifier222["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
          PropertyIdentifier222[PropertyIdentifier222["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
          PropertyIdentifier222[PropertyIdentifier222["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
          PropertyIdentifier222[PropertyIdentifier222["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
          PropertyIdentifier222[PropertyIdentifier222["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
          PropertyIdentifier222[PropertyIdentifier222["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
          PropertyIdentifier222[PropertyIdentifier222["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
          PropertyIdentifier222[PropertyIdentifier222["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
          PropertyIdentifier222[PropertyIdentifier222["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
          PropertyIdentifier222[PropertyIdentifier222["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
          PropertyIdentifier222[PropertyIdentifier222["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
          PropertyIdentifier222[PropertyIdentifier222["ACTION"] = 2] = "ACTION";
          PropertyIdentifier222[PropertyIdentifier222["ACTION_TEXT"] = 3] = "ACTION_TEXT";
          PropertyIdentifier222[PropertyIdentifier222["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
          PropertyIdentifier222[PropertyIdentifier222["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
          PropertyIdentifier222[PropertyIdentifier222["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
          PropertyIdentifier222[PropertyIdentifier222["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
          PropertyIdentifier222[PropertyIdentifier222["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
          PropertyIdentifier222[PropertyIdentifier222["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
          PropertyIdentifier222[PropertyIdentifier222["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
          PropertyIdentifier222[PropertyIdentifier222["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["ALARM_VALUE"] = 6] = "ALARM_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["ALARM_VALUES"] = 7] = "ALARM_VALUES";
          PropertyIdentifier222[PropertyIdentifier222["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
          PropertyIdentifier222[PropertyIdentifier222["ALL"] = 8] = "ALL";
          PropertyIdentifier222[PropertyIdentifier222["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
          PropertyIdentifier222[PropertyIdentifier222["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
          PropertyIdentifier222[PropertyIdentifier222["APDU_LENGTH"] = 399] = "APDU_LENGTH";
          PropertyIdentifier222[PropertyIdentifier222["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
          PropertyIdentifier222[PropertyIdentifier222["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
          PropertyIdentifier222[PropertyIdentifier222["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
          PropertyIdentifier222[PropertyIdentifier222["ARCHIVE"] = 13] = "ARCHIVE";
          PropertyIdentifier222[PropertyIdentifier222["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
          PropertyIdentifier222[PropertyIdentifier222["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
          PropertyIdentifier222[PropertyIdentifier222["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
          PropertyIdentifier222[PropertyIdentifier222["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
          PropertyIdentifier222[PropertyIdentifier222["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
          PropertyIdentifier222[PropertyIdentifier222["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
          PropertyIdentifier222[PropertyIdentifier222["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
          PropertyIdentifier222[PropertyIdentifier222["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
          PropertyIdentifier222[PropertyIdentifier222["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
          PropertyIdentifier222[PropertyIdentifier222["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
          PropertyIdentifier222[PropertyIdentifier222["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
          PropertyIdentifier222[PropertyIdentifier222["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
          PropertyIdentifier222[PropertyIdentifier222["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
          PropertyIdentifier222[PropertyIdentifier222["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
          PropertyIdentifier222[PropertyIdentifier222["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
          PropertyIdentifier222[PropertyIdentifier222["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
          PropertyIdentifier222[PropertyIdentifier222["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
          PropertyIdentifier222[PropertyIdentifier222["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
          PropertyIdentifier222[PropertyIdentifier222["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
          PropertyIdentifier222[PropertyIdentifier222["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
          PropertyIdentifier222[PropertyIdentifier222["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
          PropertyIdentifier222[PropertyIdentifier222["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
          PropertyIdentifier222[PropertyIdentifier222["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
          PropertyIdentifier222[PropertyIdentifier222["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
          PropertyIdentifier222[PropertyIdentifier222["BELONGS_TO"] = 262] = "BELONGS_TO";
          PropertyIdentifier222[PropertyIdentifier222["BIAS"] = 14] = "BIAS";
          PropertyIdentifier222[PropertyIdentifier222["BIT_MASK"] = 342] = "BIT_MASK";
          PropertyIdentifier222[PropertyIdentifier222["BIT_TEXT"] = 343] = "BIT_TEXT";
          PropertyIdentifier222[PropertyIdentifier222["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
          PropertyIdentifier222[PropertyIdentifier222["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
          PropertyIdentifier222[PropertyIdentifier222["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
          PropertyIdentifier222[PropertyIdentifier222["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
          PropertyIdentifier222[PropertyIdentifier222["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
          PropertyIdentifier222[PropertyIdentifier222["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
          PropertyIdentifier222[PropertyIdentifier222["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
          PropertyIdentifier222[PropertyIdentifier222["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
          PropertyIdentifier222[PropertyIdentifier222["CAR_LOAD"] = 454] = "CAR_LOAD";
          PropertyIdentifier222[PropertyIdentifier222["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
          PropertyIdentifier222[PropertyIdentifier222["CAR_MODE"] = 456] = "CAR_MODE";
          PropertyIdentifier222[PropertyIdentifier222["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
          PropertyIdentifier222[PropertyIdentifier222["CAR_POSITION"] = 458] = "CAR_POSITION";
          PropertyIdentifier222[PropertyIdentifier222["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
          PropertyIdentifier222[PropertyIdentifier222["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
          PropertyIdentifier222[PropertyIdentifier222["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
          PropertyIdentifier222[PropertyIdentifier222["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
          PropertyIdentifier222[PropertyIdentifier222["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
          PropertyIdentifier222[PropertyIdentifier222["COMMAND"] = 417] = "COMMAND";
          PropertyIdentifier222[PropertyIdentifier222["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
          PropertyIdentifier222[PropertyIdentifier222["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
          PropertyIdentifier222[PropertyIdentifier222["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
          PropertyIdentifier222[PropertyIdentifier222["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
          PropertyIdentifier222[PropertyIdentifier222["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
          PropertyIdentifier222[PropertyIdentifier222["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["COUNT"] = 177] = "COUNT";
          PropertyIdentifier222[PropertyIdentifier222["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
          PropertyIdentifier222[PropertyIdentifier222["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
          PropertyIdentifier222[PropertyIdentifier222["COV_INCREMENT"] = 22] = "COV_INCREMENT";
          PropertyIdentifier222[PropertyIdentifier222["COV_PERIOD"] = 180] = "COV_PERIOD";
          PropertyIdentifier222[PropertyIdentifier222["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
          PropertyIdentifier222[PropertyIdentifier222["COVU_PERIOD"] = 349] = "COVU_PERIOD";
          PropertyIdentifier222[PropertyIdentifier222["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
          PropertyIdentifier222[PropertyIdentifier222["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
          PropertyIdentifier222[PropertyIdentifier222["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
          PropertyIdentifier222[PropertyIdentifier222["CREDENTIALS"] = 265] = "CREDENTIALS";
          PropertyIdentifier222[PropertyIdentifier222["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
          PropertyIdentifier222[PropertyIdentifier222["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
          PropertyIdentifier222[PropertyIdentifier222["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
          PropertyIdentifier222[PropertyIdentifier222["DATE_LIST"] = 23] = "DATE_LIST";
          PropertyIdentifier222[PropertyIdentifier222["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
          PropertyIdentifier222[PropertyIdentifier222["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
          PropertyIdentifier222[PropertyIdentifier222["DEADBAND"] = 25] = "DEADBAND";
          PropertyIdentifier222[PropertyIdentifier222["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
          PropertyIdentifier222[PropertyIdentifier222["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
          PropertyIdentifier222[PropertyIdentifier222["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
          PropertyIdentifier222[PropertyIdentifier222["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
          PropertyIdentifier222[PropertyIdentifier222["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
          PropertyIdentifier222[PropertyIdentifier222["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
          PropertyIdentifier222[PropertyIdentifier222["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
          PropertyIdentifier222[PropertyIdentifier222["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
          PropertyIdentifier222[PropertyIdentifier222["DESCRIPTION"] = 28] = "DESCRIPTION";
          PropertyIdentifier222[PropertyIdentifier222["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
          PropertyIdentifier222[PropertyIdentifier222["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
          PropertyIdentifier222[PropertyIdentifier222["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
          PropertyIdentifier222[PropertyIdentifier222["DIRECT_READING"] = 156] = "DIRECT_READING";
          PropertyIdentifier222[PropertyIdentifier222["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
          PropertyIdentifier222[PropertyIdentifier222["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
          PropertyIdentifier222[PropertyIdentifier222["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
          PropertyIdentifier222[PropertyIdentifier222["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
          PropertyIdentifier222[PropertyIdentifier222["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
          PropertyIdentifier222[PropertyIdentifier222["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
          PropertyIdentifier222[PropertyIdentifier222["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
          PropertyIdentifier222[PropertyIdentifier222["DOOR_STATUS"] = 231] = "DOOR_STATUS";
          PropertyIdentifier222[PropertyIdentifier222["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
          PropertyIdentifier222[PropertyIdentifier222["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
          PropertyIdentifier222[PropertyIdentifier222["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
          PropertyIdentifier222[PropertyIdentifier222["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
          PropertyIdentifier222[PropertyIdentifier222["EGRESS_TIME"] = 377] = "EGRESS_TIME";
          PropertyIdentifier222[PropertyIdentifier222["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
          PropertyIdentifier222[PropertyIdentifier222["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
          PropertyIdentifier222[PropertyIdentifier222["ENABLE"] = 133] = "ENABLE";
          PropertyIdentifier222[PropertyIdentifier222["ENERGY_METER"] = 460] = "ENERGY_METER";
          PropertyIdentifier222[PropertyIdentifier222["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
          PropertyIdentifier222[PropertyIdentifier222["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
          PropertyIdentifier222[PropertyIdentifier222["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
          PropertyIdentifier222[PropertyIdentifier222["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
          PropertyIdentifier222[PropertyIdentifier222["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
          PropertyIdentifier222[PropertyIdentifier222["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
          PropertyIdentifier222[PropertyIdentifier222["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
          PropertyIdentifier222[PropertyIdentifier222["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
          PropertyIdentifier222[PropertyIdentifier222["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
          PropertyIdentifier222[PropertyIdentifier222["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
          PropertyIdentifier222[PropertyIdentifier222["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
          PropertyIdentifier222[PropertyIdentifier222["EVENT_STATE"] = 36] = "EVENT_STATE";
          PropertyIdentifier222[PropertyIdentifier222["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
          PropertyIdentifier222[PropertyIdentifier222["EVENT_TYPE"] = 37] = "EVENT_TYPE";
          PropertyIdentifier222[PropertyIdentifier222["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
          PropertyIdentifier222[PropertyIdentifier222["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
          PropertyIdentifier222[PropertyIdentifier222["EXIT_POINTS"] = 269] = "EXIT_POINTS";
          PropertyIdentifier222[PropertyIdentifier222["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
          PropertyIdentifier222[PropertyIdentifier222["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
          PropertyIdentifier222[PropertyIdentifier222["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
          PropertyIdentifier222[PropertyIdentifier222["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
          PropertyIdentifier222[PropertyIdentifier222["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
          PropertyIdentifier222[PropertyIdentifier222["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
          PropertyIdentifier222[PropertyIdentifier222["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
          PropertyIdentifier222[PropertyIdentifier222["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
          PropertyIdentifier222[PropertyIdentifier222["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
          PropertyIdentifier222[PropertyIdentifier222["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
          PropertyIdentifier222[PropertyIdentifier222["FAULT_TYPE"] = 359] = "FAULT_TYPE";
          PropertyIdentifier222[PropertyIdentifier222["FAULT_VALUES"] = 39] = "FAULT_VALUES";
          PropertyIdentifier222[PropertyIdentifier222["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
          PropertyIdentifier222[PropertyIdentifier222["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
          PropertyIdentifier222[PropertyIdentifier222["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
          PropertyIdentifier222[PropertyIdentifier222["FILE_SIZE"] = 42] = "FILE_SIZE";
          PropertyIdentifier222[PropertyIdentifier222["FILE_TYPE"] = 43] = "FILE_TYPE";
          PropertyIdentifier222[PropertyIdentifier222["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
          PropertyIdentifier222[PropertyIdentifier222["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
          PropertyIdentifier222[PropertyIdentifier222["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
          PropertyIdentifier222[PropertyIdentifier222["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
          PropertyIdentifier222[PropertyIdentifier222["GROUP_ID"] = 465] = "GROUP_ID";
          PropertyIdentifier222[PropertyIdentifier222["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
          PropertyIdentifier222[PropertyIdentifier222["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
          PropertyIdentifier222[PropertyIdentifier222["GROUP_MODE"] = 467] = "GROUP_MODE";
          PropertyIdentifier222[PropertyIdentifier222["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
          PropertyIdentifier222[PropertyIdentifier222["HIGHER_DECK"] = 468] = "HIGHER_DECK";
          PropertyIdentifier222[PropertyIdentifier222["IN_PROCESS"] = 47] = "IN_PROCESS";
          PropertyIdentifier222[PropertyIdentifier222["IN_PROGRESS"] = 378] = "IN_PROGRESS";
          PropertyIdentifier222[PropertyIdentifier222["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
          PropertyIdentifier222[PropertyIdentifier222["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
          PropertyIdentifier222[PropertyIdentifier222["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
          PropertyIdentifier222[PropertyIdentifier222["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
          PropertyIdentifier222[PropertyIdentifier222["INSTANCE_OF"] = 48] = "INSTANCE_OF";
          PropertyIdentifier222[PropertyIdentifier222["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
          PropertyIdentifier222[PropertyIdentifier222["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
          PropertyIdentifier222[PropertyIdentifier222["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
          PropertyIdentifier222[PropertyIdentifier222["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
          PropertyIdentifier222[PropertyIdentifier222["IP_ADDRESS"] = 400] = "IP_ADDRESS";
          PropertyIdentifier222[PropertyIdentifier222["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
          PropertyIdentifier222[PropertyIdentifier222["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
          PropertyIdentifier222[PropertyIdentifier222["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
          PropertyIdentifier222[PropertyIdentifier222["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
          PropertyIdentifier222[PropertyIdentifier222["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
          PropertyIdentifier222[PropertyIdentifier222["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
          PropertyIdentifier222[PropertyIdentifier222["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
          PropertyIdentifier222[PropertyIdentifier222["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
          PropertyIdentifier222[PropertyIdentifier222["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
          PropertyIdentifier222[PropertyIdentifier222["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
          PropertyIdentifier222[PropertyIdentifier222["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
          PropertyIdentifier222[PropertyIdentifier222["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
          PropertyIdentifier222[PropertyIdentifier222["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
          PropertyIdentifier222[PropertyIdentifier222["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
          PropertyIdentifier222[PropertyIdentifier222["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
          PropertyIdentifier222[PropertyIdentifier222["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
          PropertyIdentifier222[PropertyIdentifier222["IS_UTC"] = 344] = "IS_UTC";
          PropertyIdentifier222[PropertyIdentifier222["KEY_SETS"] = 330] = "KEY_SETS";
          PropertyIdentifier222[PropertyIdentifier222["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
          PropertyIdentifier222[PropertyIdentifier222["LANDING_CALLS"] = 470] = "LANDING_CALLS";
          PropertyIdentifier222[PropertyIdentifier222["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
          PropertyIdentifier222[PropertyIdentifier222["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
          PropertyIdentifier222[PropertyIdentifier222["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
          PropertyIdentifier222[PropertyIdentifier222["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
          PropertyIdentifier222[PropertyIdentifier222["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
          PropertyIdentifier222[PropertyIdentifier222["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
          PropertyIdentifier222[PropertyIdentifier222["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
          PropertyIdentifier222[PropertyIdentifier222["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
          PropertyIdentifier222[PropertyIdentifier222["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
          PropertyIdentifier222[PropertyIdentifier222["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
          PropertyIdentifier222[PropertyIdentifier222["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
          PropertyIdentifier222[PropertyIdentifier222["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
          PropertyIdentifier222[PropertyIdentifier222["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
          PropertyIdentifier222[PropertyIdentifier222["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
          PropertyIdentifier222[PropertyIdentifier222["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
          PropertyIdentifier222[PropertyIdentifier222["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
          PropertyIdentifier222[PropertyIdentifier222["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
          PropertyIdentifier222[PropertyIdentifier222["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
          PropertyIdentifier222[PropertyIdentifier222["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
          PropertyIdentifier222[PropertyIdentifier222["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
          PropertyIdentifier222[PropertyIdentifier222["LINK_SPEED"] = 420] = "LINK_SPEED";
          PropertyIdentifier222[PropertyIdentifier222["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
          PropertyIdentifier222[PropertyIdentifier222["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
          PropertyIdentifier222[PropertyIdentifier222["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
          PropertyIdentifier222[PropertyIdentifier222["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
          PropertyIdentifier222[PropertyIdentifier222["LOCAL_DATE"] = 56] = "LOCAL_DATE";
          PropertyIdentifier222[PropertyIdentifier222["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
          PropertyIdentifier222[PropertyIdentifier222["LOCAL_TIME"] = 57] = "LOCAL_TIME";
          PropertyIdentifier222[PropertyIdentifier222["LOCATION"] = 58] = "LOCATION";
          PropertyIdentifier222[PropertyIdentifier222["LOCK_STATUS"] = 233] = "LOCK_STATUS";
          PropertyIdentifier222[PropertyIdentifier222["LOCKOUT"] = 282] = "LOCKOUT";
          PropertyIdentifier222[PropertyIdentifier222["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
          PropertyIdentifier222[PropertyIdentifier222["LOG_BUFFER"] = 131] = "LOG_BUFFER";
          PropertyIdentifier222[PropertyIdentifier222["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
          PropertyIdentifier222[PropertyIdentifier222["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
          PropertyIdentifier222[PropertyIdentifier222["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
          PropertyIdentifier222[PropertyIdentifier222["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
          PropertyIdentifier222[PropertyIdentifier222["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
          PropertyIdentifier222[PropertyIdentifier222["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
          PropertyIdentifier222[PropertyIdentifier222["LOW_LIMIT"] = 59] = "LOW_LIMIT";
          PropertyIdentifier222[PropertyIdentifier222["LOWER_DECK"] = 473] = "LOWER_DECK";
          PropertyIdentifier222[PropertyIdentifier222["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
          PropertyIdentifier222[PropertyIdentifier222["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
          PropertyIdentifier222[PropertyIdentifier222["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
          PropertyIdentifier222[PropertyIdentifier222["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
          PropertyIdentifier222[PropertyIdentifier222["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
          PropertyIdentifier222[PropertyIdentifier222["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
          PropertyIdentifier222[PropertyIdentifier222["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
          PropertyIdentifier222[PropertyIdentifier222["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
          PropertyIdentifier222[PropertyIdentifier222["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
          PropertyIdentifier222[PropertyIdentifier222["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
          PropertyIdentifier222[PropertyIdentifier222["MAX_MASTER"] = 64] = "MAX_MASTER";
          PropertyIdentifier222[PropertyIdentifier222["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
          PropertyIdentifier222[PropertyIdentifier222["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
          PropertyIdentifier222[PropertyIdentifier222["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
          PropertyIdentifier222[PropertyIdentifier222["MEMBER_OF"] = 159] = "MEMBER_OF";
          PropertyIdentifier222[PropertyIdentifier222["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
          PropertyIdentifier222[PropertyIdentifier222["MEMBERS"] = 286] = "MEMBERS";
          PropertyIdentifier222[PropertyIdentifier222["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
          PropertyIdentifier222[PropertyIdentifier222["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
          PropertyIdentifier222[PropertyIdentifier222["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
          PropertyIdentifier222[PropertyIdentifier222["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
          PropertyIdentifier222[PropertyIdentifier222["MODE"] = 160] = "MODE";
          PropertyIdentifier222[PropertyIdentifier222["MODEL_NAME"] = 70] = "MODEL_NAME";
          PropertyIdentifier222[PropertyIdentifier222["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
          PropertyIdentifier222[PropertyIdentifier222["MUSTER_POINT"] = 287] = "MUSTER_POINT";
          PropertyIdentifier222[PropertyIdentifier222["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
          PropertyIdentifier222[PropertyIdentifier222["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
          PropertyIdentifier222[PropertyIdentifier222["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
          PropertyIdentifier222[PropertyIdentifier222["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
          PropertyIdentifier222[PropertyIdentifier222["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
          PropertyIdentifier222[PropertyIdentifier222["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
          PropertyIdentifier222[PropertyIdentifier222["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
          PropertyIdentifier222[PropertyIdentifier222["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
          PropertyIdentifier222[PropertyIdentifier222["NODE_TYPE"] = 208] = "NODE_TYPE";
          PropertyIdentifier222[PropertyIdentifier222["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
          PropertyIdentifier222[PropertyIdentifier222["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
          PropertyIdentifier222[PropertyIdentifier222["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
          PropertyIdentifier222[PropertyIdentifier222["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
          PropertyIdentifier222[PropertyIdentifier222["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
          PropertyIdentifier222[PropertyIdentifier222["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
          PropertyIdentifier222[PropertyIdentifier222["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
          PropertyIdentifier222[PropertyIdentifier222["OBJECT_LIST"] = 76] = "OBJECT_LIST";
          PropertyIdentifier222[PropertyIdentifier222["OBJECT_NAME"] = 77] = "OBJECT_NAME";
          PropertyIdentifier222[PropertyIdentifier222["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
          PropertyIdentifier222[PropertyIdentifier222["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
          PropertyIdentifier222[PropertyIdentifier222["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
          PropertyIdentifier222[PropertyIdentifier222["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
          PropertyIdentifier222[PropertyIdentifier222["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
          PropertyIdentifier222[PropertyIdentifier222["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
          PropertyIdentifier222[PropertyIdentifier222["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
          PropertyIdentifier222[PropertyIdentifier222["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
          PropertyIdentifier222[PropertyIdentifier222["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
          PropertyIdentifier222[PropertyIdentifier222["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
          PropertyIdentifier222[PropertyIdentifier222["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
          PropertyIdentifier222[PropertyIdentifier222["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
          PropertyIdentifier222[PropertyIdentifier222["OPTIONAL"] = 80] = "OPTIONAL";
          PropertyIdentifier222[PropertyIdentifier222["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
          PropertyIdentifier222[PropertyIdentifier222["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
          PropertyIdentifier222[PropertyIdentifier222["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
          PropertyIdentifier222[PropertyIdentifier222["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
          PropertyIdentifier222[PropertyIdentifier222["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
          PropertyIdentifier222[PropertyIdentifier222["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
          PropertyIdentifier222[PropertyIdentifier222["POLARITY"] = 84] = "POLARITY";
          PropertyIdentifier222[PropertyIdentifier222["PORT_FILTER"] = 363] = "PORT_FILTER";
          PropertyIdentifier222[PropertyIdentifier222["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
          PropertyIdentifier222[PropertyIdentifier222["POWER"] = 384] = "POWER";
          PropertyIdentifier222[PropertyIdentifier222["POWER_MODE"] = 479] = "POWER_MODE";
          PropertyIdentifier222[PropertyIdentifier222["PRESCALE"] = 185] = "PRESCALE";
          PropertyIdentifier222[PropertyIdentifier222["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["PRIORITY"] = 86] = "PRIORITY";
          PropertyIdentifier222[PropertyIdentifier222["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
          PropertyIdentifier222[PropertyIdentifier222["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
          PropertyIdentifier222[PropertyIdentifier222["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
          PropertyIdentifier222[PropertyIdentifier222["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
          PropertyIdentifier222[PropertyIdentifier222["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
          PropertyIdentifier222[PropertyIdentifier222["PROFILE_NAME"] = 168] = "PROFILE_NAME";
          PropertyIdentifier222[PropertyIdentifier222["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
          PropertyIdentifier222[PropertyIdentifier222["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
          PropertyIdentifier222[PropertyIdentifier222["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
          PropertyIdentifier222[PropertyIdentifier222["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
          PropertyIdentifier222[PropertyIdentifier222["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
          PropertyIdentifier222[PropertyIdentifier222["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
          PropertyIdentifier222[PropertyIdentifier222["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
          PropertyIdentifier222[PropertyIdentifier222["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
          PropertyIdentifier222[PropertyIdentifier222["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
          PropertyIdentifier222[PropertyIdentifier222["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
          PropertyIdentifier222[PropertyIdentifier222["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
          PropertyIdentifier222[PropertyIdentifier222["PULSE_RATE"] = 186] = "PULSE_RATE";
          PropertyIdentifier222[PropertyIdentifier222["READ_ONLY"] = 99] = "READ_ONLY";
          PropertyIdentifier222[PropertyIdentifier222["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
          PropertyIdentifier222[PropertyIdentifier222["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
          PropertyIdentifier222[PropertyIdentifier222["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
          PropertyIdentifier222[PropertyIdentifier222["RECORD_COUNT"] = 141] = "RECORD_COUNT";
          PropertyIdentifier222[PropertyIdentifier222["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
          PropertyIdentifier222[PropertyIdentifier222["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
          PropertyIdentifier222[PropertyIdentifier222["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
          PropertyIdentifier222[PropertyIdentifier222["RELIABILITY"] = 103] = "RELIABILITY";
          PropertyIdentifier222[PropertyIdentifier222["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
          PropertyIdentifier222[PropertyIdentifier222["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
          PropertyIdentifier222[PropertyIdentifier222["REPRESENTS"] = 491] = "REPRESENTS";
          PropertyIdentifier222[PropertyIdentifier222["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
          PropertyIdentifier222[PropertyIdentifier222["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
          PropertyIdentifier222[PropertyIdentifier222["REQUIRED"] = 105] = "REQUIRED";
          PropertyIdentifier222[PropertyIdentifier222["RESOLUTION"] = 106] = "RESOLUTION";
          PropertyIdentifier222[PropertyIdentifier222["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
          PropertyIdentifier222[PropertyIdentifier222["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
          PropertyIdentifier222[PropertyIdentifier222["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
          PropertyIdentifier222[PropertyIdentifier222["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
          PropertyIdentifier222[PropertyIdentifier222["SCALE"] = 187] = "SCALE";
          PropertyIdentifier222[PropertyIdentifier222["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
          PropertyIdentifier222[PropertyIdentifier222["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
          PropertyIdentifier222[PropertyIdentifier222["SECURED_STATUS"] = 235] = "SECURED_STATUS";
          PropertyIdentifier222[PropertyIdentifier222["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
          PropertyIdentifier222[PropertyIdentifier222["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
          PropertyIdentifier222[PropertyIdentifier222["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
          PropertyIdentifier222[PropertyIdentifier222["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
          PropertyIdentifier222[PropertyIdentifier222["SETPOINT"] = 108] = "SETPOINT";
          PropertyIdentifier222[PropertyIdentifier222["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
          PropertyIdentifier222[PropertyIdentifier222["SETTING"] = 162] = "SETTING";
          PropertyIdentifier222[PropertyIdentifier222["SHED_DURATION"] = 219] = "SHED_DURATION";
          PropertyIdentifier222[PropertyIdentifier222["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
          PropertyIdentifier222[PropertyIdentifier222["SHED_LEVELS"] = 221] = "SHED_LEVELS";
          PropertyIdentifier222[PropertyIdentifier222["SILENCED"] = 163] = "SILENCED";
          PropertyIdentifier222[PropertyIdentifier222["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
          PropertyIdentifier222[PropertyIdentifier222["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
          PropertyIdentifier222[PropertyIdentifier222["START_TIME"] = 142] = "START_TIME";
          PropertyIdentifier222[PropertyIdentifier222["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
          PropertyIdentifier222[PropertyIdentifier222["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
          PropertyIdentifier222[PropertyIdentifier222["STATE_TEXT"] = 110] = "STATE_TEXT";
          PropertyIdentifier222[PropertyIdentifier222["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
          PropertyIdentifier222[PropertyIdentifier222["STOP_TIME"] = 143] = "STOP_TIME";
          PropertyIdentifier222[PropertyIdentifier222["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
          PropertyIdentifier222[PropertyIdentifier222["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
          PropertyIdentifier222[PropertyIdentifier222["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
          PropertyIdentifier222[PropertyIdentifier222["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
          PropertyIdentifier222[PropertyIdentifier222["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
          PropertyIdentifier222[PropertyIdentifier222["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
          PropertyIdentifier222[PropertyIdentifier222["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
          PropertyIdentifier222[PropertyIdentifier222["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
          PropertyIdentifier222[PropertyIdentifier222["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
          PropertyIdentifier222[PropertyIdentifier222["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
          PropertyIdentifier222[PropertyIdentifier222["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
          PropertyIdentifier222[PropertyIdentifier222["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
          PropertyIdentifier222[PropertyIdentifier222["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
          PropertyIdentifier222[PropertyIdentifier222["TAGS"] = 486] = "TAGS";
          PropertyIdentifier222[PropertyIdentifier222["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
          PropertyIdentifier222[PropertyIdentifier222["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
          PropertyIdentifier222[PropertyIdentifier222["TIME_DELAY"] = 113] = "TIME_DELAY";
          PropertyIdentifier222[PropertyIdentifier222["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
          PropertyIdentifier222[PropertyIdentifier222["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
          PropertyIdentifier222[PropertyIdentifier222["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
          PropertyIdentifier222[PropertyIdentifier222["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
          PropertyIdentifier222[PropertyIdentifier222["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
          PropertyIdentifier222[PropertyIdentifier222["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
          PropertyIdentifier222[PropertyIdentifier222["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
          PropertyIdentifier222[PropertyIdentifier222["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
          PropertyIdentifier222[PropertyIdentifier222["TIMER_STATE"] = 398] = "TIMER_STATE";
          PropertyIdentifier222[PropertyIdentifier222["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
          PropertyIdentifier222[PropertyIdentifier222["TRACE_FLAG"] = 308] = "TRACE_FLAG";
          PropertyIdentifier222[PropertyIdentifier222["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
          PropertyIdentifier222[PropertyIdentifier222["TRANSITION"] = 385] = "TRANSITION";
          PropertyIdentifier222[PropertyIdentifier222["TRIGGER"] = 205] = "TRIGGER";
          PropertyIdentifier222[PropertyIdentifier222["UNITS"] = 117] = "UNITS";
          PropertyIdentifier222[PropertyIdentifier222["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
          PropertyIdentifier222[PropertyIdentifier222["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
          PropertyIdentifier222[PropertyIdentifier222["UPDATE_TIME"] = 189] = "UPDATE_TIME";
          PropertyIdentifier222[PropertyIdentifier222["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
          PropertyIdentifier222[PropertyIdentifier222["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
          PropertyIdentifier222[PropertyIdentifier222["USER_NAME"] = 317] = "USER_NAME";
          PropertyIdentifier222[PropertyIdentifier222["USER_TYPE"] = 318] = "USER_TYPE";
          PropertyIdentifier222[PropertyIdentifier222["USES_REMAINING"] = 319] = "USES_REMAINING";
          PropertyIdentifier222[PropertyIdentifier222["UTC_OFFSET"] = 119] = "UTC_OFFSET";
          PropertyIdentifier222[PropertyIdentifier222["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
          PropertyIdentifier222[PropertyIdentifier222["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
          PropertyIdentifier222[PropertyIdentifier222["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
          PropertyIdentifier222[PropertyIdentifier222["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
          PropertyIdentifier222[PropertyIdentifier222["VALUE_SET"] = 191] = "VALUE_SET";
          PropertyIdentifier222[PropertyIdentifier222["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
          PropertyIdentifier222[PropertyIdentifier222["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
          PropertyIdentifier222[PropertyIdentifier222["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
          PropertyIdentifier222[PropertyIdentifier222["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
          PropertyIdentifier222[PropertyIdentifier222["VENDOR_NAME"] = 121] = "VENDOR_NAME";
          PropertyIdentifier222[PropertyIdentifier222["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
          PropertyIdentifier222[PropertyIdentifier222["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
          PropertyIdentifier222[PropertyIdentifier222["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
          PropertyIdentifier222[PropertyIdentifier222["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
          PropertyIdentifier222[PropertyIdentifier222["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
          PropertyIdentifier222[PropertyIdentifier222["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
          PropertyIdentifier222[PropertyIdentifier222["WRITE_STATUS"] = 370] = "WRITE_STATUS";
          PropertyIdentifier222[PropertyIdentifier222["ZONE_FROM"] = 320] = "ZONE_FROM";
          PropertyIdentifier222[PropertyIdentifier222["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
          PropertyIdentifier222[PropertyIdentifier222["ZONE_TO"] = 321] = "ZONE_TO";
          return PropertyIdentifier222;
        })(PropertyIdentifier22 || {});
        var ProtocolLevel22 = /* @__PURE__ */ ((ProtocolLevel222) => {
          ProtocolLevel222[ProtocolLevel222["PHYSICAL"] = 0] = "PHYSICAL";
          ProtocolLevel222[ProtocolLevel222["PROTOCOL"] = 1] = "PROTOCOL";
          ProtocolLevel222[ProtocolLevel222["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
          ProtocolLevel222[ProtocolLevel222["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
          return ProtocolLevel222;
        })(ProtocolLevel22 || {});
        var Relationship22 = /* @__PURE__ */ ((Relationship222) => {
          Relationship222[Relationship222["UNKNOWN"] = 0] = "UNKNOWN";
          Relationship222[Relationship222["DEFAULT"] = 1] = "DEFAULT";
          Relationship222[Relationship222["CONTAINS"] = 2] = "CONTAINS";
          Relationship222[Relationship222["CONTAINED_BY"] = 3] = "CONTAINED_BY";
          Relationship222[Relationship222["USES"] = 4] = "USES";
          Relationship222[Relationship222["USED_BY"] = 5] = "USED_BY";
          Relationship222[Relationship222["COMMANDS"] = 6] = "COMMANDS";
          Relationship222[Relationship222["COMMANDED_BY"] = 7] = "COMMANDED_BY";
          Relationship222[Relationship222["ADJUSTS"] = 8] = "ADJUSTS";
          Relationship222[Relationship222["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
          Relationship222[Relationship222["INGRESS"] = 10] = "INGRESS";
          Relationship222[Relationship222["EGRESS"] = 11] = "EGRESS";
          Relationship222[Relationship222["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
          Relationship222[Relationship222["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
          Relationship222[Relationship222["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
          Relationship222[Relationship222["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
          Relationship222[Relationship222["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
          Relationship222[Relationship222["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
          Relationship222[Relationship222["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
          Relationship222[Relationship222["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
          Relationship222[Relationship222["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
          Relationship222[Relationship222["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
          Relationship222[Relationship222["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
          Relationship222[Relationship222["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
          Relationship222[Relationship222["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
          Relationship222[Relationship222["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
          Relationship222[Relationship222["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
          Relationship222[Relationship222["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
          Relationship222[Relationship222["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
          Relationship222[Relationship222["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
          return Relationship222;
        })(Relationship22 || {});
        var Reliability22 = /* @__PURE__ */ ((Reliability222) => {
          Reliability222[Reliability222["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
          Reliability222[Reliability222["NO_SENSOR"] = 1] = "NO_SENSOR";
          Reliability222[Reliability222["OVER_RANGE"] = 2] = "OVER_RANGE";
          Reliability222[Reliability222["UNDER_RANGE"] = 3] = "UNDER_RANGE";
          Reliability222[Reliability222["OPEN_LOOP"] = 4] = "OPEN_LOOP";
          Reliability222[Reliability222["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
          Reliability222[Reliability222["NO_OUTPUT"] = 6] = "NO_OUTPUT";
          Reliability222[Reliability222["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
          Reliability222[Reliability222["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
          Reliability222[Reliability222["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
          Reliability222[Reliability222["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
          Reliability222[Reliability222["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
          Reliability222[Reliability222["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
          Reliability222[Reliability222["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
          Reliability222[Reliability222["TRIPPED"] = 15] = "TRIPPED";
          Reliability222[Reliability222["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
          Reliability222[Reliability222["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
          Reliability222[Reliability222["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
          Reliability222[Reliability222["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
          Reliability222[Reliability222["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
          Reliability222[Reliability222["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
          Reliability222[Reliability222["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
          Reliability222[Reliability222["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
          Reliability222[Reliability222["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
          return Reliability222;
        })(Reliability22 || {});
        var RestartReason22 = /* @__PURE__ */ ((RestartReason222) => {
          RestartReason222[RestartReason222["UNKNOWN"] = 0] = "UNKNOWN";
          RestartReason222[RestartReason222["COLDSTART"] = 1] = "COLDSTART";
          RestartReason222[RestartReason222["WARMSTART"] = 2] = "WARMSTART";
          RestartReason222[RestartReason222["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
          RestartReason222[RestartReason222["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
          RestartReason222[RestartReason222["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
          RestartReason222[RestartReason222["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
          RestartReason222[RestartReason222["SUSPENDED"] = 7] = "SUSPENDED";
          RestartReason222[RestartReason222["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
          return RestartReason222;
        })(RestartReason22 || {});
        var SecurityLevel22 = /* @__PURE__ */ ((SecurityLevel222) => {
          SecurityLevel222[SecurityLevel222["INCAPABLE"] = 0] = "INCAPABLE";
          SecurityLevel222[SecurityLevel222["PLAIN"] = 1] = "PLAIN";
          SecurityLevel222[SecurityLevel222["SIGNED"] = 2] = "SIGNED";
          SecurityLevel222[SecurityLevel222["ENCRYPTED"] = 3] = "ENCRYPTED";
          SecurityLevel222[SecurityLevel222["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
          SecurityLevel222[SecurityLevel222["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
          return SecurityLevel222;
        })(SecurityLevel22 || {});
        var SecurityPolicy22 = /* @__PURE__ */ ((SecurityPolicy222) => {
          SecurityPolicy222[SecurityPolicy222["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
          SecurityPolicy222[SecurityPolicy222["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
          SecurityPolicy222[SecurityPolicy222["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
          SecurityPolicy222[SecurityPolicy222["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
          return SecurityPolicy222;
        })(SecurityPolicy22 || {});
        var Segmentation22 = /* @__PURE__ */ ((Segmentation222) => {
          Segmentation222[Segmentation222["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
          Segmentation222[Segmentation222["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
          Segmentation222[Segmentation222["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
          Segmentation222[Segmentation222["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
          return Segmentation222;
        })(Segmentation22 || {});
        var ShedState22 = /* @__PURE__ */ ((ShedState222) => {
          ShedState222[ShedState222["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
          ShedState222[ShedState222["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
          ShedState222[ShedState222["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
          ShedState222[ShedState222["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
          return ShedState222;
        })(ShedState22 || {});
        var SilencedState22 = /* @__PURE__ */ ((SilencedState222) => {
          SilencedState222[SilencedState222["UNSILENCED"] = 0] = "UNSILENCED";
          SilencedState222[SilencedState222["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
          SilencedState222[SilencedState222["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
          SilencedState222[SilencedState222["ALL_SILENCED"] = 3] = "ALL_SILENCED";
          return SilencedState222;
        })(SilencedState22 || {});
        var TimerState22 = /* @__PURE__ */ ((TimerState222) => {
          TimerState222[TimerState222["IDLE"] = 0] = "IDLE";
          TimerState222[TimerState222["RUNNING"] = 1] = "RUNNING";
          TimerState222[TimerState222["EXPIRED"] = 2] = "EXPIRED";
          return TimerState222;
        })(TimerState22 || {});
        var TimerTransition22 = /* @__PURE__ */ ((TimerTransition222) => {
          TimerTransition222[TimerTransition222["NONE"] = 0] = "NONE";
          TimerTransition222[TimerTransition222["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
          TimerTransition222[TimerTransition222["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
          TimerTransition222[TimerTransition222["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
          TimerTransition222[TimerTransition222["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
          TimerTransition222[TimerTransition222["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
          TimerTransition222[TimerTransition222["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
          TimerTransition222[TimerTransition222["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
          return TimerTransition222;
        })(TimerTransition22 || {});
        var VTClass22 = /* @__PURE__ */ ((VTClass222) => {
          VTClass222[VTClass222["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
          VTClass222[VTClass222["ANSI_X3_64"] = 1] = "ANSI_X3_64";
          VTClass222[VTClass222["DEC_VT52"] = 2] = "DEC_VT52";
          VTClass222[VTClass222["DEC_VT100"] = 3] = "DEC_VT100";
          VTClass222[VTClass222["DEC_VT220"] = 4] = "DEC_VT220";
          VTClass222[VTClass222["HP_700_94"] = 5] = "HP_700_94";
          VTClass222[VTClass222["IBM_3130"] = 6] = "IBM_3130";
          return VTClass222;
        })(VTClass22 || {});
        var WriteStatus22 = /* @__PURE__ */ ((WriteStatus222) => {
          WriteStatus222[WriteStatus222["IDLE"] = 0] = "IDLE";
          WriteStatus222[WriteStatus222["IN_PROGRESS"] = 1] = "IN_PROGRESS";
          WriteStatus222[WriteStatus222["SUCCESSFUL"] = 2] = "SUCCESSFUL";
          WriteStatus222[WriteStatus222["FAILED"] = 3] = "FAILED";
          return WriteStatus222;
        })(WriteStatus22 || {});
        var DaysOfWeek22 = /* @__PURE__ */ ((DaysOfWeek222) => {
          DaysOfWeek222[DaysOfWeek222["MONDAY"] = 0] = "MONDAY";
          DaysOfWeek222[DaysOfWeek222["TUESDAY"] = 1] = "TUESDAY";
          DaysOfWeek222[DaysOfWeek222["WEDNESDAY"] = 2] = "WEDNESDAY";
          DaysOfWeek222[DaysOfWeek222["THURSDAY"] = 3] = "THURSDAY";
          DaysOfWeek222[DaysOfWeek222["FRIDAY"] = 4] = "FRIDAY";
          DaysOfWeek222[DaysOfWeek222["SATURDAY"] = 5] = "SATURDAY";
          DaysOfWeek222[DaysOfWeek222["SUNDAY"] = 6] = "SUNDAY";
          return DaysOfWeek222;
        })(DaysOfWeek22 || {});
        var EventTransitionBits22 = /* @__PURE__ */ ((EventTransitionBits222) => {
          EventTransitionBits222[EventTransitionBits222["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
          EventTransitionBits222[EventTransitionBits222["TO_FAULT"] = 1] = "TO_FAULT";
          EventTransitionBits222[EventTransitionBits222["TO_NORMAL"] = 2] = "TO_NORMAL";
          return EventTransitionBits222;
        })(EventTransitionBits22 || {});
        var LimitEnable22 = /* @__PURE__ */ ((LimitEnable222) => {
          LimitEnable222[LimitEnable222["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
          LimitEnable222[LimitEnable222["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
          return LimitEnable222;
        })(LimitEnable22 || {});
        var LogStatus22 = /* @__PURE__ */ ((LogStatus222) => {
          LogStatus222[LogStatus222["LOG_DISABLED"] = 0] = "LOG_DISABLED";
          LogStatus222[LogStatus222["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
          LogStatus222[LogStatus222["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
          return LogStatus222;
        })(LogStatus22 || {});
        var ObjectTypesSupported22 = /* @__PURE__ */ ((ObjectTypesSupported222) => {
          ObjectTypesSupported222[ObjectTypesSupported222["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
          ObjectTypesSupported222[ObjectTypesSupported222["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
          ObjectTypesSupported222[ObjectTypesSupported222["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["BINARY_INPUT"] = 3] = "BINARY_INPUT";
          ObjectTypesSupported222[ObjectTypesSupported222["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
          ObjectTypesSupported222[ObjectTypesSupported222["BINARY_VALUE"] = 5] = "BINARY_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["CALENDAR"] = 6] = "CALENDAR";
          ObjectTypesSupported222[ObjectTypesSupported222["COMMAND"] = 7] = "COMMAND";
          ObjectTypesSupported222[ObjectTypesSupported222["DEVICE"] = 8] = "DEVICE";
          ObjectTypesSupported222[ObjectTypesSupported222["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
          ObjectTypesSupported222[ObjectTypesSupported222["FILE"] = 10] = "FILE";
          ObjectTypesSupported222[ObjectTypesSupported222["GROUP"] = 11] = "GROUP";
          ObjectTypesSupported222[ObjectTypesSupported222["LOOP"] = 12] = "LOOP";
          ObjectTypesSupported222[ObjectTypesSupported222["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
          ObjectTypesSupported222[ObjectTypesSupported222["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
          ObjectTypesSupported222[ObjectTypesSupported222["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
          ObjectTypesSupported222[ObjectTypesSupported222["PROGRAM"] = 16] = "PROGRAM";
          ObjectTypesSupported222[ObjectTypesSupported222["SCHEDULE"] = 17] = "SCHEDULE";
          ObjectTypesSupported222[ObjectTypesSupported222["AVERAGING"] = 18] = "AVERAGING";
          ObjectTypesSupported222[ObjectTypesSupported222["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["TREND_LOG"] = 20] = "TREND_LOG";
          ObjectTypesSupported222[ObjectTypesSupported222["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
          ObjectTypesSupported222[ObjectTypesSupported222["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
          ObjectTypesSupported222[ObjectTypesSupported222["ACCUMULATOR"] = 23] = "ACCUMULATOR";
          ObjectTypesSupported222[ObjectTypesSupported222["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
          ObjectTypesSupported222[ObjectTypesSupported222["EVENT_LOG"] = 25] = "EVENT_LOG";
          ObjectTypesSupported222[ObjectTypesSupported222["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
          ObjectTypesSupported222[ObjectTypesSupported222["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
          ObjectTypesSupported222[ObjectTypesSupported222["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
          ObjectTypesSupported222[ObjectTypesSupported222["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
          ObjectTypesSupported222[ObjectTypesSupported222["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
          ObjectTypesSupported222[ObjectTypesSupported222["TIMER"] = 31] = "TIMER";
          ObjectTypesSupported222[ObjectTypesSupported222["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
          ObjectTypesSupported222[ObjectTypesSupported222["ACCESS_POINT"] = 33] = "ACCESS_POINT";
          ObjectTypesSupported222[ObjectTypesSupported222["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
          ObjectTypesSupported222[ObjectTypesSupported222["ACCESS_USER"] = 35] = "ACCESS_USER";
          ObjectTypesSupported222[ObjectTypesSupported222["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
          ObjectTypesSupported222[ObjectTypesSupported222["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
          ObjectTypesSupported222[ObjectTypesSupported222["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
          ObjectTypesSupported222[ObjectTypesSupported222["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["DATE_VALUE"] = 42] = "DATE_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["TIME_VALUE"] = 50] = "TIME_VALUE";
          ObjectTypesSupported222[ObjectTypesSupported222["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
          ObjectTypesSupported222[ObjectTypesSupported222["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
          ObjectTypesSupported222[ObjectTypesSupported222["CHANNEL"] = 53] = "CHANNEL";
          ObjectTypesSupported222[ObjectTypesSupported222["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
          ObjectTypesSupported222[ObjectTypesSupported222["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
          ObjectTypesSupported222[ObjectTypesSupported222["NETWORK_PORT"] = 56] = "NETWORK_PORT";
          ObjectTypesSupported222[ObjectTypesSupported222["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
          ObjectTypesSupported222[ObjectTypesSupported222["ESCALATOR"] = 58] = "ESCALATOR";
          ObjectTypesSupported222[ObjectTypesSupported222["LIFT"] = 59] = "LIFT";
          return ObjectTypesSupported222;
        })(ObjectTypesSupported22 || {});
        var ResultFlags22 = /* @__PURE__ */ ((ResultFlags222) => {
          ResultFlags222[ResultFlags222["FIRST_ITEM"] = 0] = "FIRST_ITEM";
          ResultFlags222[ResultFlags222["LAST_ITEM"] = 1] = "LAST_ITEM";
          ResultFlags222[ResultFlags222["MORE_ITEMS"] = 2] = "MORE_ITEMS";
          return ResultFlags222;
        })(ResultFlags22 || {});
        var ServicesSupported22 = /* @__PURE__ */ ((ServicesSupported222) => {
          ServicesSupported222[ServicesSupported222["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
          ServicesSupported222[ServicesSupported222["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
          ServicesSupported222[ServicesSupported222["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
          ServicesSupported222[ServicesSupported222["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
          ServicesSupported222[ServicesSupported222["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
          ServicesSupported222[ServicesSupported222["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
          ServicesSupported222[ServicesSupported222["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
          ServicesSupported222[ServicesSupported222["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
          ServicesSupported222[ServicesSupported222["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
          ServicesSupported222[ServicesSupported222["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
          ServicesSupported222[ServicesSupported222["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
          ServicesSupported222[ServicesSupported222["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
          ServicesSupported222[ServicesSupported222["READ_PROPERTY"] = 12] = "READ_PROPERTY";
          ServicesSupported222[ServicesSupported222["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
          ServicesSupported222[ServicesSupported222["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
          ServicesSupported222[ServicesSupported222["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
          ServicesSupported222[ServicesSupported222["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
          ServicesSupported222[ServicesSupported222["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
          ServicesSupported222[ServicesSupported222["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
          ServicesSupported222[ServicesSupported222["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
          ServicesSupported222[ServicesSupported222["VT_OPEN"] = 21] = "VT_OPEN";
          ServicesSupported222[ServicesSupported222["VT_CLOSE"] = 22] = "VT_CLOSE";
          ServicesSupported222[ServicesSupported222["VT_DATA"] = 23] = "VT_DATA";
          ServicesSupported222[ServicesSupported222["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
          ServicesSupported222[ServicesSupported222["AUTHENTICATE"] = 24] = "AUTHENTICATE";
          ServicesSupported222[ServicesSupported222["REQUEST_KEY"] = 25] = "REQUEST_KEY";
          ServicesSupported222[ServicesSupported222["I_AM"] = 26] = "I_AM";
          ServicesSupported222[ServicesSupported222["I_HAVE"] = 27] = "I_HAVE";
          ServicesSupported222[ServicesSupported222["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
          ServicesSupported222[ServicesSupported222["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
          ServicesSupported222[ServicesSupported222["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
          ServicesSupported222[ServicesSupported222["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
          ServicesSupported222[ServicesSupported222["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
          ServicesSupported222[ServicesSupported222["WHO_HAS"] = 33] = "WHO_HAS";
          ServicesSupported222[ServicesSupported222["WHO_IS"] = 34] = "WHO_IS";
          ServicesSupported222[ServicesSupported222["READ_RANGE"] = 35] = "READ_RANGE";
          ServicesSupported222[ServicesSupported222["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
          ServicesSupported222[ServicesSupported222["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
          ServicesSupported222[ServicesSupported222["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
          ServicesSupported222[ServicesSupported222["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
          ServicesSupported222[ServicesSupported222["WRITE_GROUP"] = 40] = "WRITE_GROUP";
          ServicesSupported222[ServicesSupported222["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
          ServicesSupported222[ServicesSupported222["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
          ServicesSupported222[ServicesSupported222["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
          return ServicesSupported222;
        })(ServicesSupported22 || {});
        var StatusFlags22 = /* @__PURE__ */ ((StatusFlags222) => {
          StatusFlags222[StatusFlags222["IN_ALARM"] = 0] = "IN_ALARM";
          StatusFlags222[StatusFlags222["FAULT"] = 1] = "FAULT";
          StatusFlags222[StatusFlags222["OVERRIDDEN"] = 2] = "OVERRIDDEN";
          StatusFlags222[StatusFlags222["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
          return StatusFlags222;
        })(StatusFlags22 || {});
        var ApplicationTag22 = /* @__PURE__ */ ((ApplicationTag222) => {
          ApplicationTag222[ApplicationTag222["NULL"] = 0] = "NULL";
          ApplicationTag222[ApplicationTag222["BOOLEAN"] = 1] = "BOOLEAN";
          ApplicationTag222[ApplicationTag222["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
          ApplicationTag222[ApplicationTag222["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
          ApplicationTag222[ApplicationTag222["REAL"] = 4] = "REAL";
          ApplicationTag222[ApplicationTag222["DOUBLE"] = 5] = "DOUBLE";
          ApplicationTag222[ApplicationTag222["OCTET_STRING"] = 6] = "OCTET_STRING";
          ApplicationTag222[ApplicationTag222["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
          ApplicationTag222[ApplicationTag222["BIT_STRING"] = 8] = "BIT_STRING";
          ApplicationTag222[ApplicationTag222["ENUMERATED"] = 9] = "ENUMERATED";
          ApplicationTag222[ApplicationTag222["DATE"] = 10] = "DATE";
          ApplicationTag222[ApplicationTag222["TIME"] = 11] = "TIME";
          ApplicationTag222[ApplicationTag222["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
          ApplicationTag222[ApplicationTag222["EMPTYLIST"] = 100] = "EMPTYLIST";
          ApplicationTag222[ApplicationTag222["WEEKNDAY"] = 101] = "WEEKNDAY";
          ApplicationTag222[ApplicationTag222["DATERANGE"] = 102] = "DATERANGE";
          ApplicationTag222[ApplicationTag222["DATETIME"] = 103] = "DATETIME";
          ApplicationTag222[ApplicationTag222["TIMESTAMP"] = 104] = "TIMESTAMP";
          ApplicationTag222[ApplicationTag222["ERROR"] = 105] = "ERROR";
          ApplicationTag222[ApplicationTag222["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
          ApplicationTag222[ApplicationTag222["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
          ApplicationTag222[ApplicationTag222["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
          ApplicationTag222[ApplicationTag222["DESTINATION"] = 109] = "DESTINATION";
          ApplicationTag222[ApplicationTag222["RECIPIENT"] = 110] = "RECIPIENT";
          ApplicationTag222[ApplicationTag222["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
          ApplicationTag222[ApplicationTag222["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
          ApplicationTag222[ApplicationTag222["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
          ApplicationTag222[ApplicationTag222["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
          ApplicationTag222[ApplicationTag222["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
          ApplicationTag222[ApplicationTag222["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
          ApplicationTag222[ApplicationTag222["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
          ApplicationTag222[ApplicationTag222["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
          ApplicationTag222[ApplicationTag222["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
          ApplicationTag222[ApplicationTag222["LOG_RECORD"] = 120] = "LOG_RECORD";
          return ApplicationTag222;
        })(ApplicationTag22 || {});
        var ApplicationTagName22 = invertEnum22(
          ApplicationTag22
        );
        var BvlcResultFormat22 = /* @__PURE__ */ ((BvlcResultFormat222) => {
          BvlcResultFormat222[BvlcResultFormat222["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
          BvlcResultFormat222[BvlcResultFormat222["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
          BvlcResultFormat222[BvlcResultFormat222["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
          BvlcResultFormat222[BvlcResultFormat222["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
          BvlcResultFormat222[BvlcResultFormat222["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
          BvlcResultFormat222[BvlcResultFormat222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
          BvlcResultFormat222[BvlcResultFormat222["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
          return BvlcResultFormat222;
        })(BvlcResultFormat22 || {});
        var BvlcResultPurpose22 = /* @__PURE__ */ ((BvlcResultPurpose222) => {
          BvlcResultPurpose222[BvlcResultPurpose222["BVLC_RESULT"] = 0] = "BVLC_RESULT";
          BvlcResultPurpose222[BvlcResultPurpose222["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
          BvlcResultPurpose222[BvlcResultPurpose222["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
          BvlcResultPurpose222[BvlcResultPurpose222["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
          BvlcResultPurpose222[BvlcResultPurpose222["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
          BvlcResultPurpose222[BvlcResultPurpose222["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
          BvlcResultPurpose222[BvlcResultPurpose222["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
          BvlcResultPurpose222[BvlcResultPurpose222["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
          BvlcResultPurpose222[BvlcResultPurpose222["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
          BvlcResultPurpose222[BvlcResultPurpose222["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
          BvlcResultPurpose222[BvlcResultPurpose222["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
          BvlcResultPurpose222[BvlcResultPurpose222["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
          BvlcResultPurpose222[BvlcResultPurpose222["SECURE_BVLL"] = 12] = "SECURE_BVLL";
          return BvlcResultPurpose222;
        })(BvlcResultPurpose22 || {});
        var CharacterStringEncoding22 = /* @__PURE__ */ ((CharacterStringEncoding222) => {
          CharacterStringEncoding222[CharacterStringEncoding222["UTF_8"] = 0] = "UTF_8";
          CharacterStringEncoding222[CharacterStringEncoding222["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
          CharacterStringEncoding222[CharacterStringEncoding222["JIS_X_0208"] = 2] = "JIS_X_0208";
          CharacterStringEncoding222[CharacterStringEncoding222["UCS_4"] = 3] = "UCS_4";
          CharacterStringEncoding222[CharacterStringEncoding222["UCS_2"] = 4] = "UCS_2";
          CharacterStringEncoding222[CharacterStringEncoding222["ISO_8859_1"] = 5] = "ISO_8859_1";
          return CharacterStringEncoding222;
        })(CharacterStringEncoding22 || {});
        var CovType22 = /* @__PURE__ */ ((CovType222) => {
          CovType222[CovType222["REAL"] = 0] = "REAL";
          CovType222[CovType222["BIT_STRING"] = 1] = "BIT_STRING";
          return CovType222;
        })(CovType22 || {});
        var EnableDisable22 = /* @__PURE__ */ ((EnableDisable222) => {
          EnableDisable222[EnableDisable222["ENABLE"] = 0] = "ENABLE";
          EnableDisable222[EnableDisable222["DISABLE"] = 1] = "DISABLE";
          EnableDisable222[EnableDisable222["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
          return EnableDisable222;
        })(EnableDisable22 || {});
        var MaxApduLengthAccepted22 = /* @__PURE__ */ ((MaxApduLengthAccepted222) => {
          MaxApduLengthAccepted222[MaxApduLengthAccepted222["OCTETS_50"] = 0] = "OCTETS_50";
          MaxApduLengthAccepted222[MaxApduLengthAccepted222["OCTETS_128"] = 1] = "OCTETS_128";
          MaxApduLengthAccepted222[MaxApduLengthAccepted222["OCTETS_206"] = 2] = "OCTETS_206";
          MaxApduLengthAccepted222[MaxApduLengthAccepted222["OCTETS_480"] = 3] = "OCTETS_480";
          MaxApduLengthAccepted222[MaxApduLengthAccepted222["OCTETS_1024"] = 4] = "OCTETS_1024";
          MaxApduLengthAccepted222[MaxApduLengthAccepted222["OCTETS_1476"] = 5] = "OCTETS_1476";
          return MaxApduLengthAccepted222;
        })(MaxApduLengthAccepted22 || {});
        var MaxSegmentsAccepted22 = /* @__PURE__ */ ((MaxSegmentsAccepted222) => {
          MaxSegmentsAccepted222[MaxSegmentsAccepted222["SEGMENTS_0"] = 0] = "SEGMENTS_0";
          MaxSegmentsAccepted222[MaxSegmentsAccepted222["SEGMENTS_2"] = 16] = "SEGMENTS_2";
          MaxSegmentsAccepted222[MaxSegmentsAccepted222["SEGMENTS_4"] = 32] = "SEGMENTS_4";
          MaxSegmentsAccepted222[MaxSegmentsAccepted222["SEGMENTS_8"] = 48] = "SEGMENTS_8";
          MaxSegmentsAccepted222[MaxSegmentsAccepted222["SEGMENTS_16"] = 64] = "SEGMENTS_16";
          MaxSegmentsAccepted222[MaxSegmentsAccepted222["SEGMENTS_32"] = 80] = "SEGMENTS_32";
          MaxSegmentsAccepted222[MaxSegmentsAccepted222["SEGMENTS_64"] = 96] = "SEGMENTS_64";
          MaxSegmentsAccepted222[MaxSegmentsAccepted222["SEGMENTS_65"] = 112] = "SEGMENTS_65";
          return MaxSegmentsAccepted222;
        })(MaxSegmentsAccepted22 || {});
        var NetworkLayerMessageType22 = /* @__PURE__ */ ((NetworkLayerMessageType222) => {
          NetworkLayerMessageType222[NetworkLayerMessageType222["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
          NetworkLayerMessageType222[NetworkLayerMessageType222["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
          NetworkLayerMessageType222[NetworkLayerMessageType222["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
          NetworkLayerMessageType222[NetworkLayerMessageType222["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
          NetworkLayerMessageType222[NetworkLayerMessageType222["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
          NetworkLayerMessageType222[NetworkLayerMessageType222["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
          NetworkLayerMessageType222[NetworkLayerMessageType222["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
          NetworkLayerMessageType222[NetworkLayerMessageType222["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
          NetworkLayerMessageType222[NetworkLayerMessageType222["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
          NetworkLayerMessageType222[NetworkLayerMessageType222["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
          NetworkLayerMessageType222[NetworkLayerMessageType222["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
          NetworkLayerMessageType222[NetworkLayerMessageType222["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
          NetworkLayerMessageType222[NetworkLayerMessageType222["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
          NetworkLayerMessageType222[NetworkLayerMessageType222["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
          NetworkLayerMessageType222[NetworkLayerMessageType222["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
          NetworkLayerMessageType222[NetworkLayerMessageType222["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
          NetworkLayerMessageType222[NetworkLayerMessageType222["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
          NetworkLayerMessageType222[NetworkLayerMessageType222["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
          NetworkLayerMessageType222[NetworkLayerMessageType222["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
          NetworkLayerMessageType222[NetworkLayerMessageType222["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
          return NetworkLayerMessageType222;
        })(NetworkLayerMessageType22 || {});
        var NpduControlBit22 = /* @__PURE__ */ ((NpduControlBit222) => {
          NpduControlBit222[NpduControlBit222["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
          NpduControlBit222[NpduControlBit222["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
          NpduControlBit222[NpduControlBit222["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
          NpduControlBit222[NpduControlBit222["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
          return NpduControlBit222;
        })(NpduControlBit22 || {});
        var NpduControlPriority22 = /* @__PURE__ */ ((NpduControlPriority222) => {
          NpduControlPriority222[NpduControlPriority222["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
          NpduControlPriority222[NpduControlPriority222["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
          NpduControlPriority222[NpduControlPriority222["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
          NpduControlPriority222[NpduControlPriority222["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
          return NpduControlPriority222;
        })(NpduControlPriority22 || {});
        var PduConReqBit22 = /* @__PURE__ */ ((PduConReqBit222) => {
          PduConReqBit222[PduConReqBit222["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
          PduConReqBit222[PduConReqBit222["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
          PduConReqBit222[PduConReqBit222["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
          return PduConReqBit222;
        })(PduConReqBit22 || {});
        var PduSegAckBit22 = /* @__PURE__ */ ((PduSegAckBit222) => {
          PduSegAckBit222[PduSegAckBit222["SERVER"] = 1] = "SERVER";
          PduSegAckBit222[PduSegAckBit222["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
          return PduSegAckBit222;
        })(PduSegAckBit22 || {});
        var PduType22 = /* @__PURE__ */ ((PduType222) => {
          PduType222[PduType222["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
          PduType222[PduType222["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
          PduType222[PduType222["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
          PduType222[PduType222["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
          PduType222[PduType222["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
          PduType222[PduType222["ERROR"] = 80] = "ERROR";
          PduType222[PduType222["REJECT"] = 96] = "REJECT";
          PduType222[PduType222["ABORT"] = 112] = "ABORT";
          return PduType222;
        })(PduType22 || {});
        var PropertyStates22 = /* @__PURE__ */ ((PropertyStates222) => {
          PropertyStates222[PropertyStates222["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
          PropertyStates222[PropertyStates222["BINARY_VALUE"] = 1] = "BINARY_VALUE";
          PropertyStates222[PropertyStates222["EVENT_TYPE"] = 2] = "EVENT_TYPE";
          PropertyStates222[PropertyStates222["POLARITY"] = 3] = "POLARITY";
          PropertyStates222[PropertyStates222["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
          PropertyStates222[PropertyStates222["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
          PropertyStates222[PropertyStates222["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
          PropertyStates222[PropertyStates222["RELIABILITY"] = 7] = "RELIABILITY";
          PropertyStates222[PropertyStates222["STATE"] = 8] = "STATE";
          PropertyStates222[PropertyStates222["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
          PropertyStates222[PropertyStates222["UNITS"] = 10] = "UNITS";
          PropertyStates222[PropertyStates222["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
          PropertyStates222[PropertyStates222["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
          PropertyStates222[PropertyStates222["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
          PropertyStates222[PropertyStates222["RESTART_REASON"] = 14] = "RESTART_REASON";
          PropertyStates222[PropertyStates222["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
          PropertyStates222[PropertyStates222["ACTION"] = 16] = "ACTION";
          PropertyStates222[PropertyStates222["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
          PropertyStates222[PropertyStates222["DOOR_STATUS"] = 18] = "DOOR_STATUS";
          PropertyStates222[PropertyStates222["DOOR_VALUE"] = 19] = "DOOR_VALUE";
          PropertyStates222[PropertyStates222["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
          PropertyStates222[PropertyStates222["LOCK_STATUS"] = 21] = "LOCK_STATUS";
          PropertyStates222[PropertyStates222["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
          PropertyStates222[PropertyStates222["MAINTENANCE"] = 23] = "MAINTENANCE";
          PropertyStates222[PropertyStates222["NODE_TYPE"] = 24] = "NODE_TYPE";
          PropertyStates222[PropertyStates222["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
          PropertyStates222[PropertyStates222["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
          PropertyStates222[PropertyStates222["SHED_STATE"] = 27] = "SHED_STATE";
          PropertyStates222[PropertyStates222["SILENCED_STATE"] = 28] = "SILENCED_STATE";
          PropertyStates222[PropertyStates222["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
          PropertyStates222[PropertyStates222["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
          PropertyStates222[PropertyStates222["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
          PropertyStates222[PropertyStates222["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
          PropertyStates222[PropertyStates222["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
          PropertyStates222[PropertyStates222["BACKUP_STATE"] = 36] = "BACKUP_STATE";
          PropertyStates222[PropertyStates222["WRITE_STATUS"] = 37] = "WRITE_STATUS";
          PropertyStates222[PropertyStates222["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
          PropertyStates222[PropertyStates222["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
          PropertyStates222[PropertyStates222["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
          PropertyStates222[PropertyStates222["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
          PropertyStates222[PropertyStates222["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
          PropertyStates222[PropertyStates222["TIMER_STATE"] = 43] = "TIMER_STATE";
          PropertyStates222[PropertyStates222["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
          PropertyStates222[PropertyStates222["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
          PropertyStates222[PropertyStates222["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
          PropertyStates222[PropertyStates222["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
          PropertyStates222[PropertyStates222["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
          PropertyStates222[PropertyStates222["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
          PropertyStates222[PropertyStates222["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
          PropertyStates222[PropertyStates222["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
          PropertyStates222[PropertyStates222["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
          PropertyStates222[PropertyStates222["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
          PropertyStates222[PropertyStates222["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
          PropertyStates222[PropertyStates222["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
          PropertyStates222[PropertyStates222["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
          PropertyStates222[PropertyStates222["LIFT_FAULT"] = 57] = "LIFT_FAULT";
          PropertyStates222[PropertyStates222["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
          PropertyStates222[PropertyStates222["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
          return PropertyStates222;
        })(PropertyStates22 || {});
        var ReadRangeType22 = /* @__PURE__ */ ((ReadRangeType222) => {
          ReadRangeType222[ReadRangeType222["BY_POSITION"] = 0] = "BY_POSITION";
          ReadRangeType222[ReadRangeType222["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
          ReadRangeType222[ReadRangeType222["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
          return ReadRangeType222;
        })(ReadRangeType22 || {});
        var ReinitializedState22 = /* @__PURE__ */ ((ReinitializedState222) => {
          ReinitializedState222[ReinitializedState222["COLDSTART"] = 0] = "COLDSTART";
          ReinitializedState222[ReinitializedState222["WARMSTART"] = 1] = "WARMSTART";
          ReinitializedState222[ReinitializedState222["STARTBACKUP"] = 2] = "STARTBACKUP";
          ReinitializedState222[ReinitializedState222["ENDBACKUP"] = 3] = "ENDBACKUP";
          ReinitializedState222[ReinitializedState222["STARTRESTORE"] = 4] = "STARTRESTORE";
          ReinitializedState222[ReinitializedState222["ENDRESTORE"] = 5] = "ENDRESTORE";
          ReinitializedState222[ReinitializedState222["ABORTRESTORE"] = 6] = "ABORTRESTORE";
          ReinitializedState222[ReinitializedState222["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
          return ReinitializedState222;
        })(ReinitializedState22 || {});
        var TimeStamp22 = /* @__PURE__ */ ((TimeStamp222) => {
          TimeStamp222[TimeStamp222["TIME"] = 0] = "TIME";
          TimeStamp222[TimeStamp222["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
          TimeStamp222[TimeStamp222["DATETIME"] = 2] = "DATETIME";
          return TimeStamp222;
        })(TimeStamp22 || {});
        var import_events222 = __toESM22(require("events"));
        var import_debug322 = __toESM22(require("debug"));
        var import_dgram22 = require("dgram");
        var import_events32 = __toESM22(require("events"));
        var import_debug222 = __toESM22(require("debug"));
        var EventEmitter32 = import_events32.default.EventEmitter;
        var debug222 = (0, import_debug222.default)("bacnet:client:debug");
        var DEFAULT_BACNET_PORT32 = 47808;
        var Transport22 = class extends EventEmitter32 {
          constructor(settings) {
            super();
            this._lastSendMessages = {};
            this._settings = settings;
            this._server = (0, import_dgram22.createSocket)({
              type: "udp4",
              reuseAddr: settings.reuseAddr
            });
            this._server.on("message", (msg, rinfo) => {
              if (this.ownAddress.port === rinfo.port) {
                for (let [messageKey, earlierSentBuffer] of Object.entries(
                  this._lastSendMessages
                )) {
                  if (msg.equals(earlierSentBuffer)) {
                    debug222(
                      `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                    );
                    return;
                  }
                }
              }
              debug222(
                `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
                  "hex"
                )}`
              );
              this.emit(
                "message",
                msg,
                rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT32 ? "" : ":" + rinfo.port)
              );
            });
            this._server.on("listening", () => {
              this.ownAddress = this._server.address();
              debug222(
                `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
              );
              this.emit("listening", this.ownAddress);
            });
            this._server.on("error", (err) => {
              debug222("transport error", err.message);
              this.emit("error", err);
            });
            this._server.on("close", () => {
              debug222("transport closed");
              this.emit("close");
            });
          }
          getBroadcastAddress() {
            return this._settings.broadcastAddress;
          }
          getMaxPayload() {
            return 1482;
          }
          send(buffer, offset, receiver) {
            if (!receiver) {
              receiver = this.getBroadcastAddress();
              const dataToSend = Buffer.alloc(offset);
              const hrTime = process.hrtime();
              const messageKey = hrTime[0] * 1e9 + hrTime[1];
              buffer.copy(dataToSend, 0, 0, offset);
              this._lastSendMessages[messageKey] = dataToSend;
              setTimeout(() => {
                delete this._lastSendMessages[messageKey];
              }, 1e4);
            }
            const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
            const [address, port] = receiverAddress.split(":");
            debug222(
              "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
            );
            this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT32, address);
          }
          open() {
            this._server.bind(this._settings.port, this._settings.interface, () => {
              this._server.setBroadcast(true);
            });
          }
          close() {
            this._server.close();
          }
        };
        var services_exports22 = {};
        __export22(services_exports22, {
          addListElement: () => add_list_element_exports22,
          alarmAcknowledge: () => alarm_acknowledge_exports22,
          alarmSummary: () => alarm_summary_exports22,
          atomicReadFile: () => atomic_read_file_exports22,
          atomicWriteFile: () => atomic_write_file_exports22,
          covNotify: () => cov_notify_exports22,
          covNotifyUnconfirmed: () => cov_notify_exports22,
          createObject: () => create_object_exports22,
          deleteObject: () => delete_object_exports22,
          deviceCommunicationControl: () => device_communication_control_exports22,
          error: () => error_exports22,
          eventInformation: () => event_information_exports22,
          eventNotifyData: () => event_notify_data_exports22,
          getEnrollmentSummary: () => get_enrollment_summary_exports22,
          getEventInformation: () => get_event_information_exports22,
          iAm: () => i_am_exports22,
          iHave: () => i_have_exports22,
          lifeSafetyOperation: () => life_safety_operation_exports22,
          privateTransfer: () => private_transfer_exports22,
          readProperty: () => read_property_exports22,
          readPropertyMultiple: () => read_property_multiple_exports22,
          readRange: () => read_range_exports22,
          registerForeignDevice: () => register_foreign_device_exports22,
          reinitializeDevice: () => reinitialize_device_exports22,
          subscribeCov: () => subscribe_cov_exports22,
          subscribeProperty: () => subscribe_property_exports22,
          timeSync: () => time_sync_exports22,
          timeSyncUTC: () => time_sync_exports22,
          whoHas: () => who_has_exports22,
          whoIs: () => who_is_exports22,
          writeProperty: () => write_property_exports22,
          writePropertyMultiple: () => write_property_multiple_exports22
        });
        var add_list_element_exports22 = {};
        __export22(add_list_element_exports22, {
          decode: () => decode332,
          encode: () => encode332
        });
        var import_iconv_lite22 = __toESM22(require("iconv-lite"));
        var enums_default22 = enum_exports22;
        var START_YEAR22 = 1900;
        var MAX_YEARS22 = 256;
        var getBuffer22 = () => {
          return {
            buffer: Buffer.alloc(1472),
            offset: 0
          };
        };
        var getSignedLength22 = (value) => {
          if (value >= -128 && value < 128)
            return 1;
          else if (value >= -32768 && value < 32768)
            return 2;
          else if (value > -8388608 && value < 8388608)
            return 3;
          else
            return 4;
        };
        var getUnsignedLength22 = (value) => {
          if (value < 256)
            return 1;
          else if (value < 65536)
            return 2;
          else if (value < 16777216)
            return 3;
          else
            return 4;
        };
        var getEncodingType22 = (encoding, decodingBuffer, decodingOffset) => {
          switch (encoding) {
            case enums_default22.CharacterStringEncoding.UCS_2:
              if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
                return "ucs2";
              }
              return "UTF-16BE";
            case enums_default22.CharacterStringEncoding.ISO_8859_1:
              return "latin1";
            case enums_default22.CharacterStringEncoding.MICROSOFT_DBCS:
              return "cp850";
            case enums_default22.CharacterStringEncoding.JIS_X_0208:
              return "Shift_JIS";
            default:
              return "utf8";
          }
        };
        var encodeUnsigned22 = (buffer, value, length) => {
          buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
          buffer.offset += length;
        };
        var encodeBacnetUnsigned22 = (buffer, value) => {
          encodeUnsigned22(buffer, value, getUnsignedLength22(value));
        };
        var encodeSigned22 = (buffer, value, length) => {
          buffer.buffer.writeIntBE(value, buffer.offset, length, true);
          buffer.offset += length;
        };
        var encodeBacnetSigned22 = (buffer, value) => {
          encodeSigned22(buffer, value, getSignedLength22(value));
        };
        var encodeBacnetReal22 = (buffer, value) => {
          buffer.buffer.writeFloatBE(value, buffer.offset, true);
          buffer.offset += 4;
        };
        var encodeBacnetDouble22 = (buffer, value) => {
          buffer.buffer.writeDoubleBE(value, buffer.offset, true);
          buffer.offset += 8;
        };
        var decodeUnsigned22 = (buffer, offset, length) => {
          if (length === 0) {
            return {
              len: 0,
              value: 0
            };
          }
          return {
            len: length,
            //@ts-ignore
            value: buffer.readUIntBE(offset, length)
          };
        };
        var decodeEnumerated22 = (buffer, offset, length) => {
          return decodeUnsigned22(buffer, offset, length);
        };
        var encodeBacnetObjectId22 = (buffer, objectType, instance) => {
          const value = ((objectType & enums_default22.ASN1_MAX_OBJECT) << enums_default22.ASN1_INSTANCE_BITS | instance & enums_default22.ASN1_MAX_INSTANCE) >>> 0;
          encodeUnsigned22(buffer, value, 4);
        };
        var encodeTag22 = (buffer, tagNumber, contextSpecific, lenValueType) => {
          let len = 1;
          const tmp = new Array(3);
          tmp[0] = 0;
          if (contextSpecific) {
            tmp[0] |= 8;
          }
          if (tagNumber <= 14) {
            tmp[0] |= tagNumber << 4;
          } else {
            tmp[0] |= 240;
            tmp[1] = tagNumber;
            len++;
          }
          if (lenValueType <= 4) {
            tmp[0] |= lenValueType;
            Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
            buffer.offset += len;
          } else {
            tmp[0] |= 5;
            if (lenValueType <= 253) {
              tmp[len++] = lenValueType;
              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
              buffer.offset += len;
            } else if (lenValueType <= 65535) {
              tmp[len++] = 254;
              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
              buffer.offset += len;
              encodeUnsigned22(buffer, lenValueType, 2);
            } else {
              tmp[len++] = 255;
              Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
              buffer.offset += len;
              encodeUnsigned22(buffer, lenValueType, 4);
            }
          }
        };
        var encodeBacnetEnumerated22 = (buffer, value) => {
          encodeBacnetUnsigned22(buffer, value);
        };
        var isExtendedTagNumber22 = (x) => {
          return (x & 240) === 240;
        };
        var isExtendedValue22 = (x) => {
          return (x & 7) === 5;
        };
        var isContextSpecific22 = (x) => {
          return (x & 8) === 8;
        };
        var isOpeningTag22 = (x) => {
          return (x & 7) === 6;
        };
        var isClosingTag22 = (x) => {
          return (x & 7) === 7;
        };
        var encodeContextReal22 = (buffer, tagNumber, value) => {
          encodeTag22(buffer, tagNumber, true, 4);
          encodeBacnetReal22(buffer, value);
        };
        var encodeContextUnsigned22 = (buffer, tagNumber, value) => {
          encodeTag22(buffer, tagNumber, true, getUnsignedLength22(value));
          encodeBacnetUnsigned22(buffer, value);
        };
        var encodeContextEnumerated22 = (buffer, tagNumber, value) => {
          encodeContextUnsigned22(buffer, tagNumber, value);
        };
        var encodeOctetString22 = (buffer, octetString, octetOffset, octetCount) => {
          if (octetString) {
            for (let i = octetOffset; i < octetOffset + octetCount; i++) {
              buffer.buffer[buffer.offset++] = octetString[i];
            }
          }
        };
        var encodeApplicationOctetString22 = (buffer, octetString, octetOffset, octetCount) => {
          encodeTag22(buffer, enums_default22.ApplicationTag.OCTET_STRING, false, octetCount);
          encodeOctetString22(buffer, octetString, octetOffset, octetCount);
        };
        var encodeApplicationNull22 = (buffer) => {
          buffer.buffer[buffer.offset++] = enums_default22.ApplicationTag.NULL;
        };
        var encodeApplicationBoolean22 = (buffer, booleanValue) => {
          encodeTag22(buffer, enums_default22.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
        };
        var encodeApplicationReal22 = (buffer, value) => {
          encodeTag22(buffer, enums_default22.ApplicationTag.REAL, false, 4);
          encodeBacnetReal22(buffer, value);
        };
        var encodeApplicationDouble22 = (buffer, value) => {
          encodeTag22(buffer, enums_default22.ApplicationTag.DOUBLE, false, 8);
          encodeBacnetDouble22(buffer, value);
        };
        var bitstringBytesUsed22 = (bitString) => {
          let len = 0;
          if (bitString.bitsUsed > 0) {
            const lastBit = bitString.bitsUsed - 1;
            const usedBytes = lastBit / 8 + 1;
            len = Math.floor(usedBytes);
          }
          return len;
        };
        var encodeApplicationObjectId22 = (buffer, objectType, instance) => {
          const tmp = getBuffer22();
          encodeBacnetObjectId22(tmp, objectType, instance);
          encodeTag22(buffer, enums_default22.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
          buffer.offset += tmp.offset;
        };
        var encodeApplicationUnsigned22 = (buffer, value) => {
          const tmp = getBuffer22();
          encodeBacnetUnsigned22(tmp, value);
          encodeTag22(buffer, enums_default22.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
          buffer.offset += tmp.offset;
        };
        var encodeApplicationEnumerated22 = (buffer, value) => {
          const tmp = getBuffer22();
          encodeBacnetEnumerated22(tmp, value);
          encodeTag22(buffer, enums_default22.ApplicationTag.ENUMERATED, false, tmp.offset);
          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
          buffer.offset += tmp.offset;
        };
        var encodeApplicationSigned22 = (buffer, value) => {
          const tmp = getBuffer22();
          encodeBacnetSigned22(tmp, value);
          encodeTag22(buffer, enums_default22.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
          buffer.offset += tmp.offset;
        };
        var byteReverseBits22 = (inByte) => {
          let outByte = 0;
          if ((inByte & 1) > 0) {
            outByte |= 128;
          }
          if ((inByte & 2) > 0) {
            outByte |= 64;
          }
          if ((inByte & 4) > 0) {
            outByte |= 32;
          }
          if ((inByte & 8) > 0) {
            outByte |= 16;
          }
          if ((inByte & 16) > 0) {
            outByte |= 8;
          }
          if ((inByte & 32) > 0) {
            outByte |= 4;
          }
          if ((inByte & 64) > 0) {
            outByte |= 2;
          }
          if ((inByte & 128) > 0) {
            outByte |= 1;
          }
          return outByte;
        };
        var bitstringOctet22 = (bitString, octetIndex) => {
          let octet = 0;
          if (bitString.value && octetIndex < enums_default22.ASN1_MAX_BITSTRING_BYTES) {
            octet = bitString.value[octetIndex];
          }
          return octet;
        };
        var encodeBitstring22 = (buffer, bitString) => {
          if (bitString.bitsUsed === 0) {
            buffer.buffer[buffer.offset++] = 0;
          } else {
            const usedBytes = bitstringBytesUsed22(bitString);
            const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
            buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
            for (let i = 0; i < usedBytes; i++) {
              buffer.buffer[buffer.offset++] = byteReverseBits22(
                bitstringOctet22(bitString, i)
              );
            }
          }
        };
        var encodeApplicationBitstring22 = (buffer, bitString) => {
          let bitStringEncodedLength = 1;
          bitStringEncodedLength += bitstringBytesUsed22(bitString);
          encodeTag22(
            buffer,
            enums_default22.ApplicationTag.BIT_STRING,
            false,
            bitStringEncodedLength
          );
          encodeBitstring22(buffer, bitString);
        };
        var encodeBacnetDate22 = (buffer, value) => {
          if (value === new Date(1, 1, 1)) {
            buffer.buffer[buffer.offset++] = 255;
            buffer.buffer[buffer.offset++] = 255;
            buffer.buffer[buffer.offset++] = 255;
            buffer.buffer[buffer.offset++] = 255;
            return;
          }
          if (value.getFullYear() >= START_YEAR22) {
            buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR22;
          } else if (value.getFullYear() < MAX_YEARS22) {
            buffer.buffer[buffer.offset++] = value.getFullYear();
          } else {
            throw new Error("invaide year: " + value.getFullYear());
          }
          buffer.buffer[buffer.offset++] = value.getMonth();
          buffer.buffer[buffer.offset++] = value.getDate();
          buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
        };
        var encodeApplicationDate22 = (buffer, value) => {
          encodeTag22(buffer, enums_default22.ApplicationTag.DATE, false, 4);
          encodeBacnetDate22(buffer, value);
        };
        var encodeBacnetTime22 = (buffer, value) => {
          buffer.buffer[buffer.offset++] = value.getHours();
          buffer.buffer[buffer.offset++] = value.getMinutes();
          buffer.buffer[buffer.offset++] = value.getSeconds();
          buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
        };
        var encodeApplicationTime22 = (buffer, value) => {
          encodeTag22(buffer, enums_default22.ApplicationTag.TIME, false, 4);
          encodeBacnetTime22(buffer, value);
        };
        var bacappEncodeDatetime22 = (buffer, value) => {
          if (value !== new Date(1, 1, 1)) {
            encodeApplicationDate22(buffer, value);
            encodeApplicationTime22(buffer, value);
          }
        };
        var encodeContextObjectId22 = (buffer, tagNumber, objectType, instance) => {
          encodeTag22(buffer, tagNumber, true, 4);
          encodeBacnetObjectId22(buffer, objectType, instance);
        };
        var encodeOpeningTag22 = (buffer, tagNumber) => {
          let len = 1;
          const tmp = new Array(2);
          tmp[0] = 8;
          if (tagNumber <= 14) {
            tmp[0] |= tagNumber << 4;
          } else {
            tmp[0] |= 240;
            tmp[1] = tagNumber;
            len++;
          }
          tmp[0] |= 6;
          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
          buffer.offset += len;
        };
        var encodeClosingTag22 = (buffer, tagNumber) => {
          let len = 1;
          const tmp = new Array(2);
          tmp[0] = 8;
          if (tagNumber <= 14) {
            tmp[0] |= tagNumber << 4;
          } else {
            tmp[0] |= 240;
            tmp[1] = tagNumber;
            len++;
          }
          tmp[0] |= 7;
          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
          buffer.offset += len;
        };
        var encodeReadAccessSpecification22 = (buffer, value) => {
          encodeContextObjectId22(
            buffer,
            0,
            value.objectId.type,
            value.objectId.instance
          );
          encodeOpeningTag22(buffer, 1);
          value.properties.forEach((p) => {
            encodeContextEnumerated22(buffer, 0, p.id);
            if (p.index && p.index !== enums_default22.ASN1_ARRAY_ALL) {
              encodeContextUnsigned22(buffer, 1, p.index);
            }
          });
          encodeClosingTag22(buffer, 1);
        };
        var encodeContextBoolean22 = (buffer, tagNumber, booleanValue) => {
          encodeTag22(buffer, tagNumber, true, 1);
          buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
          buffer.offset += 1;
        };
        var encodeCovSubscription22 = (buffer, value) => {
          encodeOpeningTag22(buffer, 0);
          encodeOpeningTag22(buffer, 0);
          encodeOpeningTag22(buffer, 1);
          encodeApplicationUnsigned22(buffer, value.recipient.network);
          if (value.recipient.network === 65535) {
            encodeApplicationOctetString22(buffer, 0, 0, 0);
          } else {
            encodeApplicationOctetString22(
              buffer,
              value.recipient.address,
              0,
              value.recipient.address.length
            );
          }
          encodeClosingTag22(buffer, 1);
          encodeClosingTag22(buffer, 0);
          encodeContextUnsigned22(buffer, 1, value.subscriptionProcessId);
          encodeClosingTag22(buffer, 0);
          encodeOpeningTag22(buffer, 1);
          encodeContextObjectId22(
            buffer,
            0,
            value.monitoredObjectId.type,
            value.monitoredObjectId.instance
          );
          encodeContextEnumerated22(buffer, 1, value.monitoredProperty.id);
          if (value.monitoredProperty.index !== enums_default22.ASN1_ARRAY_ALL) {
            encodeContextUnsigned22(buffer, 2, value.monitoredProperty.index);
          }
          encodeClosingTag22(buffer, 1);
          encodeContextBoolean22(buffer, 2, value.issueConfirmedNotifications);
          encodeContextUnsigned22(buffer, 3, value.timeRemaining);
          if (value.covIncrement > 0) {
            encodeContextReal22(buffer, 4, value.covIncrement);
          }
        };
        var bacappEncodeApplicationData22 = (buffer, value) => {
          if (value.value === null) {
            value.type = enums_default22.ApplicationTag.NULL;
          }
          switch (value.type) {
            case enums_default22.ApplicationTag.NULL:
              encodeApplicationNull22(buffer);
              break;
            case enums_default22.ApplicationTag.BOOLEAN:
              encodeApplicationBoolean22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.UNSIGNED_INTEGER:
              encodeApplicationUnsigned22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.SIGNED_INTEGER:
              encodeApplicationSigned22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.REAL:
              encodeApplicationReal22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.DOUBLE:
              encodeApplicationDouble22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.OCTET_STRING:
              encodeApplicationOctetString22(buffer, value.value, 0, value.value.length);
              break;
            case enums_default22.ApplicationTag.CHARACTER_STRING:
              encodeApplicationCharacterString22(buffer, value.value, value.encoding);
              break;
            case enums_default22.ApplicationTag.BIT_STRING:
              encodeApplicationBitstring22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.ENUMERATED:
              encodeApplicationEnumerated22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.DATE:
              encodeApplicationDate22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.TIME:
              encodeApplicationTime22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.TIMESTAMP:
              bacappEncodeTimestamp22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.DATETIME:
              bacappEncodeDatetime22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.OBJECTIDENTIFIER:
              encodeApplicationObjectId22(buffer, value.value.type, value.value.instance);
              break;
            case enums_default22.ApplicationTag.COV_SUBSCRIPTION:
              encodeCovSubscription22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.READ_ACCESS_RESULT:
              encodeReadAccessResult22(buffer, value.value);
              break;
            case enums_default22.ApplicationTag.READ_ACCESS_SPECIFICATION:
              encodeReadAccessSpecification22(buffer, value.value);
              break;
            case void 0:
              throw new Error(
                "Cannot encode a value if the type has not been specified"
              );
            default:
              throw "No encode for ApplicationTag type: " + enums_default22.getEnumName(
                enums_default22.ApplicationTag,
                value.type
              );
          }
        };
        var bacappEncodeDeviceObjPropertyRef22 = (buffer, value) => {
          encodeContextObjectId22(
            buffer,
            0,
            value.objectId.type,
            value.objectId.instance
          );
          encodeContextEnumerated22(buffer, 1, value.id);
          if (value.arrayIndex !== enums_default22.ASN1_ARRAY_ALL) {
            encodeContextUnsigned22(buffer, 2, value.arrayIndex);
          }
          if (value.deviceIndentifier.type === enums_default22.ObjectType.DEVICE) {
            encodeContextObjectId22(
              buffer,
              3,
              value.deviceIndentifier.type,
              value.deviceIndentifier.instance
            );
          }
        };
        var bacappEncodeContextDeviceObjPropertyRef22 = (buffer, tagNumber, value) => {
          encodeOpeningTag22(buffer, tagNumber);
          bacappEncodeDeviceObjPropertyRef22(buffer, value);
          encodeClosingTag22(buffer, tagNumber);
        };
        var bacappEncodePropertyState22 = (buffer, value) => {
          switch (value.type) {
            case enums_default22.PropertyStates.BOOLEAN_VALUE:
              encodeContextBoolean22(buffer, 0, value.state === 1);
              break;
            case enums_default22.PropertyStates.BINARY_VALUE:
              encodeContextEnumerated22(buffer, 1, value.state);
              break;
            case enums_default22.PropertyStates.EVENT_TYPE:
              encodeContextEnumerated22(buffer, 2, value.state);
              break;
            case enums_default22.PropertyStates.POLARITY:
              encodeContextEnumerated22(buffer, 3, value.state);
              break;
            case enums_default22.PropertyStates.PROGRAM_CHANGE:
              encodeContextEnumerated22(buffer, 4, value.state);
              break;
            case enums_default22.PropertyStates.PROGRAM_STATE:
              encodeContextEnumerated22(buffer, 5, value.state);
              break;
            case enums_default22.PropertyStates.REASON_FOR_HALT:
              encodeContextEnumerated22(buffer, 6, value.state);
              break;
            case enums_default22.PropertyStates.RELIABILITY:
              encodeContextEnumerated22(buffer, 7, value.state);
              break;
            case enums_default22.PropertyStates.STATE:
              encodeContextEnumerated22(buffer, 8, value.state);
              break;
            case enums_default22.PropertyStates.SYSTEM_STATUS:
              encodeContextEnumerated22(buffer, 9, value.state);
              break;
            case enums_default22.PropertyStates.UNITS:
              encodeContextEnumerated22(buffer, 10, value.state);
              break;
            case enums_default22.PropertyStates.UNSIGNED_VALUE:
              encodeContextUnsigned22(buffer, 11, value.state);
              break;
            case enums_default22.PropertyStates.LIFE_SAFETY_MODE:
              encodeContextEnumerated22(buffer, 12, value.state);
              break;
            case enums_default22.PropertyStates.LIFE_SAFETY_STATE:
              encodeContextEnumerated22(buffer, 13, value.state);
              break;
            default:
              break;
          }
        };
        var encodeContextBitstring22 = (buffer, tagNumber, bitString) => {
          let bitStringEncodedLength = 1;
          bitStringEncodedLength += bitstringBytesUsed22(bitString);
          encodeTag22(buffer, tagNumber, true, bitStringEncodedLength);
          encodeBitstring22(buffer, bitString);
        };
        var encodeContextSigned22 = (buffer, tagNumber, value) => {
          encodeTag22(buffer, tagNumber, true, getSignedLength22(value));
          encodeBacnetSigned22(buffer, value);
        };
        var encodeContextTime22 = (buffer, tagNumber, value) => {
          encodeTag22(buffer, tagNumber, true, 4);
          encodeBacnetTime22(buffer, value);
        };
        var bacappEncodeContextDatetime22 = (buffer, tagNumber, value) => {
          if (value !== new Date(1, 1, 1)) {
            encodeOpeningTag22(buffer, tagNumber);
            bacappEncodeDatetime22(buffer, value);
            encodeClosingTag22(buffer, tagNumber);
          } else {
            throw new Error("wrong Datetime while bacapp encoding context");
          }
        };
        var decodeTagNumber22 = (buffer, offset) => {
          let len = 1;
          let tagNumber;
          if (isExtendedTagNumber22(buffer[offset])) {
            tagNumber = buffer[offset + 1];
            len++;
          } else {
            tagNumber = buffer[offset] >> 4;
          }
          return {
            len,
            tagNumber
          };
        };
        var decodeIsContextTag22 = (buffer, offset, tagNumber) => {
          const result = decodeTagNumber22(buffer, offset);
          return isContextSpecific22(buffer[offset]) && result.tagNumber === tagNumber;
        };
        var decodeIsOpeningTagNumber22 = (buffer, offset, tagNumber) => {
          const result = decodeTagNumber22(buffer, offset);
          return isOpeningTag22(buffer[offset]) && result.tagNumber === tagNumber;
        };
        var decodeIsClosingTagNumber22 = (buffer, offset, tagNumber) => {
          const result = decodeTagNumber22(buffer, offset);
          return isClosingTag22(buffer[offset]) && result.tagNumber === tagNumber;
        };
        var decodeIsClosingTag22 = (buffer, offset) => {
          return (buffer[offset] & 7) === 7;
        };
        var decodeIsOpeningTag22 = (buffer, offset) => {
          return (buffer[offset] & 7) === 6;
        };
        var decodeObjectId22 = (buffer, offset, NOT_USED_NUMBER = 0) => {
          const result = decodeUnsigned22(buffer, offset, 4);
          const objectType = result.value >> enums_default22.ASN1_INSTANCE_BITS & enums_default22.ASN1_MAX_OBJECT;
          const instance = result.value & enums_default22.ASN1_MAX_INSTANCE;
          return {
            len: result.len,
            objectType,
            instance
          };
        };
        var decodeObjectIdSafe22 = (buffer, offset, lenValue) => {
          if (lenValue !== 4) {
            return {
              len: 0,
              objectType: 0,
              instance: 0
            };
          } else {
            return decodeObjectId22(buffer, offset);
          }
        };
        var decodeTagNumberAndValue22 = (buffer, offset) => {
          let value;
          let result = decodeTagNumber22(buffer, offset);
          let len = result.len;
          if (isExtendedValue22(buffer[offset])) {
            if (buffer[offset + len] === 255) {
              len++;
              result = decodeUnsigned22(buffer, offset + len, 4);
              len += result.len;
              value = result.value;
            } else if (buffer[offset + len] === 254) {
              len++;
              result = decodeUnsigned22(buffer, offset + len, 2);
              len += result.len;
              value = result.value;
            } else {
              value = buffer[offset + len];
              len++;
            }
          } else if (isOpeningTag22(buffer[offset])) {
            value = 0;
          } else if (isClosingTag22(buffer[offset])) {
            value = 0;
          } else {
            value = buffer[offset] & 7;
          }
          return {
            len,
            tagNumber: result.tagNumber,
            value
          };
        };
        var bacappDecodeApplicationData22 = (buffer, offset, maxOffset, objectType, propertyId) => {
          if (!isContextSpecific22(buffer[offset])) {
            let result = decodeTagNumberAndValue22(buffer, offset);
            if (result) {
              let len = result.len;
              result = bacappDecodeData22(
                buffer,
                offset + len,
                maxOffset,
                result.tagNumber,
                result.value
              );
              if (!result) {
                return void 0;
              }
              let resObj = {
                len: len + result.len,
                type: result.type,
                value: result.value
              };
              if (result.encoding !== void 0)
                resObj.encoding = result.encoding;
              return resObj;
            }
          } else {
            return bacappDecodeContextApplicationData22(
              buffer,
              offset,
              maxOffset,
              objectType,
              propertyId
            );
          }
        };
        var encodeReadAccessResult22 = (buffer, value) => {
          encodeContextObjectId22(
            buffer,
            0,
            value.objectId.type,
            value.objectId.instance
          );
          encodeOpeningTag22(buffer, 1);
          value.values.forEach((item) => {
            encodeContextEnumerated22(buffer, 2, item.property.id);
            if (item.property.index !== enums_default22.ASN1_ARRAY_ALL) {
              encodeContextUnsigned22(buffer, 3, item.property.index);
            }
            if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
              encodeOpeningTag22(buffer, 5);
              encodeApplicationEnumerated22(buffer, item.value[0].value.errorClass);
              encodeApplicationEnumerated22(buffer, item.value[0].value.errorCode);
              encodeClosingTag22(buffer, 5);
            } else {
              if (!item.value)
                throw new Error("No value in item");
              encodeOpeningTag22(buffer, 4);
              item.value.forEach((subItem) => {
                bacappEncodeApplicationData22(buffer, subItem);
              });
              encodeClosingTag22(buffer, 4);
            }
          });
          encodeClosingTag22(buffer, 1);
        };
        var decodeReadAccessResult22 = (buffer, offset, apduLen) => {
          let len = 0;
          let value = {};
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          let result = decodeObjectId22(buffer, offset + len);
          value.objectId = {
            type: result.objectType,
            instance: result.instance
          };
          len += result.len;
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 1)) {
            return -1;
          }
          len++;
          const values = [];
          while (apduLen - len > 0) {
            let newEntry = {};
            if (decodeIsClosingTagNumber22(buffer, offset + len, 1)) {
              len++;
              break;
            }
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 2) {
              return void 0;
            }
            result = decodeEnumerated22(buffer, offset + len, result.value);
            newEntry.id = result.value;
            len += result.len;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            if (result.tagNumber === 3) {
              len += result.len;
              result = decodeUnsigned22(buffer, offset + len, result.value);
              newEntry.index = result.value;
              len += result.len;
            } else {
              newEntry.index = enums_default22.ASN1_ARRAY_ALL;
            }
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber === 4) {
              const localValues = [];
              while (len + offset <= buffer.length && !decodeIsClosingTagNumber22(buffer, offset + len, 4)) {
                let localResult = bacappDecodeApplicationData22(
                  buffer,
                  offset + len,
                  apduLen + offset - 1,
                  value.objectId.type,
                  newEntry.id
                );
                if (!localResult) {
                  return void 0;
                }
                len += localResult.len;
                let resObj = {
                  value: localResult.value,
                  type: localResult.type
                };
                if (localResult.encoding !== void 0)
                  resObj.encoding = localResult.encoding;
                localValues.push(resObj);
              }
              if (!decodeIsClosingTagNumber22(buffer, offset + len, 4)) {
                return void 0;
              }
              if (localValues.count === 2 && localValues[0].type === enums_default22.ApplicationTag.DATE && localValues[1].type === enums_default22.ApplicationTag.TIME) {
                const date = localValues[0].value;
                const time = localValues[1].value;
                const bdatetime = new Date(
                  date.year,
                  date.month,
                  date.day,
                  time.hour,
                  time.minute,
                  time.second,
                  time.millisecond
                );
                newEntry.value = [
                  { type: enums_default22.ApplicationTag.DATETIME, value: bdatetime }
                ];
              } else {
                newEntry.value = localValues;
              }
              len++;
            } else if (result.tagNumber === 5) {
              let err = {};
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
              result = decodeEnumerated22(buffer, offset + len, result.value);
              len += result.len;
              err.errorClass = result.value;
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
              result = decodeEnumerated22(buffer, offset + len, result.value);
              len += result.len;
              err.errorCode = result.value;
              if (!decodeIsClosingTagNumber22(buffer, offset + len, 5)) {
                return void 0;
              }
              len++;
              newEntry.value = [
                {
                  type: enums_default22.ApplicationTag.ERROR,
                  value: err
                }
              ];
            }
            values.push(newEntry);
          }
          value.values = values;
          return {
            len,
            value
          };
        };
        var decodeSigned22 = (buffer, offset, length) => {
          return {
            len: length,
            value: buffer.readIntBE(offset, length, true)
          };
        };
        var decodeReal22 = (buffer, offset) => {
          return {
            len: 4,
            value: buffer.readFloatBE(offset, true)
          };
        };
        var decodeRealSafe22 = (buffer, offset, lenValue) => {
          if (lenValue !== 4) {
            return {
              len: lenValue,
              value: 0
            };
          } else {
            return decodeReal22(buffer, offset);
          }
        };
        var decodeDouble22 = (buffer, offset) => {
          return {
            len: 8,
            value: buffer.readDoubleBE(offset, true)
          };
        };
        var decodeDoubleSafe22 = (buffer, offset, lenValue) => {
          if (lenValue !== 8) {
            return {
              len: lenValue,
              value: 0
            };
          } else {
            return decodeDouble22(buffer, offset);
          }
        };
        var decodeOctetString22 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
          const octetString = [];
          for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
            octetString.push(buffer[offset + i]);
          }
          return {
            len: octetStringLength,
            value: octetString
          };
        };
        var multiCharsetCharacterstringDecode22 = (buffer, offset, maxLength, encoding, length) => {
          const stringBuf = Buffer.alloc(length);
          buffer.copy(stringBuf, 0, offset, offset + length);
          return {
            value: import_iconv_lite22.default.decode(stringBuf, getEncodingType22(encoding, buffer, offset)),
            len: length + 1,
            encoding
          };
        };
        var decodeCharacterString22 = (buffer, offset, maxLength, lenValue) => {
          return multiCharsetCharacterstringDecode22(
            buffer,
            offset + 1,
            maxLength,
            buffer[offset],
            lenValue - 1
          );
        };
        var bitstringSetBitsUsed22 = (bitString, bytesUsed, unusedBits) => {
          bitString.bitsUsed = bytesUsed * 8;
          bitString.bitsUsed -= unusedBits;
        };
        var decodeBitstring22 = (buffer, offset, lenValue) => {
          let len = 0;
          let bitString = {};
          bitString.value = [];
          if (lenValue > 0) {
            const bytesUsed = lenValue - 1;
            if (bytesUsed <= enums_default22.ASN1_MAX_BITSTRING_BYTES) {
              len = 1;
              for (let i = 0; i < bytesUsed; i++) {
                bitString.value.push(byteReverseBits22(buffer[offset + len++]));
              }
              const unusedBits = buffer[offset] & 7;
              bitstringSetBitsUsed22(bitString, bytesUsed, unusedBits);
            }
          }
          return {
            len,
            value: bitString
          };
        };
        var decodeDate22 = (buffer, offset) => {
          let date;
          const year = buffer[offset] + 1900;
          const month = buffer[offset + 1];
          const day = buffer[offset + 2];
          const wday = buffer[offset + 3];
          if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
            date = new Date(1, 1, 1);
          } else {
            date = new Date(year, month, day);
          }
          return {
            len: 4,
            value: date
          };
        };
        var decodeDateSafe22 = (buffer, offset, lenValue) => {
          if (lenValue !== 4) {
            return {
              len: lenValue,
              value: new Date(1, 1, 1)
            };
          } else {
            return decodeDate22(buffer, offset);
          }
        };
        var decodeApplicationDate22 = (buffer, offset) => {
          const result = decodeTagNumber22(buffer, offset);
          if (result.tagNumber === enums_default22.ApplicationTag.DATE) {
            const value = decodeDate22(buffer, offset + 1);
            return {
              len: value.len + 1,
              value
            };
          }
          return void 0;
        };
        var decodeBacnetTime22 = (buffer, offset, value = new Date(1, 1, 1)) => {
          const hour = buffer[offset + 0];
          const min = buffer[offset + 1];
          const sec = buffer[offset + 2];
          let hundredths = buffer[offset + 3];
          if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
            value = new Date(1, 1, 1);
          } else {
            if (hundredths > 100)
              hundredths = 0;
            value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
          }
          return {
            len: 4,
            value
          };
        };
        var decodeBacnetTimeSafe22 = (buffer, offset, lenValue) => {
          if (lenValue !== 4) {
            return {
              len: lenValue,
              value: new Date(1, 1, 1)
            };
          } else {
            return decodeBacnetTime22(buffer, offset);
          }
        };
        var decodeApplicationTime22 = (buffer, offset) => {
          const result = decodeTagNumber22(buffer, offset);
          if (result.tagNumber === enums_default22.ApplicationTag.TIME) {
            const value = decodeBacnetTime22(buffer, offset + 1);
            return {
              len: value.len + 1,
              value
            };
          }
          return void 0;
        };
        var decodeBacnetDatetime22 = (buffer, offset) => {
          let len = 0;
          const date = decodeApplicationDate22(buffer, offset + len);
          len += date.len;
          const time = decodeApplicationTime22(buffer, offset + len);
          len += time.len;
          return {
            len,
            value: new Date(
              date.year,
              date.month,
              date.day,
              time.hour,
              time.minute,
              time.second,
              time.millisecond
            )
          };
        };
        var bacappDecodeData22 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
          let result;
          let value = {
            len: 0,
            type: tagDataType
          };
          switch (tagDataType) {
            case enums_default22.ApplicationTag.NULL:
              value.value = null;
              break;
            case enums_default22.ApplicationTag.BOOLEAN:
              value.value = lenValueType > 0;
              break;
            case enums_default22.ApplicationTag.UNSIGNED_INTEGER:
              result = decodeUnsigned22(buffer, offset, lenValueType);
              value.len += result.len;
              value.value = result.value;
              break;
            case enums_default22.ApplicationTag.SIGNED_INTEGER:
              result = decodeSigned22(buffer, offset, lenValueType);
              value.len += result.len;
              value.value = result.value;
              break;
            case enums_default22.ApplicationTag.REAL:
              result = decodeRealSafe22(buffer, offset, lenValueType);
              value.len += result.len;
              value.value = result.value;
              break;
            case enums_default22.ApplicationTag.DOUBLE:
              result = decodeDoubleSafe22(buffer, offset, lenValueType);
              value.len += result.len;
              value.value = result.value;
              break;
            case enums_default22.ApplicationTag.OCTET_STRING:
              result = decodeOctetString22(buffer, offset, maxLength, 0, lenValueType);
              value.len += result.len;
              value.value = result.value;
              break;
            case enums_default22.ApplicationTag.CHARACTER_STRING:
              result = decodeCharacterString22(buffer, offset, maxLength, lenValueType);
              value.len += result.len;
              value.value = result.value;
              value.encoding = result.encoding;
              break;
            case enums_default22.ApplicationTag.BIT_STRING:
              result = decodeBitstring22(buffer, offset, lenValueType);
              value.len += result.len;
              value.value = result.value;
              break;
            case enums_default22.ApplicationTag.ENUMERATED:
              result = decodeEnumerated22(buffer, offset, lenValueType);
              value.len += result.len;
              value.value = result.value;
              break;
            case enums_default22.ApplicationTag.DATE:
              result = decodeDateSafe22(buffer, offset, lenValueType);
              value.len += result.len;
              value.value = result.value;
              break;
            case enums_default22.ApplicationTag.TIME:
              result = decodeBacnetTimeSafe22(buffer, offset, lenValueType);
              value.len += result.len;
              value.value = result.value;
              break;
            case enums_default22.ApplicationTag.OBJECTIDENTIFIER:
              result = decodeObjectIdSafe22(buffer, offset, lenValueType);
              value.len += result.len;
              value.value = { type: result.objectType, instance: result.instance };
              break;
            default:
              break;
          }
          return value;
        };
        var bacappContextTagType22 = (property, tagNumber) => {
          let tag = 0;
          switch (property) {
            case enums_default22.PropertyIdentifier.ACTUAL_SHED_LEVEL:
            case enums_default22.PropertyIdentifier.REQUESTED_SHED_LEVEL:
            case enums_default22.PropertyIdentifier.EXPECTED_SHED_LEVEL:
              switch (tagNumber) {
                case 0:
                case 1:
                  tag = enums_default22.ApplicationTag.UNSIGNED_INTEGER;
                  break;
                case 2:
                  tag = enums_default22.ApplicationTag.REAL;
                  break;
                default:
                  break;
              }
              break;
            case enums_default22.PropertyIdentifier.ACTION:
              switch (tagNumber) {
                case 0:
                case 1:
                  tag = enums_default22.ApplicationTag.OBJECTIDENTIFIER;
                  break;
                case 2:
                  tag = enums_default22.ApplicationTag.ENUMERATED;
                  break;
                case 3:
                case 5:
                case 6:
                  tag = enums_default22.ApplicationTag.UNSIGNED_INTEGER;
                  break;
                case 7:
                case 8:
                  tag = enums_default22.ApplicationTag.BOOLEAN;
                  break;
                default:
                  break;
              }
              break;
            case enums_default22.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
              switch (tagNumber) {
                case 0:
                  tag = enums_default22.ApplicationTag.OBJECTIDENTIFIER;
                  break;
                default:
                  break;
              }
              break;
            case enums_default22.PropertyIdentifier.EXCEPTION_SCHEDULE:
              switch (tagNumber) {
                case 1:
                  tag = enums_default22.ApplicationTag.OBJECTIDENTIFIER;
                  break;
                case 3:
                  tag = enums_default22.ApplicationTag.UNSIGNED_INTEGER;
                  break;
                default:
                  break;
              }
              break;
            case enums_default22.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
              switch (tagNumber) {
                case 0:
                case 3:
                  tag = enums_default22.ApplicationTag.OBJECTIDENTIFIER;
                  break;
                case 1:
                  tag = enums_default22.ApplicationTag.ENUMERATED;
                  break;
                case 2:
                  tag = enums_default22.ApplicationTag.UNSIGNED_INTEGER;
                  break;
                default:
                  break;
              }
              break;
            case enums_default22.PropertyIdentifier.SUBORDINATE_LIST:
              switch (tagNumber) {
                case 0:
                case 1:
                  tag = enums_default22.ApplicationTag.OBJECTIDENTIFIER;
                  break;
                default:
                  break;
              }
              break;
            case enums_default22.PropertyIdentifier.RECIPIENT_LIST:
              switch (tagNumber) {
                case 0:
                  tag = enums_default22.ApplicationTag.OBJECTIDENTIFIER;
                  break;
                default:
                  break;
              }
              break;
            case enums_default22.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
              switch (tagNumber) {
                case 0:
                case 1:
                  break;
                case 2:
                  tag = enums_default22.ApplicationTag.BOOLEAN;
                  break;
                case 3:
                  tag = enums_default22.ApplicationTag.UNSIGNED_INTEGER;
                  break;
                case 4:
                  tag = enums_default22.ApplicationTag.REAL;
                  break;
                default:
                  break;
              }
              break;
            default:
              break;
          }
          return tag;
        };
        var decodeDeviceObjPropertyRef22 = (buffer, offset, NOTUSEDARG = 0) => {
          let len = 0;
          let arrayIndex = enums_default22.ASN1_ARRAY_ALL;
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          let objectId = decodeObjectId22(buffer, offset + len);
          len += objectId.len;
          let result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 1) {
            return void 0;
          }
          let id = decodeEnumerated22(buffer, offset + len, result.value);
          len += id.len;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          if (result.tagNumber === 2) {
            len += result.len;
            arrayIndex = decodeUnsigned22(buffer, offset + len, result.value);
            len += arrayIndex.len;
          }
          if (decodeIsContextTag22(buffer, offset + len, 3)) {
            if (!isClosingTag22(buffer[offset + len])) {
              len++;
              objectId = decodeObjectId22(buffer, offset + len);
              len += objectId.len;
            }
          }
          return {
            len,
            value: {
              objectId,
              id
            }
          };
        };
        var decodeReadAccessSpecification22 = (buffer, offset, apduLen) => {
          let len = 0;
          let value = {};
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          let decodedValue = decodeObjectId22(buffer, offset + len);
          value.objectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          len += decodedValue.len;
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 1)) {
            return void 0;
          }
          len++;
          const propertyIdAndArrayIndex = [];
          while (apduLen - len > 1 && !decodeIsClosingTagNumber22(buffer, offset + len, 1)) {
            let propertyRef = {};
            if (!isContextSpecific22(buffer[offset + len])) {
              return void 0;
            }
            let result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 0) {
              return void 0;
            }
            if (len + result.value >= apduLen) {
              return void 0;
            }
            decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
            propertyRef.id = decodedValue.value;
            len += decodedValue.len;
            propertyRef.index = enums_default22.ASN1_ARRAY_ALL;
            if (isContextSpecific22(buffer[offset + len]) && !isClosingTag22(buffer[offset + len])) {
              const tmp = decodeTagNumberAndValue22(buffer, offset + len);
              if (tmp.tagNumber === 1) {
                len += tmp.len;
                if (len + tmp.value >= apduLen) {
                  return void 0;
                }
                decodedValue = decodeUnsigned22(buffer, offset + len, tmp.value);
                propertyRef.index = decodedValue.value;
                len += decodedValue.len;
              }
            }
            propertyIdAndArrayIndex.push(propertyRef);
          }
          if (!decodeIsClosingTagNumber22(buffer, offset + len, 1)) {
            return void 0;
          }
          len++;
          value.properties = propertyIdAndArrayIndex;
          return {
            len,
            value
          };
        };
        var decodeCovSubscription22 = (buffer, offset, apduLen) => {
          let len = 0;
          let value = {};
          let result;
          let decodedValue;
          value.recipient = {};
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 1)) {
            return void 0;
          }
          len++;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== enums_default22.ApplicationTag.UNSIGNED_INTEGER) {
            return void 0;
          }
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.recipient.net = decodedValue.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== enums_default22.ApplicationTag.OCTET_STRING) {
            return void 0;
          }
          decodedValue = decodeOctetString22(
            buffer,
            offset + len,
            apduLen,
            0,
            result.value
          );
          len += decodedValue.len;
          value.recipient.adr = decodedValue.value;
          if (!decodeIsClosingTagNumber22(buffer, offset + len, 1)) {
            return void 0;
          }
          len++;
          if (!decodeIsClosingTagNumber22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 1) {
            return void 0;
          }
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.subscriptionProcessId = decodedValue.value;
          if (!decodeIsClosingTagNumber22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 1)) {
            return void 0;
          }
          len++;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 0) {
            return void 0;
          }
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          value.monitoredObjectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 1) {
            return void 0;
          }
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.monitoredProperty = {};
          value.monitoredProperty.id = decodedValue.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          if (result.tagNumber === 2) {
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.monitoredProperty.index = decodedValue.value;
          } else {
            value.monitoredProperty.index = enums_default22.ASN1_ARRAY_ALL;
          }
          if (!decodeIsClosingTagNumber22(buffer, offset + len, 1)) {
            return void 0;
          }
          len++;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 2) {
            return void 0;
          }
          value.issueConfirmedNotifications = buffer[offset + len] > 0;
          len++;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 3) {
            return void 0;
          }
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.timeRemaining = decodedValue.value;
          if (len < apduLen && !isClosingTag22(buffer[offset + len])) {
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 4) {
              return void 0;
            }
            decodedValue = decodeReal22(buffer, offset + len);
            len += decodedValue.len;
            value.covIncrement = decodedValue.value;
          }
          return {
            len,
            value
          };
        };
        var decodeCalendarDate22 = (buffer, offset) => {
          return {
            len: 4,
            year: buffer[offset],
            month: buffer[offset + 1],
            day: buffer[offset + 2],
            wday: buffer[offset + 3]
          };
        };
        var decodeCalendarDateRange22 = (buffer, offset) => {
          let len = 1;
          const startDate = decodeDate22(buffer, offset + len);
          len += startDate.len + 1;
          const endDate = decodeDate22(buffer, offset + len);
          len += endDate.len + 1;
          return {
            len,
            startDate,
            endDate
          };
        };
        var decodeCalendarWeekDay22 = (buffer, offset) => {
          return {
            len: 3,
            month: buffer[offset],
            week: buffer[offset + 1],
            wday: buffer[offset + 2]
          };
        };
        var decodeCalendar22 = (buffer, offset, apduLen) => {
          let len = 0;
          const entries = [];
          let decodedValue;
          while (len < apduLen) {
            const result = decodeTagNumber22(buffer, offset + len);
            len += result.len;
            switch (result.tagNumber) {
              case 0:
                decodedValue = decodeCalendarDate22(buffer, offset + len);
                len += decodedValue.len;
                entries.push(decodedValue);
                break;
              case 1:
                decodedValue = decodeCalendarDateRange22(buffer, offset + len);
                len += decodedValue.len;
                entries.push(decodedValue);
                break;
              case 2:
                decodedValue = decodeCalendarWeekDay22(buffer, offset + len);
                len += decodedValue.len;
                entries.push(decodedValue);
                break;
              default:
                return {
                  len: len - 1,
                  value: entries
                };
            }
          }
        };
        var bacappDecodeContextApplicationData22 = (buffer, offset, maxOffset, objectType, propertyId) => {
          let len = 0;
          let result;
          if (isContextSpecific22(buffer[offset])) {
            if (propertyId === enums_default22.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
              result = decodeReadAccessSpecification22(buffer, offset, maxOffset);
              if (!result) {
                return void 0;
              }
              return {
                type: enums_default22.ApplicationTag.READ_ACCESS_SPECIFICATION,
                value: result.value,
                len: result.len
              };
            } else if (propertyId === enums_default22.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
              result = decodeCovSubscription22(buffer, offset, maxOffset);
              if (!result) {
                return void 0;
              }
              return {
                type: enums_default22.ApplicationTag.COV_SUBSCRIPTION,
                value: result.value,
                len: result.len
              };
            } else if (objectType === enums_default22.ObjectType.GROUP && propertyId === enums_default22.PropertyIdentifier.PRESENT_VALUE) {
              result = decodeReadAccessResult22(buffer, offset, maxOffset);
              if (!result) {
                return void 0;
              }
              return {
                type: enums_default22.ApplicationTag.READ_ACCESS_RESULT,
                value: result.value,
                len: result.len
              };
            } else if (propertyId === enums_default22.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default22.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default22.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
              result = decodeDeviceObjPropertyRef22(buffer, offset, maxOffset);
              if (!result) {
                return void 0;
              }
              return {
                type: enums_default22.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
                value: result.value,
                len: result.len
              };
            } else if (propertyId === enums_default22.PropertyIdentifier.DATE_LIST) {
              result = decodeCalendar22(buffer, offset, maxOffset);
              if (!result) {
                return void 0;
              }
              return {
                type: enums_default22.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
                value: result.value,
                len: result.len
              };
            } else if (propertyId === enums_default22.PropertyIdentifier.EVENT_TIME_STAMPS) {
              let subEvtResult;
              let evtResult = decodeTagNumberAndValue22(buffer, offset + len);
              len += 1;
              if (evtResult.tagNumber === 0) {
                subEvtResult = decodeBacnetTime22(buffer, offset + 1);
                return {
                  type: enums_default22.ApplicationTag.TIMESTAMP,
                  value: subEvtResult.value,
                  len: subEvtResult.len + 1
                };
              } else if (evtResult.tagNumber === 1) {
                subEvtResult = decodeUnsigned22(buffer, offset + len, evtResult.value);
                return {
                  type: enums_default22.ApplicationTag.UNSIGNED_INTEGER,
                  value: subEvtResult.value,
                  len: subEvtResult.len + 1
                };
              } else if (evtResult.tagNumber === 2) {
                subEvtResult = decodeBacnetDatetime22(buffer, offset + len);
                return {
                  type: enums_default22.ApplicationTag.TIMESTAMP,
                  value: subEvtResult.value,
                  len: subEvtResult.len + 2
                };
              } else {
                return void 0;
              }
            }
            const list = [];
            let tagResult = decodeTagNumberAndValue22(buffer, offset + len);
            let multipleValues = isOpeningTag22(buffer[offset + len]);
            while (len + offset <= maxOffset && !isClosingTag22(buffer[offset + len])) {
              let subResult = decodeTagNumberAndValue22(buffer, offset + len);
              if (!subResult) {
                return void 0;
              }
              if (subResult.value === 0) {
                len += subResult.len;
                result = bacappDecodeApplicationData22(
                  buffer,
                  offset + len,
                  maxOffset,
                  enums_default22.ASN1_MAX_OBJECT_TYPE,
                  enums_default22.ASN1_MAX_PROPERTY_ID
                );
                if (!result) {
                  return void 0;
                }
                list.push(result);
                len += result.len;
              } else {
                const overrideTagNumber = bacappContextTagType22(
                  propertyId,
                  subResult.tagNumber
                );
                if (overrideTagNumber !== enums_default22.ASN1_MAX_APPLICATION_TAG) {
                  subResult.tagNumber = overrideTagNumber;
                }
                let bacappResult = bacappDecodeData22(
                  buffer,
                  offset + len + subResult.len,
                  maxOffset,
                  subResult.tagNumber,
                  subResult.value
                );
                if (!bacappResult) {
                  return void 0;
                }
                if (bacappResult.len === subResult.value) {
                  let resObj = {
                    value: bacappResult.value,
                    type: bacappResult.type
                  };
                  if (bacappResult.encoding !== void 0)
                    resObj.encoding = bacappResult.encoding;
                  list.push(resObj);
                  len += subResult.len + subResult.value;
                } else {
                  list.push({
                    value: buffer.slice(
                      offset + len + subResult.len,
                      offset + len + subResult.len + subResult.value
                    ),
                    type: enums_default22.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
                  });
                  len += subResult.len + subResult.value;
                }
              }
              if (multipleValues === false) {
                return {
                  len,
                  value: list[0],
                  type: enums_default22.ApplicationTag.CONTEXT_SPECIFIC_DECODED
                };
              }
            }
            if (len + offset > maxOffset) {
              return void 0;
            }
            if (decodeIsClosingTagNumber22(buffer, offset + len, tagResult.tagNumber)) {
              len++;
            }
            return {
              len,
              value: list,
              type: enums_default22.ApplicationTag.CONTEXT_SPECIFIC_DECODED
            };
          }
          return void 0;
        };
        var bacappEncodeTimestamp22 = (buffer, value) => {
          switch (value.type) {
            case enums_default22.TimeStamp.TIME:
              encodeContextTime22(buffer, 0, value.value);
              break;
            case enums_default22.TimeStamp.SEQUENCE_NUMBER:
              encodeContextUnsigned22(buffer, 1, value.value);
              break;
            case enums_default22.TimeStamp.DATETIME:
              bacappEncodeContextDatetime22(buffer, 2, value.value);
              break;
            default:
              throw new Error("NOT_IMPLEMENTED");
          }
        };
        var bacappEncodeContextTimestamp22 = (buffer, tagNumber, value) => {
          encodeOpeningTag22(buffer, tagNumber);
          bacappEncodeTimestamp22(buffer, value);
          encodeClosingTag22(buffer, tagNumber);
        };
        var decodeContextCharacterString22 = (buffer, offset, maxLength, tagNumber) => {
          let len = 0;
          if (!decodeIsContextTag22(buffer, offset + len, tagNumber)) {
            return void 0;
          }
          const result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          const decodedValue = multiCharsetCharacterstringDecode22(
            buffer,
            offset + 1 + len,
            maxLength,
            buffer[offset + len],
            result.value - 1
          );
          if (!decodedValue) {
            return void 0;
          }
          len += result.value;
          return {
            len,
            value: decodedValue.value,
            encoding: decodedValue.encoding
          };
        };
        var decodeIsContextTagWithLength22 = (buffer, offset, tagNumber) => {
          const result = decodeTagNumber22(buffer, offset);
          return {
            len: result.len,
            value: isContextSpecific22(buffer[offset]) && result.tagNumber === tagNumber
          };
        };
        var decodeContextObjectId22 = (buffer, offset, tagNumber) => {
          const result = decodeIsContextTagWithLength22(buffer, offset, tagNumber);
          if (!result.value) {
            return void 0;
          }
          const decodedValue = decodeObjectId22(buffer, offset + result.len);
          decodedValue.len = decodedValue.len + result.len;
          return decodedValue;
        };
        var encodeBacnetCharacterString22 = (buffer, value, encoding) => {
          encoding = encoding || enums_default22.CharacterStringEncoding.UTF_8;
          buffer.buffer[buffer.offset++] = encoding;
          const bufEncoded = import_iconv_lite22.default.encode(value, getEncodingType22(encoding));
          buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
        };
        var encodeApplicationCharacterString22 = (buffer, value, encoding) => {
          const tmp = getBuffer22();
          encodeBacnetCharacterString22(tmp, value, encoding);
          encodeTag22(buffer, enums_default22.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
          buffer.offset += tmp.offset;
        };
        var encodeContextCharacterString22 = (buffer, tagNumber, value, encoding) => {
          const tmp = getBuffer22();
          encodeBacnetCharacterString22(tmp, value, encoding);
          encodeTag22(buffer, tagNumber, true, tmp.offset);
          tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
          buffer.offset += tmp.offset;
        };
        var encode332 = (buffer, objectId, propertyId, arrayIndex, values) => {
          encodeContextObjectId22(buffer, 0, objectId.type, objectId.instance);
          encodeContextEnumerated22(buffer, 1, propertyId);
          if (arrayIndex !== ASN1_ARRAY_ALL22) {
            encodeContextUnsigned22(buffer, 2, arrayIndex);
          }
          encodeOpeningTag22(buffer, 3);
          values.forEach((value) => {
            bacappEncodeApplicationData22(buffer, value);
          });
          encodeClosingTag22(buffer, 3);
        };
        var decode332 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          let value = {};
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          value.objectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.property = { id: decodedValue.value };
          if (len < apduLen && decodeIsContextTag22(buffer, offset + len, 2)) {
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.property.index = decodedValue.value;
          } else {
            value.property.index = ASN1_ARRAY_ALL22;
          }
          const values = [];
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 3)) {
            return void 0;
          }
          len++;
          while (apduLen - len > 1) {
            result = bacappDecodeApplicationData22(
              buffer,
              offset + len,
              apduLen + offset,
              value.objectId.type,
              value.property.id
            );
            if (!result) {
              return void 0;
            }
            len += result.len;
            delete result.len;
            values.push(result);
          }
          value.values = values;
          if (!decodeIsClosingTagNumber22(buffer, offset + len, 3)) {
            return void 0;
          }
          len++;
          value.len = len;
          return value;
        };
        var alarm_acknowledge_exports22 = {};
        __export22(alarm_acknowledge_exports22, {
          decode: () => decode2102,
          encode: () => encode2102
        });
        var encode2102 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
          encodeContextUnsigned22(buffer, 0, ackProcessId);
          encodeContextObjectId22(
            buffer,
            1,
            eventObjectId.type,
            eventObjectId.instance
          );
          encodeContextEnumerated22(buffer, 2, eventStateAcknowledged);
          bacappEncodeContextTimestamp22(buffer, 3, eventTimeStamp);
          encodeContextCharacterString22(buffer, 4, ackSource);
          bacappEncodeContextTimestamp22(buffer, 5, ackTimeStamp);
        };
        var decode2102 = (buffer, offset, apduLen) => {
          let len = 0;
          let value = {};
          let result;
          let decodedValue;
          let date;
          let time;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.acknowledgedProcessId = decodedValue.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          value.eventObjectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.eventStateAcknowledged = decodedValue.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber === 0) {
            decodedValue = decodeBacnetTime22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.eventTimeStamp = decodedValue.value;
          } else if (result.tagNumber === 1) {
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.eventTimeStamp = decodedValue.value;
          } else if (result.tagNumber === 2) {
            date = decodeApplicationDate22(buffer, offset + len);
            len += date.len;
            date = date.value.value;
            time = decodeApplicationTime22(buffer, offset + len);
            len += time.len;
            time = time.value.value;
            value.eventTimeStamp = new Date(
              date.getFullYear(),
              date.getMonth(),
              date.getDate(),
              time.getHours(),
              time.getMinutes(),
              time.getSeconds(),
              time.getMilliseconds()
            );
            len++;
          }
          len++;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeCharacterString22(
            buffer,
            offset + len,
            apduLen - (offset + len),
            result.value
          );
          value.acknowledgeSource = decodedValue.value;
          len += decodedValue.len;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber === 0) {
            decodedValue = decodeBacnetTime22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.acknowledgeTimeStamp = decodedValue.value;
          } else if (result.tagNumber === 1) {
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.acknowledgeTimeStamp = decodedValue.value;
          } else if (result.tagNumber === 2) {
            date = decodeApplicationDate22(buffer, offset + len);
            len += date.len;
            date = date.value.value;
            time = decodeApplicationTime22(buffer, offset + len);
            len += time.len;
            time = time.value.value;
            value.acknowledgeTimeStamp = new Date(
              date.getFullYear(),
              date.getMonth(),
              date.getDate(),
              time.getHours(),
              time.getMinutes(),
              time.getSeconds(),
              time.getMilliseconds()
            );
            len++;
          }
          len++;
          value.len = len;
          return value;
        };
        var alarm_summary_exports22 = {};
        __export22(alarm_summary_exports22, {
          decode: () => decode342,
          encode: () => encode342
        });
        var encode342 = (buffer, alarms) => {
          alarms.forEach((alarm) => {
            encodeContextObjectId22(
              buffer,
              12,
              alarm.objectId.type,
              alarm.objectId.instance
            );
            encodeContextEnumerated22(buffer, 9, alarm.alarmState);
            encodeContextBitstring22(buffer, 8, alarm.acknowledgedTransitions);
          });
        };
        var decode342 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          const alarms = [];
          while (apduLen - 3 - len > 0) {
            let value = {};
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeObjectId22(buffer, offset + len);
            len += decodedValue.len;
            value.objectId = {
              type: decodedValue.objectType,
              instance: decodedValue.instance
            };
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.alarmState = decodedValue.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeBitstring22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.acknowledgedTransitions = decodedValue.value;
            alarms.push(value);
          }
          return {
            len,
            alarms
          };
        };
        var atomic_read_file_exports22 = {};
        __export22(atomic_read_file_exports22, {
          decode: () => decode422,
          decodeAcknowledge: () => decodeAcknowledge82,
          encode: () => encode422,
          encodeAcknowledge: () => encodeAcknowledge92
        });
        var encode422 = (buffer, isStream, objectId, position, count) => {
          encodeApplicationObjectId22(buffer, objectId.type, objectId.instance);
          if (isStream) {
            encodeOpeningTag22(buffer, 0);
            encodeApplicationSigned22(buffer, position);
            encodeApplicationUnsigned22(buffer, count);
            encodeClosingTag22(buffer, 0);
          } else {
            encodeOpeningTag22(buffer, 1);
            encodeApplicationSigned22(buffer, position);
            encodeApplicationUnsigned22(buffer, count);
            encodeClosingTag22(buffer, 1);
          }
        };
        var decode422 = (buffer, offset) => {
          let len = 0;
          let result;
          let decodedValue;
          let isStream = true;
          let objectId = {};
          let position = -1;
          let count = 0;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 12) {
            return void 0;
          }
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
          if (decodeIsOpeningTagNumber22(buffer, offset + len, 0)) {
            isStream = true;
            len++;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 3) {
              return void 0;
            }
            decodedValue = decodeSigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            position = decodedValue.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 2) {
              return void 0;
            }
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            count = decodedValue.value;
            if (!decodeIsClosingTagNumber22(buffer, offset + len, 0)) {
              return void 0;
            }
            len++;
          } else if (decodeIsOpeningTagNumber22(buffer, offset + len, 1)) {
            isStream = false;
            len++;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 3) {
              return void 0;
            }
            decodedValue = decodeSigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            position = decodedValue.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 2) {
              return void 0;
            }
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            count = decodedValue.value;
            if (!decodeIsClosingTagNumber22(buffer, offset + len, 1)) {
              return void 0;
            }
            len++;
          } else {
            return void 0;
          }
          return {
            len,
            isStream,
            objectId,
            position,
            count
          };
        };
        var encodeAcknowledge92 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
          encodeApplicationBoolean22(buffer, endOfFile);
          if (isStream) {
            encodeOpeningTag22(buffer, 0);
            encodeApplicationSigned22(buffer, position);
            encodeApplicationOctetString22(buffer, blocks[0], 0, counts[0]);
            encodeClosingTag22(buffer, 0);
          } else {
            encodeOpeningTag22(buffer, 1);
            encodeApplicationSigned22(buffer, position);
            encodeApplicationUnsigned22(buffer, blockCount);
            for (let i = 0; i < blockCount; i++) {
              encodeApplicationOctetString22(buffer, blocks[i], 0, counts[i]);
            }
            encodeClosingTag22(buffer, 1);
          }
        };
        var decodeAcknowledge82 = (buffer, offset, length = 0) => {
          let len = length;
          let result;
          let decodedValue;
          let endOfFile;
          let isStream;
          let position;
          let targetBuffer;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 1) {
            return void 0;
          }
          endOfFile = result.value > 0;
          if (decodeIsOpeningTagNumber22(buffer, offset + len, 0)) {
            isStream = true;
            len++;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 3) {
              return void 0;
            }
            decodedValue = decodeSigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            position = decodedValue.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 6) {
              return void 0;
            }
            targetBuffer = buffer.slice(offset + len, offset + len + result.value);
            len += result.value;
            if (!decodeIsClosingTagNumber22(buffer, offset + len, 0)) {
              return void 0;
            }
            len++;
          } else if (decodeIsOpeningTagNumber22(buffer, offset + len, 1)) {
            isStream = false;
            throw new Error("NotImplemented");
          } else {
            return void 0;
          }
          return {
            len,
            endOfFile,
            isStream,
            position,
            buffer: targetBuffer
          };
        };
        var atomic_write_file_exports22 = {};
        __export22(atomic_write_file_exports22, {
          decode: () => decode522,
          decodeAcknowledge: () => decodeAcknowledge222,
          encode: () => encode522,
          encodeAcknowledge: () => encodeAcknowledge222
        });
        var encode522 = (buffer, isStream, objectId, position, blocks) => {
          encodeApplicationObjectId22(buffer, objectId.type, objectId.instance);
          if (isStream) {
            encodeOpeningTag22(buffer, 0);
            encodeApplicationSigned22(buffer, position);
            encodeApplicationOctetString22(buffer, blocks[0], 0, blocks[0].length);
            encodeClosingTag22(buffer, 0);
          } else {
            encodeOpeningTag22(buffer, 1);
            encodeApplicationSigned22(buffer, position);
            encodeApplicationUnsigned22(buffer, blocks.length);
            for (let i = 0; i < blocks.length; i++) {
              encodeApplicationOctetString22(
                buffer,
                blocks[i],
                0,
                blocks[i].length
              );
            }
            encodeClosingTag22(buffer, 1);
          }
        };
        var decode522 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          let isStream;
          let position;
          let blocks = [];
          let blockCount;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 12) {
            return void 0;
          }
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          let objectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          if (decodeIsOpeningTagNumber22(buffer, offset + len, 0)) {
            isStream = true;
            len++;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 3) {
              return void 0;
            }
            decodedValue = decodeSigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            position = decodedValue.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 6) {
              return void 0;
            }
            decodedValue = decodeOctetString22(
              buffer,
              offset + len,
              apduLen,
              0,
              result.value
            );
            len += decodedValue.len;
            blocks.push(decodedValue.value);
            if (!decodeIsClosingTagNumber22(buffer, offset + len, 0)) {
              return void 0;
            }
            len++;
          } else if (decodeIsOpeningTagNumber22(buffer, offset + len, 1)) {
            isStream = false;
            len++;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 3) {
              return void 0;
            }
            decodedValue = decodeSigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            position = decodedValue.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 2) {
              return void 0;
            }
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            blockCount = decodedValue.value;
            for (let i = 0; i < blockCount; i++) {
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
              if (result.tagNumber !== 6) {
                return void 0;
              }
              decodedValue = decodeOctetString22(
                buffer,
                offset + len,
                apduLen,
                0,
                result.value
              );
              len += decodedValue.len;
              blocks.push(decodedValue.value);
            }
            if (!decodeIsClosingTagNumber22(buffer, offset + len, 1)) {
              return void 0;
            }
            len++;
          } else {
            return void 0;
          }
          return {
            len,
            isStream,
            objectId,
            position,
            blocks
          };
        };
        var encodeAcknowledge222 = (buffer, isStream, position) => {
          if (isStream) {
            encodeContextSigned22(buffer, 0, position);
          } else {
            encodeContextSigned22(buffer, 1, position);
          }
        };
        var decodeAcknowledge222 = (buffer, offset, length = 0) => {
          let len = length;
          let isStream = false;
          let position = 0;
          let decodedValue;
          const result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber === 0) {
            isStream = true;
          } else if (result.tagNumber === 1) {
            isStream = false;
          } else {
            return void 0;
          }
          decodedValue = decodeSigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          position = decodedValue.value;
          return {
            len,
            isStream,
            position
          };
        };
        var cov_notify_exports22 = {};
        __export22(cov_notify_exports22, {
          decode: () => decode622,
          encode: () => encode622
        });
        var encode622 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
          encodeContextUnsigned22(buffer, 0, subscriberProcessId);
          encodeContextObjectId22(
            buffer,
            1,
            8,
            initiatingDeviceId
          );
          encodeContextObjectId22(
            buffer,
            2,
            monitoredObjectId.type,
            monitoredObjectId.instance
          );
          encodeContextUnsigned22(buffer, 3, timeRemaining);
          encodeOpeningTag22(buffer, 4);
          values.forEach((value) => {
            encodeContextEnumerated22(buffer, 0, value.property.id);
            if (value.property.index === ASN1_ARRAY_ALL22) {
              encodeContextUnsigned22(buffer, 1, value.property.index);
            }
            encodeOpeningTag22(buffer, 2);
            value.value.forEach((v) => {
              bacappEncodeApplicationData22(buffer, v);
            });
            encodeClosingTag22(buffer, 2);
            if (value.priority === ASN1_NO_PRIORITY22) {
              encodeContextUnsigned22(buffer, 3, value.priority);
            }
          });
          encodeClosingTag22(buffer, 4);
        };
        var decode622 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          const subscriberProcessId = decodedValue.value;
          if (!decodeIsContextTag22(buffer, offset + len, 1)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          const initiatingDeviceId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          if (!decodeIsContextTag22(buffer, offset + len, 2)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          const monitoredObjectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          if (!decodeIsContextTag22(buffer, offset + len, 3)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          const timeRemaining = decodedValue.value;
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 4)) {
            return void 0;
          }
          len++;
          const values = [];
          while (apduLen - len > 1 && !decodeIsClosingTagNumber22(buffer, offset + len, 4)) {
            let newEntry = {};
            newEntry.property = {};
            if (!decodeIsContextTag22(buffer, offset + len, 0)) {
              return void 0;
            }
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
            len += decodedValue.len;
            newEntry.property.id = decodedValue.value;
            if (decodeIsContextTag22(buffer, offset + len, 1)) {
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
              len += decodedValue.len;
              newEntry.property.index = decodedValue.value;
            } else {
              newEntry.property.index = ASN1_ARRAY_ALL22;
            }
            if (!decodeIsOpeningTagNumber22(buffer, offset + len, 2)) {
              return void 0;
            }
            len++;
            const properties = [];
            while (apduLen - len > 1 && !decodeIsClosingTagNumber22(buffer, offset + len, 2)) {
              decodedValue = bacappDecodeApplicationData22(
                buffer,
                offset + len,
                apduLen + offset,
                monitoredObjectId.type,
                newEntry.property.id
              );
              if (!decodedValue) {
                return void 0;
              }
              len += decodedValue.len;
              delete decodedValue.len;
              properties.push(decodedValue);
            }
            newEntry.value = properties;
            len++;
            if (decodeIsContextTag22(buffer, offset + len, 3)) {
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
              len += decodedValue.len;
              newEntry.priority = decodedValue.value;
            } else {
              newEntry.priority = ASN1_NO_PRIORITY22;
            }
            values.push(newEntry);
          }
          return {
            len,
            subscriberProcessId,
            initiatingDeviceId,
            monitoredObjectId,
            timeRemaining,
            values
          };
        };
        var create_object_exports22 = {};
        __export22(create_object_exports22, {
          decode: () => decode722,
          encode: () => encode722,
          encodeAcknowledge: () => encodeAcknowledge322
        });
        var encode722 = (buffer, objectId, values) => {
          encodeOpeningTag22(buffer, 0);
          encodeContextObjectId22(buffer, 1, objectId.type, objectId.instance);
          encodeClosingTag22(buffer, 0);
          encodeOpeningTag22(buffer, 1);
          values.forEach((propertyValue) => {
            encodeContextEnumerated22(buffer, 0, propertyValue.property.id);
            if (propertyValue.property.index !== ASN1_ARRAY_ALL22) {
              encodeContextUnsigned22(buffer, 1, propertyValue.property.index);
            }
            encodeOpeningTag22(buffer, 2);
            propertyValue.value.forEach((value) => {
              bacappEncodeApplicationData22(buffer, value);
            });
            encodeClosingTag22(buffer, 2);
            if (propertyValue.priority !== ASN1_NO_PRIORITY22) {
              encodeContextUnsigned22(buffer, 3, propertyValue.priority);
            }
          });
          encodeClosingTag22(buffer, 1);
        };
        var decode722 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          let objectId;
          const valueList = [];
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber === 0 && apduLen > len) {
            apduLen -= len;
            if (apduLen < 4) {
              return void 0;
            }
            decodedValue = decodeContextObjectId22(buffer, offset + len, 1);
            len += decodedValue.len;
            objectId = {
              type: decodedValue.objectType,
              instance: decodedValue.instance
            };
          } else {
            return void 0;
          }
          if (decodeIsClosingTag22(buffer, offset + len)) {
            len++;
          }
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 1)) {
            return void 0;
          }
          len++;
          while (apduLen - len > 1) {
            let newEntry = {};
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 0) {
              return void 0;
            }
            decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
            len += decodedValue.len;
            let propertyId = decodedValue.value;
            let arraIndex = ASN1_ARRAY_ALL22;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber === 1) {
              decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
              len += decodedValue.len;
              arraIndex += decodedValue.value;
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
            }
            newEntry.property = { id: propertyId, index: arraIndex };
            if (result.tagNumber === 2 && decodeIsOpeningTag22(buffer, offset + len - 1)) {
              const values = [];
              while (!decodeIsClosingTag22(buffer, offset + len)) {
                decodedValue = bacappDecodeApplicationData22(
                  buffer,
                  offset + len,
                  apduLen + offset,
                  objectId.type,
                  propertyId
                );
                if (!decodedValue) {
                  return void 0;
                }
                len += decodedValue.len;
                delete decodedValue.len;
                values.push(decodedValue);
              }
              len++;
              newEntry.value = values;
            } else {
              return void 0;
            }
            valueList.push(newEntry);
          }
          if (!decodeIsClosingTagNumber22(buffer, offset + len, 1)) {
            return void 0;
          }
          len++;
          return {
            len,
            objectId,
            values: valueList
          };
        };
        var encodeAcknowledge322 = (buffer, objectId) => {
          encodeApplicationObjectId22(buffer, objectId.type, objectId.instance);
        };
        var delete_object_exports22 = {};
        __export22(delete_object_exports22, {
          decode: () => decode822,
          encode: () => encode822
        });
        var decode822 = (buffer, offset, apduLen) => {
          const result = decodeTagNumberAndValue22(buffer, offset);
          if (result.tagNumber !== 12) {
            return void 0;
          }
          let len = 1;
          const value = decodeObjectId22(buffer, offset + len);
          len += value.len;
          if (len !== apduLen) {
            return void 0;
          }
          value.len = len;
          return value;
        };
        var encode822 = (buffer, objectId) => {
          encodeApplicationObjectId22(buffer, objectId.type, objectId.instance);
        };
        var device_communication_control_exports22 = {};
        __export22(device_communication_control_exports22, {
          decode: () => decode922,
          encode: () => encode922
        });
        var encode922 = (buffer, timeDuration, enableDisable, password) => {
          if (timeDuration > 0) {
            encodeContextUnsigned22(buffer, 0, timeDuration);
          }
          encodeContextEnumerated22(buffer, 1, enableDisable);
          if (password && password !== "") {
            encodeContextCharacterString22(buffer, 2, password);
          }
        };
        var decode922 = (buffer, offset, apduLen) => {
          let len = 0;
          let value = {};
          let decodedValue;
          let result;
          if (decodeIsContextTag22(buffer, offset + len, 0)) {
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            value.timeDuration = decodedValue.value;
            len += decodedValue.len;
          }
          if (!decodeIsContextTag22(buffer, offset + len, 1)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          value.enableDisable = decodedValue.value;
          len += decodedValue.len;
          if (len < apduLen) {
            if (!decodeIsContextTag22(buffer, offset + len, 2)) {
              return void 0;
            }
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeCharacterString22(
              buffer,
              offset + len,
              apduLen - (offset + len),
              result.value
            );
            value.password = decodedValue.value;
            len += decodedValue.len;
          }
          value.len = len;
          return value;
        };
        var error_exports22 = {};
        __export22(error_exports22, {
          buildMessage: () => buildMessage22,
          decode: () => decode1022,
          encode: () => encode1022
        });
        var encode1022 = (buffer, errorClass, errorCode) => {
          encodeApplicationEnumerated22(buffer, errorClass);
          encodeApplicationEnumerated22(buffer, errorCode);
        };
        var decode1022 = (buffer, offset) => {
          const orgOffset = offset;
          let result;
          result = decodeTagNumberAndValue22(buffer, offset);
          offset += result.len;
          const errorClass = decodeEnumerated22(buffer, offset, result.value);
          offset += errorClass.len;
          result = decodeTagNumberAndValue22(buffer, offset);
          offset += result.len;
          const errorCode = decodeEnumerated22(buffer, offset, result.value);
          offset += errorClass.len;
          return {
            len: offset - orgOffset,
            class: errorClass.value,
            code: errorCode.value
          };
        };
        var buildMessage22 = function(result) {
          return "BacnetError Class: " + ErrorClassName22[result.class] + " (" + result.class + ") Code: " + ErrorCodeName22[result.code] + " (" + result.code + ")";
        };
        var event_information_exports22 = {};
        __export22(event_information_exports22, {
          decode: () => decode1122,
          encode: () => encode1122
        });
        var encode1122 = (buffer, events, moreEvents) => {
          encodeOpeningTag22(buffer, 0);
          events.forEach((event) => {
            encodeContextObjectId22(
              buffer,
              0,
              event.objectId.type,
              event.objectId.instance
            );
            encodeContextEnumerated22(buffer, 1, event.eventState);
            encodeContextBitstring22(buffer, 2, event.acknowledgedTransitions);
            encodeOpeningTag22(buffer, 3);
            for (let i = 0; i < 3; i++) {
              encodeApplicationDate22(buffer, event.eventTimeStamps[i]);
              encodeApplicationTime22(buffer, event.eventTimeStamps[i]);
            }
            encodeClosingTag22(buffer, 3);
            encodeContextEnumerated22(buffer, 4, event.notifyType);
            encodeContextBitstring22(buffer, 5, event.eventEnable);
            encodeOpeningTag22(buffer, 6);
            for (let i = 0; i < 3; i++) {
              encodeApplicationUnsigned22(buffer, event.eventPriorities[i]);
            }
            encodeClosingTag22(buffer, 6);
          });
          encodeClosingTag22(buffer, 0);
          encodeContextBoolean22(buffer, 1, moreEvents);
        };
        var decode1122 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          len++;
          const alarms = [];
          let moreEvents;
          while (apduLen - 3 - len > 0) {
            let value = {};
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeObjectId22(buffer, offset + len);
            len += decodedValue.len;
            value.objectId = {
              type: decodedValue.objectType,
              instance: decodedValue.instance
            };
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.eventState = decodedValue.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeBitstring22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.acknowledgedTransitions = decodedValue.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            value.eventTimeStamps = [];
            for (let i = 0; i < 3; i++) {
              if (result.tagNumber !== 0) {
                decodedValue = decodeApplicationDate22(buffer, offset + len);
                len += decodedValue.len;
                const date = decodedValue.value.value;
                decodedValue = decodeApplicationTime22(buffer, offset + len);
                len += decodedValue.len;
                const time = decodedValue.value.value;
                value.eventTimeStamps[i] = new Date(
                  date.getFullYear(),
                  date.getMonth(),
                  date.getDate(),
                  time.getHours(),
                  time.getMinutes(),
                  time.getSeconds(),
                  time.getMilliseconds()
                );
              } else {
                len += result.value;
              }
            }
            len++;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.notifyType = decodedValue.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeBitstring22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.eventEnable = decodedValue.value;
            len++;
            value.eventPriorities = [];
            for (let i = 0; i < 3; i++) {
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.eventPriorities[i] = decodedValue.value;
            }
            len++;
            alarms.push(value);
          }
          moreEvents = buffer[apduLen - 1] === 1;
          return {
            len,
            alarms,
            moreEvents
          };
        };
        var event_notify_data_exports22 = {};
        __export22(event_notify_data_exports22, {
          decode: () => decode1222,
          encode: () => encode1222
        });
        var encode1222 = (buffer, data) => {
          encodeContextUnsigned22(buffer, 0, data.processId);
          encodeContextObjectId22(
            buffer,
            1,
            data.initiatingObjectId.type,
            data.initiatingObjectId.instance
          );
          encodeContextObjectId22(
            buffer,
            2,
            data.eventObjectId.type,
            data.eventObjectId.instance
          );
          bacappEncodeContextTimestamp22(buffer, 3, data.timeStamp);
          encodeContextUnsigned22(buffer, 4, data.notificationClass);
          encodeContextUnsigned22(buffer, 5, data.priority);
          encodeContextEnumerated22(buffer, 6, data.eventType);
          if (data.messageText && data.messageText !== "") {
            encodeContextCharacterString22(buffer, 7, data.messageText);
          }
          encodeContextEnumerated22(buffer, 8, data.notifyType);
          switch (data.notifyType) {
            case 0:
            case 1:
              encodeContextBoolean22(buffer, 9, data.ackRequired);
              encodeContextEnumerated22(buffer, 10, data.fromState);
              break;
            default:
              break;
          }
          encodeContextEnumerated22(buffer, 11, data.toState);
          switch (data.notifyType) {
            case 0:
            case 1:
              encodeOpeningTag22(buffer, 12);
              switch (data.eventType) {
                case 0:
                  encodeOpeningTag22(buffer, 0);
                  encodeContextBitstring22(
                    buffer,
                    0,
                    data.changeOfBitstringReferencedBitString
                  );
                  encodeContextBitstring22(
                    buffer,
                    1,
                    data.changeOfBitstringStatusFlags
                  );
                  encodeClosingTag22(buffer, 0);
                  break;
                case 1:
                  encodeOpeningTag22(buffer, 1);
                  encodeOpeningTag22(buffer, 0);
                  bacappEncodePropertyState22(buffer, data.changeOfStateNewState);
                  encodeClosingTag22(buffer, 0);
                  encodeContextBitstring22(
                    buffer,
                    1,
                    data.changeOfStateStatusFlags
                  );
                  encodeClosingTag22(buffer, 1);
                  break;
                case 2:
                  encodeOpeningTag22(buffer, 2);
                  encodeOpeningTag22(buffer, 0);
                  switch (data.changeOfValueTag) {
                    case 0:
                      encodeContextReal22(
                        buffer,
                        1,
                        data.changeOfValueChangeValue
                      );
                      break;
                    case 1:
                      encodeContextBitstring22(
                        buffer,
                        0,
                        data.changeOfValueChangedBits
                      );
                      break;
                    default:
                      throw new Error("NotImplemented");
                  }
                  encodeClosingTag22(buffer, 0);
                  encodeContextBitstring22(
                    buffer,
                    1,
                    data.changeOfValueStatusFlags
                  );
                  encodeClosingTag22(buffer, 2);
                  break;
                case 4:
                  encodeOpeningTag22(buffer, 4);
                  encodeContextReal22(buffer, 0, data.floatingLimitReferenceValue);
                  encodeContextBitstring22(
                    buffer,
                    1,
                    data.floatingLimitStatusFlags
                  );
                  encodeContextReal22(buffer, 2, data.floatingLimitSetPointValue);
                  encodeContextReal22(buffer, 3, data.floatingLimitErrorLimit);
                  encodeClosingTag22(buffer, 4);
                  break;
                case 5:
                  encodeOpeningTag22(buffer, 5);
                  encodeContextReal22(buffer, 0, data.outOfRangeExceedingValue);
                  encodeContextBitstring22(buffer, 1, data.outOfRangeStatusFlags);
                  encodeContextReal22(buffer, 2, data.outOfRangeDeadband);
                  encodeContextReal22(buffer, 3, data.outOfRangeExceededLimit);
                  encodeClosingTag22(buffer, 5);
                  break;
                case 8:
                  encodeOpeningTag22(buffer, 8);
                  encodeContextEnumerated22(
                    buffer,
                    0,
                    data.changeOfLifeSafetyNewState
                  );
                  encodeContextEnumerated22(
                    buffer,
                    1,
                    data.changeOfLifeSafetyNewMode
                  );
                  encodeContextBitstring22(
                    buffer,
                    2,
                    data.changeOfLifeSafetyStatusFlags
                  );
                  encodeContextEnumerated22(
                    buffer,
                    3,
                    data.changeOfLifeSafetyOperationExpected
                  );
                  encodeClosingTag22(buffer, 8);
                  break;
                case 10:
                  encodeOpeningTag22(buffer, 10);
                  bacappEncodeContextDeviceObjPropertyRef22(
                    buffer,
                    0,
                    data.bufferReadyBufferProperty
                  );
                  encodeContextUnsigned22(
                    buffer,
                    1,
                    data.bufferReadyPreviousNotification
                  );
                  encodeContextUnsigned22(
                    buffer,
                    2,
                    data.bufferReadyCurrentNotification
                  );
                  encodeClosingTag22(buffer, 10);
                  break;
                case 11:
                  encodeOpeningTag22(buffer, 11);
                  encodeContextUnsigned22(
                    buffer,
                    0,
                    data.unsignedRangeExceedingValue
                  );
                  encodeContextBitstring22(
                    buffer,
                    1,
                    data.unsignedRangeStatusFlags
                  );
                  encodeContextUnsigned22(
                    buffer,
                    2,
                    data.unsignedRangeExceededLimit
                  );
                  encodeClosingTag22(buffer, 11);
                  break;
                case 9:
                case 3:
                  throw new Error("NotImplemented");
                default:
                  throw new Error("NotImplemented");
              }
              encodeClosingTag22(buffer, 12);
              break;
            case 2:
              throw new Error("NotImplemented");
            default:
              break;
          }
        };
        var decode1222 = (buffer, offset) => {
          let len = 0;
          let result;
          let decodedValue;
          let eventData = {};
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          eventData.processId = decodedValue.value;
          if (!decodeIsContextTag22(buffer, offset + len, 1)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          eventData.initiatingObjectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          if (!decodeIsContextTag22(buffer, offset + len, 2)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          eventData.eventObjectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          if (!decodeIsContextTag22(buffer, offset + len, 3)) {
            return void 0;
          }
          len += 2;
          decodedValue = decodeApplicationDate22(buffer, offset + len);
          len += decodedValue.len;
          const date = decodedValue.value.value;
          decodedValue = decodeApplicationTime22(buffer, offset + len);
          len += decodedValue.len;
          const time = decodedValue.value.value;
          eventData.timeStamp = new Date(
            date.getFullYear(),
            date.getMonth(),
            date.getDate(),
            time.getHours(),
            time.getMinutes(),
            time.getSeconds(),
            time.getMilliseconds()
          );
          len += 2;
          if (!decodeIsContextTag22(buffer, offset + len, 4)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          eventData.notificationClass = decodedValue.value;
          if (!decodeIsContextTag22(buffer, offset + len, 5)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          eventData.priority = decodedValue.value;
          if (eventData.priority > 255) {
            return void 0;
          }
          if (!decodeIsContextTag22(buffer, offset + len, 6)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          eventData.eventType = decodedValue.value;
          if (decodeIsContextTag22(buffer, offset + len, 7)) {
            decodedValue = decodeContextCharacterString22(
              buffer,
              offset + len,
              2e4,
              7
            );
            len += decodedValue.len;
            eventData.messageText = decodedValue.value;
          }
          if (!decodeIsContextTag22(buffer, offset + len, 8)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          eventData.notifyType = decodedValue.value;
          switch (eventData.notifyType) {
            case 0:
            case 1:
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned22(buffer, offset + len, 1);
              len += decodedValue.len;
              eventData.ackRequired = decodedValue.value > 0;
              if (!decodeIsContextTag22(buffer, offset + len, 10)) {
                return void 0;
              }
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
              decodedValue = decodeEnumerated22(
                buffer,
                offset + len,
                result.value
              );
              len += decodedValue.len;
              eventData.fromState = decodedValue.value;
              break;
            default:
              break;
          }
          if (!decodeIsContextTag22(buffer, offset + len, 11)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          eventData.toState = decodedValue.value;
          eventData.len = len;
          return eventData;
        };
        var get_enrollment_summary_exports22 = {};
        __export22(get_enrollment_summary_exports22, {
          decode: () => decode1322,
          decodeAcknowledge: () => decodeAcknowledge322,
          encode: () => encode1322,
          encodeAcknowledge: () => encodeAcknowledge422
        });
        var encode1322 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
          encodeContextEnumerated22(buffer, 0, acknowledgmentFilter);
          if (enrollmentFilter) {
            encodeOpeningTag22(buffer, 1);
            encodeOpeningTag22(buffer, 0);
            encodeContextObjectId22(
              buffer,
              0,
              enrollmentFilter.objectId.type,
              enrollmentFilter.objectId.instance
            );
            encodeClosingTag22(buffer, 0);
            encodeContextUnsigned22(buffer, 1, enrollmentFilter.processId);
            encodeClosingTag22(buffer, 1);
          }
          if (eventStateFilter) {
            encodeOpeningTag22(buffer, 2);
            encodeContextEnumerated22(buffer, 0, eventStateFilter);
            encodeClosingTag22(buffer, 2);
          }
          if (eventTypeFilter) {
            encodeOpeningTag22(buffer, 3);
            encodeContextEnumerated22(buffer, 0, eventTypeFilter);
            encodeClosingTag22(buffer, 3);
          }
          if (priorityFilter) {
            encodeOpeningTag22(buffer, 4);
            encodeContextUnsigned22(buffer, 0, priorityFilter.min);
            encodeContextUnsigned22(buffer, 1, priorityFilter.max);
            encodeClosingTag22(buffer, 4);
          }
          if (notificationClassFilter) {
            encodeOpeningTag22(buffer, 5);
            encodeContextUnsigned22(buffer, 0, notificationClassFilter);
            encodeClosingTag22(buffer, 5);
          }
        };
        var decode1322 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          let value = {};
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.acknowledgmentFilter = decodedValue.value;
          if (decodeIsContextTag22(buffer, offset + len, 1)) {
            len++;
            value.enrollmentFilter = {};
            if (!decodeIsContextTag22(buffer, offset + len, 0)) {
              return void 0;
            }
            len++;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeObjectId22(buffer, offset + len);
            len += decodedValue.len;
            value.enrollmentFilter.objectId = {
              type: decodedValue.objectType,
              instance: decodedValue.instance
            };
            len++;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.enrollmentFilter.processId = decodedValue.value;
            len++;
          }
          if (decodeIsContextTag22(buffer, offset + len, 2)) {
            len++;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.eventStateFilter = decodedValue.value;
            len++;
          }
          if (decodeIsContextTag22(buffer, offset + len, 3)) {
            len++;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.eventTypeFilter = decodedValue.value;
            len++;
          }
          if (decodeIsContextTag22(buffer, offset + len, 4)) {
            len++;
            value.priorityFilter = {};
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.priorityFilter.min = decodedValue.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.priorityFilter.max = decodedValue.value;
            len++;
          }
          if (decodeIsContextTag22(buffer, offset + len, 5)) {
            len++;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.notificationClassFilter = decodedValue.value;
            len++;
          }
          value.len = len;
          return value;
        };
        var encodeAcknowledge422 = (buffer, enrollmentSummaries) => {
          enrollmentSummaries.forEach((enrollmentSummary) => {
            encodeApplicationObjectId22(
              buffer,
              enrollmentSummary.objectId.type,
              enrollmentSummary.objectId.instance
            );
            encodeApplicationEnumerated22(buffer, enrollmentSummary.eventType);
            encodeApplicationEnumerated22(buffer, enrollmentSummary.eventState);
            encodeApplicationUnsigned22(buffer, enrollmentSummary.priority);
            encodeApplicationUnsigned22(
              buffer,
              enrollmentSummary.notificationClass
            );
          });
        };
        var decodeAcknowledge322 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          const enrollmentSummaries = [];
          while (apduLen - len > 0) {
            const enrollmentSummary = {};
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 12) {
              return void 0;
            }
            result = decodeObjectId22(buffer, offset + len);
            len += result.len;
            enrollmentSummary.objectId = {
              type: result.objectType,
              instance: result.instance
            };
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 9) {
              return void 0;
            }
            result = decodeEnumerated22(buffer, offset + len, result.value);
            len += result.len;
            enrollmentSummary.eventType = result.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 9) {
              return void 0;
            }
            result = decodeEnumerated22(buffer, offset + len, result.value);
            len += result.len;
            enrollmentSummary.eventState = result.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 2) {
              return void 0;
            }
            result = decodeUnsigned22(buffer, offset + len, result.value);
            len += result.len;
            enrollmentSummary.priority = result.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 2) {
              return void 0;
            }
            result = decodeUnsigned22(buffer, offset + len, result.value);
            len += result.len;
            enrollmentSummary.notificationClass = result.value;
            enrollmentSummaries.push(enrollmentSummary);
          }
          return {
            enrollmentSummaries,
            len
          };
        };
        var get_event_information_exports22 = {};
        __export22(get_event_information_exports22, {
          decode: () => decode1422,
          decodeAcknowledge: () => decodeAcknowledge422,
          encode: () => encode1422,
          encodeAcknowledge: () => encodeAcknowledge522
        });
        var encode1422 = (buffer, lastReceivedObjectId) => {
          encodeContextObjectId22(
            buffer,
            0,
            lastReceivedObjectId.type,
            lastReceivedObjectId.instance
          );
        };
        var decode1422 = (buffer, offset) => {
          let len = 0;
          let result;
          let decodedValue;
          let value = {};
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          value.lastReceivedObjectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          value.len = len;
          return value;
        };
        var encodeAcknowledge522 = (buffer, events, moreEvents) => {
          encodeOpeningTag22(buffer, 0);
          events.forEach((eventData) => {
            encodeContextObjectId22(
              buffer,
              0,
              eventData.objectId.type,
              eventData.objectId.instance
            );
            encodeContextEnumerated22(buffer, 1, eventData.eventState);
            encodeContextBitstring22(buffer, 2, eventData.acknowledgedTransitions);
            encodeOpeningTag22(buffer, 3);
            for (let i = 0; i < 3; i++) {
              bacappEncodeTimestamp22(buffer, eventData.eventTimeStamps[i]);
            }
            encodeClosingTag22(buffer, 3);
            encodeContextEnumerated22(buffer, 4, eventData.notifyType);
            encodeContextBitstring22(buffer, 5, eventData.eventEnable);
            encodeOpeningTag22(buffer, 6);
            for (let i = 0; i < 3; i++) {
              encodeApplicationUnsigned22(buffer, eventData.eventPriorities[i]);
            }
            encodeClosingTag22(buffer, 6);
          });
          encodeClosingTag22(buffer, 0);
          encodeContextBoolean22(buffer, 1, moreEvents);
        };
        var decodeAcknowledge422 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          let value = {};
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          value.events = [];
          while (apduLen - len > 3) {
            let event = {};
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeObjectId22(buffer, offset + len);
            len += decodedValue.len;
            event.objectId = {
              type: decodedValue.objectType,
              instance: decodedValue.instance
            };
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
            len += decodedValue.len;
            event.eventState = decodedValue.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeBitstring22(buffer, offset + len, result.value);
            len += decodedValue.len;
            event.acknowledgedTransitions = decodedValue.value;
            if (!decodeIsOpeningTagNumber22(buffer, offset + len, 3)) {
              return void 0;
            }
            len++;
            event.eventTimeStamps = [];
            for (let i = 0; i < 3; i++) {
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
              if (result.tagNumber === 0) {
                decodedValue = decodeBacnetTime22(
                  buffer,
                  offset + len,
                  result.value
                );
                len += decodedValue.len;
                event.eventTimeStamps[i] = {
                  value: decodedValue.value,
                  type: 0
                  /* TIME */
                };
              } else if (result.tagNumber === 1) {
                decodedValue = decodeUnsigned22(
                  buffer,
                  offset + len,
                  result.value
                );
                len += decodedValue.len;
                event.eventTimeStamps[i] = {
                  value: decodedValue.value,
                  type: 1
                  /* SEQUENCE_NUMBER */
                };
              } else if (result.tagNumber === 2) {
                let date = decodeApplicationDate22(
                  buffer,
                  offset + len
                );
                len += date.len;
                date = date.value.value;
                let time = decodeApplicationTime22(
                  buffer,
                  offset + len
                );
                len += time.len;
                time = time.value.value;
                event.eventTimeStamps[i] = {
                  value: new Date(
                    date.getFullYear(),
                    date.getMonth(),
                    date.getDate(),
                    time.getHours(),
                    time.getMinutes(),
                    time.getSeconds(),
                    time.getMilliseconds()
                  ),
                  type: 2
                  /* DATETIME */
                };
                len++;
              }
            }
            if (!decodeIsClosingTagNumber22(buffer, offset + len, 3)) {
              return void 0;
            }
            len++;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
            len += decodedValue.len;
            event.notifyType = decodedValue.value;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeBitstring22(buffer, offset + len, result.value);
            len += decodedValue.len;
            event.eventEnable = decodedValue.value;
            if (!decodeIsOpeningTagNumber22(buffer, offset + len, 6)) {
              return void 0;
            }
            len++;
            event.eventPriorities = [];
            for (let i = 0; i < 3; i++) {
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
              len += decodedValue.len;
              event.eventPriorities[i] = decodedValue.value;
            }
            if (!decodeIsClosingTagNumber22(buffer, offset + len, 6)) {
              return void 0;
            }
            len++;
            value.events.push(event);
          }
          if (!decodeIsClosingTagNumber22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          value.moreEvents = buffer[offset + len] > 0;
          len++;
          value.len = len;
          return value;
        };
        var i_am_exports22 = {};
        __export22(i_am_exports22, {
          decode: () => decode1522,
          encode: () => encode1522
        });
        var encode1522 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
          encodeApplicationObjectId22(buffer, 8, deviceId);
          encodeApplicationUnsigned22(buffer, maxApdu);
          encodeApplicationEnumerated22(buffer, segmentation);
          encodeApplicationUnsigned22(buffer, vendorId);
        };
        var decode1522 = (buffer, offset) => {
          let result;
          let apduLen = 0;
          const orgOffset = offset;
          result = decodeTagNumberAndValue22(buffer, offset + apduLen);
          apduLen += result.len;
          if (result.tagNumber !== 12) {
            return void 0;
          }
          result = decodeObjectId22(buffer, offset + apduLen);
          apduLen += result.len;
          if (result.objectType !== 8) {
            return void 0;
          }
          const deviceId = result.instance;
          result = decodeTagNumberAndValue22(buffer, offset + apduLen);
          apduLen += result.len;
          if (result.tagNumber !== 2) {
            return void 0;
          }
          result = decodeUnsigned22(buffer, offset + apduLen, result.value);
          apduLen += result.len;
          const maxApdu = result.value;
          result = decodeTagNumberAndValue22(buffer, offset + apduLen);
          apduLen += result.len;
          if (result.tagNumber !== 9) {
            return void 0;
          }
          result = decodeEnumerated22(buffer, offset + apduLen, result.value);
          apduLen += result.len;
          if (result.value > 3) {
            return void 0;
          }
          const segmentation = result.value;
          result = decodeTagNumberAndValue22(buffer, offset + apduLen);
          apduLen += result.len;
          if (result.tagNumber !== 2) {
            return void 0;
          }
          result = decodeUnsigned22(buffer, offset + apduLen, result.value);
          apduLen += result.len;
          if (result.value > 65535) {
            return void 0;
          }
          const vendorId = result.value;
          return {
            len: offset - orgOffset,
            deviceId,
            maxApdu,
            segmentation,
            vendorId
          };
        };
        var i_have_exports22 = {};
        __export22(i_have_exports22, {
          decode: () => decode1622,
          encode: () => encode1622
        });
        var encode1622 = (buffer, deviceId, objectId, objectName) => {
          encodeApplicationObjectId22(buffer, deviceId.type, deviceId.instance);
          encodeApplicationObjectId22(buffer, objectId.type, objectId.instance);
          encodeApplicationCharacterString22(buffer, objectName);
        };
        var decode1622 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          let value = {};
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          value.deviceId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          value.objectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeCharacterString22(
            buffer,
            offset + len,
            apduLen - (offset + len),
            result.value
          );
          len += decodedValue.len;
          value.objectName = decodedValue.value;
          value.len = len;
          return value;
        };
        var life_safety_operation_exports22 = {};
        __export22(life_safety_operation_exports22, {
          decode: () => decode1722,
          encode: () => encode1722
        });
        var encode1722 = (buffer, processId, requestingSource, operation, targetObjectId) => {
          encodeContextUnsigned22(buffer, 0, processId);
          encodeContextCharacterString22(buffer, 1, requestingSource);
          encodeContextEnumerated22(buffer, 2, operation);
          encodeContextObjectId22(
            buffer,
            3,
            targetObjectId.type,
            targetObjectId.instance
          );
        };
        var decode1722 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          let value = {};
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.processId = decodedValue.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeCharacterString22(
            buffer,
            offset + len,
            apduLen - (offset + len),
            result.value
          );
          len += decodedValue.len;
          value.requestingSource = decodedValue.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.operation = decodedValue.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          value.targetObjectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          value.len = len;
          return value;
        };
        var private_transfer_exports22 = {};
        __export22(private_transfer_exports22, {
          decode: () => decode1822,
          encode: () => encode1822
        });
        var encode1822 = (buffer, vendorId, serviceNumber, data) => {
          encodeContextUnsigned22(buffer, 0, vendorId);
          encodeContextUnsigned22(buffer, 1, serviceNumber);
          encodeOpeningTag22(buffer, 2);
          for (let i = 0; i < data.length; i++) {
            buffer.buffer[buffer.offset++] = data[i];
          }
          encodeClosingTag22(buffer, 2);
        };
        var decode1822 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          let value = {};
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.vendorId = decodedValue.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.serviceNumber = decodedValue.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          const size = apduLen - (offset + len + 1);
          const data = [];
          for (let i = 0; i < size; i++) {
            data.push(buffer[offset + len++]);
          }
          value.data = data;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          value.len = len;
          return value;
        };
        var read_property_exports22 = {};
        __export22(read_property_exports22, {
          decode: () => decode1922,
          decodeAcknowledge: () => decodeAcknowledge522,
          encode: () => encode1922,
          encodeAcknowledge: () => encodeAcknowledge622
        });
        var encode1922 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
          if (objectType <= ASN1_MAX_OBJECT22) {
            encodeContextObjectId22(buffer, 0, objectType, objectInstance);
          }
          if (propertyId <= ASN1_MAX_PROPERTY_ID22) {
            encodeContextEnumerated22(buffer, 1, propertyId);
          }
          if (arrayIndex !== ASN1_ARRAY_ALL22) {
            encodeContextUnsigned22(
              buffer,
              2,
              arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL22
            );
          }
        };
        var decode1922 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          if (apduLen < 7) {
            return void 0;
          }
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          let objectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          let property = {};
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 1) {
            return void 0;
          }
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          property.id = decodedValue.value;
          property.index = ASN1_ARRAY_ALL22;
          if (len < apduLen) {
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber === 2 && len < apduLen) {
              decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
              len += decodedValue.len;
              property.index = decodedValue.value;
            } else {
              return void 0;
            }
          }
          if (len < apduLen) {
            return void 0;
          }
          return {
            len,
            objectId,
            property
          };
        };
        var encodeAcknowledge622 = (buffer, objectId, propertyId, arrayIndex, values) => {
          encodeContextObjectId22(buffer, 0, objectId.type, objectId.instance);
          encodeContextEnumerated22(buffer, 1, propertyId);
          if (arrayIndex !== ASN1_ARRAY_ALL22) {
            encodeContextUnsigned22(buffer, 2, arrayIndex);
          }
          encodeOpeningTag22(buffer, 3);
          values.forEach((value) => {
            bacappEncodeApplicationData22(buffer, value);
          });
          encodeClosingTag22(buffer, 3);
        };
        var decodeAcknowledge522 = (buffer, offset, apduLen) => {
          let result;
          let decodedValue;
          let objectId = {};
          let property = {};
          if (!decodeIsContextTag22(buffer, offset, 0)) {
            return void 0;
          }
          let len = 1;
          result = decodeObjectId22(buffer, offset + len);
          len += result.len;
          objectId.type = result.objectType;
          objectId.instance = result.instance;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 1) {
            return void 0;
          }
          result = decodeEnumerated22(buffer, offset + len, result.value);
          len += result.len;
          property.id = result.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          if (result.tagNumber === 2) {
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            property.index = decodedValue.value;
          } else {
            property.index = ASN1_ARRAY_ALL22;
          }
          const values = [];
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 3)) {
            return void 0;
          }
          len++;
          while (apduLen - len > 1) {
            result = bacappDecodeApplicationData22(
              buffer,
              offset + len,
              apduLen + offset,
              objectId.type,
              property.id
            );
            if (!result) {
              return void 0;
            }
            len += result.len;
            delete result.len;
            values.push(result);
          }
          if (!decodeIsClosingTagNumber22(buffer, offset + len, 3)) {
            return void 0;
          }
          len++;
          return {
            len,
            objectId,
            property,
            values
          };
        };
        var read_property_multiple_exports22 = {};
        __export22(read_property_multiple_exports22, {
          decode: () => decode2022,
          decodeAcknowledge: () => decodeAcknowledge622,
          encode: () => encode2022,
          encodeAcknowledge: () => encodeAcknowledge722
        });
        var encode2022 = (buffer, properties) => {
          properties.forEach((value) => {
            encodeReadAccessSpecification22(buffer, value);
          });
        };
        var decode2022 = (buffer, offset, apduLen) => {
          let len = 0;
          const values = [];
          while (apduLen - len > 0) {
            const decodedValue = decodeReadAccessSpecification22(
              buffer,
              offset + len,
              apduLen - len
            );
            if (!decodedValue) {
              return void 0;
            }
            len += decodedValue.len;
            values.push(decodedValue.value);
          }
          return {
            len,
            properties: values
          };
        };
        var encodeAcknowledge722 = (buffer, values) => {
          values.forEach((value) => {
            encodeReadAccessResult22(buffer, value);
          });
        };
        var decodeAcknowledge622 = (buffer, offset, apduLen) => {
          let len = 0;
          const values = [];
          while (apduLen - len > 0) {
            const result = decodeReadAccessResult22(
              buffer,
              offset + len,
              apduLen - len
            );
            if (!result || result === -1) {
              return void 0;
            }
            len += result.len;
            values.push(result.value);
          }
          return {
            len,
            values
          };
        };
        var read_range_exports22 = {};
        __export22(read_range_exports22, {
          decode: () => decode2122,
          decodeAcknowledge: () => decodeAcknowledge722,
          encode: () => encode2122,
          encodeAcknowledge: () => encodeAcknowledge822
        });
        var encode2122 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
          encodeContextObjectId22(buffer, 0, objectId.type, objectId.instance);
          encodeContextEnumerated22(buffer, 1, propertyId);
          if (arrayIndex !== ASN1_ARRAY_ALL22) {
            encodeContextUnsigned22(buffer, 2, arrayIndex);
          }
          switch (requestType) {
            case 0:
              encodeOpeningTag22(buffer, 3);
              encodeApplicationUnsigned22(buffer, position);
              encodeApplicationSigned22(buffer, count);
              encodeClosingTag22(buffer, 3);
              break;
            case 1:
              encodeOpeningTag22(buffer, 6);
              encodeApplicationUnsigned22(buffer, position);
              encodeApplicationSigned22(buffer, count);
              encodeClosingTag22(buffer, 6);
              break;
            case 2:
              encodeOpeningTag22(buffer, 7);
              encodeApplicationDate22(buffer, time);
              encodeApplicationTime22(buffer, time);
              encodeApplicationSigned22(buffer, count);
              encodeClosingTag22(buffer, 7);
              break;
            default:
              break;
          }
        };
        var decode2122 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          let requestType;
          let position;
          let time;
          let count;
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          decodedValue = decodeObjectId22(buffer, offset + len, 0);
          len += decodedValue.len;
          let objectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          let property = {};
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 1) {
            return void 0;
          }
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          property.id = decodedValue.value;
          if (len < apduLen && decodeIsContextTag22(buffer, offset + len, 2)) {
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            property.index = decodedValue.value;
          } else {
            property.index = ASN1_ARRAY_ALL22;
          }
          if (len < apduLen) {
            result = decodeTagNumber22(buffer, offset + len);
            len += result.len;
            switch (result.tagNumber) {
              case 3:
                requestType = 0;
                result = decodeTagNumberAndValue22(buffer, offset + len);
                len += result.len;
                decodedValue = decodeUnsigned22(
                  buffer,
                  offset + len,
                  result.value
                );
                len += decodedValue.len;
                position = decodedValue.value;
                result = decodeTagNumberAndValue22(buffer, offset + len);
                len += result.len;
                decodedValue = decodeSigned22(buffer, offset + len, result.value);
                len += decodedValue.len;
                count = decodedValue.value;
                break;
              case 6:
                requestType = 1;
                result = decodeTagNumberAndValue22(buffer, offset + len);
                len += result.len;
                decodedValue = decodeUnsigned22(
                  buffer,
                  offset + len,
                  result.value
                );
                len += decodedValue.len;
                position = decodedValue.value;
                result = decodeTagNumberAndValue22(buffer, offset + len);
                len += result.len;
                decodedValue = decodeSigned22(buffer, offset + len, result.value);
                len += decodedValue.len;
                count = decodedValue.value;
                break;
              case 7:
                requestType = 2;
                decodedValue = decodeApplicationDate22(buffer, offset + len);
                len += decodedValue.len;
                const tmpDate = decodedValue.value.value;
                decodedValue = decodeApplicationTime22(buffer, offset + len);
                len += decodedValue.len;
                const tmpTime = decodedValue.value.value;
                time = new Date(
                  tmpDate.getYear(),
                  tmpDate.getMonth(),
                  tmpDate.getDate(),
                  tmpTime.getHours(),
                  tmpTime.getMinutes(),
                  tmpTime.getSeconds(),
                  tmpTime.getMilliseconds()
                );
                result = decodeTagNumberAndValue22(buffer, offset + len);
                len += result.len;
                decodedValue = decodeSigned22(buffer, offset + len, result.value);
                len += decodedValue.len;
                count = decodedValue.value;
                break;
              default:
                return void 0;
            }
            result = decodeTagNumber22(buffer, offset + len);
            len += result.len;
          }
          return {
            len,
            objectId,
            property,
            requestType,
            position,
            time,
            count
          };
        };
        var encodeAcknowledge822 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
          encodeContextObjectId22(buffer, 0, objectId.type, objectId.instance);
          encodeContextEnumerated22(buffer, 1, propertyId);
          if (arrayIndex !== ASN1_ARRAY_ALL22) {
            encodeContextUnsigned22(buffer, 2, arrayIndex);
          }
          encodeContextBitstring22(buffer, 3, resultFlags);
          encodeContextUnsigned22(buffer, 4, itemCount);
          encodeOpeningTag22(buffer, 5);
          if (itemCount !== 0) {
            applicationData.copy(
              buffer.buffer,
              buffer.offset,
              0,
              applicationData.length
            );
            buffer.offset += applicationData.length;
          }
          encodeClosingTag22(buffer, 5);
          if (itemCount !== 0 && requestType && requestType !== 0) {
            encodeContextUnsigned22(buffer, 6, firstSequence);
          }
        };
        var decodeAcknowledge722 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          const objectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          const property = { index: ASN1_ARRAY_ALL22 };
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 1) {
            return void 0;
          }
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          property.id = decodedValue.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          if (result.tagNumber === 2 && len < apduLen) {
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            property.index = decodedValue.value;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeBitstring22(buffer, offset + len, result.value);
          len += decodedValue.len;
          const resultFlag = decodedValue.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          const itemCount = decodedValue.value;
          if (!decodeIsOpeningTag22(buffer, offset + len)) {
            return void 0;
          }
          len++;
          const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
          return {
            objectId,
            property,
            resultFlag,
            itemCount,
            rangeBuffer,
            len
          };
        };
        var register_foreign_device_exports22 = {};
        __export22(register_foreign_device_exports22, {
          decode: () => decode2222,
          encode: () => encode2222
        });
        var encode2222 = (buffer, ttl, length = 2) => {
          encodeUnsigned22(buffer, ttl, length);
        };
        var decode2222 = (buffer, offset, length = 2) => {
          let len = 0;
          let result = decodeUnsigned22(buffer, offset + len, length);
          len += result.len;
          return {
            len,
            ttl: result.value
          };
        };
        var reinitialize_device_exports22 = {};
        __export22(reinitialize_device_exports22, {
          decode: () => decode2322,
          encode: () => encode2322
        });
        var encode2322 = (buffer, state, password) => {
          encodeContextEnumerated22(buffer, 0, state);
          if (password && password !== "") {
            encodeContextCharacterString22(buffer, 1, password);
          }
        };
        var decode2322 = (buffer, offset, apduLen) => {
          let len = 0;
          let value = {};
          let result;
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          let decodedValue = decodeEnumerated22(
            buffer,
            offset + len,
            result.value
          );
          value.state = decodedValue.value;
          len += decodedValue.len;
          if (len < apduLen) {
            if (!decodeIsContextTag22(buffer, offset + len, 1)) {
              return void 0;
            }
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeCharacterString22(
              buffer,
              offset + len,
              apduLen - (offset + len),
              result.value
            );
            value.password = decodedValue.value;
            len += decodedValue.len;
          }
          value.len = len;
          return value;
        };
        var subscribe_cov_exports22 = {};
        __export22(subscribe_cov_exports22, {
          decode: () => decode2422,
          encode: () => encode2422
        });
        var encode2422 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
          encodeContextUnsigned22(buffer, 0, subscriberProcessId);
          encodeContextObjectId22(
            buffer,
            1,
            monitoredObjectId.type,
            monitoredObjectId.instance
          );
          if (!cancellationRequest) {
            encodeContextBoolean22(buffer, 2, issueConfirmedNotifications);
            encodeContextUnsigned22(buffer, 3, lifetime);
          }
        };
        var decode2422 = (buffer, offset, apduLen) => {
          let len = 0;
          let value = {};
          let result;
          let decodedValue;
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.subscriberProcessId = decodedValue.value;
          if (!decodeIsContextTag22(buffer, offset + len, 1)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          value.monitoredObjectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          value.cancellationRequest = true;
          if (len < apduLen) {
            value.issueConfirmedNotifications = false;
            if (decodeIsContextTag22(buffer, offset + len, 2)) {
              value.cancellationRequest = false;
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
              value.issueConfirmedNotifications = buffer[offset + len] > 0;
              len++;
            }
            value.lifetime = 0;
            if (decodeIsContextTag22(buffer, offset + len, 3)) {
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
              decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
              len += decodedValue.len;
              value.lifetime = decodedValue.value;
            }
          }
          value.len = len;
          return value;
        };
        var subscribe_property_exports22 = {};
        __export22(subscribe_property_exports22, {
          decode: () => decode2522,
          encode: () => encode2522
        });
        var encode2522 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
          encodeContextUnsigned22(buffer, 0, subscriberProcessId);
          encodeContextObjectId22(
            buffer,
            1,
            monitoredObjectId.type,
            monitoredObjectId.instance
          );
          if (!cancellationRequest) {
            encodeContextBoolean22(buffer, 2, issueConfirmedNotifications);
            encodeContextUnsigned22(buffer, 3, lifetime);
          }
          encodeOpeningTag22(buffer, 4);
          encodeContextEnumerated22(buffer, 0, monitoredProperty.id);
          if (monitoredProperty.index !== ASN1_ARRAY_ALL22) {
            encodeContextUnsigned22(buffer, 1, monitoredProperty.index);
          }
          encodeClosingTag22(buffer, 4);
          if (covIncrementPresent) {
            encodeContextReal22(buffer, 5, covIncrement);
          }
        };
        var decode2522 = (buffer, offset) => {
          let len = 0;
          let value = {};
          let result;
          let decodedValue;
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.subscriberProcessId = decodedValue.value;
          if (!decodeIsContextTag22(buffer, offset + len, 1)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          value.monitoredObjectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          value.cancellationRequest = true;
          value.issueConfirmedNotifications = false;
          if (decodeIsContextTag22(buffer, offset + len, 2)) {
            value.cancellationRequest = false;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            value.issueConfirmedNotifications = buffer[offset + len] > 0;
            len++;
          }
          value.lifetime = 0;
          if (decodeIsContextTag22(buffer, offset + len, 3)) {
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.lifetime = decodedValue.value;
          }
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 4)) {
            return void 0;
          }
          len++;
          value.monitoredProperty = {};
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.monitoredProperty.id = decodedValue.value;
          value.monitoredProperty.index = ASN1_ARRAY_ALL22;
          if (decodeIsContextTag22(buffer, offset + len, 1)) {
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.monitoredProperty.index = decodedValue.value;
          }
          if (!decodeIsClosingTagNumber22(buffer, offset + len, 4)) {
            return void 0;
          }
          len++;
          value.covIncrement = 0;
          if (decodeIsContextTag22(buffer, offset + len, 5)) {
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            decodedValue = decodeReal22(buffer, offset + len);
            len += decodedValue.len;
            value.covIncrement = decodedValue.value;
          }
          value.len = len;
          return value;
        };
        var time_sync_exports22 = {};
        __export22(time_sync_exports22, {
          decode: () => decode2622,
          encode: () => encode2622
        });
        var encode2622 = (buffer, time) => {
          encodeApplicationDate22(buffer, time);
          encodeApplicationTime22(buffer, time);
        };
        var decode2622 = (buffer, offset, length) => {
          let len = 0;
          let result;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 10) {
            return void 0;
          }
          const date = decodeDate22(buffer, offset + len);
          len += date.len;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 11) {
            return void 0;
          }
          const time = decodeBacnetTime22(buffer, offset + len);
          len += time.len;
          return {
            len,
            value: new Date(
              date.value.getFullYear(),
              date.value.getMonth(),
              date.value.getDate(),
              time.value.getHours(),
              time.value.getMinutes(),
              time.value.getSeconds(),
              time.value.getMilliseconds()
            )
          };
        };
        var who_has_exports22 = {};
        __export22(who_has_exports22, {
          decode: () => decode2722,
          encode: () => encode2722
        });
        var encode2722 = (buffer, lowLimit, highLimit, objectId, objectName) => {
          if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE22 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE22) {
            encodeContextUnsigned22(buffer, 0, lowLimit);
            encodeContextUnsigned22(buffer, 1, highLimit);
          }
          if (objectName && objectName !== "") {
            encodeContextCharacterString22(buffer, 3, objectName);
          } else {
            encodeContextObjectId22(buffer, 2, objectId.type, objectId.instance);
          }
        };
        var decode2722 = (buffer, offset, apduLen) => {
          let len = 0;
          let value = {};
          let decodedValue;
          let result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber === 0) {
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            if (decodedValue.value <= ASN1_MAX_INSTANCE22) {
              value.lowLimit = decodedValue.value;
            }
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
          }
          if (result.tagNumber === 1) {
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            if (decodedValue.value <= ASN1_MAX_INSTANCE22) {
              value.highLimit = decodedValue.value;
            }
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
          }
          if (result.tagNumber === 2) {
            decodedValue = decodeObjectId22(buffer, offset + len);
            len += decodedValue.len;
            value.objectId = {
              type: decodedValue.objectType,
              instance: decodedValue.instance
            };
          }
          if (result.tagNumber === 3) {
            decodedValue = decodeCharacterString22(
              buffer,
              offset + len,
              apduLen - (offset + len),
              result.value
            );
            len += decodedValue.len;
            value.objectName = decodedValue.value;
          }
          value.len = len;
          return value;
        };
        var who_is_exports22 = {};
        __export22(who_is_exports22, {
          decode: () => decode2822,
          encode: () => encode2822
        });
        var encode2822 = (buffer, lowLimit, highLimit) => {
          if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE22 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE22) {
            encodeContextUnsigned22(buffer, 0, lowLimit);
            encodeContextUnsigned22(buffer, 1, highLimit);
          }
        };
        var decode2822 = (buffer, offset, apduLen) => {
          let len = 0;
          let value = {};
          if (apduLen <= 0) {
            return {};
          }
          let result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 0) {
            return void 0;
          }
          if (apduLen <= len) {
            return void 0;
          }
          let decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          if (decodedValue.value <= ASN1_MAX_INSTANCE22) {
            value.lowLimit = decodedValue.value;
          }
          if (apduLen <= len) {
            return void 0;
          }
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 1) {
            return void 0;
          }
          if (apduLen <= len) {
            return void 0;
          }
          decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
          len += decodedValue.len;
          if (decodedValue.value <= ASN1_MAX_INSTANCE22) {
            value.highLimit = decodedValue.value;
          }
          value.len = len;
          return value;
        };
        var write_property_exports22 = {};
        __export22(write_property_exports22, {
          decode: () => decode2922,
          encode: () => encode2922
        });
        var encode2922 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
          encodeContextObjectId22(buffer, 0, objectType, objectInstance);
          encodeContextEnumerated22(buffer, 1, propertyId);
          if (arrayIndex !== ASN1_ARRAY_ALL22) {
            encodeContextUnsigned22(buffer, 2, arrayIndex);
          }
          encodeOpeningTag22(buffer, 3);
          values.forEach((value) => {
            bacappEncodeApplicationData22(buffer, value);
          });
          encodeClosingTag22(buffer, 3);
          if (priority !== ASN1_NO_PRIORITY22) {
            encodeContextUnsigned22(buffer, 4, priority);
          }
        };
        var decode2922 = (buffer, offset, apduLen) => {
          let len = 0;
          let value = {
            property: {}
          };
          let decodedValue;
          let result;
          if (!decodeIsContextTag22(buffer, offset + len, 0)) {
            return void 0;
          }
          len++;
          decodedValue = decodeObjectId22(buffer, offset + len);
          let objectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          len += decodedValue.len;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 1) {
            return void 0;
          }
          decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.property.id = decodedValue.value;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          if (result.tagNumber === 2) {
            len += result.len;
            decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
            len += decodedValue.len;
            value.property.index = decodedValue.value;
          } else {
            value.property.index = ASN1_ARRAY_ALL22;
          }
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 3)) {
            return void 0;
          }
          len++;
          const values = [];
          while (apduLen - len > 1 && !decodeIsClosingTagNumber22(buffer, offset + len, 3)) {
            decodedValue = bacappDecodeApplicationData22(
              buffer,
              offset + len,
              apduLen + offset,
              objectId.type,
              value.property.id
            );
            if (!decodedValue) {
              return void 0;
            }
            len += decodedValue.len;
            delete decodedValue.len;
            values.push(decodedValue);
          }
          value.value = values;
          if (!decodeIsClosingTagNumber22(buffer, offset + len, 3)) {
            return void 0;
          }
          len++;
          value.priority = ASN1_MAX_PRIORITY22;
          if (len < apduLen) {
            result = decodeTagNumberAndValue22(buffer, offset + len);
            if (result.tagNumber === 4) {
              len += result.len;
              decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
              len += decodedValue;
              if (decodedValue.value >= ASN1_MIN_PRIORITY22 && decodedValue.value <= ASN1_MAX_PRIORITY22) {
                value.priority = decodedValue.value;
              } else {
                return void 0;
              }
            }
          }
          return {
            len,
            objectId,
            value
          };
        };
        var write_property_multiple_exports22 = {};
        __export22(write_property_multiple_exports22, {
          decode: () => decode3022,
          encode: () => encode3022,
          encodeObject: () => encodeObject22
        });
        var encode3022 = (buffer, objectId, values) => {
          encodeContextObjectId22(buffer, 0, objectId.type, objectId.instance);
          encodeOpeningTag22(buffer, 1);
          values.forEach((pValue) => {
            encodeContextEnumerated22(buffer, 0, pValue.property.id);
            if (pValue.property.index !== ASN1_ARRAY_ALL22) {
              encodeContextUnsigned22(buffer, 1, pValue.property.index);
            }
            encodeOpeningTag22(buffer, 2);
            pValue.value.forEach((value) => {
              bacappEncodeApplicationData22(buffer, value);
            });
            encodeClosingTag22(buffer, 2);
            if (pValue.priority !== ASN1_NO_PRIORITY22) {
              encodeContextUnsigned22(buffer, 3, pValue.priority);
            }
          });
          encodeClosingTag22(buffer, 1);
        };
        var decode3022 = (buffer, offset, apduLen) => {
          let len = 0;
          let result;
          let decodedValue;
          let objectId;
          result = decodeTagNumberAndValue22(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 0 || apduLen <= len) {
            return void 0;
          }
          apduLen -= len;
          if (apduLen < 4) {
            return void 0;
          }
          decodedValue = decodeObjectId22(buffer, offset + len);
          len += decodedValue.len;
          objectId = {
            type: decodedValue.objectType,
            instance: decodedValue.instance
          };
          if (!decodeIsOpeningTagNumber22(buffer, offset + len, 1)) {
            return void 0;
          }
          len++;
          const _values = [];
          while (apduLen - len > 1) {
            let newEntry = {};
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber !== 0) {
              return void 0;
            }
            decodedValue = decodeEnumerated22(buffer, offset + len, result.value);
            len += decodedValue.len;
            let propertyId = decodedValue.value;
            let arrayIndex = ASN1_ARRAY_ALL22;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber === 1) {
              decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
              len += decodedValue.len;
              arrayIndex = decodedValue.value;
              result = decodeTagNumberAndValue22(buffer, offset + len);
              len += result.len;
            }
            newEntry.property = { id: propertyId, index: arrayIndex };
            if (result.tagNumber !== 2 || !decodeIsOpeningTag22(buffer, offset + len - 1)) {
              return void 0;
            }
            const values = [];
            while (len + offset <= buffer.length && !decodeIsClosingTag22(buffer, offset + len)) {
              let value = bacappDecodeApplicationData22(
                buffer,
                offset + len,
                apduLen + offset,
                objectId.type,
                propertyId
              );
              if (!value) {
                return void 0;
              }
              len += value.len;
              delete value.len;
              values.push(value);
            }
            len++;
            newEntry.value = values;
            let priority = ASN1_NO_PRIORITY22;
            result = decodeTagNumberAndValue22(buffer, offset + len);
            len += result.len;
            if (result.tagNumber === 3) {
              decodedValue = decodeUnsigned22(buffer, offset + len, result.value);
              len += decodedValue.len;
              priority = decodedValue.value;
            } else {
              len--;
            }
            newEntry.priority = priority;
            _values.push(newEntry);
            if (decodeIsClosingTagNumber22(buffer, offset + len, 1)) {
              len++;
            }
          }
          if (decodeIsClosingTagNumber22(buffer, offset + len, 1)) {
            len++;
          }
          return {
            len,
            objectId,
            values: _values
          };
        };
        var encodeObject22 = (buffer, values) => {
          values.forEach((object) => {
            encode3022(buffer, object.objectId, object.values);
          });
        };
        var getDecodedType22 = (buffer, offset) => {
          return buffer[offset];
        };
        var encodeConfirmedServiceRequest22 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
          buffer.buffer[buffer.offset++] = type;
          buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
          buffer.buffer[buffer.offset++] = invokeId;
          if ((type & 8) > 0) {
            buffer.buffer[buffer.offset++] = sequencenumber;
            buffer.buffer[buffer.offset++] = proposedWindowSize;
          }
          buffer.buffer[buffer.offset++] = service;
        };
        var decodeConfirmedServiceRequest22 = (buffer, offset) => {
          const orgOffset = offset;
          const type = buffer[offset++];
          const maxSegments = buffer[offset] & 240;
          const maxApdu = buffer[offset++] & 15;
          const invokeId = buffer[offset++];
          let sequencenumber = 0;
          let proposedWindowNumber = 0;
          if ((type & 8) > 0) {
            sequencenumber = buffer[offset++];
            proposedWindowNumber = buffer[offset++];
          }
          const service = buffer[offset++];
          return {
            len: offset - orgOffset,
            type,
            service,
            maxSegments,
            maxApdu,
            invokeId,
            sequencenumber,
            proposedWindowNumber
          };
        };
        var encodeUnconfirmedServiceRequest22 = (buffer, type, service) => {
          buffer.buffer[buffer.offset++] = type;
          buffer.buffer[buffer.offset++] = service;
        };
        var decodeUnconfirmedServiceRequest22 = (buffer, offset) => {
          const orgOffset = offset;
          const type = buffer[offset++];
          const service = buffer[offset++];
          return {
            len: offset - orgOffset,
            type,
            service
          };
        };
        var encodeSimpleAck22 = (buffer, type, service, invokeId) => {
          buffer.buffer[buffer.offset++] = type;
          buffer.buffer[buffer.offset++] = invokeId;
          buffer.buffer[buffer.offset++] = service;
        };
        var decodeSimpleAck22 = (buffer, offset) => {
          const orgOffset = offset;
          const type = buffer[offset++];
          const invokeId = buffer[offset++];
          const service = buffer[offset++];
          return {
            len: offset - orgOffset,
            type,
            service,
            invokeId
          };
        };
        var encodeComplexAck22 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
          let len = 3;
          buffer.buffer[buffer.offset++] = type;
          buffer.buffer[buffer.offset++] = invokeId;
          if ((type & 8) > 0) {
            buffer.buffer[buffer.offset++] = sequencenumber;
            buffer.buffer[buffer.offset++] = proposedWindowNumber;
            len += 2;
          }
          buffer.buffer[buffer.offset++] = service;
          return len;
        };
        var decodeComplexAck22 = (buffer, offset) => {
          const orgOffset = offset;
          const type = buffer[offset++];
          const invokeId = buffer[offset++];
          let sequencenumber = 0;
          let proposedWindowNumber = 0;
          if ((type & 8) > 0) {
            sequencenumber = buffer[offset++];
            proposedWindowNumber = buffer[offset++];
          }
          const service = buffer[offset++];
          return {
            len: offset - orgOffset,
            type,
            service,
            invokeId,
            sequencenumber,
            proposedWindowNumber
          };
        };
        var encodeSegmentAck22 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
          buffer.buffer[buffer.offset++] = type;
          buffer.buffer[buffer.offset++] = originalInvokeId;
          buffer.buffer[buffer.offset++] = sequencenumber;
          buffer.buffer[buffer.offset++] = actualWindowSize;
        };
        var decodeSegmentAck22 = (buffer, offset) => {
          const orgOffset = offset;
          const type = buffer[offset++];
          const originalInvokeId = buffer[offset++];
          const sequencenumber = buffer[offset++];
          const actualWindowSize = buffer[offset++];
          return {
            len: offset - orgOffset,
            type,
            originalInvokeId,
            sequencenumber,
            actualWindowSize
          };
        };
        var encodeResult22 = (buffer, resultCode) => {
          encodeUnsigned22(buffer, resultCode, 2);
        };
        var encodeError22 = (buffer, type, service, invokeId) => {
          buffer.buffer[buffer.offset++] = type;
          buffer.buffer[buffer.offset++] = invokeId;
          buffer.buffer[buffer.offset++] = service;
        };
        var decodeError22 = (buffer, offset) => {
          const orgOffset = offset;
          const type = buffer[offset++];
          const invokeId = buffer[offset++];
          const service = buffer[offset++];
          return {
            len: offset - orgOffset,
            type,
            service,
            invokeId
          };
        };
        var decodeAbort22 = (buffer, offset) => {
          const orgOffset = offset;
          const type = buffer[offset++];
          const invokeId = buffer[offset++];
          const reason = buffer[offset++];
          return {
            len: offset - orgOffset,
            type,
            invokeId,
            reason
          };
        };
        var DEFAULT_HOP_COUNT32 = 255;
        var BACNET_PROTOCOL_VERSION22 = 1;
        var BACNET_ADDRESS_TYPES22 = {
          NONE: 0,
          IP: 1
        };
        var decodeTarget22 = (buffer, offset) => {
          let len = 0;
          const target = {
            type: BACNET_ADDRESS_TYPES22.NONE,
            net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
          };
          const adrLen = buffer[offset + len++];
          if (adrLen > 0) {
            target.adr = [];
            for (let i = 0; i < adrLen; i++) {
              target.adr.push(buffer[offset + len++]);
            }
          }
          return {
            target,
            len
          };
        };
        var encodeTarget22 = (buffer, target) => {
          buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
          buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
          if (target.net === 65535 || !target.adr) {
            buffer.buffer[buffer.offset++] = 0;
          } else {
            buffer.buffer[buffer.offset++] = target.adr.length;
            if (target.adr.length > 0) {
              for (let i = 0; i < target.adr.length; i++) {
                buffer.buffer[buffer.offset++] = target.adr[i];
              }
            }
          }
        };
        var decode3122 = (buffer, offset) => {
          let adrLen;
          const orgOffset = offset;
          offset++;
          const funct = buffer[offset++];
          let destination;
          if (funct & 32) {
            const tmpDestination = decodeTarget22(buffer, offset);
            offset += tmpDestination.len;
            destination = tmpDestination.target;
          }
          let source;
          if (funct & 8) {
            const tmpSource = decodeTarget22(buffer, offset);
            offset += tmpSource.len;
            source = tmpSource.target;
          }
          let hopCount = 0;
          if (funct & 32) {
            hopCount = buffer[offset++];
          }
          let networkMsgType = 0;
          let vendorId = 0;
          if (funct & 128) {
            networkMsgType = buffer[offset++];
            if (networkMsgType >= 128) {
              vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
            } else if (networkMsgType === 0) {
              offset += 2;
            }
          }
          if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION22) {
            return void 0;
          }
          return {
            len: offset - orgOffset,
            funct,
            destination,
            source,
            hopCount,
            networkMsgType,
            vendorId
          };
        };
        var encode3122 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
          const hasDestination = destination && destination.net > 0;
          const hasSource = source && source.net > 0 && source.net !== 65535;
          buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION22;
          buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
          if (hasDestination) {
            encodeTarget22(buffer, destination);
          }
          if (hasSource) {
            encodeTarget22(buffer, source);
          }
          if (hasDestination) {
            buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT32;
          }
          if ((funct & 128) > 0) {
            buffer.buffer[buffer.offset++] = networkMsgType;
            if (networkMsgType >= 128) {
              buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
              buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
            }
          }
        };
        var DEFAULT_BACNET_PORT222 = 47808;
        var encode3222 = (buffer, func, msgLength, originatingIP) => {
          buffer[0] = BVLL_TYPE_BACNET_IP22;
          buffer[1] = func;
          buffer[2] = (msgLength & 65280) >> 8;
          buffer[3] = (msgLength & 255) >> 0;
          if (originatingIP) {
            if (func !== 4) {
              throw new Error(
                "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
              );
            }
            const [ipstr, portstr] = originatingIP.split(":");
            const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT222;
            const ip = ipstr.split(".");
            buffer[4] = parseInt(ip[0], 10);
            buffer[5] = parseInt(ip[1], 10);
            buffer[6] = parseInt(ip[2], 10);
            buffer[7] = parseInt(ip[3], 10);
            buffer[8] = (port & 65280) >> 8;
            buffer[9] = (port & 255) >> 0;
            return 6 + BVLC_HEADER_LENGTH32;
          } else {
            if (func === 4) {
              throw new Error(
                "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
              );
            }
          }
          return BVLC_HEADER_LENGTH32;
        };
        var decode3222 = (buffer, _offset) => {
          let len;
          const func = buffer[1];
          const msgLength = buffer[2] << 8 | buffer[3] << 0;
          if (buffer[0] !== BVLL_TYPE_BACNET_IP22 || buffer.length !== msgLength) {
            return void 0;
          }
          let originatingIP = null;
          switch (func) {
            case 0:
            case 10:
            case 11:
            case 9:
            case 5:
            case 6:
            case 8:
            case 2:
            case 1:
            case 3:
            case 7:
              len = 4;
              break;
            case 4:
              const port = buffer[8] << 8 | buffer[9];
              originatingIP = buffer.slice(4, 8).join(".");
              if (port !== DEFAULT_BACNET_PORT222) {
                originatingIP += ":" + port;
              }
              len = 10;
              break;
            case 12:
              return void 0;
            default:
              return void 0;
          }
          return {
            len,
            func,
            msgLength,
            // Originating IP is set to the IP address of the node that originally
            // sent the packet, when it has been forwarded to us by a BBMD (since the
            // BBMD's IP address will be in the sender field.
            originatingIP
          };
        };
        var EventEmitter222 = import_events222.default.EventEmitter;
        var debug322 = (0, import_debug322.default)("bacnet:client:debug");
        var trace222 = (0, import_debug322.default)("bacnet:client:trace");
        var ALL_INTERFACES22 = "0.0.0.0";
        var LOCALHOST_INTERFACES_IPV422 = "127.0.0.1";
        var BROADCAST_ADDRESS22 = "255.255.255.255";
        var DEFAULT_HOP_COUNT222 = 255;
        var BVLC_HEADER_LENGTH222 = 4;
        var BVLC_FWD_HEADER_LENGTH22 = 10;
        var beU22 = UnconfirmedServiceChoice22;
        var unconfirmedServiceMap22 = {
          [beU22.I_AM]: "iAm",
          [beU22.WHO_IS]: "whoIs",
          [beU22.WHO_HAS]: "whoHas",
          [beU22.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
          [beU22.TIME_SYNCHRONIZATION]: "timeSync",
          [beU22.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
          [beU22.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
          [beU22.I_HAVE]: "iHave",
          [beU22.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
        };
        var beC22 = ConfirmedServiceChoice22;
        var confirmedServiceMap22 = {
          [beC22.READ_PROPERTY]: "readProperty",
          [beC22.WRITE_PROPERTY]: "writeProperty",
          [beC22.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
          [beC22.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
          [beC22.CONFIRMED_COV_NOTIFICATION]: "covNotify",
          [beC22.ATOMIC_WRITE_FILE]: "atomicWriteFile",
          [beC22.ATOMIC_READ_FILE]: "atomicReadFile",
          [beC22.SUBSCRIBE_COV]: "subscribeCov",
          [beC22.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
          [beC22.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
          [beC22.REINITIALIZE_DEVICE]: "reinitializeDevice",
          [beC22.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
          [beC22.READ_RANGE]: "readRange",
          [beC22.CREATE_OBJECT]: "createObject",
          [beC22.DELETE_OBJECT]: "deleteObject",
          [beC22.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
          [beC22.GET_ALARM_SUMMARY]: "getAlarmSummary",
          [beC22.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
          [beC22.GET_EVENT_INFORMATION]: "getEventInformation",
          [beC22.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
          [beC22.ADD_LIST_ELEMENT]: "addListElement",
          [beC22.REMOVE_LIST_ELEMENT]: "removeListElement",
          [beC22.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
        };
        var errorReasonEnums22 = {
          BacnetAbort: RejectReason22,
          another: AbortReason22
        };
        var BacnetError22 = class extends Error {
          constructor(message, bacnetErrorClass, bacnetErrorCode) {
            super(message);
            this.bacnetErrorClass = bacnetErrorClass;
            this.bacnetErrorCode = bacnetErrorCode;
          }
        };
        function bacnetErrorToString22(err) {
          var _a;
          const isError = err instanceof Error || err instanceof BacnetError22;
          if (!isError)
            return;
          const message = err.message;
          const reasonClass = message == null ? void 0 : message.split(" - ")[0];
          const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
          if (!errorReasonEnums22[reasonClass])
            return;
          const reasonString = errorReasonEnums22[reasonClass][reason];
          const alternativeReasonString = errorReasonEnums22["another"][reason];
          return reasonClass + ": " + reasonString + "or alternatively it could be " + alternativeReasonString;
        }
        var Client22 = class extends EventEmitter222 {
          /**
           *
           * @param options
           */
          constructor(options) {
            super();
            options = options || {};
            this._invokeCounter = 1;
            this._invokeStore = {};
            this._lastSequenceNumber = 0;
            this._segmentStore = [];
            this._settings = {
              port: options.port || 47808,
              interface: options.interface || ALL_INTERFACES22,
              transport: options.transport,
              broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS22,
              apduTimeout: options.apduTimeout || 3e3
            };
            options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
            this._transport = this._settings.transport || new Transport22({
              port: this._settings.port,
              interface: this._settings.interface,
              broadcastAddress: this._settings.broadcastAddress,
              reuseAddr: options.reuseAddr
            });
            this._transport.on("message", this._receiveData.bind(this));
            this._transport.on("error", this._receiveError.bind(this));
            this._transport.on("listening", () => this.emit("listening"));
            this._transport.open();
          }
          /**
           *
           * @returns {number}
           * @private
           */
          _getInvokeId() {
            const id = this._invokeCounter++;
            if (id >= 256)
              this._invokeCounter = 1;
            return id - 1;
          }
          /**
           *
           * @param id
           * @param err
           * @param result
           * @returns {*}
           * @private
           */
          _invokeCallback(id, err, result) {
            const callback = this._invokeStore[id];
            if (callback) {
              return void callback(err, result);
            }
            debug322("InvokeId", id, "not found -> drop package");
          }
          /**
           *
           * @param id
           * @param callback
           * @private
           */
          _addCallback(id, callback) {
            const timeout = setTimeout(() => {
              delete this._invokeStore[id];
              callback(new Error("ERR_TIMEOUT"));
            }, this._settings.apduTimeout);
            this._invokeStore[id] = (err, data) => {
              clearTimeout(timeout);
              delete this._invokeStore[id];
              callback(err, data);
            };
          }
          /**
           *
           * @param isForwarded
           * @returns {{offset: (number), buffer: *}}
           * @private
           */
          _getBuffer(isForwarded) {
            return Object.assign(
              {},
              {
                buffer: Buffer.alloc(this._transport.getMaxPayload()),
                offset: isForwarded ? BVLC_FWD_HEADER_LENGTH22 : BVLC_HEADER_LENGTH222
              }
            );
          }
          /**
           *
           * @param invokeId
           * @param buffer
           * @param offset
           * @param length
           * @returns {*}
           * @private
           */
          _processError(invokeId, buffer, offset, length) {
            const result = error_exports22.decode(buffer, offset);
            trace222("Received error:", result);
            if (!result) {
              return debug322("Couldn`t decode Error");
            }
            const err = new BacnetError22(error_exports22.buildMessage(result));
            err.bacnetErrorClass = result.class;
            err.bacnetErrorCode = result.code;
            this._invokeCallback(invokeId, err);
          }
          /**
           *
           * @param invokeId
           * @param reason
           * @private
           */
          _processAbort(invokeId, reason) {
            const err = new BacnetError22("BacnetAbort - Reason:" + reason);
            err.bacnetAbortReason = reason;
            err.bacnetErrorClass = AbortReason22;
            this._invokeCallback(invokeId, err);
          }
          /**
           *
           * @param receiver
           * @param negative
           * @param server
           * @param originalInvokeId
           * @param sequencenumber
           * @param actualWindowSize
           * @private
           */
          _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
            const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
            encode3122(
              buffer,
              0,
              receiver,
              null,
              DEFAULT_HOP_COUNT222,
              0,
              0
            );
            encodeSegmentAck22(
              buffer,
              64 | (negative ? 2 : 0) | (server ? 1 : 0),
              originalInvokeId,
              sequencenumber,
              actualWindowSize
            );
            this.sendBvlc(receiver, buffer);
          }
          /**
           *
           * @param msg
           * @param first
           * @param moreFollows
           * @param buffer
           * @param offset
           * @param length
           * @private
           */
          _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
            if (first) {
              this._segmentStore = [];
              msg.type &= ~8;
              let apduHeaderLen = 3;
              if ((msg.type & PDU_TYPE_MASK22) === 0) {
                apduHeaderLen = 4;
              }
              const apdubuffer = this._getBuffer();
              apdubuffer.offset = 0;
              buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
              if ((msg.type & PDU_TYPE_MASK22) === 0) {
                encodeConfirmedServiceRequest22(
                  apdubuffer,
                  msg.type,
                  msg.service,
                  msg.maxSegments,
                  msg.maxApdu,
                  msg.invokeId,
                  0,
                  0
                );
              } else {
                encodeComplexAck22(
                  apdubuffer,
                  msg.type,
                  msg.service,
                  msg.invokeId,
                  0,
                  0
                );
              }
              this._segmentStore.push(
                //@ts-ignore
                apdubuffer.buffer.slice(0, length + apduHeaderLen)
              );
            } else {
              this._segmentStore.push(buffer.slice(offset, offset + length));
            }
            if (!moreFollows) {
              const apduBuffer = Buffer.concat(this._segmentStore);
              this._segmentStore = [];
              msg.type &= ~8;
              this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
            }
          }
          /**
           *
           * @param msg
           * @param server
           * @param buffer
           * @param offset
           * @param length
           * @private
           */
          _processSegment(msg, server, buffer, offset, length) {
            let first = false;
            if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
              first = true;
            } else {
              if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
                return this._segmentAckResponse(
                  msg.header.address,
                  true,
                  server,
                  msg.invokeId,
                  this._lastSequenceNumber,
                  msg.proposedWindowNumber
                );
              }
            }
            this._lastSequenceNumber = msg.sequencenumber;
            const moreFollows = msg.type & 4;
            if (!moreFollows) {
              this._lastSequenceNumber = 0;
            }
            if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
              this._segmentAckResponse(
                msg.header.address,
                false,
                server,
                msg.invokeId,
                msg.sequencenumber,
                msg.proposedWindowNumber
              );
            }
            this._performDefaultSegmentHandling(
              msg,
              first,
              moreFollows,
              buffer,
              offset,
              length
            );
          }
          /**
           *
           * @param serviceMap
           * @param content
           * @param buffer
           * @param offset
           * @param length
           * @returns {*}
           * @private
           */
          _processServiceRequest(serviceMap, content, buffer, offset, length) {
            let result;
            const sender = content.header.sender;
            if (sender.address === LOCALHOST_INTERFACES_IPV422) {
              debug322("Received and skipped localhost service request:", content.service);
              return;
            }
            const name = serviceMap[content.service];
            if (!name) {
              debug322("Received unsupported service request:", content.service);
              return;
            }
            const id = content.invokeId ? "@" + content.invokeId : "";
            trace222(`Received service request${id}:`, name);
            const serviceHandler = services_exports22[name];
            if (serviceHandler) {
              try {
                content.payload = serviceHandler.decode(buffer, offset, length);
                trace222(`Handled service request${id}:`, name, JSON.stringify(content));
              } catch (e) {
                debug322("Exception thrown when processing message:", e);
                debug322("Original message was", name + ":", content);
                return;
              }
              if (!content.payload) {
                return debug322("Received invalid", name, "message");
              }
            } else {
              debug322("No serviceHandler defined for:", name);
            }
            if (this.listenerCount(name)) {
              trace222("listener count by name emits " + name + " with content");
              this.emit(name, content);
            } else {
              if (this.listenerCount("unhandledEvent")) {
                trace222("unhandled event emiting with content");
                this.emit("unhandledEvent", content);
              } else {
                trace222(
                  "no unhandled event handler with header: " + JSON.stringify(content.header)
                );
                if (content.header.expectingReply) {
                  debug322("Replying with error for unhandled service:", name);
                  content.header.sender.forwardedFrom = null;
                  this.errorResponse(
                    content.header.sender,
                    content.service,
                    content.invokeId,
                    5,
                    67
                    /* REJECT_UNRECOGNIZED_SERVICE */
                  );
                }
              }
            }
          }
          /**
           *
           * @param buffer
           * @param offset
           * @param length
           * @param header
           * @private
           */
          _handlePdu(buffer, offset, length, header) {
            let msg;
            trace222("handlePdu Header: ", header);
            switch (header.apduType & PDU_TYPE_MASK22) {
              case 16:
                msg = decodeUnconfirmedServiceRequest22(buffer, offset);
                msg.header = header;
                msg.header.confirmedService = false;
                this._processServiceRequest(
                  unconfirmedServiceMap22,
                  msg,
                  buffer,
                  offset + msg.len,
                  length - msg.len
                );
                break;
              case 32:
                msg = decodeSimpleAck22(buffer, offset);
                offset += msg.len;
                length -= msg.len;
                this._invokeCallback(msg.invokeId, null, {
                  msg,
                  buffer,
                  offset: offset + msg.len,
                  length: length - msg.len
                });
                break;
              case 48:
                msg = decodeComplexAck22(buffer, offset);
                msg.header = header;
                if ((header.apduType & 8) === 0) {
                  this._invokeCallback(msg.invokeId, null, {
                    msg,
                    buffer,
                    offset: offset + msg.len,
                    length: length - msg.len
                  });
                } else {
                  this._processSegment(
                    msg,
                    true,
                    buffer,
                    offset + msg.len,
                    length - msg.len
                  );
                }
                break;
              case 64:
                msg = decodeSegmentAck22(buffer, offset);
                msg.header = header;
                this._processSegment(
                  msg,
                  true,
                  buffer,
                  offset + msg.len,
                  length - msg.len
                );
                break;
              case 80:
                msg = decodeError22(buffer, offset);
                this._processError(
                  msg.invokeId,
                  buffer,
                  offset + msg.len,
                  length - msg.len
                );
                break;
              case 96:
              case 112:
                msg = decodeAbort22(buffer, offset);
                this._processAbort(msg.invokeId, msg.reason);
                break;
              case 0:
                msg = decodeConfirmedServiceRequest22(buffer, offset);
                msg.header = header;
                msg.header.confirmedService = true;
                if ((header.apduType & 8) === 0) {
                  this._processServiceRequest(
                    confirmedServiceMap22,
                    msg,
                    buffer,
                    offset + msg.len,
                    length - msg.len
                  );
                } else {
                  this._processSegment(
                    msg,
                    true,
                    buffer,
                    offset + msg.len,
                    length - msg.len
                  );
                }
                break;
              default:
                debug322(`Received unknown PDU type ${header.apduType} -> Drop packet`);
                break;
            }
          }
          /**
           *
           * @param buffer
           * @param offset
           * @param msgLength
           * @param header
           * @returns {*}
           * @private
           */
          _handleNpdu(buffer, offset, msgLength, header) {
            if (msgLength <= 0) {
              return trace222("No NPDU data -> Drop package");
            }
            const result = decode3122(buffer, offset);
            if (!result) {
              return trace222("Received invalid NPDU header -> Drop package");
            }
            if (result.funct & 128) {
              return trace222("Received network layer message -> Drop package");
            }
            offset += result.len;
            msgLength -= result.len;
            if (msgLength <= 0) {
              return trace222("No APDU data -> Drop package");
            }
            header.apduType = getDecodedType22(buffer, offset);
            header.expectingReply = !!(result.funct & 4);
            this._handlePdu(buffer, offset, msgLength, header);
          }
          /**
           *
           * @param buffer
           * @param remoteAddress
           * @returns {*}
           * @private
           */
          _receiveData(buffer, remoteAddress) {
            if (buffer.length < BVLC_HEADER_LENGTH32) {
              return trace222("Received invalid data -> Drop package");
            }
            const result = decode3222(buffer, 0);
            if (!result) {
              return trace222("Received invalid BVLC header -> Drop package");
            }
            let header = {
              // Which function the packet came in on, so later code can distinguish
              // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
              func: result.func,
              sender: {
                // Address of the host we are directly connected to. String, IP:port.
                address: remoteAddress,
                // If the host is a BBMD passing messages along to another node, this
                // is the address of the distant BACnet node.  String, IP:port.
                // Typically we won't have network connectivity to this address, but
                // we have to include it in replies so the host we are connect to knows
                // where to forward the messages.
                forwardedFrom: null
              }
            };
            switch (result.func) {
              case 10:
              case 11:
                this._handleNpdu(
                  buffer,
                  result.len,
                  buffer.length - result.len,
                  header
                );
                break;
              case 4:
                header.sender.forwardedFrom = result.originatingIP;
                this._handleNpdu(
                  buffer,
                  result.len,
                  buffer.length - result.len,
                  header
                );
                break;
              case 5:
                let decodeResult = register_foreign_device_exports22.decode(
                  buffer,
                  result.len,
                  buffer.length - result.len
                );
                if (!decodeResult) {
                  return trace222("Received invalid registerForeignDevice message");
                }
                this.emit("registerForeignDevice", {
                  header,
                  payload: decodeResult
                });
                break;
              case 9:
                this._handleNpdu(
                  buffer,
                  result.len,
                  buffer.length - result.len,
                  header
                );
                break;
              default:
                debug322(
                  "Received unknown BVLC function " + result.func + " -> Drop package"
                );
                break;
            }
          }
          /**
           * @event bacnet.error
           * @param {error} err - The error object thrown by the underlying transport layer.
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * client.on('error', (err) => {
           *   console.log('Error occurred: ', err);
           *   client.close();
           * });
           */
          _receiveError(err) {
            this.emit("error", err);
          }
          /**
           * The whoIs command discovers all BACNET devices in a network.
           * @function bacnet.whoIs
           * @param {string} receiver - IP address of the target device.
           * @param {object=} options
           * @param {number=} options.lowLimit - Minimal device instance number to search for.
           * @param {number=} options.highLimit - Maximal device instance number to search for.
           * @fires bacnet.iAm
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * client.whoIs();
           */
          whoIs(receiver, options) {
            if (!options) {
              if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
                options = receiver;
                receiver = void 0;
              }
            }
            options = options || {};
            const settings = {
              lowLimit: options.lowLimit,
              highLimit: options.highLimit
            };
            const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
            encode3122(
              buffer,
              0,
              //@ts-ignore
              receiver,
              null,
              DEFAULT_HOP_COUNT222,
              0,
              0
            );
            encodeUnconfirmedServiceRequest22(
              buffer,
              16,
              8
              /* WHO_IS */
            );
            who_is_exports22.encode(buffer, settings.lowLimit, settings.highLimit);
            this.sendBvlc(receiver, buffer);
          }
          /**
           * The timeSync command sets the time of a target device.
           * @function bacnet.timeSync
           * @param {string} receiver - IP address of the target device.
           * @param {date} dateTime - The date and time to set on the target device.
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * client.timeSync('192.168.1.43', new Date());
           */
          timeSync(receiver, dateTime) {
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(buffer, 0, receiver);
            encodeUnconfirmedServiceRequest22(
              buffer,
              16,
              6
              /* TIME_SYNCHRONIZATION */
            );
            time_sync_exports22.encode(buffer, dateTime);
            this.sendBvlc(receiver, buffer);
          }
          /**
           * The timeSyncUTC command sets the UTC time of a target device.
           * @function bacnet.timeSyncUTC
           * @param {string} receiver - IP address of the target device.
           * @param {date} dateTime - The date and time to set on the target device.
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * client.timeSyncUTC('192.168.1.43', new Date());
           */
          timeSyncUTC(receiver, dateTime) {
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(buffer, 0, receiver);
            encodeUnconfirmedServiceRequest22(
              buffer,
              16,
              9
              /* UTC_TIME_SYNCHRONIZATION */
            );
            time_sync_exports22.encode(buffer, dateTime);
            this.sendBvlc(receiver, buffer);
          }
          /**
           * The readProperty command reads a single property of an object from a device.
           * @function bacnet.readProperty
           * @param {string} receiver - IP address of the target device.
           * @param {object} objectId - The BACNET object ID to read.
           * @param {number} objectId.type - The BACNET object type to read.
           * @param {number} objectId.instance - The BACNET object instance to read.
           * @param {number} propertyId - The BACNET property id in the specified object to read.
           * @param {object=} options
           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
           * @param {number=} options.arrayIndex - The array index of the property to be read.
           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
           *   console.log('value: ', value);
           * });
           */
          readProperty(receiver, objectId, propertyId, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId(),
              arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL22
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              //@ts-ignore
              receiver,
              null,
              DEFAULT_HOP_COUNT222,
              0,
              0
            );
            const type = 0 | //@ts-ignore
            (settings.maxSegments !== 0 ? 2 : 0);
            encodeConfirmedServiceRequest22(
              buffer,
              type,
              12,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            read_property_exports22.encode(
              buffer,
              objectId.type,
              objectId.instance,
              propertyId,
              settings.arrayIndex
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              const result = read_property_exports22.decodeAcknowledge(
                data.buffer,
                data.offset,
                data.length
              );
              if (!result) {
                return void next(new Error("INVALID_DECODING"));
              }
              next(null, result);
            });
          }
          /**
           * The writeProperty command writes a single property of an object to a device.
           * @function bacnet.writeProperty
           * @param {string} receiver - IP address of the target device.
           * @param {object} objectId - The BACNET object ID to write.
           * @param {number} objectId.type - The BACNET object type to write.
           * @param {number} objectId.instance - The BACNET object instance to write.
           * @param {number} propertyId - The BACNET property id in the specified object to write.
           * @param {object[]} values - A list of values to be written to the specified property.
           * @param {ApplicationTag} values.type - The data-type of the value to be written.
           * @param {number} values.value - The actual value to be written.
           * @param {object=} options
           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
           * @param {number=} options.arrayIndex - The array index of the property to be read.
           * @param {number=} options.priority - The priority of the value to be written.
           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
           *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
           * ], (err, value) => {
           *   console.log('value: ', value);
           * });
           */
          writeProperty(receiver, objectId, propertyId, values, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId(),
              arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL22,
              priority: options.priority || ASN1_NO_PRIORITY22
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              //@ts-ignore Todo somehow types do not match at all
              receiver,
              null,
              DEFAULT_HOP_COUNT222,
              0,
              0
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              15,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            write_property_exports22.encode(
              buffer,
              objectId.type,
              objectId.instance,
              propertyId,
              settings.arrayIndex,
              settings.priority,
              values
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              next(err);
            });
          }
          /**
           * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
           * @function bacnet.readPropertyMultiple
           * @param {string} receiver - IP address of the target device.
           * @param {object[]} propertiesArray - List of object and property specifications to be read.
           * @param {object} propertiesArray.objectId - Specifies which object to read.
           * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
           * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
           * @param {object[]} propertiesArray.properties - List of properties to be read.
           * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
           * @param {object=} options
           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * const requestArray = [
           *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
           * ];
           * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
           *   console.log('value: ', value);
           * });
           */
          readPropertyMultiple(receiver, propertiesArray, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
            const buffer = this._getBuffer(!!isForwarded);
            encode3122(
              buffer,
              0 | 4,
              //@ts-ignore Todo somehow types do not match at all
              receiver,
              null,
              DEFAULT_HOP_COUNT222,
              0,
              0
            );
            const type = 0 | //@ts-ignore
            (settings.maxSegments !== 0 ? 2 : 0);
            encodeConfirmedServiceRequest22(
              buffer,
              type,
              14,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            read_property_multiple_exports22.encode(buffer, propertiesArray);
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return next(err);
              }
              const result = read_property_multiple_exports22.decodeAcknowledge(
                data.buffer,
                data.offset,
                data.length
              );
              if (!result) {
                return next(new Error("INVALID_DECODING"));
              }
              next(null, result);
            });
          }
          /**
           * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
           * @function bacnet.writePropertyMultiple
           * @param {string} receiver - IP address of the target device.
           * @param {object[]} values - List of object and property specifications to be written.
           * @param {object} values.objectId - Specifies which object to read.
           * @param {number} values.objectId.type - The BACNET object type to read.
           * @param {number} values.objectId.instance - The BACNET object instance to read.
           * @param {object[]} values.values - List of properties to be written.
           * @param {object} values.values.property - Property specifications to be written.
           * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
           * @param {number} values.values.property.index - The array index of the property to be written.
           * @param {object[]} values.values.value - A list of values to be written to the specified property.
           * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
           * @param {object} values.values.value.value - The actual value to be written.
           * @param {number} values.values.priority - The priority to be used for writing to the property.
           * @param {object=} options
           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * const values = [
           *   {objectId: {type: 8, instance: 44301}, values: [
           *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
           *   ]}
           * ];
           * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
           *   console.log('value: ', value);
           * });
           */
          writePropertyMultiple(receiver, values, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              //@ts-ignore
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              16,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId
            );
            write_property_multiple_exports22.encodeObject(buffer, values);
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              next(err);
            });
          }
          /**
           * The confirmedCOVNotification command is used to push notifications to other
           * systems that have registered with us via a subscribeCOV message.
           * @function bacnet.confirmedCOVNotification
           * @param {string} receiver - IP address of the target device.
           * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
           * @param {number} monitoredObject.type - Object type.
           * @param {number} monitoredObject.instance - Object instance.
           * @param {number} subscribeId - Subscriber ID from subscribeCOV,
           * @param {number} initiatingDeviceId - Our BACnet device ID.
           * @param {number} lifetime - Number of seconds left until the subscription expires.
           * @param {array} values - values for the monitored object.  See example.
           * @param {object=} options
           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * const settings = {deviceId: 123}; // our BACnet device
           *
           * // Items saved from subscribeCOV message
           * const monitoredObject = {type: 1, instance: 1};
           * const subscriberProcessId = 123;
           *
           * client.confirmedCOVNotification(
           *   '192.168.1.43',
           *   monitoredObject,
           *   subscriberProcessId,
           *   settings.deviceId,
           *   30, // should be lifetime of subscription really
           *   [
           *     {
           *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
           *       value: [
           *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
           *       ],
           *     },
           *   ],
           *   (err) => {
           *     console.log('error: ', err);
           *   }
           * );
           */
          confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer();
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              1,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            cov_notify_exports22.encode(
              buffer,
              subscribeId,
              initiatingDeviceId,
              monitoredObject,
              lifetime,
              values
            );
            encode3222(
              buffer.buffer,
              10,
              buffer.offset
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              next();
            });
          }
          /**
           * The deviceCommunicationControl command enables or disables network communication of the target device.
           * @function bacnet.deviceCommunicationControl
           * @param {string} receiver - IP address of the target device.
           * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
           * @param {EnableDisable} enableDisable - The network communication state to set.
           * @param {object=} options
           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
           * @param {string=} options.password - The optional password used to set the network communication state.
           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
           *   console.log('error: ', err);
           * });
           */
          deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId(),
              password: options.password
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              17,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            device_communication_control_exports22.encode(
              buffer,
              timeDuration,
              enableDisable,
              settings.password
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              next(err);
            });
          }
          /**
           * The reinitializeDevice command initiates a restart of the target device.
           * @function bacnet.reinitializeDevice
           * @param {string} receiver - IP address of the target device.
           * @param {ReinitializedState} state - The type of restart to be initiated.
           * @param {object=} options
           * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
           * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
           * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
           * @param {string=} options.password - The optional password used to restart the device.
           * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
           *   console.log('value: ', value);
           * });
           */
          reinitializeDevice(receiver, state, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId(),
              password: options.password
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              20,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            reinitialize_device_exports22.encode(buffer, state, settings.password);
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              next(err);
            });
          }
          /**
           *
           * @param receiver
           * @param objectId
           * @param position
           * @param fileBuffer
           * @param options
           * @param next
           */
          writeFile(receiver, objectId, position, fileBuffer, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              7,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            atomic_write_file_exports22.encode(
              buffer,
              false,
              objectId,
              position,
              fileBuffer
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              const result = atomic_write_file_exports22.decodeAcknowledge(
                data.buffer,
                data.offset,
                data.length
              );
              if (!result) {
                return void next(new Error("INVALID_DECODING"));
              }
              next(null, result);
            });
          }
          /**
           *
           * @param receiver
           * @param objectId
           * @param position
           * @param count
           * @param options
           * @param next
           */
          readFile(receiver, objectId, position, count, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              6,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            atomic_read_file_exports22.encode(buffer, true, objectId, position, count);
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              const result = atomic_read_file_exports22.decodeAcknowledge(
                data.buffer,
                data.offset,
                data.length
              );
              if (!result) {
                return void next(new Error("INVALID_DECODING"));
              }
              next(null, result);
            });
          }
          /**
           *
           * @param receiver
           * @param objectId
           * @param idxBegin
           * @param quantity
           * @param options
           * @param next
           */
          readRange(receiver, objectId, idxBegin, quantity, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              26,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            read_range_exports22.encode(
              buffer,
              objectId,
              131,
              ASN1_ARRAY_ALL22,
              0,
              idxBegin,
              /* @__PURE__ */ new Date(),
              quantity
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              const result = read_range_exports22.decodeAcknowledge(
                data.buffer,
                data.offset,
                data.length
              );
              if (!result) {
                return void next(new Error("INVALID_DECODING"));
              }
              next(null, result);
            });
          }
          /**
           *
           * @param receiver
           * @param objectId
           * @param subscribeId
           * @param cancel
           * @param issueConfirmedNotifications
           * @param lifetime
           * @param options
           * @param next
           */
          subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
            const next = nextFunc || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              // @ts-ignore TODO types not matching with documentation and code
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              5,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            subscribe_cov_exports22.encode(
              buffer,
              subscribeId,
              objectId,
              cancel,
              issueConfirmedNotifications,
              lifetime
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              next();
            });
          }
          /**
           *
           * @param receiver
           * @param objectId
           * @param monitoredProperty
           * @param subscribeId
           * @param cancel
           * @param issueConfirmedNotifications
           * @param options
           * @param next
           */
          subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              28,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            subscribe_property_exports22.encode(
              buffer,
              subscribeId,
              objectId,
              cancel,
              issueConfirmedNotifications,
              0,
              monitoredProperty,
              false,
              15
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              next();
            });
          }
          /**
           * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
           * @function bacnet.unconfirmedCOVNotification
           * @param {string} receiver - IP address of the target device.
           * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
           * @param {number} initiatingDeviceId - The id of this device.
           * @param {object} monitoredObjectId - Specifies about which object the notification is.
           * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
           * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
           * @param {number} timeRemaining - How long the subscription is still active in seconds.
           * @param {object[]} values - List of properties with updated values.
           * @param {object} values.property - Property specifications.
           * @param {number} values.property.id - The updated BACNET property id.
           * @param {number} values.property.index - The array index of the updated property.
           * @param {object[]} values.value - A list of updated values.
           * @param {ApplicationTag} values.value.type - The data-type of the updated value.
           * @param {object} values.value.value - The actual updated value.
           * @param {number} values.priority - The priority of the updated property.
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * client.unconfirmedCOVNotification(
           *            '127.0.0.1',
           *            3,
           *            433,
           *            {type: 2, instance: 122},
           *            120,
           *            [
           *              {
           *                property: {id: 85},
           *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
           *              },
           *              {
           *                property: {id: 111},
           *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
           *              }
           *            ]);
           */
          unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
            const buffer = this._getBuffer();
            encode3122(buffer, 0, receiver);
            encodeUnconfirmedServiceRequest22(
              buffer,
              16,
              2
              /* UNCONFIRMED_COV_NOTIFICATION */
            );
            cov_notify_exports22.encode(
              buffer,
              subscriberProcessId,
              initiatingDeviceId,
              monitoredObjectId,
              timeRemaining,
              values
            );
            encode3222(
              buffer.buffer,
              10,
              buffer.offset
            );
            this._transport.send(buffer.buffer, buffer.offset, receiver);
          }
          /**
           *
           * @param receiver
           * @param objectId
           * @param values
           * @param options
           * @param next
           */
          createObject(receiver, objectId, values, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              10,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            create_object_exports22.encode(buffer, objectId, values);
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              next();
            });
          }
          /**
           *
           * @param receiver
           * @param objectId
           * @param options
           * @param next
           */
          deleteObject(receiver, objectId, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              11,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            delete_object_exports22.encode(buffer, objectId);
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              next();
            });
          }
          /**
           *
           * @param receiver
           * @param objectId
           * @param reference
           * @param values
           * @param options
           * @param next
           */
          removeListElement(receiver, objectId, reference, values, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              9,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            add_list_element_exports22.encode(
              buffer,
              objectId,
              reference.id,
              reference.index,
              values
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              next();
            });
          }
          /**
           *
           * @param receiver
           * @param objectId
           * @param reference
           * @param values
           * @param options
           * @param next
           */
          addListElement(receiver, objectId, reference, values, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              8,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            add_list_element_exports22.encode(
              buffer,
              objectId,
              reference.id,
              reference.index,
              values
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              next();
            });
          }
          /**
           *
           * @param receiver
           * @param options
           * @param next
           */
          getAlarmSummary(receiver, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              3,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              const result = alarm_summary_exports22.decode(
                data.buffer,
                data.offset,
                data.length
              );
              if (!result) {
                return void next(new Error("INVALID_DECODING"));
              }
              next(null, result);
            });
          }
          /**
           *
           * @param receiver
           * @param objectId
           * @param options
           * @param next
           */
          getEventInformation(receiver, objectId, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              29,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            encodeContextObjectId22(buffer, 0, objectId.type, objectId.instance);
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              const result = event_information_exports22.decode(
                data.buffer,
                data.offset,
                data.length
              );
              if (!result) {
                return void next(new Error("INVALID_DECODING"));
              }
              next(null, result);
            });
          }
          /**
           *
           * @param receiver
           * @param objectId
           * @param eventState
           * @param ackText
           * @param evTimeStamp
           * @param ackTimeStamp
           * @param options
           * @param next
           */
          acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              0,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            alarm_acknowledge_exports22.encode(
              buffer,
              57,
              objectId,
              eventState,
              ackText,
              evTimeStamp,
              ackTimeStamp
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              next();
            });
          }
          /**
           *
           * @param receiver
           * @param vendorId
           * @param serviceNumber
           * @param data
           * @param options
           * @param next
           */
          confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              18,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            private_transfer_exports22.encode(buffer, vendorId, serviceNumber, data);
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data2) => {
              if (err) {
                return void next(err);
              }
              next();
            });
          }
          /**
           *
           * @param receiver
           * @param vendorId
           * @param serviceNumber
           * @param data
           */
          unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(buffer, 0, receiver);
            encodeUnconfirmedServiceRequest22(
              buffer,
              16,
              4
              /* UNCONFIRMED_PRIVATE_TRANSFER */
            );
            private_transfer_exports22.encode(buffer, vendorId, serviceNumber, data);
            this.sendBvlc(receiver, buffer);
          }
          /**
           *
           * @param receiver
           * @param acknowledgmentFilter
           * @param options
           * @param next
           */
          getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              4,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            get_enrollment_summary_exports22.encode(
              buffer,
              acknowledgmentFilter,
              options.enrollmentFilter,
              options.eventStateFilter,
              options.eventTypeFilter,
              options.priorityFilter,
              options.notificationClassFilter
            );
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              const result = get_enrollment_summary_exports22.decodeAcknowledge(
                data.buffer,
                data.offset,
                data.length
              );
              if (!result) {
                return void next(new Error("INVALID_DECODING"));
              }
              next(null, result);
            });
          }
          /**
           *
           * @param receiver
           * @param eventNotification
           */
          unconfirmedEventNotification(receiver, eventNotification) {
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(buffer, 0, receiver);
            encodeUnconfirmedServiceRequest22(
              buffer,
              16,
              3
              /* UNCONFIRMED_EVENT_NOTIFICATION */
            );
            event_notify_data_exports22.encode(buffer, eventNotification);
            this.sendBvlc(receiver, buffer);
          }
          /**
           *
           * @param receiver
           * @param eventNotification
           * @param options
           * @param next
           */
          confirmedEventNotification(receiver, eventNotification, options, next) {
            next = next || options;
            const settings = {
              maxSegments: options.maxSegments || 112,
              maxApdu: options.maxApdu || 5,
              invokeId: options.invokeId || this._getInvokeId()
            };
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(
              buffer,
              0 | 4,
              receiver
            );
            encodeConfirmedServiceRequest22(
              buffer,
              0,
              2,
              settings.maxSegments,
              settings.maxApdu,
              settings.invokeId,
              0,
              0
            );
            event_notify_data_exports22.encode(buffer, eventNotification);
            this.sendBvlc(receiver, buffer);
            this._addCallback(settings.invokeId, (err, data) => {
              if (err) {
                return void next(err);
              }
              next();
            });
          }
          /**
           * The readPropertyResponse call sends a response with information about one of our properties.
           * @function bacnet.readPropertyResponse
           * @param {string} receiver - IP address of the target device.
           * @param {number} invokeId - ID of the original readProperty request.
           * @param {object} objectId - objectId from the original request,
           * @param {object} property - property being read, taken from the original request.
           * @param {object=} options varying behaviour for special circumstances
           * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
           */
          readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(buffer, 0, receiver);
            encodeComplexAck22(
              buffer,
              48,
              12,
              invokeId
            );
            read_property_exports22.encodeAcknowledge(
              buffer,
              objectId,
              property.id,
              property.index,
              value
            );
            this.sendBvlc(receiver, buffer);
          }
          readPropertyMultipleResponse(receiver, invokeId, values) {
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(buffer, 0, receiver);
            encodeComplexAck22(
              buffer,
              48,
              14,
              invokeId
            );
            read_property_multiple_exports22.encodeAcknowledge(buffer, values);
            this.sendBvlc(receiver, buffer);
          }
          /**
           * The iAmResponse command is sent as a reply to a whoIs request.
           * @function bacnet.iAmResponse
           * @param {object} receiver - address to send packet to, null for local broadcast.
           * @param {number} deviceId - Our device ID.
           * @param {number} segmentation - an enum.Segmentation value.
           * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
           */
          iAmResponse(receiver, deviceId, segmentation, vendorId) {
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(buffer, 0, receiver);
            encodeUnconfirmedServiceRequest22(
              buffer,
              16,
              0
              /* I_AM */
            );
            i_am_exports22.encode(
              buffer,
              deviceId,
              this._transport.getMaxPayload(),
              segmentation,
              vendorId
            );
            this.sendBvlc(receiver, buffer);
          }
          /**
           *
           * @param receiver
           * @param deviceId
           * @param objectId
           * @param objectName
           */
          iHaveResponse(receiver, deviceId, objectId, objectName) {
            const buffer = this._getBuffer(
              !!(typeof receiver !== "string" && receiver.forwardedFrom)
            );
            encode3122(buffer, 0, receiver);
            encodeUnconfirmedServiceRequest22(
              buffer,
              16,
              1
              /* I_HAVE */
            );
            i_have_exports22.encode(buffer, deviceId, objectId, objectName);
            this.sendBvlc(receiver, buffer);
          }
          /**
           *
           * @param receiver
           * @param service
           * @param invokeId
           */
          simpleAckResponse(receiver, service, invokeId) {
            if (typeof receiver === "string")
              return;
            const buffer = this._getBuffer(!!receiver.forwardedFrom);
            encode3122(buffer, 0, receiver);
            encodeSimpleAck22(
              buffer,
              32,
              service,
              invokeId
            );
            this.sendBvlc(receiver, buffer);
          }
          /**
           *
           * @param receiver
           * @param service
           * @param invokeId
           * @param errorClass
           * @param errorCode
           */
          errorResponse(receiver, service, invokeId, errorClass, errorCode) {
            trace222(
              `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
                service
              )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
            );
            trace222(
              `error message ${error_exports22.buildMessage({
                class: errorClass,
                code: errorCode
              })}`
            );
            const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
            if (typeof receiver === "string")
              throw new Error("receiver must be object");
            const buffer = this._getBuffer(hasSource);
            encode3122(buffer, 0, receiver);
            encodeError22(buffer, 80, service, invokeId);
            error_exports22.encode(buffer, errorClass, errorCode);
            this.sendBvlc(receiver, buffer);
          }
          /**
           *
           * @param receiver
           * @param buffer
           */
          sendBvlc(receiver, buffer) {
            if (typeof receiver === "string") {
              receiver = {
                address: receiver
              };
            }
            if (receiver && receiver.forwardedFrom) {
              encode3222(
                buffer.buffer,
                4,
                buffer.offset,
                receiver.forwardedFrom
              );
            } else if (receiver && receiver.address) {
              encode3222(
                buffer.buffer,
                10,
                buffer.offset
              );
            } else {
              encode3222(
                buffer.buffer,
                11,
                buffer.offset
              );
            }
            this._transport.send(
              buffer.buffer,
              buffer.offset,
              receiver && receiver.address || null
            );
          }
          /**
           * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
           * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
           * @function bacnet.resultResponse
           * @param {string} receiver - IP address of the target device.
           * @param {number} resultCode - Single value from BvlcResultFormat enum.
           */
          resultResponse(receiver, resultCode) {
            const buffer = this._getBuffer();
            encodeResult22(buffer, resultCode);
            encode3222(
              buffer.buffer,
              0,
              buffer.offset
            );
            this._transport.send(buffer.buffer, buffer.offset, receiver.address);
          }
          /**
           * Unloads the current bacnet instance and closes the underlying UDP socket.
           * @function bacnet.close
           * @example
           * const bacnet = require('node-bacnet');
           * const client = new bacnet();
           *
           * client.close();
           */
          close() {
            this._transport.close();
          }
          /**
           * Helper function to take an array of enums and produce a bitstring suitable
           * for inclusion as a property.
           *
           * @example
           * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
           *   {value: bacnet.createBitstring([
           *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
           *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
           *   ]),
           *   type: bacnet.enum.ApplicationTag.BIT_STRING},
           * ],
           */
          static createBitstring(items) {
            let offset = 0;
            let bytes = [];
            let bitsUsed = 0;
            while (items.length) {
              let value = 0;
              items = items.filter((i) => {
                if (i >= offset + 8) {
                  return true;
                }
                value |= 1 << i - offset;
                bitsUsed = Math.max(bitsUsed, i);
                return false;
              });
              bytes.push(value);
              offset += 8;
            }
            bitsUsed++;
            return {
              value: bytes,
              bitsUsed
            };
          }
        };
        var import_underscore22 = __toESM22(require("underscore"));
        var import_process22 = __toESM22(require("process"));
        var import__22 = __toESM22(require_dist22());
        var PropertyIdentifierToEnumMap22 = {};
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.OBJECT_TYPE] = import__22.enums.ObjectType;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__22.enums.Segmentation;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.EVENT_STATE] = import__22.enums.EventState;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.UNITS] = import__22.enums.EngineeringUnits;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.RELIABILITY] = import__22.enums.Reliability;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.NOTIFY_TYPE] = import__22.enums.NotifyType;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.POLARITY] = import__22.enums.Polarity;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__22.enums.ServicesSupported;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__22.enums.ObjectTypesSupported;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.STATUS_FLAGS] = import__22.enums.StatusFlags;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.LIMIT_ENABLE] = import__22.enums.LimitEnable;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.EVENT_ENABLE] = import__22.enums.EventTransitionBits;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__22.enums.EventTransitionBits;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.SYSTEM_STATUS] = import__22.enums.DeviceStatus;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.SYSTEM_STATUS] = import__22.enums.DeviceStatus;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.ACK_REQUIRED] = import__22.enums.EventTransitionBits;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.LOGGING_TYPE] = import__22.enums.LoggingType;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__22.enums.FileAccessMethod;
        PropertyIdentifierToEnumMap22[import__22.enums.PropertyIdentifier.NODE_TYPE] = import__22.enums.NodeType;
        var ObjectTypeSpecificPropertyIdentifierToEnumMap22 = {};
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BINARY_INPUT] = {};
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BINARY_INPUT][import__22.enums.PropertyIdentifier.PRESENT_VALUE] = import__22.enums.BinaryPV;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BINARY_INPUT][import__22.enums.PropertyIdentifier.MODE] = import__22.enums.BinaryPV;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.ANALOG_INPUT] = {};
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.ANALOG_INPUT][import__22.enums.PropertyIdentifier.PRESENT_VALUE] = import__22.enums.BinaryPV;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.ANALOG_OUTPUT] = {};
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.ANALOG_OUTPUT][import__22.enums.PropertyIdentifier.PRESENT_VALUE] = import__22.enums.BinaryPV;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BINARY_OUTPUT] = {};
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BINARY_OUTPUT][import__22.enums.PropertyIdentifier.PRESENT_VALUE] = import__22.enums.BinaryPV;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BINARY_OUTPUT][import__22.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__22.enums.BinaryPV;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BINARY_VALUE] = {};
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BINARY_VALUE][import__22.enums.PropertyIdentifier.PRESENT_VALUE] = import__22.enums.BinaryPV;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BINARY_VALUE][import__22.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__22.enums.BinaryPV;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__22.enums.PropertyIdentifier.PRESENT_VALUE] = import__22.enums.BinaryLightingPV;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BITSTRING_VALUE] = {};
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.BINARY_VALUE][import__22.enums.PropertyIdentifier.PRESENT_VALUE] = import__22.enums.BinaryPV;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.LIFE_SAFETY_POINT] = {};
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.LIFE_SAFETY_POINT][import__22.enums.PropertyIdentifier.PRESENT_VALUE] = import__22.enums.LifeSafetyState;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.LIFE_SAFETY_POINT][import__22.enums.PropertyIdentifier.TRACKING_VALUE] = import__22.enums.LifeSafetyState;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.LIFE_SAFETY_POINT][import__22.enums.PropertyIdentifier.MODE] = import__22.enums.LifeSafetyMode;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.LIFE_SAFETY_POINT][import__22.enums.PropertyIdentifier.ACCEPTED_MODES] = import__22.enums.LifeSafetyMode;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.LIFE_SAFETY_POINT][import__22.enums.PropertyIdentifier.SILENCED] = import__22.enums.LifeSafetyState;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.LIFE_SAFETY_POINT][import__22.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__22.enums.LifeSafetyOperation;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.LIFE_SAFETY_ZONE][import__22.enums.PropertyIdentifier.PRESENT_VALUE] = import__22.enums.LifeSafetyState;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.LIFE_SAFETY_ZONE][import__22.enums.PropertyIdentifier.MODE] = import__22.enums.LifeSafetyMode;
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.LOAD_CONTROL] = {};
        ObjectTypeSpecificPropertyIdentifierToEnumMap22[import__22.enums.ObjectType.LOAD_CONTROL][import__22.enums.PropertyIdentifier.PRESENT_VALUE] = import__22.enums.ShedState;
        var propSubSet22 = import_process22.default.argv.includes("--all") ? Object.values(import__22.enums.PropertyIdentifier) : [
          /* normally supported from all devices */
          import__22.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
          import__22.enums.PropertyIdentifier.OBJECT_NAME,
          import__22.enums.PropertyIdentifier.OBJECT_TYPE,
          import__22.enums.PropertyIdentifier.PRESENT_VALUE,
          import__22.enums.PropertyIdentifier.STATUS_FLAGS,
          import__22.enums.PropertyIdentifier.EVENT_STATE,
          import__22.enums.PropertyIdentifier.RELIABILITY,
          import__22.enums.PropertyIdentifier.OUT_OF_SERVICE,
          import__22.enums.PropertyIdentifier.UNITS,
          /* other properties */
          import__22.enums.PropertyIdentifier.DESCRIPTION,
          import__22.enums.PropertyIdentifier.SYSTEM_STATUS,
          import__22.enums.PropertyIdentifier.VENDOR_NAME,
          import__22.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
          import__22.enums.PropertyIdentifier.MODEL_NAME,
          import__22.enums.PropertyIdentifier.FIRMWARE_REVISION,
          import__22.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
          import__22.enums.PropertyIdentifier.LOCATION,
          import__22.enums.PropertyIdentifier.LOCAL_DATE,
          import__22.enums.PropertyIdentifier.LOCAL_TIME,
          import__22.enums.PropertyIdentifier.UTC_OFFSET,
          import__22.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
          import__22.enums.PropertyIdentifier.PROTOCOL_VERSION,
          import__22.enums.PropertyIdentifier.PROTOCOL_REVISION,
          import__22.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
          import__22.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
          import__22.enums.PropertyIdentifier.OBJECT_LIST,
          import__22.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
          import__22.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
          import__22.enums.PropertyIdentifier.APDU_TIMEOUT,
          import__22.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
          import__22.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
          import__22.enums.PropertyIdentifier.DATABASE_REVISION,
          import__22.enums.PropertyIdentifier.MAX_INFO_FRAMES,
          import__22.enums.PropertyIdentifier.MAX_MASTER,
          import__22.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
          import__22.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
        ];
        var debug422 = import_process22.default.argv.includes("--debug");
        function getAllPropertiesManually22(address, objectId, callback, propList, result) {
          if (!propList) {
            propList = propSubSet22.map((x) => x);
          }
          if (!result) {
            result = [];
          }
          if (!propList.length) {
            return callback({
              values: [
                {
                  objectId,
                  values: result
                }
              ]
            });
          }
          const prop = propList.shift();
          bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
            if (!err) {
              if (debug422) {
                console.log("Handle value " + prop + ": ", JSON.stringify(value));
              }
              const objRes = value.property;
              objRes.value = value.values;
              result.push(objRes);
            } else {
            }
            getAllPropertiesManually22(address, objectId, callback, propList, result);
          });
        }
        function readBit22(buffer, i, bit) {
          return (buffer[i] >> bit) % 2;
        }
        function handleBitString22(buffer, bitsUsed, usedEnum) {
          const res = [];
          for (let i = 0; i < bitsUsed; i++) {
            const bufferIndex = Math.floor(i / 8);
            if (readBit22(buffer, bufferIndex, i % 8)) {
              res.push(import__22.enums.getEnumName(usedEnum, i));
            }
          }
          return res;
        }
        function parseValue22(address, objId2, parentType, value, supportsMultiple = false, callback) {
          let resValue = null;
          if (value && value.type && value.value !== null && value.value !== void 0) {
            switch (value.type) {
              case import__22.enums.ApplicationTag.NULL:
                resValue = null;
                break;
              case import__22.enums.ApplicationTag.BOOLEAN:
                resValue = !!value.value;
                break;
              case import__22.enums.ApplicationTag.UNSIGNED_INTEGER:
              case import__22.enums.ApplicationTag.SIGNED_INTEGER:
              case import__22.enums.ApplicationTag.REAL:
              case import__22.enums.ApplicationTag.DOUBLE:
              case import__22.enums.ApplicationTag.CHARACTER_STRING:
                resValue = value.value;
                break;
              case import__22.enums.ApplicationTag.DATE:
              case import__22.enums.ApplicationTag.TIME:
              case import__22.enums.ApplicationTag.TIMESTAMP:
                resValue = value.value;
                break;
              case import__22.enums.ApplicationTag.BIT_STRING:
                if (ObjectTypeSpecificPropertyIdentifierToEnumMap22[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap22[parentType][objId2]) {
                  resValue = handleBitString22(
                    value.value.value,
                    value.value.bitsUsed,
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22[parentType][objId2]
                  );
                } else if (PropertyIdentifierToEnumMap22[objId2]) {
                  resValue = handleBitString22(
                    value.value.value,
                    value.value.bitsUsed,
                    PropertyIdentifierToEnumMap22[objId2]
                  );
                } else {
                  if (parentType !== import__22.enums.ObjectType.BITSTRING_VALUE) {
                    console.log(
                      "Unknown value for BIT_STRING type for objId " + import__22.enums.getEnumName(import__22.enums.PropertyIdentifier, objId2) + " and parent type " + import__22.enums.getEnumName(import__22.enums.ObjectType, parentType)
                    );
                  }
                  resValue = value.value;
                }
                break;
              case import__22.enums.ApplicationTag.ENUMERATED:
                if (ObjectTypeSpecificPropertyIdentifierToEnumMap22[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap22[parentType][objId2]) {
                  resValue = import__22.enums.getEnumName(
                    ObjectTypeSpecificPropertyIdentifierToEnumMap22[parentType][objId2],
                    value.value
                  );
                } else if (PropertyIdentifierToEnumMap22[objId2]) {
                  resValue = import__22.enums.getEnumName(
                    PropertyIdentifierToEnumMap22[objId2],
                    value.value
                  );
                } else {
                  console.log(
                    "Unknown value for ENUMERATED type for objId " + import__22.enums.getEnumName(import__22.enums.PropertyIdentifier, objId2) + " and parent type " + import__22.enums.getEnumName(import__22.enums.ObjectType, parentType)
                  );
                  resValue = value.value;
                }
                break;
              case import__22.enums.ApplicationTag.OBJECTIDENTIFIER:
                if (objId2 === import__22.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__22.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__22.enums.PropertyIdentifier.SUBORDINATE_LIST) {
                  resValue = value.value;
                } else if (supportsMultiple) {
                  const requestArray = [
                    {
                      objectId: value.value,
                      // meaning read all properties
                      properties: [{ id: 8 }]
                    }
                  ];
                  bacnetClient.readPropertyMultiple(
                    address,
                    requestArray,
                    (err, resValue2) => {
                      parseDeviceObject22(address, resValue2, value.value, true, callback);
                    }
                  );
                  return;
                } else {
                  getAllPropertiesManually22(address, value.value, (result) => {
                    parseDeviceObject22(address, result, value.value, false, callback);
                  });
                  return;
                }
                break;
              case import__22.enums.ApplicationTag.OCTET_STRING:
                resValue = value.value;
                break;
              case import__22.enums.ApplicationTag.ERROR:
                resValue = {
                  errorClass: import__22.enums.getEnumName(
                    import__22.enums.ErrorClass,
                    value.value.errorClass
                  ),
                  errorCode: import__22.enums.getEnumName(import__22.enums.ErrorCode, value.value.errorCode)
                };
                break;
              case import__22.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
              case import__22.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
              case import__22.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
              case import__22.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
                resValue = value.value;
                break;
              case import__22.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
                parseValue22(
                  address,
                  parentType,
                  value.value,
                  supportsMultiple,
                  callback
                );
                return;
              case import__22.enums.ApplicationTag.READ_ACCESS_RESULT:
                resValue = value.value;
                break;
              default:
                console.log(
                  "unknown type " + value.type + ": " + JSON.stringify(value)
                );
                resValue = value;
            }
          }
          setImmediate(() => callback(resValue));
        }
        function parseDeviceObject22(address, obj, parent, supportsMultiple, callback) {
          if (debug422) {
            console.log(
              "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
            );
          }
          if (!obj) {
            console.log("object not valid on parse device object");
            return;
          }
          if (!obj.values || !Array.isArray(obj.values)) {
            console.log("No device or invalid response");
            callback({ ERROR: "No device or invalid response" });
            return;
          }
          let cbCount = 0;
          let objDef = {};
          const finalize = () => {
            Object.keys(objDef).forEach((devId) => {
              Object.keys(objDef[devId]).forEach((objId2) => {
                if (objDef[devId][objId2].length === 1) {
                  objDef[devId][objId2] = objDef[devId][objId2][0];
                }
              });
            });
            if (obj.values.length === 1) {
              objDef = objDef[obj.values[0].objectId.instance];
            }
            if (debug422) {
              console.log(
                "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
              );
            }
            callback(objDef);
          };
          obj.values.forEach((devBaseObj) => {
            if (!devBaseObj.objectId) {
              console.log("No device Id found in object data");
              return;
            }
            if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
              console.log("No device type or instance found in object data");
              return;
            }
            if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
              console.log("No device values response");
              return;
            }
            const deviceId = devBaseObj.objectId.instance;
            objDef[deviceId] = {};
            devBaseObj.values.forEach((devObj) => {
              let objId2 = import__22.enums.getEnumName(import__22.enums.PropertyIdentifier, devObj.id);
              if (devObj.index !== 4294967295) {
                objId2 += "-" + devObj.index;
              }
              if (debug422) {
                console.log("Handle Object property:", deviceId, objId2, devObj.value);
              }
              devObj.value.forEach((val) => {
                if (JSON.stringify(val.value) === JSON.stringify(parent)) {
                  objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                  objDef[deviceId][objId2].push(val.value);
                  return;
                }
                cbCount++;
                parseValue22(
                  address,
                  parent.type,
                  val,
                  supportsMultiple,
                  (parsedValue) => {
                    if (debug422) {
                      console.log(
                        "RETURN parsedValue",
                        deviceId,
                        objId2,
                        devObj.value,
                        parsedValue
                      );
                    }
                    objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                    objDef[deviceId][objId2].push(parsedValue);
                    if (!--cbCount) {
                      finalize();
                    }
                  }
                );
              });
            });
          });
          if (cbCount === 0) {
            finalize();
          }
        }
        var limitToDevice22 = null;
        if (import_process22.default.argv.length === 3) {
          limitToDevice22 = parseInt(import_process22.default.argv[2]);
          if (isNaN(limitToDevice22)) {
            limitToDevice22 = null;
          }
        }
        var node_bacnet_default22 = Client22;
      }
    });
    var node_bacnet_exports2 = {};
    __export2(node_bacnet_exports2, {
      _: () => import_underscore2.default,
      bacnetErrorToString: () => bacnetErrorToString2,
      default: () => node_bacnet_default2,
      enums: () => enum_exports2,
      parseValue: () => parseValue2
    });
    module2.exports = __toCommonJS2(node_bacnet_exports2);
    var enum_exports2 = {};
    __export2(enum_exports2, {
      ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL2,
      ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS2,
      ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG2,
      ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES2,
      ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE2,
      ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT2,
      ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE2,
      ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY2,
      ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID2,
      ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY2,
      ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY2,
      AbortReason: () => AbortReason2,
      AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable2,
      AccessCredentialDisable: () => AccessCredentialDisable2,
      AccessCredentialDisableReason: () => AccessCredentialDisableReason2,
      AccessEvent: () => AccessEvent2,
      AccessPassbackMode: () => AccessPassbackMode2,
      AccessUserType: () => AccessUserType2,
      AccessZoneOccupancyState: () => AccessZoneOccupancyState2,
      Action: () => Action2,
      ApplicationTag: () => ApplicationTag2,
      ApplicationTagName: () => ApplicationTagName2,
      AuthenticationFactorType: () => AuthenticationFactorType2,
      AuthenticationStatus: () => AuthenticationStatus2,
      AuthorizationExemption: () => AuthorizationExemption2,
      AuthorizationMode: () => AuthorizationMode2,
      BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH3,
      BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP2,
      BackupState: () => BackupState2,
      BinaryLightingPV: () => BinaryLightingPV2,
      BinaryPV: () => BinaryPV2,
      BvlcResultFormat: () => BvlcResultFormat2,
      BvlcResultPurpose: () => BvlcResultPurpose2,
      CharacterStringEncoding: () => CharacterStringEncoding2,
      ConfirmedServiceChoice: () => ConfirmedServiceChoice2,
      CovType: () => CovType2,
      DaysOfWeek: () => DaysOfWeek2,
      DeviceStatus: () => DeviceStatus2,
      DoorAlarmState: () => DoorAlarmState2,
      DoorSecuredStatus: () => DoorSecuredStatus2,
      DoorStatus: () => DoorStatus2,
      DoorValue: () => DoorValue2,
      EnableDisable: () => EnableDisable2,
      EngineeringUnits: () => EngineeringUnits2,
      ErrorClass: () => ErrorClass2,
      ErrorClassName: () => ErrorClassName2,
      ErrorCode: () => ErrorCode2,
      ErrorCodeName: () => ErrorCodeName2,
      EscalatorFault: () => EscalatorFault2,
      EscalatorMode: () => EscalatorMode2,
      EscalatorOperationDirection: () => EscalatorOperationDirection2,
      EventState: () => EventState2,
      EventTransitionBits: () => EventTransitionBits2,
      EventType: () => EventType2,
      FaultType: () => FaultType2,
      FileAccessMethod: () => FileAccessMethod2,
      IPMode: () => IPMode2,
      LifeSafetyMode: () => LifeSafetyMode2,
      LifeSafetyOperation: () => LifeSafetyOperation2,
      LifeSafetyState: () => LifeSafetyState2,
      LiftCarDirection: () => LiftCarDirection2,
      LiftCarDoorCommand: () => LiftCarDoorCommand2,
      LiftCarDriveStatus: () => LiftCarDriveStatus2,
      LiftCarMode: () => LiftCarMode2,
      LiftFault: () => LiftFault2,
      LiftGroupMode: () => LiftGroupMode2,
      LightingInProgress: () => LightingInProgress2,
      LightingOperation: () => LightingOperation2,
      LightingTransition: () => LightingTransition2,
      LimitEnable: () => LimitEnable2,
      LockStatus: () => LockStatus2,
      LogStatus: () => LogStatus2,
      LoggingType: () => LoggingType2,
      Maintenance: () => Maintenance2,
      MaxApduLengthAccepted: () => MaxApduLengthAccepted2,
      MaxSegmentsAccepted: () => MaxSegmentsAccepted2,
      NetworkLayerMessageType: () => NetworkLayerMessageType2,
      NetworkNumberQuality: () => NetworkNumberQuality2,
      NetworkPortCommand: () => NetworkPortCommand2,
      NetworkType: () => NetworkType2,
      NodeType: () => NodeType2,
      NotifyType: () => NotifyType2,
      NpduControlBit: () => NpduControlBit2,
      NpduControlPriority: () => NpduControlPriority2,
      ObjectType: () => ObjectType2,
      ObjectTypesSupported: () => ObjectTypesSupported2,
      PDU_TYPE_MASK: () => PDU_TYPE_MASK2,
      PduConReqBit: () => PduConReqBit2,
      PduSegAckBit: () => PduSegAckBit2,
      PduType: () => PduType2,
      Polarity: () => Polarity2,
      ProgramError: () => ProgramError2,
      ProgramRequest: () => ProgramRequest2,
      ProgramState: () => ProgramState2,
      PropertyIdentifier: () => PropertyIdentifier2,
      PropertyStates: () => PropertyStates2,
      ProtocolLevel: () => ProtocolLevel2,
      ReadRangeType: () => ReadRangeType2,
      ReinitializedState: () => ReinitializedState2,
      RejectReason: () => RejectReason2,
      Relationship: () => Relationship2,
      Reliability: () => Reliability2,
      RestartReason: () => RestartReason2,
      ResultFlags: () => ResultFlags2,
      SecurityLevel: () => SecurityLevel2,
      SecurityPolicy: () => SecurityPolicy2,
      Segmentation: () => Segmentation2,
      ServicesSupported: () => ServicesSupported2,
      ShedState: () => ShedState2,
      SilencedState: () => SilencedState2,
      StatusFlags: () => StatusFlags2,
      TimeStamp: () => TimeStamp2,
      TimerState: () => TimerState2,
      TimerTransition: () => TimerTransition2,
      UnconfirmedServiceChoice: () => UnconfirmedServiceChoice2,
      VTClass: () => VTClass2,
      WriteStatus: () => WriteStatus2,
      getEnumName: () => getEnumName2
    });
    var import_debug4 = __toESM2(require("debug"));
    var debug5 = (0, import_debug4.default)("bacnet=enum=debug");
    var trace3 = (0, import_debug4.default)("bacnet=enum=trace");
    function invertEnum2(enumToInvert) {
      return Object.keys(enumToInvert).reduce((acc, key) => {
        const val = enumToInvert[key];
        acc[val] = key;
        return acc;
      }, {});
    }
    function getEnumName2(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
      if (!Number.isInteger(value)) {
        throw new Error(
          'getEnumName() can only be passed an integer value, was given "' + value + '"'
        );
      }
      let foundEntry;
      try {
        const invertedGroup = invertEnum2(group);
        foundEntry = invertedGroup[value];
        if (foundEntry === void 0 && undefinedFallbackValue) {
          foundEntry = undefinedFallbackValue;
        }
        if (foundEntry === void 0) {
          foundEntry = value.toString();
        } else if (addNumberValue) {
          let strinmanipulation = "";
          strinmanipulation += "(" + value + ")";
          foundEntry = foundEntry + strinmanipulation;
        }
      } catch (e) {
        trace3(e.message);
        foundEntry = null;
      }
      return foundEntry;
    }
    var PDU_TYPE_MASK2 = 240;
    var ASN1_MAX_OBJECT2 = 1023;
    var ASN1_INSTANCE_BITS2 = 22;
    var ASN1_MAX_INSTANCE2 = 4194303;
    var ASN1_MAX_BITSTRING_BYTES2 = 15;
    var ASN1_ARRAY_ALL2 = 4294967295;
    var ASN1_NO_PRIORITY2 = 0;
    var ASN1_MIN_PRIORITY2 = 1;
    var ASN1_MAX_PRIORITY2 = 16;
    var ASN1_MAX_APPLICATION_TAG2 = 16;
    var ASN1_MAX_OBJECT_TYPE2 = 1024;
    var ASN1_MAX_PROPERTY_ID2 = 4194303;
    var BVLL_TYPE_BACNET_IP2 = 129;
    var BVLC_HEADER_LENGTH3 = 4;
    var ConfirmedServiceChoice2 = /* @__PURE__ */ ((ConfirmedServiceChoice22) => {
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["READ_PROPERTY"] = 12] = "READ_PROPERTY";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["VT_OPEN"] = 21] = "VT_OPEN";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["VT_CLOSE"] = 22] = "VT_CLOSE";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["VT_DATA"] = 23] = "VT_DATA";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["READ_RANGE"] = 26] = "READ_RANGE";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
      ConfirmedServiceChoice22[ConfirmedServiceChoice22["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
      return ConfirmedServiceChoice22;
    })(ConfirmedServiceChoice2 || {});
    var UnconfirmedServiceChoice2 = /* @__PURE__ */ ((UnconfirmedServiceChoice22) => {
      UnconfirmedServiceChoice22[UnconfirmedServiceChoice22["I_AM"] = 0] = "I_AM";
      UnconfirmedServiceChoice22[UnconfirmedServiceChoice22["I_HAVE"] = 1] = "I_HAVE";
      UnconfirmedServiceChoice22[UnconfirmedServiceChoice22["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
      UnconfirmedServiceChoice22[UnconfirmedServiceChoice22["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
      UnconfirmedServiceChoice22[UnconfirmedServiceChoice22["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
      UnconfirmedServiceChoice22[UnconfirmedServiceChoice22["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
      UnconfirmedServiceChoice22[UnconfirmedServiceChoice22["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
      UnconfirmedServiceChoice22[UnconfirmedServiceChoice22["WHO_HAS"] = 7] = "WHO_HAS";
      UnconfirmedServiceChoice22[UnconfirmedServiceChoice22["WHO_IS"] = 8] = "WHO_IS";
      UnconfirmedServiceChoice22[UnconfirmedServiceChoice22["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
      UnconfirmedServiceChoice22[UnconfirmedServiceChoice22["WRITE_GROUP"] = 10] = "WRITE_GROUP";
      UnconfirmedServiceChoice22[UnconfirmedServiceChoice22["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
      return UnconfirmedServiceChoice22;
    })(UnconfirmedServiceChoice2 || {});
    var AbortReason2 = /* @__PURE__ */ ((AbortReason22) => {
      AbortReason22[AbortReason22["OTHER"] = 0] = "OTHER";
      AbortReason22[AbortReason22["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
      AbortReason22[AbortReason22["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
      AbortReason22[AbortReason22["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
      AbortReason22[AbortReason22["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
      AbortReason22[AbortReason22["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
      AbortReason22[AbortReason22["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
      AbortReason22[AbortReason22["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
      AbortReason22[AbortReason22["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
      AbortReason22[AbortReason22["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
      AbortReason22[AbortReason22["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
      AbortReason22[AbortReason22["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
      return AbortReason22;
    })(AbortReason2 || {});
    var RejectReason2 = /* @__PURE__ */ ((RejectReason22) => {
      RejectReason22[RejectReason22["OTHER"] = 0] = "OTHER";
      RejectReason22[RejectReason22["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
      RejectReason22[RejectReason22["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
      RejectReason22[RejectReason22["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
      RejectReason22[RejectReason22["INVALID_TAG"] = 4] = "INVALID_TAG";
      RejectReason22[RejectReason22["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
      RejectReason22[RejectReason22["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
      RejectReason22[RejectReason22["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
      RejectReason22[RejectReason22["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
      RejectReason22[RejectReason22["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
      return RejectReason22;
    })(RejectReason2 || {});
    var ErrorClass2 = /* @__PURE__ */ ((ErrorClass22) => {
      ErrorClass22[ErrorClass22["DEVICE"] = 0] = "DEVICE";
      ErrorClass22[ErrorClass22["OBJECT"] = 1] = "OBJECT";
      ErrorClass22[ErrorClass22["PROPERTY"] = 2] = "PROPERTY";
      ErrorClass22[ErrorClass22["RESOURCES"] = 3] = "RESOURCES";
      ErrorClass22[ErrorClass22["SECURITY"] = 4] = "SECURITY";
      ErrorClass22[ErrorClass22["SERVICES"] = 5] = "SERVICES";
      ErrorClass22[ErrorClass22["VT"] = 6] = "VT";
      ErrorClass22[ErrorClass22["COMMUNICATION"] = 7] = "COMMUNICATION";
      return ErrorClass22;
    })(ErrorClass2 || {});
    var ErrorClassName2 = invertEnum2(
      ErrorClass2
    );
    var ErrorCode2 = /* @__PURE__ */ ((ErrorCode22) => {
      ErrorCode22[ErrorCode22["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
      ErrorCode22[ErrorCode22["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
      ErrorCode22[ErrorCode22["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
      ErrorCode22[ErrorCode22["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
      ErrorCode22[ErrorCode22["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
      ErrorCode22[ErrorCode22["ABORT_OTHER"] = 56] = "ABORT_OTHER";
      ErrorCode22[ErrorCode22["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
      ErrorCode22[ErrorCode22["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
      ErrorCode22[ErrorCode22["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
      ErrorCode22[ErrorCode22["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
      ErrorCode22[ErrorCode22["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
      ErrorCode22[ErrorCode22["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
      ErrorCode22[ErrorCode22["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
      ErrorCode22[ErrorCode22["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
      ErrorCode22[ErrorCode22["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
      ErrorCode22[ErrorCode22["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
      ErrorCode22[ErrorCode22["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
      ErrorCode22[ErrorCode22["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
      ErrorCode22[ErrorCode22["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
      ErrorCode22[ErrorCode22["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
      ErrorCode22[ErrorCode22["BUSY"] = 82] = "BUSY";
      ErrorCode22[ErrorCode22["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
      ErrorCode22[ErrorCode22["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
      ErrorCode22[ErrorCode22["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
      ErrorCode22[ErrorCode22["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
      ErrorCode22[ErrorCode22["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
      ErrorCode22[ErrorCode22["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
      ErrorCode22[ErrorCode22["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
      ErrorCode22[ErrorCode22["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
      ErrorCode22[ErrorCode22["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
      ErrorCode22[ErrorCode22["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
      ErrorCode22[ErrorCode22["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
      ErrorCode22[ErrorCode22["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
      ErrorCode22[ErrorCode22["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
      ErrorCode22[ErrorCode22["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
      ErrorCode22[ErrorCode22["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
      ErrorCode22[ErrorCode22["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
      ErrorCode22[ErrorCode22["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
      ErrorCode22[ErrorCode22["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
      ErrorCode22[ErrorCode22["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
      ErrorCode22[ErrorCode22["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
      ErrorCode22[ErrorCode22["FILE_FULL"] = 128] = "FILE_FULL";
      ErrorCode22[ErrorCode22["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
      ErrorCode22[ErrorCode22["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
      ErrorCode22[ErrorCode22["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
      ErrorCode22[ErrorCode22["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
      ErrorCode22[ErrorCode22["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
      ErrorCode22[ErrorCode22["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
      ErrorCode22[ErrorCode22["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
      ErrorCode22[ErrorCode22["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
      ErrorCode22[ErrorCode22["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
      ErrorCode22[ErrorCode22["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
      ErrorCode22[ErrorCode22["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
      ErrorCode22[ErrorCode22["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
      ErrorCode22[ErrorCode22["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
      ErrorCode22[ErrorCode22["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
      ErrorCode22[ErrorCode22["INVALID_TAG"] = 57] = "INVALID_TAG";
      ErrorCode22[ErrorCode22["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
      ErrorCode22[ErrorCode22["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
      ErrorCode22[ErrorCode22["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
      ErrorCode22[ErrorCode22["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
      ErrorCode22[ErrorCode22["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
      ErrorCode22[ErrorCode22["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
      ErrorCode22[ErrorCode22["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
      ErrorCode22[ErrorCode22["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
      ErrorCode22[ErrorCode22["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
      ErrorCode22[ErrorCode22["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
      ErrorCode22[ErrorCode22["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
      ErrorCode22[ErrorCode22["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
      ErrorCode22[ErrorCode22["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
      ErrorCode22[ErrorCode22["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
      ErrorCode22[ErrorCode22["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
      ErrorCode22[ErrorCode22["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
      ErrorCode22[ErrorCode22["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
      ErrorCode22[ErrorCode22["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
      ErrorCode22[ErrorCode22["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
      ErrorCode22[ErrorCode22["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
      ErrorCode22[ErrorCode22["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
      ErrorCode22[ErrorCode22["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
      ErrorCode22[ErrorCode22["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
      ErrorCode22[ErrorCode22["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
      ErrorCode22[ErrorCode22["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
      ErrorCode22[ErrorCode22["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
      ErrorCode22[ErrorCode22["OTHER"] = 0] = "OTHER";
      ErrorCode22[ErrorCode22["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
      ErrorCode22[ErrorCode22["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
      ErrorCode22[ErrorCode22["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
      ErrorCode22[ErrorCode22["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
      ErrorCode22[ErrorCode22["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
      ErrorCode22[ErrorCode22["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
      ErrorCode22[ErrorCode22["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
      ErrorCode22[ErrorCode22["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
      ErrorCode22[ErrorCode22["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
      ErrorCode22[ErrorCode22["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
      ErrorCode22[ErrorCode22["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
      ErrorCode22[ErrorCode22["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
      ErrorCode22[ErrorCode22["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
      ErrorCode22[ErrorCode22["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
      ErrorCode22[ErrorCode22["REJECT_OTHER"] = 69] = "REJECT_OTHER";
      ErrorCode22[ErrorCode22["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
      ErrorCode22[ErrorCode22["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
      ErrorCode22[ErrorCode22["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
      ErrorCode22[ErrorCode22["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
      ErrorCode22[ErrorCode22["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
      ErrorCode22[ErrorCode22["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
      ErrorCode22[ErrorCode22["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
      ErrorCode22[ErrorCode22["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
      ErrorCode22[ErrorCode22["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
      ErrorCode22[ErrorCode22["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
      ErrorCode22[ErrorCode22["SUCCESS"] = 84] = "SUCCESS";
      ErrorCode22[ErrorCode22["TIMEOUT"] = 30] = "TIMEOUT";
      ErrorCode22[ErrorCode22["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
      ErrorCode22[ErrorCode22["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
      ErrorCode22[ErrorCode22["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
      ErrorCode22[ErrorCode22["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
      ErrorCode22[ErrorCode22["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
      ErrorCode22[ErrorCode22["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
      ErrorCode22[ErrorCode22["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
      ErrorCode22[ErrorCode22["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
      ErrorCode22[ErrorCode22["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
      ErrorCode22[ErrorCode22["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
      ErrorCode22[ErrorCode22["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
      ErrorCode22[ErrorCode22["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
      ErrorCode22[ErrorCode22["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
      ErrorCode22[ErrorCode22["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
      ErrorCode22[ErrorCode22["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
      ErrorCode22[ErrorCode22["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
      ErrorCode22[ErrorCode22["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
      ErrorCode22[ErrorCode22["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
      ErrorCode22[ErrorCode22["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
      ErrorCode22[ErrorCode22["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
      ErrorCode22[ErrorCode22["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
      ErrorCode22[ErrorCode22["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
      return ErrorCode22;
    })(ErrorCode2 || {});
    var ErrorCodeName2 = invertEnum2(
      ErrorCode2
    );
    var AccessAuthenticationFactorDisable2 = /* @__PURE__ */ ((AccessAuthenticationFactorDisable22) => {
      AccessAuthenticationFactorDisable22[AccessAuthenticationFactorDisable22["NONE"] = 0] = "NONE";
      AccessAuthenticationFactorDisable22[AccessAuthenticationFactorDisable22["DISABLED"] = 1] = "DISABLED";
      AccessAuthenticationFactorDisable22[AccessAuthenticationFactorDisable22["DISABLED_LOST"] = 2] = "DISABLED_LOST";
      AccessAuthenticationFactorDisable22[AccessAuthenticationFactorDisable22["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
      AccessAuthenticationFactorDisable22[AccessAuthenticationFactorDisable22["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
      AccessAuthenticationFactorDisable22[AccessAuthenticationFactorDisable22["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
      return AccessAuthenticationFactorDisable22;
    })(AccessAuthenticationFactorDisable2 || {});
    var AccessCredentialDisable2 = /* @__PURE__ */ ((AccessCredentialDisable22) => {
      AccessCredentialDisable22[AccessCredentialDisable22["NONE"] = 0] = "NONE";
      AccessCredentialDisable22[AccessCredentialDisable22["DISABLE"] = 1] = "DISABLE";
      AccessCredentialDisable22[AccessCredentialDisable22["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
      AccessCredentialDisable22[AccessCredentialDisable22["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
      return AccessCredentialDisable22;
    })(AccessCredentialDisable2 || {});
    var AccessCredentialDisableReason2 = /* @__PURE__ */ ((AccessCredentialDisableReason22) => {
      AccessCredentialDisableReason22[AccessCredentialDisableReason22["DISABLED"] = 0] = "DISABLED";
      AccessCredentialDisableReason22[AccessCredentialDisableReason22["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
      AccessCredentialDisableReason22[AccessCredentialDisableReason22["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
      AccessCredentialDisableReason22[AccessCredentialDisableReason22["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
      AccessCredentialDisableReason22[AccessCredentialDisableReason22["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
      AccessCredentialDisableReason22[AccessCredentialDisableReason22["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
      AccessCredentialDisableReason22[AccessCredentialDisableReason22["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
      AccessCredentialDisableReason22[AccessCredentialDisableReason22["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
      AccessCredentialDisableReason22[AccessCredentialDisableReason22["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
      AccessCredentialDisableReason22[AccessCredentialDisableReason22["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
      return AccessCredentialDisableReason22;
    })(AccessCredentialDisableReason2 || {});
    var AccessEvent2 = /* @__PURE__ */ ((AccessEvent22) => {
      AccessEvent22[AccessEvent22["NONE"] = 0] = "NONE";
      AccessEvent22[AccessEvent22["GRANTED"] = 1] = "GRANTED";
      AccessEvent22[AccessEvent22["MUSTER"] = 2] = "MUSTER";
      AccessEvent22[AccessEvent22["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
      AccessEvent22[AccessEvent22["DURESS"] = 4] = "DURESS";
      AccessEvent22[AccessEvent22["TRACE"] = 5] = "TRACE";
      AccessEvent22[AccessEvent22["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
      AccessEvent22[AccessEvent22["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
      AccessEvent22[AccessEvent22["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
      AccessEvent22[AccessEvent22["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
      AccessEvent22[AccessEvent22["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
      AccessEvent22[AccessEvent22["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
      AccessEvent22[AccessEvent22["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
      AccessEvent22[AccessEvent22["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
      AccessEvent22[AccessEvent22["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
      AccessEvent22[AccessEvent22["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
      AccessEvent22[AccessEvent22["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
      AccessEvent22[AccessEvent22["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
      AccessEvent22[AccessEvent22["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
      AccessEvent22[AccessEvent22["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
      AccessEvent22[AccessEvent22["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
      AccessEvent22[AccessEvent22["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
      AccessEvent22[AccessEvent22["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
      AccessEvent22[AccessEvent22["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
      AccessEvent22[AccessEvent22["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
      AccessEvent22[AccessEvent22["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
      AccessEvent22[AccessEvent22["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
      AccessEvent22[AccessEvent22["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
      AccessEvent22[AccessEvent22["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
      AccessEvent22[AccessEvent22["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
      AccessEvent22[AccessEvent22["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
      AccessEvent22[AccessEvent22["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
      AccessEvent22[AccessEvent22["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
      AccessEvent22[AccessEvent22["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
      AccessEvent22[AccessEvent22["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
      AccessEvent22[AccessEvent22["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
      AccessEvent22[AccessEvent22["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
      AccessEvent22[AccessEvent22["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
      AccessEvent22[AccessEvent22["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
      AccessEvent22[AccessEvent22["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
      AccessEvent22[AccessEvent22["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
      AccessEvent22[AccessEvent22["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
      AccessEvent22[AccessEvent22["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
      AccessEvent22[AccessEvent22["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
      AccessEvent22[AccessEvent22["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
      AccessEvent22[AccessEvent22["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
      AccessEvent22[AccessEvent22["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
      AccessEvent22[AccessEvent22["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
      AccessEvent22[AccessEvent22["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
      AccessEvent22[AccessEvent22["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
      AccessEvent22[AccessEvent22["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
      AccessEvent22[AccessEvent22["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
      AccessEvent22[AccessEvent22["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
      AccessEvent22[AccessEvent22["DENIED_OTHER"] = 164] = "DENIED_OTHER";
      return AccessEvent22;
    })(AccessEvent2 || {});
    var AccessPassbackMode2 = /* @__PURE__ */ ((AccessPassbackMode22) => {
      AccessPassbackMode22[AccessPassbackMode22["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
      AccessPassbackMode22[AccessPassbackMode22["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
      AccessPassbackMode22[AccessPassbackMode22["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
      return AccessPassbackMode22;
    })(AccessPassbackMode2 || {});
    var AccessUserType2 = /* @__PURE__ */ ((AccessUserType22) => {
      AccessUserType22[AccessUserType22["ASSET"] = 0] = "ASSET";
      AccessUserType22[AccessUserType22["GROUP"] = 1] = "GROUP";
      AccessUserType22[AccessUserType22["PERSON"] = 2] = "PERSON";
      return AccessUserType22;
    })(AccessUserType2 || {});
    var AccessZoneOccupancyState2 = /* @__PURE__ */ ((AccessZoneOccupancyState22) => {
      AccessZoneOccupancyState22[AccessZoneOccupancyState22["NORMAL"] = 0] = "NORMAL";
      AccessZoneOccupancyState22[AccessZoneOccupancyState22["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
      AccessZoneOccupancyState22[AccessZoneOccupancyState22["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
      AccessZoneOccupancyState22[AccessZoneOccupancyState22["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
      AccessZoneOccupancyState22[AccessZoneOccupancyState22["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
      AccessZoneOccupancyState22[AccessZoneOccupancyState22["DISABLED"] = 5] = "DISABLED";
      AccessZoneOccupancyState22[AccessZoneOccupancyState22["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
      return AccessZoneOccupancyState22;
    })(AccessZoneOccupancyState2 || {});
    var Action2 = /* @__PURE__ */ ((Action22) => {
      Action22[Action22["DIRECT"] = 0] = "DIRECT";
      Action22[Action22["REVERSE"] = 1] = "REVERSE";
      return Action22;
    })(Action2 || {});
    var AuthenticationFactorType2 = /* @__PURE__ */ ((AuthenticationFactorType22) => {
      AuthenticationFactorType22[AuthenticationFactorType22["UNDEFINED"] = 0] = "UNDEFINED";
      AuthenticationFactorType22[AuthenticationFactorType22["ERROR"] = 1] = "ERROR";
      AuthenticationFactorType22[AuthenticationFactorType22["CUSTOM"] = 2] = "CUSTOM";
      AuthenticationFactorType22[AuthenticationFactorType22["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
      AuthenticationFactorType22[AuthenticationFactorType22["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
      AuthenticationFactorType22[AuthenticationFactorType22["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
      AuthenticationFactorType22[AuthenticationFactorType22["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
      AuthenticationFactorType22[AuthenticationFactorType22["ABA_TRACK2"] = 7] = "ABA_TRACK2";
      AuthenticationFactorType22[AuthenticationFactorType22["WIEGAND26"] = 8] = "WIEGAND26";
      AuthenticationFactorType22[AuthenticationFactorType22["WIEGAND37"] = 9] = "WIEGAND37";
      AuthenticationFactorType22[AuthenticationFactorType22["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
      AuthenticationFactorType22[AuthenticationFactorType22["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
      AuthenticationFactorType22[AuthenticationFactorType22["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
      AuthenticationFactorType22[AuthenticationFactorType22["FASC_N"] = 13] = "FASC_N";
      AuthenticationFactorType22[AuthenticationFactorType22["FASC_N_BCD"] = 14] = "FASC_N_BCD";
      AuthenticationFactorType22[AuthenticationFactorType22["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
      AuthenticationFactorType22[AuthenticationFactorType22["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
      AuthenticationFactorType22[AuthenticationFactorType22["GSA75"] = 17] = "GSA75";
      AuthenticationFactorType22[AuthenticationFactorType22["CHUID"] = 18] = "CHUID";
      AuthenticationFactorType22[AuthenticationFactorType22["CHUID_FULL"] = 19] = "CHUID_FULL";
      AuthenticationFactorType22[AuthenticationFactorType22["GUID"] = 20] = "GUID";
      AuthenticationFactorType22[AuthenticationFactorType22["CBEFF_A"] = 21] = "CBEFF_A";
      AuthenticationFactorType22[AuthenticationFactorType22["CBEFF_B"] = 22] = "CBEFF_B";
      AuthenticationFactorType22[AuthenticationFactorType22["CBEFF_C"] = 23] = "CBEFF_C";
      AuthenticationFactorType22[AuthenticationFactorType22["USER_PASSWORD"] = 24] = "USER_PASSWORD";
      return AuthenticationFactorType22;
    })(AuthenticationFactorType2 || {});
    var AuthenticationStatus2 = /* @__PURE__ */ ((AuthenticationStatus22) => {
      AuthenticationStatus22[AuthenticationStatus22["NOT_READY"] = 0] = "NOT_READY";
      AuthenticationStatus22[AuthenticationStatus22["READY"] = 1] = "READY";
      AuthenticationStatus22[AuthenticationStatus22["DISABLED"] = 2] = "DISABLED";
      AuthenticationStatus22[AuthenticationStatus22["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
      AuthenticationStatus22[AuthenticationStatus22["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
      AuthenticationStatus22[AuthenticationStatus22["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
      AuthenticationStatus22[AuthenticationStatus22["IN_PROGRESS"] = 6] = "IN_PROGRESS";
      return AuthenticationStatus22;
    })(AuthenticationStatus2 || {});
    var AuthorizationExemption2 = /* @__PURE__ */ ((AuthorizationExemption22) => {
      AuthorizationExemption22[AuthorizationExemption22["PASSBACK"] = 0] = "PASSBACK";
      AuthorizationExemption22[AuthorizationExemption22["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
      AuthorizationExemption22[AuthorizationExemption22["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
      AuthorizationExemption22[AuthorizationExemption22["LOCKOUT"] = 3] = "LOCKOUT";
      AuthorizationExemption22[AuthorizationExemption22["DENY"] = 4] = "DENY";
      AuthorizationExemption22[AuthorizationExemption22["VERIFICATION"] = 5] = "VERIFICATION";
      AuthorizationExemption22[AuthorizationExemption22["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
      return AuthorizationExemption22;
    })(AuthorizationExemption2 || {});
    var AuthorizationMode2 = /* @__PURE__ */ ((AuthorizationMode22) => {
      AuthorizationMode22[AuthorizationMode22["AUTHORIZE"] = 0] = "AUTHORIZE";
      AuthorizationMode22[AuthorizationMode22["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
      AuthorizationMode22[AuthorizationMode22["DENY_ALL"] = 2] = "DENY_ALL";
      AuthorizationMode22[AuthorizationMode22["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
      AuthorizationMode22[AuthorizationMode22["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
      AuthorizationMode22[AuthorizationMode22["NONE"] = 5] = "NONE";
      return AuthorizationMode22;
    })(AuthorizationMode2 || {});
    var BackupState2 = /* @__PURE__ */ ((BackupState22) => {
      BackupState22[BackupState22["IDLE"] = 0] = "IDLE";
      BackupState22[BackupState22["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
      BackupState22[BackupState22["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
      BackupState22[BackupState22["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
      BackupState22[BackupState22["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
      BackupState22[BackupState22["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
      BackupState22[BackupState22["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
      return BackupState22;
    })(BackupState2 || {});
    var BinaryLightingPV2 = /* @__PURE__ */ ((BinaryLightingPV22) => {
      BinaryLightingPV22[BinaryLightingPV22["OFF"] = 0] = "OFF";
      BinaryLightingPV22[BinaryLightingPV22["ON"] = 1] = "ON";
      BinaryLightingPV22[BinaryLightingPV22["WARN"] = 2] = "WARN";
      BinaryLightingPV22[BinaryLightingPV22["WARN_OFF"] = 3] = "WARN_OFF";
      BinaryLightingPV22[BinaryLightingPV22["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
      BinaryLightingPV22[BinaryLightingPV22["STOP"] = 5] = "STOP";
      return BinaryLightingPV22;
    })(BinaryLightingPV2 || {});
    var BinaryPV2 = /* @__PURE__ */ ((BinaryPV22) => {
      BinaryPV22[BinaryPV22["INACTIVE"] = 0] = "INACTIVE";
      BinaryPV22[BinaryPV22["ACTIVE"] = 1] = "ACTIVE";
      return BinaryPV22;
    })(BinaryPV2 || {});
    var DeviceStatus2 = /* @__PURE__ */ ((DeviceStatus22) => {
      DeviceStatus22[DeviceStatus22["OPERATIONAL"] = 0] = "OPERATIONAL";
      DeviceStatus22[DeviceStatus22["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
      DeviceStatus22[DeviceStatus22["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
      DeviceStatus22[DeviceStatus22["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
      DeviceStatus22[DeviceStatus22["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
      DeviceStatus22[DeviceStatus22["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
      return DeviceStatus22;
    })(DeviceStatus2 || {});
    var DoorAlarmState2 = /* @__PURE__ */ ((DoorAlarmState22) => {
      DoorAlarmState22[DoorAlarmState22["NORMAL"] = 0] = "NORMAL";
      DoorAlarmState22[DoorAlarmState22["ALARM"] = 1] = "ALARM";
      DoorAlarmState22[DoorAlarmState22["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
      DoorAlarmState22[DoorAlarmState22["FORCED_OPEN"] = 3] = "FORCED_OPEN";
      DoorAlarmState22[DoorAlarmState22["TAMPER"] = 4] = "TAMPER";
      DoorAlarmState22[DoorAlarmState22["DOOR_FAULT"] = 5] = "DOOR_FAULT";
      DoorAlarmState22[DoorAlarmState22["LOCK_DOWN"] = 6] = "LOCK_DOWN";
      DoorAlarmState22[DoorAlarmState22["FREE_ACCESS"] = 7] = "FREE_ACCESS";
      DoorAlarmState22[DoorAlarmState22["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
      return DoorAlarmState22;
    })(DoorAlarmState2 || {});
    var DoorSecuredStatus2 = /* @__PURE__ */ ((DoorSecuredStatus22) => {
      DoorSecuredStatus22[DoorSecuredStatus22["SECURED"] = 0] = "SECURED";
      DoorSecuredStatus22[DoorSecuredStatus22["UNSECURED"] = 1] = "UNSECURED";
      DoorSecuredStatus22[DoorSecuredStatus22["UNKNOWN"] = 2] = "UNKNOWN";
      return DoorSecuredStatus22;
    })(DoorSecuredStatus2 || {});
    var DoorStatus2 = /* @__PURE__ */ ((DoorStatus22) => {
      DoorStatus22[DoorStatus22["CLOSED"] = 0] = "CLOSED";
      DoorStatus22[DoorStatus22["OPENED"] = 1] = "OPENED";
      DoorStatus22[DoorStatus22["UNKNOWN"] = 2] = "UNKNOWN";
      DoorStatus22[DoorStatus22["DOOR_FAULT"] = 3] = "DOOR_FAULT";
      DoorStatus22[DoorStatus22["UNUSED"] = 4] = "UNUSED";
      DoorStatus22[DoorStatus22["NONE"] = 5] = "NONE";
      DoorStatus22[DoorStatus22["CLOSING"] = 6] = "CLOSING";
      DoorStatus22[DoorStatus22["OPENING"] = 7] = "OPENING";
      DoorStatus22[DoorStatus22["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
      DoorStatus22[DoorStatus22["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
      return DoorStatus22;
    })(DoorStatus2 || {});
    var DoorValue2 = /* @__PURE__ */ ((DoorValue22) => {
      DoorValue22[DoorValue22["LOCK"] = 0] = "LOCK";
      DoorValue22[DoorValue22["UNLOCK"] = 1] = "UNLOCK";
      DoorValue22[DoorValue22["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
      DoorValue22[DoorValue22["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
      return DoorValue22;
    })(DoorValue2 || {});
    var EngineeringUnits2 = /* @__PURE__ */ ((EngineeringUnits22) => {
      EngineeringUnits22[EngineeringUnits22["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["SQUARE_METERS"] = 0] = "SQUARE_METERS";
      EngineeringUnits22[EngineeringUnits22["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
      EngineeringUnits22[EngineeringUnits22["SQUARE_FEET"] = 1] = "SQUARE_FEET";
      EngineeringUnits22[EngineeringUnits22["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
      EngineeringUnits22[EngineeringUnits22["CURRENCY1"] = 105] = "CURRENCY1";
      EngineeringUnits22[EngineeringUnits22["CURRENCY2"] = 106] = "CURRENCY2";
      EngineeringUnits22[EngineeringUnits22["CURRENCY3"] = 107] = "CURRENCY3";
      EngineeringUnits22[EngineeringUnits22["CURRENCY4"] = 108] = "CURRENCY4";
      EngineeringUnits22[EngineeringUnits22["CURRENCY5"] = 109] = "CURRENCY5";
      EngineeringUnits22[EngineeringUnits22["CURRENCY6"] = 110] = "CURRENCY6";
      EngineeringUnits22[EngineeringUnits22["CURRENCY7"] = 111] = "CURRENCY7";
      EngineeringUnits22[EngineeringUnits22["CURRENCY8"] = 112] = "CURRENCY8";
      EngineeringUnits22[EngineeringUnits22["CURRENCY9"] = 113] = "CURRENCY9";
      EngineeringUnits22[EngineeringUnits22["CURRENCY10"] = 114] = "CURRENCY10";
      EngineeringUnits22[EngineeringUnits22["MILLIAMPERES"] = 2] = "MILLIAMPERES";
      EngineeringUnits22[EngineeringUnits22["AMPERES"] = 3] = "AMPERES";
      EngineeringUnits22[EngineeringUnits22["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
      EngineeringUnits22[EngineeringUnits22["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
      EngineeringUnits22[EngineeringUnits22["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
      EngineeringUnits22[EngineeringUnits22["DECIBELS"] = 199] = "DECIBELS";
      EngineeringUnits22[EngineeringUnits22["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
      EngineeringUnits22[EngineeringUnits22["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
      EngineeringUnits22[EngineeringUnits22["FARADS"] = 170] = "FARADS";
      EngineeringUnits22[EngineeringUnits22["HENRYS"] = 171] = "HENRYS";
      EngineeringUnits22[EngineeringUnits22["OHMS"] = 4] = "OHMS";
      EngineeringUnits22[EngineeringUnits22["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
      EngineeringUnits22[EngineeringUnits22["OHM_METERS"] = 172] = "OHM_METERS";
      EngineeringUnits22[EngineeringUnits22["MILLIOHMS"] = 145] = "MILLIOHMS";
      EngineeringUnits22[EngineeringUnits22["KILOHMS"] = 122] = "KILOHMS";
      EngineeringUnits22[EngineeringUnits22["MEGOHMS"] = 123] = "MEGOHMS";
      EngineeringUnits22[EngineeringUnits22["MICROSIEMENS"] = 190] = "MICROSIEMENS";
      EngineeringUnits22[EngineeringUnits22["MILLISIEMENS"] = 202] = "MILLISIEMENS";
      EngineeringUnits22[EngineeringUnits22["SIEMENS"] = 173] = "SIEMENS";
      EngineeringUnits22[EngineeringUnits22["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
      EngineeringUnits22[EngineeringUnits22["TESLAS"] = 175] = "TESLAS";
      EngineeringUnits22[EngineeringUnits22["VOLTS"] = 5] = "VOLTS";
      EngineeringUnits22[EngineeringUnits22["MILLIVOLTS"] = 124] = "MILLIVOLTS";
      EngineeringUnits22[EngineeringUnits22["KILOVOLTS"] = 6] = "KILOVOLTS";
      EngineeringUnits22[EngineeringUnits22["MEGAVOLTS"] = 7] = "MEGAVOLTS";
      EngineeringUnits22[EngineeringUnits22["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
      EngineeringUnits22[EngineeringUnits22["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
      EngineeringUnits22[EngineeringUnits22["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
      EngineeringUnits22[EngineeringUnits22["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
      EngineeringUnits22[EngineeringUnits22["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
      EngineeringUnits22[EngineeringUnits22["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
      EngineeringUnits22[EngineeringUnits22["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
      EngineeringUnits22[EngineeringUnits22["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
      EngineeringUnits22[EngineeringUnits22["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
      EngineeringUnits22[EngineeringUnits22["POWER_FACTOR"] = 15] = "POWER_FACTOR";
      EngineeringUnits22[EngineeringUnits22["WEBERS"] = 178] = "WEBERS";
      EngineeringUnits22[EngineeringUnits22["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
      EngineeringUnits22[EngineeringUnits22["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
      EngineeringUnits22[EngineeringUnits22["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
      EngineeringUnits22[EngineeringUnits22["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
      EngineeringUnits22[EngineeringUnits22["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
      EngineeringUnits22[EngineeringUnits22["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
      EngineeringUnits22[EngineeringUnits22["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
      EngineeringUnits22[EngineeringUnits22["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
      EngineeringUnits22[EngineeringUnits22["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
      EngineeringUnits22[EngineeringUnits22["JOULES"] = 16] = "JOULES";
      EngineeringUnits22[EngineeringUnits22["KILOJOULES"] = 17] = "KILOJOULES";
      EngineeringUnits22[EngineeringUnits22["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
      EngineeringUnits22[EngineeringUnits22["MEGAJOULES"] = 126] = "MEGAJOULES";
      EngineeringUnits22[EngineeringUnits22["WATT_HOURS"] = 18] = "WATT_HOURS";
      EngineeringUnits22[EngineeringUnits22["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
      EngineeringUnits22[EngineeringUnits22["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
      EngineeringUnits22[EngineeringUnits22["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
      EngineeringUnits22[EngineeringUnits22["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
      EngineeringUnits22[EngineeringUnits22["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
      EngineeringUnits22[EngineeringUnits22["BTUS"] = 20] = "BTUS";
      EngineeringUnits22[EngineeringUnits22["KILO_BTUS"] = 147] = "KILO_BTUS";
      EngineeringUnits22[EngineeringUnits22["MEGA_BTUS"] = 148] = "MEGA_BTUS";
      EngineeringUnits22[EngineeringUnits22["THERMS"] = 21] = "THERMS";
      EngineeringUnits22[EngineeringUnits22["TON_HOURS"] = 22] = "TON_HOURS";
      EngineeringUnits22[EngineeringUnits22["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
      EngineeringUnits22[EngineeringUnits22["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
      EngineeringUnits22[EngineeringUnits22["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
      EngineeringUnits22[EngineeringUnits22["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
      EngineeringUnits22[EngineeringUnits22["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
      EngineeringUnits22[EngineeringUnits22["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
      EngineeringUnits22[EngineeringUnits22["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
      EngineeringUnits22[EngineeringUnits22["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
      EngineeringUnits22[EngineeringUnits22["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
      EngineeringUnits22[EngineeringUnits22["NEWTON"] = 153] = "NEWTON";
      EngineeringUnits22[EngineeringUnits22["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["HERTZ"] = 27] = "HERTZ";
      EngineeringUnits22[EngineeringUnits22["KILOHERTZ"] = 129] = "KILOHERTZ";
      EngineeringUnits22[EngineeringUnits22["MEGAHERTZ"] = 130] = "MEGAHERTZ";
      EngineeringUnits22[EngineeringUnits22["PER_HOUR"] = 131] = "PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
      EngineeringUnits22[EngineeringUnits22["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
      EngineeringUnits22[EngineeringUnits22["MICROMETERS"] = 194] = "MICROMETERS";
      EngineeringUnits22[EngineeringUnits22["MILLIMETERS"] = 30] = "MILLIMETERS";
      EngineeringUnits22[EngineeringUnits22["CENTIMETERS"] = 118] = "CENTIMETERS";
      EngineeringUnits22[EngineeringUnits22["KILOMETERS"] = 193] = "KILOMETERS";
      EngineeringUnits22[EngineeringUnits22["METERS"] = 31] = "METERS";
      EngineeringUnits22[EngineeringUnits22["INCHES"] = 32] = "INCHES";
      EngineeringUnits22[EngineeringUnits22["FEET"] = 33] = "FEET";
      EngineeringUnits22[EngineeringUnits22["CANDELAS"] = 179] = "CANDELAS";
      EngineeringUnits22[EngineeringUnits22["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
      EngineeringUnits22[EngineeringUnits22["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
      EngineeringUnits22[EngineeringUnits22["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
      EngineeringUnits22[EngineeringUnits22["LUMENS"] = 36] = "LUMENS";
      EngineeringUnits22[EngineeringUnits22["LUXES"] = 37] = "LUXES";
      EngineeringUnits22[EngineeringUnits22["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
      EngineeringUnits22[EngineeringUnits22["MILLIGRAMS"] = 196] = "MILLIGRAMS";
      EngineeringUnits22[EngineeringUnits22["GRAMS"] = 195] = "GRAMS";
      EngineeringUnits22[EngineeringUnits22["KILOGRAMS"] = 39] = "KILOGRAMS";
      EngineeringUnits22[EngineeringUnits22["POUNDS_MASS"] = 40] = "POUNDS_MASS";
      EngineeringUnits22[EngineeringUnits22["TONS"] = 41] = "TONS";
      EngineeringUnits22[EngineeringUnits22["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["MILLIWATTS"] = 132] = "MILLIWATTS";
      EngineeringUnits22[EngineeringUnits22["WATTS"] = 47] = "WATTS";
      EngineeringUnits22[EngineeringUnits22["KILOWATTS"] = 48] = "KILOWATTS";
      EngineeringUnits22[EngineeringUnits22["MEGAWATTS"] = 49] = "MEGAWATTS";
      EngineeringUnits22[EngineeringUnits22["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
      EngineeringUnits22[EngineeringUnits22["HORSEPOWER"] = 51] = "HORSEPOWER";
      EngineeringUnits22[EngineeringUnits22["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
      EngineeringUnits22[EngineeringUnits22["PASCALS"] = 53] = "PASCALS";
      EngineeringUnits22[EngineeringUnits22["HECTOPASCALS"] = 133] = "HECTOPASCALS";
      EngineeringUnits22[EngineeringUnits22["KILOPASCALS"] = 54] = "KILOPASCALS";
      EngineeringUnits22[EngineeringUnits22["MILLIBARS"] = 134] = "MILLIBARS";
      EngineeringUnits22[EngineeringUnits22["BARS"] = 55] = "BARS";
      EngineeringUnits22[EngineeringUnits22["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
      EngineeringUnits22[EngineeringUnits22["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
      EngineeringUnits22[EngineeringUnits22["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
      EngineeringUnits22[EngineeringUnits22["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
      EngineeringUnits22[EngineeringUnits22["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
      EngineeringUnits22[EngineeringUnits22["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
      EngineeringUnits22[EngineeringUnits22["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
      EngineeringUnits22[EngineeringUnits22["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
      EngineeringUnits22[EngineeringUnits22["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
      EngineeringUnits22[EngineeringUnits22["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
      EngineeringUnits22[EngineeringUnits22["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
      EngineeringUnits22[EngineeringUnits22["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
      EngineeringUnits22[EngineeringUnits22["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
      EngineeringUnits22[EngineeringUnits22["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
      EngineeringUnits22[EngineeringUnits22["YEARS"] = 67] = "YEARS";
      EngineeringUnits22[EngineeringUnits22["MONTHS"] = 68] = "MONTHS";
      EngineeringUnits22[EngineeringUnits22["WEEKS"] = 69] = "WEEKS";
      EngineeringUnits22[EngineeringUnits22["DAYS"] = 70] = "DAYS";
      EngineeringUnits22[EngineeringUnits22["HOURS"] = 71] = "HOURS";
      EngineeringUnits22[EngineeringUnits22["MINUTES"] = 72] = "MINUTES";
      EngineeringUnits22[EngineeringUnits22["SECONDS"] = 73] = "SECONDS";
      EngineeringUnits22[EngineeringUnits22["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
      EngineeringUnits22[EngineeringUnits22["MILLISECONDS"] = 159] = "MILLISECONDS";
      EngineeringUnits22[EngineeringUnits22["NEWTON_METERS"] = 160] = "NEWTON_METERS";
      EngineeringUnits22[EngineeringUnits22["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["CUBIC_FEET"] = 79] = "CUBIC_FEET";
      EngineeringUnits22[EngineeringUnits22["CUBIC_METERS"] = 80] = "CUBIC_METERS";
      EngineeringUnits22[EngineeringUnits22["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
      EngineeringUnits22[EngineeringUnits22["MILLILITERS"] = 197] = "MILLILITERS";
      EngineeringUnits22[EngineeringUnits22["LITERS"] = 82] = "LITERS";
      EngineeringUnits22[EngineeringUnits22["US_GALLONS"] = 83] = "US_GALLONS";
      EngineeringUnits22[EngineeringUnits22["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
      EngineeringUnits22[EngineeringUnits22["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
      EngineeringUnits22[EngineeringUnits22["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
      EngineeringUnits22[EngineeringUnits22["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
      EngineeringUnits22[EngineeringUnits22["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
      EngineeringUnits22[EngineeringUnits22["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
      EngineeringUnits22[EngineeringUnits22["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
      EngineeringUnits22[EngineeringUnits22["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
      EngineeringUnits22[EngineeringUnits22["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
      EngineeringUnits22[EngineeringUnits22["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
      EngineeringUnits22[EngineeringUnits22["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
      EngineeringUnits22[EngineeringUnits22["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
      EngineeringUnits22[EngineeringUnits22["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
      EngineeringUnits22[EngineeringUnits22["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
      EngineeringUnits22[EngineeringUnits22["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
      EngineeringUnits22[EngineeringUnits22["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
      EngineeringUnits22[EngineeringUnits22["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
      EngineeringUnits22[EngineeringUnits22["NO_UNITS"] = 95] = "NO_UNITS";
      EngineeringUnits22[EngineeringUnits22["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
      EngineeringUnits22[EngineeringUnits22["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
      EngineeringUnits22[EngineeringUnits22["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
      EngineeringUnits22[EngineeringUnits22["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
      EngineeringUnits22[EngineeringUnits22["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
      EngineeringUnits22[EngineeringUnits22["PERCENT"] = 98] = "PERCENT";
      EngineeringUnits22[EngineeringUnits22["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
      EngineeringUnits22[EngineeringUnits22["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
      EngineeringUnits22[EngineeringUnits22["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["PER_MINUTE"] = 100] = "PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["PER_SECOND"] = 101] = "PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
      EngineeringUnits22[EngineeringUnits22["RADIANS"] = 103] = "RADIANS";
      EngineeringUnits22[EngineeringUnits22["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
      EngineeringUnits22[EngineeringUnits22["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
      EngineeringUnits22[EngineeringUnits22["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
      EngineeringUnits22[EngineeringUnits22["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
      EngineeringUnits22[EngineeringUnits22["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
      EngineeringUnits22[EngineeringUnits22["PER_MILLE"] = 207] = "PER_MILLE";
      EngineeringUnits22[EngineeringUnits22["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
      EngineeringUnits22[EngineeringUnits22["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
      EngineeringUnits22[EngineeringUnits22["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
      EngineeringUnits22[EngineeringUnits22["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
      EngineeringUnits22[EngineeringUnits22["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
      EngineeringUnits22[EngineeringUnits22["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
      EngineeringUnits22[EngineeringUnits22["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
      EngineeringUnits22[EngineeringUnits22["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
      EngineeringUnits22[EngineeringUnits22["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
      EngineeringUnits22[EngineeringUnits22["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
      EngineeringUnits22[EngineeringUnits22["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
      EngineeringUnits22[EngineeringUnits22["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
      EngineeringUnits22[EngineeringUnits22["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
      EngineeringUnits22[EngineeringUnits22["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
      EngineeringUnits22[EngineeringUnits22["BECQUERELS"] = 222] = "BECQUERELS";
      EngineeringUnits22[EngineeringUnits22["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
      EngineeringUnits22[EngineeringUnits22["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
      EngineeringUnits22[EngineeringUnits22["GRAY"] = 225] = "GRAY";
      EngineeringUnits22[EngineeringUnits22["MILLIGRAY"] = 226] = "MILLIGRAY";
      EngineeringUnits22[EngineeringUnits22["MICROGRAY"] = 227] = "MICROGRAY";
      EngineeringUnits22[EngineeringUnits22["SIEVERTS"] = 228] = "SIEVERTS";
      EngineeringUnits22[EngineeringUnits22["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
      EngineeringUnits22[EngineeringUnits22["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
      EngineeringUnits22[EngineeringUnits22["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["MILLIREMS"] = 47814] = "MILLIREMS";
      EngineeringUnits22[EngineeringUnits22["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
      EngineeringUnits22[EngineeringUnits22["DECIBELS_A"] = 232] = "DECIBELS_A";
      EngineeringUnits22[EngineeringUnits22["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
      EngineeringUnits22[EngineeringUnits22["PH"] = 234] = "PH";
      EngineeringUnits22[EngineeringUnits22["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
      EngineeringUnits22[EngineeringUnits22["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
      return EngineeringUnits22;
    })(EngineeringUnits2 || {});
    var EscalatorFault2 = /* @__PURE__ */ ((EscalatorFault22) => {
      EscalatorFault22[EscalatorFault22["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
      EscalatorFault22[EscalatorFault22["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
      EscalatorFault22[EscalatorFault22["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
      EscalatorFault22[EscalatorFault22["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
      EscalatorFault22[EscalatorFault22["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
      EscalatorFault22[EscalatorFault22["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
      EscalatorFault22[EscalatorFault22["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
      EscalatorFault22[EscalatorFault22["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
      EscalatorFault22[EscalatorFault22["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
      return EscalatorFault22;
    })(EscalatorFault2 || {});
    var EscalatorMode2 = /* @__PURE__ */ ((EscalatorMode22) => {
      EscalatorMode22[EscalatorMode22["UNKNOWN"] = 0] = "UNKNOWN";
      EscalatorMode22[EscalatorMode22["STOP"] = 1] = "STOP";
      EscalatorMode22[EscalatorMode22["UP"] = 2] = "UP";
      EscalatorMode22[EscalatorMode22["DOWN"] = 3] = "DOWN";
      EscalatorMode22[EscalatorMode22["INSPECTION"] = 4] = "INSPECTION";
      EscalatorMode22[EscalatorMode22["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
      return EscalatorMode22;
    })(EscalatorMode2 || {});
    var EscalatorOperationDirection2 = /* @__PURE__ */ ((EscalatorOperationDirection22) => {
      EscalatorOperationDirection22[EscalatorOperationDirection22["UNKNOWN"] = 0] = "UNKNOWN";
      EscalatorOperationDirection22[EscalatorOperationDirection22["STOPPED"] = 1] = "STOPPED";
      EscalatorOperationDirection22[EscalatorOperationDirection22["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
      EscalatorOperationDirection22[EscalatorOperationDirection22["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
      EscalatorOperationDirection22[EscalatorOperationDirection22["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
      EscalatorOperationDirection22[EscalatorOperationDirection22["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
      return EscalatorOperationDirection22;
    })(EscalatorOperationDirection2 || {});
    var EventState2 = /* @__PURE__ */ ((EventState22) => {
      EventState22[EventState22["NORMAL"] = 0] = "NORMAL";
      EventState22[EventState22["FAULT"] = 1] = "FAULT";
      EventState22[EventState22["OFFNORMAL"] = 2] = "OFFNORMAL";
      EventState22[EventState22["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
      EventState22[EventState22["LOW_LIMIT"] = 4] = "LOW_LIMIT";
      EventState22[EventState22["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
      return EventState22;
    })(EventState2 || {});
    var EventType2 = /* @__PURE__ */ ((EventType22) => {
      EventType22[EventType22["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
      EventType22[EventType22["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
      EventType22[EventType22["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
      EventType22[EventType22["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
      EventType22[EventType22["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
      EventType22[EventType22["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
      EventType22[EventType22["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
      EventType22[EventType22["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
      EventType22[EventType22["EXTENDED"] = 9] = "EXTENDED";
      EventType22[EventType22["BUFFER_READY"] = 10] = "BUFFER_READY";
      EventType22[EventType22["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
      EventType22[EventType22["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
      EventType22[EventType22["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
      EventType22[EventType22["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
      EventType22[EventType22["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
      EventType22[EventType22["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
      EventType22[EventType22["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
      EventType22[EventType22["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
      EventType22[EventType22["NONE"] = 20] = "NONE";
      EventType22[EventType22["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
      EventType22[EventType22["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
      return EventType22;
    })(EventType2 || {});
    var FaultType2 = /* @__PURE__ */ ((FaultType22) => {
      FaultType22[FaultType22["NONE"] = 0] = "NONE";
      FaultType22[FaultType22["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
      FaultType22[FaultType22["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
      FaultType22[FaultType22["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
      FaultType22[FaultType22["FAULT_STATE"] = 4] = "FAULT_STATE";
      FaultType22[FaultType22["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
      FaultType22[FaultType22["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
      FaultType22[FaultType22["FAULT_LISTED"] = 7] = "FAULT_LISTED";
      return FaultType22;
    })(FaultType2 || {});
    var FileAccessMethod2 = /* @__PURE__ */ ((FileAccessMethod22) => {
      FileAccessMethod22[FileAccessMethod22["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
      FileAccessMethod22[FileAccessMethod22["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
      return FileAccessMethod22;
    })(FileAccessMethod2 || {});
    var IPMode2 = /* @__PURE__ */ ((IPMode22) => {
      IPMode22[IPMode22["NORMAL"] = 0] = "NORMAL";
      IPMode22[IPMode22["FOREIGN"] = 1] = "FOREIGN";
      IPMode22[IPMode22["BBMD"] = 2] = "BBMD";
      return IPMode22;
    })(IPMode2 || {});
    var LifeSafetyMode2 = /* @__PURE__ */ ((LifeSafetyMode22) => {
      LifeSafetyMode22[LifeSafetyMode22["OFF"] = 0] = "OFF";
      LifeSafetyMode22[LifeSafetyMode22["ON"] = 1] = "ON";
      LifeSafetyMode22[LifeSafetyMode22["TEST"] = 2] = "TEST";
      LifeSafetyMode22[LifeSafetyMode22["MANNED"] = 3] = "MANNED";
      LifeSafetyMode22[LifeSafetyMode22["UNMANNED"] = 4] = "UNMANNED";
      LifeSafetyMode22[LifeSafetyMode22["ARMED"] = 5] = "ARMED";
      LifeSafetyMode22[LifeSafetyMode22["DISARMED"] = 6] = "DISARMED";
      LifeSafetyMode22[LifeSafetyMode22["PREARMED"] = 7] = "PREARMED";
      LifeSafetyMode22[LifeSafetyMode22["SLOW"] = 8] = "SLOW";
      LifeSafetyMode22[LifeSafetyMode22["FAST"] = 9] = "FAST";
      LifeSafetyMode22[LifeSafetyMode22["DISCONNECTED"] = 10] = "DISCONNECTED";
      LifeSafetyMode22[LifeSafetyMode22["ENABLED"] = 11] = "ENABLED";
      LifeSafetyMode22[LifeSafetyMode22["DISABLED"] = 12] = "DISABLED";
      LifeSafetyMode22[LifeSafetyMode22["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
      LifeSafetyMode22[LifeSafetyMode22["DEFAULT"] = 14] = "DEFAULT";
      return LifeSafetyMode22;
    })(LifeSafetyMode2 || {});
    var LifeSafetyOperation2 = /* @__PURE__ */ ((LifeSafetyOperation22) => {
      LifeSafetyOperation22[LifeSafetyOperation22["NONE"] = 0] = "NONE";
      LifeSafetyOperation22[LifeSafetyOperation22["SILENCE"] = 1] = "SILENCE";
      LifeSafetyOperation22[LifeSafetyOperation22["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
      LifeSafetyOperation22[LifeSafetyOperation22["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
      LifeSafetyOperation22[LifeSafetyOperation22["RESET"] = 4] = "RESET";
      LifeSafetyOperation22[LifeSafetyOperation22["RESET_ALARM"] = 5] = "RESET_ALARM";
      LifeSafetyOperation22[LifeSafetyOperation22["RESET_FAULT"] = 6] = "RESET_FAULT";
      LifeSafetyOperation22[LifeSafetyOperation22["UNSILENCE"] = 7] = "UNSILENCE";
      LifeSafetyOperation22[LifeSafetyOperation22["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
      LifeSafetyOperation22[LifeSafetyOperation22["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
      return LifeSafetyOperation22;
    })(LifeSafetyOperation2 || {});
    var LifeSafetyState2 = /* @__PURE__ */ ((LifeSafetyState22) => {
      LifeSafetyState22[LifeSafetyState22["QUIET"] = 0] = "QUIET";
      LifeSafetyState22[LifeSafetyState22["PRE_ALARM"] = 1] = "PRE_ALARM";
      LifeSafetyState22[LifeSafetyState22["ALARM"] = 2] = "ALARM";
      LifeSafetyState22[LifeSafetyState22["FAULT"] = 3] = "FAULT";
      LifeSafetyState22[LifeSafetyState22["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
      LifeSafetyState22[LifeSafetyState22["FAULT_ALARM"] = 5] = "FAULT_ALARM";
      LifeSafetyState22[LifeSafetyState22["NOT_READY"] = 6] = "NOT_READY";
      LifeSafetyState22[LifeSafetyState22["ACTIVE"] = 7] = "ACTIVE";
      LifeSafetyState22[LifeSafetyState22["TAMPER"] = 8] = "TAMPER";
      LifeSafetyState22[LifeSafetyState22["TEST_ALARM"] = 9] = "TEST_ALARM";
      LifeSafetyState22[LifeSafetyState22["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
      LifeSafetyState22[LifeSafetyState22["TEST_FAULT"] = 11] = "TEST_FAULT";
      LifeSafetyState22[LifeSafetyState22["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
      LifeSafetyState22[LifeSafetyState22["HOLDUP"] = 13] = "HOLDUP";
      LifeSafetyState22[LifeSafetyState22["DURESS"] = 14] = "DURESS";
      LifeSafetyState22[LifeSafetyState22["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
      LifeSafetyState22[LifeSafetyState22["ABNORMAL"] = 16] = "ABNORMAL";
      LifeSafetyState22[LifeSafetyState22["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
      LifeSafetyState22[LifeSafetyState22["DELAYED"] = 18] = "DELAYED";
      LifeSafetyState22[LifeSafetyState22["BLOCKED"] = 19] = "BLOCKED";
      LifeSafetyState22[LifeSafetyState22["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
      LifeSafetyState22[LifeSafetyState22["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
      LifeSafetyState22[LifeSafetyState22["SUPERVISORY"] = 22] = "SUPERVISORY";
      LifeSafetyState22[LifeSafetyState22["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
      return LifeSafetyState22;
    })(LifeSafetyState2 || {});
    var LiftCarDirection2 = /* @__PURE__ */ ((LiftCarDirection22) => {
      LiftCarDirection22[LiftCarDirection22["UNKNOWN"] = 0] = "UNKNOWN";
      LiftCarDirection22[LiftCarDirection22["NONE"] = 1] = "NONE";
      LiftCarDirection22[LiftCarDirection22["STOPPED"] = 2] = "STOPPED";
      LiftCarDirection22[LiftCarDirection22["UP"] = 3] = "UP";
      LiftCarDirection22[LiftCarDirection22["DOWN"] = 4] = "DOWN";
      LiftCarDirection22[LiftCarDirection22["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
      return LiftCarDirection22;
    })(LiftCarDirection2 || {});
    var LiftCarDoorCommand2 = /* @__PURE__ */ ((LiftCarDoorCommand22) => {
      LiftCarDoorCommand22[LiftCarDoorCommand22["NONE"] = 0] = "NONE";
      LiftCarDoorCommand22[LiftCarDoorCommand22["OPEN"] = 1] = "OPEN";
      LiftCarDoorCommand22[LiftCarDoorCommand22["CLOSE"] = 2] = "CLOSE";
      return LiftCarDoorCommand22;
    })(LiftCarDoorCommand2 || {});
    var LiftCarDriveStatus2 = /* @__PURE__ */ ((LiftCarDriveStatus22) => {
      LiftCarDriveStatus22[LiftCarDriveStatus22["UNKNOWN"] = 0] = "UNKNOWN";
      LiftCarDriveStatus22[LiftCarDriveStatus22["STATIONARY"] = 1] = "STATIONARY";
      LiftCarDriveStatus22[LiftCarDriveStatus22["BRAKING"] = 2] = "BRAKING";
      LiftCarDriveStatus22[LiftCarDriveStatus22["ACCELERATE"] = 3] = "ACCELERATE";
      LiftCarDriveStatus22[LiftCarDriveStatus22["DECELERATE"] = 4] = "DECELERATE";
      LiftCarDriveStatus22[LiftCarDriveStatus22["RATED_SPEED"] = 5] = "RATED_SPEED";
      LiftCarDriveStatus22[LiftCarDriveStatus22["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
      LiftCarDriveStatus22[LiftCarDriveStatus22["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
      LiftCarDriveStatus22[LiftCarDriveStatus22["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
      LiftCarDriveStatus22[LiftCarDriveStatus22["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
      return LiftCarDriveStatus22;
    })(LiftCarDriveStatus2 || {});
    var LiftCarMode2 = /* @__PURE__ */ ((LiftCarMode22) => {
      LiftCarMode22[LiftCarMode22["UNKNOWN"] = 0] = "UNKNOWN";
      LiftCarMode22[LiftCarMode22["NORMAL"] = 1] = "NORMAL";
      LiftCarMode22[LiftCarMode22["VIP"] = 2] = "VIP";
      LiftCarMode22[LiftCarMode22["HOMING"] = 3] = "HOMING";
      LiftCarMode22[LiftCarMode22["PARKING"] = 4] = "PARKING";
      LiftCarMode22[LiftCarMode22["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
      LiftCarMode22[LiftCarMode22["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
      LiftCarMode22[LiftCarMode22["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
      LiftCarMode22[LiftCarMode22["INSPECTION"] = 8] = "INSPECTION";
      LiftCarMode22[LiftCarMode22["CABINET_RECALL"] = 9] = "CABINET_RECALL";
      LiftCarMode22[LiftCarMode22["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
      LiftCarMode22[LiftCarMode22["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
      LiftCarMode22[LiftCarMode22["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
      LiftCarMode22[LiftCarMode22["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
      return LiftCarMode22;
    })(LiftCarMode2 || {});
    var LiftFault2 = /* @__PURE__ */ ((LiftFault22) => {
      LiftFault22[LiftFault22["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
      LiftFault22[LiftFault22["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
      LiftFault22[LiftFault22["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
      LiftFault22[LiftFault22["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
      LiftFault22[LiftFault22["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
      LiftFault22[LiftFault22["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
      LiftFault22[LiftFault22["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
      LiftFault22[LiftFault22["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
      LiftFault22[LiftFault22["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
      LiftFault22[LiftFault22["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
      LiftFault22[LiftFault22["START_FAILURE"] = 10] = "START_FAILURE";
      LiftFault22[LiftFault22["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
      LiftFault22[LiftFault22["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
      LiftFault22[LiftFault22["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
      LiftFault22[LiftFault22["POSITION_LOST"] = 14] = "POSITION_LOST";
      LiftFault22[LiftFault22["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
      LiftFault22[LiftFault22["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
      return LiftFault22;
    })(LiftFault2 || {});
    var LiftGroupMode2 = /* @__PURE__ */ ((LiftGroupMode22) => {
      LiftGroupMode22[LiftGroupMode22["UNKNOWN"] = 0] = "UNKNOWN";
      LiftGroupMode22[LiftGroupMode22["NORMAL"] = 1] = "NORMAL";
      LiftGroupMode22[LiftGroupMode22["DOWN_PEAK"] = 2] = "DOWN_PEAK";
      LiftGroupMode22[LiftGroupMode22["TWO_WAY"] = 3] = "TWO_WAY";
      LiftGroupMode22[LiftGroupMode22["FOUR_WAY"] = 4] = "FOUR_WAY";
      LiftGroupMode22[LiftGroupMode22["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
      LiftGroupMode22[LiftGroupMode22["UP_PEAK"] = 6] = "UP_PEAK";
      return LiftGroupMode22;
    })(LiftGroupMode2 || {});
    var LightingInProgress2 = /* @__PURE__ */ ((LightingInProgress22) => {
      LightingInProgress22[LightingInProgress22["IDLE"] = 0] = "IDLE";
      LightingInProgress22[LightingInProgress22["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
      LightingInProgress22[LightingInProgress22["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
      LightingInProgress22[LightingInProgress22["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
      LightingInProgress22[LightingInProgress22["OTHER"] = 4] = "OTHER";
      return LightingInProgress22;
    })(LightingInProgress2 || {});
    var LightingOperation2 = /* @__PURE__ */ ((LightingOperation22) => {
      LightingOperation22[LightingOperation22["NONE"] = 0] = "NONE";
      LightingOperation22[LightingOperation22["FADE_TO"] = 1] = "FADE_TO";
      LightingOperation22[LightingOperation22["RAMP_TO"] = 2] = "RAMP_TO";
      LightingOperation22[LightingOperation22["STEP_UP"] = 3] = "STEP_UP";
      LightingOperation22[LightingOperation22["STEP_DOWN"] = 4] = "STEP_DOWN";
      LightingOperation22[LightingOperation22["STEP_ON"] = 5] = "STEP_ON";
      LightingOperation22[LightingOperation22["STEP_OFF"] = 6] = "STEP_OFF";
      LightingOperation22[LightingOperation22["WARN"] = 7] = "WARN";
      LightingOperation22[LightingOperation22["WARN_OFF"] = 8] = "WARN_OFF";
      LightingOperation22[LightingOperation22["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
      LightingOperation22[LightingOperation22["STOP"] = 10] = "STOP";
      return LightingOperation22;
    })(LightingOperation2 || {});
    var LightingTransition2 = /* @__PURE__ */ ((LightingTransition22) => {
      LightingTransition22[LightingTransition22["NONE"] = 0] = "NONE";
      LightingTransition22[LightingTransition22["FADE"] = 1] = "FADE";
      LightingTransition22[LightingTransition22["RAMP"] = 2] = "RAMP";
      return LightingTransition22;
    })(LightingTransition2 || {});
    var LockStatus2 = /* @__PURE__ */ ((LockStatus22) => {
      LockStatus22[LockStatus22["LOCKED"] = 0] = "LOCKED";
      LockStatus22[LockStatus22["UNLOCKED"] = 1] = "UNLOCKED";
      LockStatus22[LockStatus22["LOCK_FAULT"] = 2] = "LOCK_FAULT";
      LockStatus22[LockStatus22["UNUSED"] = 3] = "UNUSED";
      LockStatus22[LockStatus22["UNKNOWN"] = 4] = "UNKNOWN";
      return LockStatus22;
    })(LockStatus2 || {});
    var LoggingType2 = /* @__PURE__ */ ((LoggingType22) => {
      LoggingType22[LoggingType22["POLLED"] = 0] = "POLLED";
      LoggingType22[LoggingType22["COV"] = 1] = "COV";
      LoggingType22[LoggingType22["TRIGGERED"] = 2] = "TRIGGERED";
      return LoggingType22;
    })(LoggingType2 || {});
    var Maintenance2 = /* @__PURE__ */ ((Maintenance22) => {
      Maintenance22[Maintenance22["NONE"] = 0] = "NONE";
      Maintenance22[Maintenance22["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
      Maintenance22[Maintenance22["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
      Maintenance22[Maintenance22["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
      return Maintenance22;
    })(Maintenance2 || {});
    var NetworkNumberQuality2 = /* @__PURE__ */ ((NetworkNumberQuality22) => {
      NetworkNumberQuality22[NetworkNumberQuality22["UNKNOWN"] = 0] = "UNKNOWN";
      NetworkNumberQuality22[NetworkNumberQuality22["LEARNED"] = 1] = "LEARNED";
      NetworkNumberQuality22[NetworkNumberQuality22["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
      NetworkNumberQuality22[NetworkNumberQuality22["CONFIGURED"] = 3] = "CONFIGURED";
      return NetworkNumberQuality22;
    })(NetworkNumberQuality2 || {});
    var NetworkPortCommand2 = /* @__PURE__ */ ((NetworkPortCommand22) => {
      NetworkPortCommand22[NetworkPortCommand22["IDLE"] = 0] = "IDLE";
      NetworkPortCommand22[NetworkPortCommand22["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
      NetworkPortCommand22[NetworkPortCommand22["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
      NetworkPortCommand22[NetworkPortCommand22["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
      NetworkPortCommand22[NetworkPortCommand22["RENEW_DHCP"] = 4] = "RENEW_DHCP";
      NetworkPortCommand22[NetworkPortCommand22["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
      NetworkPortCommand22[NetworkPortCommand22["DISCONNECT"] = 6] = "DISCONNECT";
      NetworkPortCommand22[NetworkPortCommand22["RESTART_PORT"] = 7] = "RESTART_PORT";
      return NetworkPortCommand22;
    })(NetworkPortCommand2 || {});
    var NetworkType2 = /* @__PURE__ */ ((NetworkType22) => {
      NetworkType22[NetworkType22["ETHERNET"] = 0] = "ETHERNET";
      NetworkType22[NetworkType22["ARCNET"] = 1] = "ARCNET";
      NetworkType22[NetworkType22["MSTP"] = 2] = "MSTP";
      NetworkType22[NetworkType22["PTP"] = 3] = "PTP";
      NetworkType22[NetworkType22["LONTALK"] = 4] = "LONTALK";
      NetworkType22[NetworkType22["IPV4"] = 5] = "IPV4";
      NetworkType22[NetworkType22["ZIGBEE"] = 6] = "ZIGBEE";
      NetworkType22[NetworkType22["VIRTUAL"] = 7] = "VIRTUAL";
      NetworkType22[NetworkType22["IPV6"] = 9] = "IPV6";
      NetworkType22[NetworkType22["SERIAL"] = 10] = "SERIAL";
      return NetworkType22;
    })(NetworkType2 || {});
    var NodeType2 = /* @__PURE__ */ ((NodeType22) => {
      NodeType22[NodeType22["UNKNOWN"] = 0] = "UNKNOWN";
      NodeType22[NodeType22["SYSTEM"] = 1] = "SYSTEM";
      NodeType22[NodeType22["NETWORK"] = 2] = "NETWORK";
      NodeType22[NodeType22["DEVICE"] = 3] = "DEVICE";
      NodeType22[NodeType22["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
      NodeType22[NodeType22["AREA"] = 5] = "AREA";
      NodeType22[NodeType22["EQUIPMENT"] = 6] = "EQUIPMENT";
      NodeType22[NodeType22["POINT"] = 7] = "POINT";
      NodeType22[NodeType22["COLLECTION"] = 8] = "COLLECTION";
      NodeType22[NodeType22["PROPERTY"] = 9] = "PROPERTY";
      NodeType22[NodeType22["FUNCTIONAL"] = 10] = "FUNCTIONAL";
      NodeType22[NodeType22["OTHER"] = 11] = "OTHER";
      NodeType22[NodeType22["SUBSYSTEM"] = 12] = "SUBSYSTEM";
      NodeType22[NodeType22["BUILDING"] = 13] = "BUILDING";
      NodeType22[NodeType22["FLOOR"] = 14] = "FLOOR";
      NodeType22[NodeType22["SECTION"] = 15] = "SECTION";
      NodeType22[NodeType22["MODULE"] = 16] = "MODULE";
      NodeType22[NodeType22["TREE"] = 17] = "TREE";
      NodeType22[NodeType22["MEMBER"] = 18] = "MEMBER";
      NodeType22[NodeType22["PROTOCOL"] = 19] = "PROTOCOL";
      NodeType22[NodeType22["ROOM"] = 20] = "ROOM";
      NodeType22[NodeType22["ZONE"] = 21] = "ZONE";
      return NodeType22;
    })(NodeType2 || {});
    var NotifyType2 = /* @__PURE__ */ ((NotifyType22) => {
      NotifyType22[NotifyType22["ALARM"] = 0] = "ALARM";
      NotifyType22[NotifyType22["EVENT"] = 1] = "EVENT";
      NotifyType22[NotifyType22["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
      return NotifyType22;
    })(NotifyType2 || {});
    var ObjectType2 = /* @__PURE__ */ ((ObjectType22) => {
      ObjectType22[ObjectType22["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
      ObjectType22[ObjectType22["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
      ObjectType22[ObjectType22["ACCESS_POINT"] = 33] = "ACCESS_POINT";
      ObjectType22[ObjectType22["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
      ObjectType22[ObjectType22["ACCESS_USER"] = 35] = "ACCESS_USER";
      ObjectType22[ObjectType22["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
      ObjectType22[ObjectType22["ACCUMULATOR"] = 23] = "ACCUMULATOR";
      ObjectType22[ObjectType22["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
      ObjectType22[ObjectType22["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
      ObjectType22[ObjectType22["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
      ObjectType22[ObjectType22["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
      ObjectType22[ObjectType22["AVERAGING"] = 18] = "AVERAGING";
      ObjectType22[ObjectType22["BINARY_INPUT"] = 3] = "BINARY_INPUT";
      ObjectType22[ObjectType22["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
      ObjectType22[ObjectType22["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
      ObjectType22[ObjectType22["BINARY_VALUE"] = 5] = "BINARY_VALUE";
      ObjectType22[ObjectType22["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
      ObjectType22[ObjectType22["CALENDAR"] = 6] = "CALENDAR";
      ObjectType22[ObjectType22["CHANNEL"] = 53] = "CHANNEL";
      ObjectType22[ObjectType22["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
      ObjectType22[ObjectType22["COMMAND"] = 7] = "COMMAND";
      ObjectType22[ObjectType22["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
      ObjectType22[ObjectType22["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
      ObjectType22[ObjectType22["DATE_VALUE"] = 42] = "DATE_VALUE";
      ObjectType22[ObjectType22["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
      ObjectType22[ObjectType22["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
      ObjectType22[ObjectType22["DEVICE"] = 8] = "DEVICE";
      ObjectType22[ObjectType22["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
      ObjectType22[ObjectType22["ESCALATOR"] = 58] = "ESCALATOR";
      ObjectType22[ObjectType22["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
      ObjectType22[ObjectType22["EVENT_LOG"] = 25] = "EVENT_LOG";
      ObjectType22[ObjectType22["FILE"] = 10] = "FILE";
      ObjectType22[ObjectType22["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
      ObjectType22[ObjectType22["GROUP"] = 11] = "GROUP";
      ObjectType22[ObjectType22["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
      ObjectType22[ObjectType22["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
      ObjectType22[ObjectType22["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
      ObjectType22[ObjectType22["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
      ObjectType22[ObjectType22["LIFT"] = 59] = "LIFT";
      ObjectType22[ObjectType22["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
      ObjectType22[ObjectType22["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
      ObjectType22[ObjectType22["LOOP"] = 12] = "LOOP";
      ObjectType22[ObjectType22["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
      ObjectType22[ObjectType22["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
      ObjectType22[ObjectType22["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
      ObjectType22[ObjectType22["NETWORK_PORT"] = 56] = "NETWORK_PORT";
      ObjectType22[ObjectType22["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
      ObjectType22[ObjectType22["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
      ObjectType22[ObjectType22["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
      ObjectType22[ObjectType22["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
      ObjectType22[ObjectType22["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
      ObjectType22[ObjectType22["PROGRAM"] = 16] = "PROGRAM";
      ObjectType22[ObjectType22["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
      ObjectType22[ObjectType22["SCHEDULE"] = 17] = "SCHEDULE";
      ObjectType22[ObjectType22["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
      ObjectType22[ObjectType22["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
      ObjectType22[ObjectType22["TIME_VALUE"] = 50] = "TIME_VALUE";
      ObjectType22[ObjectType22["TIMER"] = 31] = "TIMER";
      ObjectType22[ObjectType22["TREND_LOG"] = 20] = "TREND_LOG";
      ObjectType22[ObjectType22["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
      return ObjectType22;
    })(ObjectType2 || {});
    var Polarity2 = /* @__PURE__ */ ((Polarity22) => {
      Polarity22[Polarity22["NORMAL"] = 0] = "NORMAL";
      Polarity22[Polarity22["REVERSE"] = 1] = "REVERSE";
      return Polarity22;
    })(Polarity2 || {});
    var ProgramError2 = /* @__PURE__ */ ((ProgramError22) => {
      ProgramError22[ProgramError22["NORMAL"] = 0] = "NORMAL";
      ProgramError22[ProgramError22["LOAD_FAILED"] = 1] = "LOAD_FAILED";
      ProgramError22[ProgramError22["INTERNAL"] = 2] = "INTERNAL";
      ProgramError22[ProgramError22["PROGRAM"] = 3] = "PROGRAM";
      ProgramError22[ProgramError22["OTHER"] = 4] = "OTHER";
      return ProgramError22;
    })(ProgramError2 || {});
    var ProgramRequest2 = /* @__PURE__ */ ((ProgramRequest22) => {
      ProgramRequest22[ProgramRequest22["READY"] = 0] = "READY";
      ProgramRequest22[ProgramRequest22["LOAD"] = 1] = "LOAD";
      ProgramRequest22[ProgramRequest22["RUN"] = 2] = "RUN";
      ProgramRequest22[ProgramRequest22["HALT"] = 3] = "HALT";
      ProgramRequest22[ProgramRequest22["RESTART"] = 4] = "RESTART";
      ProgramRequest22[ProgramRequest22["UNLOAD"] = 5] = "UNLOAD";
      return ProgramRequest22;
    })(ProgramRequest2 || {});
    var ProgramState2 = /* @__PURE__ */ ((ProgramState22) => {
      ProgramState22[ProgramState22["IDLE"] = 0] = "IDLE";
      ProgramState22[ProgramState22["LOADING"] = 1] = "LOADING";
      ProgramState22[ProgramState22["RUNNING"] = 2] = "RUNNING";
      ProgramState22[ProgramState22["WAITING"] = 3] = "WAITING";
      ProgramState22[ProgramState22["HALTED"] = 4] = "HALTED";
      ProgramState22[ProgramState22["UNLOADING"] = 5] = "UNLOADING";
      return ProgramState22;
    })(ProgramState2 || {});
    var PropertyIdentifier2 = /* @__PURE__ */ ((PropertyIdentifier22) => {
      PropertyIdentifier22[PropertyIdentifier22["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
      PropertyIdentifier22[PropertyIdentifier22["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
      PropertyIdentifier22[PropertyIdentifier22["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
      PropertyIdentifier22[PropertyIdentifier22["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
      PropertyIdentifier22[PropertyIdentifier22["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
      PropertyIdentifier22[PropertyIdentifier22["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
      PropertyIdentifier22[PropertyIdentifier22["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
      PropertyIdentifier22[PropertyIdentifier22["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
      PropertyIdentifier22[PropertyIdentifier22["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
      PropertyIdentifier22[PropertyIdentifier22["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
      PropertyIdentifier22[PropertyIdentifier22["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
      PropertyIdentifier22[PropertyIdentifier22["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
      PropertyIdentifier22[PropertyIdentifier22["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
      PropertyIdentifier22[PropertyIdentifier22["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
      PropertyIdentifier22[PropertyIdentifier22["ACTION"] = 2] = "ACTION";
      PropertyIdentifier22[PropertyIdentifier22["ACTION_TEXT"] = 3] = "ACTION_TEXT";
      PropertyIdentifier22[PropertyIdentifier22["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
      PropertyIdentifier22[PropertyIdentifier22["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
      PropertyIdentifier22[PropertyIdentifier22["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
      PropertyIdentifier22[PropertyIdentifier22["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
      PropertyIdentifier22[PropertyIdentifier22["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
      PropertyIdentifier22[PropertyIdentifier22["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
      PropertyIdentifier22[PropertyIdentifier22["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
      PropertyIdentifier22[PropertyIdentifier22["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["ALARM_VALUE"] = 6] = "ALARM_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["ALARM_VALUES"] = 7] = "ALARM_VALUES";
      PropertyIdentifier22[PropertyIdentifier22["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
      PropertyIdentifier22[PropertyIdentifier22["ALL"] = 8] = "ALL";
      PropertyIdentifier22[PropertyIdentifier22["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
      PropertyIdentifier22[PropertyIdentifier22["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
      PropertyIdentifier22[PropertyIdentifier22["APDU_LENGTH"] = 399] = "APDU_LENGTH";
      PropertyIdentifier22[PropertyIdentifier22["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
      PropertyIdentifier22[PropertyIdentifier22["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
      PropertyIdentifier22[PropertyIdentifier22["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
      PropertyIdentifier22[PropertyIdentifier22["ARCHIVE"] = 13] = "ARCHIVE";
      PropertyIdentifier22[PropertyIdentifier22["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
      PropertyIdentifier22[PropertyIdentifier22["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
      PropertyIdentifier22[PropertyIdentifier22["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
      PropertyIdentifier22[PropertyIdentifier22["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
      PropertyIdentifier22[PropertyIdentifier22["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
      PropertyIdentifier22[PropertyIdentifier22["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
      PropertyIdentifier22[PropertyIdentifier22["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
      PropertyIdentifier22[PropertyIdentifier22["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
      PropertyIdentifier22[PropertyIdentifier22["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
      PropertyIdentifier22[PropertyIdentifier22["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
      PropertyIdentifier22[PropertyIdentifier22["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
      PropertyIdentifier22[PropertyIdentifier22["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
      PropertyIdentifier22[PropertyIdentifier22["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
      PropertyIdentifier22[PropertyIdentifier22["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
      PropertyIdentifier22[PropertyIdentifier22["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
      PropertyIdentifier22[PropertyIdentifier22["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
      PropertyIdentifier22[PropertyIdentifier22["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
      PropertyIdentifier22[PropertyIdentifier22["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
      PropertyIdentifier22[PropertyIdentifier22["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
      PropertyIdentifier22[PropertyIdentifier22["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
      PropertyIdentifier22[PropertyIdentifier22["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
      PropertyIdentifier22[PropertyIdentifier22["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
      PropertyIdentifier22[PropertyIdentifier22["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
      PropertyIdentifier22[PropertyIdentifier22["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
      PropertyIdentifier22[PropertyIdentifier22["BELONGS_TO"] = 262] = "BELONGS_TO";
      PropertyIdentifier22[PropertyIdentifier22["BIAS"] = 14] = "BIAS";
      PropertyIdentifier22[PropertyIdentifier22["BIT_MASK"] = 342] = "BIT_MASK";
      PropertyIdentifier22[PropertyIdentifier22["BIT_TEXT"] = 343] = "BIT_TEXT";
      PropertyIdentifier22[PropertyIdentifier22["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
      PropertyIdentifier22[PropertyIdentifier22["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
      PropertyIdentifier22[PropertyIdentifier22["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
      PropertyIdentifier22[PropertyIdentifier22["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
      PropertyIdentifier22[PropertyIdentifier22["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
      PropertyIdentifier22[PropertyIdentifier22["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
      PropertyIdentifier22[PropertyIdentifier22["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
      PropertyIdentifier22[PropertyIdentifier22["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
      PropertyIdentifier22[PropertyIdentifier22["CAR_LOAD"] = 454] = "CAR_LOAD";
      PropertyIdentifier22[PropertyIdentifier22["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
      PropertyIdentifier22[PropertyIdentifier22["CAR_MODE"] = 456] = "CAR_MODE";
      PropertyIdentifier22[PropertyIdentifier22["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
      PropertyIdentifier22[PropertyIdentifier22["CAR_POSITION"] = 458] = "CAR_POSITION";
      PropertyIdentifier22[PropertyIdentifier22["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
      PropertyIdentifier22[PropertyIdentifier22["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
      PropertyIdentifier22[PropertyIdentifier22["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
      PropertyIdentifier22[PropertyIdentifier22["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
      PropertyIdentifier22[PropertyIdentifier22["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
      PropertyIdentifier22[PropertyIdentifier22["COMMAND"] = 417] = "COMMAND";
      PropertyIdentifier22[PropertyIdentifier22["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
      PropertyIdentifier22[PropertyIdentifier22["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
      PropertyIdentifier22[PropertyIdentifier22["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
      PropertyIdentifier22[PropertyIdentifier22["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
      PropertyIdentifier22[PropertyIdentifier22["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
      PropertyIdentifier22[PropertyIdentifier22["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["COUNT"] = 177] = "COUNT";
      PropertyIdentifier22[PropertyIdentifier22["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
      PropertyIdentifier22[PropertyIdentifier22["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
      PropertyIdentifier22[PropertyIdentifier22["COV_INCREMENT"] = 22] = "COV_INCREMENT";
      PropertyIdentifier22[PropertyIdentifier22["COV_PERIOD"] = 180] = "COV_PERIOD";
      PropertyIdentifier22[PropertyIdentifier22["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
      PropertyIdentifier22[PropertyIdentifier22["COVU_PERIOD"] = 349] = "COVU_PERIOD";
      PropertyIdentifier22[PropertyIdentifier22["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
      PropertyIdentifier22[PropertyIdentifier22["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
      PropertyIdentifier22[PropertyIdentifier22["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
      PropertyIdentifier22[PropertyIdentifier22["CREDENTIALS"] = 265] = "CREDENTIALS";
      PropertyIdentifier22[PropertyIdentifier22["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
      PropertyIdentifier22[PropertyIdentifier22["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
      PropertyIdentifier22[PropertyIdentifier22["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
      PropertyIdentifier22[PropertyIdentifier22["DATE_LIST"] = 23] = "DATE_LIST";
      PropertyIdentifier22[PropertyIdentifier22["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
      PropertyIdentifier22[PropertyIdentifier22["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
      PropertyIdentifier22[PropertyIdentifier22["DEADBAND"] = 25] = "DEADBAND";
      PropertyIdentifier22[PropertyIdentifier22["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
      PropertyIdentifier22[PropertyIdentifier22["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
      PropertyIdentifier22[PropertyIdentifier22["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
      PropertyIdentifier22[PropertyIdentifier22["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
      PropertyIdentifier22[PropertyIdentifier22["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
      PropertyIdentifier22[PropertyIdentifier22["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
      PropertyIdentifier22[PropertyIdentifier22["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
      PropertyIdentifier22[PropertyIdentifier22["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
      PropertyIdentifier22[PropertyIdentifier22["DESCRIPTION"] = 28] = "DESCRIPTION";
      PropertyIdentifier22[PropertyIdentifier22["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
      PropertyIdentifier22[PropertyIdentifier22["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
      PropertyIdentifier22[PropertyIdentifier22["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
      PropertyIdentifier22[PropertyIdentifier22["DIRECT_READING"] = 156] = "DIRECT_READING";
      PropertyIdentifier22[PropertyIdentifier22["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
      PropertyIdentifier22[PropertyIdentifier22["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
      PropertyIdentifier22[PropertyIdentifier22["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
      PropertyIdentifier22[PropertyIdentifier22["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
      PropertyIdentifier22[PropertyIdentifier22["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
      PropertyIdentifier22[PropertyIdentifier22["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
      PropertyIdentifier22[PropertyIdentifier22["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
      PropertyIdentifier22[PropertyIdentifier22["DOOR_STATUS"] = 231] = "DOOR_STATUS";
      PropertyIdentifier22[PropertyIdentifier22["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
      PropertyIdentifier22[PropertyIdentifier22["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
      PropertyIdentifier22[PropertyIdentifier22["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
      PropertyIdentifier22[PropertyIdentifier22["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
      PropertyIdentifier22[PropertyIdentifier22["EGRESS_TIME"] = 377] = "EGRESS_TIME";
      PropertyIdentifier22[PropertyIdentifier22["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
      PropertyIdentifier22[PropertyIdentifier22["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
      PropertyIdentifier22[PropertyIdentifier22["ENABLE"] = 133] = "ENABLE";
      PropertyIdentifier22[PropertyIdentifier22["ENERGY_METER"] = 460] = "ENERGY_METER";
      PropertyIdentifier22[PropertyIdentifier22["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
      PropertyIdentifier22[PropertyIdentifier22["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
      PropertyIdentifier22[PropertyIdentifier22["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
      PropertyIdentifier22[PropertyIdentifier22["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
      PropertyIdentifier22[PropertyIdentifier22["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
      PropertyIdentifier22[PropertyIdentifier22["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
      PropertyIdentifier22[PropertyIdentifier22["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
      PropertyIdentifier22[PropertyIdentifier22["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
      PropertyIdentifier22[PropertyIdentifier22["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
      PropertyIdentifier22[PropertyIdentifier22["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
      PropertyIdentifier22[PropertyIdentifier22["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
      PropertyIdentifier22[PropertyIdentifier22["EVENT_STATE"] = 36] = "EVENT_STATE";
      PropertyIdentifier22[PropertyIdentifier22["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
      PropertyIdentifier22[PropertyIdentifier22["EVENT_TYPE"] = 37] = "EVENT_TYPE";
      PropertyIdentifier22[PropertyIdentifier22["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
      PropertyIdentifier22[PropertyIdentifier22["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
      PropertyIdentifier22[PropertyIdentifier22["EXIT_POINTS"] = 269] = "EXIT_POINTS";
      PropertyIdentifier22[PropertyIdentifier22["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
      PropertyIdentifier22[PropertyIdentifier22["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
      PropertyIdentifier22[PropertyIdentifier22["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
      PropertyIdentifier22[PropertyIdentifier22["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
      PropertyIdentifier22[PropertyIdentifier22["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
      PropertyIdentifier22[PropertyIdentifier22["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
      PropertyIdentifier22[PropertyIdentifier22["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
      PropertyIdentifier22[PropertyIdentifier22["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
      PropertyIdentifier22[PropertyIdentifier22["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
      PropertyIdentifier22[PropertyIdentifier22["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
      PropertyIdentifier22[PropertyIdentifier22["FAULT_TYPE"] = 359] = "FAULT_TYPE";
      PropertyIdentifier22[PropertyIdentifier22["FAULT_VALUES"] = 39] = "FAULT_VALUES";
      PropertyIdentifier22[PropertyIdentifier22["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
      PropertyIdentifier22[PropertyIdentifier22["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
      PropertyIdentifier22[PropertyIdentifier22["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
      PropertyIdentifier22[PropertyIdentifier22["FILE_SIZE"] = 42] = "FILE_SIZE";
      PropertyIdentifier22[PropertyIdentifier22["FILE_TYPE"] = 43] = "FILE_TYPE";
      PropertyIdentifier22[PropertyIdentifier22["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
      PropertyIdentifier22[PropertyIdentifier22["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
      PropertyIdentifier22[PropertyIdentifier22["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
      PropertyIdentifier22[PropertyIdentifier22["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
      PropertyIdentifier22[PropertyIdentifier22["GROUP_ID"] = 465] = "GROUP_ID";
      PropertyIdentifier22[PropertyIdentifier22["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
      PropertyIdentifier22[PropertyIdentifier22["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
      PropertyIdentifier22[PropertyIdentifier22["GROUP_MODE"] = 467] = "GROUP_MODE";
      PropertyIdentifier22[PropertyIdentifier22["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
      PropertyIdentifier22[PropertyIdentifier22["HIGHER_DECK"] = 468] = "HIGHER_DECK";
      PropertyIdentifier22[PropertyIdentifier22["IN_PROCESS"] = 47] = "IN_PROCESS";
      PropertyIdentifier22[PropertyIdentifier22["IN_PROGRESS"] = 378] = "IN_PROGRESS";
      PropertyIdentifier22[PropertyIdentifier22["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
      PropertyIdentifier22[PropertyIdentifier22["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
      PropertyIdentifier22[PropertyIdentifier22["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
      PropertyIdentifier22[PropertyIdentifier22["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
      PropertyIdentifier22[PropertyIdentifier22["INSTANCE_OF"] = 48] = "INSTANCE_OF";
      PropertyIdentifier22[PropertyIdentifier22["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
      PropertyIdentifier22[PropertyIdentifier22["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
      PropertyIdentifier22[PropertyIdentifier22["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
      PropertyIdentifier22[PropertyIdentifier22["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
      PropertyIdentifier22[PropertyIdentifier22["IP_ADDRESS"] = 400] = "IP_ADDRESS";
      PropertyIdentifier22[PropertyIdentifier22["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
      PropertyIdentifier22[PropertyIdentifier22["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
      PropertyIdentifier22[PropertyIdentifier22["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
      PropertyIdentifier22[PropertyIdentifier22["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
      PropertyIdentifier22[PropertyIdentifier22["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
      PropertyIdentifier22[PropertyIdentifier22["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
      PropertyIdentifier22[PropertyIdentifier22["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
      PropertyIdentifier22[PropertyIdentifier22["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
      PropertyIdentifier22[PropertyIdentifier22["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
      PropertyIdentifier22[PropertyIdentifier22["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
      PropertyIdentifier22[PropertyIdentifier22["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
      PropertyIdentifier22[PropertyIdentifier22["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
      PropertyIdentifier22[PropertyIdentifier22["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
      PropertyIdentifier22[PropertyIdentifier22["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
      PropertyIdentifier22[PropertyIdentifier22["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
      PropertyIdentifier22[PropertyIdentifier22["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
      PropertyIdentifier22[PropertyIdentifier22["IS_UTC"] = 344] = "IS_UTC";
      PropertyIdentifier22[PropertyIdentifier22["KEY_SETS"] = 330] = "KEY_SETS";
      PropertyIdentifier22[PropertyIdentifier22["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
      PropertyIdentifier22[PropertyIdentifier22["LANDING_CALLS"] = 470] = "LANDING_CALLS";
      PropertyIdentifier22[PropertyIdentifier22["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
      PropertyIdentifier22[PropertyIdentifier22["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
      PropertyIdentifier22[PropertyIdentifier22["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
      PropertyIdentifier22[PropertyIdentifier22["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
      PropertyIdentifier22[PropertyIdentifier22["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
      PropertyIdentifier22[PropertyIdentifier22["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
      PropertyIdentifier22[PropertyIdentifier22["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
      PropertyIdentifier22[PropertyIdentifier22["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
      PropertyIdentifier22[PropertyIdentifier22["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
      PropertyIdentifier22[PropertyIdentifier22["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
      PropertyIdentifier22[PropertyIdentifier22["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
      PropertyIdentifier22[PropertyIdentifier22["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
      PropertyIdentifier22[PropertyIdentifier22["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
      PropertyIdentifier22[PropertyIdentifier22["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
      PropertyIdentifier22[PropertyIdentifier22["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
      PropertyIdentifier22[PropertyIdentifier22["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
      PropertyIdentifier22[PropertyIdentifier22["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
      PropertyIdentifier22[PropertyIdentifier22["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
      PropertyIdentifier22[PropertyIdentifier22["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
      PropertyIdentifier22[PropertyIdentifier22["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
      PropertyIdentifier22[PropertyIdentifier22["LINK_SPEED"] = 420] = "LINK_SPEED";
      PropertyIdentifier22[PropertyIdentifier22["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
      PropertyIdentifier22[PropertyIdentifier22["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
      PropertyIdentifier22[PropertyIdentifier22["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
      PropertyIdentifier22[PropertyIdentifier22["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
      PropertyIdentifier22[PropertyIdentifier22["LOCAL_DATE"] = 56] = "LOCAL_DATE";
      PropertyIdentifier22[PropertyIdentifier22["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
      PropertyIdentifier22[PropertyIdentifier22["LOCAL_TIME"] = 57] = "LOCAL_TIME";
      PropertyIdentifier22[PropertyIdentifier22["LOCATION"] = 58] = "LOCATION";
      PropertyIdentifier22[PropertyIdentifier22["LOCK_STATUS"] = 233] = "LOCK_STATUS";
      PropertyIdentifier22[PropertyIdentifier22["LOCKOUT"] = 282] = "LOCKOUT";
      PropertyIdentifier22[PropertyIdentifier22["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
      PropertyIdentifier22[PropertyIdentifier22["LOG_BUFFER"] = 131] = "LOG_BUFFER";
      PropertyIdentifier22[PropertyIdentifier22["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
      PropertyIdentifier22[PropertyIdentifier22["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
      PropertyIdentifier22[PropertyIdentifier22["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
      PropertyIdentifier22[PropertyIdentifier22["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
      PropertyIdentifier22[PropertyIdentifier22["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
      PropertyIdentifier22[PropertyIdentifier22["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
      PropertyIdentifier22[PropertyIdentifier22["LOW_LIMIT"] = 59] = "LOW_LIMIT";
      PropertyIdentifier22[PropertyIdentifier22["LOWER_DECK"] = 473] = "LOWER_DECK";
      PropertyIdentifier22[PropertyIdentifier22["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
      PropertyIdentifier22[PropertyIdentifier22["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
      PropertyIdentifier22[PropertyIdentifier22["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
      PropertyIdentifier22[PropertyIdentifier22["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
      PropertyIdentifier22[PropertyIdentifier22["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
      PropertyIdentifier22[PropertyIdentifier22["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
      PropertyIdentifier22[PropertyIdentifier22["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
      PropertyIdentifier22[PropertyIdentifier22["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
      PropertyIdentifier22[PropertyIdentifier22["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
      PropertyIdentifier22[PropertyIdentifier22["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
      PropertyIdentifier22[PropertyIdentifier22["MAX_MASTER"] = 64] = "MAX_MASTER";
      PropertyIdentifier22[PropertyIdentifier22["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
      PropertyIdentifier22[PropertyIdentifier22["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
      PropertyIdentifier22[PropertyIdentifier22["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
      PropertyIdentifier22[PropertyIdentifier22["MEMBER_OF"] = 159] = "MEMBER_OF";
      PropertyIdentifier22[PropertyIdentifier22["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
      PropertyIdentifier22[PropertyIdentifier22["MEMBERS"] = 286] = "MEMBERS";
      PropertyIdentifier22[PropertyIdentifier22["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
      PropertyIdentifier22[PropertyIdentifier22["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
      PropertyIdentifier22[PropertyIdentifier22["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
      PropertyIdentifier22[PropertyIdentifier22["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
      PropertyIdentifier22[PropertyIdentifier22["MODE"] = 160] = "MODE";
      PropertyIdentifier22[PropertyIdentifier22["MODEL_NAME"] = 70] = "MODEL_NAME";
      PropertyIdentifier22[PropertyIdentifier22["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
      PropertyIdentifier22[PropertyIdentifier22["MUSTER_POINT"] = 287] = "MUSTER_POINT";
      PropertyIdentifier22[PropertyIdentifier22["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
      PropertyIdentifier22[PropertyIdentifier22["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
      PropertyIdentifier22[PropertyIdentifier22["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
      PropertyIdentifier22[PropertyIdentifier22["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
      PropertyIdentifier22[PropertyIdentifier22["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
      PropertyIdentifier22[PropertyIdentifier22["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
      PropertyIdentifier22[PropertyIdentifier22["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
      PropertyIdentifier22[PropertyIdentifier22["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
      PropertyIdentifier22[PropertyIdentifier22["NODE_TYPE"] = 208] = "NODE_TYPE";
      PropertyIdentifier22[PropertyIdentifier22["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
      PropertyIdentifier22[PropertyIdentifier22["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
      PropertyIdentifier22[PropertyIdentifier22["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
      PropertyIdentifier22[PropertyIdentifier22["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
      PropertyIdentifier22[PropertyIdentifier22["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
      PropertyIdentifier22[PropertyIdentifier22["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
      PropertyIdentifier22[PropertyIdentifier22["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
      PropertyIdentifier22[PropertyIdentifier22["OBJECT_LIST"] = 76] = "OBJECT_LIST";
      PropertyIdentifier22[PropertyIdentifier22["OBJECT_NAME"] = 77] = "OBJECT_NAME";
      PropertyIdentifier22[PropertyIdentifier22["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
      PropertyIdentifier22[PropertyIdentifier22["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
      PropertyIdentifier22[PropertyIdentifier22["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
      PropertyIdentifier22[PropertyIdentifier22["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
      PropertyIdentifier22[PropertyIdentifier22["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
      PropertyIdentifier22[PropertyIdentifier22["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
      PropertyIdentifier22[PropertyIdentifier22["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
      PropertyIdentifier22[PropertyIdentifier22["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
      PropertyIdentifier22[PropertyIdentifier22["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
      PropertyIdentifier22[PropertyIdentifier22["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
      PropertyIdentifier22[PropertyIdentifier22["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
      PropertyIdentifier22[PropertyIdentifier22["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
      PropertyIdentifier22[PropertyIdentifier22["OPTIONAL"] = 80] = "OPTIONAL";
      PropertyIdentifier22[PropertyIdentifier22["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
      PropertyIdentifier22[PropertyIdentifier22["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
      PropertyIdentifier22[PropertyIdentifier22["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
      PropertyIdentifier22[PropertyIdentifier22["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
      PropertyIdentifier22[PropertyIdentifier22["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
      PropertyIdentifier22[PropertyIdentifier22["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
      PropertyIdentifier22[PropertyIdentifier22["POLARITY"] = 84] = "POLARITY";
      PropertyIdentifier22[PropertyIdentifier22["PORT_FILTER"] = 363] = "PORT_FILTER";
      PropertyIdentifier22[PropertyIdentifier22["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
      PropertyIdentifier22[PropertyIdentifier22["POWER"] = 384] = "POWER";
      PropertyIdentifier22[PropertyIdentifier22["POWER_MODE"] = 479] = "POWER_MODE";
      PropertyIdentifier22[PropertyIdentifier22["PRESCALE"] = 185] = "PRESCALE";
      PropertyIdentifier22[PropertyIdentifier22["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["PRIORITY"] = 86] = "PRIORITY";
      PropertyIdentifier22[PropertyIdentifier22["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
      PropertyIdentifier22[PropertyIdentifier22["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
      PropertyIdentifier22[PropertyIdentifier22["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
      PropertyIdentifier22[PropertyIdentifier22["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
      PropertyIdentifier22[PropertyIdentifier22["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
      PropertyIdentifier22[PropertyIdentifier22["PROFILE_NAME"] = 168] = "PROFILE_NAME";
      PropertyIdentifier22[PropertyIdentifier22["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
      PropertyIdentifier22[PropertyIdentifier22["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
      PropertyIdentifier22[PropertyIdentifier22["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
      PropertyIdentifier22[PropertyIdentifier22["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
      PropertyIdentifier22[PropertyIdentifier22["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
      PropertyIdentifier22[PropertyIdentifier22["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
      PropertyIdentifier22[PropertyIdentifier22["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
      PropertyIdentifier22[PropertyIdentifier22["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
      PropertyIdentifier22[PropertyIdentifier22["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
      PropertyIdentifier22[PropertyIdentifier22["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
      PropertyIdentifier22[PropertyIdentifier22["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
      PropertyIdentifier22[PropertyIdentifier22["PULSE_RATE"] = 186] = "PULSE_RATE";
      PropertyIdentifier22[PropertyIdentifier22["READ_ONLY"] = 99] = "READ_ONLY";
      PropertyIdentifier22[PropertyIdentifier22["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
      PropertyIdentifier22[PropertyIdentifier22["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
      PropertyIdentifier22[PropertyIdentifier22["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
      PropertyIdentifier22[PropertyIdentifier22["RECORD_COUNT"] = 141] = "RECORD_COUNT";
      PropertyIdentifier22[PropertyIdentifier22["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
      PropertyIdentifier22[PropertyIdentifier22["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
      PropertyIdentifier22[PropertyIdentifier22["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
      PropertyIdentifier22[PropertyIdentifier22["RELIABILITY"] = 103] = "RELIABILITY";
      PropertyIdentifier22[PropertyIdentifier22["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
      PropertyIdentifier22[PropertyIdentifier22["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
      PropertyIdentifier22[PropertyIdentifier22["REPRESENTS"] = 491] = "REPRESENTS";
      PropertyIdentifier22[PropertyIdentifier22["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
      PropertyIdentifier22[PropertyIdentifier22["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
      PropertyIdentifier22[PropertyIdentifier22["REQUIRED"] = 105] = "REQUIRED";
      PropertyIdentifier22[PropertyIdentifier22["RESOLUTION"] = 106] = "RESOLUTION";
      PropertyIdentifier22[PropertyIdentifier22["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
      PropertyIdentifier22[PropertyIdentifier22["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
      PropertyIdentifier22[PropertyIdentifier22["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
      PropertyIdentifier22[PropertyIdentifier22["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
      PropertyIdentifier22[PropertyIdentifier22["SCALE"] = 187] = "SCALE";
      PropertyIdentifier22[PropertyIdentifier22["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
      PropertyIdentifier22[PropertyIdentifier22["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
      PropertyIdentifier22[PropertyIdentifier22["SECURED_STATUS"] = 235] = "SECURED_STATUS";
      PropertyIdentifier22[PropertyIdentifier22["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
      PropertyIdentifier22[PropertyIdentifier22["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
      PropertyIdentifier22[PropertyIdentifier22["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
      PropertyIdentifier22[PropertyIdentifier22["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
      PropertyIdentifier22[PropertyIdentifier22["SETPOINT"] = 108] = "SETPOINT";
      PropertyIdentifier22[PropertyIdentifier22["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
      PropertyIdentifier22[PropertyIdentifier22["SETTING"] = 162] = "SETTING";
      PropertyIdentifier22[PropertyIdentifier22["SHED_DURATION"] = 219] = "SHED_DURATION";
      PropertyIdentifier22[PropertyIdentifier22["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
      PropertyIdentifier22[PropertyIdentifier22["SHED_LEVELS"] = 221] = "SHED_LEVELS";
      PropertyIdentifier22[PropertyIdentifier22["SILENCED"] = 163] = "SILENCED";
      PropertyIdentifier22[PropertyIdentifier22["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
      PropertyIdentifier22[PropertyIdentifier22["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
      PropertyIdentifier22[PropertyIdentifier22["START_TIME"] = 142] = "START_TIME";
      PropertyIdentifier22[PropertyIdentifier22["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
      PropertyIdentifier22[PropertyIdentifier22["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
      PropertyIdentifier22[PropertyIdentifier22["STATE_TEXT"] = 110] = "STATE_TEXT";
      PropertyIdentifier22[PropertyIdentifier22["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
      PropertyIdentifier22[PropertyIdentifier22["STOP_TIME"] = 143] = "STOP_TIME";
      PropertyIdentifier22[PropertyIdentifier22["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
      PropertyIdentifier22[PropertyIdentifier22["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
      PropertyIdentifier22[PropertyIdentifier22["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
      PropertyIdentifier22[PropertyIdentifier22["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
      PropertyIdentifier22[PropertyIdentifier22["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
      PropertyIdentifier22[PropertyIdentifier22["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
      PropertyIdentifier22[PropertyIdentifier22["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
      PropertyIdentifier22[PropertyIdentifier22["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
      PropertyIdentifier22[PropertyIdentifier22["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
      PropertyIdentifier22[PropertyIdentifier22["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
      PropertyIdentifier22[PropertyIdentifier22["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
      PropertyIdentifier22[PropertyIdentifier22["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
      PropertyIdentifier22[PropertyIdentifier22["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
      PropertyIdentifier22[PropertyIdentifier22["TAGS"] = 486] = "TAGS";
      PropertyIdentifier22[PropertyIdentifier22["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
      PropertyIdentifier22[PropertyIdentifier22["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
      PropertyIdentifier22[PropertyIdentifier22["TIME_DELAY"] = 113] = "TIME_DELAY";
      PropertyIdentifier22[PropertyIdentifier22["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
      PropertyIdentifier22[PropertyIdentifier22["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
      PropertyIdentifier22[PropertyIdentifier22["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
      PropertyIdentifier22[PropertyIdentifier22["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
      PropertyIdentifier22[PropertyIdentifier22["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
      PropertyIdentifier22[PropertyIdentifier22["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
      PropertyIdentifier22[PropertyIdentifier22["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
      PropertyIdentifier22[PropertyIdentifier22["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
      PropertyIdentifier22[PropertyIdentifier22["TIMER_STATE"] = 398] = "TIMER_STATE";
      PropertyIdentifier22[PropertyIdentifier22["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
      PropertyIdentifier22[PropertyIdentifier22["TRACE_FLAG"] = 308] = "TRACE_FLAG";
      PropertyIdentifier22[PropertyIdentifier22["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
      PropertyIdentifier22[PropertyIdentifier22["TRANSITION"] = 385] = "TRANSITION";
      PropertyIdentifier22[PropertyIdentifier22["TRIGGER"] = 205] = "TRIGGER";
      PropertyIdentifier22[PropertyIdentifier22["UNITS"] = 117] = "UNITS";
      PropertyIdentifier22[PropertyIdentifier22["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
      PropertyIdentifier22[PropertyIdentifier22["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
      PropertyIdentifier22[PropertyIdentifier22["UPDATE_TIME"] = 189] = "UPDATE_TIME";
      PropertyIdentifier22[PropertyIdentifier22["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
      PropertyIdentifier22[PropertyIdentifier22["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
      PropertyIdentifier22[PropertyIdentifier22["USER_NAME"] = 317] = "USER_NAME";
      PropertyIdentifier22[PropertyIdentifier22["USER_TYPE"] = 318] = "USER_TYPE";
      PropertyIdentifier22[PropertyIdentifier22["USES_REMAINING"] = 319] = "USES_REMAINING";
      PropertyIdentifier22[PropertyIdentifier22["UTC_OFFSET"] = 119] = "UTC_OFFSET";
      PropertyIdentifier22[PropertyIdentifier22["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
      PropertyIdentifier22[PropertyIdentifier22["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
      PropertyIdentifier22[PropertyIdentifier22["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
      PropertyIdentifier22[PropertyIdentifier22["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
      PropertyIdentifier22[PropertyIdentifier22["VALUE_SET"] = 191] = "VALUE_SET";
      PropertyIdentifier22[PropertyIdentifier22["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
      PropertyIdentifier22[PropertyIdentifier22["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
      PropertyIdentifier22[PropertyIdentifier22["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
      PropertyIdentifier22[PropertyIdentifier22["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
      PropertyIdentifier22[PropertyIdentifier22["VENDOR_NAME"] = 121] = "VENDOR_NAME";
      PropertyIdentifier22[PropertyIdentifier22["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
      PropertyIdentifier22[PropertyIdentifier22["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
      PropertyIdentifier22[PropertyIdentifier22["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
      PropertyIdentifier22[PropertyIdentifier22["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
      PropertyIdentifier22[PropertyIdentifier22["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
      PropertyIdentifier22[PropertyIdentifier22["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
      PropertyIdentifier22[PropertyIdentifier22["WRITE_STATUS"] = 370] = "WRITE_STATUS";
      PropertyIdentifier22[PropertyIdentifier22["ZONE_FROM"] = 320] = "ZONE_FROM";
      PropertyIdentifier22[PropertyIdentifier22["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
      PropertyIdentifier22[PropertyIdentifier22["ZONE_TO"] = 321] = "ZONE_TO";
      return PropertyIdentifier22;
    })(PropertyIdentifier2 || {});
    var ProtocolLevel2 = /* @__PURE__ */ ((ProtocolLevel22) => {
      ProtocolLevel22[ProtocolLevel22["PHYSICAL"] = 0] = "PHYSICAL";
      ProtocolLevel22[ProtocolLevel22["PROTOCOL"] = 1] = "PROTOCOL";
      ProtocolLevel22[ProtocolLevel22["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
      ProtocolLevel22[ProtocolLevel22["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
      return ProtocolLevel22;
    })(ProtocolLevel2 || {});
    var Relationship2 = /* @__PURE__ */ ((Relationship22) => {
      Relationship22[Relationship22["UNKNOWN"] = 0] = "UNKNOWN";
      Relationship22[Relationship22["DEFAULT"] = 1] = "DEFAULT";
      Relationship22[Relationship22["CONTAINS"] = 2] = "CONTAINS";
      Relationship22[Relationship22["CONTAINED_BY"] = 3] = "CONTAINED_BY";
      Relationship22[Relationship22["USES"] = 4] = "USES";
      Relationship22[Relationship22["USED_BY"] = 5] = "USED_BY";
      Relationship22[Relationship22["COMMANDS"] = 6] = "COMMANDS";
      Relationship22[Relationship22["COMMANDED_BY"] = 7] = "COMMANDED_BY";
      Relationship22[Relationship22["ADJUSTS"] = 8] = "ADJUSTS";
      Relationship22[Relationship22["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
      Relationship22[Relationship22["INGRESS"] = 10] = "INGRESS";
      Relationship22[Relationship22["EGRESS"] = 11] = "EGRESS";
      Relationship22[Relationship22["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
      Relationship22[Relationship22["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
      Relationship22[Relationship22["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
      Relationship22[Relationship22["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
      Relationship22[Relationship22["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
      Relationship22[Relationship22["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
      Relationship22[Relationship22["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
      Relationship22[Relationship22["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
      Relationship22[Relationship22["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
      Relationship22[Relationship22["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
      Relationship22[Relationship22["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
      Relationship22[Relationship22["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
      Relationship22[Relationship22["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
      Relationship22[Relationship22["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
      Relationship22[Relationship22["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
      Relationship22[Relationship22["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
      Relationship22[Relationship22["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
      Relationship22[Relationship22["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
      return Relationship22;
    })(Relationship2 || {});
    var Reliability2 = /* @__PURE__ */ ((Reliability22) => {
      Reliability22[Reliability22["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
      Reliability22[Reliability22["NO_SENSOR"] = 1] = "NO_SENSOR";
      Reliability22[Reliability22["OVER_RANGE"] = 2] = "OVER_RANGE";
      Reliability22[Reliability22["UNDER_RANGE"] = 3] = "UNDER_RANGE";
      Reliability22[Reliability22["OPEN_LOOP"] = 4] = "OPEN_LOOP";
      Reliability22[Reliability22["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
      Reliability22[Reliability22["NO_OUTPUT"] = 6] = "NO_OUTPUT";
      Reliability22[Reliability22["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
      Reliability22[Reliability22["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
      Reliability22[Reliability22["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
      Reliability22[Reliability22["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
      Reliability22[Reliability22["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
      Reliability22[Reliability22["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
      Reliability22[Reliability22["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
      Reliability22[Reliability22["TRIPPED"] = 15] = "TRIPPED";
      Reliability22[Reliability22["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
      Reliability22[Reliability22["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
      Reliability22[Reliability22["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
      Reliability22[Reliability22["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
      Reliability22[Reliability22["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
      Reliability22[Reliability22["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
      Reliability22[Reliability22["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
      Reliability22[Reliability22["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
      Reliability22[Reliability22["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
      return Reliability22;
    })(Reliability2 || {});
    var RestartReason2 = /* @__PURE__ */ ((RestartReason22) => {
      RestartReason22[RestartReason22["UNKNOWN"] = 0] = "UNKNOWN";
      RestartReason22[RestartReason22["COLDSTART"] = 1] = "COLDSTART";
      RestartReason22[RestartReason22["WARMSTART"] = 2] = "WARMSTART";
      RestartReason22[RestartReason22["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
      RestartReason22[RestartReason22["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
      RestartReason22[RestartReason22["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
      RestartReason22[RestartReason22["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
      RestartReason22[RestartReason22["SUSPENDED"] = 7] = "SUSPENDED";
      RestartReason22[RestartReason22["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
      return RestartReason22;
    })(RestartReason2 || {});
    var SecurityLevel2 = /* @__PURE__ */ ((SecurityLevel22) => {
      SecurityLevel22[SecurityLevel22["INCAPABLE"] = 0] = "INCAPABLE";
      SecurityLevel22[SecurityLevel22["PLAIN"] = 1] = "PLAIN";
      SecurityLevel22[SecurityLevel22["SIGNED"] = 2] = "SIGNED";
      SecurityLevel22[SecurityLevel22["ENCRYPTED"] = 3] = "ENCRYPTED";
      SecurityLevel22[SecurityLevel22["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
      SecurityLevel22[SecurityLevel22["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
      return SecurityLevel22;
    })(SecurityLevel2 || {});
    var SecurityPolicy2 = /* @__PURE__ */ ((SecurityPolicy22) => {
      SecurityPolicy22[SecurityPolicy22["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
      SecurityPolicy22[SecurityPolicy22["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
      SecurityPolicy22[SecurityPolicy22["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
      SecurityPolicy22[SecurityPolicy22["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
      return SecurityPolicy22;
    })(SecurityPolicy2 || {});
    var Segmentation2 = /* @__PURE__ */ ((Segmentation22) => {
      Segmentation22[Segmentation22["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
      Segmentation22[Segmentation22["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
      Segmentation22[Segmentation22["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
      Segmentation22[Segmentation22["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
      return Segmentation22;
    })(Segmentation2 || {});
    var ShedState2 = /* @__PURE__ */ ((ShedState22) => {
      ShedState22[ShedState22["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
      ShedState22[ShedState22["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
      ShedState22[ShedState22["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
      ShedState22[ShedState22["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
      return ShedState22;
    })(ShedState2 || {});
    var SilencedState2 = /* @__PURE__ */ ((SilencedState22) => {
      SilencedState22[SilencedState22["UNSILENCED"] = 0] = "UNSILENCED";
      SilencedState22[SilencedState22["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
      SilencedState22[SilencedState22["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
      SilencedState22[SilencedState22["ALL_SILENCED"] = 3] = "ALL_SILENCED";
      return SilencedState22;
    })(SilencedState2 || {});
    var TimerState2 = /* @__PURE__ */ ((TimerState22) => {
      TimerState22[TimerState22["IDLE"] = 0] = "IDLE";
      TimerState22[TimerState22["RUNNING"] = 1] = "RUNNING";
      TimerState22[TimerState22["EXPIRED"] = 2] = "EXPIRED";
      return TimerState22;
    })(TimerState2 || {});
    var TimerTransition2 = /* @__PURE__ */ ((TimerTransition22) => {
      TimerTransition22[TimerTransition22["NONE"] = 0] = "NONE";
      TimerTransition22[TimerTransition22["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
      TimerTransition22[TimerTransition22["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
      TimerTransition22[TimerTransition22["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
      TimerTransition22[TimerTransition22["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
      TimerTransition22[TimerTransition22["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
      TimerTransition22[TimerTransition22["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
      TimerTransition22[TimerTransition22["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
      return TimerTransition22;
    })(TimerTransition2 || {});
    var VTClass2 = /* @__PURE__ */ ((VTClass22) => {
      VTClass22[VTClass22["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
      VTClass22[VTClass22["ANSI_X3_64"] = 1] = "ANSI_X3_64";
      VTClass22[VTClass22["DEC_VT52"] = 2] = "DEC_VT52";
      VTClass22[VTClass22["DEC_VT100"] = 3] = "DEC_VT100";
      VTClass22[VTClass22["DEC_VT220"] = 4] = "DEC_VT220";
      VTClass22[VTClass22["HP_700_94"] = 5] = "HP_700_94";
      VTClass22[VTClass22["IBM_3130"] = 6] = "IBM_3130";
      return VTClass22;
    })(VTClass2 || {});
    var WriteStatus2 = /* @__PURE__ */ ((WriteStatus22) => {
      WriteStatus22[WriteStatus22["IDLE"] = 0] = "IDLE";
      WriteStatus22[WriteStatus22["IN_PROGRESS"] = 1] = "IN_PROGRESS";
      WriteStatus22[WriteStatus22["SUCCESSFUL"] = 2] = "SUCCESSFUL";
      WriteStatus22[WriteStatus22["FAILED"] = 3] = "FAILED";
      return WriteStatus22;
    })(WriteStatus2 || {});
    var DaysOfWeek2 = /* @__PURE__ */ ((DaysOfWeek22) => {
      DaysOfWeek22[DaysOfWeek22["MONDAY"] = 0] = "MONDAY";
      DaysOfWeek22[DaysOfWeek22["TUESDAY"] = 1] = "TUESDAY";
      DaysOfWeek22[DaysOfWeek22["WEDNESDAY"] = 2] = "WEDNESDAY";
      DaysOfWeek22[DaysOfWeek22["THURSDAY"] = 3] = "THURSDAY";
      DaysOfWeek22[DaysOfWeek22["FRIDAY"] = 4] = "FRIDAY";
      DaysOfWeek22[DaysOfWeek22["SATURDAY"] = 5] = "SATURDAY";
      DaysOfWeek22[DaysOfWeek22["SUNDAY"] = 6] = "SUNDAY";
      return DaysOfWeek22;
    })(DaysOfWeek2 || {});
    var EventTransitionBits2 = /* @__PURE__ */ ((EventTransitionBits22) => {
      EventTransitionBits22[EventTransitionBits22["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
      EventTransitionBits22[EventTransitionBits22["TO_FAULT"] = 1] = "TO_FAULT";
      EventTransitionBits22[EventTransitionBits22["TO_NORMAL"] = 2] = "TO_NORMAL";
      return EventTransitionBits22;
    })(EventTransitionBits2 || {});
    var LimitEnable2 = /* @__PURE__ */ ((LimitEnable22) => {
      LimitEnable22[LimitEnable22["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
      LimitEnable22[LimitEnable22["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
      return LimitEnable22;
    })(LimitEnable2 || {});
    var LogStatus2 = /* @__PURE__ */ ((LogStatus22) => {
      LogStatus22[LogStatus22["LOG_DISABLED"] = 0] = "LOG_DISABLED";
      LogStatus22[LogStatus22["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
      LogStatus22[LogStatus22["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
      return LogStatus22;
    })(LogStatus2 || {});
    var ObjectTypesSupported2 = /* @__PURE__ */ ((ObjectTypesSupported22) => {
      ObjectTypesSupported22[ObjectTypesSupported22["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
      ObjectTypesSupported22[ObjectTypesSupported22["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
      ObjectTypesSupported22[ObjectTypesSupported22["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["BINARY_INPUT"] = 3] = "BINARY_INPUT";
      ObjectTypesSupported22[ObjectTypesSupported22["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
      ObjectTypesSupported22[ObjectTypesSupported22["BINARY_VALUE"] = 5] = "BINARY_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["CALENDAR"] = 6] = "CALENDAR";
      ObjectTypesSupported22[ObjectTypesSupported22["COMMAND"] = 7] = "COMMAND";
      ObjectTypesSupported22[ObjectTypesSupported22["DEVICE"] = 8] = "DEVICE";
      ObjectTypesSupported22[ObjectTypesSupported22["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
      ObjectTypesSupported22[ObjectTypesSupported22["FILE"] = 10] = "FILE";
      ObjectTypesSupported22[ObjectTypesSupported22["GROUP"] = 11] = "GROUP";
      ObjectTypesSupported22[ObjectTypesSupported22["LOOP"] = 12] = "LOOP";
      ObjectTypesSupported22[ObjectTypesSupported22["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
      ObjectTypesSupported22[ObjectTypesSupported22["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
      ObjectTypesSupported22[ObjectTypesSupported22["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
      ObjectTypesSupported22[ObjectTypesSupported22["PROGRAM"] = 16] = "PROGRAM";
      ObjectTypesSupported22[ObjectTypesSupported22["SCHEDULE"] = 17] = "SCHEDULE";
      ObjectTypesSupported22[ObjectTypesSupported22["AVERAGING"] = 18] = "AVERAGING";
      ObjectTypesSupported22[ObjectTypesSupported22["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["TREND_LOG"] = 20] = "TREND_LOG";
      ObjectTypesSupported22[ObjectTypesSupported22["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
      ObjectTypesSupported22[ObjectTypesSupported22["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
      ObjectTypesSupported22[ObjectTypesSupported22["ACCUMULATOR"] = 23] = "ACCUMULATOR";
      ObjectTypesSupported22[ObjectTypesSupported22["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
      ObjectTypesSupported22[ObjectTypesSupported22["EVENT_LOG"] = 25] = "EVENT_LOG";
      ObjectTypesSupported22[ObjectTypesSupported22["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
      ObjectTypesSupported22[ObjectTypesSupported22["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
      ObjectTypesSupported22[ObjectTypesSupported22["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
      ObjectTypesSupported22[ObjectTypesSupported22["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
      ObjectTypesSupported22[ObjectTypesSupported22["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
      ObjectTypesSupported22[ObjectTypesSupported22["TIMER"] = 31] = "TIMER";
      ObjectTypesSupported22[ObjectTypesSupported22["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
      ObjectTypesSupported22[ObjectTypesSupported22["ACCESS_POINT"] = 33] = "ACCESS_POINT";
      ObjectTypesSupported22[ObjectTypesSupported22["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
      ObjectTypesSupported22[ObjectTypesSupported22["ACCESS_USER"] = 35] = "ACCESS_USER";
      ObjectTypesSupported22[ObjectTypesSupported22["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
      ObjectTypesSupported22[ObjectTypesSupported22["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
      ObjectTypesSupported22[ObjectTypesSupported22["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
      ObjectTypesSupported22[ObjectTypesSupported22["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["DATE_VALUE"] = 42] = "DATE_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["TIME_VALUE"] = 50] = "TIME_VALUE";
      ObjectTypesSupported22[ObjectTypesSupported22["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
      ObjectTypesSupported22[ObjectTypesSupported22["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
      ObjectTypesSupported22[ObjectTypesSupported22["CHANNEL"] = 53] = "CHANNEL";
      ObjectTypesSupported22[ObjectTypesSupported22["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
      ObjectTypesSupported22[ObjectTypesSupported22["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
      ObjectTypesSupported22[ObjectTypesSupported22["NETWORK_PORT"] = 56] = "NETWORK_PORT";
      ObjectTypesSupported22[ObjectTypesSupported22["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
      ObjectTypesSupported22[ObjectTypesSupported22["ESCALATOR"] = 58] = "ESCALATOR";
      ObjectTypesSupported22[ObjectTypesSupported22["LIFT"] = 59] = "LIFT";
      return ObjectTypesSupported22;
    })(ObjectTypesSupported2 || {});
    var ResultFlags2 = /* @__PURE__ */ ((ResultFlags22) => {
      ResultFlags22[ResultFlags22["FIRST_ITEM"] = 0] = "FIRST_ITEM";
      ResultFlags22[ResultFlags22["LAST_ITEM"] = 1] = "LAST_ITEM";
      ResultFlags22[ResultFlags22["MORE_ITEMS"] = 2] = "MORE_ITEMS";
      return ResultFlags22;
    })(ResultFlags2 || {});
    var ServicesSupported2 = /* @__PURE__ */ ((ServicesSupported22) => {
      ServicesSupported22[ServicesSupported22["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
      ServicesSupported22[ServicesSupported22["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
      ServicesSupported22[ServicesSupported22["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
      ServicesSupported22[ServicesSupported22["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
      ServicesSupported22[ServicesSupported22["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
      ServicesSupported22[ServicesSupported22["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
      ServicesSupported22[ServicesSupported22["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
      ServicesSupported22[ServicesSupported22["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
      ServicesSupported22[ServicesSupported22["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
      ServicesSupported22[ServicesSupported22["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
      ServicesSupported22[ServicesSupported22["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
      ServicesSupported22[ServicesSupported22["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
      ServicesSupported22[ServicesSupported22["READ_PROPERTY"] = 12] = "READ_PROPERTY";
      ServicesSupported22[ServicesSupported22["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
      ServicesSupported22[ServicesSupported22["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
      ServicesSupported22[ServicesSupported22["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
      ServicesSupported22[ServicesSupported22["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
      ServicesSupported22[ServicesSupported22["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
      ServicesSupported22[ServicesSupported22["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
      ServicesSupported22[ServicesSupported22["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
      ServicesSupported22[ServicesSupported22["VT_OPEN"] = 21] = "VT_OPEN";
      ServicesSupported22[ServicesSupported22["VT_CLOSE"] = 22] = "VT_CLOSE";
      ServicesSupported22[ServicesSupported22["VT_DATA"] = 23] = "VT_DATA";
      ServicesSupported22[ServicesSupported22["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
      ServicesSupported22[ServicesSupported22["AUTHENTICATE"] = 24] = "AUTHENTICATE";
      ServicesSupported22[ServicesSupported22["REQUEST_KEY"] = 25] = "REQUEST_KEY";
      ServicesSupported22[ServicesSupported22["I_AM"] = 26] = "I_AM";
      ServicesSupported22[ServicesSupported22["I_HAVE"] = 27] = "I_HAVE";
      ServicesSupported22[ServicesSupported22["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
      ServicesSupported22[ServicesSupported22["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
      ServicesSupported22[ServicesSupported22["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
      ServicesSupported22[ServicesSupported22["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
      ServicesSupported22[ServicesSupported22["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
      ServicesSupported22[ServicesSupported22["WHO_HAS"] = 33] = "WHO_HAS";
      ServicesSupported22[ServicesSupported22["WHO_IS"] = 34] = "WHO_IS";
      ServicesSupported22[ServicesSupported22["READ_RANGE"] = 35] = "READ_RANGE";
      ServicesSupported22[ServicesSupported22["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
      ServicesSupported22[ServicesSupported22["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
      ServicesSupported22[ServicesSupported22["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
      ServicesSupported22[ServicesSupported22["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
      ServicesSupported22[ServicesSupported22["WRITE_GROUP"] = 40] = "WRITE_GROUP";
      ServicesSupported22[ServicesSupported22["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
      ServicesSupported22[ServicesSupported22["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
      ServicesSupported22[ServicesSupported22["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
      return ServicesSupported22;
    })(ServicesSupported2 || {});
    var StatusFlags2 = /* @__PURE__ */ ((StatusFlags22) => {
      StatusFlags22[StatusFlags22["IN_ALARM"] = 0] = "IN_ALARM";
      StatusFlags22[StatusFlags22["FAULT"] = 1] = "FAULT";
      StatusFlags22[StatusFlags22["OVERRIDDEN"] = 2] = "OVERRIDDEN";
      StatusFlags22[StatusFlags22["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
      return StatusFlags22;
    })(StatusFlags2 || {});
    var ApplicationTag2 = /* @__PURE__ */ ((ApplicationTag22) => {
      ApplicationTag22[ApplicationTag22["NULL"] = 0] = "NULL";
      ApplicationTag22[ApplicationTag22["BOOLEAN"] = 1] = "BOOLEAN";
      ApplicationTag22[ApplicationTag22["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
      ApplicationTag22[ApplicationTag22["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
      ApplicationTag22[ApplicationTag22["REAL"] = 4] = "REAL";
      ApplicationTag22[ApplicationTag22["DOUBLE"] = 5] = "DOUBLE";
      ApplicationTag22[ApplicationTag22["OCTET_STRING"] = 6] = "OCTET_STRING";
      ApplicationTag22[ApplicationTag22["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
      ApplicationTag22[ApplicationTag22["BIT_STRING"] = 8] = "BIT_STRING";
      ApplicationTag22[ApplicationTag22["ENUMERATED"] = 9] = "ENUMERATED";
      ApplicationTag22[ApplicationTag22["DATE"] = 10] = "DATE";
      ApplicationTag22[ApplicationTag22["TIME"] = 11] = "TIME";
      ApplicationTag22[ApplicationTag22["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
      ApplicationTag22[ApplicationTag22["EMPTYLIST"] = 100] = "EMPTYLIST";
      ApplicationTag22[ApplicationTag22["WEEKNDAY"] = 101] = "WEEKNDAY";
      ApplicationTag22[ApplicationTag22["DATERANGE"] = 102] = "DATERANGE";
      ApplicationTag22[ApplicationTag22["DATETIME"] = 103] = "DATETIME";
      ApplicationTag22[ApplicationTag22["TIMESTAMP"] = 104] = "TIMESTAMP";
      ApplicationTag22[ApplicationTag22["ERROR"] = 105] = "ERROR";
      ApplicationTag22[ApplicationTag22["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
      ApplicationTag22[ApplicationTag22["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
      ApplicationTag22[ApplicationTag22["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
      ApplicationTag22[ApplicationTag22["DESTINATION"] = 109] = "DESTINATION";
      ApplicationTag22[ApplicationTag22["RECIPIENT"] = 110] = "RECIPIENT";
      ApplicationTag22[ApplicationTag22["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
      ApplicationTag22[ApplicationTag22["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
      ApplicationTag22[ApplicationTag22["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
      ApplicationTag22[ApplicationTag22["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
      ApplicationTag22[ApplicationTag22["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
      ApplicationTag22[ApplicationTag22["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
      ApplicationTag22[ApplicationTag22["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
      ApplicationTag22[ApplicationTag22["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
      ApplicationTag22[ApplicationTag22["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
      ApplicationTag22[ApplicationTag22["LOG_RECORD"] = 120] = "LOG_RECORD";
      return ApplicationTag22;
    })(ApplicationTag2 || {});
    var ApplicationTagName2 = invertEnum2(
      ApplicationTag2
    );
    var BvlcResultFormat2 = /* @__PURE__ */ ((BvlcResultFormat22) => {
      BvlcResultFormat22[BvlcResultFormat22["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
      BvlcResultFormat22[BvlcResultFormat22["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
      BvlcResultFormat22[BvlcResultFormat22["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
      BvlcResultFormat22[BvlcResultFormat22["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
      BvlcResultFormat22[BvlcResultFormat22["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
      BvlcResultFormat22[BvlcResultFormat22["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
      BvlcResultFormat22[BvlcResultFormat22["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
      return BvlcResultFormat22;
    })(BvlcResultFormat2 || {});
    var BvlcResultPurpose2 = /* @__PURE__ */ ((BvlcResultPurpose22) => {
      BvlcResultPurpose22[BvlcResultPurpose22["BVLC_RESULT"] = 0] = "BVLC_RESULT";
      BvlcResultPurpose22[BvlcResultPurpose22["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
      BvlcResultPurpose22[BvlcResultPurpose22["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
      BvlcResultPurpose22[BvlcResultPurpose22["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
      BvlcResultPurpose22[BvlcResultPurpose22["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
      BvlcResultPurpose22[BvlcResultPurpose22["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
      BvlcResultPurpose22[BvlcResultPurpose22["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
      BvlcResultPurpose22[BvlcResultPurpose22["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
      BvlcResultPurpose22[BvlcResultPurpose22["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
      BvlcResultPurpose22[BvlcResultPurpose22["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
      BvlcResultPurpose22[BvlcResultPurpose22["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
      BvlcResultPurpose22[BvlcResultPurpose22["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
      BvlcResultPurpose22[BvlcResultPurpose22["SECURE_BVLL"] = 12] = "SECURE_BVLL";
      return BvlcResultPurpose22;
    })(BvlcResultPurpose2 || {});
    var CharacterStringEncoding2 = /* @__PURE__ */ ((CharacterStringEncoding22) => {
      CharacterStringEncoding22[CharacterStringEncoding22["UTF_8"] = 0] = "UTF_8";
      CharacterStringEncoding22[CharacterStringEncoding22["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
      CharacterStringEncoding22[CharacterStringEncoding22["JIS_X_0208"] = 2] = "JIS_X_0208";
      CharacterStringEncoding22[CharacterStringEncoding22["UCS_4"] = 3] = "UCS_4";
      CharacterStringEncoding22[CharacterStringEncoding22["UCS_2"] = 4] = "UCS_2";
      CharacterStringEncoding22[CharacterStringEncoding22["ISO_8859_1"] = 5] = "ISO_8859_1";
      return CharacterStringEncoding22;
    })(CharacterStringEncoding2 || {});
    var CovType2 = /* @__PURE__ */ ((CovType22) => {
      CovType22[CovType22["REAL"] = 0] = "REAL";
      CovType22[CovType22["BIT_STRING"] = 1] = "BIT_STRING";
      return CovType22;
    })(CovType2 || {});
    var EnableDisable2 = /* @__PURE__ */ ((EnableDisable22) => {
      EnableDisable22[EnableDisable22["ENABLE"] = 0] = "ENABLE";
      EnableDisable22[EnableDisable22["DISABLE"] = 1] = "DISABLE";
      EnableDisable22[EnableDisable22["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
      return EnableDisable22;
    })(EnableDisable2 || {});
    var MaxApduLengthAccepted2 = /* @__PURE__ */ ((MaxApduLengthAccepted22) => {
      MaxApduLengthAccepted22[MaxApduLengthAccepted22["OCTETS_50"] = 0] = "OCTETS_50";
      MaxApduLengthAccepted22[MaxApduLengthAccepted22["OCTETS_128"] = 1] = "OCTETS_128";
      MaxApduLengthAccepted22[MaxApduLengthAccepted22["OCTETS_206"] = 2] = "OCTETS_206";
      MaxApduLengthAccepted22[MaxApduLengthAccepted22["OCTETS_480"] = 3] = "OCTETS_480";
      MaxApduLengthAccepted22[MaxApduLengthAccepted22["OCTETS_1024"] = 4] = "OCTETS_1024";
      MaxApduLengthAccepted22[MaxApduLengthAccepted22["OCTETS_1476"] = 5] = "OCTETS_1476";
      return MaxApduLengthAccepted22;
    })(MaxApduLengthAccepted2 || {});
    var MaxSegmentsAccepted2 = /* @__PURE__ */ ((MaxSegmentsAccepted22) => {
      MaxSegmentsAccepted22[MaxSegmentsAccepted22["SEGMENTS_0"] = 0] = "SEGMENTS_0";
      MaxSegmentsAccepted22[MaxSegmentsAccepted22["SEGMENTS_2"] = 16] = "SEGMENTS_2";
      MaxSegmentsAccepted22[MaxSegmentsAccepted22["SEGMENTS_4"] = 32] = "SEGMENTS_4";
      MaxSegmentsAccepted22[MaxSegmentsAccepted22["SEGMENTS_8"] = 48] = "SEGMENTS_8";
      MaxSegmentsAccepted22[MaxSegmentsAccepted22["SEGMENTS_16"] = 64] = "SEGMENTS_16";
      MaxSegmentsAccepted22[MaxSegmentsAccepted22["SEGMENTS_32"] = 80] = "SEGMENTS_32";
      MaxSegmentsAccepted22[MaxSegmentsAccepted22["SEGMENTS_64"] = 96] = "SEGMENTS_64";
      MaxSegmentsAccepted22[MaxSegmentsAccepted22["SEGMENTS_65"] = 112] = "SEGMENTS_65";
      return MaxSegmentsAccepted22;
    })(MaxSegmentsAccepted2 || {});
    var NetworkLayerMessageType2 = /* @__PURE__ */ ((NetworkLayerMessageType22) => {
      NetworkLayerMessageType22[NetworkLayerMessageType22["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
      NetworkLayerMessageType22[NetworkLayerMessageType22["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
      NetworkLayerMessageType22[NetworkLayerMessageType22["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
      NetworkLayerMessageType22[NetworkLayerMessageType22["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
      NetworkLayerMessageType22[NetworkLayerMessageType22["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
      NetworkLayerMessageType22[NetworkLayerMessageType22["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
      NetworkLayerMessageType22[NetworkLayerMessageType22["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
      NetworkLayerMessageType22[NetworkLayerMessageType22["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
      NetworkLayerMessageType22[NetworkLayerMessageType22["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
      NetworkLayerMessageType22[NetworkLayerMessageType22["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
      NetworkLayerMessageType22[NetworkLayerMessageType22["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
      NetworkLayerMessageType22[NetworkLayerMessageType22["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
      NetworkLayerMessageType22[NetworkLayerMessageType22["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
      NetworkLayerMessageType22[NetworkLayerMessageType22["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
      NetworkLayerMessageType22[NetworkLayerMessageType22["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
      NetworkLayerMessageType22[NetworkLayerMessageType22["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
      NetworkLayerMessageType22[NetworkLayerMessageType22["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
      NetworkLayerMessageType22[NetworkLayerMessageType22["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
      NetworkLayerMessageType22[NetworkLayerMessageType22["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
      NetworkLayerMessageType22[NetworkLayerMessageType22["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
      return NetworkLayerMessageType22;
    })(NetworkLayerMessageType2 || {});
    var NpduControlBit2 = /* @__PURE__ */ ((NpduControlBit22) => {
      NpduControlBit22[NpduControlBit22["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
      NpduControlBit22[NpduControlBit22["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
      NpduControlBit22[NpduControlBit22["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
      NpduControlBit22[NpduControlBit22["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
      return NpduControlBit22;
    })(NpduControlBit2 || {});
    var NpduControlPriority2 = /* @__PURE__ */ ((NpduControlPriority22) => {
      NpduControlPriority22[NpduControlPriority22["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
      NpduControlPriority22[NpduControlPriority22["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
      NpduControlPriority22[NpduControlPriority22["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
      NpduControlPriority22[NpduControlPriority22["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
      return NpduControlPriority22;
    })(NpduControlPriority2 || {});
    var PduConReqBit2 = /* @__PURE__ */ ((PduConReqBit22) => {
      PduConReqBit22[PduConReqBit22["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
      PduConReqBit22[PduConReqBit22["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
      PduConReqBit22[PduConReqBit22["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
      return PduConReqBit22;
    })(PduConReqBit2 || {});
    var PduSegAckBit2 = /* @__PURE__ */ ((PduSegAckBit22) => {
      PduSegAckBit22[PduSegAckBit22["SERVER"] = 1] = "SERVER";
      PduSegAckBit22[PduSegAckBit22["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
      return PduSegAckBit22;
    })(PduSegAckBit2 || {});
    var PduType2 = /* @__PURE__ */ ((PduType22) => {
      PduType22[PduType22["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
      PduType22[PduType22["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
      PduType22[PduType22["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
      PduType22[PduType22["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
      PduType22[PduType22["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
      PduType22[PduType22["ERROR"] = 80] = "ERROR";
      PduType22[PduType22["REJECT"] = 96] = "REJECT";
      PduType22[PduType22["ABORT"] = 112] = "ABORT";
      return PduType22;
    })(PduType2 || {});
    var PropertyStates2 = /* @__PURE__ */ ((PropertyStates22) => {
      PropertyStates22[PropertyStates22["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
      PropertyStates22[PropertyStates22["BINARY_VALUE"] = 1] = "BINARY_VALUE";
      PropertyStates22[PropertyStates22["EVENT_TYPE"] = 2] = "EVENT_TYPE";
      PropertyStates22[PropertyStates22["POLARITY"] = 3] = "POLARITY";
      PropertyStates22[PropertyStates22["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
      PropertyStates22[PropertyStates22["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
      PropertyStates22[PropertyStates22["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
      PropertyStates22[PropertyStates22["RELIABILITY"] = 7] = "RELIABILITY";
      PropertyStates22[PropertyStates22["STATE"] = 8] = "STATE";
      PropertyStates22[PropertyStates22["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
      PropertyStates22[PropertyStates22["UNITS"] = 10] = "UNITS";
      PropertyStates22[PropertyStates22["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
      PropertyStates22[PropertyStates22["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
      PropertyStates22[PropertyStates22["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
      PropertyStates22[PropertyStates22["RESTART_REASON"] = 14] = "RESTART_REASON";
      PropertyStates22[PropertyStates22["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
      PropertyStates22[PropertyStates22["ACTION"] = 16] = "ACTION";
      PropertyStates22[PropertyStates22["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
      PropertyStates22[PropertyStates22["DOOR_STATUS"] = 18] = "DOOR_STATUS";
      PropertyStates22[PropertyStates22["DOOR_VALUE"] = 19] = "DOOR_VALUE";
      PropertyStates22[PropertyStates22["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
      PropertyStates22[PropertyStates22["LOCK_STATUS"] = 21] = "LOCK_STATUS";
      PropertyStates22[PropertyStates22["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
      PropertyStates22[PropertyStates22["MAINTENANCE"] = 23] = "MAINTENANCE";
      PropertyStates22[PropertyStates22["NODE_TYPE"] = 24] = "NODE_TYPE";
      PropertyStates22[PropertyStates22["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
      PropertyStates22[PropertyStates22["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
      PropertyStates22[PropertyStates22["SHED_STATE"] = 27] = "SHED_STATE";
      PropertyStates22[PropertyStates22["SILENCED_STATE"] = 28] = "SILENCED_STATE";
      PropertyStates22[PropertyStates22["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
      PropertyStates22[PropertyStates22["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
      PropertyStates22[PropertyStates22["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
      PropertyStates22[PropertyStates22["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
      PropertyStates22[PropertyStates22["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
      PropertyStates22[PropertyStates22["BACKUP_STATE"] = 36] = "BACKUP_STATE";
      PropertyStates22[PropertyStates22["WRITE_STATUS"] = 37] = "WRITE_STATUS";
      PropertyStates22[PropertyStates22["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
      PropertyStates22[PropertyStates22["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
      PropertyStates22[PropertyStates22["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
      PropertyStates22[PropertyStates22["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
      PropertyStates22[PropertyStates22["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
      PropertyStates22[PropertyStates22["TIMER_STATE"] = 43] = "TIMER_STATE";
      PropertyStates22[PropertyStates22["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
      PropertyStates22[PropertyStates22["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
      PropertyStates22[PropertyStates22["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
      PropertyStates22[PropertyStates22["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
      PropertyStates22[PropertyStates22["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
      PropertyStates22[PropertyStates22["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
      PropertyStates22[PropertyStates22["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
      PropertyStates22[PropertyStates22["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
      PropertyStates22[PropertyStates22["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
      PropertyStates22[PropertyStates22["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
      PropertyStates22[PropertyStates22["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
      PropertyStates22[PropertyStates22["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
      PropertyStates22[PropertyStates22["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
      PropertyStates22[PropertyStates22["LIFT_FAULT"] = 57] = "LIFT_FAULT";
      PropertyStates22[PropertyStates22["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
      PropertyStates22[PropertyStates22["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
      return PropertyStates22;
    })(PropertyStates2 || {});
    var ReadRangeType2 = /* @__PURE__ */ ((ReadRangeType22) => {
      ReadRangeType22[ReadRangeType22["BY_POSITION"] = 0] = "BY_POSITION";
      ReadRangeType22[ReadRangeType22["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
      ReadRangeType22[ReadRangeType22["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
      return ReadRangeType22;
    })(ReadRangeType2 || {});
    var ReinitializedState2 = /* @__PURE__ */ ((ReinitializedState22) => {
      ReinitializedState22[ReinitializedState22["COLDSTART"] = 0] = "COLDSTART";
      ReinitializedState22[ReinitializedState22["WARMSTART"] = 1] = "WARMSTART";
      ReinitializedState22[ReinitializedState22["STARTBACKUP"] = 2] = "STARTBACKUP";
      ReinitializedState22[ReinitializedState22["ENDBACKUP"] = 3] = "ENDBACKUP";
      ReinitializedState22[ReinitializedState22["STARTRESTORE"] = 4] = "STARTRESTORE";
      ReinitializedState22[ReinitializedState22["ENDRESTORE"] = 5] = "ENDRESTORE";
      ReinitializedState22[ReinitializedState22["ABORTRESTORE"] = 6] = "ABORTRESTORE";
      ReinitializedState22[ReinitializedState22["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
      return ReinitializedState22;
    })(ReinitializedState2 || {});
    var TimeStamp2 = /* @__PURE__ */ ((TimeStamp22) => {
      TimeStamp22[TimeStamp22["TIME"] = 0] = "TIME";
      TimeStamp22[TimeStamp22["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
      TimeStamp22[TimeStamp22["DATETIME"] = 2] = "DATETIME";
      return TimeStamp22;
    })(TimeStamp2 || {});
    var import_events22 = __toESM2(require("events"));
    var import_debug32 = __toESM2(require("debug"));
    var import_dgram2 = require("dgram");
    var import_events3 = __toESM2(require("events"));
    var import_debug22 = __toESM2(require("debug"));
    var EventEmitter3 = import_events3.default.EventEmitter;
    var debug22 = (0, import_debug22.default)("bacnet:client:debug");
    var DEFAULT_BACNET_PORT3 = 47808;
    var Transport2 = class extends EventEmitter3 {
      constructor(settings) {
        super();
        this._lastSendMessages = {};
        this._settings = settings;
        this._server = (0, import_dgram2.createSocket)({
          type: "udp4",
          reuseAddr: settings.reuseAddr
        });
        this._server.on("message", (msg, rinfo) => {
          if (this.ownAddress.port === rinfo.port) {
            for (let [messageKey, earlierSentBuffer] of Object.entries(
              this._lastSendMessages
            )) {
              if (msg.equals(earlierSentBuffer)) {
                debug22(
                  `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
                );
                return;
              }
            }
          }
          debug22(
            `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
              "hex"
            )}`
          );
          this.emit(
            "message",
            msg,
            rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT3 ? "" : ":" + rinfo.port)
          );
        });
        this._server.on("listening", () => {
          this.ownAddress = this._server.address();
          debug22(
            `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
          );
          this.emit("listening", this.ownAddress);
        });
        this._server.on("error", (err) => {
          debug22("transport error", err.message);
          this.emit("error", err);
        });
        this._server.on("close", () => {
          debug22("transport closed");
          this.emit("close");
        });
      }
      getBroadcastAddress() {
        return this._settings.broadcastAddress;
      }
      getMaxPayload() {
        return 1482;
      }
      send(buffer, offset, receiver) {
        if (!receiver) {
          receiver = this.getBroadcastAddress();
          const dataToSend = Buffer.alloc(offset);
          const hrTime = process.hrtime();
          const messageKey = hrTime[0] * 1e9 + hrTime[1];
          buffer.copy(dataToSend, 0, 0, offset);
          this._lastSendMessages[messageKey] = dataToSend;
          setTimeout(() => {
            delete this._lastSendMessages[messageKey];
          }, 1e4);
        }
        const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
        const [address, port] = receiverAddress.split(":");
        debug22(
          "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
        );
        this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT3, address);
      }
      open() {
        this._server.bind(this._settings.port, this._settings.interface, () => {
          this._server.setBroadcast(true);
        });
      }
      close() {
        this._server.close();
      }
    };
    var services_exports2 = {};
    __export2(services_exports2, {
      addListElement: () => add_list_element_exports2,
      alarmAcknowledge: () => alarm_acknowledge_exports2,
      alarmSummary: () => alarm_summary_exports2,
      atomicReadFile: () => atomic_read_file_exports2,
      atomicWriteFile: () => atomic_write_file_exports2,
      covNotify: () => cov_notify_exports2,
      covNotifyUnconfirmed: () => cov_notify_exports2,
      createObject: () => create_object_exports2,
      deleteObject: () => delete_object_exports2,
      deviceCommunicationControl: () => device_communication_control_exports2,
      error: () => error_exports2,
      eventInformation: () => event_information_exports2,
      eventNotifyData: () => event_notify_data_exports2,
      getEnrollmentSummary: () => get_enrollment_summary_exports2,
      getEventInformation: () => get_event_information_exports2,
      iAm: () => i_am_exports2,
      iHave: () => i_have_exports2,
      lifeSafetyOperation: () => life_safety_operation_exports2,
      privateTransfer: () => private_transfer_exports2,
      readProperty: () => read_property_exports2,
      readPropertyMultiple: () => read_property_multiple_exports2,
      readRange: () => read_range_exports2,
      registerForeignDevice: () => register_foreign_device_exports2,
      reinitializeDevice: () => reinitialize_device_exports2,
      subscribeCov: () => subscribe_cov_exports2,
      subscribeProperty: () => subscribe_property_exports2,
      timeSync: () => time_sync_exports2,
      timeSyncUTC: () => time_sync_exports2,
      whoHas: () => who_has_exports2,
      whoIs: () => who_is_exports2,
      writeProperty: () => write_property_exports2,
      writePropertyMultiple: () => write_property_multiple_exports2
    });
    var add_list_element_exports2 = {};
    __export2(add_list_element_exports2, {
      decode: () => decode33,
      encode: () => encode33
    });
    var import_iconv_lite2 = __toESM2(require("iconv-lite"));
    var enums_default2 = enum_exports2;
    var START_YEAR2 = 1900;
    var MAX_YEARS2 = 256;
    var getBuffer2 = () => {
      return {
        buffer: Buffer.alloc(1472),
        offset: 0
      };
    };
    var getSignedLength2 = (value) => {
      if (value >= -128 && value < 128)
        return 1;
      else if (value >= -32768 && value < 32768)
        return 2;
      else if (value > -8388608 && value < 8388608)
        return 3;
      else
        return 4;
    };
    var getUnsignedLength2 = (value) => {
      if (value < 256)
        return 1;
      else if (value < 65536)
        return 2;
      else if (value < 16777216)
        return 3;
      else
        return 4;
    };
    var getEncodingType2 = (encoding, decodingBuffer, decodingOffset) => {
      switch (encoding) {
        case enums_default2.CharacterStringEncoding.UCS_2:
          if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
            return "ucs2";
          }
          return "UTF-16BE";
        case enums_default2.CharacterStringEncoding.ISO_8859_1:
          return "latin1";
        case enums_default2.CharacterStringEncoding.MICROSOFT_DBCS:
          return "cp850";
        case enums_default2.CharacterStringEncoding.JIS_X_0208:
          return "Shift_JIS";
        default:
          return "utf8";
      }
    };
    var encodeUnsigned2 = (buffer, value, length) => {
      buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
      buffer.offset += length;
    };
    var encodeBacnetUnsigned2 = (buffer, value) => {
      encodeUnsigned2(buffer, value, getUnsignedLength2(value));
    };
    var encodeSigned2 = (buffer, value, length) => {
      buffer.buffer.writeIntBE(value, buffer.offset, length, true);
      buffer.offset += length;
    };
    var encodeBacnetSigned2 = (buffer, value) => {
      encodeSigned2(buffer, value, getSignedLength2(value));
    };
    var encodeBacnetReal2 = (buffer, value) => {
      buffer.buffer.writeFloatBE(value, buffer.offset, true);
      buffer.offset += 4;
    };
    var encodeBacnetDouble2 = (buffer, value) => {
      buffer.buffer.writeDoubleBE(value, buffer.offset, true);
      buffer.offset += 8;
    };
    var decodeUnsigned2 = (buffer, offset, length) => {
      if (length === 0) {
        return {
          len: 0,
          value: 0
        };
      }
      return {
        len: length,
        //@ts-ignore
        value: buffer.readUIntBE(offset, length)
      };
    };
    var decodeEnumerated2 = (buffer, offset, length) => {
      return decodeUnsigned2(buffer, offset, length);
    };
    var encodeBacnetObjectId2 = (buffer, objectType, instance) => {
      const value = ((objectType & enums_default2.ASN1_MAX_OBJECT) << enums_default2.ASN1_INSTANCE_BITS | instance & enums_default2.ASN1_MAX_INSTANCE) >>> 0;
      encodeUnsigned2(buffer, value, 4);
    };
    var encodeTag2 = (buffer, tagNumber, contextSpecific, lenValueType) => {
      let len = 1;
      const tmp = new Array(3);
      tmp[0] = 0;
      if (contextSpecific) {
        tmp[0] |= 8;
      }
      if (tagNumber <= 14) {
        tmp[0] |= tagNumber << 4;
      } else {
        tmp[0] |= 240;
        tmp[1] = tagNumber;
        len++;
      }
      if (lenValueType <= 4) {
        tmp[0] |= lenValueType;
        Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
        buffer.offset += len;
      } else {
        tmp[0] |= 5;
        if (lenValueType <= 253) {
          tmp[len++] = lenValueType;
          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
          buffer.offset += len;
        } else if (lenValueType <= 65535) {
          tmp[len++] = 254;
          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
          buffer.offset += len;
          encodeUnsigned2(buffer, lenValueType, 2);
        } else {
          tmp[len++] = 255;
          Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
          buffer.offset += len;
          encodeUnsigned2(buffer, lenValueType, 4);
        }
      }
    };
    var encodeBacnetEnumerated2 = (buffer, value) => {
      encodeBacnetUnsigned2(buffer, value);
    };
    var isExtendedTagNumber2 = (x) => {
      return (x & 240) === 240;
    };
    var isExtendedValue2 = (x) => {
      return (x & 7) === 5;
    };
    var isContextSpecific2 = (x) => {
      return (x & 8) === 8;
    };
    var isOpeningTag2 = (x) => {
      return (x & 7) === 6;
    };
    var isClosingTag2 = (x) => {
      return (x & 7) === 7;
    };
    var encodeContextReal2 = (buffer, tagNumber, value) => {
      encodeTag2(buffer, tagNumber, true, 4);
      encodeBacnetReal2(buffer, value);
    };
    var encodeContextUnsigned2 = (buffer, tagNumber, value) => {
      encodeTag2(buffer, tagNumber, true, getUnsignedLength2(value));
      encodeBacnetUnsigned2(buffer, value);
    };
    var encodeContextEnumerated2 = (buffer, tagNumber, value) => {
      encodeContextUnsigned2(buffer, tagNumber, value);
    };
    var encodeOctetString2 = (buffer, octetString, octetOffset, octetCount) => {
      if (octetString) {
        for (let i = octetOffset; i < octetOffset + octetCount; i++) {
          buffer.buffer[buffer.offset++] = octetString[i];
        }
      }
    };
    var encodeApplicationOctetString2 = (buffer, octetString, octetOffset, octetCount) => {
      encodeTag2(buffer, enums_default2.ApplicationTag.OCTET_STRING, false, octetCount);
      encodeOctetString2(buffer, octetString, octetOffset, octetCount);
    };
    var encodeApplicationNull2 = (buffer) => {
      buffer.buffer[buffer.offset++] = enums_default2.ApplicationTag.NULL;
    };
    var encodeApplicationBoolean2 = (buffer, booleanValue) => {
      encodeTag2(buffer, enums_default2.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
    };
    var encodeApplicationReal2 = (buffer, value) => {
      encodeTag2(buffer, enums_default2.ApplicationTag.REAL, false, 4);
      encodeBacnetReal2(buffer, value);
    };
    var encodeApplicationDouble2 = (buffer, value) => {
      encodeTag2(buffer, enums_default2.ApplicationTag.DOUBLE, false, 8);
      encodeBacnetDouble2(buffer, value);
    };
    var bitstringBytesUsed2 = (bitString) => {
      let len = 0;
      if (bitString.bitsUsed > 0) {
        const lastBit = bitString.bitsUsed - 1;
        const usedBytes = lastBit / 8 + 1;
        len = Math.floor(usedBytes);
      }
      return len;
    };
    var encodeApplicationObjectId2 = (buffer, objectType, instance) => {
      const tmp = getBuffer2();
      encodeBacnetObjectId2(tmp, objectType, instance);
      encodeTag2(buffer, enums_default2.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
      buffer.offset += tmp.offset;
    };
    var encodeApplicationUnsigned2 = (buffer, value) => {
      const tmp = getBuffer2();
      encodeBacnetUnsigned2(tmp, value);
      encodeTag2(buffer, enums_default2.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
      buffer.offset += tmp.offset;
    };
    var encodeApplicationEnumerated2 = (buffer, value) => {
      const tmp = getBuffer2();
      encodeBacnetEnumerated2(tmp, value);
      encodeTag2(buffer, enums_default2.ApplicationTag.ENUMERATED, false, tmp.offset);
      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
      buffer.offset += tmp.offset;
    };
    var encodeApplicationSigned2 = (buffer, value) => {
      const tmp = getBuffer2();
      encodeBacnetSigned2(tmp, value);
      encodeTag2(buffer, enums_default2.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
      buffer.offset += tmp.offset;
    };
    var byteReverseBits2 = (inByte) => {
      let outByte = 0;
      if ((inByte & 1) > 0) {
        outByte |= 128;
      }
      if ((inByte & 2) > 0) {
        outByte |= 64;
      }
      if ((inByte & 4) > 0) {
        outByte |= 32;
      }
      if ((inByte & 8) > 0) {
        outByte |= 16;
      }
      if ((inByte & 16) > 0) {
        outByte |= 8;
      }
      if ((inByte & 32) > 0) {
        outByte |= 4;
      }
      if ((inByte & 64) > 0) {
        outByte |= 2;
      }
      if ((inByte & 128) > 0) {
        outByte |= 1;
      }
      return outByte;
    };
    var bitstringOctet2 = (bitString, octetIndex) => {
      let octet = 0;
      if (bitString.value && octetIndex < enums_default2.ASN1_MAX_BITSTRING_BYTES) {
        octet = bitString.value[octetIndex];
      }
      return octet;
    };
    var encodeBitstring2 = (buffer, bitString) => {
      if (bitString.bitsUsed === 0) {
        buffer.buffer[buffer.offset++] = 0;
      } else {
        const usedBytes = bitstringBytesUsed2(bitString);
        const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
        buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
        for (let i = 0; i < usedBytes; i++) {
          buffer.buffer[buffer.offset++] = byteReverseBits2(
            bitstringOctet2(bitString, i)
          );
        }
      }
    };
    var encodeApplicationBitstring2 = (buffer, bitString) => {
      let bitStringEncodedLength = 1;
      bitStringEncodedLength += bitstringBytesUsed2(bitString);
      encodeTag2(
        buffer,
        enums_default2.ApplicationTag.BIT_STRING,
        false,
        bitStringEncodedLength
      );
      encodeBitstring2(buffer, bitString);
    };
    var encodeBacnetDate2 = (buffer, value) => {
      if (value === new Date(1, 1, 1)) {
        buffer.buffer[buffer.offset++] = 255;
        buffer.buffer[buffer.offset++] = 255;
        buffer.buffer[buffer.offset++] = 255;
        buffer.buffer[buffer.offset++] = 255;
        return;
      }
      if (value.getFullYear() >= START_YEAR2) {
        buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR2;
      } else if (value.getFullYear() < MAX_YEARS2) {
        buffer.buffer[buffer.offset++] = value.getFullYear();
      } else {
        throw new Error("invaide year: " + value.getFullYear());
      }
      buffer.buffer[buffer.offset++] = value.getMonth();
      buffer.buffer[buffer.offset++] = value.getDate();
      buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
    };
    var encodeApplicationDate2 = (buffer, value) => {
      encodeTag2(buffer, enums_default2.ApplicationTag.DATE, false, 4);
      encodeBacnetDate2(buffer, value);
    };
    var encodeBacnetTime2 = (buffer, value) => {
      buffer.buffer[buffer.offset++] = value.getHours();
      buffer.buffer[buffer.offset++] = value.getMinutes();
      buffer.buffer[buffer.offset++] = value.getSeconds();
      buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
    };
    var encodeApplicationTime2 = (buffer, value) => {
      encodeTag2(buffer, enums_default2.ApplicationTag.TIME, false, 4);
      encodeBacnetTime2(buffer, value);
    };
    var bacappEncodeDatetime2 = (buffer, value) => {
      if (value !== new Date(1, 1, 1)) {
        encodeApplicationDate2(buffer, value);
        encodeApplicationTime2(buffer, value);
      }
    };
    var encodeContextObjectId2 = (buffer, tagNumber, objectType, instance) => {
      encodeTag2(buffer, tagNumber, true, 4);
      encodeBacnetObjectId2(buffer, objectType, instance);
    };
    var encodeOpeningTag2 = (buffer, tagNumber) => {
      let len = 1;
      const tmp = new Array(2);
      tmp[0] = 8;
      if (tagNumber <= 14) {
        tmp[0] |= tagNumber << 4;
      } else {
        tmp[0] |= 240;
        tmp[1] = tagNumber;
        len++;
      }
      tmp[0] |= 6;
      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
      buffer.offset += len;
    };
    var encodeClosingTag2 = (buffer, tagNumber) => {
      let len = 1;
      const tmp = new Array(2);
      tmp[0] = 8;
      if (tagNumber <= 14) {
        tmp[0] |= tagNumber << 4;
      } else {
        tmp[0] |= 240;
        tmp[1] = tagNumber;
        len++;
      }
      tmp[0] |= 7;
      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
      buffer.offset += len;
    };
    var encodeReadAccessSpecification2 = (buffer, value) => {
      encodeContextObjectId2(
        buffer,
        0,
        value.objectId.type,
        value.objectId.instance
      );
      encodeOpeningTag2(buffer, 1);
      value.properties.forEach((p) => {
        encodeContextEnumerated2(buffer, 0, p.id);
        if (p.index && p.index !== enums_default2.ASN1_ARRAY_ALL) {
          encodeContextUnsigned2(buffer, 1, p.index);
        }
      });
      encodeClosingTag2(buffer, 1);
    };
    var encodeContextBoolean2 = (buffer, tagNumber, booleanValue) => {
      encodeTag2(buffer, tagNumber, true, 1);
      buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
      buffer.offset += 1;
    };
    var encodeCovSubscription2 = (buffer, value) => {
      encodeOpeningTag2(buffer, 0);
      encodeOpeningTag2(buffer, 0);
      encodeOpeningTag2(buffer, 1);
      encodeApplicationUnsigned2(buffer, value.recipient.network);
      if (value.recipient.network === 65535) {
        encodeApplicationOctetString2(buffer, 0, 0, 0);
      } else {
        encodeApplicationOctetString2(
          buffer,
          value.recipient.address,
          0,
          value.recipient.address.length
        );
      }
      encodeClosingTag2(buffer, 1);
      encodeClosingTag2(buffer, 0);
      encodeContextUnsigned2(buffer, 1, value.subscriptionProcessId);
      encodeClosingTag2(buffer, 0);
      encodeOpeningTag2(buffer, 1);
      encodeContextObjectId2(
        buffer,
        0,
        value.monitoredObjectId.type,
        value.monitoredObjectId.instance
      );
      encodeContextEnumerated2(buffer, 1, value.monitoredProperty.id);
      if (value.monitoredProperty.index !== enums_default2.ASN1_ARRAY_ALL) {
        encodeContextUnsigned2(buffer, 2, value.monitoredProperty.index);
      }
      encodeClosingTag2(buffer, 1);
      encodeContextBoolean2(buffer, 2, value.issueConfirmedNotifications);
      encodeContextUnsigned2(buffer, 3, value.timeRemaining);
      if (value.covIncrement > 0) {
        encodeContextReal2(buffer, 4, value.covIncrement);
      }
    };
    var bacappEncodeApplicationData2 = (buffer, value) => {
      if (value.value === null) {
        value.type = enums_default2.ApplicationTag.NULL;
      }
      switch (value.type) {
        case enums_default2.ApplicationTag.NULL:
          encodeApplicationNull2(buffer);
          break;
        case enums_default2.ApplicationTag.BOOLEAN:
          encodeApplicationBoolean2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.UNSIGNED_INTEGER:
          encodeApplicationUnsigned2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.SIGNED_INTEGER:
          encodeApplicationSigned2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.REAL:
          encodeApplicationReal2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.DOUBLE:
          encodeApplicationDouble2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.OCTET_STRING:
          encodeApplicationOctetString2(buffer, value.value, 0, value.value.length);
          break;
        case enums_default2.ApplicationTag.CHARACTER_STRING:
          encodeApplicationCharacterString2(buffer, value.value, value.encoding);
          break;
        case enums_default2.ApplicationTag.BIT_STRING:
          encodeApplicationBitstring2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.ENUMERATED:
          encodeApplicationEnumerated2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.DATE:
          encodeApplicationDate2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.TIME:
          encodeApplicationTime2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.TIMESTAMP:
          bacappEncodeTimestamp2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.DATETIME:
          bacappEncodeDatetime2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.OBJECTIDENTIFIER:
          encodeApplicationObjectId2(buffer, value.value.type, value.value.instance);
          break;
        case enums_default2.ApplicationTag.COV_SUBSCRIPTION:
          encodeCovSubscription2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.READ_ACCESS_RESULT:
          encodeReadAccessResult2(buffer, value.value);
          break;
        case enums_default2.ApplicationTag.READ_ACCESS_SPECIFICATION:
          encodeReadAccessSpecification2(buffer, value.value);
          break;
        case void 0:
          throw new Error(
            "Cannot encode a value if the type has not been specified"
          );
        default:
          throw "No encode for ApplicationTag type: " + enums_default2.getEnumName(
            enums_default2.ApplicationTag,
            value.type
          );
      }
    };
    var bacappEncodeDeviceObjPropertyRef2 = (buffer, value) => {
      encodeContextObjectId2(
        buffer,
        0,
        value.objectId.type,
        value.objectId.instance
      );
      encodeContextEnumerated2(buffer, 1, value.id);
      if (value.arrayIndex !== enums_default2.ASN1_ARRAY_ALL) {
        encodeContextUnsigned2(buffer, 2, value.arrayIndex);
      }
      if (value.deviceIndentifier.type === enums_default2.ObjectType.DEVICE) {
        encodeContextObjectId2(
          buffer,
          3,
          value.deviceIndentifier.type,
          value.deviceIndentifier.instance
        );
      }
    };
    var bacappEncodeContextDeviceObjPropertyRef2 = (buffer, tagNumber, value) => {
      encodeOpeningTag2(buffer, tagNumber);
      bacappEncodeDeviceObjPropertyRef2(buffer, value);
      encodeClosingTag2(buffer, tagNumber);
    };
    var bacappEncodePropertyState2 = (buffer, value) => {
      switch (value.type) {
        case enums_default2.PropertyStates.BOOLEAN_VALUE:
          encodeContextBoolean2(buffer, 0, value.state === 1);
          break;
        case enums_default2.PropertyStates.BINARY_VALUE:
          encodeContextEnumerated2(buffer, 1, value.state);
          break;
        case enums_default2.PropertyStates.EVENT_TYPE:
          encodeContextEnumerated2(buffer, 2, value.state);
          break;
        case enums_default2.PropertyStates.POLARITY:
          encodeContextEnumerated2(buffer, 3, value.state);
          break;
        case enums_default2.PropertyStates.PROGRAM_CHANGE:
          encodeContextEnumerated2(buffer, 4, value.state);
          break;
        case enums_default2.PropertyStates.PROGRAM_STATE:
          encodeContextEnumerated2(buffer, 5, value.state);
          break;
        case enums_default2.PropertyStates.REASON_FOR_HALT:
          encodeContextEnumerated2(buffer, 6, value.state);
          break;
        case enums_default2.PropertyStates.RELIABILITY:
          encodeContextEnumerated2(buffer, 7, value.state);
          break;
        case enums_default2.PropertyStates.STATE:
          encodeContextEnumerated2(buffer, 8, value.state);
          break;
        case enums_default2.PropertyStates.SYSTEM_STATUS:
          encodeContextEnumerated2(buffer, 9, value.state);
          break;
        case enums_default2.PropertyStates.UNITS:
          encodeContextEnumerated2(buffer, 10, value.state);
          break;
        case enums_default2.PropertyStates.UNSIGNED_VALUE:
          encodeContextUnsigned2(buffer, 11, value.state);
          break;
        case enums_default2.PropertyStates.LIFE_SAFETY_MODE:
          encodeContextEnumerated2(buffer, 12, value.state);
          break;
        case enums_default2.PropertyStates.LIFE_SAFETY_STATE:
          encodeContextEnumerated2(buffer, 13, value.state);
          break;
        default:
          break;
      }
    };
    var encodeContextBitstring2 = (buffer, tagNumber, bitString) => {
      let bitStringEncodedLength = 1;
      bitStringEncodedLength += bitstringBytesUsed2(bitString);
      encodeTag2(buffer, tagNumber, true, bitStringEncodedLength);
      encodeBitstring2(buffer, bitString);
    };
    var encodeContextSigned2 = (buffer, tagNumber, value) => {
      encodeTag2(buffer, tagNumber, true, getSignedLength2(value));
      encodeBacnetSigned2(buffer, value);
    };
    var encodeContextTime2 = (buffer, tagNumber, value) => {
      encodeTag2(buffer, tagNumber, true, 4);
      encodeBacnetTime2(buffer, value);
    };
    var bacappEncodeContextDatetime2 = (buffer, tagNumber, value) => {
      if (value !== new Date(1, 1, 1)) {
        encodeOpeningTag2(buffer, tagNumber);
        bacappEncodeDatetime2(buffer, value);
        encodeClosingTag2(buffer, tagNumber);
      } else {
        throw new Error("wrong Datetime while bacapp encoding context");
      }
    };
    var decodeTagNumber2 = (buffer, offset) => {
      let len = 1;
      let tagNumber;
      if (isExtendedTagNumber2(buffer[offset])) {
        tagNumber = buffer[offset + 1];
        len++;
      } else {
        tagNumber = buffer[offset] >> 4;
      }
      return {
        len,
        tagNumber
      };
    };
    var decodeIsContextTag2 = (buffer, offset, tagNumber) => {
      const result = decodeTagNumber2(buffer, offset);
      return isContextSpecific2(buffer[offset]) && result.tagNumber === tagNumber;
    };
    var decodeIsOpeningTagNumber2 = (buffer, offset, tagNumber) => {
      const result = decodeTagNumber2(buffer, offset);
      return isOpeningTag2(buffer[offset]) && result.tagNumber === tagNumber;
    };
    var decodeIsClosingTagNumber2 = (buffer, offset, tagNumber) => {
      const result = decodeTagNumber2(buffer, offset);
      return isClosingTag2(buffer[offset]) && result.tagNumber === tagNumber;
    };
    var decodeIsClosingTag2 = (buffer, offset) => {
      return (buffer[offset] & 7) === 7;
    };
    var decodeIsOpeningTag2 = (buffer, offset) => {
      return (buffer[offset] & 7) === 6;
    };
    var decodeObjectId2 = (buffer, offset, NOT_USED_NUMBER = 0) => {
      const result = decodeUnsigned2(buffer, offset, 4);
      const objectType = result.value >> enums_default2.ASN1_INSTANCE_BITS & enums_default2.ASN1_MAX_OBJECT;
      const instance = result.value & enums_default2.ASN1_MAX_INSTANCE;
      return {
        len: result.len,
        objectType,
        instance
      };
    };
    var decodeObjectIdSafe2 = (buffer, offset, lenValue) => {
      if (lenValue !== 4) {
        return {
          len: 0,
          objectType: 0,
          instance: 0
        };
      } else {
        return decodeObjectId2(buffer, offset);
      }
    };
    var decodeTagNumberAndValue2 = (buffer, offset) => {
      let value;
      let result = decodeTagNumber2(buffer, offset);
      let len = result.len;
      if (isExtendedValue2(buffer[offset])) {
        if (buffer[offset + len] === 255) {
          len++;
          result = decodeUnsigned2(buffer, offset + len, 4);
          len += result.len;
          value = result.value;
        } else if (buffer[offset + len] === 254) {
          len++;
          result = decodeUnsigned2(buffer, offset + len, 2);
          len += result.len;
          value = result.value;
        } else {
          value = buffer[offset + len];
          len++;
        }
      } else if (isOpeningTag2(buffer[offset])) {
        value = 0;
      } else if (isClosingTag2(buffer[offset])) {
        value = 0;
      } else {
        value = buffer[offset] & 7;
      }
      return {
        len,
        tagNumber: result.tagNumber,
        value
      };
    };
    var bacappDecodeApplicationData2 = (buffer, offset, maxOffset, objectType, propertyId) => {
      if (!isContextSpecific2(buffer[offset])) {
        let result = decodeTagNumberAndValue2(buffer, offset);
        if (result) {
          let len = result.len;
          result = bacappDecodeData2(
            buffer,
            offset + len,
            maxOffset,
            result.tagNumber,
            result.value
          );
          if (!result) {
            return void 0;
          }
          let resObj = {
            len: len + result.len,
            type: result.type,
            value: result.value
          };
          if (result.encoding !== void 0)
            resObj.encoding = result.encoding;
          return resObj;
        }
      } else {
        return bacappDecodeContextApplicationData2(
          buffer,
          offset,
          maxOffset,
          objectType,
          propertyId
        );
      }
    };
    var encodeReadAccessResult2 = (buffer, value) => {
      encodeContextObjectId2(
        buffer,
        0,
        value.objectId.type,
        value.objectId.instance
      );
      encodeOpeningTag2(buffer, 1);
      value.values.forEach((item) => {
        encodeContextEnumerated2(buffer, 2, item.property.id);
        if (item.property.index !== enums_default2.ASN1_ARRAY_ALL) {
          encodeContextUnsigned2(buffer, 3, item.property.index);
        }
        if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
          encodeOpeningTag2(buffer, 5);
          encodeApplicationEnumerated2(buffer, item.value[0].value.errorClass);
          encodeApplicationEnumerated2(buffer, item.value[0].value.errorCode);
          encodeClosingTag2(buffer, 5);
        } else {
          if (!item.value)
            throw new Error("No value in item");
          encodeOpeningTag2(buffer, 4);
          item.value.forEach((subItem) => {
            bacappEncodeApplicationData2(buffer, subItem);
          });
          encodeClosingTag2(buffer, 4);
        }
      });
      encodeClosingTag2(buffer, 1);
    };
    var decodeReadAccessResult2 = (buffer, offset, apduLen) => {
      let len = 0;
      let value = {};
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      let result = decodeObjectId2(buffer, offset + len);
      value.objectId = {
        type: result.objectType,
        instance: result.instance
      };
      len += result.len;
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 1)) {
        return -1;
      }
      len++;
      const values = [];
      while (apduLen - len > 0) {
        let newEntry = {};
        if (decodeIsClosingTagNumber2(buffer, offset + len, 1)) {
          len++;
          break;
        }
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 2) {
          return void 0;
        }
        result = decodeEnumerated2(buffer, offset + len, result.value);
        newEntry.id = result.value;
        len += result.len;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        if (result.tagNumber === 3) {
          len += result.len;
          result = decodeUnsigned2(buffer, offset + len, result.value);
          newEntry.index = result.value;
          len += result.len;
        } else {
          newEntry.index = enums_default2.ASN1_ARRAY_ALL;
        }
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber === 4) {
          const localValues = [];
          while (len + offset <= buffer.length && !decodeIsClosingTagNumber2(buffer, offset + len, 4)) {
            let localResult = bacappDecodeApplicationData2(
              buffer,
              offset + len,
              apduLen + offset - 1,
              value.objectId.type,
              newEntry.id
            );
            if (!localResult) {
              return void 0;
            }
            len += localResult.len;
            let resObj = {
              value: localResult.value,
              type: localResult.type
            };
            if (localResult.encoding !== void 0)
              resObj.encoding = localResult.encoding;
            localValues.push(resObj);
          }
          if (!decodeIsClosingTagNumber2(buffer, offset + len, 4)) {
            return void 0;
          }
          if (localValues.count === 2 && localValues[0].type === enums_default2.ApplicationTag.DATE && localValues[1].type === enums_default2.ApplicationTag.TIME) {
            const date = localValues[0].value;
            const time = localValues[1].value;
            const bdatetime = new Date(
              date.year,
              date.month,
              date.day,
              time.hour,
              time.minute,
              time.second,
              time.millisecond
            );
            newEntry.value = [
              { type: enums_default2.ApplicationTag.DATETIME, value: bdatetime }
            ];
          } else {
            newEntry.value = localValues;
          }
          len++;
        } else if (result.tagNumber === 5) {
          let err = {};
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
          result = decodeEnumerated2(buffer, offset + len, result.value);
          len += result.len;
          err.errorClass = result.value;
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
          result = decodeEnumerated2(buffer, offset + len, result.value);
          len += result.len;
          err.errorCode = result.value;
          if (!decodeIsClosingTagNumber2(buffer, offset + len, 5)) {
            return void 0;
          }
          len++;
          newEntry.value = [
            {
              type: enums_default2.ApplicationTag.ERROR,
              value: err
            }
          ];
        }
        values.push(newEntry);
      }
      value.values = values;
      return {
        len,
        value
      };
    };
    var decodeSigned2 = (buffer, offset, length) => {
      return {
        len: length,
        value: buffer.readIntBE(offset, length, true)
      };
    };
    var decodeReal2 = (buffer, offset) => {
      return {
        len: 4,
        value: buffer.readFloatBE(offset, true)
      };
    };
    var decodeRealSafe2 = (buffer, offset, lenValue) => {
      if (lenValue !== 4) {
        return {
          len: lenValue,
          value: 0
        };
      } else {
        return decodeReal2(buffer, offset);
      }
    };
    var decodeDouble2 = (buffer, offset) => {
      return {
        len: 8,
        value: buffer.readDoubleBE(offset, true)
      };
    };
    var decodeDoubleSafe2 = (buffer, offset, lenValue) => {
      if (lenValue !== 8) {
        return {
          len: lenValue,
          value: 0
        };
      } else {
        return decodeDouble2(buffer, offset);
      }
    };
    var decodeOctetString2 = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
      const octetString = [];
      for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
        octetString.push(buffer[offset + i]);
      }
      return {
        len: octetStringLength,
        value: octetString
      };
    };
    var multiCharsetCharacterstringDecode2 = (buffer, offset, maxLength, encoding, length) => {
      const stringBuf = Buffer.alloc(length);
      buffer.copy(stringBuf, 0, offset, offset + length);
      return {
        value: import_iconv_lite2.default.decode(stringBuf, getEncodingType2(encoding, buffer, offset)),
        len: length + 1,
        encoding
      };
    };
    var decodeCharacterString2 = (buffer, offset, maxLength, lenValue) => {
      return multiCharsetCharacterstringDecode2(
        buffer,
        offset + 1,
        maxLength,
        buffer[offset],
        lenValue - 1
      );
    };
    var bitstringSetBitsUsed2 = (bitString, bytesUsed, unusedBits) => {
      bitString.bitsUsed = bytesUsed * 8;
      bitString.bitsUsed -= unusedBits;
    };
    var decodeBitstring2 = (buffer, offset, lenValue) => {
      let len = 0;
      let bitString = {};
      bitString.value = [];
      if (lenValue > 0) {
        const bytesUsed = lenValue - 1;
        if (bytesUsed <= enums_default2.ASN1_MAX_BITSTRING_BYTES) {
          len = 1;
          for (let i = 0; i < bytesUsed; i++) {
            bitString.value.push(byteReverseBits2(buffer[offset + len++]));
          }
          const unusedBits = buffer[offset] & 7;
          bitstringSetBitsUsed2(bitString, bytesUsed, unusedBits);
        }
      }
      return {
        len,
        value: bitString
      };
    };
    var decodeDate2 = (buffer, offset) => {
      let date;
      const year = buffer[offset] + 1900;
      const month = buffer[offset + 1];
      const day = buffer[offset + 2];
      const wday = buffer[offset + 3];
      if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
        date = new Date(1, 1, 1);
      } else {
        date = new Date(year, month, day);
      }
      return {
        len: 4,
        value: date
      };
    };
    var decodeDateSafe2 = (buffer, offset, lenValue) => {
      if (lenValue !== 4) {
        return {
          len: lenValue,
          value: new Date(1, 1, 1)
        };
      } else {
        return decodeDate2(buffer, offset);
      }
    };
    var decodeApplicationDate2 = (buffer, offset) => {
      const result = decodeTagNumber2(buffer, offset);
      if (result.tagNumber === enums_default2.ApplicationTag.DATE) {
        const value = decodeDate2(buffer, offset + 1);
        return {
          len: value.len + 1,
          value
        };
      }
      return void 0;
    };
    var decodeBacnetTime2 = (buffer, offset, value = new Date(1, 1, 1)) => {
      const hour = buffer[offset + 0];
      const min = buffer[offset + 1];
      const sec = buffer[offset + 2];
      let hundredths = buffer[offset + 3];
      if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
        value = new Date(1, 1, 1);
      } else {
        if (hundredths > 100)
          hundredths = 0;
        value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
      }
      return {
        len: 4,
        value
      };
    };
    var decodeBacnetTimeSafe2 = (buffer, offset, lenValue) => {
      if (lenValue !== 4) {
        return {
          len: lenValue,
          value: new Date(1, 1, 1)
        };
      } else {
        return decodeBacnetTime2(buffer, offset);
      }
    };
    var decodeApplicationTime2 = (buffer, offset) => {
      const result = decodeTagNumber2(buffer, offset);
      if (result.tagNumber === enums_default2.ApplicationTag.TIME) {
        const value = decodeBacnetTime2(buffer, offset + 1);
        return {
          len: value.len + 1,
          value
        };
      }
      return void 0;
    };
    var decodeBacnetDatetime2 = (buffer, offset) => {
      let len = 0;
      const date = decodeApplicationDate2(buffer, offset + len);
      len += date.len;
      const time = decodeApplicationTime2(buffer, offset + len);
      len += time.len;
      return {
        len,
        value: new Date(
          date.year,
          date.month,
          date.day,
          time.hour,
          time.minute,
          time.second,
          time.millisecond
        )
      };
    };
    var bacappDecodeData2 = (buffer, offset, maxLength, tagDataType, lenValueType) => {
      let result;
      let value = {
        len: 0,
        type: tagDataType
      };
      switch (tagDataType) {
        case enums_default2.ApplicationTag.NULL:
          value.value = null;
          break;
        case enums_default2.ApplicationTag.BOOLEAN:
          value.value = lenValueType > 0;
          break;
        case enums_default2.ApplicationTag.UNSIGNED_INTEGER:
          result = decodeUnsigned2(buffer, offset, lenValueType);
          value.len += result.len;
          value.value = result.value;
          break;
        case enums_default2.ApplicationTag.SIGNED_INTEGER:
          result = decodeSigned2(buffer, offset, lenValueType);
          value.len += result.len;
          value.value = result.value;
          break;
        case enums_default2.ApplicationTag.REAL:
          result = decodeRealSafe2(buffer, offset, lenValueType);
          value.len += result.len;
          value.value = result.value;
          break;
        case enums_default2.ApplicationTag.DOUBLE:
          result = decodeDoubleSafe2(buffer, offset, lenValueType);
          value.len += result.len;
          value.value = result.value;
          break;
        case enums_default2.ApplicationTag.OCTET_STRING:
          result = decodeOctetString2(buffer, offset, maxLength, 0, lenValueType);
          value.len += result.len;
          value.value = result.value;
          break;
        case enums_default2.ApplicationTag.CHARACTER_STRING:
          result = decodeCharacterString2(buffer, offset, maxLength, lenValueType);
          value.len += result.len;
          value.value = result.value;
          value.encoding = result.encoding;
          break;
        case enums_default2.ApplicationTag.BIT_STRING:
          result = decodeBitstring2(buffer, offset, lenValueType);
          value.len += result.len;
          value.value = result.value;
          break;
        case enums_default2.ApplicationTag.ENUMERATED:
          result = decodeEnumerated2(buffer, offset, lenValueType);
          value.len += result.len;
          value.value = result.value;
          break;
        case enums_default2.ApplicationTag.DATE:
          result = decodeDateSafe2(buffer, offset, lenValueType);
          value.len += result.len;
          value.value = result.value;
          break;
        case enums_default2.ApplicationTag.TIME:
          result = decodeBacnetTimeSafe2(buffer, offset, lenValueType);
          value.len += result.len;
          value.value = result.value;
          break;
        case enums_default2.ApplicationTag.OBJECTIDENTIFIER:
          result = decodeObjectIdSafe2(buffer, offset, lenValueType);
          value.len += result.len;
          value.value = { type: result.objectType, instance: result.instance };
          break;
        default:
          break;
      }
      return value;
    };
    var bacappContextTagType2 = (property, tagNumber) => {
      let tag = 0;
      switch (property) {
        case enums_default2.PropertyIdentifier.ACTUAL_SHED_LEVEL:
        case enums_default2.PropertyIdentifier.REQUESTED_SHED_LEVEL:
        case enums_default2.PropertyIdentifier.EXPECTED_SHED_LEVEL:
          switch (tagNumber) {
            case 0:
            case 1:
              tag = enums_default2.ApplicationTag.UNSIGNED_INTEGER;
              break;
            case 2:
              tag = enums_default2.ApplicationTag.REAL;
              break;
            default:
              break;
          }
          break;
        case enums_default2.PropertyIdentifier.ACTION:
          switch (tagNumber) {
            case 0:
            case 1:
              tag = enums_default2.ApplicationTag.OBJECTIDENTIFIER;
              break;
            case 2:
              tag = enums_default2.ApplicationTag.ENUMERATED;
              break;
            case 3:
            case 5:
            case 6:
              tag = enums_default2.ApplicationTag.UNSIGNED_INTEGER;
              break;
            case 7:
            case 8:
              tag = enums_default2.ApplicationTag.BOOLEAN;
              break;
            default:
              break;
          }
          break;
        case enums_default2.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
          switch (tagNumber) {
            case 0:
              tag = enums_default2.ApplicationTag.OBJECTIDENTIFIER;
              break;
            default:
              break;
          }
          break;
        case enums_default2.PropertyIdentifier.EXCEPTION_SCHEDULE:
          switch (tagNumber) {
            case 1:
              tag = enums_default2.ApplicationTag.OBJECTIDENTIFIER;
              break;
            case 3:
              tag = enums_default2.ApplicationTag.UNSIGNED_INTEGER;
              break;
            default:
              break;
          }
          break;
        case enums_default2.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
          switch (tagNumber) {
            case 0:
            case 3:
              tag = enums_default2.ApplicationTag.OBJECTIDENTIFIER;
              break;
            case 1:
              tag = enums_default2.ApplicationTag.ENUMERATED;
              break;
            case 2:
              tag = enums_default2.ApplicationTag.UNSIGNED_INTEGER;
              break;
            default:
              break;
          }
          break;
        case enums_default2.PropertyIdentifier.SUBORDINATE_LIST:
          switch (tagNumber) {
            case 0:
            case 1:
              tag = enums_default2.ApplicationTag.OBJECTIDENTIFIER;
              break;
            default:
              break;
          }
          break;
        case enums_default2.PropertyIdentifier.RECIPIENT_LIST:
          switch (tagNumber) {
            case 0:
              tag = enums_default2.ApplicationTag.OBJECTIDENTIFIER;
              break;
            default:
              break;
          }
          break;
        case enums_default2.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
          switch (tagNumber) {
            case 0:
            case 1:
              break;
            case 2:
              tag = enums_default2.ApplicationTag.BOOLEAN;
              break;
            case 3:
              tag = enums_default2.ApplicationTag.UNSIGNED_INTEGER;
              break;
            case 4:
              tag = enums_default2.ApplicationTag.REAL;
              break;
            default:
              break;
          }
          break;
        default:
          break;
      }
      return tag;
    };
    var decodeDeviceObjPropertyRef2 = (buffer, offset, NOTUSEDARG = 0) => {
      let len = 0;
      let arrayIndex = enums_default2.ASN1_ARRAY_ALL;
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      let objectId = decodeObjectId2(buffer, offset + len);
      len += objectId.len;
      let result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 1) {
        return void 0;
      }
      let id = decodeEnumerated2(buffer, offset + len, result.value);
      len += id.len;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      if (result.tagNumber === 2) {
        len += result.len;
        arrayIndex = decodeUnsigned2(buffer, offset + len, result.value);
        len += arrayIndex.len;
      }
      if (decodeIsContextTag2(buffer, offset + len, 3)) {
        if (!isClosingTag2(buffer[offset + len])) {
          len++;
          objectId = decodeObjectId2(buffer, offset + len);
          len += objectId.len;
        }
      }
      return {
        len,
        value: {
          objectId,
          id
        }
      };
    };
    var decodeReadAccessSpecification2 = (buffer, offset, apduLen) => {
      let len = 0;
      let value = {};
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      let decodedValue = decodeObjectId2(buffer, offset + len);
      value.objectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      len += decodedValue.len;
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 1)) {
        return void 0;
      }
      len++;
      const propertyIdAndArrayIndex = [];
      while (apduLen - len > 1 && !decodeIsClosingTagNumber2(buffer, offset + len, 1)) {
        let propertyRef = {};
        if (!isContextSpecific2(buffer[offset + len])) {
          return void 0;
        }
        let result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 0) {
          return void 0;
        }
        if (len + result.value >= apduLen) {
          return void 0;
        }
        decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
        propertyRef.id = decodedValue.value;
        len += decodedValue.len;
        propertyRef.index = enums_default2.ASN1_ARRAY_ALL;
        if (isContextSpecific2(buffer[offset + len]) && !isClosingTag2(buffer[offset + len])) {
          const tmp = decodeTagNumberAndValue2(buffer, offset + len);
          if (tmp.tagNumber === 1) {
            len += tmp.len;
            if (len + tmp.value >= apduLen) {
              return void 0;
            }
            decodedValue = decodeUnsigned2(buffer, offset + len, tmp.value);
            propertyRef.index = decodedValue.value;
            len += decodedValue.len;
          }
        }
        propertyIdAndArrayIndex.push(propertyRef);
      }
      if (!decodeIsClosingTagNumber2(buffer, offset + len, 1)) {
        return void 0;
      }
      len++;
      value.properties = propertyIdAndArrayIndex;
      return {
        len,
        value
      };
    };
    var decodeCovSubscription2 = (buffer, offset, apduLen) => {
      let len = 0;
      let value = {};
      let result;
      let decodedValue;
      value.recipient = {};
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 1)) {
        return void 0;
      }
      len++;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== enums_default2.ApplicationTag.UNSIGNED_INTEGER) {
        return void 0;
      }
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.recipient.net = decodedValue.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== enums_default2.ApplicationTag.OCTET_STRING) {
        return void 0;
      }
      decodedValue = decodeOctetString2(
        buffer,
        offset + len,
        apduLen,
        0,
        result.value
      );
      len += decodedValue.len;
      value.recipient.adr = decodedValue.value;
      if (!decodeIsClosingTagNumber2(buffer, offset + len, 1)) {
        return void 0;
      }
      len++;
      if (!decodeIsClosingTagNumber2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 1) {
        return void 0;
      }
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.subscriptionProcessId = decodedValue.value;
      if (!decodeIsClosingTagNumber2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 1)) {
        return void 0;
      }
      len++;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 0) {
        return void 0;
      }
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      value.monitoredObjectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 1) {
        return void 0;
      }
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.monitoredProperty = {};
      value.monitoredProperty.id = decodedValue.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      if (result.tagNumber === 2) {
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.monitoredProperty.index = decodedValue.value;
      } else {
        value.monitoredProperty.index = enums_default2.ASN1_ARRAY_ALL;
      }
      if (!decodeIsClosingTagNumber2(buffer, offset + len, 1)) {
        return void 0;
      }
      len++;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 2) {
        return void 0;
      }
      value.issueConfirmedNotifications = buffer[offset + len] > 0;
      len++;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 3) {
        return void 0;
      }
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.timeRemaining = decodedValue.value;
      if (len < apduLen && !isClosingTag2(buffer[offset + len])) {
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 4) {
          return void 0;
        }
        decodedValue = decodeReal2(buffer, offset + len);
        len += decodedValue.len;
        value.covIncrement = decodedValue.value;
      }
      return {
        len,
        value
      };
    };
    var decodeCalendarDate2 = (buffer, offset) => {
      return {
        len: 4,
        year: buffer[offset],
        month: buffer[offset + 1],
        day: buffer[offset + 2],
        wday: buffer[offset + 3]
      };
    };
    var decodeCalendarDateRange2 = (buffer, offset) => {
      let len = 1;
      const startDate = decodeDate2(buffer, offset + len);
      len += startDate.len + 1;
      const endDate = decodeDate2(buffer, offset + len);
      len += endDate.len + 1;
      return {
        len,
        startDate,
        endDate
      };
    };
    var decodeCalendarWeekDay2 = (buffer, offset) => {
      return {
        len: 3,
        month: buffer[offset],
        week: buffer[offset + 1],
        wday: buffer[offset + 2]
      };
    };
    var decodeCalendar2 = (buffer, offset, apduLen) => {
      let len = 0;
      const entries = [];
      let decodedValue;
      while (len < apduLen) {
        const result = decodeTagNumber2(buffer, offset + len);
        len += result.len;
        switch (result.tagNumber) {
          case 0:
            decodedValue = decodeCalendarDate2(buffer, offset + len);
            len += decodedValue.len;
            entries.push(decodedValue);
            break;
          case 1:
            decodedValue = decodeCalendarDateRange2(buffer, offset + len);
            len += decodedValue.len;
            entries.push(decodedValue);
            break;
          case 2:
            decodedValue = decodeCalendarWeekDay2(buffer, offset + len);
            len += decodedValue.len;
            entries.push(decodedValue);
            break;
          default:
            return {
              len: len - 1,
              value: entries
            };
        }
      }
    };
    var bacappDecodeContextApplicationData2 = (buffer, offset, maxOffset, objectType, propertyId) => {
      let len = 0;
      let result;
      if (isContextSpecific2(buffer[offset])) {
        if (propertyId === enums_default2.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
          result = decodeReadAccessSpecification2(buffer, offset, maxOffset);
          if (!result) {
            return void 0;
          }
          return {
            type: enums_default2.ApplicationTag.READ_ACCESS_SPECIFICATION,
            value: result.value,
            len: result.len
          };
        } else if (propertyId === enums_default2.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
          result = decodeCovSubscription2(buffer, offset, maxOffset);
          if (!result) {
            return void 0;
          }
          return {
            type: enums_default2.ApplicationTag.COV_SUBSCRIPTION,
            value: result.value,
            len: result.len
          };
        } else if (objectType === enums_default2.ObjectType.GROUP && propertyId === enums_default2.PropertyIdentifier.PRESENT_VALUE) {
          result = decodeReadAccessResult2(buffer, offset, maxOffset);
          if (!result) {
            return void 0;
          }
          return {
            type: enums_default2.ApplicationTag.READ_ACCESS_RESULT,
            value: result.value,
            len: result.len
          };
        } else if (propertyId === enums_default2.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default2.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default2.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
          result = decodeDeviceObjPropertyRef2(buffer, offset, maxOffset);
          if (!result) {
            return void 0;
          }
          return {
            type: enums_default2.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
            value: result.value,
            len: result.len
          };
        } else if (propertyId === enums_default2.PropertyIdentifier.DATE_LIST) {
          result = decodeCalendar2(buffer, offset, maxOffset);
          if (!result) {
            return void 0;
          }
          return {
            type: enums_default2.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
            value: result.value,
            len: result.len
          };
        } else if (propertyId === enums_default2.PropertyIdentifier.EVENT_TIME_STAMPS) {
          let subEvtResult;
          let evtResult = decodeTagNumberAndValue2(buffer, offset + len);
          len += 1;
          if (evtResult.tagNumber === 0) {
            subEvtResult = decodeBacnetTime2(buffer, offset + 1);
            return {
              type: enums_default2.ApplicationTag.TIMESTAMP,
              value: subEvtResult.value,
              len: subEvtResult.len + 1
            };
          } else if (evtResult.tagNumber === 1) {
            subEvtResult = decodeUnsigned2(buffer, offset + len, evtResult.value);
            return {
              type: enums_default2.ApplicationTag.UNSIGNED_INTEGER,
              value: subEvtResult.value,
              len: subEvtResult.len + 1
            };
          } else if (evtResult.tagNumber === 2) {
            subEvtResult = decodeBacnetDatetime2(buffer, offset + len);
            return {
              type: enums_default2.ApplicationTag.TIMESTAMP,
              value: subEvtResult.value,
              len: subEvtResult.len + 2
            };
          } else {
            return void 0;
          }
        }
        const list = [];
        let tagResult = decodeTagNumberAndValue2(buffer, offset + len);
        let multipleValues = isOpeningTag2(buffer[offset + len]);
        while (len + offset <= maxOffset && !isClosingTag2(buffer[offset + len])) {
          let subResult = decodeTagNumberAndValue2(buffer, offset + len);
          if (!subResult) {
            return void 0;
          }
          if (subResult.value === 0) {
            len += subResult.len;
            result = bacappDecodeApplicationData2(
              buffer,
              offset + len,
              maxOffset,
              enums_default2.ASN1_MAX_OBJECT_TYPE,
              enums_default2.ASN1_MAX_PROPERTY_ID
            );
            if (!result) {
              return void 0;
            }
            list.push(result);
            len += result.len;
          } else {
            const overrideTagNumber = bacappContextTagType2(
              propertyId,
              subResult.tagNumber
            );
            if (overrideTagNumber !== enums_default2.ASN1_MAX_APPLICATION_TAG) {
              subResult.tagNumber = overrideTagNumber;
            }
            let bacappResult = bacappDecodeData2(
              buffer,
              offset + len + subResult.len,
              maxOffset,
              subResult.tagNumber,
              subResult.value
            );
            if (!bacappResult) {
              return void 0;
            }
            if (bacappResult.len === subResult.value) {
              let resObj = {
                value: bacappResult.value,
                type: bacappResult.type
              };
              if (bacappResult.encoding !== void 0)
                resObj.encoding = bacappResult.encoding;
              list.push(resObj);
              len += subResult.len + subResult.value;
            } else {
              list.push({
                value: buffer.slice(
                  offset + len + subResult.len,
                  offset + len + subResult.len + subResult.value
                ),
                type: enums_default2.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
              });
              len += subResult.len + subResult.value;
            }
          }
          if (multipleValues === false) {
            return {
              len,
              value: list[0],
              type: enums_default2.ApplicationTag.CONTEXT_SPECIFIC_DECODED
            };
          }
        }
        if (len + offset > maxOffset) {
          return void 0;
        }
        if (decodeIsClosingTagNumber2(buffer, offset + len, tagResult.tagNumber)) {
          len++;
        }
        return {
          len,
          value: list,
          type: enums_default2.ApplicationTag.CONTEXT_SPECIFIC_DECODED
        };
      }
      return void 0;
    };
    var bacappEncodeTimestamp2 = (buffer, value) => {
      switch (value.type) {
        case enums_default2.TimeStamp.TIME:
          encodeContextTime2(buffer, 0, value.value);
          break;
        case enums_default2.TimeStamp.SEQUENCE_NUMBER:
          encodeContextUnsigned2(buffer, 1, value.value);
          break;
        case enums_default2.TimeStamp.DATETIME:
          bacappEncodeContextDatetime2(buffer, 2, value.value);
          break;
        default:
          throw new Error("NOT_IMPLEMENTED");
      }
    };
    var bacappEncodeContextTimestamp2 = (buffer, tagNumber, value) => {
      encodeOpeningTag2(buffer, tagNumber);
      bacappEncodeTimestamp2(buffer, value);
      encodeClosingTag2(buffer, tagNumber);
    };
    var decodeContextCharacterString2 = (buffer, offset, maxLength, tagNumber) => {
      let len = 0;
      if (!decodeIsContextTag2(buffer, offset + len, tagNumber)) {
        return void 0;
      }
      const result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      const decodedValue = multiCharsetCharacterstringDecode2(
        buffer,
        offset + 1 + len,
        maxLength,
        buffer[offset + len],
        result.value - 1
      );
      if (!decodedValue) {
        return void 0;
      }
      len += result.value;
      return {
        len,
        value: decodedValue.value,
        encoding: decodedValue.encoding
      };
    };
    var decodeIsContextTagWithLength2 = (buffer, offset, tagNumber) => {
      const result = decodeTagNumber2(buffer, offset);
      return {
        len: result.len,
        value: isContextSpecific2(buffer[offset]) && result.tagNumber === tagNumber
      };
    };
    var decodeContextObjectId2 = (buffer, offset, tagNumber) => {
      const result = decodeIsContextTagWithLength2(buffer, offset, tagNumber);
      if (!result.value) {
        return void 0;
      }
      const decodedValue = decodeObjectId2(buffer, offset + result.len);
      decodedValue.len = decodedValue.len + result.len;
      return decodedValue;
    };
    var encodeBacnetCharacterString2 = (buffer, value, encoding) => {
      encoding = encoding || enums_default2.CharacterStringEncoding.UTF_8;
      buffer.buffer[buffer.offset++] = encoding;
      const bufEncoded = import_iconv_lite2.default.encode(value, getEncodingType2(encoding));
      buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
    };
    var encodeApplicationCharacterString2 = (buffer, value, encoding) => {
      const tmp = getBuffer2();
      encodeBacnetCharacterString2(tmp, value, encoding);
      encodeTag2(buffer, enums_default2.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
      buffer.offset += tmp.offset;
    };
    var encodeContextCharacterString2 = (buffer, tagNumber, value, encoding) => {
      const tmp = getBuffer2();
      encodeBacnetCharacterString2(tmp, value, encoding);
      encodeTag2(buffer, tagNumber, true, tmp.offset);
      tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
      buffer.offset += tmp.offset;
    };
    var encode33 = (buffer, objectId, propertyId, arrayIndex, values) => {
      encodeContextObjectId2(buffer, 0, objectId.type, objectId.instance);
      encodeContextEnumerated2(buffer, 1, propertyId);
      if (arrayIndex !== ASN1_ARRAY_ALL2) {
        encodeContextUnsigned2(buffer, 2, arrayIndex);
      }
      encodeOpeningTag2(buffer, 3);
      values.forEach((value) => {
        bacappEncodeApplicationData2(buffer, value);
      });
      encodeClosingTag2(buffer, 3);
    };
    var decode33 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      let value = {};
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      value.objectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.property = { id: decodedValue.value };
      if (len < apduLen && decodeIsContextTag2(buffer, offset + len, 2)) {
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.property.index = decodedValue.value;
      } else {
        value.property.index = ASN1_ARRAY_ALL2;
      }
      const values = [];
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 3)) {
        return void 0;
      }
      len++;
      while (apduLen - len > 1) {
        result = bacappDecodeApplicationData2(
          buffer,
          offset + len,
          apduLen + offset,
          value.objectId.type,
          value.property.id
        );
        if (!result) {
          return void 0;
        }
        len += result.len;
        delete result.len;
        values.push(result);
      }
      value.values = values;
      if (!decodeIsClosingTagNumber2(buffer, offset + len, 3)) {
        return void 0;
      }
      len++;
      value.len = len;
      return value;
    };
    var alarm_acknowledge_exports2 = {};
    __export2(alarm_acknowledge_exports2, {
      decode: () => decode210,
      encode: () => encode210
    });
    var encode210 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
      encodeContextUnsigned2(buffer, 0, ackProcessId);
      encodeContextObjectId2(
        buffer,
        1,
        eventObjectId.type,
        eventObjectId.instance
      );
      encodeContextEnumerated2(buffer, 2, eventStateAcknowledged);
      bacappEncodeContextTimestamp2(buffer, 3, eventTimeStamp);
      encodeContextCharacterString2(buffer, 4, ackSource);
      bacappEncodeContextTimestamp2(buffer, 5, ackTimeStamp);
    };
    var decode210 = (buffer, offset, apduLen) => {
      let len = 0;
      let value = {};
      let result;
      let decodedValue;
      let date;
      let time;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.acknowledgedProcessId = decodedValue.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      value.eventObjectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.eventStateAcknowledged = decodedValue.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber === 0) {
        decodedValue = decodeBacnetTime2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.eventTimeStamp = decodedValue.value;
      } else if (result.tagNumber === 1) {
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.eventTimeStamp = decodedValue.value;
      } else if (result.tagNumber === 2) {
        date = decodeApplicationDate2(buffer, offset + len);
        len += date.len;
        date = date.value.value;
        time = decodeApplicationTime2(buffer, offset + len);
        len += time.len;
        time = time.value.value;
        value.eventTimeStamp = new Date(
          date.getFullYear(),
          date.getMonth(),
          date.getDate(),
          time.getHours(),
          time.getMinutes(),
          time.getSeconds(),
          time.getMilliseconds()
        );
        len++;
      }
      len++;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeCharacterString2(
        buffer,
        offset + len,
        apduLen - (offset + len),
        result.value
      );
      value.acknowledgeSource = decodedValue.value;
      len += decodedValue.len;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber === 0) {
        decodedValue = decodeBacnetTime2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.acknowledgeTimeStamp = decodedValue.value;
      } else if (result.tagNumber === 1) {
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.acknowledgeTimeStamp = decodedValue.value;
      } else if (result.tagNumber === 2) {
        date = decodeApplicationDate2(buffer, offset + len);
        len += date.len;
        date = date.value.value;
        time = decodeApplicationTime2(buffer, offset + len);
        len += time.len;
        time = time.value.value;
        value.acknowledgeTimeStamp = new Date(
          date.getFullYear(),
          date.getMonth(),
          date.getDate(),
          time.getHours(),
          time.getMinutes(),
          time.getSeconds(),
          time.getMilliseconds()
        );
        len++;
      }
      len++;
      value.len = len;
      return value;
    };
    var alarm_summary_exports2 = {};
    __export2(alarm_summary_exports2, {
      decode: () => decode34,
      encode: () => encode34
    });
    var encode34 = (buffer, alarms) => {
      alarms.forEach((alarm) => {
        encodeContextObjectId2(
          buffer,
          12,
          alarm.objectId.type,
          alarm.objectId.instance
        );
        encodeContextEnumerated2(buffer, 9, alarm.alarmState);
        encodeContextBitstring2(buffer, 8, alarm.acknowledgedTransitions);
      });
    };
    var decode34 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      const alarms = [];
      while (apduLen - 3 - len > 0) {
        let value = {};
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeObjectId2(buffer, offset + len);
        len += decodedValue.len;
        value.objectId = {
          type: decodedValue.objectType,
          instance: decodedValue.instance
        };
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.alarmState = decodedValue.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeBitstring2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.acknowledgedTransitions = decodedValue.value;
        alarms.push(value);
      }
      return {
        len,
        alarms
      };
    };
    var atomic_read_file_exports2 = {};
    __export2(atomic_read_file_exports2, {
      decode: () => decode42,
      decodeAcknowledge: () => decodeAcknowledge8,
      encode: () => encode42,
      encodeAcknowledge: () => encodeAcknowledge9
    });
    var encode42 = (buffer, isStream, objectId, position, count) => {
      encodeApplicationObjectId2(buffer, objectId.type, objectId.instance);
      if (isStream) {
        encodeOpeningTag2(buffer, 0);
        encodeApplicationSigned2(buffer, position);
        encodeApplicationUnsigned2(buffer, count);
        encodeClosingTag2(buffer, 0);
      } else {
        encodeOpeningTag2(buffer, 1);
        encodeApplicationSigned2(buffer, position);
        encodeApplicationUnsigned2(buffer, count);
        encodeClosingTag2(buffer, 1);
      }
    };
    var decode42 = (buffer, offset) => {
      let len = 0;
      let result;
      let decodedValue;
      let isStream = true;
      let objectId = {};
      let position = -1;
      let count = 0;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 12) {
        return void 0;
      }
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
      if (decodeIsOpeningTagNumber2(buffer, offset + len, 0)) {
        isStream = true;
        len++;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 3) {
          return void 0;
        }
        decodedValue = decodeSigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        position = decodedValue.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 2) {
          return void 0;
        }
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        count = decodedValue.value;
        if (!decodeIsClosingTagNumber2(buffer, offset + len, 0)) {
          return void 0;
        }
        len++;
      } else if (decodeIsOpeningTagNumber2(buffer, offset + len, 1)) {
        isStream = false;
        len++;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 3) {
          return void 0;
        }
        decodedValue = decodeSigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        position = decodedValue.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 2) {
          return void 0;
        }
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        count = decodedValue.value;
        if (!decodeIsClosingTagNumber2(buffer, offset + len, 1)) {
          return void 0;
        }
        len++;
      } else {
        return void 0;
      }
      return {
        len,
        isStream,
        objectId,
        position,
        count
      };
    };
    var encodeAcknowledge9 = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
      encodeApplicationBoolean2(buffer, endOfFile);
      if (isStream) {
        encodeOpeningTag2(buffer, 0);
        encodeApplicationSigned2(buffer, position);
        encodeApplicationOctetString2(buffer, blocks[0], 0, counts[0]);
        encodeClosingTag2(buffer, 0);
      } else {
        encodeOpeningTag2(buffer, 1);
        encodeApplicationSigned2(buffer, position);
        encodeApplicationUnsigned2(buffer, blockCount);
        for (let i = 0; i < blockCount; i++) {
          encodeApplicationOctetString2(buffer, blocks[i], 0, counts[i]);
        }
        encodeClosingTag2(buffer, 1);
      }
    };
    var decodeAcknowledge8 = (buffer, offset, length = 0) => {
      let len = length;
      let result;
      let decodedValue;
      let endOfFile;
      let isStream;
      let position;
      let targetBuffer;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 1) {
        return void 0;
      }
      endOfFile = result.value > 0;
      if (decodeIsOpeningTagNumber2(buffer, offset + len, 0)) {
        isStream = true;
        len++;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 3) {
          return void 0;
        }
        decodedValue = decodeSigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        position = decodedValue.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 6) {
          return void 0;
        }
        targetBuffer = buffer.slice(offset + len, offset + len + result.value);
        len += result.value;
        if (!decodeIsClosingTagNumber2(buffer, offset + len, 0)) {
          return void 0;
        }
        len++;
      } else if (decodeIsOpeningTagNumber2(buffer, offset + len, 1)) {
        isStream = false;
        throw new Error("NotImplemented");
      } else {
        return void 0;
      }
      return {
        len,
        endOfFile,
        isStream,
        position,
        buffer: targetBuffer
      };
    };
    var atomic_write_file_exports2 = {};
    __export2(atomic_write_file_exports2, {
      decode: () => decode52,
      decodeAcknowledge: () => decodeAcknowledge22,
      encode: () => encode52,
      encodeAcknowledge: () => encodeAcknowledge22
    });
    var encode52 = (buffer, isStream, objectId, position, blocks) => {
      encodeApplicationObjectId2(buffer, objectId.type, objectId.instance);
      if (isStream) {
        encodeOpeningTag2(buffer, 0);
        encodeApplicationSigned2(buffer, position);
        encodeApplicationOctetString2(buffer, blocks[0], 0, blocks[0].length);
        encodeClosingTag2(buffer, 0);
      } else {
        encodeOpeningTag2(buffer, 1);
        encodeApplicationSigned2(buffer, position);
        encodeApplicationUnsigned2(buffer, blocks.length);
        for (let i = 0; i < blocks.length; i++) {
          encodeApplicationOctetString2(
            buffer,
            blocks[i],
            0,
            blocks[i].length
          );
        }
        encodeClosingTag2(buffer, 1);
      }
    };
    var decode52 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      let isStream;
      let position;
      let blocks = [];
      let blockCount;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 12) {
        return void 0;
      }
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      let objectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      if (decodeIsOpeningTagNumber2(buffer, offset + len, 0)) {
        isStream = true;
        len++;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 3) {
          return void 0;
        }
        decodedValue = decodeSigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        position = decodedValue.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 6) {
          return void 0;
        }
        decodedValue = decodeOctetString2(
          buffer,
          offset + len,
          apduLen,
          0,
          result.value
        );
        len += decodedValue.len;
        blocks.push(decodedValue.value);
        if (!decodeIsClosingTagNumber2(buffer, offset + len, 0)) {
          return void 0;
        }
        len++;
      } else if (decodeIsOpeningTagNumber2(buffer, offset + len, 1)) {
        isStream = false;
        len++;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 3) {
          return void 0;
        }
        decodedValue = decodeSigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        position = decodedValue.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 2) {
          return void 0;
        }
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        blockCount = decodedValue.value;
        for (let i = 0; i < blockCount; i++) {
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
          if (result.tagNumber !== 6) {
            return void 0;
          }
          decodedValue = decodeOctetString2(
            buffer,
            offset + len,
            apduLen,
            0,
            result.value
          );
          len += decodedValue.len;
          blocks.push(decodedValue.value);
        }
        if (!decodeIsClosingTagNumber2(buffer, offset + len, 1)) {
          return void 0;
        }
        len++;
      } else {
        return void 0;
      }
      return {
        len,
        isStream,
        objectId,
        position,
        blocks
      };
    };
    var encodeAcknowledge22 = (buffer, isStream, position) => {
      if (isStream) {
        encodeContextSigned2(buffer, 0, position);
      } else {
        encodeContextSigned2(buffer, 1, position);
      }
    };
    var decodeAcknowledge22 = (buffer, offset, length = 0) => {
      let len = length;
      let isStream = false;
      let position = 0;
      let decodedValue;
      const result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber === 0) {
        isStream = true;
      } else if (result.tagNumber === 1) {
        isStream = false;
      } else {
        return void 0;
      }
      decodedValue = decodeSigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      position = decodedValue.value;
      return {
        len,
        isStream,
        position
      };
    };
    var cov_notify_exports2 = {};
    __export2(cov_notify_exports2, {
      decode: () => decode62,
      encode: () => encode62
    });
    var encode62 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
      encodeContextUnsigned2(buffer, 0, subscriberProcessId);
      encodeContextObjectId2(
        buffer,
        1,
        8,
        initiatingDeviceId
      );
      encodeContextObjectId2(
        buffer,
        2,
        monitoredObjectId.type,
        monitoredObjectId.instance
      );
      encodeContextUnsigned2(buffer, 3, timeRemaining);
      encodeOpeningTag2(buffer, 4);
      values.forEach((value) => {
        encodeContextEnumerated2(buffer, 0, value.property.id);
        if (value.property.index === ASN1_ARRAY_ALL2) {
          encodeContextUnsigned2(buffer, 1, value.property.index);
        }
        encodeOpeningTag2(buffer, 2);
        value.value.forEach((v) => {
          bacappEncodeApplicationData2(buffer, v);
        });
        encodeClosingTag2(buffer, 2);
        if (value.priority === ASN1_NO_PRIORITY2) {
          encodeContextUnsigned2(buffer, 3, value.priority);
        }
      });
      encodeClosingTag2(buffer, 4);
    };
    var decode62 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      const subscriberProcessId = decodedValue.value;
      if (!decodeIsContextTag2(buffer, offset + len, 1)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      const initiatingDeviceId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      if (!decodeIsContextTag2(buffer, offset + len, 2)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      const monitoredObjectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      if (!decodeIsContextTag2(buffer, offset + len, 3)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      const timeRemaining = decodedValue.value;
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 4)) {
        return void 0;
      }
      len++;
      const values = [];
      while (apduLen - len > 1 && !decodeIsClosingTagNumber2(buffer, offset + len, 4)) {
        let newEntry = {};
        newEntry.property = {};
        if (!decodeIsContextTag2(buffer, offset + len, 0)) {
          return void 0;
        }
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
        len += decodedValue.len;
        newEntry.property.id = decodedValue.value;
        if (decodeIsContextTag2(buffer, offset + len, 1)) {
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
          len += decodedValue.len;
          newEntry.property.index = decodedValue.value;
        } else {
          newEntry.property.index = ASN1_ARRAY_ALL2;
        }
        if (!decodeIsOpeningTagNumber2(buffer, offset + len, 2)) {
          return void 0;
        }
        len++;
        const properties = [];
        while (apduLen - len > 1 && !decodeIsClosingTagNumber2(buffer, offset + len, 2)) {
          decodedValue = bacappDecodeApplicationData2(
            buffer,
            offset + len,
            apduLen + offset,
            monitoredObjectId.type,
            newEntry.property.id
          );
          if (!decodedValue) {
            return void 0;
          }
          len += decodedValue.len;
          delete decodedValue.len;
          properties.push(decodedValue);
        }
        newEntry.value = properties;
        len++;
        if (decodeIsContextTag2(buffer, offset + len, 3)) {
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
          len += decodedValue.len;
          newEntry.priority = decodedValue.value;
        } else {
          newEntry.priority = ASN1_NO_PRIORITY2;
        }
        values.push(newEntry);
      }
      return {
        len,
        subscriberProcessId,
        initiatingDeviceId,
        monitoredObjectId,
        timeRemaining,
        values
      };
    };
    var create_object_exports2 = {};
    __export2(create_object_exports2, {
      decode: () => decode72,
      encode: () => encode72,
      encodeAcknowledge: () => encodeAcknowledge32
    });
    var encode72 = (buffer, objectId, values) => {
      encodeOpeningTag2(buffer, 0);
      encodeContextObjectId2(buffer, 1, objectId.type, objectId.instance);
      encodeClosingTag2(buffer, 0);
      encodeOpeningTag2(buffer, 1);
      values.forEach((propertyValue) => {
        encodeContextEnumerated2(buffer, 0, propertyValue.property.id);
        if (propertyValue.property.index !== ASN1_ARRAY_ALL2) {
          encodeContextUnsigned2(buffer, 1, propertyValue.property.index);
        }
        encodeOpeningTag2(buffer, 2);
        propertyValue.value.forEach((value) => {
          bacappEncodeApplicationData2(buffer, value);
        });
        encodeClosingTag2(buffer, 2);
        if (propertyValue.priority !== ASN1_NO_PRIORITY2) {
          encodeContextUnsigned2(buffer, 3, propertyValue.priority);
        }
      });
      encodeClosingTag2(buffer, 1);
    };
    var decode72 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      let objectId;
      const valueList = [];
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber === 0 && apduLen > len) {
        apduLen -= len;
        if (apduLen < 4) {
          return void 0;
        }
        decodedValue = decodeContextObjectId2(buffer, offset + len, 1);
        len += decodedValue.len;
        objectId = {
          type: decodedValue.objectType,
          instance: decodedValue.instance
        };
      } else {
        return void 0;
      }
      if (decodeIsClosingTag2(buffer, offset + len)) {
        len++;
      }
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 1)) {
        return void 0;
      }
      len++;
      while (apduLen - len > 1) {
        let newEntry = {};
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 0) {
          return void 0;
        }
        decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
        len += decodedValue.len;
        let propertyId = decodedValue.value;
        let arraIndex = ASN1_ARRAY_ALL2;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber === 1) {
          decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
          len += decodedValue.len;
          arraIndex += decodedValue.value;
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
        }
        newEntry.property = { id: propertyId, index: arraIndex };
        if (result.tagNumber === 2 && decodeIsOpeningTag2(buffer, offset + len - 1)) {
          const values = [];
          while (!decodeIsClosingTag2(buffer, offset + len)) {
            decodedValue = bacappDecodeApplicationData2(
              buffer,
              offset + len,
              apduLen + offset,
              objectId.type,
              propertyId
            );
            if (!decodedValue) {
              return void 0;
            }
            len += decodedValue.len;
            delete decodedValue.len;
            values.push(decodedValue);
          }
          len++;
          newEntry.value = values;
        } else {
          return void 0;
        }
        valueList.push(newEntry);
      }
      if (!decodeIsClosingTagNumber2(buffer, offset + len, 1)) {
        return void 0;
      }
      len++;
      return {
        len,
        objectId,
        values: valueList
      };
    };
    var encodeAcknowledge32 = (buffer, objectId) => {
      encodeApplicationObjectId2(buffer, objectId.type, objectId.instance);
    };
    var delete_object_exports2 = {};
    __export2(delete_object_exports2, {
      decode: () => decode82,
      encode: () => encode82
    });
    var decode82 = (buffer, offset, apduLen) => {
      const result = decodeTagNumberAndValue2(buffer, offset);
      if (result.tagNumber !== 12) {
        return void 0;
      }
      let len = 1;
      const value = decodeObjectId2(buffer, offset + len);
      len += value.len;
      if (len !== apduLen) {
        return void 0;
      }
      value.len = len;
      return value;
    };
    var encode82 = (buffer, objectId) => {
      encodeApplicationObjectId2(buffer, objectId.type, objectId.instance);
    };
    var device_communication_control_exports2 = {};
    __export2(device_communication_control_exports2, {
      decode: () => decode92,
      encode: () => encode92
    });
    var encode92 = (buffer, timeDuration, enableDisable, password) => {
      if (timeDuration > 0) {
        encodeContextUnsigned2(buffer, 0, timeDuration);
      }
      encodeContextEnumerated2(buffer, 1, enableDisable);
      if (password && password !== "") {
        encodeContextCharacterString2(buffer, 2, password);
      }
    };
    var decode92 = (buffer, offset, apduLen) => {
      let len = 0;
      let value = {};
      let decodedValue;
      let result;
      if (decodeIsContextTag2(buffer, offset + len, 0)) {
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        value.timeDuration = decodedValue.value;
        len += decodedValue.len;
      }
      if (!decodeIsContextTag2(buffer, offset + len, 1)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      value.enableDisable = decodedValue.value;
      len += decodedValue.len;
      if (len < apduLen) {
        if (!decodeIsContextTag2(buffer, offset + len, 2)) {
          return void 0;
        }
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeCharacterString2(
          buffer,
          offset + len,
          apduLen - (offset + len),
          result.value
        );
        value.password = decodedValue.value;
        len += decodedValue.len;
      }
      value.len = len;
      return value;
    };
    var error_exports2 = {};
    __export2(error_exports2, {
      buildMessage: () => buildMessage2,
      decode: () => decode102,
      encode: () => encode102
    });
    var encode102 = (buffer, errorClass, errorCode) => {
      encodeApplicationEnumerated2(buffer, errorClass);
      encodeApplicationEnumerated2(buffer, errorCode);
    };
    var decode102 = (buffer, offset) => {
      const orgOffset = offset;
      let result;
      result = decodeTagNumberAndValue2(buffer, offset);
      offset += result.len;
      const errorClass = decodeEnumerated2(buffer, offset, result.value);
      offset += errorClass.len;
      result = decodeTagNumberAndValue2(buffer, offset);
      offset += result.len;
      const errorCode = decodeEnumerated2(buffer, offset, result.value);
      offset += errorClass.len;
      return {
        len: offset - orgOffset,
        class: errorClass.value,
        code: errorCode.value
      };
    };
    var buildMessage2 = function(result) {
      return "BacnetError Class: " + ErrorClassName2[result.class] + " (" + result.class + ") Code: " + ErrorCodeName2[result.code] + " (" + result.code + ")";
    };
    var event_information_exports2 = {};
    __export2(event_information_exports2, {
      decode: () => decode112,
      encode: () => encode112
    });
    var encode112 = (buffer, events, moreEvents) => {
      encodeOpeningTag2(buffer, 0);
      events.forEach((event) => {
        encodeContextObjectId2(
          buffer,
          0,
          event.objectId.type,
          event.objectId.instance
        );
        encodeContextEnumerated2(buffer, 1, event.eventState);
        encodeContextBitstring2(buffer, 2, event.acknowledgedTransitions);
        encodeOpeningTag2(buffer, 3);
        for (let i = 0; i < 3; i++) {
          encodeApplicationDate2(buffer, event.eventTimeStamps[i]);
          encodeApplicationTime2(buffer, event.eventTimeStamps[i]);
        }
        encodeClosingTag2(buffer, 3);
        encodeContextEnumerated2(buffer, 4, event.notifyType);
        encodeContextBitstring2(buffer, 5, event.eventEnable);
        encodeOpeningTag2(buffer, 6);
        for (let i = 0; i < 3; i++) {
          encodeApplicationUnsigned2(buffer, event.eventPriorities[i]);
        }
        encodeClosingTag2(buffer, 6);
      });
      encodeClosingTag2(buffer, 0);
      encodeContextBoolean2(buffer, 1, moreEvents);
    };
    var decode112 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      len++;
      const alarms = [];
      let moreEvents;
      while (apduLen - 3 - len > 0) {
        let value = {};
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeObjectId2(buffer, offset + len);
        len += decodedValue.len;
        value.objectId = {
          type: decodedValue.objectType,
          instance: decodedValue.instance
        };
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.eventState = decodedValue.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeBitstring2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.acknowledgedTransitions = decodedValue.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        value.eventTimeStamps = [];
        for (let i = 0; i < 3; i++) {
          if (result.tagNumber !== 0) {
            decodedValue = decodeApplicationDate2(buffer, offset + len);
            len += decodedValue.len;
            const date = decodedValue.value.value;
            decodedValue = decodeApplicationTime2(buffer, offset + len);
            len += decodedValue.len;
            const time = decodedValue.value.value;
            value.eventTimeStamps[i] = new Date(
              date.getFullYear(),
              date.getMonth(),
              date.getDate(),
              time.getHours(),
              time.getMinutes(),
              time.getSeconds(),
              time.getMilliseconds()
            );
          } else {
            len += result.value;
          }
        }
        len++;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.notifyType = decodedValue.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeBitstring2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.eventEnable = decodedValue.value;
        len++;
        value.eventPriorities = [];
        for (let i = 0; i < 3; i++) {
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.eventPriorities[i] = decodedValue.value;
        }
        len++;
        alarms.push(value);
      }
      moreEvents = buffer[apduLen - 1] === 1;
      return {
        len,
        alarms,
        moreEvents
      };
    };
    var event_notify_data_exports2 = {};
    __export2(event_notify_data_exports2, {
      decode: () => decode122,
      encode: () => encode122
    });
    var encode122 = (buffer, data) => {
      encodeContextUnsigned2(buffer, 0, data.processId);
      encodeContextObjectId2(
        buffer,
        1,
        data.initiatingObjectId.type,
        data.initiatingObjectId.instance
      );
      encodeContextObjectId2(
        buffer,
        2,
        data.eventObjectId.type,
        data.eventObjectId.instance
      );
      bacappEncodeContextTimestamp2(buffer, 3, data.timeStamp);
      encodeContextUnsigned2(buffer, 4, data.notificationClass);
      encodeContextUnsigned2(buffer, 5, data.priority);
      encodeContextEnumerated2(buffer, 6, data.eventType);
      if (data.messageText && data.messageText !== "") {
        encodeContextCharacterString2(buffer, 7, data.messageText);
      }
      encodeContextEnumerated2(buffer, 8, data.notifyType);
      switch (data.notifyType) {
        case 0:
        case 1:
          encodeContextBoolean2(buffer, 9, data.ackRequired);
          encodeContextEnumerated2(buffer, 10, data.fromState);
          break;
        default:
          break;
      }
      encodeContextEnumerated2(buffer, 11, data.toState);
      switch (data.notifyType) {
        case 0:
        case 1:
          encodeOpeningTag2(buffer, 12);
          switch (data.eventType) {
            case 0:
              encodeOpeningTag2(buffer, 0);
              encodeContextBitstring2(
                buffer,
                0,
                data.changeOfBitstringReferencedBitString
              );
              encodeContextBitstring2(
                buffer,
                1,
                data.changeOfBitstringStatusFlags
              );
              encodeClosingTag2(buffer, 0);
              break;
            case 1:
              encodeOpeningTag2(buffer, 1);
              encodeOpeningTag2(buffer, 0);
              bacappEncodePropertyState2(buffer, data.changeOfStateNewState);
              encodeClosingTag2(buffer, 0);
              encodeContextBitstring2(
                buffer,
                1,
                data.changeOfStateStatusFlags
              );
              encodeClosingTag2(buffer, 1);
              break;
            case 2:
              encodeOpeningTag2(buffer, 2);
              encodeOpeningTag2(buffer, 0);
              switch (data.changeOfValueTag) {
                case 0:
                  encodeContextReal2(
                    buffer,
                    1,
                    data.changeOfValueChangeValue
                  );
                  break;
                case 1:
                  encodeContextBitstring2(
                    buffer,
                    0,
                    data.changeOfValueChangedBits
                  );
                  break;
                default:
                  throw new Error("NotImplemented");
              }
              encodeClosingTag2(buffer, 0);
              encodeContextBitstring2(
                buffer,
                1,
                data.changeOfValueStatusFlags
              );
              encodeClosingTag2(buffer, 2);
              break;
            case 4:
              encodeOpeningTag2(buffer, 4);
              encodeContextReal2(buffer, 0, data.floatingLimitReferenceValue);
              encodeContextBitstring2(
                buffer,
                1,
                data.floatingLimitStatusFlags
              );
              encodeContextReal2(buffer, 2, data.floatingLimitSetPointValue);
              encodeContextReal2(buffer, 3, data.floatingLimitErrorLimit);
              encodeClosingTag2(buffer, 4);
              break;
            case 5:
              encodeOpeningTag2(buffer, 5);
              encodeContextReal2(buffer, 0, data.outOfRangeExceedingValue);
              encodeContextBitstring2(buffer, 1, data.outOfRangeStatusFlags);
              encodeContextReal2(buffer, 2, data.outOfRangeDeadband);
              encodeContextReal2(buffer, 3, data.outOfRangeExceededLimit);
              encodeClosingTag2(buffer, 5);
              break;
            case 8:
              encodeOpeningTag2(buffer, 8);
              encodeContextEnumerated2(
                buffer,
                0,
                data.changeOfLifeSafetyNewState
              );
              encodeContextEnumerated2(
                buffer,
                1,
                data.changeOfLifeSafetyNewMode
              );
              encodeContextBitstring2(
                buffer,
                2,
                data.changeOfLifeSafetyStatusFlags
              );
              encodeContextEnumerated2(
                buffer,
                3,
                data.changeOfLifeSafetyOperationExpected
              );
              encodeClosingTag2(buffer, 8);
              break;
            case 10:
              encodeOpeningTag2(buffer, 10);
              bacappEncodeContextDeviceObjPropertyRef2(
                buffer,
                0,
                data.bufferReadyBufferProperty
              );
              encodeContextUnsigned2(
                buffer,
                1,
                data.bufferReadyPreviousNotification
              );
              encodeContextUnsigned2(
                buffer,
                2,
                data.bufferReadyCurrentNotification
              );
              encodeClosingTag2(buffer, 10);
              break;
            case 11:
              encodeOpeningTag2(buffer, 11);
              encodeContextUnsigned2(
                buffer,
                0,
                data.unsignedRangeExceedingValue
              );
              encodeContextBitstring2(
                buffer,
                1,
                data.unsignedRangeStatusFlags
              );
              encodeContextUnsigned2(
                buffer,
                2,
                data.unsignedRangeExceededLimit
              );
              encodeClosingTag2(buffer, 11);
              break;
            case 9:
            case 3:
              throw new Error("NotImplemented");
            default:
              throw new Error("NotImplemented");
          }
          encodeClosingTag2(buffer, 12);
          break;
        case 2:
          throw new Error("NotImplemented");
        default:
          break;
      }
    };
    var decode122 = (buffer, offset) => {
      let len = 0;
      let result;
      let decodedValue;
      let eventData = {};
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      eventData.processId = decodedValue.value;
      if (!decodeIsContextTag2(buffer, offset + len, 1)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      eventData.initiatingObjectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      if (!decodeIsContextTag2(buffer, offset + len, 2)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      eventData.eventObjectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      if (!decodeIsContextTag2(buffer, offset + len, 3)) {
        return void 0;
      }
      len += 2;
      decodedValue = decodeApplicationDate2(buffer, offset + len);
      len += decodedValue.len;
      const date = decodedValue.value.value;
      decodedValue = decodeApplicationTime2(buffer, offset + len);
      len += decodedValue.len;
      const time = decodedValue.value.value;
      eventData.timeStamp = new Date(
        date.getFullYear(),
        date.getMonth(),
        date.getDate(),
        time.getHours(),
        time.getMinutes(),
        time.getSeconds(),
        time.getMilliseconds()
      );
      len += 2;
      if (!decodeIsContextTag2(buffer, offset + len, 4)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      eventData.notificationClass = decodedValue.value;
      if (!decodeIsContextTag2(buffer, offset + len, 5)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      eventData.priority = decodedValue.value;
      if (eventData.priority > 255) {
        return void 0;
      }
      if (!decodeIsContextTag2(buffer, offset + len, 6)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      eventData.eventType = decodedValue.value;
      if (decodeIsContextTag2(buffer, offset + len, 7)) {
        decodedValue = decodeContextCharacterString2(
          buffer,
          offset + len,
          2e4,
          7
        );
        len += decodedValue.len;
        eventData.messageText = decodedValue.value;
      }
      if (!decodeIsContextTag2(buffer, offset + len, 8)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      eventData.notifyType = decodedValue.value;
      switch (eventData.notifyType) {
        case 0:
        case 1:
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned2(buffer, offset + len, 1);
          len += decodedValue.len;
          eventData.ackRequired = decodedValue.value > 0;
          if (!decodeIsContextTag2(buffer, offset + len, 10)) {
            return void 0;
          }
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
          decodedValue = decodeEnumerated2(
            buffer,
            offset + len,
            result.value
          );
          len += decodedValue.len;
          eventData.fromState = decodedValue.value;
          break;
        default:
          break;
      }
      if (!decodeIsContextTag2(buffer, offset + len, 11)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      eventData.toState = decodedValue.value;
      eventData.len = len;
      return eventData;
    };
    var get_enrollment_summary_exports2 = {};
    __export2(get_enrollment_summary_exports2, {
      decode: () => decode132,
      decodeAcknowledge: () => decodeAcknowledge32,
      encode: () => encode132,
      encodeAcknowledge: () => encodeAcknowledge42
    });
    var encode132 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
      encodeContextEnumerated2(buffer, 0, acknowledgmentFilter);
      if (enrollmentFilter) {
        encodeOpeningTag2(buffer, 1);
        encodeOpeningTag2(buffer, 0);
        encodeContextObjectId2(
          buffer,
          0,
          enrollmentFilter.objectId.type,
          enrollmentFilter.objectId.instance
        );
        encodeClosingTag2(buffer, 0);
        encodeContextUnsigned2(buffer, 1, enrollmentFilter.processId);
        encodeClosingTag2(buffer, 1);
      }
      if (eventStateFilter) {
        encodeOpeningTag2(buffer, 2);
        encodeContextEnumerated2(buffer, 0, eventStateFilter);
        encodeClosingTag2(buffer, 2);
      }
      if (eventTypeFilter) {
        encodeOpeningTag2(buffer, 3);
        encodeContextEnumerated2(buffer, 0, eventTypeFilter);
        encodeClosingTag2(buffer, 3);
      }
      if (priorityFilter) {
        encodeOpeningTag2(buffer, 4);
        encodeContextUnsigned2(buffer, 0, priorityFilter.min);
        encodeContextUnsigned2(buffer, 1, priorityFilter.max);
        encodeClosingTag2(buffer, 4);
      }
      if (notificationClassFilter) {
        encodeOpeningTag2(buffer, 5);
        encodeContextUnsigned2(buffer, 0, notificationClassFilter);
        encodeClosingTag2(buffer, 5);
      }
    };
    var decode132 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      let value = {};
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.acknowledgmentFilter = decodedValue.value;
      if (decodeIsContextTag2(buffer, offset + len, 1)) {
        len++;
        value.enrollmentFilter = {};
        if (!decodeIsContextTag2(buffer, offset + len, 0)) {
          return void 0;
        }
        len++;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeObjectId2(buffer, offset + len);
        len += decodedValue.len;
        value.enrollmentFilter.objectId = {
          type: decodedValue.objectType,
          instance: decodedValue.instance
        };
        len++;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.enrollmentFilter.processId = decodedValue.value;
        len++;
      }
      if (decodeIsContextTag2(buffer, offset + len, 2)) {
        len++;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.eventStateFilter = decodedValue.value;
        len++;
      }
      if (decodeIsContextTag2(buffer, offset + len, 3)) {
        len++;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.eventTypeFilter = decodedValue.value;
        len++;
      }
      if (decodeIsContextTag2(buffer, offset + len, 4)) {
        len++;
        value.priorityFilter = {};
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.priorityFilter.min = decodedValue.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.priorityFilter.max = decodedValue.value;
        len++;
      }
      if (decodeIsContextTag2(buffer, offset + len, 5)) {
        len++;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.notificationClassFilter = decodedValue.value;
        len++;
      }
      value.len = len;
      return value;
    };
    var encodeAcknowledge42 = (buffer, enrollmentSummaries) => {
      enrollmentSummaries.forEach((enrollmentSummary) => {
        encodeApplicationObjectId2(
          buffer,
          enrollmentSummary.objectId.type,
          enrollmentSummary.objectId.instance
        );
        encodeApplicationEnumerated2(buffer, enrollmentSummary.eventType);
        encodeApplicationEnumerated2(buffer, enrollmentSummary.eventState);
        encodeApplicationUnsigned2(buffer, enrollmentSummary.priority);
        encodeApplicationUnsigned2(
          buffer,
          enrollmentSummary.notificationClass
        );
      });
    };
    var decodeAcknowledge32 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      const enrollmentSummaries = [];
      while (apduLen - len > 0) {
        const enrollmentSummary = {};
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 12) {
          return void 0;
        }
        result = decodeObjectId2(buffer, offset + len);
        len += result.len;
        enrollmentSummary.objectId = {
          type: result.objectType,
          instance: result.instance
        };
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 9) {
          return void 0;
        }
        result = decodeEnumerated2(buffer, offset + len, result.value);
        len += result.len;
        enrollmentSummary.eventType = result.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 9) {
          return void 0;
        }
        result = decodeEnumerated2(buffer, offset + len, result.value);
        len += result.len;
        enrollmentSummary.eventState = result.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 2) {
          return void 0;
        }
        result = decodeUnsigned2(buffer, offset + len, result.value);
        len += result.len;
        enrollmentSummary.priority = result.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 2) {
          return void 0;
        }
        result = decodeUnsigned2(buffer, offset + len, result.value);
        len += result.len;
        enrollmentSummary.notificationClass = result.value;
        enrollmentSummaries.push(enrollmentSummary);
      }
      return {
        enrollmentSummaries,
        len
      };
    };
    var get_event_information_exports2 = {};
    __export2(get_event_information_exports2, {
      decode: () => decode142,
      decodeAcknowledge: () => decodeAcknowledge42,
      encode: () => encode142,
      encodeAcknowledge: () => encodeAcknowledge52
    });
    var encode142 = (buffer, lastReceivedObjectId) => {
      encodeContextObjectId2(
        buffer,
        0,
        lastReceivedObjectId.type,
        lastReceivedObjectId.instance
      );
    };
    var decode142 = (buffer, offset) => {
      let len = 0;
      let result;
      let decodedValue;
      let value = {};
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      value.lastReceivedObjectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      value.len = len;
      return value;
    };
    var encodeAcknowledge52 = (buffer, events, moreEvents) => {
      encodeOpeningTag2(buffer, 0);
      events.forEach((eventData) => {
        encodeContextObjectId2(
          buffer,
          0,
          eventData.objectId.type,
          eventData.objectId.instance
        );
        encodeContextEnumerated2(buffer, 1, eventData.eventState);
        encodeContextBitstring2(buffer, 2, eventData.acknowledgedTransitions);
        encodeOpeningTag2(buffer, 3);
        for (let i = 0; i < 3; i++) {
          bacappEncodeTimestamp2(buffer, eventData.eventTimeStamps[i]);
        }
        encodeClosingTag2(buffer, 3);
        encodeContextEnumerated2(buffer, 4, eventData.notifyType);
        encodeContextBitstring2(buffer, 5, eventData.eventEnable);
        encodeOpeningTag2(buffer, 6);
        for (let i = 0; i < 3; i++) {
          encodeApplicationUnsigned2(buffer, eventData.eventPriorities[i]);
        }
        encodeClosingTag2(buffer, 6);
      });
      encodeClosingTag2(buffer, 0);
      encodeContextBoolean2(buffer, 1, moreEvents);
    };
    var decodeAcknowledge42 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      let value = {};
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      value.events = [];
      while (apduLen - len > 3) {
        let event = {};
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeObjectId2(buffer, offset + len);
        len += decodedValue.len;
        event.objectId = {
          type: decodedValue.objectType,
          instance: decodedValue.instance
        };
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
        len += decodedValue.len;
        event.eventState = decodedValue.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeBitstring2(buffer, offset + len, result.value);
        len += decodedValue.len;
        event.acknowledgedTransitions = decodedValue.value;
        if (!decodeIsOpeningTagNumber2(buffer, offset + len, 3)) {
          return void 0;
        }
        len++;
        event.eventTimeStamps = [];
        for (let i = 0; i < 3; i++) {
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
          if (result.tagNumber === 0) {
            decodedValue = decodeBacnetTime2(
              buffer,
              offset + len,
              result.value
            );
            len += decodedValue.len;
            event.eventTimeStamps[i] = {
              value: decodedValue.value,
              type: 0
              /* TIME */
            };
          } else if (result.tagNumber === 1) {
            decodedValue = decodeUnsigned2(
              buffer,
              offset + len,
              result.value
            );
            len += decodedValue.len;
            event.eventTimeStamps[i] = {
              value: decodedValue.value,
              type: 1
              /* SEQUENCE_NUMBER */
            };
          } else if (result.tagNumber === 2) {
            let date = decodeApplicationDate2(
              buffer,
              offset + len
            );
            len += date.len;
            date = date.value.value;
            let time = decodeApplicationTime2(
              buffer,
              offset + len
            );
            len += time.len;
            time = time.value.value;
            event.eventTimeStamps[i] = {
              value: new Date(
                date.getFullYear(),
                date.getMonth(),
                date.getDate(),
                time.getHours(),
                time.getMinutes(),
                time.getSeconds(),
                time.getMilliseconds()
              ),
              type: 2
              /* DATETIME */
            };
            len++;
          }
        }
        if (!decodeIsClosingTagNumber2(buffer, offset + len, 3)) {
          return void 0;
        }
        len++;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
        len += decodedValue.len;
        event.notifyType = decodedValue.value;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeBitstring2(buffer, offset + len, result.value);
        len += decodedValue.len;
        event.eventEnable = decodedValue.value;
        if (!decodeIsOpeningTagNumber2(buffer, offset + len, 6)) {
          return void 0;
        }
        len++;
        event.eventPriorities = [];
        for (let i = 0; i < 3; i++) {
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
          len += decodedValue.len;
          event.eventPriorities[i] = decodedValue.value;
        }
        if (!decodeIsClosingTagNumber2(buffer, offset + len, 6)) {
          return void 0;
        }
        len++;
        value.events.push(event);
      }
      if (!decodeIsClosingTagNumber2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      value.moreEvents = buffer[offset + len] > 0;
      len++;
      value.len = len;
      return value;
    };
    var i_am_exports2 = {};
    __export2(i_am_exports2, {
      decode: () => decode152,
      encode: () => encode152
    });
    var encode152 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
      encodeApplicationObjectId2(buffer, 8, deviceId);
      encodeApplicationUnsigned2(buffer, maxApdu);
      encodeApplicationEnumerated2(buffer, segmentation);
      encodeApplicationUnsigned2(buffer, vendorId);
    };
    var decode152 = (buffer, offset) => {
      let result;
      let apduLen = 0;
      const orgOffset = offset;
      result = decodeTagNumberAndValue2(buffer, offset + apduLen);
      apduLen += result.len;
      if (result.tagNumber !== 12) {
        return void 0;
      }
      result = decodeObjectId2(buffer, offset + apduLen);
      apduLen += result.len;
      if (result.objectType !== 8) {
        return void 0;
      }
      const deviceId = result.instance;
      result = decodeTagNumberAndValue2(buffer, offset + apduLen);
      apduLen += result.len;
      if (result.tagNumber !== 2) {
        return void 0;
      }
      result = decodeUnsigned2(buffer, offset + apduLen, result.value);
      apduLen += result.len;
      const maxApdu = result.value;
      result = decodeTagNumberAndValue2(buffer, offset + apduLen);
      apduLen += result.len;
      if (result.tagNumber !== 9) {
        return void 0;
      }
      result = decodeEnumerated2(buffer, offset + apduLen, result.value);
      apduLen += result.len;
      if (result.value > 3) {
        return void 0;
      }
      const segmentation = result.value;
      result = decodeTagNumberAndValue2(buffer, offset + apduLen);
      apduLen += result.len;
      if (result.tagNumber !== 2) {
        return void 0;
      }
      result = decodeUnsigned2(buffer, offset + apduLen, result.value);
      apduLen += result.len;
      if (result.value > 65535) {
        return void 0;
      }
      const vendorId = result.value;
      return {
        len: offset - orgOffset,
        deviceId,
        maxApdu,
        segmentation,
        vendorId
      };
    };
    var i_have_exports2 = {};
    __export2(i_have_exports2, {
      decode: () => decode162,
      encode: () => encode162
    });
    var encode162 = (buffer, deviceId, objectId, objectName) => {
      encodeApplicationObjectId2(buffer, deviceId.type, deviceId.instance);
      encodeApplicationObjectId2(buffer, objectId.type, objectId.instance);
      encodeApplicationCharacterString2(buffer, objectName);
    };
    var decode162 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      let value = {};
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      value.deviceId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      value.objectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeCharacterString2(
        buffer,
        offset + len,
        apduLen - (offset + len),
        result.value
      );
      len += decodedValue.len;
      value.objectName = decodedValue.value;
      value.len = len;
      return value;
    };
    var life_safety_operation_exports2 = {};
    __export2(life_safety_operation_exports2, {
      decode: () => decode172,
      encode: () => encode172
    });
    var encode172 = (buffer, processId, requestingSource, operation, targetObjectId) => {
      encodeContextUnsigned2(buffer, 0, processId);
      encodeContextCharacterString2(buffer, 1, requestingSource);
      encodeContextEnumerated2(buffer, 2, operation);
      encodeContextObjectId2(
        buffer,
        3,
        targetObjectId.type,
        targetObjectId.instance
      );
    };
    var decode172 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      let value = {};
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.processId = decodedValue.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeCharacterString2(
        buffer,
        offset + len,
        apduLen - (offset + len),
        result.value
      );
      len += decodedValue.len;
      value.requestingSource = decodedValue.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.operation = decodedValue.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      value.targetObjectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      value.len = len;
      return value;
    };
    var private_transfer_exports2 = {};
    __export2(private_transfer_exports2, {
      decode: () => decode182,
      encode: () => encode182
    });
    var encode182 = (buffer, vendorId, serviceNumber, data) => {
      encodeContextUnsigned2(buffer, 0, vendorId);
      encodeContextUnsigned2(buffer, 1, serviceNumber);
      encodeOpeningTag2(buffer, 2);
      for (let i = 0; i < data.length; i++) {
        buffer.buffer[buffer.offset++] = data[i];
      }
      encodeClosingTag2(buffer, 2);
    };
    var decode182 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      let value = {};
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.vendorId = decodedValue.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.serviceNumber = decodedValue.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      const size = apduLen - (offset + len + 1);
      const data = [];
      for (let i = 0; i < size; i++) {
        data.push(buffer[offset + len++]);
      }
      value.data = data;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      value.len = len;
      return value;
    };
    var read_property_exports2 = {};
    __export2(read_property_exports2, {
      decode: () => decode192,
      decodeAcknowledge: () => decodeAcknowledge52,
      encode: () => encode192,
      encodeAcknowledge: () => encodeAcknowledge62
    });
    var encode192 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
      if (objectType <= ASN1_MAX_OBJECT2) {
        encodeContextObjectId2(buffer, 0, objectType, objectInstance);
      }
      if (propertyId <= ASN1_MAX_PROPERTY_ID2) {
        encodeContextEnumerated2(buffer, 1, propertyId);
      }
      if (arrayIndex !== ASN1_ARRAY_ALL2) {
        encodeContextUnsigned2(
          buffer,
          2,
          arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL2
        );
      }
    };
    var decode192 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      if (apduLen < 7) {
        return void 0;
      }
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      let objectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      let property = {};
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 1) {
        return void 0;
      }
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      property.id = decodedValue.value;
      property.index = ASN1_ARRAY_ALL2;
      if (len < apduLen) {
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber === 2 && len < apduLen) {
          decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
          len += decodedValue.len;
          property.index = decodedValue.value;
        } else {
          return void 0;
        }
      }
      if (len < apduLen) {
        return void 0;
      }
      return {
        len,
        objectId,
        property
      };
    };
    var encodeAcknowledge62 = (buffer, objectId, propertyId, arrayIndex, values) => {
      encodeContextObjectId2(buffer, 0, objectId.type, objectId.instance);
      encodeContextEnumerated2(buffer, 1, propertyId);
      if (arrayIndex !== ASN1_ARRAY_ALL2) {
        encodeContextUnsigned2(buffer, 2, arrayIndex);
      }
      encodeOpeningTag2(buffer, 3);
      values.forEach((value) => {
        bacappEncodeApplicationData2(buffer, value);
      });
      encodeClosingTag2(buffer, 3);
    };
    var decodeAcknowledge52 = (buffer, offset, apduLen) => {
      let result;
      let decodedValue;
      let objectId = {};
      let property = {};
      if (!decodeIsContextTag2(buffer, offset, 0)) {
        return void 0;
      }
      let len = 1;
      result = decodeObjectId2(buffer, offset + len);
      len += result.len;
      objectId.type = result.objectType;
      objectId.instance = result.instance;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 1) {
        return void 0;
      }
      result = decodeEnumerated2(buffer, offset + len, result.value);
      len += result.len;
      property.id = result.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      if (result.tagNumber === 2) {
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        property.index = decodedValue.value;
      } else {
        property.index = ASN1_ARRAY_ALL2;
      }
      const values = [];
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 3)) {
        return void 0;
      }
      len++;
      while (apduLen - len > 1) {
        result = bacappDecodeApplicationData2(
          buffer,
          offset + len,
          apduLen + offset,
          objectId.type,
          property.id
        );
        if (!result) {
          return void 0;
        }
        len += result.len;
        delete result.len;
        values.push(result);
      }
      if (!decodeIsClosingTagNumber2(buffer, offset + len, 3)) {
        return void 0;
      }
      len++;
      return {
        len,
        objectId,
        property,
        values
      };
    };
    var read_property_multiple_exports2 = {};
    __export2(read_property_multiple_exports2, {
      decode: () => decode202,
      decodeAcknowledge: () => decodeAcknowledge62,
      encode: () => encode202,
      encodeAcknowledge: () => encodeAcknowledge72
    });
    var encode202 = (buffer, properties) => {
      properties.forEach((value) => {
        encodeReadAccessSpecification2(buffer, value);
      });
    };
    var decode202 = (buffer, offset, apduLen) => {
      let len = 0;
      const values = [];
      while (apduLen - len > 0) {
        const decodedValue = decodeReadAccessSpecification2(
          buffer,
          offset + len,
          apduLen - len
        );
        if (!decodedValue) {
          return void 0;
        }
        len += decodedValue.len;
        values.push(decodedValue.value);
      }
      return {
        len,
        properties: values
      };
    };
    var encodeAcknowledge72 = (buffer, values) => {
      values.forEach((value) => {
        encodeReadAccessResult2(buffer, value);
      });
    };
    var decodeAcknowledge62 = (buffer, offset, apduLen) => {
      let len = 0;
      const values = [];
      while (apduLen - len > 0) {
        const result = decodeReadAccessResult2(
          buffer,
          offset + len,
          apduLen - len
        );
        if (!result || result === -1) {
          return void 0;
        }
        len += result.len;
        values.push(result.value);
      }
      return {
        len,
        values
      };
    };
    var read_range_exports2 = {};
    __export2(read_range_exports2, {
      decode: () => decode212,
      decodeAcknowledge: () => decodeAcknowledge72,
      encode: () => encode212,
      encodeAcknowledge: () => encodeAcknowledge82
    });
    var encode212 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
      encodeContextObjectId2(buffer, 0, objectId.type, objectId.instance);
      encodeContextEnumerated2(buffer, 1, propertyId);
      if (arrayIndex !== ASN1_ARRAY_ALL2) {
        encodeContextUnsigned2(buffer, 2, arrayIndex);
      }
      switch (requestType) {
        case 0:
          encodeOpeningTag2(buffer, 3);
          encodeApplicationUnsigned2(buffer, position);
          encodeApplicationSigned2(buffer, count);
          encodeClosingTag2(buffer, 3);
          break;
        case 1:
          encodeOpeningTag2(buffer, 6);
          encodeApplicationUnsigned2(buffer, position);
          encodeApplicationSigned2(buffer, count);
          encodeClosingTag2(buffer, 6);
          break;
        case 2:
          encodeOpeningTag2(buffer, 7);
          encodeApplicationDate2(buffer, time);
          encodeApplicationTime2(buffer, time);
          encodeApplicationSigned2(buffer, count);
          encodeClosingTag2(buffer, 7);
          break;
        default:
          break;
      }
    };
    var decode212 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      let requestType;
      let position;
      let time;
      let count;
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      decodedValue = decodeObjectId2(buffer, offset + len, 0);
      len += decodedValue.len;
      let objectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      let property = {};
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 1) {
        return void 0;
      }
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      property.id = decodedValue.value;
      if (len < apduLen && decodeIsContextTag2(buffer, offset + len, 2)) {
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        property.index = decodedValue.value;
      } else {
        property.index = ASN1_ARRAY_ALL2;
      }
      if (len < apduLen) {
        result = decodeTagNumber2(buffer, offset + len);
        len += result.len;
        switch (result.tagNumber) {
          case 3:
            requestType = 0;
            result = decodeTagNumberAndValue2(buffer, offset + len);
            len += result.len;
            decodedValue = decodeUnsigned2(
              buffer,
              offset + len,
              result.value
            );
            len += decodedValue.len;
            position = decodedValue.value;
            result = decodeTagNumberAndValue2(buffer, offset + len);
            len += result.len;
            decodedValue = decodeSigned2(buffer, offset + len, result.value);
            len += decodedValue.len;
            count = decodedValue.value;
            break;
          case 6:
            requestType = 1;
            result = decodeTagNumberAndValue2(buffer, offset + len);
            len += result.len;
            decodedValue = decodeUnsigned2(
              buffer,
              offset + len,
              result.value
            );
            len += decodedValue.len;
            position = decodedValue.value;
            result = decodeTagNumberAndValue2(buffer, offset + len);
            len += result.len;
            decodedValue = decodeSigned2(buffer, offset + len, result.value);
            len += decodedValue.len;
            count = decodedValue.value;
            break;
          case 7:
            requestType = 2;
            decodedValue = decodeApplicationDate2(buffer, offset + len);
            len += decodedValue.len;
            const tmpDate = decodedValue.value.value;
            decodedValue = decodeApplicationTime2(buffer, offset + len);
            len += decodedValue.len;
            const tmpTime = decodedValue.value.value;
            time = new Date(
              tmpDate.getYear(),
              tmpDate.getMonth(),
              tmpDate.getDate(),
              tmpTime.getHours(),
              tmpTime.getMinutes(),
              tmpTime.getSeconds(),
              tmpTime.getMilliseconds()
            );
            result = decodeTagNumberAndValue2(buffer, offset + len);
            len += result.len;
            decodedValue = decodeSigned2(buffer, offset + len, result.value);
            len += decodedValue.len;
            count = decodedValue.value;
            break;
          default:
            return void 0;
        }
        result = decodeTagNumber2(buffer, offset + len);
        len += result.len;
      }
      return {
        len,
        objectId,
        property,
        requestType,
        position,
        time,
        count
      };
    };
    var encodeAcknowledge82 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
      encodeContextObjectId2(buffer, 0, objectId.type, objectId.instance);
      encodeContextEnumerated2(buffer, 1, propertyId);
      if (arrayIndex !== ASN1_ARRAY_ALL2) {
        encodeContextUnsigned2(buffer, 2, arrayIndex);
      }
      encodeContextBitstring2(buffer, 3, resultFlags);
      encodeContextUnsigned2(buffer, 4, itemCount);
      encodeOpeningTag2(buffer, 5);
      if (itemCount !== 0) {
        applicationData.copy(
          buffer.buffer,
          buffer.offset,
          0,
          applicationData.length
        );
        buffer.offset += applicationData.length;
      }
      encodeClosingTag2(buffer, 5);
      if (itemCount !== 0 && requestType && requestType !== 0) {
        encodeContextUnsigned2(buffer, 6, firstSequence);
      }
    };
    var decodeAcknowledge72 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      const objectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      const property = { index: ASN1_ARRAY_ALL2 };
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 1) {
        return void 0;
      }
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      property.id = decodedValue.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      if (result.tagNumber === 2 && len < apduLen) {
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        property.index = decodedValue.value;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeBitstring2(buffer, offset + len, result.value);
      len += decodedValue.len;
      const resultFlag = decodedValue.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      const itemCount = decodedValue.value;
      if (!decodeIsOpeningTag2(buffer, offset + len)) {
        return void 0;
      }
      len++;
      const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
      return {
        objectId,
        property,
        resultFlag,
        itemCount,
        rangeBuffer,
        len
      };
    };
    var register_foreign_device_exports2 = {};
    __export2(register_foreign_device_exports2, {
      decode: () => decode222,
      encode: () => encode222
    });
    var encode222 = (buffer, ttl, length = 2) => {
      encodeUnsigned2(buffer, ttl, length);
    };
    var decode222 = (buffer, offset, length = 2) => {
      let len = 0;
      let result = decodeUnsigned2(buffer, offset + len, length);
      len += result.len;
      return {
        len,
        ttl: result.value
      };
    };
    var reinitialize_device_exports2 = {};
    __export2(reinitialize_device_exports2, {
      decode: () => decode232,
      encode: () => encode232
    });
    var encode232 = (buffer, state, password) => {
      encodeContextEnumerated2(buffer, 0, state);
      if (password && password !== "") {
        encodeContextCharacterString2(buffer, 1, password);
      }
    };
    var decode232 = (buffer, offset, apduLen) => {
      let len = 0;
      let value = {};
      let result;
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      let decodedValue = decodeEnumerated2(
        buffer,
        offset + len,
        result.value
      );
      value.state = decodedValue.value;
      len += decodedValue.len;
      if (len < apduLen) {
        if (!decodeIsContextTag2(buffer, offset + len, 1)) {
          return void 0;
        }
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeCharacterString2(
          buffer,
          offset + len,
          apduLen - (offset + len),
          result.value
        );
        value.password = decodedValue.value;
        len += decodedValue.len;
      }
      value.len = len;
      return value;
    };
    var subscribe_cov_exports2 = {};
    __export2(subscribe_cov_exports2, {
      decode: () => decode242,
      encode: () => encode242
    });
    var encode242 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
      encodeContextUnsigned2(buffer, 0, subscriberProcessId);
      encodeContextObjectId2(
        buffer,
        1,
        monitoredObjectId.type,
        monitoredObjectId.instance
      );
      if (!cancellationRequest) {
        encodeContextBoolean2(buffer, 2, issueConfirmedNotifications);
        encodeContextUnsigned2(buffer, 3, lifetime);
      }
    };
    var decode242 = (buffer, offset, apduLen) => {
      let len = 0;
      let value = {};
      let result;
      let decodedValue;
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.subscriberProcessId = decodedValue.value;
      if (!decodeIsContextTag2(buffer, offset + len, 1)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      value.monitoredObjectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      value.cancellationRequest = true;
      if (len < apduLen) {
        value.issueConfirmedNotifications = false;
        if (decodeIsContextTag2(buffer, offset + len, 2)) {
          value.cancellationRequest = false;
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
          value.issueConfirmedNotifications = buffer[offset + len] > 0;
          len++;
        }
        value.lifetime = 0;
        if (decodeIsContextTag2(buffer, offset + len, 3)) {
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
          decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
          len += decodedValue.len;
          value.lifetime = decodedValue.value;
        }
      }
      value.len = len;
      return value;
    };
    var subscribe_property_exports2 = {};
    __export2(subscribe_property_exports2, {
      decode: () => decode252,
      encode: () => encode252
    });
    var encode252 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
      encodeContextUnsigned2(buffer, 0, subscriberProcessId);
      encodeContextObjectId2(
        buffer,
        1,
        monitoredObjectId.type,
        monitoredObjectId.instance
      );
      if (!cancellationRequest) {
        encodeContextBoolean2(buffer, 2, issueConfirmedNotifications);
        encodeContextUnsigned2(buffer, 3, lifetime);
      }
      encodeOpeningTag2(buffer, 4);
      encodeContextEnumerated2(buffer, 0, monitoredProperty.id);
      if (monitoredProperty.index !== ASN1_ARRAY_ALL2) {
        encodeContextUnsigned2(buffer, 1, monitoredProperty.index);
      }
      encodeClosingTag2(buffer, 4);
      if (covIncrementPresent) {
        encodeContextReal2(buffer, 5, covIncrement);
      }
    };
    var decode252 = (buffer, offset) => {
      let len = 0;
      let value = {};
      let result;
      let decodedValue;
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.subscriberProcessId = decodedValue.value;
      if (!decodeIsContextTag2(buffer, offset + len, 1)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      value.monitoredObjectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      value.cancellationRequest = true;
      value.issueConfirmedNotifications = false;
      if (decodeIsContextTag2(buffer, offset + len, 2)) {
        value.cancellationRequest = false;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        value.issueConfirmedNotifications = buffer[offset + len] > 0;
        len++;
      }
      value.lifetime = 0;
      if (decodeIsContextTag2(buffer, offset + len, 3)) {
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.lifetime = decodedValue.value;
      }
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 4)) {
        return void 0;
      }
      len++;
      value.monitoredProperty = {};
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.monitoredProperty.id = decodedValue.value;
      value.monitoredProperty.index = ASN1_ARRAY_ALL2;
      if (decodeIsContextTag2(buffer, offset + len, 1)) {
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.monitoredProperty.index = decodedValue.value;
      }
      if (!decodeIsClosingTagNumber2(buffer, offset + len, 4)) {
        return void 0;
      }
      len++;
      value.covIncrement = 0;
      if (decodeIsContextTag2(buffer, offset + len, 5)) {
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        decodedValue = decodeReal2(buffer, offset + len);
        len += decodedValue.len;
        value.covIncrement = decodedValue.value;
      }
      value.len = len;
      return value;
    };
    var time_sync_exports2 = {};
    __export2(time_sync_exports2, {
      decode: () => decode262,
      encode: () => encode262
    });
    var encode262 = (buffer, time) => {
      encodeApplicationDate2(buffer, time);
      encodeApplicationTime2(buffer, time);
    };
    var decode262 = (buffer, offset, length) => {
      let len = 0;
      let result;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 10) {
        return void 0;
      }
      const date = decodeDate2(buffer, offset + len);
      len += date.len;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 11) {
        return void 0;
      }
      const time = decodeBacnetTime2(buffer, offset + len);
      len += time.len;
      return {
        len,
        value: new Date(
          date.value.getFullYear(),
          date.value.getMonth(),
          date.value.getDate(),
          time.value.getHours(),
          time.value.getMinutes(),
          time.value.getSeconds(),
          time.value.getMilliseconds()
        )
      };
    };
    var who_has_exports2 = {};
    __export2(who_has_exports2, {
      decode: () => decode272,
      encode: () => encode272
    });
    var encode272 = (buffer, lowLimit, highLimit, objectId, objectName) => {
      if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE2 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE2) {
        encodeContextUnsigned2(buffer, 0, lowLimit);
        encodeContextUnsigned2(buffer, 1, highLimit);
      }
      if (objectName && objectName !== "") {
        encodeContextCharacterString2(buffer, 3, objectName);
      } else {
        encodeContextObjectId2(buffer, 2, objectId.type, objectId.instance);
      }
    };
    var decode272 = (buffer, offset, apduLen) => {
      let len = 0;
      let value = {};
      let decodedValue;
      let result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber === 0) {
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        if (decodedValue.value <= ASN1_MAX_INSTANCE2) {
          value.lowLimit = decodedValue.value;
        }
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
      }
      if (result.tagNumber === 1) {
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        if (decodedValue.value <= ASN1_MAX_INSTANCE2) {
          value.highLimit = decodedValue.value;
        }
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
      }
      if (result.tagNumber === 2) {
        decodedValue = decodeObjectId2(buffer, offset + len);
        len += decodedValue.len;
        value.objectId = {
          type: decodedValue.objectType,
          instance: decodedValue.instance
        };
      }
      if (result.tagNumber === 3) {
        decodedValue = decodeCharacterString2(
          buffer,
          offset + len,
          apduLen - (offset + len),
          result.value
        );
        len += decodedValue.len;
        value.objectName = decodedValue.value;
      }
      value.len = len;
      return value;
    };
    var who_is_exports2 = {};
    __export2(who_is_exports2, {
      decode: () => decode282,
      encode: () => encode282
    });
    var encode282 = (buffer, lowLimit, highLimit) => {
      if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE2 && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE2) {
        encodeContextUnsigned2(buffer, 0, lowLimit);
        encodeContextUnsigned2(buffer, 1, highLimit);
      }
    };
    var decode282 = (buffer, offset, apduLen) => {
      let len = 0;
      let value = {};
      if (apduLen <= 0) {
        return {};
      }
      let result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 0) {
        return void 0;
      }
      if (apduLen <= len) {
        return void 0;
      }
      let decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      if (decodedValue.value <= ASN1_MAX_INSTANCE2) {
        value.lowLimit = decodedValue.value;
      }
      if (apduLen <= len) {
        return void 0;
      }
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 1) {
        return void 0;
      }
      if (apduLen <= len) {
        return void 0;
      }
      decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
      len += decodedValue.len;
      if (decodedValue.value <= ASN1_MAX_INSTANCE2) {
        value.highLimit = decodedValue.value;
      }
      value.len = len;
      return value;
    };
    var write_property_exports2 = {};
    __export2(write_property_exports2, {
      decode: () => decode292,
      encode: () => encode292
    });
    var encode292 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
      encodeContextObjectId2(buffer, 0, objectType, objectInstance);
      encodeContextEnumerated2(buffer, 1, propertyId);
      if (arrayIndex !== ASN1_ARRAY_ALL2) {
        encodeContextUnsigned2(buffer, 2, arrayIndex);
      }
      encodeOpeningTag2(buffer, 3);
      values.forEach((value) => {
        bacappEncodeApplicationData2(buffer, value);
      });
      encodeClosingTag2(buffer, 3);
      if (priority !== ASN1_NO_PRIORITY2) {
        encodeContextUnsigned2(buffer, 4, priority);
      }
    };
    var decode292 = (buffer, offset, apduLen) => {
      let len = 0;
      let value = {
        property: {}
      };
      let decodedValue;
      let result;
      if (!decodeIsContextTag2(buffer, offset + len, 0)) {
        return void 0;
      }
      len++;
      decodedValue = decodeObjectId2(buffer, offset + len);
      let objectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      len += decodedValue.len;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 1) {
        return void 0;
      }
      decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.property.id = decodedValue.value;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      if (result.tagNumber === 2) {
        len += result.len;
        decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
        len += decodedValue.len;
        value.property.index = decodedValue.value;
      } else {
        value.property.index = ASN1_ARRAY_ALL2;
      }
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 3)) {
        return void 0;
      }
      len++;
      const values = [];
      while (apduLen - len > 1 && !decodeIsClosingTagNumber2(buffer, offset + len, 3)) {
        decodedValue = bacappDecodeApplicationData2(
          buffer,
          offset + len,
          apduLen + offset,
          objectId.type,
          value.property.id
        );
        if (!decodedValue) {
          return void 0;
        }
        len += decodedValue.len;
        delete decodedValue.len;
        values.push(decodedValue);
      }
      value.value = values;
      if (!decodeIsClosingTagNumber2(buffer, offset + len, 3)) {
        return void 0;
      }
      len++;
      value.priority = ASN1_MAX_PRIORITY2;
      if (len < apduLen) {
        result = decodeTagNumberAndValue2(buffer, offset + len);
        if (result.tagNumber === 4) {
          len += result.len;
          decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
          len += decodedValue;
          if (decodedValue.value >= ASN1_MIN_PRIORITY2 && decodedValue.value <= ASN1_MAX_PRIORITY2) {
            value.priority = decodedValue.value;
          } else {
            return void 0;
          }
        }
      }
      return {
        len,
        objectId,
        value
      };
    };
    var write_property_multiple_exports2 = {};
    __export2(write_property_multiple_exports2, {
      decode: () => decode302,
      encode: () => encode302,
      encodeObject: () => encodeObject2
    });
    var encode302 = (buffer, objectId, values) => {
      encodeContextObjectId2(buffer, 0, objectId.type, objectId.instance);
      encodeOpeningTag2(buffer, 1);
      values.forEach((pValue) => {
        encodeContextEnumerated2(buffer, 0, pValue.property.id);
        if (pValue.property.index !== ASN1_ARRAY_ALL2) {
          encodeContextUnsigned2(buffer, 1, pValue.property.index);
        }
        encodeOpeningTag2(buffer, 2);
        pValue.value.forEach((value) => {
          bacappEncodeApplicationData2(buffer, value);
        });
        encodeClosingTag2(buffer, 2);
        if (pValue.priority !== ASN1_NO_PRIORITY2) {
          encodeContextUnsigned2(buffer, 3, pValue.priority);
        }
      });
      encodeClosingTag2(buffer, 1);
    };
    var decode302 = (buffer, offset, apduLen) => {
      let len = 0;
      let result;
      let decodedValue;
      let objectId;
      result = decodeTagNumberAndValue2(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 0 || apduLen <= len) {
        return void 0;
      }
      apduLen -= len;
      if (apduLen < 4) {
        return void 0;
      }
      decodedValue = decodeObjectId2(buffer, offset + len);
      len += decodedValue.len;
      objectId = {
        type: decodedValue.objectType,
        instance: decodedValue.instance
      };
      if (!decodeIsOpeningTagNumber2(buffer, offset + len, 1)) {
        return void 0;
      }
      len++;
      const _values = [];
      while (apduLen - len > 1) {
        let newEntry = {};
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber !== 0) {
          return void 0;
        }
        decodedValue = decodeEnumerated2(buffer, offset + len, result.value);
        len += decodedValue.len;
        let propertyId = decodedValue.value;
        let arrayIndex = ASN1_ARRAY_ALL2;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber === 1) {
          decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
          len += decodedValue.len;
          arrayIndex = decodedValue.value;
          result = decodeTagNumberAndValue2(buffer, offset + len);
          len += result.len;
        }
        newEntry.property = { id: propertyId, index: arrayIndex };
        if (result.tagNumber !== 2 || !decodeIsOpeningTag2(buffer, offset + len - 1)) {
          return void 0;
        }
        const values = [];
        while (len + offset <= buffer.length && !decodeIsClosingTag2(buffer, offset + len)) {
          let value = bacappDecodeApplicationData2(
            buffer,
            offset + len,
            apduLen + offset,
            objectId.type,
            propertyId
          );
          if (!value) {
            return void 0;
          }
          len += value.len;
          delete value.len;
          values.push(value);
        }
        len++;
        newEntry.value = values;
        let priority = ASN1_NO_PRIORITY2;
        result = decodeTagNumberAndValue2(buffer, offset + len);
        len += result.len;
        if (result.tagNumber === 3) {
          decodedValue = decodeUnsigned2(buffer, offset + len, result.value);
          len += decodedValue.len;
          priority = decodedValue.value;
        } else {
          len--;
        }
        newEntry.priority = priority;
        _values.push(newEntry);
        if (decodeIsClosingTagNumber2(buffer, offset + len, 1)) {
          len++;
        }
      }
      if (decodeIsClosingTagNumber2(buffer, offset + len, 1)) {
        len++;
      }
      return {
        len,
        objectId,
        values: _values
      };
    };
    var encodeObject2 = (buffer, values) => {
      values.forEach((object) => {
        encode302(buffer, object.objectId, object.values);
      });
    };
    var getDecodedType2 = (buffer, offset) => {
      return buffer[offset];
    };
    var encodeConfirmedServiceRequest2 = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
      buffer.buffer[buffer.offset++] = type;
      buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
      buffer.buffer[buffer.offset++] = invokeId;
      if ((type & 8) > 0) {
        buffer.buffer[buffer.offset++] = sequencenumber;
        buffer.buffer[buffer.offset++] = proposedWindowSize;
      }
      buffer.buffer[buffer.offset++] = service;
    };
    var decodeConfirmedServiceRequest2 = (buffer, offset) => {
      const orgOffset = offset;
      const type = buffer[offset++];
      const maxSegments = buffer[offset] & 240;
      const maxApdu = buffer[offset++] & 15;
      const invokeId = buffer[offset++];
      let sequencenumber = 0;
      let proposedWindowNumber = 0;
      if ((type & 8) > 0) {
        sequencenumber = buffer[offset++];
        proposedWindowNumber = buffer[offset++];
      }
      const service = buffer[offset++];
      return {
        len: offset - orgOffset,
        type,
        service,
        maxSegments,
        maxApdu,
        invokeId,
        sequencenumber,
        proposedWindowNumber
      };
    };
    var encodeUnconfirmedServiceRequest2 = (buffer, type, service) => {
      buffer.buffer[buffer.offset++] = type;
      buffer.buffer[buffer.offset++] = service;
    };
    var decodeUnconfirmedServiceRequest2 = (buffer, offset) => {
      const orgOffset = offset;
      const type = buffer[offset++];
      const service = buffer[offset++];
      return {
        len: offset - orgOffset,
        type,
        service
      };
    };
    var encodeSimpleAck2 = (buffer, type, service, invokeId) => {
      buffer.buffer[buffer.offset++] = type;
      buffer.buffer[buffer.offset++] = invokeId;
      buffer.buffer[buffer.offset++] = service;
    };
    var decodeSimpleAck2 = (buffer, offset) => {
      const orgOffset = offset;
      const type = buffer[offset++];
      const invokeId = buffer[offset++];
      const service = buffer[offset++];
      return {
        len: offset - orgOffset,
        type,
        service,
        invokeId
      };
    };
    var encodeComplexAck2 = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
      let len = 3;
      buffer.buffer[buffer.offset++] = type;
      buffer.buffer[buffer.offset++] = invokeId;
      if ((type & 8) > 0) {
        buffer.buffer[buffer.offset++] = sequencenumber;
        buffer.buffer[buffer.offset++] = proposedWindowNumber;
        len += 2;
      }
      buffer.buffer[buffer.offset++] = service;
      return len;
    };
    var decodeComplexAck2 = (buffer, offset) => {
      const orgOffset = offset;
      const type = buffer[offset++];
      const invokeId = buffer[offset++];
      let sequencenumber = 0;
      let proposedWindowNumber = 0;
      if ((type & 8) > 0) {
        sequencenumber = buffer[offset++];
        proposedWindowNumber = buffer[offset++];
      }
      const service = buffer[offset++];
      return {
        len: offset - orgOffset,
        type,
        service,
        invokeId,
        sequencenumber,
        proposedWindowNumber
      };
    };
    var encodeSegmentAck2 = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
      buffer.buffer[buffer.offset++] = type;
      buffer.buffer[buffer.offset++] = originalInvokeId;
      buffer.buffer[buffer.offset++] = sequencenumber;
      buffer.buffer[buffer.offset++] = actualWindowSize;
    };
    var decodeSegmentAck2 = (buffer, offset) => {
      const orgOffset = offset;
      const type = buffer[offset++];
      const originalInvokeId = buffer[offset++];
      const sequencenumber = buffer[offset++];
      const actualWindowSize = buffer[offset++];
      return {
        len: offset - orgOffset,
        type,
        originalInvokeId,
        sequencenumber,
        actualWindowSize
      };
    };
    var encodeResult2 = (buffer, resultCode) => {
      encodeUnsigned2(buffer, resultCode, 2);
    };
    var encodeError2 = (buffer, type, service, invokeId) => {
      buffer.buffer[buffer.offset++] = type;
      buffer.buffer[buffer.offset++] = invokeId;
      buffer.buffer[buffer.offset++] = service;
    };
    var decodeError2 = (buffer, offset) => {
      const orgOffset = offset;
      const type = buffer[offset++];
      const invokeId = buffer[offset++];
      const service = buffer[offset++];
      return {
        len: offset - orgOffset,
        type,
        service,
        invokeId
      };
    };
    var decodeAbort2 = (buffer, offset) => {
      const orgOffset = offset;
      const type = buffer[offset++];
      const invokeId = buffer[offset++];
      const reason = buffer[offset++];
      return {
        len: offset - orgOffset,
        type,
        invokeId,
        reason
      };
    };
    var DEFAULT_HOP_COUNT3 = 255;
    var BACNET_PROTOCOL_VERSION2 = 1;
    var BACNET_ADDRESS_TYPES2 = {
      NONE: 0,
      IP: 1
    };
    var decodeTarget2 = (buffer, offset) => {
      let len = 0;
      const target = {
        type: BACNET_ADDRESS_TYPES2.NONE,
        net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
      };
      const adrLen = buffer[offset + len++];
      if (adrLen > 0) {
        target.adr = [];
        for (let i = 0; i < adrLen; i++) {
          target.adr.push(buffer[offset + len++]);
        }
      }
      return {
        target,
        len
      };
    };
    var encodeTarget2 = (buffer, target) => {
      buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
      buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
      if (target.net === 65535 || !target.adr) {
        buffer.buffer[buffer.offset++] = 0;
      } else {
        buffer.buffer[buffer.offset++] = target.adr.length;
        if (target.adr.length > 0) {
          for (let i = 0; i < target.adr.length; i++) {
            buffer.buffer[buffer.offset++] = target.adr[i];
          }
        }
      }
    };
    var decode312 = (buffer, offset) => {
      let adrLen;
      const orgOffset = offset;
      offset++;
      const funct = buffer[offset++];
      let destination;
      if (funct & 32) {
        const tmpDestination = decodeTarget2(buffer, offset);
        offset += tmpDestination.len;
        destination = tmpDestination.target;
      }
      let source;
      if (funct & 8) {
        const tmpSource = decodeTarget2(buffer, offset);
        offset += tmpSource.len;
        source = tmpSource.target;
      }
      let hopCount = 0;
      if (funct & 32) {
        hopCount = buffer[offset++];
      }
      let networkMsgType = 0;
      let vendorId = 0;
      if (funct & 128) {
        networkMsgType = buffer[offset++];
        if (networkMsgType >= 128) {
          vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
        } else if (networkMsgType === 0) {
          offset += 2;
        }
      }
      if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION2) {
        return void 0;
      }
      return {
        len: offset - orgOffset,
        funct,
        destination,
        source,
        hopCount,
        networkMsgType,
        vendorId
      };
    };
    var encode312 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
      const hasDestination = destination && destination.net > 0;
      const hasSource = source && source.net > 0 && source.net !== 65535;
      buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION2;
      buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 : 0) | (hasSource ? 8 : 0);
      if (hasDestination) {
        encodeTarget2(buffer, destination);
      }
      if (hasSource) {
        encodeTarget2(buffer, source);
      }
      if (hasDestination) {
        buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT3;
      }
      if ((funct & 128) > 0) {
        buffer.buffer[buffer.offset++] = networkMsgType;
        if (networkMsgType >= 128) {
          buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
          buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
        }
      }
    };
    var DEFAULT_BACNET_PORT22 = 47808;
    var encode322 = (buffer, func, msgLength, originatingIP) => {
      buffer[0] = BVLL_TYPE_BACNET_IP2;
      buffer[1] = func;
      buffer[2] = (msgLength & 65280) >> 8;
      buffer[3] = (msgLength & 255) >> 0;
      if (originatingIP) {
        if (func !== 4) {
          throw new Error(
            "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
          );
        }
        const [ipstr, portstr] = originatingIP.split(":");
        const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT22;
        const ip = ipstr.split(".");
        buffer[4] = parseInt(ip[0], 10);
        buffer[5] = parseInt(ip[1], 10);
        buffer[6] = parseInt(ip[2], 10);
        buffer[7] = parseInt(ip[3], 10);
        buffer[8] = (port & 65280) >> 8;
        buffer[9] = (port & 255) >> 0;
        return 6 + BVLC_HEADER_LENGTH3;
      } else {
        if (func === 4) {
          throw new Error(
            "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
          );
        }
      }
      return BVLC_HEADER_LENGTH3;
    };
    var decode322 = (buffer, _offset) => {
      let len;
      const func = buffer[1];
      const msgLength = buffer[2] << 8 | buffer[3] << 0;
      if (buffer[0] !== BVLL_TYPE_BACNET_IP2 || buffer.length !== msgLength) {
        return void 0;
      }
      let originatingIP = null;
      switch (func) {
        case 0:
        case 10:
        case 11:
        case 9:
        case 5:
        case 6:
        case 8:
        case 2:
        case 1:
        case 3:
        case 7:
          len = 4;
          break;
        case 4:
          const port = buffer[8] << 8 | buffer[9];
          originatingIP = buffer.slice(4, 8).join(".");
          if (port !== DEFAULT_BACNET_PORT22) {
            originatingIP += ":" + port;
          }
          len = 10;
          break;
        case 12:
          return void 0;
        default:
          return void 0;
      }
      return {
        len,
        func,
        msgLength,
        // Originating IP is set to the IP address of the node that originally
        // sent the packet, when it has been forwarded to us by a BBMD (since the
        // BBMD's IP address will be in the sender field.
        originatingIP
      };
    };
    var EventEmitter22 = import_events22.default.EventEmitter;
    var debug32 = (0, import_debug32.default)("bacnet:client:debug");
    var trace22 = (0, import_debug32.default)("bacnet:client:trace");
    var ALL_INTERFACES2 = "0.0.0.0";
    var LOCALHOST_INTERFACES_IPV42 = "127.0.0.1";
    var BROADCAST_ADDRESS2 = "255.255.255.255";
    var DEFAULT_HOP_COUNT22 = 255;
    var BVLC_HEADER_LENGTH22 = 4;
    var BVLC_FWD_HEADER_LENGTH2 = 10;
    var beU2 = UnconfirmedServiceChoice2;
    var unconfirmedServiceMap2 = {
      [beU2.I_AM]: "iAm",
      [beU2.WHO_IS]: "whoIs",
      [beU2.WHO_HAS]: "whoHas",
      [beU2.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
      [beU2.TIME_SYNCHRONIZATION]: "timeSync",
      [beU2.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
      [beU2.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
      [beU2.I_HAVE]: "iHave",
      [beU2.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
    };
    var beC2 = ConfirmedServiceChoice2;
    var confirmedServiceMap2 = {
      [beC2.READ_PROPERTY]: "readProperty",
      [beC2.WRITE_PROPERTY]: "writeProperty",
      [beC2.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
      [beC2.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
      [beC2.CONFIRMED_COV_NOTIFICATION]: "covNotify",
      [beC2.ATOMIC_WRITE_FILE]: "atomicWriteFile",
      [beC2.ATOMIC_READ_FILE]: "atomicReadFile",
      [beC2.SUBSCRIBE_COV]: "subscribeCov",
      [beC2.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
      [beC2.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
      [beC2.REINITIALIZE_DEVICE]: "reinitializeDevice",
      [beC2.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
      [beC2.READ_RANGE]: "readRange",
      [beC2.CREATE_OBJECT]: "createObject",
      [beC2.DELETE_OBJECT]: "deleteObject",
      [beC2.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
      [beC2.GET_ALARM_SUMMARY]: "getAlarmSummary",
      [beC2.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
      [beC2.GET_EVENT_INFORMATION]: "getEventInformation",
      [beC2.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
      [beC2.ADD_LIST_ELEMENT]: "addListElement",
      [beC2.REMOVE_LIST_ELEMENT]: "removeListElement",
      [beC2.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
    };
    var errorReasonEnums2 = {
      BacnetAbort: RejectReason2,
      another: AbortReason2
    };
    var BacnetError2 = class extends Error {
      constructor(message, bacnetErrorClass, bacnetErrorCode) {
        super(message);
        this.bacnetErrorClass = bacnetErrorClass;
        this.bacnetErrorCode = bacnetErrorCode;
      }
    };
    function bacnetErrorToString2(err) {
      var _a;
      const isError = err instanceof Error || err instanceof BacnetError2;
      if (!isError)
        return;
      const message = err.message;
      const reasonClass = message == null ? void 0 : message.split(" - ")[0];
      const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
      if (!errorReasonEnums2[reasonClass])
        return;
      const reasonString = errorReasonEnums2[reasonClass][reason];
      const alternativeReasonString = errorReasonEnums2["another"][reason];
      return reasonClass + ": " + reasonString + "or alternatively it could be " + alternativeReasonString;
    }
    var Client2 = class extends EventEmitter22 {
      /**
       *
       * @param options
       */
      constructor(options) {
        super();
        options = options || {};
        this._invokeCounter = 1;
        this._invokeStore = {};
        this._lastSequenceNumber = 0;
        this._segmentStore = [];
        this._settings = {
          port: options.port || 47808,
          interface: options.interface || ALL_INTERFACES2,
          transport: options.transport,
          broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS2,
          apduTimeout: options.apduTimeout || 3e3
        };
        options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
        this._transport = this._settings.transport || new Transport2({
          port: this._settings.port,
          interface: this._settings.interface,
          broadcastAddress: this._settings.broadcastAddress,
          reuseAddr: options.reuseAddr
        });
        this._transport.on("message", this._receiveData.bind(this));
        this._transport.on("error", this._receiveError.bind(this));
        this._transport.on("listening", () => this.emit("listening"));
        this._transport.open();
      }
      /**
       *
       * @returns {number}
       * @private
       */
      _getInvokeId() {
        const id = this._invokeCounter++;
        if (id >= 256)
          this._invokeCounter = 1;
        return id - 1;
      }
      /**
       *
       * @param id
       * @param err
       * @param result
       * @returns {*}
       * @private
       */
      _invokeCallback(id, err, result) {
        const callback = this._invokeStore[id];
        if (callback) {
          return void callback(err, result);
        }
        debug32("InvokeId", id, "not found -> drop package");
      }
      /**
       *
       * @param id
       * @param callback
       * @private
       */
      _addCallback(id, callback) {
        const timeout = setTimeout(() => {
          delete this._invokeStore[id];
          callback(new Error("ERR_TIMEOUT"));
        }, this._settings.apduTimeout);
        this._invokeStore[id] = (err, data) => {
          clearTimeout(timeout);
          delete this._invokeStore[id];
          callback(err, data);
        };
      }
      /**
       *
       * @param isForwarded
       * @returns {{offset: (number), buffer: *}}
       * @private
       */
      _getBuffer(isForwarded) {
        return Object.assign(
          {},
          {
            buffer: Buffer.alloc(this._transport.getMaxPayload()),
            offset: isForwarded ? BVLC_FWD_HEADER_LENGTH2 : BVLC_HEADER_LENGTH22
          }
        );
      }
      /**
       *
       * @param invokeId
       * @param buffer
       * @param offset
       * @param length
       * @returns {*}
       * @private
       */
      _processError(invokeId, buffer, offset, length) {
        const result = error_exports2.decode(buffer, offset);
        trace22("Received error:", result);
        if (!result) {
          return debug32("Couldn`t decode Error");
        }
        const err = new BacnetError2(error_exports2.buildMessage(result));
        err.bacnetErrorClass = result.class;
        err.bacnetErrorCode = result.code;
        this._invokeCallback(invokeId, err);
      }
      /**
       *
       * @param invokeId
       * @param reason
       * @private
       */
      _processAbort(invokeId, reason) {
        const err = new BacnetError2("BacnetAbort - Reason:" + reason);
        err.bacnetAbortReason = reason;
        err.bacnetErrorClass = AbortReason2;
        this._invokeCallback(invokeId, err);
      }
      /**
       *
       * @param receiver
       * @param negative
       * @param server
       * @param originalInvokeId
       * @param sequencenumber
       * @param actualWindowSize
       * @private
       */
      _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
        const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
        encode312(
          buffer,
          0,
          receiver,
          null,
          DEFAULT_HOP_COUNT22,
          0,
          0
        );
        encodeSegmentAck2(
          buffer,
          64 | (negative ? 2 : 0) | (server ? 1 : 0),
          originalInvokeId,
          sequencenumber,
          actualWindowSize
        );
        this.sendBvlc(receiver, buffer);
      }
      /**
       *
       * @param msg
       * @param first
       * @param moreFollows
       * @param buffer
       * @param offset
       * @param length
       * @private
       */
      _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
        if (first) {
          this._segmentStore = [];
          msg.type &= ~8;
          let apduHeaderLen = 3;
          if ((msg.type & PDU_TYPE_MASK2) === 0) {
            apduHeaderLen = 4;
          }
          const apdubuffer = this._getBuffer();
          apdubuffer.offset = 0;
          buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
          if ((msg.type & PDU_TYPE_MASK2) === 0) {
            encodeConfirmedServiceRequest2(
              apdubuffer,
              msg.type,
              msg.service,
              msg.maxSegments,
              msg.maxApdu,
              msg.invokeId,
              0,
              0
            );
          } else {
            encodeComplexAck2(
              apdubuffer,
              msg.type,
              msg.service,
              msg.invokeId,
              0,
              0
            );
          }
          this._segmentStore.push(
            //@ts-ignore
            apdubuffer.buffer.slice(0, length + apduHeaderLen)
          );
        } else {
          this._segmentStore.push(buffer.slice(offset, offset + length));
        }
        if (!moreFollows) {
          const apduBuffer = Buffer.concat(this._segmentStore);
          this._segmentStore = [];
          msg.type &= ~8;
          this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
        }
      }
      /**
       *
       * @param msg
       * @param server
       * @param buffer
       * @param offset
       * @param length
       * @private
       */
      _processSegment(msg, server, buffer, offset, length) {
        let first = false;
        if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
          first = true;
        } else {
          if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
            return this._segmentAckResponse(
              msg.header.address,
              true,
              server,
              msg.invokeId,
              this._lastSequenceNumber,
              msg.proposedWindowNumber
            );
          }
        }
        this._lastSequenceNumber = msg.sequencenumber;
        const moreFollows = msg.type & 4;
        if (!moreFollows) {
          this._lastSequenceNumber = 0;
        }
        if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
          this._segmentAckResponse(
            msg.header.address,
            false,
            server,
            msg.invokeId,
            msg.sequencenumber,
            msg.proposedWindowNumber
          );
        }
        this._performDefaultSegmentHandling(
          msg,
          first,
          moreFollows,
          buffer,
          offset,
          length
        );
      }
      /**
       *
       * @param serviceMap
       * @param content
       * @param buffer
       * @param offset
       * @param length
       * @returns {*}
       * @private
       */
      _processServiceRequest(serviceMap, content, buffer, offset, length) {
        let result;
        const sender = content.header.sender;
        if (sender.address === LOCALHOST_INTERFACES_IPV42) {
          debug32("Received and skipped localhost service request:", content.service);
          return;
        }
        const name = serviceMap[content.service];
        if (!name) {
          debug32("Received unsupported service request:", content.service);
          return;
        }
        const id = content.invokeId ? "@" + content.invokeId : "";
        trace22(`Received service request${id}:`, name);
        const serviceHandler = services_exports2[name];
        if (serviceHandler) {
          try {
            content.payload = serviceHandler.decode(buffer, offset, length);
            trace22(`Handled service request${id}:`, name, JSON.stringify(content));
          } catch (e) {
            debug32("Exception thrown when processing message:", e);
            debug32("Original message was", name + ":", content);
            return;
          }
          if (!content.payload) {
            return debug32("Received invalid", name, "message");
          }
        } else {
          debug32("No serviceHandler defined for:", name);
        }
        if (this.listenerCount(name)) {
          trace22("listener count by name emits " + name + " with content");
          this.emit(name, content);
        } else {
          if (this.listenerCount("unhandledEvent")) {
            trace22("unhandled event emiting with content");
            this.emit("unhandledEvent", content);
          } else {
            trace22(
              "no unhandled event handler with header: " + JSON.stringify(content.header)
            );
            if (content.header.expectingReply) {
              debug32("Replying with error for unhandled service:", name);
              content.header.sender.forwardedFrom = null;
              this.errorResponse(
                content.header.sender,
                content.service,
                content.invokeId,
                5,
                67
                /* REJECT_UNRECOGNIZED_SERVICE */
              );
            }
          }
        }
      }
      /**
       *
       * @param buffer
       * @param offset
       * @param length
       * @param header
       * @private
       */
      _handlePdu(buffer, offset, length, header) {
        let msg;
        trace22("handlePdu Header: ", header);
        switch (header.apduType & PDU_TYPE_MASK2) {
          case 16:
            msg = decodeUnconfirmedServiceRequest2(buffer, offset);
            msg.header = header;
            msg.header.confirmedService = false;
            this._processServiceRequest(
              unconfirmedServiceMap2,
              msg,
              buffer,
              offset + msg.len,
              length - msg.len
            );
            break;
          case 32:
            msg = decodeSimpleAck2(buffer, offset);
            offset += msg.len;
            length -= msg.len;
            this._invokeCallback(msg.invokeId, null, {
              msg,
              buffer,
              offset: offset + msg.len,
              length: length - msg.len
            });
            break;
          case 48:
            msg = decodeComplexAck2(buffer, offset);
            msg.header = header;
            if ((header.apduType & 8) === 0) {
              this._invokeCallback(msg.invokeId, null, {
                msg,
                buffer,
                offset: offset + msg.len,
                length: length - msg.len
              });
            } else {
              this._processSegment(
                msg,
                true,
                buffer,
                offset + msg.len,
                length - msg.len
              );
            }
            break;
          case 64:
            msg = decodeSegmentAck2(buffer, offset);
            msg.header = header;
            this._processSegment(
              msg,
              true,
              buffer,
              offset + msg.len,
              length - msg.len
            );
            break;
          case 80:
            msg = decodeError2(buffer, offset);
            this._processError(
              msg.invokeId,
              buffer,
              offset + msg.len,
              length - msg.len
            );
            break;
          case 96:
          case 112:
            msg = decodeAbort2(buffer, offset);
            this._processAbort(msg.invokeId, msg.reason);
            break;
          case 0:
            msg = decodeConfirmedServiceRequest2(buffer, offset);
            msg.header = header;
            msg.header.confirmedService = true;
            if ((header.apduType & 8) === 0) {
              this._processServiceRequest(
                confirmedServiceMap2,
                msg,
                buffer,
                offset + msg.len,
                length - msg.len
              );
            } else {
              this._processSegment(
                msg,
                true,
                buffer,
                offset + msg.len,
                length - msg.len
              );
            }
            break;
          default:
            debug32(`Received unknown PDU type ${header.apduType} -> Drop packet`);
            break;
        }
      }
      /**
       *
       * @param buffer
       * @param offset
       * @param msgLength
       * @param header
       * @returns {*}
       * @private
       */
      _handleNpdu(buffer, offset, msgLength, header) {
        if (msgLength <= 0) {
          return trace22("No NPDU data -> Drop package");
        }
        const result = decode312(buffer, offset);
        if (!result) {
          return trace22("Received invalid NPDU header -> Drop package");
        }
        if (result.funct & 128) {
          return trace22("Received network layer message -> Drop package");
        }
        offset += result.len;
        msgLength -= result.len;
        if (msgLength <= 0) {
          return trace22("No APDU data -> Drop package");
        }
        header.apduType = getDecodedType2(buffer, offset);
        header.expectingReply = !!(result.funct & 4);
        this._handlePdu(buffer, offset, msgLength, header);
      }
      /**
       *
       * @param buffer
       * @param remoteAddress
       * @returns {*}
       * @private
       */
      _receiveData(buffer, remoteAddress) {
        if (buffer.length < BVLC_HEADER_LENGTH3) {
          return trace22("Received invalid data -> Drop package");
        }
        const result = decode322(buffer, 0);
        if (!result) {
          return trace22("Received invalid BVLC header -> Drop package");
        }
        let header = {
          // Which function the packet came in on, so later code can distinguish
          // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
          func: result.func,
          sender: {
            // Address of the host we are directly connected to. String, IP:port.
            address: remoteAddress,
            // If the host is a BBMD passing messages along to another node, this
            // is the address of the distant BACnet node.  String, IP:port.
            // Typically we won't have network connectivity to this address, but
            // we have to include it in replies so the host we are connect to knows
            // where to forward the messages.
            forwardedFrom: null
          }
        };
        switch (result.func) {
          case 10:
          case 11:
            this._handleNpdu(
              buffer,
              result.len,
              buffer.length - result.len,
              header
            );
            break;
          case 4:
            header.sender.forwardedFrom = result.originatingIP;
            this._handleNpdu(
              buffer,
              result.len,
              buffer.length - result.len,
              header
            );
            break;
          case 5:
            let decodeResult = register_foreign_device_exports2.decode(
              buffer,
              result.len,
              buffer.length - result.len
            );
            if (!decodeResult) {
              return trace22("Received invalid registerForeignDevice message");
            }
            this.emit("registerForeignDevice", {
              header,
              payload: decodeResult
            });
            break;
          case 9:
            this._handleNpdu(
              buffer,
              result.len,
              buffer.length - result.len,
              header
            );
            break;
          default:
            debug32(
              "Received unknown BVLC function " + result.func + " -> Drop package"
            );
            break;
        }
      }
      /**
       * @event bacnet.error
       * @param {error} err - The error object thrown by the underlying transport layer.
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * client.on('error', (err) => {
       *   console.log('Error occurred: ', err);
       *   client.close();
       * });
       */
      _receiveError(err) {
        this.emit("error", err);
      }
      /**
       * The whoIs command discovers all BACNET devices in a network.
       * @function bacnet.whoIs
       * @param {string} receiver - IP address of the target device.
       * @param {object=} options
       * @param {number=} options.lowLimit - Minimal device instance number to search for.
       * @param {number=} options.highLimit - Maximal device instance number to search for.
       * @fires bacnet.iAm
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * client.whoIs();
       */
      whoIs(receiver, options) {
        if (!options) {
          if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
            options = receiver;
            receiver = void 0;
          }
        }
        options = options || {};
        const settings = {
          lowLimit: options.lowLimit,
          highLimit: options.highLimit
        };
        const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
        encode312(
          buffer,
          0,
          //@ts-ignore
          receiver,
          null,
          DEFAULT_HOP_COUNT22,
          0,
          0
        );
        encodeUnconfirmedServiceRequest2(
          buffer,
          16,
          8
          /* WHO_IS */
        );
        who_is_exports2.encode(buffer, settings.lowLimit, settings.highLimit);
        this.sendBvlc(receiver, buffer);
      }
      /**
       * The timeSync command sets the time of a target device.
       * @function bacnet.timeSync
       * @param {string} receiver - IP address of the target device.
       * @param {date} dateTime - The date and time to set on the target device.
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * client.timeSync('192.168.1.43', new Date());
       */
      timeSync(receiver, dateTime) {
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(buffer, 0, receiver);
        encodeUnconfirmedServiceRequest2(
          buffer,
          16,
          6
          /* TIME_SYNCHRONIZATION */
        );
        time_sync_exports2.encode(buffer, dateTime);
        this.sendBvlc(receiver, buffer);
      }
      /**
       * The timeSyncUTC command sets the UTC time of a target device.
       * @function bacnet.timeSyncUTC
       * @param {string} receiver - IP address of the target device.
       * @param {date} dateTime - The date and time to set on the target device.
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * client.timeSyncUTC('192.168.1.43', new Date());
       */
      timeSyncUTC(receiver, dateTime) {
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(buffer, 0, receiver);
        encodeUnconfirmedServiceRequest2(
          buffer,
          16,
          9
          /* UTC_TIME_SYNCHRONIZATION */
        );
        time_sync_exports2.encode(buffer, dateTime);
        this.sendBvlc(receiver, buffer);
      }
      /**
       * The readProperty command reads a single property of an object from a device.
       * @function bacnet.readProperty
       * @param {string} receiver - IP address of the target device.
       * @param {object} objectId - The BACNET object ID to read.
       * @param {number} objectId.type - The BACNET object type to read.
       * @param {number} objectId.instance - The BACNET object instance to read.
       * @param {number} propertyId - The BACNET property id in the specified object to read.
       * @param {object=} options
       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
       * @param {number=} options.arrayIndex - The array index of the property to be read.
       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
       *   console.log('value: ', value);
       * });
       */
      readProperty(receiver, objectId, propertyId, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId(),
          arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL2
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          //@ts-ignore
          receiver,
          null,
          DEFAULT_HOP_COUNT22,
          0,
          0
        );
        const type = 0 | //@ts-ignore
        (settings.maxSegments !== 0 ? 2 : 0);
        encodeConfirmedServiceRequest2(
          buffer,
          type,
          12,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        read_property_exports2.encode(
          buffer,
          objectId.type,
          objectId.instance,
          propertyId,
          settings.arrayIndex
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          const result = read_property_exports2.decodeAcknowledge(
            data.buffer,
            data.offset,
            data.length
          );
          if (!result) {
            return void next(new Error("INVALID_DECODING"));
          }
          next(null, result);
        });
      }
      /**
       * The writeProperty command writes a single property of an object to a device.
       * @function bacnet.writeProperty
       * @param {string} receiver - IP address of the target device.
       * @param {object} objectId - The BACNET object ID to write.
       * @param {number} objectId.type - The BACNET object type to write.
       * @param {number} objectId.instance - The BACNET object instance to write.
       * @param {number} propertyId - The BACNET property id in the specified object to write.
       * @param {object[]} values - A list of values to be written to the specified property.
       * @param {ApplicationTag} values.type - The data-type of the value to be written.
       * @param {number} values.value - The actual value to be written.
       * @param {object=} options
       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
       * @param {number=} options.arrayIndex - The array index of the property to be read.
       * @param {number=} options.priority - The priority of the value to be written.
       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
       *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
       * ], (err, value) => {
       *   console.log('value: ', value);
       * });
       */
      writeProperty(receiver, objectId, propertyId, values, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId(),
          arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL2,
          priority: options.priority || ASN1_NO_PRIORITY2
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          //@ts-ignore Todo somehow types do not match at all
          receiver,
          null,
          DEFAULT_HOP_COUNT22,
          0,
          0
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          15,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        write_property_exports2.encode(
          buffer,
          objectId.type,
          objectId.instance,
          propertyId,
          settings.arrayIndex,
          settings.priority,
          values
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          next(err);
        });
      }
      /**
       * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
       * @function bacnet.readPropertyMultiple
       * @param {string} receiver - IP address of the target device.
       * @param {object[]} propertiesArray - List of object and property specifications to be read.
       * @param {object} propertiesArray.objectId - Specifies which object to read.
       * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
       * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
       * @param {object[]} propertiesArray.properties - List of properties to be read.
       * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
       * @param {object=} options
       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * const requestArray = [
       *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
       * ];
       * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
       *   console.log('value: ', value);
       * });
       */
      readPropertyMultiple(receiver, propertiesArray, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
        const buffer = this._getBuffer(!!isForwarded);
        encode312(
          buffer,
          0 | 4,
          //@ts-ignore Todo somehow types do not match at all
          receiver,
          null,
          DEFAULT_HOP_COUNT22,
          0,
          0
        );
        const type = 0 | //@ts-ignore
        (settings.maxSegments !== 0 ? 2 : 0);
        encodeConfirmedServiceRequest2(
          buffer,
          type,
          14,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        read_property_multiple_exports2.encode(buffer, propertiesArray);
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return next(err);
          }
          const result = read_property_multiple_exports2.decodeAcknowledge(
            data.buffer,
            data.offset,
            data.length
          );
          if (!result) {
            return next(new Error("INVALID_DECODING"));
          }
          next(null, result);
        });
      }
      /**
       * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
       * @function bacnet.writePropertyMultiple
       * @param {string} receiver - IP address of the target device.
       * @param {object[]} values - List of object and property specifications to be written.
       * @param {object} values.objectId - Specifies which object to read.
       * @param {number} values.objectId.type - The BACNET object type to read.
       * @param {number} values.objectId.instance - The BACNET object instance to read.
       * @param {object[]} values.values - List of properties to be written.
       * @param {object} values.values.property - Property specifications to be written.
       * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
       * @param {number} values.values.property.index - The array index of the property to be written.
       * @param {object[]} values.values.value - A list of values to be written to the specified property.
       * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
       * @param {object} values.values.value.value - The actual value to be written.
       * @param {number} values.values.priority - The priority to be used for writing to the property.
       * @param {object=} options
       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * const values = [
       *   {objectId: {type: 8, instance: 44301}, values: [
       *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
       *   ]}
       * ];
       * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
       *   console.log('value: ', value);
       * });
       */
      writePropertyMultiple(receiver, values, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          //@ts-ignore
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          16,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId
        );
        write_property_multiple_exports2.encodeObject(buffer, values);
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          next(err);
        });
      }
      /**
       * The confirmedCOVNotification command is used to push notifications to other
       * systems that have registered with us via a subscribeCOV message.
       * @function bacnet.confirmedCOVNotification
       * @param {string} receiver - IP address of the target device.
       * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
       * @param {number} monitoredObject.type - Object type.
       * @param {number} monitoredObject.instance - Object instance.
       * @param {number} subscribeId - Subscriber ID from subscribeCOV,
       * @param {number} initiatingDeviceId - Our BACnet device ID.
       * @param {number} lifetime - Number of seconds left until the subscription expires.
       * @param {array} values - values for the monitored object.  See example.
       * @param {object=} options
       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * const settings = {deviceId: 123}; // our BACnet device
       *
       * // Items saved from subscribeCOV message
       * const monitoredObject = {type: 1, instance: 1};
       * const subscriberProcessId = 123;
       *
       * client.confirmedCOVNotification(
       *   '192.168.1.43',
       *   monitoredObject,
       *   subscriberProcessId,
       *   settings.deviceId,
       *   30, // should be lifetime of subscription really
       *   [
       *     {
       *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
       *       value: [
       *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
       *       ],
       *     },
       *   ],
       *   (err) => {
       *     console.log('error: ', err);
       *   }
       * );
       */
      confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer();
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          1,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        cov_notify_exports2.encode(
          buffer,
          subscribeId,
          initiatingDeviceId,
          monitoredObject,
          lifetime,
          values
        );
        encode322(
          buffer.buffer,
          10,
          buffer.offset
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          next();
        });
      }
      /**
       * The deviceCommunicationControl command enables or disables network communication of the target device.
       * @function bacnet.deviceCommunicationControl
       * @param {string} receiver - IP address of the target device.
       * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
       * @param {EnableDisable} enableDisable - The network communication state to set.
       * @param {object=} options
       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
       * @param {string=} options.password - The optional password used to set the network communication state.
       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
       *   console.log('error: ', err);
       * });
       */
      deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId(),
          password: options.password
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          17,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        device_communication_control_exports2.encode(
          buffer,
          timeDuration,
          enableDisable,
          settings.password
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          next(err);
        });
      }
      /**
       * The reinitializeDevice command initiates a restart of the target device.
       * @function bacnet.reinitializeDevice
       * @param {string} receiver - IP address of the target device.
       * @param {ReinitializedState} state - The type of restart to be initiated.
       * @param {object=} options
       * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
       * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
       * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
       * @param {string=} options.password - The optional password used to restart the device.
       * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
       *   console.log('value: ', value);
       * });
       */
      reinitializeDevice(receiver, state, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId(),
          password: options.password
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          20,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        reinitialize_device_exports2.encode(buffer, state, settings.password);
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          next(err);
        });
      }
      /**
       *
       * @param receiver
       * @param objectId
       * @param position
       * @param fileBuffer
       * @param options
       * @param next
       */
      writeFile(receiver, objectId, position, fileBuffer, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          7,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        atomic_write_file_exports2.encode(
          buffer,
          false,
          objectId,
          position,
          fileBuffer
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          const result = atomic_write_file_exports2.decodeAcknowledge(
            data.buffer,
            data.offset,
            data.length
          );
          if (!result) {
            return void next(new Error("INVALID_DECODING"));
          }
          next(null, result);
        });
      }
      /**
       *
       * @param receiver
       * @param objectId
       * @param position
       * @param count
       * @param options
       * @param next
       */
      readFile(receiver, objectId, position, count, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          6,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        atomic_read_file_exports2.encode(buffer, true, objectId, position, count);
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          const result = atomic_read_file_exports2.decodeAcknowledge(
            data.buffer,
            data.offset,
            data.length
          );
          if (!result) {
            return void next(new Error("INVALID_DECODING"));
          }
          next(null, result);
        });
      }
      /**
       *
       * @param receiver
       * @param objectId
       * @param idxBegin
       * @param quantity
       * @param options
       * @param next
       */
      readRange(receiver, objectId, idxBegin, quantity, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          26,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        read_range_exports2.encode(
          buffer,
          objectId,
          131,
          ASN1_ARRAY_ALL2,
          0,
          idxBegin,
          /* @__PURE__ */ new Date(),
          quantity
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          const result = read_range_exports2.decodeAcknowledge(
            data.buffer,
            data.offset,
            data.length
          );
          if (!result) {
            return void next(new Error("INVALID_DECODING"));
          }
          next(null, result);
        });
      }
      /**
       *
       * @param receiver
       * @param objectId
       * @param subscribeId
       * @param cancel
       * @param issueConfirmedNotifications
       * @param lifetime
       * @param options
       * @param next
       */
      subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
        const next = nextFunc || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          // @ts-ignore TODO types not matching with documentation and code
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          5,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        subscribe_cov_exports2.encode(
          buffer,
          subscribeId,
          objectId,
          cancel,
          issueConfirmedNotifications,
          lifetime
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          next();
        });
      }
      /**
       *
       * @param receiver
       * @param objectId
       * @param monitoredProperty
       * @param subscribeId
       * @param cancel
       * @param issueConfirmedNotifications
       * @param options
       * @param next
       */
      subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          28,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        subscribe_property_exports2.encode(
          buffer,
          subscribeId,
          objectId,
          cancel,
          issueConfirmedNotifications,
          0,
          monitoredProperty,
          false,
          15
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          next();
        });
      }
      /**
       * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
       * @function bacnet.unconfirmedCOVNotification
       * @param {string} receiver - IP address of the target device.
       * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
       * @param {number} initiatingDeviceId - The id of this device.
       * @param {object} monitoredObjectId - Specifies about which object the notification is.
       * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
       * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
       * @param {number} timeRemaining - How long the subscription is still active in seconds.
       * @param {object[]} values - List of properties with updated values.
       * @param {object} values.property - Property specifications.
       * @param {number} values.property.id - The updated BACNET property id.
       * @param {number} values.property.index - The array index of the updated property.
       * @param {object[]} values.value - A list of updated values.
       * @param {ApplicationTag} values.value.type - The data-type of the updated value.
       * @param {object} values.value.value - The actual updated value.
       * @param {number} values.priority - The priority of the updated property.
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * client.unconfirmedCOVNotification(
       *            '127.0.0.1',
       *            3,
       *            433,
       *            {type: 2, instance: 122},
       *            120,
       *            [
       *              {
       *                property: {id: 85},
       *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
       *              },
       *              {
       *                property: {id: 111},
       *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
       *              }
       *            ]);
       */
      unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
        const buffer = this._getBuffer();
        encode312(buffer, 0, receiver);
        encodeUnconfirmedServiceRequest2(
          buffer,
          16,
          2
          /* UNCONFIRMED_COV_NOTIFICATION */
        );
        cov_notify_exports2.encode(
          buffer,
          subscriberProcessId,
          initiatingDeviceId,
          monitoredObjectId,
          timeRemaining,
          values
        );
        encode322(
          buffer.buffer,
          10,
          buffer.offset
        );
        this._transport.send(buffer.buffer, buffer.offset, receiver);
      }
      /**
       *
       * @param receiver
       * @param objectId
       * @param values
       * @param options
       * @param next
       */
      createObject(receiver, objectId, values, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          10,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        create_object_exports2.encode(buffer, objectId, values);
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          next();
        });
      }
      /**
       *
       * @param receiver
       * @param objectId
       * @param options
       * @param next
       */
      deleteObject(receiver, objectId, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          11,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        delete_object_exports2.encode(buffer, objectId);
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          next();
        });
      }
      /**
       *
       * @param receiver
       * @param objectId
       * @param reference
       * @param values
       * @param options
       * @param next
       */
      removeListElement(receiver, objectId, reference, values, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          9,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        add_list_element_exports2.encode(
          buffer,
          objectId,
          reference.id,
          reference.index,
          values
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          next();
        });
      }
      /**
       *
       * @param receiver
       * @param objectId
       * @param reference
       * @param values
       * @param options
       * @param next
       */
      addListElement(receiver, objectId, reference, values, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          8,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        add_list_element_exports2.encode(
          buffer,
          objectId,
          reference.id,
          reference.index,
          values
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          next();
        });
      }
      /**
       *
       * @param receiver
       * @param options
       * @param next
       */
      getAlarmSummary(receiver, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          3,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          const result = alarm_summary_exports2.decode(
            data.buffer,
            data.offset,
            data.length
          );
          if (!result) {
            return void next(new Error("INVALID_DECODING"));
          }
          next(null, result);
        });
      }
      /**
       *
       * @param receiver
       * @param objectId
       * @param options
       * @param next
       */
      getEventInformation(receiver, objectId, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          29,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        encodeContextObjectId2(buffer, 0, objectId.type, objectId.instance);
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          const result = event_information_exports2.decode(
            data.buffer,
            data.offset,
            data.length
          );
          if (!result) {
            return void next(new Error("INVALID_DECODING"));
          }
          next(null, result);
        });
      }
      /**
       *
       * @param receiver
       * @param objectId
       * @param eventState
       * @param ackText
       * @param evTimeStamp
       * @param ackTimeStamp
       * @param options
       * @param next
       */
      acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          0,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        alarm_acknowledge_exports2.encode(
          buffer,
          57,
          objectId,
          eventState,
          ackText,
          evTimeStamp,
          ackTimeStamp
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          next();
        });
      }
      /**
       *
       * @param receiver
       * @param vendorId
       * @param serviceNumber
       * @param data
       * @param options
       * @param next
       */
      confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          18,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        private_transfer_exports2.encode(buffer, vendorId, serviceNumber, data);
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data2) => {
          if (err) {
            return void next(err);
          }
          next();
        });
      }
      /**
       *
       * @param receiver
       * @param vendorId
       * @param serviceNumber
       * @param data
       */
      unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(buffer, 0, receiver);
        encodeUnconfirmedServiceRequest2(
          buffer,
          16,
          4
          /* UNCONFIRMED_PRIVATE_TRANSFER */
        );
        private_transfer_exports2.encode(buffer, vendorId, serviceNumber, data);
        this.sendBvlc(receiver, buffer);
      }
      /**
       *
       * @param receiver
       * @param acknowledgmentFilter
       * @param options
       * @param next
       */
      getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          4,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        get_enrollment_summary_exports2.encode(
          buffer,
          acknowledgmentFilter,
          options.enrollmentFilter,
          options.eventStateFilter,
          options.eventTypeFilter,
          options.priorityFilter,
          options.notificationClassFilter
        );
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          const result = get_enrollment_summary_exports2.decodeAcknowledge(
            data.buffer,
            data.offset,
            data.length
          );
          if (!result) {
            return void next(new Error("INVALID_DECODING"));
          }
          next(null, result);
        });
      }
      /**
       *
       * @param receiver
       * @param eventNotification
       */
      unconfirmedEventNotification(receiver, eventNotification) {
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(buffer, 0, receiver);
        encodeUnconfirmedServiceRequest2(
          buffer,
          16,
          3
          /* UNCONFIRMED_EVENT_NOTIFICATION */
        );
        event_notify_data_exports2.encode(buffer, eventNotification);
        this.sendBvlc(receiver, buffer);
      }
      /**
       *
       * @param receiver
       * @param eventNotification
       * @param options
       * @param next
       */
      confirmedEventNotification(receiver, eventNotification, options, next) {
        next = next || options;
        const settings = {
          maxSegments: options.maxSegments || 112,
          maxApdu: options.maxApdu || 5,
          invokeId: options.invokeId || this._getInvokeId()
        };
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(
          buffer,
          0 | 4,
          receiver
        );
        encodeConfirmedServiceRequest2(
          buffer,
          0,
          2,
          settings.maxSegments,
          settings.maxApdu,
          settings.invokeId,
          0,
          0
        );
        event_notify_data_exports2.encode(buffer, eventNotification);
        this.sendBvlc(receiver, buffer);
        this._addCallback(settings.invokeId, (err, data) => {
          if (err) {
            return void next(err);
          }
          next();
        });
      }
      /**
       * The readPropertyResponse call sends a response with information about one of our properties.
       * @function bacnet.readPropertyResponse
       * @param {string} receiver - IP address of the target device.
       * @param {number} invokeId - ID of the original readProperty request.
       * @param {object} objectId - objectId from the original request,
       * @param {object} property - property being read, taken from the original request.
       * @param {object=} options varying behaviour for special circumstances
       * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
       */
      readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(buffer, 0, receiver);
        encodeComplexAck2(
          buffer,
          48,
          12,
          invokeId
        );
        read_property_exports2.encodeAcknowledge(
          buffer,
          objectId,
          property.id,
          property.index,
          value
        );
        this.sendBvlc(receiver, buffer);
      }
      readPropertyMultipleResponse(receiver, invokeId, values) {
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(buffer, 0, receiver);
        encodeComplexAck2(
          buffer,
          48,
          14,
          invokeId
        );
        read_property_multiple_exports2.encodeAcknowledge(buffer, values);
        this.sendBvlc(receiver, buffer);
      }
      /**
       * The iAmResponse command is sent as a reply to a whoIs request.
       * @function bacnet.iAmResponse
       * @param {object} receiver - address to send packet to, null for local broadcast.
       * @param {number} deviceId - Our device ID.
       * @param {number} segmentation - an enum.Segmentation value.
       * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
       */
      iAmResponse(receiver, deviceId, segmentation, vendorId) {
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(buffer, 0, receiver);
        encodeUnconfirmedServiceRequest2(
          buffer,
          16,
          0
          /* I_AM */
        );
        i_am_exports2.encode(
          buffer,
          deviceId,
          this._transport.getMaxPayload(),
          segmentation,
          vendorId
        );
        this.sendBvlc(receiver, buffer);
      }
      /**
       *
       * @param receiver
       * @param deviceId
       * @param objectId
       * @param objectName
       */
      iHaveResponse(receiver, deviceId, objectId, objectName) {
        const buffer = this._getBuffer(
          !!(typeof receiver !== "string" && receiver.forwardedFrom)
        );
        encode312(buffer, 0, receiver);
        encodeUnconfirmedServiceRequest2(
          buffer,
          16,
          1
          /* I_HAVE */
        );
        i_have_exports2.encode(buffer, deviceId, objectId, objectName);
        this.sendBvlc(receiver, buffer);
      }
      /**
       *
       * @param receiver
       * @param service
       * @param invokeId
       */
      simpleAckResponse(receiver, service, invokeId) {
        if (typeof receiver === "string")
          return;
        const buffer = this._getBuffer(!!receiver.forwardedFrom);
        encode312(buffer, 0, receiver);
        encodeSimpleAck2(
          buffer,
          32,
          service,
          invokeId
        );
        this.sendBvlc(receiver, buffer);
      }
      /**
       *
       * @param receiver
       * @param service
       * @param invokeId
       * @param errorClass
       * @param errorCode
       */
      errorResponse(receiver, service, invokeId, errorClass, errorCode) {
        trace22(
          `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
            service
          )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
        );
        trace22(
          `error message ${error_exports2.buildMessage({
            class: errorClass,
            code: errorCode
          })}`
        );
        const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
        if (typeof receiver === "string")
          throw new Error("receiver must be object");
        const buffer = this._getBuffer(hasSource);
        encode312(buffer, 0, receiver);
        encodeError2(buffer, 80, service, invokeId);
        error_exports2.encode(buffer, errorClass, errorCode);
        this.sendBvlc(receiver, buffer);
      }
      /**
       *
       * @param receiver
       * @param buffer
       */
      sendBvlc(receiver, buffer) {
        if (typeof receiver === "string") {
          receiver = {
            address: receiver
          };
        }
        if (receiver && receiver.forwardedFrom) {
          encode322(
            buffer.buffer,
            4,
            buffer.offset,
            receiver.forwardedFrom
          );
        } else if (receiver && receiver.address) {
          encode322(
            buffer.buffer,
            10,
            buffer.offset
          );
        } else {
          encode322(
            buffer.buffer,
            11,
            buffer.offset
          );
        }
        this._transport.send(
          buffer.buffer,
          buffer.offset,
          receiver && receiver.address || null
        );
      }
      /**
       * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
       * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
       * @function bacnet.resultResponse
       * @param {string} receiver - IP address of the target device.
       * @param {number} resultCode - Single value from BvlcResultFormat enum.
       */
      resultResponse(receiver, resultCode) {
        const buffer = this._getBuffer();
        encodeResult2(buffer, resultCode);
        encode322(
          buffer.buffer,
          0,
          buffer.offset
        );
        this._transport.send(buffer.buffer, buffer.offset, receiver.address);
      }
      /**
       * Unloads the current bacnet instance and closes the underlying UDP socket.
       * @function bacnet.close
       * @example
       * const bacnet = require('node-bacnet');
       * const client = new bacnet();
       *
       * client.close();
       */
      close() {
        this._transport.close();
      }
      /**
       * Helper function to take an array of enums and produce a bitstring suitable
       * for inclusion as a property.
       *
       * @example
       * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
       *   {value: bacnet.createBitstring([
       *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
       *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
       *   ]),
       *   type: bacnet.enum.ApplicationTag.BIT_STRING},
       * ],
       */
      static createBitstring(items) {
        let offset = 0;
        let bytes = [];
        let bitsUsed = 0;
        while (items.length) {
          let value = 0;
          items = items.filter((i) => {
            if (i >= offset + 8) {
              return true;
            }
            value |= 1 << i - offset;
            bitsUsed = Math.max(bitsUsed, i);
            return false;
          });
          bytes.push(value);
          offset += 8;
        }
        bitsUsed++;
        return {
          value: bytes,
          bitsUsed
        };
      }
    };
    var import_underscore2 = __toESM2(require("underscore"));
    var import_process2 = __toESM2(require("process"));
    var import__2 = __toESM2(require_dist2());
    var PropertyIdentifierToEnumMap2 = {};
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.OBJECT_TYPE] = import__2.enums.ObjectType;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__2.enums.Segmentation;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.EVENT_STATE] = import__2.enums.EventState;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.UNITS] = import__2.enums.EngineeringUnits;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.RELIABILITY] = import__2.enums.Reliability;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.NOTIFY_TYPE] = import__2.enums.NotifyType;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.POLARITY] = import__2.enums.Polarity;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__2.enums.ServicesSupported;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__2.enums.ObjectTypesSupported;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.STATUS_FLAGS] = import__2.enums.StatusFlags;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.LIMIT_ENABLE] = import__2.enums.LimitEnable;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.EVENT_ENABLE] = import__2.enums.EventTransitionBits;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__2.enums.EventTransitionBits;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.SYSTEM_STATUS] = import__2.enums.DeviceStatus;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.SYSTEM_STATUS] = import__2.enums.DeviceStatus;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.ACK_REQUIRED] = import__2.enums.EventTransitionBits;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.LOGGING_TYPE] = import__2.enums.LoggingType;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__2.enums.FileAccessMethod;
    PropertyIdentifierToEnumMap2[import__2.enums.PropertyIdentifier.NODE_TYPE] = import__2.enums.NodeType;
    var ObjectTypeSpecificPropertyIdentifierToEnumMap2 = {};
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BINARY_INPUT] = {};
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BINARY_INPUT][import__2.enums.PropertyIdentifier.PRESENT_VALUE] = import__2.enums.BinaryPV;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BINARY_INPUT][import__2.enums.PropertyIdentifier.MODE] = import__2.enums.BinaryPV;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.ANALOG_INPUT] = {};
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.ANALOG_INPUT][import__2.enums.PropertyIdentifier.PRESENT_VALUE] = import__2.enums.BinaryPV;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.ANALOG_OUTPUT] = {};
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.ANALOG_OUTPUT][import__2.enums.PropertyIdentifier.PRESENT_VALUE] = import__2.enums.BinaryPV;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BINARY_OUTPUT] = {};
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BINARY_OUTPUT][import__2.enums.PropertyIdentifier.PRESENT_VALUE] = import__2.enums.BinaryPV;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BINARY_OUTPUT][import__2.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__2.enums.BinaryPV;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BINARY_VALUE] = {};
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BINARY_VALUE][import__2.enums.PropertyIdentifier.PRESENT_VALUE] = import__2.enums.BinaryPV;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BINARY_VALUE][import__2.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__2.enums.BinaryPV;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__2.enums.PropertyIdentifier.PRESENT_VALUE] = import__2.enums.BinaryLightingPV;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BITSTRING_VALUE] = {};
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.BINARY_VALUE][import__2.enums.PropertyIdentifier.PRESENT_VALUE] = import__2.enums.BinaryPV;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.LIFE_SAFETY_POINT] = {};
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.LIFE_SAFETY_POINT][import__2.enums.PropertyIdentifier.PRESENT_VALUE] = import__2.enums.LifeSafetyState;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.LIFE_SAFETY_POINT][import__2.enums.PropertyIdentifier.TRACKING_VALUE] = import__2.enums.LifeSafetyState;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.LIFE_SAFETY_POINT][import__2.enums.PropertyIdentifier.MODE] = import__2.enums.LifeSafetyMode;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.LIFE_SAFETY_POINT][import__2.enums.PropertyIdentifier.ACCEPTED_MODES] = import__2.enums.LifeSafetyMode;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.LIFE_SAFETY_POINT][import__2.enums.PropertyIdentifier.SILENCED] = import__2.enums.LifeSafetyState;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.LIFE_SAFETY_POINT][import__2.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__2.enums.LifeSafetyOperation;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.LIFE_SAFETY_ZONE][import__2.enums.PropertyIdentifier.PRESENT_VALUE] = import__2.enums.LifeSafetyState;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.LIFE_SAFETY_ZONE][import__2.enums.PropertyIdentifier.MODE] = import__2.enums.LifeSafetyMode;
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.LOAD_CONTROL] = {};
    ObjectTypeSpecificPropertyIdentifierToEnumMap2[import__2.enums.ObjectType.LOAD_CONTROL][import__2.enums.PropertyIdentifier.PRESENT_VALUE] = import__2.enums.ShedState;
    var propSubSet2 = import_process2.default.argv.includes("--all") ? Object.values(import__2.enums.PropertyIdentifier) : [
      /* normally supported from all devices */
      import__2.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
      import__2.enums.PropertyIdentifier.OBJECT_NAME,
      import__2.enums.PropertyIdentifier.OBJECT_TYPE,
      import__2.enums.PropertyIdentifier.PRESENT_VALUE,
      import__2.enums.PropertyIdentifier.STATUS_FLAGS,
      import__2.enums.PropertyIdentifier.EVENT_STATE,
      import__2.enums.PropertyIdentifier.RELIABILITY,
      import__2.enums.PropertyIdentifier.OUT_OF_SERVICE,
      import__2.enums.PropertyIdentifier.UNITS,
      /* other properties */
      import__2.enums.PropertyIdentifier.DESCRIPTION,
      import__2.enums.PropertyIdentifier.SYSTEM_STATUS,
      import__2.enums.PropertyIdentifier.VENDOR_NAME,
      import__2.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
      import__2.enums.PropertyIdentifier.MODEL_NAME,
      import__2.enums.PropertyIdentifier.FIRMWARE_REVISION,
      import__2.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
      import__2.enums.PropertyIdentifier.LOCATION,
      import__2.enums.PropertyIdentifier.LOCAL_DATE,
      import__2.enums.PropertyIdentifier.LOCAL_TIME,
      import__2.enums.PropertyIdentifier.UTC_OFFSET,
      import__2.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
      import__2.enums.PropertyIdentifier.PROTOCOL_VERSION,
      import__2.enums.PropertyIdentifier.PROTOCOL_REVISION,
      import__2.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
      import__2.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
      import__2.enums.PropertyIdentifier.OBJECT_LIST,
      import__2.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
      import__2.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
      import__2.enums.PropertyIdentifier.APDU_TIMEOUT,
      import__2.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
      import__2.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
      import__2.enums.PropertyIdentifier.DATABASE_REVISION,
      import__2.enums.PropertyIdentifier.MAX_INFO_FRAMES,
      import__2.enums.PropertyIdentifier.MAX_MASTER,
      import__2.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
      import__2.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
    ];
    var debug42 = import_process2.default.argv.includes("--debug");
    function getAllPropertiesManually2(address, objectId, callback, propList, result) {
      if (!propList) {
        propList = propSubSet2.map((x) => x);
      }
      if (!result) {
        result = [];
      }
      if (!propList.length) {
        return callback({
          values: [
            {
              objectId,
              values: result
            }
          ]
        });
      }
      const prop = propList.shift();
      bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
        if (!err) {
          if (debug42) {
            console.log("Handle value " + prop + ": ", JSON.stringify(value));
          }
          const objRes = value.property;
          objRes.value = value.values;
          result.push(objRes);
        } else {
        }
        getAllPropertiesManually2(address, objectId, callback, propList, result);
      });
    }
    function readBit2(buffer, i, bit) {
      return (buffer[i] >> bit) % 2;
    }
    function handleBitString2(buffer, bitsUsed, usedEnum) {
      const res = [];
      for (let i = 0; i < bitsUsed; i++) {
        const bufferIndex = Math.floor(i / 8);
        if (readBit2(buffer, bufferIndex, i % 8)) {
          res.push(import__2.enums.getEnumName(usedEnum, i));
        }
      }
      return res;
    }
    function parseValue2(address, objId2, parentType, value, supportsMultiple = false, callback) {
      let resValue = null;
      if (value && value.type && value.value !== null && value.value !== void 0) {
        switch (value.type) {
          case import__2.enums.ApplicationTag.NULL:
            resValue = null;
            break;
          case import__2.enums.ApplicationTag.BOOLEAN:
            resValue = !!value.value;
            break;
          case import__2.enums.ApplicationTag.UNSIGNED_INTEGER:
          case import__2.enums.ApplicationTag.SIGNED_INTEGER:
          case import__2.enums.ApplicationTag.REAL:
          case import__2.enums.ApplicationTag.DOUBLE:
          case import__2.enums.ApplicationTag.CHARACTER_STRING:
            resValue = value.value;
            break;
          case import__2.enums.ApplicationTag.DATE:
          case import__2.enums.ApplicationTag.TIME:
          case import__2.enums.ApplicationTag.TIMESTAMP:
            resValue = value.value;
            break;
          case import__2.enums.ApplicationTag.BIT_STRING:
            if (ObjectTypeSpecificPropertyIdentifierToEnumMap2[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap2[parentType][objId2]) {
              resValue = handleBitString2(
                value.value.value,
                value.value.bitsUsed,
                ObjectTypeSpecificPropertyIdentifierToEnumMap2[parentType][objId2]
              );
            } else if (PropertyIdentifierToEnumMap2[objId2]) {
              resValue = handleBitString2(
                value.value.value,
                value.value.bitsUsed,
                PropertyIdentifierToEnumMap2[objId2]
              );
            } else {
              if (parentType !== import__2.enums.ObjectType.BITSTRING_VALUE) {
                console.log(
                  "Unknown value for BIT_STRING type for objId " + import__2.enums.getEnumName(import__2.enums.PropertyIdentifier, objId2) + " and parent type " + import__2.enums.getEnumName(import__2.enums.ObjectType, parentType)
                );
              }
              resValue = value.value;
            }
            break;
          case import__2.enums.ApplicationTag.ENUMERATED:
            if (ObjectTypeSpecificPropertyIdentifierToEnumMap2[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap2[parentType][objId2]) {
              resValue = import__2.enums.getEnumName(
                ObjectTypeSpecificPropertyIdentifierToEnumMap2[parentType][objId2],
                value.value
              );
            } else if (PropertyIdentifierToEnumMap2[objId2]) {
              resValue = import__2.enums.getEnumName(
                PropertyIdentifierToEnumMap2[objId2],
                value.value
              );
            } else {
              console.log(
                "Unknown value for ENUMERATED type for objId " + import__2.enums.getEnumName(import__2.enums.PropertyIdentifier, objId2) + " and parent type " + import__2.enums.getEnumName(import__2.enums.ObjectType, parentType)
              );
              resValue = value.value;
            }
            break;
          case import__2.enums.ApplicationTag.OBJECTIDENTIFIER:
            if (objId2 === import__2.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__2.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__2.enums.PropertyIdentifier.SUBORDINATE_LIST) {
              resValue = value.value;
            } else if (supportsMultiple) {
              const requestArray = [
                {
                  objectId: value.value,
                  // meaning read all properties
                  properties: [{ id: 8 }]
                }
              ];
              bacnetClient.readPropertyMultiple(
                address,
                requestArray,
                (err, resValue2) => {
                  parseDeviceObject2(address, resValue2, value.value, true, callback);
                }
              );
              return;
            } else {
              getAllPropertiesManually2(address, value.value, (result) => {
                parseDeviceObject2(address, result, value.value, false, callback);
              });
              return;
            }
            break;
          case import__2.enums.ApplicationTag.OCTET_STRING:
            resValue = value.value;
            break;
          case import__2.enums.ApplicationTag.ERROR:
            resValue = {
              errorClass: import__2.enums.getEnumName(
                import__2.enums.ErrorClass,
                value.value.errorClass
              ),
              errorCode: import__2.enums.getEnumName(import__2.enums.ErrorCode, value.value.errorCode)
            };
            break;
          case import__2.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
          case import__2.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
          case import__2.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
          case import__2.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
            resValue = value.value;
            break;
          case import__2.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
            parseValue2(
              address,
              parentType,
              value.value,
              supportsMultiple,
              callback
            );
            return;
          case import__2.enums.ApplicationTag.READ_ACCESS_RESULT:
            resValue = value.value;
            break;
          default:
            console.log(
              "unknown type " + value.type + ": " + JSON.stringify(value)
            );
            resValue = value;
        }
      }
      setImmediate(() => callback(resValue));
    }
    function parseDeviceObject2(address, obj, parent, supportsMultiple, callback) {
      if (debug42) {
        console.log(
          "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
        );
      }
      if (!obj) {
        console.log("object not valid on parse device object");
        return;
      }
      if (!obj.values || !Array.isArray(obj.values)) {
        console.log("No device or invalid response");
        callback({ ERROR: "No device or invalid response" });
        return;
      }
      let cbCount = 0;
      let objDef = {};
      const finalize = () => {
        Object.keys(objDef).forEach((devId) => {
          Object.keys(objDef[devId]).forEach((objId2) => {
            if (objDef[devId][objId2].length === 1) {
              objDef[devId][objId2] = objDef[devId][objId2][0];
            }
          });
        });
        if (obj.values.length === 1) {
          objDef = objDef[obj.values[0].objectId.instance];
        }
        if (debug42) {
          console.log(
            "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
          );
        }
        callback(objDef);
      };
      obj.values.forEach((devBaseObj) => {
        if (!devBaseObj.objectId) {
          console.log("No device Id found in object data");
          return;
        }
        if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
          console.log("No device type or instance found in object data");
          return;
        }
        if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
          console.log("No device values response");
          return;
        }
        const deviceId = devBaseObj.objectId.instance;
        objDef[deviceId] = {};
        devBaseObj.values.forEach((devObj) => {
          let objId2 = import__2.enums.getEnumName(import__2.enums.PropertyIdentifier, devObj.id);
          if (devObj.index !== 4294967295) {
            objId2 += "-" + devObj.index;
          }
          if (debug42) {
            console.log("Handle Object property:", deviceId, objId2, devObj.value);
          }
          devObj.value.forEach((val) => {
            if (JSON.stringify(val.value) === JSON.stringify(parent)) {
              objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
              objDef[deviceId][objId2].push(val.value);
              return;
            }
            cbCount++;
            parseValue2(
              address,
              parent.type,
              val,
              supportsMultiple,
              (parsedValue) => {
                if (debug42) {
                  console.log(
                    "RETURN parsedValue",
                    deviceId,
                    objId2,
                    devObj.value,
                    parsedValue
                  );
                }
                objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
                objDef[deviceId][objId2].push(parsedValue);
                if (!--cbCount) {
                  finalize();
                }
              }
            );
          });
        });
      });
      if (cbCount === 0) {
        finalize();
      }
    }
    var limitToDevice2 = null;
    if (import_process2.default.argv.length === 3) {
      limitToDevice2 = parseInt(import_process2.default.argv[2]);
      if (isNaN(limitToDevice2)) {
        limitToDevice2 = null;
      }
    }
    var node_bacnet_default2 = Client2;
  }
});

// index.ts
var node_bacnet_exports = {};
__export(node_bacnet_exports, {
  _: () => import_underscore.default,
  bacnetErrorToString: () => bacnetErrorToString,
  default: () => node_bacnet_default,
  enums: () => enum_exports,
  parseValue: () => parseValue
});
module.exports = __toCommonJS(node_bacnet_exports);

// src/enum.ts
var enum_exports = {};
__export(enum_exports, {
  ASN1_ARRAY_ALL: () => ASN1_ARRAY_ALL,
  ASN1_INSTANCE_BITS: () => ASN1_INSTANCE_BITS,
  ASN1_MAX_APPLICATION_TAG: () => ASN1_MAX_APPLICATION_TAG,
  ASN1_MAX_BITSTRING_BYTES: () => ASN1_MAX_BITSTRING_BYTES,
  ASN1_MAX_INSTANCE: () => ASN1_MAX_INSTANCE,
  ASN1_MAX_OBJECT: () => ASN1_MAX_OBJECT,
  ASN1_MAX_OBJECT_TYPE: () => ASN1_MAX_OBJECT_TYPE,
  ASN1_MAX_PRIORITY: () => ASN1_MAX_PRIORITY,
  ASN1_MAX_PROPERTY_ID: () => ASN1_MAX_PROPERTY_ID,
  ASN1_MIN_PRIORITY: () => ASN1_MIN_PRIORITY,
  ASN1_NO_PRIORITY: () => ASN1_NO_PRIORITY,
  AbortReason: () => AbortReason,
  AccessAuthenticationFactorDisable: () => AccessAuthenticationFactorDisable,
  AccessCredentialDisable: () => AccessCredentialDisable,
  AccessCredentialDisableReason: () => AccessCredentialDisableReason,
  AccessEvent: () => AccessEvent,
  AccessPassbackMode: () => AccessPassbackMode,
  AccessUserType: () => AccessUserType,
  AccessZoneOccupancyState: () => AccessZoneOccupancyState,
  Action: () => Action,
  ApplicationTag: () => ApplicationTag,
  ApplicationTagName: () => ApplicationTagName,
  AuthenticationFactorType: () => AuthenticationFactorType,
  AuthenticationStatus: () => AuthenticationStatus,
  AuthorizationExemption: () => AuthorizationExemption,
  AuthorizationMode: () => AuthorizationMode,
  BVLC_HEADER_LENGTH: () => BVLC_HEADER_LENGTH,
  BVLL_TYPE_BACNET_IP: () => BVLL_TYPE_BACNET_IP,
  BackupState: () => BackupState,
  BinaryLightingPV: () => BinaryLightingPV,
  BinaryPV: () => BinaryPV,
  BvlcResultFormat: () => BvlcResultFormat,
  BvlcResultPurpose: () => BvlcResultPurpose,
  CharacterStringEncoding: () => CharacterStringEncoding,
  ConfirmedServiceChoice: () => ConfirmedServiceChoice,
  CovType: () => CovType,
  DaysOfWeek: () => DaysOfWeek,
  DeviceStatus: () => DeviceStatus,
  DoorAlarmState: () => DoorAlarmState,
  DoorSecuredStatus: () => DoorSecuredStatus,
  DoorStatus: () => DoorStatus,
  DoorValue: () => DoorValue,
  EnableDisable: () => EnableDisable,
  EngineeringUnits: () => EngineeringUnits,
  ErrorClass: () => ErrorClass,
  ErrorClassName: () => ErrorClassName,
  ErrorCode: () => ErrorCode,
  ErrorCodeName: () => ErrorCodeName,
  EscalatorFault: () => EscalatorFault,
  EscalatorMode: () => EscalatorMode,
  EscalatorOperationDirection: () => EscalatorOperationDirection,
  EventState: () => EventState,
  EventTransitionBits: () => EventTransitionBits,
  EventType: () => EventType,
  FaultType: () => FaultType,
  FileAccessMethod: () => FileAccessMethod,
  IPMode: () => IPMode,
  LifeSafetyMode: () => LifeSafetyMode,
  LifeSafetyOperation: () => LifeSafetyOperation,
  LifeSafetyState: () => LifeSafetyState,
  LiftCarDirection: () => LiftCarDirection,
  LiftCarDoorCommand: () => LiftCarDoorCommand,
  LiftCarDriveStatus: () => LiftCarDriveStatus,
  LiftCarMode: () => LiftCarMode,
  LiftFault: () => LiftFault,
  LiftGroupMode: () => LiftGroupMode,
  LightingInProgress: () => LightingInProgress,
  LightingOperation: () => LightingOperation,
  LightingTransition: () => LightingTransition,
  LimitEnable: () => LimitEnable,
  LockStatus: () => LockStatus,
  LogStatus: () => LogStatus,
  LoggingType: () => LoggingType,
  Maintenance: () => Maintenance,
  MaxApduLengthAccepted: () => MaxApduLengthAccepted,
  MaxSegmentsAccepted: () => MaxSegmentsAccepted,
  NetworkLayerMessageType: () => NetworkLayerMessageType,
  NetworkNumberQuality: () => NetworkNumberQuality,
  NetworkPortCommand: () => NetworkPortCommand,
  NetworkType: () => NetworkType,
  NodeType: () => NodeType,
  NotifyType: () => NotifyType,
  NpduControlBit: () => NpduControlBit,
  NpduControlPriority: () => NpduControlPriority,
  ObjectType: () => ObjectType,
  ObjectTypesSupported: () => ObjectTypesSupported,
  PDU_TYPE_MASK: () => PDU_TYPE_MASK,
  PduConReqBit: () => PduConReqBit,
  PduSegAckBit: () => PduSegAckBit,
  PduType: () => PduType,
  Polarity: () => Polarity,
  ProgramError: () => ProgramError,
  ProgramRequest: () => ProgramRequest,
  ProgramState: () => ProgramState,
  PropertyIdentifier: () => PropertyIdentifier,
  PropertyStates: () => PropertyStates,
  ProtocolLevel: () => ProtocolLevel,
  ReadRangeType: () => ReadRangeType,
  ReinitializedState: () => ReinitializedState,
  RejectReason: () => RejectReason,
  Relationship: () => Relationship,
  Reliability: () => Reliability,
  RestartReason: () => RestartReason,
  ResultFlags: () => ResultFlags,
  SecurityLevel: () => SecurityLevel,
  SecurityPolicy: () => SecurityPolicy,
  Segmentation: () => Segmentation,
  ServicesSupported: () => ServicesSupported,
  ShedState: () => ShedState,
  SilencedState: () => SilencedState,
  StatusFlags: () => StatusFlags,
  TimeStamp: () => TimeStamp,
  TimerState: () => TimerState,
  TimerTransition: () => TimerTransition,
  UnconfirmedServiceChoice: () => UnconfirmedServiceChoice,
  VTClass: () => VTClass,
  WriteStatus: () => WriteStatus,
  getEnumName: () => getEnumName
});
var import_debug = __toESM(require("debug"));
var debug = (0, import_debug.default)("bacnet=enum=debug");
var trace = (0, import_debug.default)("bacnet=enum=trace");
function invertEnum(enumToInvert) {
  return Object.keys(enumToInvert).reduce((acc, key) => {
    const val = enumToInvert[key];
    acc[val] = key;
    return acc;
  }, {});
}
function getEnumName(group, value, addNumberValue = true, undefinedFallbackValue = void 0) {
  if (!Number.isInteger(value)) {
    throw new Error(
      'getEnumName() can only be passed an integer value, was given "' + value + '"'
    );
  }
  let foundEntry;
  try {
    const invertedGroup = invertEnum(group);
    foundEntry = invertedGroup[value];
    if (foundEntry === void 0 && undefinedFallbackValue) {
      foundEntry = undefinedFallbackValue;
    }
    if (foundEntry === void 0) {
      foundEntry = value.toString();
    } else if (addNumberValue) {
      let strinmanipulation = "";
      strinmanipulation += "(" + value + ")";
      foundEntry = foundEntry + strinmanipulation;
    }
  } catch (e) {
    trace(e.message);
    foundEntry = null;
  }
  return foundEntry;
}
var PDU_TYPE_MASK = 240;
var ASN1_MAX_OBJECT = 1023;
var ASN1_INSTANCE_BITS = 22;
var ASN1_MAX_INSTANCE = 4194303;
var ASN1_MAX_BITSTRING_BYTES = 15;
var ASN1_ARRAY_ALL = 4294967295;
var ASN1_NO_PRIORITY = 0;
var ASN1_MIN_PRIORITY = 1;
var ASN1_MAX_PRIORITY = 16;
var ASN1_MAX_APPLICATION_TAG = 16;
var ASN1_MAX_OBJECT_TYPE = 1024;
var ASN1_MAX_PROPERTY_ID = 4194303;
var BVLL_TYPE_BACNET_IP = 129;
var BVLC_HEADER_LENGTH = 4;
var ConfirmedServiceChoice = /* @__PURE__ */ ((ConfirmedServiceChoice2) => {
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["READ_PROPERTY"] = 12] = "READ_PROPERTY";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["VT_OPEN"] = 21] = "VT_OPEN";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["VT_CLOSE"] = 22] = "VT_CLOSE";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["VT_DATA"] = 23] = "VT_DATA";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["READ_RANGE"] = 26] = "READ_RANGE";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["LIFE_SAFETY_OPERATION"] = 27] = "LIFE_SAFETY_OPERATION";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["SUBSCRIBE_COV_PROPERTY"] = 28] = "SUBSCRIBE_COV_PROPERTY";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["GET_EVENT_INFORMATION"] = 29] = "GET_EVENT_INFORMATION";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 30] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
  ConfirmedServiceChoice2[ConfirmedServiceChoice2["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 31] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
  return ConfirmedServiceChoice2;
})(ConfirmedServiceChoice || {});
var UnconfirmedServiceChoice = /* @__PURE__ */ ((UnconfirmedServiceChoice2) => {
  UnconfirmedServiceChoice2[UnconfirmedServiceChoice2["I_AM"] = 0] = "I_AM";
  UnconfirmedServiceChoice2[UnconfirmedServiceChoice2["I_HAVE"] = 1] = "I_HAVE";
  UnconfirmedServiceChoice2[UnconfirmedServiceChoice2["UNCONFIRMED_COV_NOTIFICATION"] = 2] = "UNCONFIRMED_COV_NOTIFICATION";
  UnconfirmedServiceChoice2[UnconfirmedServiceChoice2["UNCONFIRMED_EVENT_NOTIFICATION"] = 3] = "UNCONFIRMED_EVENT_NOTIFICATION";
  UnconfirmedServiceChoice2[UnconfirmedServiceChoice2["UNCONFIRMED_PRIVATE_TRANSFER"] = 4] = "UNCONFIRMED_PRIVATE_TRANSFER";
  UnconfirmedServiceChoice2[UnconfirmedServiceChoice2["UNCONFIRMED_TEXT_MESSAGE"] = 5] = "UNCONFIRMED_TEXT_MESSAGE";
  UnconfirmedServiceChoice2[UnconfirmedServiceChoice2["TIME_SYNCHRONIZATION"] = 6] = "TIME_SYNCHRONIZATION";
  UnconfirmedServiceChoice2[UnconfirmedServiceChoice2["WHO_HAS"] = 7] = "WHO_HAS";
  UnconfirmedServiceChoice2[UnconfirmedServiceChoice2["WHO_IS"] = 8] = "WHO_IS";
  UnconfirmedServiceChoice2[UnconfirmedServiceChoice2["UTC_TIME_SYNCHRONIZATION"] = 9] = "UTC_TIME_SYNCHRONIZATION";
  UnconfirmedServiceChoice2[UnconfirmedServiceChoice2["WRITE_GROUP"] = 10] = "WRITE_GROUP";
  UnconfirmedServiceChoice2[UnconfirmedServiceChoice2["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 11] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
  return UnconfirmedServiceChoice2;
})(UnconfirmedServiceChoice || {});
var AbortReason = /* @__PURE__ */ ((AbortReason2) => {
  AbortReason2[AbortReason2["OTHER"] = 0] = "OTHER";
  AbortReason2[AbortReason2["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
  AbortReason2[AbortReason2["INVALID_APDU_IN_THIS_STATE"] = 2] = "INVALID_APDU_IN_THIS_STATE";
  AbortReason2[AbortReason2["PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 3] = "PREEMPTED_BY_HIGHER_PRIORITY_TASK";
  AbortReason2[AbortReason2["SEGMENTATION_NOT_SUPPORTED"] = 4] = "SEGMENTATION_NOT_SUPPORTED";
  AbortReason2[AbortReason2["SECURITY_ERROR"] = 5] = "SECURITY_ERROR";
  AbortReason2[AbortReason2["INSUFFICIENT_SECURITY"] = 6] = "INSUFFICIENT_SECURITY";
  AbortReason2[AbortReason2["WINDOW_SIZE_OUT_OF_RANGE"] = 7] = "WINDOW_SIZE_OUT_OF_RANGE";
  AbortReason2[AbortReason2["APPLICATION_EXCEEDED_REPLY_TIME"] = 8] = "APPLICATION_EXCEEDED_REPLY_TIME";
  AbortReason2[AbortReason2["OUT_OF_RESOURCES"] = 9] = "OUT_OF_RESOURCES";
  AbortReason2[AbortReason2["TSM_TIMEOUT"] = 10] = "TSM_TIMEOUT";
  AbortReason2[AbortReason2["APDU_TOO_LONG"] = 11] = "APDU_TOO_LONG";
  return AbortReason2;
})(AbortReason || {});
var RejectReason = /* @__PURE__ */ ((RejectReason2) => {
  RejectReason2[RejectReason2["OTHER"] = 0] = "OTHER";
  RejectReason2[RejectReason2["BUFFER_OVERFLOW"] = 1] = "BUFFER_OVERFLOW";
  RejectReason2[RejectReason2["INCONSISTENT_PARAMETERS"] = 2] = "INCONSISTENT_PARAMETERS";
  RejectReason2[RejectReason2["INVALID_PARAMETER_DATA_TYPE"] = 3] = "INVALID_PARAMETER_DATA_TYPE";
  RejectReason2[RejectReason2["INVALID_TAG"] = 4] = "INVALID_TAG";
  RejectReason2[RejectReason2["MISSING_REQUIRED_PARAMETER"] = 5] = "MISSING_REQUIRED_PARAMETER";
  RejectReason2[RejectReason2["PARAMETER_OUT_OF_RANGE"] = 6] = "PARAMETER_OUT_OF_RANGE";
  RejectReason2[RejectReason2["TOO_MANY_ARGUMENTS"] = 7] = "TOO_MANY_ARGUMENTS";
  RejectReason2[RejectReason2["UNDEFINED_ENUMERATION"] = 8] = "UNDEFINED_ENUMERATION";
  RejectReason2[RejectReason2["UNRECOGNIZED_SERVICE"] = 9] = "UNRECOGNIZED_SERVICE";
  return RejectReason2;
})(RejectReason || {});
var ErrorClass = /* @__PURE__ */ ((ErrorClass2) => {
  ErrorClass2[ErrorClass2["DEVICE"] = 0] = "DEVICE";
  ErrorClass2[ErrorClass2["OBJECT"] = 1] = "OBJECT";
  ErrorClass2[ErrorClass2["PROPERTY"] = 2] = "PROPERTY";
  ErrorClass2[ErrorClass2["RESOURCES"] = 3] = "RESOURCES";
  ErrorClass2[ErrorClass2["SECURITY"] = 4] = "SECURITY";
  ErrorClass2[ErrorClass2["SERVICES"] = 5] = "SERVICES";
  ErrorClass2[ErrorClass2["VT"] = 6] = "VT";
  ErrorClass2[ErrorClass2["COMMUNICATION"] = 7] = "COMMUNICATION";
  return ErrorClass2;
})(ErrorClass || {});
var ErrorClassName = invertEnum(
  ErrorClass
);
var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {
  ErrorCode2[ErrorCode2["ABORT_APDU_TOO_LONG"] = 123] = "ABORT_APDU_TOO_LONG";
  ErrorCode2[ErrorCode2["ABORT_APPLICATION_EXCEEDED_REPLY_TIME"] = 124] = "ABORT_APPLICATION_EXCEEDED_REPLY_TIME";
  ErrorCode2[ErrorCode2["ABORT_BUFFER_OVERFLOW"] = 51] = "ABORT_BUFFER_OVERFLOW";
  ErrorCode2[ErrorCode2["ABORT_INSUFFICIENT_SECURITY"] = 135] = "ABORT_INSUFFICIENT_SECURITY";
  ErrorCode2[ErrorCode2["ABORT_INVALID_APDU_IN_THIS_STATE"] = 52] = "ABORT_INVALID_APDU_IN_THIS_STATE";
  ErrorCode2[ErrorCode2["ABORT_OTHER"] = 56] = "ABORT_OTHER";
  ErrorCode2[ErrorCode2["ABORT_OUT_OF_RESOURCES"] = 125] = "ABORT_OUT_OF_RESOURCES";
  ErrorCode2[ErrorCode2["ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK"] = 53] = "ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK";
  ErrorCode2[ErrorCode2["ABORT_PROPRIETARY"] = 55] = "ABORT_PROPRIETARY";
  ErrorCode2[ErrorCode2["ABORT_SECURITY_ERROR"] = 136] = "ABORT_SECURITY_ERROR";
  ErrorCode2[ErrorCode2["ABORT_SEGMENTATION_NOT_SUPPORTED"] = 54] = "ABORT_SEGMENTATION_NOT_SUPPORTED";
  ErrorCode2[ErrorCode2["ABORT_TSM_TIMEOUT"] = 126] = "ABORT_TSM_TIMEOUT";
  ErrorCode2[ErrorCode2["ABORT_WINDOW_SIZE_OUT_OF_RANGE"] = 127] = "ABORT_WINDOW_SIZE_OUT_OF_RANGE";
  ErrorCode2[ErrorCode2["ACCESS_DENIED"] = 85] = "ACCESS_DENIED";
  ErrorCode2[ErrorCode2["ADDRESSING_ERROR"] = 115] = "ADDRESSING_ERROR";
  ErrorCode2[ErrorCode2["BAD_DESTINATION_ADDRESS"] = 86] = "BAD_DESTINATION_ADDRESS";
  ErrorCode2[ErrorCode2["BAD_DESTINATION_DEVICE_ID"] = 87] = "BAD_DESTINATION_DEVICE_ID";
  ErrorCode2[ErrorCode2["BAD_SIGNATURE"] = 88] = "BAD_SIGNATURE";
  ErrorCode2[ErrorCode2["BAD_SOURCE_ADDRESS"] = 89] = "BAD_SOURCE_ADDRESS";
  ErrorCode2[ErrorCode2["BAD_TIMESTAMP"] = 90] = "BAD_TIMESTAMP";
  ErrorCode2[ErrorCode2["BUSY"] = 82] = "BUSY";
  ErrorCode2[ErrorCode2["CANNOT_USE_KEY"] = 91] = "CANNOT_USE_KEY";
  ErrorCode2[ErrorCode2["CANNOT_VERIFY_MESSAGE_ID"] = 92] = "CANNOT_VERIFY_MESSAGE_ID";
  ErrorCode2[ErrorCode2["CHARACTER_SET_NOT_SUPPORTED"] = 41] = "CHARACTER_SET_NOT_SUPPORTED";
  ErrorCode2[ErrorCode2["COMMUNICATION_DISABLED"] = 83] = "COMMUNICATION_DISABLED";
  ErrorCode2[ErrorCode2["CONFIGURATION_IN_PROGRESS"] = 2] = "CONFIGURATION_IN_PROGRESS";
  ErrorCode2[ErrorCode2["CORRECT_KEY_REVISION"] = 93] = "CORRECT_KEY_REVISION";
  ErrorCode2[ErrorCode2["COV_SUBSCRIPTION_FAILED"] = 43] = "COV_SUBSCRIPTION_FAILED";
  ErrorCode2[ErrorCode2["DATATYPE_NOT_SUPPORTED"] = 47] = "DATATYPE_NOT_SUPPORTED";
  ErrorCode2[ErrorCode2["DELETE_FDT_ENTRY_FAILED"] = 120] = "DELETE_FDT_ENTRY_FAILED";
  ErrorCode2[ErrorCode2["DESTINATION_DEVICE_ID_REQUIRED"] = 94] = "DESTINATION_DEVICE_ID_REQUIRED";
  ErrorCode2[ErrorCode2["DEVICE_BUSY"] = 3] = "DEVICE_BUSY";
  ErrorCode2[ErrorCode2["DISTRIBUTE_BROADCAST_FAILED"] = 121] = "DISTRIBUTE_BROADCAST_FAILED";
  ErrorCode2[ErrorCode2["DUPLICATE_ENTRY"] = 137] = "DUPLICATE_ENTRY";
  ErrorCode2[ErrorCode2["DUPLICATE_MESSAGE"] = 95] = "DUPLICATE_MESSAGE";
  ErrorCode2[ErrorCode2["DUPLICATE_NAME"] = 48] = "DUPLICATE_NAME";
  ErrorCode2[ErrorCode2["DUPLICATE_OBJECT_ID"] = 49] = "DUPLICATE_OBJECT_ID";
  ErrorCode2[ErrorCode2["DYNAMIC_CREATION_NOT_SUPPORTED"] = 4] = "DYNAMIC_CREATION_NOT_SUPPORTED";
  ErrorCode2[ErrorCode2["ENCRYPTION_NOT_CONFIGURED"] = 96] = "ENCRYPTION_NOT_CONFIGURED";
  ErrorCode2[ErrorCode2["ENCRYPTION_REQUIRED"] = 97] = "ENCRYPTION_REQUIRED";
  ErrorCode2[ErrorCode2["FILE_ACCESS_DENIED"] = 5] = "FILE_ACCESS_DENIED";
  ErrorCode2[ErrorCode2["FILE_FULL"] = 128] = "FILE_FULL";
  ErrorCode2[ErrorCode2["INCONSISTENT_CONFIGURATION"] = 129] = "INCONSISTENT_CONFIGURATION";
  ErrorCode2[ErrorCode2["INCONSISTENT_OBJECT_TYPE"] = 130] = "INCONSISTENT_OBJECT_TYPE";
  ErrorCode2[ErrorCode2["INCONSISTENT_PARAMETERS"] = 7] = "INCONSISTENT_PARAMETERS";
  ErrorCode2[ErrorCode2["INCONSISTENT_SELECTION_CRITERION"] = 8] = "INCONSISTENT_SELECTION_CRITERION";
  ErrorCode2[ErrorCode2["INCORRECT_KEY"] = 98] = "INCORRECT_KEY";
  ErrorCode2[ErrorCode2["INTERNAL_ERROR"] = 131] = "INTERNAL_ERROR";
  ErrorCode2[ErrorCode2["INVALID_ARRAY_INDEX"] = 42] = "INVALID_ARRAY_INDEX";
  ErrorCode2[ErrorCode2["INVALID_CONFIGURATION_DATA"] = 46] = "INVALID_CONFIGURATION_DATA";
  ErrorCode2[ErrorCode2["INVALID_DATA_TYPE"] = 9] = "INVALID_DATA_TYPE";
  ErrorCode2[ErrorCode2["INVALID_EVENT_STATE"] = 73] = "INVALID_EVENT_STATE";
  ErrorCode2[ErrorCode2["INVALID_FILE_ACCESS_METHOD"] = 10] = "INVALID_FILE_ACCESS_METHOD";
  ErrorCode2[ErrorCode2["INVALID_FILE_START_POSITION"] = 11] = "INVALID_FILE_START_POSITION";
  ErrorCode2[ErrorCode2["INVALID_KEY_DATA"] = 99] = "INVALID_KEY_DATA";
  ErrorCode2[ErrorCode2["INVALID_PARAMETER_DATA_TYPE"] = 13] = "INVALID_PARAMETER_DATA_TYPE";
  ErrorCode2[ErrorCode2["INVALID_TAG"] = 57] = "INVALID_TAG";
  ErrorCode2[ErrorCode2["INVALID_TIMESTAMP"] = 14] = "INVALID_TIMESTAMP";
  ErrorCode2[ErrorCode2["INVALID_VALUE_IN_THIS_STATE"] = 138] = "INVALID_VALUE_IN_THIS_STATE";
  ErrorCode2[ErrorCode2["KEY_UPDATE_IN_PROGRESS"] = 100] = "KEY_UPDATE_IN_PROGRESS";
  ErrorCode2[ErrorCode2["LIST_ELEMENT_NOT_FOUND"] = 81] = "LIST_ELEMENT_NOT_FOUND";
  ErrorCode2[ErrorCode2["LOG_BUFFER_FULL"] = 75] = "LOG_BUFFER_FULL";
  ErrorCode2[ErrorCode2["LOGGED_VALUE_PURGED"] = 76] = "LOGGED_VALUE_PURGED";
  ErrorCode2[ErrorCode2["MALFORMED_MESSAGE"] = 101] = "MALFORMED_MESSAGE";
  ErrorCode2[ErrorCode2["MESSAGE_TOO_LONG"] = 113] = "MESSAGE_TOO_LONG";
  ErrorCode2[ErrorCode2["MISSING_REQUIRED_PARAMETER"] = 16] = "MISSING_REQUIRED_PARAMETER";
  ErrorCode2[ErrorCode2["NETWORK_DOWN"] = 58] = "NETWORK_DOWN";
  ErrorCode2[ErrorCode2["NO_ALARM_CONFIGURED"] = 74] = "NO_ALARM_CONFIGURED";
  ErrorCode2[ErrorCode2["NO_OBJECTS_OF_SPECIFIED_TYPE"] = 17] = "NO_OBJECTS_OF_SPECIFIED_TYPE";
  ErrorCode2[ErrorCode2["NO_PROPERTY_SPECIFIED"] = 77] = "NO_PROPERTY_SPECIFIED";
  ErrorCode2[ErrorCode2["NO_SPACE_FOR_OBJECT"] = 18] = "NO_SPACE_FOR_OBJECT";
  ErrorCode2[ErrorCode2["NO_SPACE_TO_ADD_LIST_ELEMENT"] = 19] = "NO_SPACE_TO_ADD_LIST_ELEMENT";
  ErrorCode2[ErrorCode2["NO_SPACE_TO_WRITE_PROPERTY"] = 20] = "NO_SPACE_TO_WRITE_PROPERTY";
  ErrorCode2[ErrorCode2["NO_VT_SESSIONS_AVAILABLE"] = 21] = "NO_VT_SESSIONS_AVAILABLE";
  ErrorCode2[ErrorCode2["NOT_CONFIGURED"] = 132] = "NOT_CONFIGURED";
  ErrorCode2[ErrorCode2["NOT_CONFIGURED_FOR_TRIGGERED_LOGGING"] = 78] = "NOT_CONFIGURED_FOR_TRIGGERED_LOGGING";
  ErrorCode2[ErrorCode2["NOT_COV_PROPERTY"] = 44] = "NOT_COV_PROPERTY";
  ErrorCode2[ErrorCode2["NOT_KEY_SERVER"] = 102] = "NOT_KEY_SERVER";
  ErrorCode2[ErrorCode2["NOT_ROUTER_TO_DNET"] = 110] = "NOT_ROUTER_TO_DNET";
  ErrorCode2[ErrorCode2["OBJECT_DELETION_NOT_PERMITTED"] = 23] = "OBJECT_DELETION_NOT_PERMITTED";
  ErrorCode2[ErrorCode2["OBJECT_IDENTIFIER_ALREADY_EXISTS"] = 24] = "OBJECT_IDENTIFIER_ALREADY_EXISTS";
  ErrorCode2[ErrorCode2["OPERATIONAL_PROBLEM"] = 25] = "OPERATIONAL_PROBLEM";
  ErrorCode2[ErrorCode2["OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED"] = 45] = "OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED";
  ErrorCode2[ErrorCode2["OTHER"] = 0] = "OTHER";
  ErrorCode2[ErrorCode2["OUT_OF_MEMORY"] = 133] = "OUT_OF_MEMORY";
  ErrorCode2[ErrorCode2["PARAMETER_OUT_OF_RANGE"] = 80] = "PARAMETER_OUT_OF_RANGE";
  ErrorCode2[ErrorCode2["PASSWORD_FAILURE"] = 26] = "PASSWORD_FAILURE";
  ErrorCode2[ErrorCode2["PROPERTY_IS_NOT_A_LIST"] = 22] = "PROPERTY_IS_NOT_A_LIST";
  ErrorCode2[ErrorCode2["PROPERTY_IS_NOT_AN_ARRAY"] = 50] = "PROPERTY_IS_NOT_AN_ARRAY";
  ErrorCode2[ErrorCode2["READ_ACCESS_DENIED"] = 27] = "READ_ACCESS_DENIED";
  ErrorCode2[ErrorCode2["READ_BDT_FAILED"] = 117] = "READ_BDT_FAILED";
  ErrorCode2[ErrorCode2["READ_FDT_FAILED"] = 119] = "READ_FDT_FAILED";
  ErrorCode2[ErrorCode2["REGISTER_FOREIGN_DEVICE_FAILED"] = 118] = "REGISTER_FOREIGN_DEVICE_FAILED";
  ErrorCode2[ErrorCode2["REJECT_BUFFER_OVERFLOW"] = 59] = "REJECT_BUFFER_OVERFLOW";
  ErrorCode2[ErrorCode2["REJECT_INCONSISTENT_PARAMETERS"] = 60] = "REJECT_INCONSISTENT_PARAMETERS";
  ErrorCode2[ErrorCode2["REJECT_INVALID_PARAMETER_DATA_TYPE"] = 61] = "REJECT_INVALID_PARAMETER_DATA_TYPE";
  ErrorCode2[ErrorCode2["REJECT_INVALID_TAG"] = 62] = "REJECT_INVALID_TAG";
  ErrorCode2[ErrorCode2["REJECT_MISSING_REQUIRED_PARAMETER"] = 63] = "REJECT_MISSING_REQUIRED_PARAMETER";
  ErrorCode2[ErrorCode2["REJECT_OTHER"] = 69] = "REJECT_OTHER";
  ErrorCode2[ErrorCode2["REJECT_PARAMETER_OUT_OF_RANGE"] = 64] = "REJECT_PARAMETER_OUT_OF_RANGE";
  ErrorCode2[ErrorCode2["REJECT_PROPRIETARY"] = 68] = "REJECT_PROPRIETARY";
  ErrorCode2[ErrorCode2["REJECT_TOO_MANY_ARGUMENTS"] = 65] = "REJECT_TOO_MANY_ARGUMENTS";
  ErrorCode2[ErrorCode2["REJECT_UNDEFINED_ENUMERATION"] = 66] = "REJECT_UNDEFINED_ENUMERATION";
  ErrorCode2[ErrorCode2["REJECT_UNRECOGNIZED_SERVICE"] = 67] = "REJECT_UNRECOGNIZED_SERVICE";
  ErrorCode2[ErrorCode2["ROUTER_BUSY"] = 111] = "ROUTER_BUSY";
  ErrorCode2[ErrorCode2["SECURITY_ERROR"] = 114] = "SECURITY_ERROR";
  ErrorCode2[ErrorCode2["SECURITY_NOT_CONFIGURED"] = 103] = "SECURITY_NOT_CONFIGURED";
  ErrorCode2[ErrorCode2["SERVICE_REQUEST_DENIED"] = 29] = "SERVICE_REQUEST_DENIED";
  ErrorCode2[ErrorCode2["SOURCE_SECURITY_REQUIRED"] = 104] = "SOURCE_SECURITY_REQUIRED";
  ErrorCode2[ErrorCode2["SUCCESS"] = 84] = "SUCCESS";
  ErrorCode2[ErrorCode2["TIMEOUT"] = 30] = "TIMEOUT";
  ErrorCode2[ErrorCode2["TOO_MANY_KEYS"] = 105] = "TOO_MANY_KEYS";
  ErrorCode2[ErrorCode2["UNKNOWN_AUTHENTICATION_TYPE"] = 106] = "UNKNOWN_AUTHENTICATION_TYPE";
  ErrorCode2[ErrorCode2["UNKNOWN_DEVICE"] = 70] = "UNKNOWN_DEVICE";
  ErrorCode2[ErrorCode2["UNKNOWN_FILE_SIZE"] = 122] = "UNKNOWN_FILE_SIZE";
  ErrorCode2[ErrorCode2["UNKNOWN_KEY"] = 107] = "UNKNOWN_KEY";
  ErrorCode2[ErrorCode2["UNKNOWN_KEY_REVISION"] = 108] = "UNKNOWN_KEY_REVISION";
  ErrorCode2[ErrorCode2["UNKNOWN_NETWORK_MESSAGE"] = 112] = "UNKNOWN_NETWORK_MESSAGE";
  ErrorCode2[ErrorCode2["UNKNOWN_OBJECT"] = 31] = "UNKNOWN_OBJECT";
  ErrorCode2[ErrorCode2["UNKNOWN_PROPERTY"] = 32] = "UNKNOWN_PROPERTY";
  ErrorCode2[ErrorCode2["UNKNOWN_ROUTE"] = 71] = "UNKNOWN_ROUTE";
  ErrorCode2[ErrorCode2["UNKNOWN_SOURCE_MESSAGE"] = 109] = "UNKNOWN_SOURCE_MESSAGE";
  ErrorCode2[ErrorCode2["UNKNOWN_SUBSCRIPTION"] = 79] = "UNKNOWN_SUBSCRIPTION";
  ErrorCode2[ErrorCode2["UNKNOWN_VT_CLASS"] = 34] = "UNKNOWN_VT_CLASS";
  ErrorCode2[ErrorCode2["UNKNOWN_VT_SESSION"] = 35] = "UNKNOWN_VT_SESSION";
  ErrorCode2[ErrorCode2["UNSUPPORTED_OBJECT_TYPE"] = 36] = "UNSUPPORTED_OBJECT_TYPE";
  ErrorCode2[ErrorCode2["VALUE_NOT_INITIALIZED"] = 72] = "VALUE_NOT_INITIALIZED";
  ErrorCode2[ErrorCode2["VALUE_OUT_OF_RANGE"] = 37] = "VALUE_OUT_OF_RANGE";
  ErrorCode2[ErrorCode2["VALUE_TOO_LONG"] = 134] = "VALUE_TOO_LONG";
  ErrorCode2[ErrorCode2["VT_SESSION_ALREADY_CLOSED"] = 38] = "VT_SESSION_ALREADY_CLOSED";
  ErrorCode2[ErrorCode2["VT_SESSION_TERMINATION_FAILURE"] = 39] = "VT_SESSION_TERMINATION_FAILURE";
  ErrorCode2[ErrorCode2["WRITE_ACCESS_DENIED"] = 40] = "WRITE_ACCESS_DENIED";
  ErrorCode2[ErrorCode2["WRITE_BDT_FAILED"] = 116] = "WRITE_BDT_FAILED";
  return ErrorCode2;
})(ErrorCode || {});
var ErrorCodeName = invertEnum(
  ErrorCode
);
var AccessAuthenticationFactorDisable = /* @__PURE__ */ ((AccessAuthenticationFactorDisable2) => {
  AccessAuthenticationFactorDisable2[AccessAuthenticationFactorDisable2["NONE"] = 0] = "NONE";
  AccessAuthenticationFactorDisable2[AccessAuthenticationFactorDisable2["DISABLED"] = 1] = "DISABLED";
  AccessAuthenticationFactorDisable2[AccessAuthenticationFactorDisable2["DISABLED_LOST"] = 2] = "DISABLED_LOST";
  AccessAuthenticationFactorDisable2[AccessAuthenticationFactorDisable2["DISABLED_STOLEN"] = 3] = "DISABLED_STOLEN";
  AccessAuthenticationFactorDisable2[AccessAuthenticationFactorDisable2["DISABLED_DAMAGED"] = 4] = "DISABLED_DAMAGED";
  AccessAuthenticationFactorDisable2[AccessAuthenticationFactorDisable2["DISABLED_DESTROYED"] = 5] = "DISABLED_DESTROYED";
  return AccessAuthenticationFactorDisable2;
})(AccessAuthenticationFactorDisable || {});
var AccessCredentialDisable = /* @__PURE__ */ ((AccessCredentialDisable2) => {
  AccessCredentialDisable2[AccessCredentialDisable2["NONE"] = 0] = "NONE";
  AccessCredentialDisable2[AccessCredentialDisable2["DISABLE"] = 1] = "DISABLE";
  AccessCredentialDisable2[AccessCredentialDisable2["DISABLE_MANUAL"] = 2] = "DISABLE_MANUAL";
  AccessCredentialDisable2[AccessCredentialDisable2["DISABLE_LOCKOUT"] = 3] = "DISABLE_LOCKOUT";
  return AccessCredentialDisable2;
})(AccessCredentialDisable || {});
var AccessCredentialDisableReason = /* @__PURE__ */ ((AccessCredentialDisableReason2) => {
  AccessCredentialDisableReason2[AccessCredentialDisableReason2["DISABLED"] = 0] = "DISABLED";
  AccessCredentialDisableReason2[AccessCredentialDisableReason2["DISABLED_NEEDS_PROVISIONING"] = 1] = "DISABLED_NEEDS_PROVISIONING";
  AccessCredentialDisableReason2[AccessCredentialDisableReason2["DISABLED_UNASSIGNED"] = 2] = "DISABLED_UNASSIGNED";
  AccessCredentialDisableReason2[AccessCredentialDisableReason2["DISABLED_NOT_YET_ACTIVE"] = 3] = "DISABLED_NOT_YET_ACTIVE";
  AccessCredentialDisableReason2[AccessCredentialDisableReason2["DISABLED_EXPIRED"] = 4] = "DISABLED_EXPIRED";
  AccessCredentialDisableReason2[AccessCredentialDisableReason2["DISABLED_LOCKOUT"] = 5] = "DISABLED_LOCKOUT";
  AccessCredentialDisableReason2[AccessCredentialDisableReason2["DISABLED_MAX_DAYS"] = 6] = "DISABLED_MAX_DAYS";
  AccessCredentialDisableReason2[AccessCredentialDisableReason2["DISABLED_MAX_USES"] = 7] = "DISABLED_MAX_USES";
  AccessCredentialDisableReason2[AccessCredentialDisableReason2["DISABLED_INACTIVITY"] = 8] = "DISABLED_INACTIVITY";
  AccessCredentialDisableReason2[AccessCredentialDisableReason2["DISABLED_MANUAL"] = 9] = "DISABLED_MANUAL";
  return AccessCredentialDisableReason2;
})(AccessCredentialDisableReason || {});
var AccessEvent = /* @__PURE__ */ ((AccessEvent2) => {
  AccessEvent2[AccessEvent2["NONE"] = 0] = "NONE";
  AccessEvent2[AccessEvent2["GRANTED"] = 1] = "GRANTED";
  AccessEvent2[AccessEvent2["MUSTER"] = 2] = "MUSTER";
  AccessEvent2[AccessEvent2["PASSBACK_DETECTED"] = 3] = "PASSBACK_DETECTED";
  AccessEvent2[AccessEvent2["DURESS"] = 4] = "DURESS";
  AccessEvent2[AccessEvent2["TRACE"] = 5] = "TRACE";
  AccessEvent2[AccessEvent2["LOCKOUT_MAX_ATTEMPTS"] = 6] = "LOCKOUT_MAX_ATTEMPTS";
  AccessEvent2[AccessEvent2["LOCKOUT_OTHER"] = 7] = "LOCKOUT_OTHER";
  AccessEvent2[AccessEvent2["LOCKOUT_RELINQUISHED"] = 8] = "LOCKOUT_RELINQUISHED";
  AccessEvent2[AccessEvent2["LOCKED_BY_HIGHER_PRIORITY"] = 9] = "LOCKED_BY_HIGHER_PRIORITY";
  AccessEvent2[AccessEvent2["OUT_OF_SERVICE"] = 10] = "OUT_OF_SERVICE";
  AccessEvent2[AccessEvent2["OUT_OF_SERVICE_RELINQUISHED"] = 11] = "OUT_OF_SERVICE_RELINQUISHED";
  AccessEvent2[AccessEvent2["ACCOMPANIMENT_BY"] = 12] = "ACCOMPANIMENT_BY";
  AccessEvent2[AccessEvent2["AUTHENTICATION_FACTOR_READ"] = 13] = "AUTHENTICATION_FACTOR_READ";
  AccessEvent2[AccessEvent2["AUTHORIZATION_DELAYED"] = 14] = "AUTHORIZATION_DELAYED";
  AccessEvent2[AccessEvent2["VERIFICATION_REQUIRED"] = 15] = "VERIFICATION_REQUIRED";
  AccessEvent2[AccessEvent2["NO_ENTRY_AFTER_GRANTED"] = 16] = "NO_ENTRY_AFTER_GRANTED";
  AccessEvent2[AccessEvent2["DENIED_DENY_ALL"] = 128] = "DENIED_DENY_ALL";
  AccessEvent2[AccessEvent2["DENIED_UNKNOWN_CREDENTIAL"] = 129] = "DENIED_UNKNOWN_CREDENTIAL";
  AccessEvent2[AccessEvent2["DENIED_AUTHENTICATION_UNAVAILABLE"] = 130] = "DENIED_AUTHENTICATION_UNAVAILABLE";
  AccessEvent2[AccessEvent2["DENIED_AUTHENTICATION_FACTOR_TIMEOUT"] = 131] = "DENIED_AUTHENTICATION_FACTOR_TIMEOUT";
  AccessEvent2[AccessEvent2["DENIED_INCORRECT_AUTHENTICATION_FACTOR"] = 132] = "DENIED_INCORRECT_AUTHENTICATION_FACTOR";
  AccessEvent2[AccessEvent2["DENIED_ZONE_NO_ACCESS_RIGHTS"] = 133] = "DENIED_ZONE_NO_ACCESS_RIGHTS";
  AccessEvent2[AccessEvent2["DENIED_POINT_NO_ACCESS_RIGHTS"] = 134] = "DENIED_POINT_NO_ACCESS_RIGHTS";
  AccessEvent2[AccessEvent2["DENIED_NO_ACCESS_RIGHTS"] = 135] = "DENIED_NO_ACCESS_RIGHTS";
  AccessEvent2[AccessEvent2["DENIED_OUT_OF_TIME_RANGE"] = 136] = "DENIED_OUT_OF_TIME_RANGE";
  AccessEvent2[AccessEvent2["DENIED_THREAT_LEVEL"] = 137] = "DENIED_THREAT_LEVEL";
  AccessEvent2[AccessEvent2["DENIED_PASSBACK"] = 138] = "DENIED_PASSBACK";
  AccessEvent2[AccessEvent2["DENIED_UNEXPECTED_LOCATION_USAGE"] = 139] = "DENIED_UNEXPECTED_LOCATION_USAGE";
  AccessEvent2[AccessEvent2["DENIED_MAX_ATTEMPTS"] = 140] = "DENIED_MAX_ATTEMPTS";
  AccessEvent2[AccessEvent2["DENIED_LOWER_OCCUPANCY_LIMIT"] = 141] = "DENIED_LOWER_OCCUPANCY_LIMIT";
  AccessEvent2[AccessEvent2["DENIED_UPPER_OCCUPANCY_LIMIT"] = 142] = "DENIED_UPPER_OCCUPANCY_LIMIT";
  AccessEvent2[AccessEvent2["DENIED_AUTHENTICATION_FACTOR_LOST"] = 143] = "DENIED_AUTHENTICATION_FACTOR_LOST";
  AccessEvent2[AccessEvent2["DENIED_AUTHENTICATION_FACTOR_STOLEN"] = 144] = "DENIED_AUTHENTICATION_FACTOR_STOLEN";
  AccessEvent2[AccessEvent2["DENIED_AUTHENTICATION_FACTOR_DAMAGED"] = 145] = "DENIED_AUTHENTICATION_FACTOR_DAMAGED";
  AccessEvent2[AccessEvent2["DENIED_AUTHENTICATION_FACTOR_DESTROYED"] = 146] = "DENIED_AUTHENTICATION_FACTOR_DESTROYED";
  AccessEvent2[AccessEvent2["DENIED_AUTHENTICATION_FACTOR_DISABLED"] = 147] = "DENIED_AUTHENTICATION_FACTOR_DISABLED";
  AccessEvent2[AccessEvent2["DENIED_AUTHENTICATION_FACTOR_ERROR"] = 148] = "DENIED_AUTHENTICATION_FACTOR_ERROR";
  AccessEvent2[AccessEvent2["DENIED_CREDENTIAL_UNASSIGNED"] = 149] = "DENIED_CREDENTIAL_UNASSIGNED";
  AccessEvent2[AccessEvent2["DENIED_CREDENTIAL_NOT_PROVISIONED"] = 150] = "DENIED_CREDENTIAL_NOT_PROVISIONED";
  AccessEvent2[AccessEvent2["DENIED_CREDENTIAL_NOT_YET_ACTIVE"] = 151] = "DENIED_CREDENTIAL_NOT_YET_ACTIVE";
  AccessEvent2[AccessEvent2["DENIED_CREDENTIAL_EXPIRED"] = 152] = "DENIED_CREDENTIAL_EXPIRED";
  AccessEvent2[AccessEvent2["DENIED_CREDENTIAL_MANUAL_DISABLE"] = 153] = "DENIED_CREDENTIAL_MANUAL_DISABLE";
  AccessEvent2[AccessEvent2["DENIED_CREDENTIAL_LOCKOUT"] = 154] = "DENIED_CREDENTIAL_LOCKOUT";
  AccessEvent2[AccessEvent2["DENIED_CREDENTIAL_MAX_DAYS"] = 155] = "DENIED_CREDENTIAL_MAX_DAYS";
  AccessEvent2[AccessEvent2["DENIED_CREDENTIAL_MAX_USES"] = 156] = "DENIED_CREDENTIAL_MAX_USES";
  AccessEvent2[AccessEvent2["DENIED_CREDENTIAL_INACTIVITY"] = 157] = "DENIED_CREDENTIAL_INACTIVITY";
  AccessEvent2[AccessEvent2["DENIED_CREDENTIAL_DISABLED"] = 158] = "DENIED_CREDENTIAL_DISABLED";
  AccessEvent2[AccessEvent2["DENIED_NO_ACCOMPANIMENT"] = 159] = "DENIED_NO_ACCOMPANIMENT";
  AccessEvent2[AccessEvent2["DENIED_INCORRECT_ACCOMPANIMENT"] = 160] = "DENIED_INCORRECT_ACCOMPANIMENT";
  AccessEvent2[AccessEvent2["DENIED_LOCKOUT"] = 161] = "DENIED_LOCKOUT";
  AccessEvent2[AccessEvent2["DENIED_VERIFICATION_FAILED"] = 162] = "DENIED_VERIFICATION_FAILED";
  AccessEvent2[AccessEvent2["DENIED_VERIFICATION_TIMEOUT"] = 163] = "DENIED_VERIFICATION_TIMEOUT";
  AccessEvent2[AccessEvent2["DENIED_OTHER"] = 164] = "DENIED_OTHER";
  return AccessEvent2;
})(AccessEvent || {});
var AccessPassbackMode = /* @__PURE__ */ ((AccessPassbackMode2) => {
  AccessPassbackMode2[AccessPassbackMode2["PASSBACK_OFF"] = 0] = "PASSBACK_OFF";
  AccessPassbackMode2[AccessPassbackMode2["HARD_PASSBACK"] = 1] = "HARD_PASSBACK";
  AccessPassbackMode2[AccessPassbackMode2["SOFT_PASSBACK"] = 2] = "SOFT_PASSBACK";
  return AccessPassbackMode2;
})(AccessPassbackMode || {});
var AccessUserType = /* @__PURE__ */ ((AccessUserType2) => {
  AccessUserType2[AccessUserType2["ASSET"] = 0] = "ASSET";
  AccessUserType2[AccessUserType2["GROUP"] = 1] = "GROUP";
  AccessUserType2[AccessUserType2["PERSON"] = 2] = "PERSON";
  return AccessUserType2;
})(AccessUserType || {});
var AccessZoneOccupancyState = /* @__PURE__ */ ((AccessZoneOccupancyState2) => {
  AccessZoneOccupancyState2[AccessZoneOccupancyState2["NORMAL"] = 0] = "NORMAL";
  AccessZoneOccupancyState2[AccessZoneOccupancyState2["BELOW_LOWER_LIMIT"] = 1] = "BELOW_LOWER_LIMIT";
  AccessZoneOccupancyState2[AccessZoneOccupancyState2["AT_LOWER_LIMIT"] = 2] = "AT_LOWER_LIMIT";
  AccessZoneOccupancyState2[AccessZoneOccupancyState2["AT_UPPER_LIMIT"] = 3] = "AT_UPPER_LIMIT";
  AccessZoneOccupancyState2[AccessZoneOccupancyState2["ABOVE_UPPER_LIMIT"] = 4] = "ABOVE_UPPER_LIMIT";
  AccessZoneOccupancyState2[AccessZoneOccupancyState2["DISABLED"] = 5] = "DISABLED";
  AccessZoneOccupancyState2[AccessZoneOccupancyState2["NOT_SUPPORTED"] = 6] = "NOT_SUPPORTED";
  return AccessZoneOccupancyState2;
})(AccessZoneOccupancyState || {});
var Action = /* @__PURE__ */ ((Action2) => {
  Action2[Action2["DIRECT"] = 0] = "DIRECT";
  Action2[Action2["REVERSE"] = 1] = "REVERSE";
  return Action2;
})(Action || {});
var AuthenticationFactorType = /* @__PURE__ */ ((AuthenticationFactorType2) => {
  AuthenticationFactorType2[AuthenticationFactorType2["UNDEFINED"] = 0] = "UNDEFINED";
  AuthenticationFactorType2[AuthenticationFactorType2["ERROR"] = 1] = "ERROR";
  AuthenticationFactorType2[AuthenticationFactorType2["CUSTOM"] = 2] = "CUSTOM";
  AuthenticationFactorType2[AuthenticationFactorType2["SIMPLE_NUMBER16"] = 3] = "SIMPLE_NUMBER16";
  AuthenticationFactorType2[AuthenticationFactorType2["SIMPLE_NUMBER32"] = 4] = "SIMPLE_NUMBER32";
  AuthenticationFactorType2[AuthenticationFactorType2["SIMPLE_NUMBER56"] = 5] = "SIMPLE_NUMBER56";
  AuthenticationFactorType2[AuthenticationFactorType2["SIMPLE_ALPHA_NUMERIC"] = 6] = "SIMPLE_ALPHA_NUMERIC";
  AuthenticationFactorType2[AuthenticationFactorType2["ABA_TRACK2"] = 7] = "ABA_TRACK2";
  AuthenticationFactorType2[AuthenticationFactorType2["WIEGAND26"] = 8] = "WIEGAND26";
  AuthenticationFactorType2[AuthenticationFactorType2["WIEGAND37"] = 9] = "WIEGAND37";
  AuthenticationFactorType2[AuthenticationFactorType2["WIEGAND37_FACILITY"] = 10] = "WIEGAND37_FACILITY";
  AuthenticationFactorType2[AuthenticationFactorType2["FACILITY16_CARD32"] = 11] = "FACILITY16_CARD32";
  AuthenticationFactorType2[AuthenticationFactorType2["FACILITY32_CARD32"] = 12] = "FACILITY32_CARD32";
  AuthenticationFactorType2[AuthenticationFactorType2["FASC_N"] = 13] = "FASC_N";
  AuthenticationFactorType2[AuthenticationFactorType2["FASC_N_BCD"] = 14] = "FASC_N_BCD";
  AuthenticationFactorType2[AuthenticationFactorType2["FASC_N_LARGE"] = 15] = "FASC_N_LARGE";
  AuthenticationFactorType2[AuthenticationFactorType2["FASC_N_LARGE_BCD"] = 16] = "FASC_N_LARGE_BCD";
  AuthenticationFactorType2[AuthenticationFactorType2["GSA75"] = 17] = "GSA75";
  AuthenticationFactorType2[AuthenticationFactorType2["CHUID"] = 18] = "CHUID";
  AuthenticationFactorType2[AuthenticationFactorType2["CHUID_FULL"] = 19] = "CHUID_FULL";
  AuthenticationFactorType2[AuthenticationFactorType2["GUID"] = 20] = "GUID";
  AuthenticationFactorType2[AuthenticationFactorType2["CBEFF_A"] = 21] = "CBEFF_A";
  AuthenticationFactorType2[AuthenticationFactorType2["CBEFF_B"] = 22] = "CBEFF_B";
  AuthenticationFactorType2[AuthenticationFactorType2["CBEFF_C"] = 23] = "CBEFF_C";
  AuthenticationFactorType2[AuthenticationFactorType2["USER_PASSWORD"] = 24] = "USER_PASSWORD";
  return AuthenticationFactorType2;
})(AuthenticationFactorType || {});
var AuthenticationStatus = /* @__PURE__ */ ((AuthenticationStatus2) => {
  AuthenticationStatus2[AuthenticationStatus2["NOT_READY"] = 0] = "NOT_READY";
  AuthenticationStatus2[AuthenticationStatus2["READY"] = 1] = "READY";
  AuthenticationStatus2[AuthenticationStatus2["DISABLED"] = 2] = "DISABLED";
  AuthenticationStatus2[AuthenticationStatus2["WAITING_FOR_AUTHENTICATION_FACTOR"] = 3] = "WAITING_FOR_AUTHENTICATION_FACTOR";
  AuthenticationStatus2[AuthenticationStatus2["WAITING_FOR_ACCOMPANIMENT"] = 4] = "WAITING_FOR_ACCOMPANIMENT";
  AuthenticationStatus2[AuthenticationStatus2["WAITING_FOR_VERIFICATION"] = 5] = "WAITING_FOR_VERIFICATION";
  AuthenticationStatus2[AuthenticationStatus2["IN_PROGRESS"] = 6] = "IN_PROGRESS";
  return AuthenticationStatus2;
})(AuthenticationStatus || {});
var AuthorizationExemption = /* @__PURE__ */ ((AuthorizationExemption2) => {
  AuthorizationExemption2[AuthorizationExemption2["PASSBACK"] = 0] = "PASSBACK";
  AuthorizationExemption2[AuthorizationExemption2["OCCUPANCY_CHECK"] = 1] = "OCCUPANCY_CHECK";
  AuthorizationExemption2[AuthorizationExemption2["ACCESS_RIGHTS"] = 2] = "ACCESS_RIGHTS";
  AuthorizationExemption2[AuthorizationExemption2["LOCKOUT"] = 3] = "LOCKOUT";
  AuthorizationExemption2[AuthorizationExemption2["DENY"] = 4] = "DENY";
  AuthorizationExemption2[AuthorizationExemption2["VERIFICATION"] = 5] = "VERIFICATION";
  AuthorizationExemption2[AuthorizationExemption2["AUTHORIZATION_DELAY"] = 6] = "AUTHORIZATION_DELAY";
  return AuthorizationExemption2;
})(AuthorizationExemption || {});
var AuthorizationMode = /* @__PURE__ */ ((AuthorizationMode2) => {
  AuthorizationMode2[AuthorizationMode2["AUTHORIZE"] = 0] = "AUTHORIZE";
  AuthorizationMode2[AuthorizationMode2["GRANT_ACTIVE"] = 1] = "GRANT_ACTIVE";
  AuthorizationMode2[AuthorizationMode2["DENY_ALL"] = 2] = "DENY_ALL";
  AuthorizationMode2[AuthorizationMode2["VERIFICATION_REQUIRED"] = 3] = "VERIFICATION_REQUIRED";
  AuthorizationMode2[AuthorizationMode2["AUTHORIZATION_DELAYED"] = 4] = "AUTHORIZATION_DELAYED";
  AuthorizationMode2[AuthorizationMode2["NONE"] = 5] = "NONE";
  return AuthorizationMode2;
})(AuthorizationMode || {});
var BackupState = /* @__PURE__ */ ((BackupState2) => {
  BackupState2[BackupState2["IDLE"] = 0] = "IDLE";
  BackupState2[BackupState2["PREPARING_FOR_BACKUP"] = 1] = "PREPARING_FOR_BACKUP";
  BackupState2[BackupState2["PREPARING_FOR_RESTORE"] = 2] = "PREPARING_FOR_RESTORE";
  BackupState2[BackupState2["PERFORMING_A_BACKUP"] = 3] = "PERFORMING_A_BACKUP";
  BackupState2[BackupState2["PERFORMING_A_RESTORE"] = 4] = "PERFORMING_A_RESTORE";
  BackupState2[BackupState2["BACKUP_FAILURE"] = 5] = "BACKUP_FAILURE";
  BackupState2[BackupState2["RESTORE_FAILURE"] = 6] = "RESTORE_FAILURE";
  return BackupState2;
})(BackupState || {});
var BinaryLightingPV = /* @__PURE__ */ ((BinaryLightingPV2) => {
  BinaryLightingPV2[BinaryLightingPV2["OFF"] = 0] = "OFF";
  BinaryLightingPV2[BinaryLightingPV2["ON"] = 1] = "ON";
  BinaryLightingPV2[BinaryLightingPV2["WARN"] = 2] = "WARN";
  BinaryLightingPV2[BinaryLightingPV2["WARN_OFF"] = 3] = "WARN_OFF";
  BinaryLightingPV2[BinaryLightingPV2["WARN_RELINQUISH"] = 4] = "WARN_RELINQUISH";
  BinaryLightingPV2[BinaryLightingPV2["STOP"] = 5] = "STOP";
  return BinaryLightingPV2;
})(BinaryLightingPV || {});
var BinaryPV = /* @__PURE__ */ ((BinaryPV2) => {
  BinaryPV2[BinaryPV2["INACTIVE"] = 0] = "INACTIVE";
  BinaryPV2[BinaryPV2["ACTIVE"] = 1] = "ACTIVE";
  return BinaryPV2;
})(BinaryPV || {});
var DeviceStatus = /* @__PURE__ */ ((DeviceStatus2) => {
  DeviceStatus2[DeviceStatus2["OPERATIONAL"] = 0] = "OPERATIONAL";
  DeviceStatus2[DeviceStatus2["OPERATIONAL_READ_ONLY"] = 1] = "OPERATIONAL_READ_ONLY";
  DeviceStatus2[DeviceStatus2["DOWNLOAD_REQUIRED"] = 2] = "DOWNLOAD_REQUIRED";
  DeviceStatus2[DeviceStatus2["DOWNLOAD_IN_PROGRESS"] = 3] = "DOWNLOAD_IN_PROGRESS";
  DeviceStatus2[DeviceStatus2["NON_OPERATIONAL"] = 4] = "NON_OPERATIONAL";
  DeviceStatus2[DeviceStatus2["BACKUP_IN_PROGRESS"] = 5] = "BACKUP_IN_PROGRESS";
  return DeviceStatus2;
})(DeviceStatus || {});
var DoorAlarmState = /* @__PURE__ */ ((DoorAlarmState2) => {
  DoorAlarmState2[DoorAlarmState2["NORMAL"] = 0] = "NORMAL";
  DoorAlarmState2[DoorAlarmState2["ALARM"] = 1] = "ALARM";
  DoorAlarmState2[DoorAlarmState2["DOOR_OPEN_TOO_LONG"] = 2] = "DOOR_OPEN_TOO_LONG";
  DoorAlarmState2[DoorAlarmState2["FORCED_OPEN"] = 3] = "FORCED_OPEN";
  DoorAlarmState2[DoorAlarmState2["TAMPER"] = 4] = "TAMPER";
  DoorAlarmState2[DoorAlarmState2["DOOR_FAULT"] = 5] = "DOOR_FAULT";
  DoorAlarmState2[DoorAlarmState2["LOCK_DOWN"] = 6] = "LOCK_DOWN";
  DoorAlarmState2[DoorAlarmState2["FREE_ACCESS"] = 7] = "FREE_ACCESS";
  DoorAlarmState2[DoorAlarmState2["EGRESS_OPEN"] = 8] = "EGRESS_OPEN";
  return DoorAlarmState2;
})(DoorAlarmState || {});
var DoorSecuredStatus = /* @__PURE__ */ ((DoorSecuredStatus2) => {
  DoorSecuredStatus2[DoorSecuredStatus2["SECURED"] = 0] = "SECURED";
  DoorSecuredStatus2[DoorSecuredStatus2["UNSECURED"] = 1] = "UNSECURED";
  DoorSecuredStatus2[DoorSecuredStatus2["UNKNOWN"] = 2] = "UNKNOWN";
  return DoorSecuredStatus2;
})(DoorSecuredStatus || {});
var DoorStatus = /* @__PURE__ */ ((DoorStatus2) => {
  DoorStatus2[DoorStatus2["CLOSED"] = 0] = "CLOSED";
  DoorStatus2[DoorStatus2["OPENED"] = 1] = "OPENED";
  DoorStatus2[DoorStatus2["UNKNOWN"] = 2] = "UNKNOWN";
  DoorStatus2[DoorStatus2["DOOR_FAULT"] = 3] = "DOOR_FAULT";
  DoorStatus2[DoorStatus2["UNUSED"] = 4] = "UNUSED";
  DoorStatus2[DoorStatus2["NONE"] = 5] = "NONE";
  DoorStatus2[DoorStatus2["CLOSING"] = 6] = "CLOSING";
  DoorStatus2[DoorStatus2["OPENING"] = 7] = "OPENING";
  DoorStatus2[DoorStatus2["SAFETY_LOCKED"] = 8] = "SAFETY_LOCKED";
  DoorStatus2[DoorStatus2["LIMITED_OPENED"] = 9] = "LIMITED_OPENED";
  return DoorStatus2;
})(DoorStatus || {});
var DoorValue = /* @__PURE__ */ ((DoorValue2) => {
  DoorValue2[DoorValue2["LOCK"] = 0] = "LOCK";
  DoorValue2[DoorValue2["UNLOCK"] = 1] = "UNLOCK";
  DoorValue2[DoorValue2["PULSE_UNLOCK"] = 2] = "PULSE_UNLOCK";
  DoorValue2[DoorValue2["EXTENDED_PULSE_UNLOCK"] = 3] = "EXTENDED_PULSE_UNLOCK";
  return DoorValue2;
})(DoorValue || {});
var EngineeringUnits = /* @__PURE__ */ ((EngineeringUnits2) => {
  EngineeringUnits2[EngineeringUnits2["METERS_PER_SECOND_PER_SECOND"] = 166] = "METERS_PER_SECOND_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["SQUARE_METERS"] = 0] = "SQUARE_METERS";
  EngineeringUnits2[EngineeringUnits2["SQUARE_CENTIMETERS"] = 116] = "SQUARE_CENTIMETERS";
  EngineeringUnits2[EngineeringUnits2["SQUARE_FEET"] = 1] = "SQUARE_FEET";
  EngineeringUnits2[EngineeringUnits2["SQUARE_INCHES"] = 115] = "SQUARE_INCHES";
  EngineeringUnits2[EngineeringUnits2["CURRENCY1"] = 105] = "CURRENCY1";
  EngineeringUnits2[EngineeringUnits2["CURRENCY2"] = 106] = "CURRENCY2";
  EngineeringUnits2[EngineeringUnits2["CURRENCY3"] = 107] = "CURRENCY3";
  EngineeringUnits2[EngineeringUnits2["CURRENCY4"] = 108] = "CURRENCY4";
  EngineeringUnits2[EngineeringUnits2["CURRENCY5"] = 109] = "CURRENCY5";
  EngineeringUnits2[EngineeringUnits2["CURRENCY6"] = 110] = "CURRENCY6";
  EngineeringUnits2[EngineeringUnits2["CURRENCY7"] = 111] = "CURRENCY7";
  EngineeringUnits2[EngineeringUnits2["CURRENCY8"] = 112] = "CURRENCY8";
  EngineeringUnits2[EngineeringUnits2["CURRENCY9"] = 113] = "CURRENCY9";
  EngineeringUnits2[EngineeringUnits2["CURRENCY10"] = 114] = "CURRENCY10";
  EngineeringUnits2[EngineeringUnits2["MILLIAMPERES"] = 2] = "MILLIAMPERES";
  EngineeringUnits2[EngineeringUnits2["AMPERES"] = 3] = "AMPERES";
  EngineeringUnits2[EngineeringUnits2["AMPERES_PER_METER"] = 167] = "AMPERES_PER_METER";
  EngineeringUnits2[EngineeringUnits2["AMPERES_PER_SQUARE_METER"] = 168] = "AMPERES_PER_SQUARE_METER";
  EngineeringUnits2[EngineeringUnits2["AMPERE_SQUARE_METERS"] = 169] = "AMPERE_SQUARE_METERS";
  EngineeringUnits2[EngineeringUnits2["DECIBELS"] = 199] = "DECIBELS";
  EngineeringUnits2[EngineeringUnits2["DECIBELS_MILLIVOLT"] = 200] = "DECIBELS_MILLIVOLT";
  EngineeringUnits2[EngineeringUnits2["DECIBELS_VOLT"] = 201] = "DECIBELS_VOLT";
  EngineeringUnits2[EngineeringUnits2["FARADS"] = 170] = "FARADS";
  EngineeringUnits2[EngineeringUnits2["HENRYS"] = 171] = "HENRYS";
  EngineeringUnits2[EngineeringUnits2["OHMS"] = 4] = "OHMS";
  EngineeringUnits2[EngineeringUnits2["OHM_METER_SQUARED_PER_METER"] = 237] = "OHM_METER_SQUARED_PER_METER";
  EngineeringUnits2[EngineeringUnits2["OHM_METERS"] = 172] = "OHM_METERS";
  EngineeringUnits2[EngineeringUnits2["MILLIOHMS"] = 145] = "MILLIOHMS";
  EngineeringUnits2[EngineeringUnits2["KILOHMS"] = 122] = "KILOHMS";
  EngineeringUnits2[EngineeringUnits2["MEGOHMS"] = 123] = "MEGOHMS";
  EngineeringUnits2[EngineeringUnits2["MICROSIEMENS"] = 190] = "MICROSIEMENS";
  EngineeringUnits2[EngineeringUnits2["MILLISIEMENS"] = 202] = "MILLISIEMENS";
  EngineeringUnits2[EngineeringUnits2["SIEMENS"] = 173] = "SIEMENS";
  EngineeringUnits2[EngineeringUnits2["SIEMENS_PER_METER"] = 174] = "SIEMENS_PER_METER";
  EngineeringUnits2[EngineeringUnits2["TESLAS"] = 175] = "TESLAS";
  EngineeringUnits2[EngineeringUnits2["VOLTS"] = 5] = "VOLTS";
  EngineeringUnits2[EngineeringUnits2["MILLIVOLTS"] = 124] = "MILLIVOLTS";
  EngineeringUnits2[EngineeringUnits2["KILOVOLTS"] = 6] = "KILOVOLTS";
  EngineeringUnits2[EngineeringUnits2["MEGAVOLTS"] = 7] = "MEGAVOLTS";
  EngineeringUnits2[EngineeringUnits2["VOLT_AMPERES"] = 8] = "VOLT_AMPERES";
  EngineeringUnits2[EngineeringUnits2["KILOVOLT_AMPERES"] = 9] = "KILOVOLT_AMPERES";
  EngineeringUnits2[EngineeringUnits2["MEGAVOLT_AMPERES"] = 10] = "MEGAVOLT_AMPERES";
  EngineeringUnits2[EngineeringUnits2["VOLT_AMPERES_REACTIVE"] = 11] = "VOLT_AMPERES_REACTIVE";
  EngineeringUnits2[EngineeringUnits2["KILOVOLT_AMPERES_REACTIVE"] = 12] = "KILOVOLT_AMPERES_REACTIVE";
  EngineeringUnits2[EngineeringUnits2["MEGAVOLT_AMPERES_REACTIVE"] = 13] = "MEGAVOLT_AMPERES_REACTIVE";
  EngineeringUnits2[EngineeringUnits2["VOLTS_PER_DEGREE_KELVIN"] = 176] = "VOLTS_PER_DEGREE_KELVIN";
  EngineeringUnits2[EngineeringUnits2["VOLTS_PER_METER"] = 177] = "VOLTS_PER_METER";
  EngineeringUnits2[EngineeringUnits2["DEGREES_PHASE"] = 14] = "DEGREES_PHASE";
  EngineeringUnits2[EngineeringUnits2["POWER_FACTOR"] = 15] = "POWER_FACTOR";
  EngineeringUnits2[EngineeringUnits2["WEBERS"] = 178] = "WEBERS";
  EngineeringUnits2[EngineeringUnits2["AMPERE_SECONDS"] = 238] = "AMPERE_SECONDS";
  EngineeringUnits2[EngineeringUnits2["VOLT_AMPERE_HOURS"] = 239] = "VOLT_AMPERE_HOURS";
  EngineeringUnits2[EngineeringUnits2["KILOVOLT_AMPERE_HOURS"] = 240] = "KILOVOLT_AMPERE_HOURS";
  EngineeringUnits2[EngineeringUnits2["MEGAVOLT_AMPERE_HOURS"] = 241] = "MEGAVOLT_AMPERE_HOURS";
  EngineeringUnits2[EngineeringUnits2["VOLT_AMPERE_HOURS_REACTIVE"] = 242] = "VOLT_AMPERE_HOURS_REACTIVE";
  EngineeringUnits2[EngineeringUnits2["KILOVOLT_AMPERE_HOURS_REACTIVE"] = 243] = "KILOVOLT_AMPERE_HOURS_REACTIVE";
  EngineeringUnits2[EngineeringUnits2["MEGAVOLT_AMPERE_HOURS_REACTIVE"] = 244] = "MEGAVOLT_AMPERE_HOURS_REACTIVE";
  EngineeringUnits2[EngineeringUnits2["VOLT_SQUARE_HOURS"] = 245] = "VOLT_SQUARE_HOURS";
  EngineeringUnits2[EngineeringUnits2["AMPERE_SQUARE_HOURS"] = 246] = "AMPERE_SQUARE_HOURS";
  EngineeringUnits2[EngineeringUnits2["JOULES"] = 16] = "JOULES";
  EngineeringUnits2[EngineeringUnits2["KILOJOULES"] = 17] = "KILOJOULES";
  EngineeringUnits2[EngineeringUnits2["KILOJOULES_PER_KILOGRAM"] = 125] = "KILOJOULES_PER_KILOGRAM";
  EngineeringUnits2[EngineeringUnits2["MEGAJOULES"] = 126] = "MEGAJOULES";
  EngineeringUnits2[EngineeringUnits2["WATT_HOURS"] = 18] = "WATT_HOURS";
  EngineeringUnits2[EngineeringUnits2["KILOWATT_HOURS"] = 19] = "KILOWATT_HOURS";
  EngineeringUnits2[EngineeringUnits2["MEGAWATT_HOURS"] = 146] = "MEGAWATT_HOURS";
  EngineeringUnits2[EngineeringUnits2["WATT_HOURS_REACTIVE"] = 203] = "WATT_HOURS_REACTIVE";
  EngineeringUnits2[EngineeringUnits2["KILOWATT_HOURS_REACTIVE"] = 204] = "KILOWATT_HOURS_REACTIVE";
  EngineeringUnits2[EngineeringUnits2["MEGAWATT_HOURS_REACTIVE"] = 205] = "MEGAWATT_HOURS_REACTIVE";
  EngineeringUnits2[EngineeringUnits2["BTUS"] = 20] = "BTUS";
  EngineeringUnits2[EngineeringUnits2["KILO_BTUS"] = 147] = "KILO_BTUS";
  EngineeringUnits2[EngineeringUnits2["MEGA_BTUS"] = 148] = "MEGA_BTUS";
  EngineeringUnits2[EngineeringUnits2["THERMS"] = 21] = "THERMS";
  EngineeringUnits2[EngineeringUnits2["TON_HOURS"] = 22] = "TON_HOURS";
  EngineeringUnits2[EngineeringUnits2["JOULES_PER_KILOGRAM_DRY_AIR"] = 23] = "JOULES_PER_KILOGRAM_DRY_AIR";
  EngineeringUnits2[EngineeringUnits2["KILOJOULES_PER_KILOGRAM_DRY_AIR"] = 149] = "KILOJOULES_PER_KILOGRAM_DRY_AIR";
  EngineeringUnits2[EngineeringUnits2["MEGAJOULES_PER_KILOGRAM_DRY_AIR"] = 150] = "MEGAJOULES_PER_KILOGRAM_DRY_AIR";
  EngineeringUnits2[EngineeringUnits2["BTUS_PER_POUND_DRY_AIR"] = 24] = "BTUS_PER_POUND_DRY_AIR";
  EngineeringUnits2[EngineeringUnits2["BTUS_PER_POUND"] = 117] = "BTUS_PER_POUND";
  EngineeringUnits2[EngineeringUnits2["JOULES_PER_DEGREE_KELVIN"] = 127] = "JOULES_PER_DEGREE_KELVIN";
  EngineeringUnits2[EngineeringUnits2["KILOJOULES_PER_DEGREE_KELVIN"] = 151] = "KILOJOULES_PER_DEGREE_KELVIN";
  EngineeringUnits2[EngineeringUnits2["MEGAJOULES_PER_DEGREE_KELVIN"] = 152] = "MEGAJOULES_PER_DEGREE_KELVIN";
  EngineeringUnits2[EngineeringUnits2["JOULES_PER_KILOGRAM_DEGREE_KELVIN"] = 128] = "JOULES_PER_KILOGRAM_DEGREE_KELVIN";
  EngineeringUnits2[EngineeringUnits2["NEWTON"] = 153] = "NEWTON";
  EngineeringUnits2[EngineeringUnits2["CYCLES_PER_HOUR"] = 25] = "CYCLES_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["CYCLES_PER_MINUTE"] = 26] = "CYCLES_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["HERTZ"] = 27] = "HERTZ";
  EngineeringUnits2[EngineeringUnits2["KILOHERTZ"] = 129] = "KILOHERTZ";
  EngineeringUnits2[EngineeringUnits2["MEGAHERTZ"] = 130] = "MEGAHERTZ";
  EngineeringUnits2[EngineeringUnits2["PER_HOUR"] = 131] = "PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR"] = 28] = "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR";
  EngineeringUnits2[EngineeringUnits2["PERCENT_RELATIVE_HUMIDITY"] = 29] = "PERCENT_RELATIVE_HUMIDITY";
  EngineeringUnits2[EngineeringUnits2["MICROMETERS"] = 194] = "MICROMETERS";
  EngineeringUnits2[EngineeringUnits2["MILLIMETERS"] = 30] = "MILLIMETERS";
  EngineeringUnits2[EngineeringUnits2["CENTIMETERS"] = 118] = "CENTIMETERS";
  EngineeringUnits2[EngineeringUnits2["KILOMETERS"] = 193] = "KILOMETERS";
  EngineeringUnits2[EngineeringUnits2["METERS"] = 31] = "METERS";
  EngineeringUnits2[EngineeringUnits2["INCHES"] = 32] = "INCHES";
  EngineeringUnits2[EngineeringUnits2["FEET"] = 33] = "FEET";
  EngineeringUnits2[EngineeringUnits2["CANDELAS"] = 179] = "CANDELAS";
  EngineeringUnits2[EngineeringUnits2["CANDELAS_PER_SQUARE_METER"] = 180] = "CANDELAS_PER_SQUARE_METER";
  EngineeringUnits2[EngineeringUnits2["WATTS_PER_SQUARE_FOOT"] = 34] = "WATTS_PER_SQUARE_FOOT";
  EngineeringUnits2[EngineeringUnits2["WATTS_PER_SQUARE_METER"] = 35] = "WATTS_PER_SQUARE_METER";
  EngineeringUnits2[EngineeringUnits2["LUMENS"] = 36] = "LUMENS";
  EngineeringUnits2[EngineeringUnits2["LUXES"] = 37] = "LUXES";
  EngineeringUnits2[EngineeringUnits2["FOOT_CANDLES"] = 38] = "FOOT_CANDLES";
  EngineeringUnits2[EngineeringUnits2["MILLIGRAMS"] = 196] = "MILLIGRAMS";
  EngineeringUnits2[EngineeringUnits2["GRAMS"] = 195] = "GRAMS";
  EngineeringUnits2[EngineeringUnits2["KILOGRAMS"] = 39] = "KILOGRAMS";
  EngineeringUnits2[EngineeringUnits2["POUNDS_MASS"] = 40] = "POUNDS_MASS";
  EngineeringUnits2[EngineeringUnits2["TONS"] = 41] = "TONS";
  EngineeringUnits2[EngineeringUnits2["GRAMS_PER_SECOND"] = 154] = "GRAMS_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["GRAMS_PER_MINUTE"] = 155] = "GRAMS_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["KILOGRAMS_PER_SECOND"] = 42] = "KILOGRAMS_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["KILOGRAMS_PER_MINUTE"] = 43] = "KILOGRAMS_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["KILOGRAMS_PER_HOUR"] = 44] = "KILOGRAMS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["POUNDS_MASS_PER_SECOND"] = 119] = "POUNDS_MASS_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["POUNDS_MASS_PER_MINUTE"] = 45] = "POUNDS_MASS_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["POUNDS_MASS_PER_HOUR"] = 46] = "POUNDS_MASS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["TONS_PER_HOUR"] = 156] = "TONS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["MILLIWATTS"] = 132] = "MILLIWATTS";
  EngineeringUnits2[EngineeringUnits2["WATTS"] = 47] = "WATTS";
  EngineeringUnits2[EngineeringUnits2["KILOWATTS"] = 48] = "KILOWATTS";
  EngineeringUnits2[EngineeringUnits2["MEGAWATTS"] = 49] = "MEGAWATTS";
  EngineeringUnits2[EngineeringUnits2["BTUS_PER_HOUR"] = 50] = "BTUS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["KILO_BTUS_PER_HOUR"] = 157] = "KILO_BTUS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["JOULE_PER_HOURS"] = 247] = "JOULE_PER_HOURS";
  EngineeringUnits2[EngineeringUnits2["HORSEPOWER"] = 51] = "HORSEPOWER";
  EngineeringUnits2[EngineeringUnits2["TONS_REFRIGERATION"] = 52] = "TONS_REFRIGERATION";
  EngineeringUnits2[EngineeringUnits2["PASCALS"] = 53] = "PASCALS";
  EngineeringUnits2[EngineeringUnits2["HECTOPASCALS"] = 133] = "HECTOPASCALS";
  EngineeringUnits2[EngineeringUnits2["KILOPASCALS"] = 54] = "KILOPASCALS";
  EngineeringUnits2[EngineeringUnits2["MILLIBARS"] = 134] = "MILLIBARS";
  EngineeringUnits2[EngineeringUnits2["BARS"] = 55] = "BARS";
  EngineeringUnits2[EngineeringUnits2["POUNDS_FORCE_PER_SQUARE_INCH"] = 56] = "POUNDS_FORCE_PER_SQUARE_INCH";
  EngineeringUnits2[EngineeringUnits2["MILLIMETERS_OF_WATER"] = 206] = "MILLIMETERS_OF_WATER";
  EngineeringUnits2[EngineeringUnits2["CENTIMETERS_OF_WATER"] = 57] = "CENTIMETERS_OF_WATER";
  EngineeringUnits2[EngineeringUnits2["INCHES_OF_WATER"] = 58] = "INCHES_OF_WATER";
  EngineeringUnits2[EngineeringUnits2["MILLIMETERS_OF_MERCURY"] = 59] = "MILLIMETERS_OF_MERCURY";
  EngineeringUnits2[EngineeringUnits2["CENTIMETERS_OF_MERCURY"] = 60] = "CENTIMETERS_OF_MERCURY";
  EngineeringUnits2[EngineeringUnits2["INCHES_OF_MERCURY"] = 61] = "INCHES_OF_MERCURY";
  EngineeringUnits2[EngineeringUnits2["DEGREES_CELSIUS"] = 62] = "DEGREES_CELSIUS";
  EngineeringUnits2[EngineeringUnits2["DEGREES_KELVIN"] = 63] = "DEGREES_KELVIN";
  EngineeringUnits2[EngineeringUnits2["DEGREES_KELVIN_PER_HOUR"] = 181] = "DEGREES_KELVIN_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["DEGREES_KELVIN_PER_MINUTE"] = 182] = "DEGREES_KELVIN_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["DEGREES_FAHRENHEIT"] = 64] = "DEGREES_FAHRENHEIT";
  EngineeringUnits2[EngineeringUnits2["DEGREE_DAYS_CELSIUS"] = 65] = "DEGREE_DAYS_CELSIUS";
  EngineeringUnits2[EngineeringUnits2["DEGREE_DAYS_FAHRENHEIT"] = 66] = "DEGREE_DAYS_FAHRENHEIT";
  EngineeringUnits2[EngineeringUnits2["DELTA_DEGREES_FAHRENHEIT"] = 120] = "DELTA_DEGREES_FAHRENHEIT";
  EngineeringUnits2[EngineeringUnits2["DELTA_DEGREES_KELVIN"] = 121] = "DELTA_DEGREES_KELVIN";
  EngineeringUnits2[EngineeringUnits2["YEARS"] = 67] = "YEARS";
  EngineeringUnits2[EngineeringUnits2["MONTHS"] = 68] = "MONTHS";
  EngineeringUnits2[EngineeringUnits2["WEEKS"] = 69] = "WEEKS";
  EngineeringUnits2[EngineeringUnits2["DAYS"] = 70] = "DAYS";
  EngineeringUnits2[EngineeringUnits2["HOURS"] = 71] = "HOURS";
  EngineeringUnits2[EngineeringUnits2["MINUTES"] = 72] = "MINUTES";
  EngineeringUnits2[EngineeringUnits2["SECONDS"] = 73] = "SECONDS";
  EngineeringUnits2[EngineeringUnits2["HUNDREDTHS_SECONDS"] = 158] = "HUNDREDTHS_SECONDS";
  EngineeringUnits2[EngineeringUnits2["MILLISECONDS"] = 159] = "MILLISECONDS";
  EngineeringUnits2[EngineeringUnits2["NEWTON_METERS"] = 160] = "NEWTON_METERS";
  EngineeringUnits2[EngineeringUnits2["MILLIMETERS_PER_SECOND"] = 161] = "MILLIMETERS_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["MILLIMETERS_PER_MINUTE"] = 162] = "MILLIMETERS_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["METERS_PER_SECOND"] = 74] = "METERS_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["METERS_PER_MINUTE"] = 163] = "METERS_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["METERS_PER_HOUR"] = 164] = "METERS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["KILOMETERS_PER_HOUR"] = 75] = "KILOMETERS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["FEET_PER_SECOND"] = 76] = "FEET_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["FEET_PER_MINUTE"] = 77] = "FEET_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["MILES_PER_HOUR"] = 78] = "MILES_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["CUBIC_FEET"] = 79] = "CUBIC_FEET";
  EngineeringUnits2[EngineeringUnits2["CUBIC_METERS"] = 80] = "CUBIC_METERS";
  EngineeringUnits2[EngineeringUnits2["IMPERIAL_GALLONS"] = 81] = "IMPERIAL_GALLONS";
  EngineeringUnits2[EngineeringUnits2["MILLILITERS"] = 197] = "MILLILITERS";
  EngineeringUnits2[EngineeringUnits2["LITERS"] = 82] = "LITERS";
  EngineeringUnits2[EngineeringUnits2["US_GALLONS"] = 83] = "US_GALLONS";
  EngineeringUnits2[EngineeringUnits2["CUBIC_FEET_PER_SECOND"] = 142] = "CUBIC_FEET_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["CUBIC_FEET_PER_MINUTE"] = 84] = "CUBIC_FEET_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["MILLION_STANDARD_CUBIC_FEET_PER_MINUTE"] = 254] = "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["CUBIC_FEET_PER_HOUR"] = 191] = "CUBIC_FEET_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["CUBIC_FEET_PER_DAY"] = 248] = "CUBIC_FEET_PER_DAY";
  EngineeringUnits2[EngineeringUnits2["STANDARD_CUBIC_FEET_PER_DAY"] = 47808] = "STANDARD_CUBIC_FEET_PER_DAY";
  EngineeringUnits2[EngineeringUnits2["MILLION_STANDARD_CUBIC_FEET_PER_DAY"] = 47809] = "MILLION_STANDARD_CUBIC_FEET_PER_DAY";
  EngineeringUnits2[EngineeringUnits2["THOUSAND_CUBIC_FEET_PER_DAY"] = 47810] = "THOUSAND_CUBIC_FEET_PER_DAY";
  EngineeringUnits2[EngineeringUnits2["THOUSAND_STANDARD_CUBIC_FEET_PER_DAY"] = 47811] = "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY";
  EngineeringUnits2[EngineeringUnits2["POUNDS_MASS_PER_DAY"] = 47812] = "POUNDS_MASS_PER_DAY";
  EngineeringUnits2[EngineeringUnits2["CUBIC_METERS_PER_SECOND"] = 85] = "CUBIC_METERS_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["CUBIC_METERS_PER_MINUTE"] = 165] = "CUBIC_METERS_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["CUBIC_METERS_PER_HOUR"] = 135] = "CUBIC_METERS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["CUBIC_METERS_PER_DAY"] = 249] = "CUBIC_METERS_PER_DAY";
  EngineeringUnits2[EngineeringUnits2["IMPERIAL_GALLONS_PER_MINUTE"] = 86] = "IMPERIAL_GALLONS_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["MILLILITERS_PER_SECOND"] = 198] = "MILLILITERS_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["LITERS_PER_SECOND"] = 87] = "LITERS_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["LITERS_PER_MINUTE"] = 88] = "LITERS_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["LITERS_PER_HOUR"] = 136] = "LITERS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["US_GALLONS_PER_MINUTE"] = 89] = "US_GALLONS_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["US_GALLONS_PER_HOUR"] = 192] = "US_GALLONS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["DEGREES_ANGULAR"] = 90] = "DEGREES_ANGULAR";
  EngineeringUnits2[EngineeringUnits2["DEGREES_CELSIUS_PER_HOUR"] = 91] = "DEGREES_CELSIUS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["DEGREES_CELSIUS_PER_MINUTE"] = 92] = "DEGREES_CELSIUS_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["DEGREES_FAHRENHEIT_PER_HOUR"] = 93] = "DEGREES_FAHRENHEIT_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["DEGREES_FAHRENHEIT_PER_MINUTE"] = 94] = "DEGREES_FAHRENHEIT_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["JOULE_SECONDS"] = 183] = "JOULE_SECONDS";
  EngineeringUnits2[EngineeringUnits2["KILOGRAMS_PER_CUBIC_METER"] = 186] = "KILOGRAMS_PER_CUBIC_METER";
  EngineeringUnits2[EngineeringUnits2["KILOWATT_HOURS_PER_SQUARE_METER"] = 137] = "KILOWATT_HOURS_PER_SQUARE_METER";
  EngineeringUnits2[EngineeringUnits2["KILOWATT_HOURS_PER_SQUARE_FOOT"] = 138] = "KILOWATT_HOURS_PER_SQUARE_FOOT";
  EngineeringUnits2[EngineeringUnits2["WATT_HOURS_PER_CUBIC_METER"] = 250] = "WATT_HOURS_PER_CUBIC_METER";
  EngineeringUnits2[EngineeringUnits2["JOULES_PER_CUBIC_METER"] = 251] = "JOULES_PER_CUBIC_METER";
  EngineeringUnits2[EngineeringUnits2["MEGAJOULES_PER_SQUARE_METER"] = 139] = "MEGAJOULES_PER_SQUARE_METER";
  EngineeringUnits2[EngineeringUnits2["MEGAJOULES_PER_SQUARE_FOOT"] = 140] = "MEGAJOULES_PER_SQUARE_FOOT";
  EngineeringUnits2[EngineeringUnits2["MOLE_PERCENT"] = 252] = "MOLE_PERCENT";
  EngineeringUnits2[EngineeringUnits2["NO_UNITS"] = 95] = "NO_UNITS";
  EngineeringUnits2[EngineeringUnits2["NEWTON_SECONDS"] = 187] = "NEWTON_SECONDS";
  EngineeringUnits2[EngineeringUnits2["NEWTONS_PER_METER"] = 188] = "NEWTONS_PER_METER";
  EngineeringUnits2[EngineeringUnits2["PARTS_PER_MILLION"] = 96] = "PARTS_PER_MILLION";
  EngineeringUnits2[EngineeringUnits2["PARTS_PER_BILLION"] = 97] = "PARTS_PER_BILLION";
  EngineeringUnits2[EngineeringUnits2["PASCAL_SECONDS"] = 253] = "PASCAL_SECONDS";
  EngineeringUnits2[EngineeringUnits2["PERCENT"] = 98] = "PERCENT";
  EngineeringUnits2[EngineeringUnits2["PERCENT_OBSCURATION_PER_FOOT"] = 143] = "PERCENT_OBSCURATION_PER_FOOT";
  EngineeringUnits2[EngineeringUnits2["PERCENT_OBSCURATION_PER_METER"] = 144] = "PERCENT_OBSCURATION_PER_METER";
  EngineeringUnits2[EngineeringUnits2["PERCENT_PER_SECOND"] = 99] = "PERCENT_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["PER_MINUTE"] = 100] = "PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["PER_SECOND"] = 101] = "PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["PSI_PER_DEGREE_FAHRENHEIT"] = 102] = "PSI_PER_DEGREE_FAHRENHEIT";
  EngineeringUnits2[EngineeringUnits2["RADIANS"] = 103] = "RADIANS";
  EngineeringUnits2[EngineeringUnits2["RADIANS_PER_SECOND"] = 184] = "RADIANS_PER_SECOND";
  EngineeringUnits2[EngineeringUnits2["REVOLUTIONS_PER_MINUTE"] = 104] = "REVOLUTIONS_PER_MINUTE";
  EngineeringUnits2[EngineeringUnits2["SQUARE_METERS_PER_NEWTON"] = 185] = "SQUARE_METERS_PER_NEWTON";
  EngineeringUnits2[EngineeringUnits2["WATTS_PER_METER_PER_DEGREE_KELVIN"] = 189] = "WATTS_PER_METER_PER_DEGREE_KELVIN";
  EngineeringUnits2[EngineeringUnits2["WATTS_PER_SQUARE_METER_DEGREE_KELVIN"] = 141] = "WATTS_PER_SQUARE_METER_DEGREE_KELVIN";
  EngineeringUnits2[EngineeringUnits2["PER_MILLE"] = 207] = "PER_MILLE";
  EngineeringUnits2[EngineeringUnits2["GRAMS_PER_GRAM"] = 208] = "GRAMS_PER_GRAM";
  EngineeringUnits2[EngineeringUnits2["KILOGRAMS_PER_KILOGRAM"] = 209] = "KILOGRAMS_PER_KILOGRAM";
  EngineeringUnits2[EngineeringUnits2["GRAMS_PER_KILOGRAM"] = 210] = "GRAMS_PER_KILOGRAM";
  EngineeringUnits2[EngineeringUnits2["MILLIGRAMS_PER_GRAM"] = 211] = "MILLIGRAMS_PER_GRAM";
  EngineeringUnits2[EngineeringUnits2["MILLIGRAMS_PER_KILOGRAM"] = 212] = "MILLIGRAMS_PER_KILOGRAM";
  EngineeringUnits2[EngineeringUnits2["GRAMS_PER_MILLILITER"] = 213] = "GRAMS_PER_MILLILITER";
  EngineeringUnits2[EngineeringUnits2["GRAMS_PER_LITER"] = 214] = "GRAMS_PER_LITER";
  EngineeringUnits2[EngineeringUnits2["MILLIGRAMS_PER_LITER"] = 215] = "MILLIGRAMS_PER_LITER";
  EngineeringUnits2[EngineeringUnits2["MICROGRAMS_PER_LITER"] = 216] = "MICROGRAMS_PER_LITER";
  EngineeringUnits2[EngineeringUnits2["GRAMS_PER_CUBIC_METER"] = 217] = "GRAMS_PER_CUBIC_METER";
  EngineeringUnits2[EngineeringUnits2["MILLIGRAMS_PER_CUBIC_METER"] = 218] = "MILLIGRAMS_PER_CUBIC_METER";
  EngineeringUnits2[EngineeringUnits2["MICROGRAMS_PER_CUBIC_METER"] = 219] = "MICROGRAMS_PER_CUBIC_METER";
  EngineeringUnits2[EngineeringUnits2["NANOGRAMS_PER_CUBIC_METER"] = 220] = "NANOGRAMS_PER_CUBIC_METER";
  EngineeringUnits2[EngineeringUnits2["GRAMS_PER_CUBIC_CENTIMETER"] = 221] = "GRAMS_PER_CUBIC_CENTIMETER";
  EngineeringUnits2[EngineeringUnits2["BECQUERELS"] = 222] = "BECQUERELS";
  EngineeringUnits2[EngineeringUnits2["KILOBECQUERELS"] = 223] = "KILOBECQUERELS";
  EngineeringUnits2[EngineeringUnits2["MEGABECQUERELS"] = 224] = "MEGABECQUERELS";
  EngineeringUnits2[EngineeringUnits2["GRAY"] = 225] = "GRAY";
  EngineeringUnits2[EngineeringUnits2["MILLIGRAY"] = 226] = "MILLIGRAY";
  EngineeringUnits2[EngineeringUnits2["MICROGRAY"] = 227] = "MICROGRAY";
  EngineeringUnits2[EngineeringUnits2["SIEVERTS"] = 228] = "SIEVERTS";
  EngineeringUnits2[EngineeringUnits2["MILLISIEVERTS"] = 229] = "MILLISIEVERTS";
  EngineeringUnits2[EngineeringUnits2["MICROSIEVERTS"] = 230] = "MICROSIEVERTS";
  EngineeringUnits2[EngineeringUnits2["MICROSIEVERTS_PER_HOUR"] = 231] = "MICROSIEVERTS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["MILLIREMS"] = 47814] = "MILLIREMS";
  EngineeringUnits2[EngineeringUnits2["MILLIREMS_PER_HOUR"] = 47815] = "MILLIREMS_PER_HOUR";
  EngineeringUnits2[EngineeringUnits2["DECIBELS_A"] = 232] = "DECIBELS_A";
  EngineeringUnits2[EngineeringUnits2["NEPHELOMETRIC_TURBIDITY_UNIT"] = 233] = "NEPHELOMETRIC_TURBIDITY_UNIT";
  EngineeringUnits2[EngineeringUnits2["PH"] = 234] = "PH";
  EngineeringUnits2[EngineeringUnits2["GRAMS_PER_SQUARE_METER"] = 235] = "GRAMS_PER_SQUARE_METER";
  EngineeringUnits2[EngineeringUnits2["MINUTES_PER_DEGREE_KELVIN"] = 236] = "MINUTES_PER_DEGREE_KELVIN";
  return EngineeringUnits2;
})(EngineeringUnits || {});
var EscalatorFault = /* @__PURE__ */ ((EscalatorFault2) => {
  EscalatorFault2[EscalatorFault2["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
  EscalatorFault2[EscalatorFault2["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
  EscalatorFault2[EscalatorFault2["MECHANICAL_COMPONENT_FAULT"] = 2] = "MECHANICAL_COMPONENT_FAULT";
  EscalatorFault2[EscalatorFault2["OVERSPEED_FAULT"] = 3] = "OVERSPEED_FAULT";
  EscalatorFault2[EscalatorFault2["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
  EscalatorFault2[EscalatorFault2["SAFETY_DEVICE_FAULT"] = 5] = "SAFETY_DEVICE_FAULT";
  EscalatorFault2[EscalatorFault2["CONTROLLER_SUPPLY_FAULT"] = 6] = "CONTROLLER_SUPPLY_FAULT";
  EscalatorFault2[EscalatorFault2["DRIVE_TEMPERATURE_EXCEEDED"] = 7] = "DRIVE_TEMPERATURE_EXCEEDED";
  EscalatorFault2[EscalatorFault2["COMB_PLATE_FAULT"] = 8] = "COMB_PLATE_FAULT";
  return EscalatorFault2;
})(EscalatorFault || {});
var EscalatorMode = /* @__PURE__ */ ((EscalatorMode2) => {
  EscalatorMode2[EscalatorMode2["UNKNOWN"] = 0] = "UNKNOWN";
  EscalatorMode2[EscalatorMode2["STOP"] = 1] = "STOP";
  EscalatorMode2[EscalatorMode2["UP"] = 2] = "UP";
  EscalatorMode2[EscalatorMode2["DOWN"] = 3] = "DOWN";
  EscalatorMode2[EscalatorMode2["INSPECTION"] = 4] = "INSPECTION";
  EscalatorMode2[EscalatorMode2["OUT_OF_SERVICE"] = 5] = "OUT_OF_SERVICE";
  return EscalatorMode2;
})(EscalatorMode || {});
var EscalatorOperationDirection = /* @__PURE__ */ ((EscalatorOperationDirection2) => {
  EscalatorOperationDirection2[EscalatorOperationDirection2["UNKNOWN"] = 0] = "UNKNOWN";
  EscalatorOperationDirection2[EscalatorOperationDirection2["STOPPED"] = 1] = "STOPPED";
  EscalatorOperationDirection2[EscalatorOperationDirection2["UP_RATED_SPEED"] = 2] = "UP_RATED_SPEED";
  EscalatorOperationDirection2[EscalatorOperationDirection2["UP_REDUCED_SPEED"] = 3] = "UP_REDUCED_SPEED";
  EscalatorOperationDirection2[EscalatorOperationDirection2["DOWN_RATED_SPEED"] = 4] = "DOWN_RATED_SPEED";
  EscalatorOperationDirection2[EscalatorOperationDirection2["DOWN_REDUCED_SPEED"] = 5] = "DOWN_REDUCED_SPEED";
  return EscalatorOperationDirection2;
})(EscalatorOperationDirection || {});
var EventState = /* @__PURE__ */ ((EventState2) => {
  EventState2[EventState2["NORMAL"] = 0] = "NORMAL";
  EventState2[EventState2["FAULT"] = 1] = "FAULT";
  EventState2[EventState2["OFFNORMAL"] = 2] = "OFFNORMAL";
  EventState2[EventState2["HIGH_LIMIT"] = 3] = "HIGH_LIMIT";
  EventState2[EventState2["LOW_LIMIT"] = 4] = "LOW_LIMIT";
  EventState2[EventState2["LIFE_SAFETY_ALARM"] = 5] = "LIFE_SAFETY_ALARM";
  return EventState2;
})(EventState || {});
var EventType = /* @__PURE__ */ ((EventType2) => {
  EventType2[EventType2["CHANGE_OF_BITSTRING"] = 0] = "CHANGE_OF_BITSTRING";
  EventType2[EventType2["CHANGE_OF_STATE"] = 1] = "CHANGE_OF_STATE";
  EventType2[EventType2["CHANGE_OF_VALUE"] = 2] = "CHANGE_OF_VALUE";
  EventType2[EventType2["COMMAND_FAILURE"] = 3] = "COMMAND_FAILURE";
  EventType2[EventType2["FLOATING_LIMIT"] = 4] = "FLOATING_LIMIT";
  EventType2[EventType2["OUT_OF_RANGE"] = 5] = "OUT_OF_RANGE";
  EventType2[EventType2["COMPLEX_EVENT_TYPE"] = 6] = "COMPLEX_EVENT_TYPE";
  EventType2[EventType2["CHANGE_OF_LIFE_SAFETY"] = 8] = "CHANGE_OF_LIFE_SAFETY";
  EventType2[EventType2["EXTENDED"] = 9] = "EXTENDED";
  EventType2[EventType2["BUFFER_READY"] = 10] = "BUFFER_READY";
  EventType2[EventType2["UNSIGNED_RANGE"] = 11] = "UNSIGNED_RANGE";
  EventType2[EventType2["ACCESS_EVENT"] = 13] = "ACCESS_EVENT";
  EventType2[EventType2["DOUBLE_OUT_OF_RANGE"] = 14] = "DOUBLE_OUT_OF_RANGE";
  EventType2[EventType2["SIGNED_OUT_OF_RANGE"] = 15] = "SIGNED_OUT_OF_RANGE";
  EventType2[EventType2["UNSIGNED_OUT_OF_RANGE"] = 16] = "UNSIGNED_OUT_OF_RANGE";
  EventType2[EventType2["CHANGE_OF_CHARACTERSTRING"] = 17] = "CHANGE_OF_CHARACTERSTRING";
  EventType2[EventType2["CHANGE_OF_STATUS_FLAGS"] = 18] = "CHANGE_OF_STATUS_FLAGS";
  EventType2[EventType2["CHANGE_OF_RELIABILITY"] = 19] = "CHANGE_OF_RELIABILITY";
  EventType2[EventType2["NONE"] = 20] = "NONE";
  EventType2[EventType2["CHANGE_OF_DISCRETE_VALUE"] = 21] = "CHANGE_OF_DISCRETE_VALUE";
  EventType2[EventType2["CHANGE_OF_TIMER"] = 22] = "CHANGE_OF_TIMER";
  return EventType2;
})(EventType || {});
var FaultType = /* @__PURE__ */ ((FaultType2) => {
  FaultType2[FaultType2["NONE"] = 0] = "NONE";
  FaultType2[FaultType2["FAULT_CHARACTERSTRING"] = 1] = "FAULT_CHARACTERSTRING";
  FaultType2[FaultType2["FAULT_EXTENDED"] = 2] = "FAULT_EXTENDED";
  FaultType2[FaultType2["FAULT_LIFE_SAFETY"] = 3] = "FAULT_LIFE_SAFETY";
  FaultType2[FaultType2["FAULT_STATE"] = 4] = "FAULT_STATE";
  FaultType2[FaultType2["FAULT_STATUS_FLAGS"] = 5] = "FAULT_STATUS_FLAGS";
  FaultType2[FaultType2["FAULT_OUT_OF_RANGE"] = 6] = "FAULT_OUT_OF_RANGE";
  FaultType2[FaultType2["FAULT_LISTED"] = 7] = "FAULT_LISTED";
  return FaultType2;
})(FaultType || {});
var FileAccessMethod = /* @__PURE__ */ ((FileAccessMethod2) => {
  FileAccessMethod2[FileAccessMethod2["RECORD_ACCESS"] = 0] = "RECORD_ACCESS";
  FileAccessMethod2[FileAccessMethod2["STREAM_ACCESS"] = 1] = "STREAM_ACCESS";
  return FileAccessMethod2;
})(FileAccessMethod || {});
var IPMode = /* @__PURE__ */ ((IPMode2) => {
  IPMode2[IPMode2["NORMAL"] = 0] = "NORMAL";
  IPMode2[IPMode2["FOREIGN"] = 1] = "FOREIGN";
  IPMode2[IPMode2["BBMD"] = 2] = "BBMD";
  return IPMode2;
})(IPMode || {});
var LifeSafetyMode = /* @__PURE__ */ ((LifeSafetyMode2) => {
  LifeSafetyMode2[LifeSafetyMode2["OFF"] = 0] = "OFF";
  LifeSafetyMode2[LifeSafetyMode2["ON"] = 1] = "ON";
  LifeSafetyMode2[LifeSafetyMode2["TEST"] = 2] = "TEST";
  LifeSafetyMode2[LifeSafetyMode2["MANNED"] = 3] = "MANNED";
  LifeSafetyMode2[LifeSafetyMode2["UNMANNED"] = 4] = "UNMANNED";
  LifeSafetyMode2[LifeSafetyMode2["ARMED"] = 5] = "ARMED";
  LifeSafetyMode2[LifeSafetyMode2["DISARMED"] = 6] = "DISARMED";
  LifeSafetyMode2[LifeSafetyMode2["PREARMED"] = 7] = "PREARMED";
  LifeSafetyMode2[LifeSafetyMode2["SLOW"] = 8] = "SLOW";
  LifeSafetyMode2[LifeSafetyMode2["FAST"] = 9] = "FAST";
  LifeSafetyMode2[LifeSafetyMode2["DISCONNECTED"] = 10] = "DISCONNECTED";
  LifeSafetyMode2[LifeSafetyMode2["ENABLED"] = 11] = "ENABLED";
  LifeSafetyMode2[LifeSafetyMode2["DISABLED"] = 12] = "DISABLED";
  LifeSafetyMode2[LifeSafetyMode2["AUTOMATIC_RELEASE_DISABLED"] = 13] = "AUTOMATIC_RELEASE_DISABLED";
  LifeSafetyMode2[LifeSafetyMode2["DEFAULT"] = 14] = "DEFAULT";
  return LifeSafetyMode2;
})(LifeSafetyMode || {});
var LifeSafetyOperation = /* @__PURE__ */ ((LifeSafetyOperation2) => {
  LifeSafetyOperation2[LifeSafetyOperation2["NONE"] = 0] = "NONE";
  LifeSafetyOperation2[LifeSafetyOperation2["SILENCE"] = 1] = "SILENCE";
  LifeSafetyOperation2[LifeSafetyOperation2["SILENCE_AUDIBLE"] = 2] = "SILENCE_AUDIBLE";
  LifeSafetyOperation2[LifeSafetyOperation2["SILENCE_VISUAL"] = 3] = "SILENCE_VISUAL";
  LifeSafetyOperation2[LifeSafetyOperation2["RESET"] = 4] = "RESET";
  LifeSafetyOperation2[LifeSafetyOperation2["RESET_ALARM"] = 5] = "RESET_ALARM";
  LifeSafetyOperation2[LifeSafetyOperation2["RESET_FAULT"] = 6] = "RESET_FAULT";
  LifeSafetyOperation2[LifeSafetyOperation2["UNSILENCE"] = 7] = "UNSILENCE";
  LifeSafetyOperation2[LifeSafetyOperation2["UNSILENCE_AUDIBLE"] = 8] = "UNSILENCE_AUDIBLE";
  LifeSafetyOperation2[LifeSafetyOperation2["UNSILENCE_VISUAL"] = 9] = "UNSILENCE_VISUAL";
  return LifeSafetyOperation2;
})(LifeSafetyOperation || {});
var LifeSafetyState = /* @__PURE__ */ ((LifeSafetyState2) => {
  LifeSafetyState2[LifeSafetyState2["QUIET"] = 0] = "QUIET";
  LifeSafetyState2[LifeSafetyState2["PRE_ALARM"] = 1] = "PRE_ALARM";
  LifeSafetyState2[LifeSafetyState2["ALARM"] = 2] = "ALARM";
  LifeSafetyState2[LifeSafetyState2["FAULT"] = 3] = "FAULT";
  LifeSafetyState2[LifeSafetyState2["FAULT_PRE_ALARM"] = 4] = "FAULT_PRE_ALARM";
  LifeSafetyState2[LifeSafetyState2["FAULT_ALARM"] = 5] = "FAULT_ALARM";
  LifeSafetyState2[LifeSafetyState2["NOT_READY"] = 6] = "NOT_READY";
  LifeSafetyState2[LifeSafetyState2["ACTIVE"] = 7] = "ACTIVE";
  LifeSafetyState2[LifeSafetyState2["TAMPER"] = 8] = "TAMPER";
  LifeSafetyState2[LifeSafetyState2["TEST_ALARM"] = 9] = "TEST_ALARM";
  LifeSafetyState2[LifeSafetyState2["TEST_ACTIVE"] = 10] = "TEST_ACTIVE";
  LifeSafetyState2[LifeSafetyState2["TEST_FAULT"] = 11] = "TEST_FAULT";
  LifeSafetyState2[LifeSafetyState2["TEST_FAULT_ALARM"] = 12] = "TEST_FAULT_ALARM";
  LifeSafetyState2[LifeSafetyState2["HOLDUP"] = 13] = "HOLDUP";
  LifeSafetyState2[LifeSafetyState2["DURESS"] = 14] = "DURESS";
  LifeSafetyState2[LifeSafetyState2["TAMPER_ALARM"] = 15] = "TAMPER_ALARM";
  LifeSafetyState2[LifeSafetyState2["ABNORMAL"] = 16] = "ABNORMAL";
  LifeSafetyState2[LifeSafetyState2["EMERGENCY_POWER"] = 17] = "EMERGENCY_POWER";
  LifeSafetyState2[LifeSafetyState2["DELAYED"] = 18] = "DELAYED";
  LifeSafetyState2[LifeSafetyState2["BLOCKED"] = 19] = "BLOCKED";
  LifeSafetyState2[LifeSafetyState2["LOCAL_ALARM"] = 20] = "LOCAL_ALARM";
  LifeSafetyState2[LifeSafetyState2["GENERAL_ALARM"] = 21] = "GENERAL_ALARM";
  LifeSafetyState2[LifeSafetyState2["SUPERVISORY"] = 22] = "SUPERVISORY";
  LifeSafetyState2[LifeSafetyState2["TEST_SUPERVISORY"] = 23] = "TEST_SUPERVISORY";
  return LifeSafetyState2;
})(LifeSafetyState || {});
var LiftCarDirection = /* @__PURE__ */ ((LiftCarDirection2) => {
  LiftCarDirection2[LiftCarDirection2["UNKNOWN"] = 0] = "UNKNOWN";
  LiftCarDirection2[LiftCarDirection2["NONE"] = 1] = "NONE";
  LiftCarDirection2[LiftCarDirection2["STOPPED"] = 2] = "STOPPED";
  LiftCarDirection2[LiftCarDirection2["UP"] = 3] = "UP";
  LiftCarDirection2[LiftCarDirection2["DOWN"] = 4] = "DOWN";
  LiftCarDirection2[LiftCarDirection2["UP_AND_DOWN"] = 5] = "UP_AND_DOWN";
  return LiftCarDirection2;
})(LiftCarDirection || {});
var LiftCarDoorCommand = /* @__PURE__ */ ((LiftCarDoorCommand2) => {
  LiftCarDoorCommand2[LiftCarDoorCommand2["NONE"] = 0] = "NONE";
  LiftCarDoorCommand2[LiftCarDoorCommand2["OPEN"] = 1] = "OPEN";
  LiftCarDoorCommand2[LiftCarDoorCommand2["CLOSE"] = 2] = "CLOSE";
  return LiftCarDoorCommand2;
})(LiftCarDoorCommand || {});
var LiftCarDriveStatus = /* @__PURE__ */ ((LiftCarDriveStatus2) => {
  LiftCarDriveStatus2[LiftCarDriveStatus2["UNKNOWN"] = 0] = "UNKNOWN";
  LiftCarDriveStatus2[LiftCarDriveStatus2["STATIONARY"] = 1] = "STATIONARY";
  LiftCarDriveStatus2[LiftCarDriveStatus2["BRAKING"] = 2] = "BRAKING";
  LiftCarDriveStatus2[LiftCarDriveStatus2["ACCELERATE"] = 3] = "ACCELERATE";
  LiftCarDriveStatus2[LiftCarDriveStatus2["DECELERATE"] = 4] = "DECELERATE";
  LiftCarDriveStatus2[LiftCarDriveStatus2["RATED_SPEED"] = 5] = "RATED_SPEED";
  LiftCarDriveStatus2[LiftCarDriveStatus2["SINGLE_FLOOR_JUMP"] = 6] = "SINGLE_FLOOR_JUMP";
  LiftCarDriveStatus2[LiftCarDriveStatus2["TWO_FLOOR_JUMP"] = 7] = "TWO_FLOOR_JUMP";
  LiftCarDriveStatus2[LiftCarDriveStatus2["THREE_FLOOR_JUMP"] = 8] = "THREE_FLOOR_JUMP";
  LiftCarDriveStatus2[LiftCarDriveStatus2["MULTI_FLOOR_JUMP"] = 9] = "MULTI_FLOOR_JUMP";
  return LiftCarDriveStatus2;
})(LiftCarDriveStatus || {});
var LiftCarMode = /* @__PURE__ */ ((LiftCarMode2) => {
  LiftCarMode2[LiftCarMode2["UNKNOWN"] = 0] = "UNKNOWN";
  LiftCarMode2[LiftCarMode2["NORMAL"] = 1] = "NORMAL";
  LiftCarMode2[LiftCarMode2["VIP"] = 2] = "VIP";
  LiftCarMode2[LiftCarMode2["HOMING"] = 3] = "HOMING";
  LiftCarMode2[LiftCarMode2["PARKING"] = 4] = "PARKING";
  LiftCarMode2[LiftCarMode2["ATTENDANT_CONTROL"] = 5] = "ATTENDANT_CONTROL";
  LiftCarMode2[LiftCarMode2["FIREFIGHTER_CONTROL"] = 6] = "FIREFIGHTER_CONTROL";
  LiftCarMode2[LiftCarMode2["EMERGENCY_POWER"] = 7] = "EMERGENCY_POWER";
  LiftCarMode2[LiftCarMode2["INSPECTION"] = 8] = "INSPECTION";
  LiftCarMode2[LiftCarMode2["CABINET_RECALL"] = 9] = "CABINET_RECALL";
  LiftCarMode2[LiftCarMode2["EARTHQUAKE_OPERATION"] = 10] = "EARTHQUAKE_OPERATION";
  LiftCarMode2[LiftCarMode2["FIRE_OPERATION"] = 11] = "FIRE_OPERATION";
  LiftCarMode2[LiftCarMode2["OUT_OF_SERVICE"] = 12] = "OUT_OF_SERVICE";
  LiftCarMode2[LiftCarMode2["OCCUPANT_EVACUATION"] = 13] = "OCCUPANT_EVACUATION";
  return LiftCarMode2;
})(LiftCarMode || {});
var LiftFault = /* @__PURE__ */ ((LiftFault2) => {
  LiftFault2[LiftFault2["CONTROLLER_FAULT"] = 0] = "CONTROLLER_FAULT";
  LiftFault2[LiftFault2["DRIVE_AND_MOTOR_FAULT"] = 1] = "DRIVE_AND_MOTOR_FAULT";
  LiftFault2[LiftFault2["GOVERNOR_AND_SAFETY_GEAR_FAULT"] = 2] = "GOVERNOR_AND_SAFETY_GEAR_FAULT";
  LiftFault2[LiftFault2["LIFT_SHAFT_DEVICE_FAULT"] = 3] = "LIFT_SHAFT_DEVICE_FAULT";
  LiftFault2[LiftFault2["POWER_SUPPLY_FAULT"] = 4] = "POWER_SUPPLY_FAULT";
  LiftFault2[LiftFault2["SAFETY_INTERLOCK_FAULT"] = 5] = "SAFETY_INTERLOCK_FAULT";
  LiftFault2[LiftFault2["DOOR_CLOSING_FAULT"] = 6] = "DOOR_CLOSING_FAULT";
  LiftFault2[LiftFault2["DOOR_OPENING_FAULT"] = 7] = "DOOR_OPENING_FAULT";
  LiftFault2[LiftFault2["CAR_STOPPED_OUTSIDE_LANDING_ZONE"] = 8] = "CAR_STOPPED_OUTSIDE_LANDING_ZONE";
  LiftFault2[LiftFault2["CALL_BUTTON_STUCK"] = 9] = "CALL_BUTTON_STUCK";
  LiftFault2[LiftFault2["START_FAILURE"] = 10] = "START_FAILURE";
  LiftFault2[LiftFault2["CONTROLLER_SUPPLY_FAULT"] = 11] = "CONTROLLER_SUPPLY_FAULT";
  LiftFault2[LiftFault2["SELF_TEST_FAILURE"] = 12] = "SELF_TEST_FAILURE";
  LiftFault2[LiftFault2["RUNTIME_LIMIT_EXCEEDED"] = 13] = "RUNTIME_LIMIT_EXCEEDED";
  LiftFault2[LiftFault2["POSITION_LOST"] = 14] = "POSITION_LOST";
  LiftFault2[LiftFault2["DRIVE_TEMPERATURE_EXCEEDED"] = 15] = "DRIVE_TEMPERATURE_EXCEEDED";
  LiftFault2[LiftFault2["LOAD_MEASUREMENT_FAULT"] = 16] = "LOAD_MEASUREMENT_FAULT";
  return LiftFault2;
})(LiftFault || {});
var LiftGroupMode = /* @__PURE__ */ ((LiftGroupMode2) => {
  LiftGroupMode2[LiftGroupMode2["UNKNOWN"] = 0] = "UNKNOWN";
  LiftGroupMode2[LiftGroupMode2["NORMAL"] = 1] = "NORMAL";
  LiftGroupMode2[LiftGroupMode2["DOWN_PEAK"] = 2] = "DOWN_PEAK";
  LiftGroupMode2[LiftGroupMode2["TWO_WAY"] = 3] = "TWO_WAY";
  LiftGroupMode2[LiftGroupMode2["FOUR_WAY"] = 4] = "FOUR_WAY";
  LiftGroupMode2[LiftGroupMode2["EMERGENCY_POWER"] = 5] = "EMERGENCY_POWER";
  LiftGroupMode2[LiftGroupMode2["UP_PEAK"] = 6] = "UP_PEAK";
  return LiftGroupMode2;
})(LiftGroupMode || {});
var LightingInProgress = /* @__PURE__ */ ((LightingInProgress2) => {
  LightingInProgress2[LightingInProgress2["IDLE"] = 0] = "IDLE";
  LightingInProgress2[LightingInProgress2["FADE_ACTIVE"] = 1] = "FADE_ACTIVE";
  LightingInProgress2[LightingInProgress2["RAMP_ACTIVE"] = 2] = "RAMP_ACTIVE";
  LightingInProgress2[LightingInProgress2["NOT_CONTROLLED"] = 3] = "NOT_CONTROLLED";
  LightingInProgress2[LightingInProgress2["OTHER"] = 4] = "OTHER";
  return LightingInProgress2;
})(LightingInProgress || {});
var LightingOperation = /* @__PURE__ */ ((LightingOperation2) => {
  LightingOperation2[LightingOperation2["NONE"] = 0] = "NONE";
  LightingOperation2[LightingOperation2["FADE_TO"] = 1] = "FADE_TO";
  LightingOperation2[LightingOperation2["RAMP_TO"] = 2] = "RAMP_TO";
  LightingOperation2[LightingOperation2["STEP_UP"] = 3] = "STEP_UP";
  LightingOperation2[LightingOperation2["STEP_DOWN"] = 4] = "STEP_DOWN";
  LightingOperation2[LightingOperation2["STEP_ON"] = 5] = "STEP_ON";
  LightingOperation2[LightingOperation2["STEP_OFF"] = 6] = "STEP_OFF";
  LightingOperation2[LightingOperation2["WARN"] = 7] = "WARN";
  LightingOperation2[LightingOperation2["WARN_OFF"] = 8] = "WARN_OFF";
  LightingOperation2[LightingOperation2["WARN_RELINQUISH"] = 9] = "WARN_RELINQUISH";
  LightingOperation2[LightingOperation2["STOP"] = 10] = "STOP";
  return LightingOperation2;
})(LightingOperation || {});
var LightingTransition = /* @__PURE__ */ ((LightingTransition2) => {
  LightingTransition2[LightingTransition2["NONE"] = 0] = "NONE";
  LightingTransition2[LightingTransition2["FADE"] = 1] = "FADE";
  LightingTransition2[LightingTransition2["RAMP"] = 2] = "RAMP";
  return LightingTransition2;
})(LightingTransition || {});
var LockStatus = /* @__PURE__ */ ((LockStatus2) => {
  LockStatus2[LockStatus2["LOCKED"] = 0] = "LOCKED";
  LockStatus2[LockStatus2["UNLOCKED"] = 1] = "UNLOCKED";
  LockStatus2[LockStatus2["LOCK_FAULT"] = 2] = "LOCK_FAULT";
  LockStatus2[LockStatus2["UNUSED"] = 3] = "UNUSED";
  LockStatus2[LockStatus2["UNKNOWN"] = 4] = "UNKNOWN";
  return LockStatus2;
})(LockStatus || {});
var LoggingType = /* @__PURE__ */ ((LoggingType2) => {
  LoggingType2[LoggingType2["POLLED"] = 0] = "POLLED";
  LoggingType2[LoggingType2["COV"] = 1] = "COV";
  LoggingType2[LoggingType2["TRIGGERED"] = 2] = "TRIGGERED";
  return LoggingType2;
})(LoggingType || {});
var Maintenance = /* @__PURE__ */ ((Maintenance2) => {
  Maintenance2[Maintenance2["NONE"] = 0] = "NONE";
  Maintenance2[Maintenance2["PERIODIC_TEST"] = 1] = "PERIODIC_TEST";
  Maintenance2[Maintenance2["NEED_SERVICE_OPERATIONAL"] = 2] = "NEED_SERVICE_OPERATIONAL";
  Maintenance2[Maintenance2["NEED_SERVICE_INOPERATIVE"] = 3] = "NEED_SERVICE_INOPERATIVE";
  return Maintenance2;
})(Maintenance || {});
var NetworkNumberQuality = /* @__PURE__ */ ((NetworkNumberQuality2) => {
  NetworkNumberQuality2[NetworkNumberQuality2["UNKNOWN"] = 0] = "UNKNOWN";
  NetworkNumberQuality2[NetworkNumberQuality2["LEARNED"] = 1] = "LEARNED";
  NetworkNumberQuality2[NetworkNumberQuality2["LEARNED_CONFIGURED"] = 2] = "LEARNED_CONFIGURED";
  NetworkNumberQuality2[NetworkNumberQuality2["CONFIGURED"] = 3] = "CONFIGURED";
  return NetworkNumberQuality2;
})(NetworkNumberQuality || {});
var NetworkPortCommand = /* @__PURE__ */ ((NetworkPortCommand2) => {
  NetworkPortCommand2[NetworkPortCommand2["IDLE"] = 0] = "IDLE";
  NetworkPortCommand2[NetworkPortCommand2["DISCARD_CHANGES"] = 1] = "DISCARD_CHANGES";
  NetworkPortCommand2[NetworkPortCommand2["RENEW_FD_REGISTRATION"] = 2] = "RENEW_FD_REGISTRATION";
  NetworkPortCommand2[NetworkPortCommand2["RESTART_SLAVE_DISCOVERY"] = 3] = "RESTART_SLAVE_DISCOVERY";
  NetworkPortCommand2[NetworkPortCommand2["RENEW_DHCP"] = 4] = "RENEW_DHCP";
  NetworkPortCommand2[NetworkPortCommand2["RESTART_AUTONEGOTIATION"] = 5] = "RESTART_AUTONEGOTIATION";
  NetworkPortCommand2[NetworkPortCommand2["DISCONNECT"] = 6] = "DISCONNECT";
  NetworkPortCommand2[NetworkPortCommand2["RESTART_PORT"] = 7] = "RESTART_PORT";
  return NetworkPortCommand2;
})(NetworkPortCommand || {});
var NetworkType = /* @__PURE__ */ ((NetworkType2) => {
  NetworkType2[NetworkType2["ETHERNET"] = 0] = "ETHERNET";
  NetworkType2[NetworkType2["ARCNET"] = 1] = "ARCNET";
  NetworkType2[NetworkType2["MSTP"] = 2] = "MSTP";
  NetworkType2[NetworkType2["PTP"] = 3] = "PTP";
  NetworkType2[NetworkType2["LONTALK"] = 4] = "LONTALK";
  NetworkType2[NetworkType2["IPV4"] = 5] = "IPV4";
  NetworkType2[NetworkType2["ZIGBEE"] = 6] = "ZIGBEE";
  NetworkType2[NetworkType2["VIRTUAL"] = 7] = "VIRTUAL";
  NetworkType2[NetworkType2["IPV6"] = 9] = "IPV6";
  NetworkType2[NetworkType2["SERIAL"] = 10] = "SERIAL";
  return NetworkType2;
})(NetworkType || {});
var NodeType = /* @__PURE__ */ ((NodeType2) => {
  NodeType2[NodeType2["UNKNOWN"] = 0] = "UNKNOWN";
  NodeType2[NodeType2["SYSTEM"] = 1] = "SYSTEM";
  NodeType2[NodeType2["NETWORK"] = 2] = "NETWORK";
  NodeType2[NodeType2["DEVICE"] = 3] = "DEVICE";
  NodeType2[NodeType2["ORGANIZATIONAL"] = 4] = "ORGANIZATIONAL";
  NodeType2[NodeType2["AREA"] = 5] = "AREA";
  NodeType2[NodeType2["EQUIPMENT"] = 6] = "EQUIPMENT";
  NodeType2[NodeType2["POINT"] = 7] = "POINT";
  NodeType2[NodeType2["COLLECTION"] = 8] = "COLLECTION";
  NodeType2[NodeType2["PROPERTY"] = 9] = "PROPERTY";
  NodeType2[NodeType2["FUNCTIONAL"] = 10] = "FUNCTIONAL";
  NodeType2[NodeType2["OTHER"] = 11] = "OTHER";
  NodeType2[NodeType2["SUBSYSTEM"] = 12] = "SUBSYSTEM";
  NodeType2[NodeType2["BUILDING"] = 13] = "BUILDING";
  NodeType2[NodeType2["FLOOR"] = 14] = "FLOOR";
  NodeType2[NodeType2["SECTION"] = 15] = "SECTION";
  NodeType2[NodeType2["MODULE"] = 16] = "MODULE";
  NodeType2[NodeType2["TREE"] = 17] = "TREE";
  NodeType2[NodeType2["MEMBER"] = 18] = "MEMBER";
  NodeType2[NodeType2["PROTOCOL"] = 19] = "PROTOCOL";
  NodeType2[NodeType2["ROOM"] = 20] = "ROOM";
  NodeType2[NodeType2["ZONE"] = 21] = "ZONE";
  return NodeType2;
})(NodeType || {});
var NotifyType = /* @__PURE__ */ ((NotifyType2) => {
  NotifyType2[NotifyType2["ALARM"] = 0] = "ALARM";
  NotifyType2[NotifyType2["EVENT"] = 1] = "EVENT";
  NotifyType2[NotifyType2["ACK_NOTIFICATION"] = 2] = "ACK_NOTIFICATION";
  return NotifyType2;
})(NotifyType || {});
var ObjectType = /* @__PURE__ */ ((ObjectType2) => {
  ObjectType2[ObjectType2["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
  ObjectType2[ObjectType2["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
  ObjectType2[ObjectType2["ACCESS_POINT"] = 33] = "ACCESS_POINT";
  ObjectType2[ObjectType2["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
  ObjectType2[ObjectType2["ACCESS_USER"] = 35] = "ACCESS_USER";
  ObjectType2[ObjectType2["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
  ObjectType2[ObjectType2["ACCUMULATOR"] = 23] = "ACCUMULATOR";
  ObjectType2[ObjectType2["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
  ObjectType2[ObjectType2["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
  ObjectType2[ObjectType2["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
  ObjectType2[ObjectType2["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
  ObjectType2[ObjectType2["AVERAGING"] = 18] = "AVERAGING";
  ObjectType2[ObjectType2["BINARY_INPUT"] = 3] = "BINARY_INPUT";
  ObjectType2[ObjectType2["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
  ObjectType2[ObjectType2["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
  ObjectType2[ObjectType2["BINARY_VALUE"] = 5] = "BINARY_VALUE";
  ObjectType2[ObjectType2["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
  ObjectType2[ObjectType2["CALENDAR"] = 6] = "CALENDAR";
  ObjectType2[ObjectType2["CHANNEL"] = 53] = "CHANNEL";
  ObjectType2[ObjectType2["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
  ObjectType2[ObjectType2["COMMAND"] = 7] = "COMMAND";
  ObjectType2[ObjectType2["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
  ObjectType2[ObjectType2["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
  ObjectType2[ObjectType2["DATE_VALUE"] = 42] = "DATE_VALUE";
  ObjectType2[ObjectType2["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
  ObjectType2[ObjectType2["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
  ObjectType2[ObjectType2["DEVICE"] = 8] = "DEVICE";
  ObjectType2[ObjectType2["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
  ObjectType2[ObjectType2["ESCALATOR"] = 58] = "ESCALATOR";
  ObjectType2[ObjectType2["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
  ObjectType2[ObjectType2["EVENT_LOG"] = 25] = "EVENT_LOG";
  ObjectType2[ObjectType2["FILE"] = 10] = "FILE";
  ObjectType2[ObjectType2["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
  ObjectType2[ObjectType2["GROUP"] = 11] = "GROUP";
  ObjectType2[ObjectType2["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
  ObjectType2[ObjectType2["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
  ObjectType2[ObjectType2["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
  ObjectType2[ObjectType2["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
  ObjectType2[ObjectType2["LIFT"] = 59] = "LIFT";
  ObjectType2[ObjectType2["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
  ObjectType2[ObjectType2["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
  ObjectType2[ObjectType2["LOOP"] = 12] = "LOOP";
  ObjectType2[ObjectType2["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
  ObjectType2[ObjectType2["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
  ObjectType2[ObjectType2["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
  ObjectType2[ObjectType2["NETWORK_PORT"] = 56] = "NETWORK_PORT";
  ObjectType2[ObjectType2["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
  ObjectType2[ObjectType2["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
  ObjectType2[ObjectType2["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
  ObjectType2[ObjectType2["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
  ObjectType2[ObjectType2["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
  ObjectType2[ObjectType2["PROGRAM"] = 16] = "PROGRAM";
  ObjectType2[ObjectType2["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
  ObjectType2[ObjectType2["SCHEDULE"] = 17] = "SCHEDULE";
  ObjectType2[ObjectType2["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
  ObjectType2[ObjectType2["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
  ObjectType2[ObjectType2["TIME_VALUE"] = 50] = "TIME_VALUE";
  ObjectType2[ObjectType2["TIMER"] = 31] = "TIMER";
  ObjectType2[ObjectType2["TREND_LOG"] = 20] = "TREND_LOG";
  ObjectType2[ObjectType2["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
  return ObjectType2;
})(ObjectType || {});
var Polarity = /* @__PURE__ */ ((Polarity2) => {
  Polarity2[Polarity2["NORMAL"] = 0] = "NORMAL";
  Polarity2[Polarity2["REVERSE"] = 1] = "REVERSE";
  return Polarity2;
})(Polarity || {});
var ProgramError = /* @__PURE__ */ ((ProgramError2) => {
  ProgramError2[ProgramError2["NORMAL"] = 0] = "NORMAL";
  ProgramError2[ProgramError2["LOAD_FAILED"] = 1] = "LOAD_FAILED";
  ProgramError2[ProgramError2["INTERNAL"] = 2] = "INTERNAL";
  ProgramError2[ProgramError2["PROGRAM"] = 3] = "PROGRAM";
  ProgramError2[ProgramError2["OTHER"] = 4] = "OTHER";
  return ProgramError2;
})(ProgramError || {});
var ProgramRequest = /* @__PURE__ */ ((ProgramRequest2) => {
  ProgramRequest2[ProgramRequest2["READY"] = 0] = "READY";
  ProgramRequest2[ProgramRequest2["LOAD"] = 1] = "LOAD";
  ProgramRequest2[ProgramRequest2["RUN"] = 2] = "RUN";
  ProgramRequest2[ProgramRequest2["HALT"] = 3] = "HALT";
  ProgramRequest2[ProgramRequest2["RESTART"] = 4] = "RESTART";
  ProgramRequest2[ProgramRequest2["UNLOAD"] = 5] = "UNLOAD";
  return ProgramRequest2;
})(ProgramRequest || {});
var ProgramState = /* @__PURE__ */ ((ProgramState2) => {
  ProgramState2[ProgramState2["IDLE"] = 0] = "IDLE";
  ProgramState2[ProgramState2["LOADING"] = 1] = "LOADING";
  ProgramState2[ProgramState2["RUNNING"] = 2] = "RUNNING";
  ProgramState2[ProgramState2["WAITING"] = 3] = "WAITING";
  ProgramState2[ProgramState2["HALTED"] = 4] = "HALTED";
  ProgramState2[ProgramState2["UNLOADING"] = 5] = "UNLOADING";
  return ProgramState2;
})(ProgramState || {});
var PropertyIdentifier = /* @__PURE__ */ ((PropertyIdentifier2) => {
  PropertyIdentifier2[PropertyIdentifier2["ABSENTEE_LIMIT"] = 244] = "ABSENTEE_LIMIT";
  PropertyIdentifier2[PropertyIdentifier2["ACCEPTED_MODES"] = 175] = "ACCEPTED_MODES";
  PropertyIdentifier2[PropertyIdentifier2["ACCESS_ALARM_EVENTS"] = 245] = "ACCESS_ALARM_EVENTS";
  PropertyIdentifier2[PropertyIdentifier2["ACCESS_DOORS"] = 246] = "ACCESS_DOORS";
  PropertyIdentifier2[PropertyIdentifier2["ACCESS_EVENT"] = 247] = "ACCESS_EVENT";
  PropertyIdentifier2[PropertyIdentifier2["ACCESS_EVENT_AUTHENTICATION_FACTOR"] = 248] = "ACCESS_EVENT_AUTHENTICATION_FACTOR";
  PropertyIdentifier2[PropertyIdentifier2["ACCESS_EVENT_CREDENTIAL"] = 249] = "ACCESS_EVENT_CREDENTIAL";
  PropertyIdentifier2[PropertyIdentifier2["ACCESS_EVENT_TAG"] = 322] = "ACCESS_EVENT_TAG";
  PropertyIdentifier2[PropertyIdentifier2["ACCESS_EVENT_TIME"] = 250] = "ACCESS_EVENT_TIME";
  PropertyIdentifier2[PropertyIdentifier2["ACCESS_TRANSACTION_EVENTS"] = 251] = "ACCESS_TRANSACTION_EVENTS";
  PropertyIdentifier2[PropertyIdentifier2["ACCOMPANIMENT"] = 252] = "ACCOMPANIMENT";
  PropertyIdentifier2[PropertyIdentifier2["ACCOMPANIMENT_TIME"] = 253] = "ACCOMPANIMENT_TIME";
  PropertyIdentifier2[PropertyIdentifier2["ACK_REQUIRED"] = 1] = "ACK_REQUIRED";
  PropertyIdentifier2[PropertyIdentifier2["ACKED_TRANSITIONS"] = 0] = "ACKED_TRANSITIONS";
  PropertyIdentifier2[PropertyIdentifier2["ACTION"] = 2] = "ACTION";
  PropertyIdentifier2[PropertyIdentifier2["ACTION_TEXT"] = 3] = "ACTION_TEXT";
  PropertyIdentifier2[PropertyIdentifier2["ACTIVATION_TIME"] = 254] = "ACTIVATION_TIME";
  PropertyIdentifier2[PropertyIdentifier2["ACTIVE_AUTHENTICATION_POLICY"] = 255] = "ACTIVE_AUTHENTICATION_POLICY";
  PropertyIdentifier2[PropertyIdentifier2["ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS"] = 481] = "ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS";
  PropertyIdentifier2[PropertyIdentifier2["ACTIVE_COV_SUBSCRIPTIONS"] = 152] = "ACTIVE_COV_SUBSCRIPTIONS";
  PropertyIdentifier2[PropertyIdentifier2["ACTIVE_TEXT"] = 4] = "ACTIVE_TEXT";
  PropertyIdentifier2[PropertyIdentifier2["ACTIVE_VT_SESSIONS"] = 5] = "ACTIVE_VT_SESSIONS";
  PropertyIdentifier2[PropertyIdentifier2["ACTUAL_SHED_LEVEL"] = 212] = "ACTUAL_SHED_LEVEL";
  PropertyIdentifier2[PropertyIdentifier2["ADJUST_VALUE"] = 176] = "ADJUST_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["ALARM_VALUE"] = 6] = "ALARM_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["ALARM_VALUES"] = 7] = "ALARM_VALUES";
  PropertyIdentifier2[PropertyIdentifier2["ALIGN_INTERVALS"] = 193] = "ALIGN_INTERVALS";
  PropertyIdentifier2[PropertyIdentifier2["ALL"] = 8] = "ALL";
  PropertyIdentifier2[PropertyIdentifier2["ALL_WRITES_SUCCESSFUL"] = 9] = "ALL_WRITES_SUCCESSFUL";
  PropertyIdentifier2[PropertyIdentifier2["ALLOW_GROUP_DELAY_INHIBIT"] = 365] = "ALLOW_GROUP_DELAY_INHIBIT";
  PropertyIdentifier2[PropertyIdentifier2["APDU_LENGTH"] = 399] = "APDU_LENGTH";
  PropertyIdentifier2[PropertyIdentifier2["APDU_SEGMENT_TIMEOUT"] = 10] = "APDU_SEGMENT_TIMEOUT";
  PropertyIdentifier2[PropertyIdentifier2["APDU_TIMEOUT"] = 11] = "APDU_TIMEOUT";
  PropertyIdentifier2[PropertyIdentifier2["APPLICATION_SOFTWARE_VERSION"] = 12] = "APPLICATION_SOFTWARE_VERSION";
  PropertyIdentifier2[PropertyIdentifier2["ARCHIVE"] = 13] = "ARCHIVE";
  PropertyIdentifier2[PropertyIdentifier2["ASSIGNED_ACCESS_RIGHTS"] = 256] = "ASSIGNED_ACCESS_RIGHTS";
  PropertyIdentifier2[PropertyIdentifier2["ASSIGNED_LANDING_CALLS"] = 447] = "ASSIGNED_LANDING_CALLS";
  PropertyIdentifier2[PropertyIdentifier2["ATTEMPTED_SAMPLES"] = 124] = "ATTEMPTED_SAMPLES";
  PropertyIdentifier2[PropertyIdentifier2["AUTHENTICATION_FACTORS"] = 257] = "AUTHENTICATION_FACTORS";
  PropertyIdentifier2[PropertyIdentifier2["AUTHENTICATION_POLICY_LIST"] = 258] = "AUTHENTICATION_POLICY_LIST";
  PropertyIdentifier2[PropertyIdentifier2["AUTHENTICATION_POLICY_NAMES"] = 259] = "AUTHENTICATION_POLICY_NAMES";
  PropertyIdentifier2[PropertyIdentifier2["AUTHENTICATION_STATUS"] = 260] = "AUTHENTICATION_STATUS";
  PropertyIdentifier2[PropertyIdentifier2["AUTHORIZATION_EXEMPTIONS"] = 364] = "AUTHORIZATION_EXEMPTIONS";
  PropertyIdentifier2[PropertyIdentifier2["AUTHORIZATION_MODE"] = 261] = "AUTHORIZATION_MODE";
  PropertyIdentifier2[PropertyIdentifier2["AUTO_SLAVE_DISCOVERY"] = 169] = "AUTO_SLAVE_DISCOVERY";
  PropertyIdentifier2[PropertyIdentifier2["AVERAGE_VALUE"] = 125] = "AVERAGE_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["BACKUP_AND_RESTORE_STATE"] = 338] = "BACKUP_AND_RESTORE_STATE";
  PropertyIdentifier2[PropertyIdentifier2["BACKUP_FAILURE_TIMEOUT"] = 153] = "BACKUP_FAILURE_TIMEOUT";
  PropertyIdentifier2[PropertyIdentifier2["BACKUP_PREPARATION_TIME"] = 339] = "BACKUP_PREPARATION_TIME";
  PropertyIdentifier2[PropertyIdentifier2["BACNET_IP_GLOBAL_ADDRESS"] = 407] = "BACNET_IP_GLOBAL_ADDRESS";
  PropertyIdentifier2[PropertyIdentifier2["BACNET_IP_MODE"] = 408] = "BACNET_IP_MODE";
  PropertyIdentifier2[PropertyIdentifier2["BACNET_IP_MULTICAST_ADDRESS"] = 409] = "BACNET_IP_MULTICAST_ADDRESS";
  PropertyIdentifier2[PropertyIdentifier2["BACNET_IP_NAT_TRAVERSAL"] = 410] = "BACNET_IP_NAT_TRAVERSAL";
  PropertyIdentifier2[PropertyIdentifier2["BACNET_IP_UDP_PORT"] = 412] = "BACNET_IP_UDP_PORT";
  PropertyIdentifier2[PropertyIdentifier2["BACNET_IPV6_MODE"] = 435] = "BACNET_IPV6_MODE";
  PropertyIdentifier2[PropertyIdentifier2["BACNET_IPV6_UDP_PORT"] = 438] = "BACNET_IPV6_UDP_PORT";
  PropertyIdentifier2[PropertyIdentifier2["BACNET_IPV6_MULTICAST_ADDRESS"] = 440] = "BACNET_IPV6_MULTICAST_ADDRESS";
  PropertyIdentifier2[PropertyIdentifier2["BBMD_ACCEPT_FD_REGISTRATIONS"] = 413] = "BBMD_ACCEPT_FD_REGISTRATIONS";
  PropertyIdentifier2[PropertyIdentifier2["BBMD_BROADCAST_DISTRIBUTION_TABLE"] = 414] = "BBMD_BROADCAST_DISTRIBUTION_TABLE";
  PropertyIdentifier2[PropertyIdentifier2["BBMD_FOREIGN_DEVICE_TABLE"] = 415] = "BBMD_FOREIGN_DEVICE_TABLE";
  PropertyIdentifier2[PropertyIdentifier2["BELONGS_TO"] = 262] = "BELONGS_TO";
  PropertyIdentifier2[PropertyIdentifier2["BIAS"] = 14] = "BIAS";
  PropertyIdentifier2[PropertyIdentifier2["BIT_MASK"] = 342] = "BIT_MASK";
  PropertyIdentifier2[PropertyIdentifier2["BIT_TEXT"] = 343] = "BIT_TEXT";
  PropertyIdentifier2[PropertyIdentifier2["BLINK_WARN_ENABLE"] = 373] = "BLINK_WARN_ENABLE";
  PropertyIdentifier2[PropertyIdentifier2["BUFFER_SIZE"] = 126] = "BUFFER_SIZE";
  PropertyIdentifier2[PropertyIdentifier2["CAR_ASSIGNED_DIRECTION"] = 448] = "CAR_ASSIGNED_DIRECTION";
  PropertyIdentifier2[PropertyIdentifier2["CAR_DOOR_COMMAND"] = 449] = "CAR_DOOR_COMMAND";
  PropertyIdentifier2[PropertyIdentifier2["CAR_DOOR_STATUS"] = 450] = "CAR_DOOR_STATUS";
  PropertyIdentifier2[PropertyIdentifier2["CAR_DOOR_TEXT"] = 451] = "CAR_DOOR_TEXT";
  PropertyIdentifier2[PropertyIdentifier2["CAR_DOOR_ZONE"] = 452] = "CAR_DOOR_ZONE";
  PropertyIdentifier2[PropertyIdentifier2["CAR_DRIVE_STATUS"] = 453] = "CAR_DRIVE_STATUS";
  PropertyIdentifier2[PropertyIdentifier2["CAR_LOAD"] = 454] = "CAR_LOAD";
  PropertyIdentifier2[PropertyIdentifier2["CAR_LOAD_UNITS"] = 455] = "CAR_LOAD_UNITS";
  PropertyIdentifier2[PropertyIdentifier2["CAR_MODE"] = 456] = "CAR_MODE";
  PropertyIdentifier2[PropertyIdentifier2["CAR_MOVING_DIRECTION"] = 457] = "CAR_MOVING_DIRECTION";
  PropertyIdentifier2[PropertyIdentifier2["CAR_POSITION"] = 458] = "CAR_POSITION";
  PropertyIdentifier2[PropertyIdentifier2["CHANGE_OF_STATE_COUNT"] = 15] = "CHANGE_OF_STATE_COUNT";
  PropertyIdentifier2[PropertyIdentifier2["CHANGE_OF_STATE_TIME"] = 16] = "CHANGE_OF_STATE_TIME";
  PropertyIdentifier2[PropertyIdentifier2["CHANGES_PENDING"] = 416] = "CHANGES_PENDING";
  PropertyIdentifier2[PropertyIdentifier2["CHANNEL_NUMBER"] = 366] = "CHANNEL_NUMBER";
  PropertyIdentifier2[PropertyIdentifier2["CLIENT_COV_INCREMENT"] = 127] = "CLIENT_COV_INCREMENT";
  PropertyIdentifier2[PropertyIdentifier2["COMMAND"] = 417] = "COMMAND";
  PropertyIdentifier2[PropertyIdentifier2["COMMAND_TIME_ARRAY"] = 430] = "COMMAND_TIME_ARRAY";
  PropertyIdentifier2[PropertyIdentifier2["CONFIGURATION_FILES"] = 154] = "CONFIGURATION_FILES";
  PropertyIdentifier2[PropertyIdentifier2["CONTROL_GROUPS"] = 367] = "CONTROL_GROUPS";
  PropertyIdentifier2[PropertyIdentifier2["CONTROLLED_VARIABLE_REFERENCE"] = 19] = "CONTROLLED_VARIABLE_REFERENCE";
  PropertyIdentifier2[PropertyIdentifier2["CONTROLLED_VARIABLE_UNITS"] = 20] = "CONTROLLED_VARIABLE_UNITS";
  PropertyIdentifier2[PropertyIdentifier2["CONTROLLED_VARIABLE_VALUE"] = 21] = "CONTROLLED_VARIABLE_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["COUNT"] = 177] = "COUNT";
  PropertyIdentifier2[PropertyIdentifier2["COUNT_BEFORE_CHANGE"] = 178] = "COUNT_BEFORE_CHANGE";
  PropertyIdentifier2[PropertyIdentifier2["COUNT_CHANGE_TIME"] = 179] = "COUNT_CHANGE_TIME";
  PropertyIdentifier2[PropertyIdentifier2["COV_INCREMENT"] = 22] = "COV_INCREMENT";
  PropertyIdentifier2[PropertyIdentifier2["COV_PERIOD"] = 180] = "COV_PERIOD";
  PropertyIdentifier2[PropertyIdentifier2["COV_RESUBSCRIPTION_INTERVAL"] = 128] = "COV_RESUBSCRIPTION_INTERVAL";
  PropertyIdentifier2[PropertyIdentifier2["COVU_PERIOD"] = 349] = "COVU_PERIOD";
  PropertyIdentifier2[PropertyIdentifier2["COVU_RECIPIENTS"] = 350] = "COVU_RECIPIENTS";
  PropertyIdentifier2[PropertyIdentifier2["CREDENTIAL_DISABLE"] = 263] = "CREDENTIAL_DISABLE";
  PropertyIdentifier2[PropertyIdentifier2["CREDENTIAL_STATUS"] = 264] = "CREDENTIAL_STATUS";
  PropertyIdentifier2[PropertyIdentifier2["CREDENTIALS"] = 265] = "CREDENTIALS";
  PropertyIdentifier2[PropertyIdentifier2["CREDENTIALS_IN_ZONE"] = 266] = "CREDENTIALS_IN_ZONE";
  PropertyIdentifier2[PropertyIdentifier2["CURRENT_COMMAND_PRIORITY"] = 431] = "CURRENT_COMMAND_PRIORITY";
  PropertyIdentifier2[PropertyIdentifier2["DATABASE_REVISION"] = 155] = "DATABASE_REVISION";
  PropertyIdentifier2[PropertyIdentifier2["DATE_LIST"] = 23] = "DATE_LIST";
  PropertyIdentifier2[PropertyIdentifier2["DAYLIGHT_SAVINGS_STATUS"] = 24] = "DAYLIGHT_SAVINGS_STATUS";
  PropertyIdentifier2[PropertyIdentifier2["DAYS_REMAINING"] = 267] = "DAYS_REMAINING";
  PropertyIdentifier2[PropertyIdentifier2["DEADBAND"] = 25] = "DEADBAND";
  PropertyIdentifier2[PropertyIdentifier2["DEFAULT_FADE_TIME"] = 374] = "DEFAULT_FADE_TIME";
  PropertyIdentifier2[PropertyIdentifier2["DEFAULT_RAMP_RATE"] = 375] = "DEFAULT_RAMP_RATE";
  PropertyIdentifier2[PropertyIdentifier2["DEFAULT_STEP_INCREMENT"] = 376] = "DEFAULT_STEP_INCREMENT";
  PropertyIdentifier2[PropertyIdentifier2["DEFAULT_SUBORDINATE_RELATIONSHIP"] = 490] = "DEFAULT_SUBORDINATE_RELATIONSHIP";
  PropertyIdentifier2[PropertyIdentifier2["DEFAULT_TIMEOUT"] = 393] = "DEFAULT_TIMEOUT";
  PropertyIdentifier2[PropertyIdentifier2["DEPLOYED_PROFILE_LOCATION"] = 484] = "DEPLOYED_PROFILE_LOCATION";
  PropertyIdentifier2[PropertyIdentifier2["DERIVATIVE_CONSTANT"] = 26] = "DERIVATIVE_CONSTANT";
  PropertyIdentifier2[PropertyIdentifier2["DERIVATIVE_CONSTANT_UNITS"] = 27] = "DERIVATIVE_CONSTANT_UNITS";
  PropertyIdentifier2[PropertyIdentifier2["DESCRIPTION"] = 28] = "DESCRIPTION";
  PropertyIdentifier2[PropertyIdentifier2["DESCRIPTION_OF_HALT"] = 29] = "DESCRIPTION_OF_HALT";
  PropertyIdentifier2[PropertyIdentifier2["DEVICE_ADDRESS_BINDING"] = 30] = "DEVICE_ADDRESS_BINDING";
  PropertyIdentifier2[PropertyIdentifier2["DEVICE_TYPE"] = 31] = "DEVICE_TYPE";
  PropertyIdentifier2[PropertyIdentifier2["DIRECT_READING"] = 156] = "DIRECT_READING";
  PropertyIdentifier2[PropertyIdentifier2["DISTRIBUTION_KEY_REVISION"] = 328] = "DISTRIBUTION_KEY_REVISION";
  PropertyIdentifier2[PropertyIdentifier2["DO_NOT_HIDE"] = 329] = "DO_NOT_HIDE";
  PropertyIdentifier2[PropertyIdentifier2["DOOR_ALARM_STATE"] = 226] = "DOOR_ALARM_STATE";
  PropertyIdentifier2[PropertyIdentifier2["DOOR_EXTENDED_PULSE_TIME"] = 227] = "DOOR_EXTENDED_PULSE_TIME";
  PropertyIdentifier2[PropertyIdentifier2["DOOR_MEMBERS"] = 228] = "DOOR_MEMBERS";
  PropertyIdentifier2[PropertyIdentifier2["DOOR_OPEN_TOO_LONG_TIME"] = 229] = "DOOR_OPEN_TOO_LONG_TIME";
  PropertyIdentifier2[PropertyIdentifier2["DOOR_PULSE_TIME"] = 230] = "DOOR_PULSE_TIME";
  PropertyIdentifier2[PropertyIdentifier2["DOOR_STATUS"] = 231] = "DOOR_STATUS";
  PropertyIdentifier2[PropertyIdentifier2["DOOR_UNLOCK_DELAY_TIME"] = 232] = "DOOR_UNLOCK_DELAY_TIME";
  PropertyIdentifier2[PropertyIdentifier2["DUTY_WINDOW"] = 213] = "DUTY_WINDOW";
  PropertyIdentifier2[PropertyIdentifier2["EFFECTIVE_PERIOD"] = 32] = "EFFECTIVE_PERIOD";
  PropertyIdentifier2[PropertyIdentifier2["EGRESS_ACTIVE"] = 386] = "EGRESS_ACTIVE";
  PropertyIdentifier2[PropertyIdentifier2["EGRESS_TIME"] = 377] = "EGRESS_TIME";
  PropertyIdentifier2[PropertyIdentifier2["ELAPSED_ACTIVE_TIME"] = 33] = "ELAPSED_ACTIVE_TIME";
  PropertyIdentifier2[PropertyIdentifier2["ELEVATOR_GROUP"] = 459] = "ELEVATOR_GROUP";
  PropertyIdentifier2[PropertyIdentifier2["ENABLE"] = 133] = "ENABLE";
  PropertyIdentifier2[PropertyIdentifier2["ENERGY_METER"] = 460] = "ENERGY_METER";
  PropertyIdentifier2[PropertyIdentifier2["ENERGY_METER_REF"] = 461] = "ENERGY_METER_REF";
  PropertyIdentifier2[PropertyIdentifier2["ENTRY_POINTS"] = 268] = "ENTRY_POINTS";
  PropertyIdentifier2[PropertyIdentifier2["ERROR_LIMIT"] = 34] = "ERROR_LIMIT";
  PropertyIdentifier2[PropertyIdentifier2["ESCALATOR_MODE"] = 462] = "ESCALATOR_MODE";
  PropertyIdentifier2[PropertyIdentifier2["EVENT_ALGORITHM_INHIBIT"] = 354] = "EVENT_ALGORITHM_INHIBIT";
  PropertyIdentifier2[PropertyIdentifier2["EVENT_ALGORITHM_INHIBIT_REF"] = 355] = "EVENT_ALGORITHM_INHIBIT_REF";
  PropertyIdentifier2[PropertyIdentifier2["EVENT_DETECTION_ENABLE"] = 353] = "EVENT_DETECTION_ENABLE";
  PropertyIdentifier2[PropertyIdentifier2["EVENT_ENABLE"] = 35] = "EVENT_ENABLE";
  PropertyIdentifier2[PropertyIdentifier2["EVENT_MESSAGE_TEXTS"] = 351] = "EVENT_MESSAGE_TEXTS";
  PropertyIdentifier2[PropertyIdentifier2["EVENT_MESSAGE_TEXTS_CONFIG"] = 352] = "EVENT_MESSAGE_TEXTS_CONFIG";
  PropertyIdentifier2[PropertyIdentifier2["EVENT_PARAMETERS"] = 83] = "EVENT_PARAMETERS";
  PropertyIdentifier2[PropertyIdentifier2["EVENT_STATE"] = 36] = "EVENT_STATE";
  PropertyIdentifier2[PropertyIdentifier2["EVENT_TIME_STAMPS"] = 130] = "EVENT_TIME_STAMPS";
  PropertyIdentifier2[PropertyIdentifier2["EVENT_TYPE"] = 37] = "EVENT_TYPE";
  PropertyIdentifier2[PropertyIdentifier2["EXCEPTION_SCHEDULE"] = 38] = "EXCEPTION_SCHEDULE";
  PropertyIdentifier2[PropertyIdentifier2["EXECUTION_DELAY"] = 368] = "EXECUTION_DELAY";
  PropertyIdentifier2[PropertyIdentifier2["EXIT_POINTS"] = 269] = "EXIT_POINTS";
  PropertyIdentifier2[PropertyIdentifier2["EXPECTED_SHED_LEVEL"] = 214] = "EXPECTED_SHED_LEVEL";
  PropertyIdentifier2[PropertyIdentifier2["EXPIRATION_TIME"] = 270] = "EXPIRATION_TIME";
  PropertyIdentifier2[PropertyIdentifier2["EXTENDED_TIME_ENABLE"] = 271] = "EXTENDED_TIME_ENABLE";
  PropertyIdentifier2[PropertyIdentifier2["FAILED_ATTEMPT_EVENTS"] = 272] = "FAILED_ATTEMPT_EVENTS";
  PropertyIdentifier2[PropertyIdentifier2["FAILED_ATTEMPTS"] = 273] = "FAILED_ATTEMPTS";
  PropertyIdentifier2[PropertyIdentifier2["FAILED_ATTEMPTS_TIME"] = 274] = "FAILED_ATTEMPTS_TIME";
  PropertyIdentifier2[PropertyIdentifier2["FAULT_HIGH_LIMIT"] = 388] = "FAULT_HIGH_LIMIT";
  PropertyIdentifier2[PropertyIdentifier2["FAULT_LOW_LIMIT"] = 389] = "FAULT_LOW_LIMIT";
  PropertyIdentifier2[PropertyIdentifier2["FAULT_PARAMETERS"] = 358] = "FAULT_PARAMETERS";
  PropertyIdentifier2[PropertyIdentifier2["FAULT_SIGNALS"] = 463] = "FAULT_SIGNALS";
  PropertyIdentifier2[PropertyIdentifier2["FAULT_TYPE"] = 359] = "FAULT_TYPE";
  PropertyIdentifier2[PropertyIdentifier2["FAULT_VALUES"] = 39] = "FAULT_VALUES";
  PropertyIdentifier2[PropertyIdentifier2["FD_BBMD_ADDRESS"] = 418] = "FD_BBMD_ADDRESS";
  PropertyIdentifier2[PropertyIdentifier2["FD_SUBSCRIPTION_LIFETIME"] = 419] = "FD_SUBSCRIPTION_LIFETIME";
  PropertyIdentifier2[PropertyIdentifier2["FEEDBACK_VALUE"] = 40] = "FEEDBACK_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["FILE_ACCESS_METHOD"] = 41] = "FILE_ACCESS_METHOD";
  PropertyIdentifier2[PropertyIdentifier2["FILE_SIZE"] = 42] = "FILE_SIZE";
  PropertyIdentifier2[PropertyIdentifier2["FILE_TYPE"] = 43] = "FILE_TYPE";
  PropertyIdentifier2[PropertyIdentifier2["FIRMWARE_REVISION"] = 44] = "FIRMWARE_REVISION";
  PropertyIdentifier2[PropertyIdentifier2["FLOOR_TEXT"] = 464] = "FLOOR_TEXT";
  PropertyIdentifier2[PropertyIdentifier2["FULL_DUTY_BASELINE"] = 215] = "FULL_DUTY_BASELINE";
  PropertyIdentifier2[PropertyIdentifier2["GLOBAL_IDENTIFIER"] = 323] = "GLOBAL_IDENTIFIER";
  PropertyIdentifier2[PropertyIdentifier2["GROUP_ID"] = 465] = "GROUP_ID";
  PropertyIdentifier2[PropertyIdentifier2["GROUP_MEMBER_NAMES"] = 346] = "GROUP_MEMBER_NAMES";
  PropertyIdentifier2[PropertyIdentifier2["GROUP_MEMBERS"] = 345] = "GROUP_MEMBERS";
  PropertyIdentifier2[PropertyIdentifier2["GROUP_MODE"] = 467] = "GROUP_MODE";
  PropertyIdentifier2[PropertyIdentifier2["HIGH_LIMIT"] = 45] = "HIGH_LIMIT";
  PropertyIdentifier2[PropertyIdentifier2["HIGHER_DECK"] = 468] = "HIGHER_DECK";
  PropertyIdentifier2[PropertyIdentifier2["IN_PROCESS"] = 47] = "IN_PROCESS";
  PropertyIdentifier2[PropertyIdentifier2["IN_PROGRESS"] = 378] = "IN_PROGRESS";
  PropertyIdentifier2[PropertyIdentifier2["INACTIVE_TEXT"] = 46] = "INACTIVE_TEXT";
  PropertyIdentifier2[PropertyIdentifier2["INITIAL_TIMEOUT"] = 394] = "INITIAL_TIMEOUT";
  PropertyIdentifier2[PropertyIdentifier2["INPUT_REFERENCE"] = 181] = "INPUT_REFERENCE";
  PropertyIdentifier2[PropertyIdentifier2["INSTALLATION_ID"] = 469] = "INSTALLATION_ID";
  PropertyIdentifier2[PropertyIdentifier2["INSTANCE_OF"] = 48] = "INSTANCE_OF";
  PropertyIdentifier2[PropertyIdentifier2["INSTANTANEOUS_POWER"] = 379] = "INSTANTANEOUS_POWER";
  PropertyIdentifier2[PropertyIdentifier2["INTEGRAL_CONSTANT"] = 49] = "INTEGRAL_CONSTANT";
  PropertyIdentifier2[PropertyIdentifier2["INTEGRAL_CONSTANT_UNITS"] = 50] = "INTEGRAL_CONSTANT_UNITS";
  PropertyIdentifier2[PropertyIdentifier2["INTERFACE_VALUE"] = 387] = "INTERFACE_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["INTERVAL_OFFSET"] = 195] = "INTERVAL_OFFSET";
  PropertyIdentifier2[PropertyIdentifier2["IP_ADDRESS"] = 400] = "IP_ADDRESS";
  PropertyIdentifier2[PropertyIdentifier2["IP_DEFAULT_GATEWAY"] = 401] = "IP_DEFAULT_GATEWAY";
  PropertyIdentifier2[PropertyIdentifier2["IP_DHCP_ENABLE"] = 402] = "IP_DHCP_ENABLE";
  PropertyIdentifier2[PropertyIdentifier2["IP_DHCP_LEASE_TIME"] = 403] = "IP_DHCP_LEASE_TIME";
  PropertyIdentifier2[PropertyIdentifier2["IP_DHCP_LEASE_TIME_REMAINING"] = 404] = "IP_DHCP_LEASE_TIME_REMAINING";
  PropertyIdentifier2[PropertyIdentifier2["IP_DHCP_SERVER"] = 405] = "IP_DHCP_SERVER";
  PropertyIdentifier2[PropertyIdentifier2["IP_DNS_SERVER"] = 406] = "IP_DNS_SERVER";
  PropertyIdentifier2[PropertyIdentifier2["IP_SUBNET_MASK"] = 411] = "IP_SUBNET_MASK";
  PropertyIdentifier2[PropertyIdentifier2["IPV6_ADDRESS"] = 436] = "IPV6_ADDRESS";
  PropertyIdentifier2[PropertyIdentifier2["IPV6_AUTO_ADDRESSING_ENABLE"] = 442] = "IPV6_AUTO_ADDRESSING_ENABLE";
  PropertyIdentifier2[PropertyIdentifier2["IPV6_DEFAULT_GATEWAY"] = 439] = "IPV6_DEFAULT_GATEWAY";
  PropertyIdentifier2[PropertyIdentifier2["IPV6_DHCP_LEASE_TIME"] = 443] = "IPV6_DHCP_LEASE_TIME";
  PropertyIdentifier2[PropertyIdentifier2["IPV6_DHCP_LEASE_TIME_REMAINING"] = 444] = "IPV6_DHCP_LEASE_TIME_REMAINING";
  PropertyIdentifier2[PropertyIdentifier2["IPV6_DHCP_SERVER"] = 445] = "IPV6_DHCP_SERVER";
  PropertyIdentifier2[PropertyIdentifier2["IPV6_DNS_SERVER"] = 441] = "IPV6_DNS_SERVER";
  PropertyIdentifier2[PropertyIdentifier2["IPV6_PREFIX_LENGTH"] = 437] = "IPV6_PREFIX_LENGTH";
  PropertyIdentifier2[PropertyIdentifier2["IPV6_ZONE_INDEX"] = 446] = "IPV6_ZONE_INDEX";
  PropertyIdentifier2[PropertyIdentifier2["IS_UTC"] = 344] = "IS_UTC";
  PropertyIdentifier2[PropertyIdentifier2["KEY_SETS"] = 330] = "KEY_SETS";
  PropertyIdentifier2[PropertyIdentifier2["LANDING_CALL_CONTROL"] = 471] = "LANDING_CALL_CONTROL";
  PropertyIdentifier2[PropertyIdentifier2["LANDING_CALLS"] = 470] = "LANDING_CALLS";
  PropertyIdentifier2[PropertyIdentifier2["LANDING_DOOR_STATUS"] = 472] = "LANDING_DOOR_STATUS";
  PropertyIdentifier2[PropertyIdentifier2["LAST_ACCESS_EVENT"] = 275] = "LAST_ACCESS_EVENT";
  PropertyIdentifier2[PropertyIdentifier2["LAST_ACCESS_POINT"] = 276] = "LAST_ACCESS_POINT";
  PropertyIdentifier2[PropertyIdentifier2["LAST_COMMAND_TIME"] = 432] = "LAST_COMMAND_TIME";
  PropertyIdentifier2[PropertyIdentifier2["LAST_CREDENTIAL_ADDED"] = 277] = "LAST_CREDENTIAL_ADDED";
  PropertyIdentifier2[PropertyIdentifier2["LAST_CREDENTIAL_ADDED_TIME"] = 278] = "LAST_CREDENTIAL_ADDED_TIME";
  PropertyIdentifier2[PropertyIdentifier2["LAST_CREDENTIAL_REMOVED"] = 279] = "LAST_CREDENTIAL_REMOVED";
  PropertyIdentifier2[PropertyIdentifier2["LAST_CREDENTIAL_REMOVED_TIME"] = 280] = "LAST_CREDENTIAL_REMOVED_TIME";
  PropertyIdentifier2[PropertyIdentifier2["LAST_KEY_SERVER"] = 331] = "LAST_KEY_SERVER";
  PropertyIdentifier2[PropertyIdentifier2["LAST_NOTIFY_RECORD"] = 173] = "LAST_NOTIFY_RECORD";
  PropertyIdentifier2[PropertyIdentifier2["LAST_PRIORITY"] = 369] = "LAST_PRIORITY";
  PropertyIdentifier2[PropertyIdentifier2["LAST_RESTART_REASON"] = 196] = "LAST_RESTART_REASON";
  PropertyIdentifier2[PropertyIdentifier2["LAST_RESTORE_TIME"] = 157] = "LAST_RESTORE_TIME";
  PropertyIdentifier2[PropertyIdentifier2["LAST_STATE_CHANGE"] = 395] = "LAST_STATE_CHANGE";
  PropertyIdentifier2[PropertyIdentifier2["LAST_USE_TIME"] = 281] = "LAST_USE_TIME";
  PropertyIdentifier2[PropertyIdentifier2["LIFE_SAFETY_ALARM_VALUES"] = 166] = "LIFE_SAFETY_ALARM_VALUES";
  PropertyIdentifier2[PropertyIdentifier2["LIGHTING_COMMAND"] = 380] = "LIGHTING_COMMAND";
  PropertyIdentifier2[PropertyIdentifier2["LIGHTING_COMMAND_DEFAULT_PRIORITY"] = 381] = "LIGHTING_COMMAND_DEFAULT_PRIORITY";
  PropertyIdentifier2[PropertyIdentifier2["LIMIT_ENABLE"] = 52] = "LIMIT_ENABLE";
  PropertyIdentifier2[PropertyIdentifier2["LIMIT_MONITORING_INTERVAL"] = 182] = "LIMIT_MONITORING_INTERVAL";
  PropertyIdentifier2[PropertyIdentifier2["LINK_SPEED"] = 420] = "LINK_SPEED";
  PropertyIdentifier2[PropertyIdentifier2["LINK_SPEED_AUTONEGOTIATE"] = 422] = "LINK_SPEED_AUTONEGOTIATE";
  PropertyIdentifier2[PropertyIdentifier2["LINK_SPEEDS"] = 421] = "LINK_SPEEDS";
  PropertyIdentifier2[PropertyIdentifier2["LIST_OF_GROUP_MEMBERS"] = 53] = "LIST_OF_GROUP_MEMBERS";
  PropertyIdentifier2[PropertyIdentifier2["LIST_OF_OBJECT_PROPERTY_REFERENCES"] = 54] = "LIST_OF_OBJECT_PROPERTY_REFERENCES";
  PropertyIdentifier2[PropertyIdentifier2["LOCAL_DATE"] = 56] = "LOCAL_DATE";
  PropertyIdentifier2[PropertyIdentifier2["LOCAL_FORWARDING_ONLY"] = 360] = "LOCAL_FORWARDING_ONLY";
  PropertyIdentifier2[PropertyIdentifier2["LOCAL_TIME"] = 57] = "LOCAL_TIME";
  PropertyIdentifier2[PropertyIdentifier2["LOCATION"] = 58] = "LOCATION";
  PropertyIdentifier2[PropertyIdentifier2["LOCK_STATUS"] = 233] = "LOCK_STATUS";
  PropertyIdentifier2[PropertyIdentifier2["LOCKOUT"] = 282] = "LOCKOUT";
  PropertyIdentifier2[PropertyIdentifier2["LOCKOUT_RELINQUISH_TIME"] = 283] = "LOCKOUT_RELINQUISH_TIME";
  PropertyIdentifier2[PropertyIdentifier2["LOG_BUFFER"] = 131] = "LOG_BUFFER";
  PropertyIdentifier2[PropertyIdentifier2["LOG_DEVICE_OBJECT_PROPERTY"] = 132] = "LOG_DEVICE_OBJECT_PROPERTY";
  PropertyIdentifier2[PropertyIdentifier2["LOG_INTERVAL"] = 134] = "LOG_INTERVAL";
  PropertyIdentifier2[PropertyIdentifier2["LOGGING_OBJECT"] = 183] = "LOGGING_OBJECT";
  PropertyIdentifier2[PropertyIdentifier2["LOGGING_RECORD"] = 184] = "LOGGING_RECORD";
  PropertyIdentifier2[PropertyIdentifier2["LOGGING_TYPE"] = 197] = "LOGGING_TYPE";
  PropertyIdentifier2[PropertyIdentifier2["LOW_DIFF_LIMIT"] = 390] = "LOW_DIFF_LIMIT";
  PropertyIdentifier2[PropertyIdentifier2["LOW_LIMIT"] = 59] = "LOW_LIMIT";
  PropertyIdentifier2[PropertyIdentifier2["LOWER_DECK"] = 473] = "LOWER_DECK";
  PropertyIdentifier2[PropertyIdentifier2["MAC_ADDRESS"] = 423] = "MAC_ADDRESS";
  PropertyIdentifier2[PropertyIdentifier2["MACHINE_ROOM_ID"] = 474] = "MACHINE_ROOM_ID";
  PropertyIdentifier2[PropertyIdentifier2["MAINTENANCE_REQUIRED"] = 158] = "MAINTENANCE_REQUIRED";
  PropertyIdentifier2[PropertyIdentifier2["MAKING_CAR_CALL"] = 475] = "MAKING_CAR_CALL";
  PropertyIdentifier2[PropertyIdentifier2["MANIPULATED_VARIABLE_REFERENCE"] = 60] = "MANIPULATED_VARIABLE_REFERENCE";
  PropertyIdentifier2[PropertyIdentifier2["MANUAL_SLAVE_ADDRESS_BINDING"] = 170] = "MANUAL_SLAVE_ADDRESS_BINDING";
  PropertyIdentifier2[PropertyIdentifier2["MASKED_ALARM_VALUES"] = 234] = "MASKED_ALARM_VALUES";
  PropertyIdentifier2[PropertyIdentifier2["MAX_ACTUAL_VALUE"] = 382] = "MAX_ACTUAL_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["MAX_APDU_LENGTH_ACCEPTED"] = 62] = "MAX_APDU_LENGTH_ACCEPTED";
  PropertyIdentifier2[PropertyIdentifier2["MAX_FAILED_ATTEMPTS"] = 285] = "MAX_FAILED_ATTEMPTS";
  PropertyIdentifier2[PropertyIdentifier2["MAX_INFO_FRAMES"] = 63] = "MAX_INFO_FRAMES";
  PropertyIdentifier2[PropertyIdentifier2["MAX_MASTER"] = 64] = "MAX_MASTER";
  PropertyIdentifier2[PropertyIdentifier2["MAX_PRES_VALUE"] = 65] = "MAX_PRES_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["MAX_SEGMENTS_ACCEPTED"] = 167] = "MAX_SEGMENTS_ACCEPTED";
  PropertyIdentifier2[PropertyIdentifier2["MAXIMUM_OUTPUT"] = 61] = "MAXIMUM_OUTPUT";
  PropertyIdentifier2[PropertyIdentifier2["MAXIMUM_VALUE"] = 135] = "MAXIMUM_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["MAXIMUM_VALUE_TIMESTAMP"] = 149] = "MAXIMUM_VALUE_TIMESTAMP";
  PropertyIdentifier2[PropertyIdentifier2["MEMBER_OF"] = 159] = "MEMBER_OF";
  PropertyIdentifier2[PropertyIdentifier2["MEMBER_STATUS_FLAGS"] = 347] = "MEMBER_STATUS_FLAGS";
  PropertyIdentifier2[PropertyIdentifier2["MEMBERS"] = 286] = "MEMBERS";
  PropertyIdentifier2[PropertyIdentifier2["MIN_ACTUAL_VALUE"] = 383] = "MIN_ACTUAL_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["MIN_PRES_VALUE"] = 69] = "MIN_PRES_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["MINIMUM_OFF_TIME"] = 66] = "MINIMUM_OFF_TIME";
  PropertyIdentifier2[PropertyIdentifier2["MINIMUM_ON_TIME"] = 67] = "MINIMUM_ON_TIME";
  PropertyIdentifier2[PropertyIdentifier2["MINIMUM_OUTPUT"] = 68] = "MINIMUM_OUTPUT";
  PropertyIdentifier2[PropertyIdentifier2["MINIMUM_VALUE"] = 136] = "MINIMUM_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["MINIMUM_VALUE_TIMESTAMP"] = 150] = "MINIMUM_VALUE_TIMESTAMP";
  PropertyIdentifier2[PropertyIdentifier2["MODE"] = 160] = "MODE";
  PropertyIdentifier2[PropertyIdentifier2["MODEL_NAME"] = 70] = "MODEL_NAME";
  PropertyIdentifier2[PropertyIdentifier2["MODIFICATION_DATE"] = 71] = "MODIFICATION_DATE";
  PropertyIdentifier2[PropertyIdentifier2["MUSTER_POINT"] = 287] = "MUSTER_POINT";
  PropertyIdentifier2[PropertyIdentifier2["NEGATIVE_ACCESS_RULES"] = 288] = "NEGATIVE_ACCESS_RULES";
  PropertyIdentifier2[PropertyIdentifier2["NETWORK_ACCESS_SECURITY_POLICIES"] = 332] = "NETWORK_ACCESS_SECURITY_POLICIES";
  PropertyIdentifier2[PropertyIdentifier2["NETWORK_INTERFACE_NAME"] = 424] = "NETWORK_INTERFACE_NAME";
  PropertyIdentifier2[PropertyIdentifier2["NETWORK_NUMBER"] = 425] = "NETWORK_NUMBER";
  PropertyIdentifier2[PropertyIdentifier2["NETWORK_NUMBER_QUALITY"] = 426] = "NETWORK_NUMBER_QUALITY";
  PropertyIdentifier2[PropertyIdentifier2["NETWORK_TYPE"] = 427] = "NETWORK_TYPE";
  PropertyIdentifier2[PropertyIdentifier2["NEXT_STOPPING_FLOOR"] = 476] = "NEXT_STOPPING_FLOOR";
  PropertyIdentifier2[PropertyIdentifier2["NODE_SUBTYPE"] = 207] = "NODE_SUBTYPE";
  PropertyIdentifier2[PropertyIdentifier2["NODE_TYPE"] = 208] = "NODE_TYPE";
  PropertyIdentifier2[PropertyIdentifier2["NOTIFICATION_CLASS"] = 17] = "NOTIFICATION_CLASS";
  PropertyIdentifier2[PropertyIdentifier2["NOTIFICATION_THRESHOLD"] = 137] = "NOTIFICATION_THRESHOLD";
  PropertyIdentifier2[PropertyIdentifier2["NOTIFY_TYPE"] = 72] = "NOTIFY_TYPE";
  PropertyIdentifier2[PropertyIdentifier2["NUMBER_OF_APDU_RETRIES"] = 73] = "NUMBER_OF_APDU_RETRIES";
  PropertyIdentifier2[PropertyIdentifier2["NUMBER_OF_AUTHENTICATION_POLICIES"] = 289] = "NUMBER_OF_AUTHENTICATION_POLICIES";
  PropertyIdentifier2[PropertyIdentifier2["NUMBER_OF_STATES"] = 74] = "NUMBER_OF_STATES";
  PropertyIdentifier2[PropertyIdentifier2["OBJECT_IDENTIFIER"] = 75] = "OBJECT_IDENTIFIER";
  PropertyIdentifier2[PropertyIdentifier2["OBJECT_LIST"] = 76] = "OBJECT_LIST";
  PropertyIdentifier2[PropertyIdentifier2["OBJECT_NAME"] = 77] = "OBJECT_NAME";
  PropertyIdentifier2[PropertyIdentifier2["OBJECT_PROPERTY_REFERENCE"] = 78] = "OBJECT_PROPERTY_REFERENCE";
  PropertyIdentifier2[PropertyIdentifier2["OBJECT_TYPE"] = 79] = "OBJECT_TYPE";
  PropertyIdentifier2[PropertyIdentifier2["OCCUPANCY_COUNT"] = 290] = "OCCUPANCY_COUNT";
  PropertyIdentifier2[PropertyIdentifier2["OCCUPANCY_COUNT_ADJUST"] = 291] = "OCCUPANCY_COUNT_ADJUST";
  PropertyIdentifier2[PropertyIdentifier2["OCCUPANCY_COUNT_ENABLE"] = 292] = "OCCUPANCY_COUNT_ENABLE";
  PropertyIdentifier2[PropertyIdentifier2["OCCUPANCY_LOWER_LIMIT"] = 294] = "OCCUPANCY_LOWER_LIMIT";
  PropertyIdentifier2[PropertyIdentifier2["OCCUPANCY_LOWER_LIMIT_ENFORCED"] = 295] = "OCCUPANCY_LOWER_LIMIT_ENFORCED";
  PropertyIdentifier2[PropertyIdentifier2["OCCUPANCY_STATE"] = 296] = "OCCUPANCY_STATE";
  PropertyIdentifier2[PropertyIdentifier2["OCCUPANCY_UPPER_LIMIT"] = 297] = "OCCUPANCY_UPPER_LIMIT";
  PropertyIdentifier2[PropertyIdentifier2["OCCUPANCY_UPPER_LIMIT_ENFORCED"] = 298] = "OCCUPANCY_UPPER_LIMIT_ENFORCED";
  PropertyIdentifier2[PropertyIdentifier2["OPERATION_DIRECTION"] = 477] = "OPERATION_DIRECTION";
  PropertyIdentifier2[PropertyIdentifier2["OPERATION_EXPECTED"] = 161] = "OPERATION_EXPECTED";
  PropertyIdentifier2[PropertyIdentifier2["OPTIONAL"] = 80] = "OPTIONAL";
  PropertyIdentifier2[PropertyIdentifier2["OUT_OF_SERVICE"] = 81] = "OUT_OF_SERVICE";
  PropertyIdentifier2[PropertyIdentifier2["OUTPUT_UNITS"] = 82] = "OUTPUT_UNITS";
  PropertyIdentifier2[PropertyIdentifier2["PACKET_REORDER_TIME"] = 333] = "PACKET_REORDER_TIME";
  PropertyIdentifier2[PropertyIdentifier2["PASSBACK_MODE"] = 300] = "PASSBACK_MODE";
  PropertyIdentifier2[PropertyIdentifier2["PASSBACK_TIMEOUT"] = 301] = "PASSBACK_TIMEOUT";
  PropertyIdentifier2[PropertyIdentifier2["PASSENGER_ALARM"] = 478] = "PASSENGER_ALARM";
  PropertyIdentifier2[PropertyIdentifier2["POLARITY"] = 84] = "POLARITY";
  PropertyIdentifier2[PropertyIdentifier2["PORT_FILTER"] = 363] = "PORT_FILTER";
  PropertyIdentifier2[PropertyIdentifier2["POSITIVE_ACCESS_RULES"] = 302] = "POSITIVE_ACCESS_RULES";
  PropertyIdentifier2[PropertyIdentifier2["POWER"] = 384] = "POWER";
  PropertyIdentifier2[PropertyIdentifier2["POWER_MODE"] = 479] = "POWER_MODE";
  PropertyIdentifier2[PropertyIdentifier2["PRESCALE"] = 185] = "PRESCALE";
  PropertyIdentifier2[PropertyIdentifier2["PRESENT_VALUE"] = 85] = "PRESENT_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["PRIORITY"] = 86] = "PRIORITY";
  PropertyIdentifier2[PropertyIdentifier2["PRIORITY_ARRAY"] = 87] = "PRIORITY_ARRAY";
  PropertyIdentifier2[PropertyIdentifier2["PRIORITY_FOR_WRITING"] = 88] = "PRIORITY_FOR_WRITING";
  PropertyIdentifier2[PropertyIdentifier2["PROCESS_IDENTIFIER"] = 89] = "PROCESS_IDENTIFIER";
  PropertyIdentifier2[PropertyIdentifier2["PROCESS_IDENTIFIER_FILTER"] = 361] = "PROCESS_IDENTIFIER_FILTER";
  PropertyIdentifier2[PropertyIdentifier2["PROFILE_LOCATION"] = 485] = "PROFILE_LOCATION";
  PropertyIdentifier2[PropertyIdentifier2["PROFILE_NAME"] = 168] = "PROFILE_NAME";
  PropertyIdentifier2[PropertyIdentifier2["PROGRAM_CHANGE"] = 90] = "PROGRAM_CHANGE";
  PropertyIdentifier2[PropertyIdentifier2["PROGRAM_LOCATION"] = 91] = "PROGRAM_LOCATION";
  PropertyIdentifier2[PropertyIdentifier2["PROGRAM_STATE"] = 92] = "PROGRAM_STATE";
  PropertyIdentifier2[PropertyIdentifier2["PROPERTY_LIST"] = 371] = "PROPERTY_LIST";
  PropertyIdentifier2[PropertyIdentifier2["PROPORTIONAL_CONSTANT"] = 93] = "PROPORTIONAL_CONSTANT";
  PropertyIdentifier2[PropertyIdentifier2["PROPORTIONAL_CONSTANT_UNITS"] = 94] = "PROPORTIONAL_CONSTANT_UNITS";
  PropertyIdentifier2[PropertyIdentifier2["PROTOCOL_LEVEL"] = 482] = "PROTOCOL_LEVEL";
  PropertyIdentifier2[PropertyIdentifier2["PROTOCOL_OBJECT_TYPES_SUPPORTED"] = 96] = "PROTOCOL_OBJECT_TYPES_SUPPORTED";
  PropertyIdentifier2[PropertyIdentifier2["PROTOCOL_REVISION"] = 139] = "PROTOCOL_REVISION";
  PropertyIdentifier2[PropertyIdentifier2["PROTOCOL_SERVICES_SUPPORTED"] = 97] = "PROTOCOL_SERVICES_SUPPORTED";
  PropertyIdentifier2[PropertyIdentifier2["PROTOCOL_VERSION"] = 98] = "PROTOCOL_VERSION";
  PropertyIdentifier2[PropertyIdentifier2["PULSE_RATE"] = 186] = "PULSE_RATE";
  PropertyIdentifier2[PropertyIdentifier2["READ_ONLY"] = 99] = "READ_ONLY";
  PropertyIdentifier2[PropertyIdentifier2["REASON_FOR_DISABLE"] = 303] = "REASON_FOR_DISABLE";
  PropertyIdentifier2[PropertyIdentifier2["REASON_FOR_HALT"] = 100] = "REASON_FOR_HALT";
  PropertyIdentifier2[PropertyIdentifier2["RECIPIENT_LIST"] = 102] = "RECIPIENT_LIST";
  PropertyIdentifier2[PropertyIdentifier2["RECORD_COUNT"] = 141] = "RECORD_COUNT";
  PropertyIdentifier2[PropertyIdentifier2["RECORDS_SINCE_NOTIFICATION"] = 140] = "RECORDS_SINCE_NOTIFICATION";
  PropertyIdentifier2[PropertyIdentifier2["REFERENCE_PORT"] = 483] = "REFERENCE_PORT";
  PropertyIdentifier2[PropertyIdentifier2["REGISTERED_CAR_CALL"] = 480] = "REGISTERED_CAR_CALL";
  PropertyIdentifier2[PropertyIdentifier2["RELIABILITY"] = 103] = "RELIABILITY";
  PropertyIdentifier2[PropertyIdentifier2["RELIABILITY_EVALUATION_INHIBIT"] = 357] = "RELIABILITY_EVALUATION_INHIBIT";
  PropertyIdentifier2[PropertyIdentifier2["RELINQUISH_DEFAULT"] = 104] = "RELINQUISH_DEFAULT";
  PropertyIdentifier2[PropertyIdentifier2["REPRESENTS"] = 491] = "REPRESENTS";
  PropertyIdentifier2[PropertyIdentifier2["REQUESTED_SHED_LEVEL"] = 218] = "REQUESTED_SHED_LEVEL";
  PropertyIdentifier2[PropertyIdentifier2["REQUESTED_UPDATE_INTERVAL"] = 348] = "REQUESTED_UPDATE_INTERVAL";
  PropertyIdentifier2[PropertyIdentifier2["REQUIRED"] = 105] = "REQUIRED";
  PropertyIdentifier2[PropertyIdentifier2["RESOLUTION"] = 106] = "RESOLUTION";
  PropertyIdentifier2[PropertyIdentifier2["RESTART_NOTIFICATION_RECIPIENTS"] = 202] = "RESTART_NOTIFICATION_RECIPIENTS";
  PropertyIdentifier2[PropertyIdentifier2["RESTORE_COMPLETION_TIME"] = 340] = "RESTORE_COMPLETION_TIME";
  PropertyIdentifier2[PropertyIdentifier2["RESTORE_PREPARATION_TIME"] = 341] = "RESTORE_PREPARATION_TIME";
  PropertyIdentifier2[PropertyIdentifier2["ROUTING_TABLE"] = 428] = "ROUTING_TABLE";
  PropertyIdentifier2[PropertyIdentifier2["SCALE"] = 187] = "SCALE";
  PropertyIdentifier2[PropertyIdentifier2["SCALE_FACTOR"] = 188] = "SCALE_FACTOR";
  PropertyIdentifier2[PropertyIdentifier2["SCHEDULE_DEFAULT"] = 174] = "SCHEDULE_DEFAULT";
  PropertyIdentifier2[PropertyIdentifier2["SECURED_STATUS"] = 235] = "SECURED_STATUS";
  PropertyIdentifier2[PropertyIdentifier2["SECURITY_PDU_TIMEOUT"] = 334] = "SECURITY_PDU_TIMEOUT";
  PropertyIdentifier2[PropertyIdentifier2["SECURITY_TIME_WINDOW"] = 335] = "SECURITY_TIME_WINDOW";
  PropertyIdentifier2[PropertyIdentifier2["SEGMENTATION_SUPPORTED"] = 107] = "SEGMENTATION_SUPPORTED";
  PropertyIdentifier2[PropertyIdentifier2["SERIAL_NUMBER"] = 372] = "SERIAL_NUMBER";
  PropertyIdentifier2[PropertyIdentifier2["SETPOINT"] = 108] = "SETPOINT";
  PropertyIdentifier2[PropertyIdentifier2["SETPOINT_REFERENCE"] = 109] = "SETPOINT_REFERENCE";
  PropertyIdentifier2[PropertyIdentifier2["SETTING"] = 162] = "SETTING";
  PropertyIdentifier2[PropertyIdentifier2["SHED_DURATION"] = 219] = "SHED_DURATION";
  PropertyIdentifier2[PropertyIdentifier2["SHED_LEVEL_DESCRIPTIONS"] = 220] = "SHED_LEVEL_DESCRIPTIONS";
  PropertyIdentifier2[PropertyIdentifier2["SHED_LEVELS"] = 221] = "SHED_LEVELS";
  PropertyIdentifier2[PropertyIdentifier2["SILENCED"] = 163] = "SILENCED";
  PropertyIdentifier2[PropertyIdentifier2["SLAVE_ADDRESS_BINDING"] = 171] = "SLAVE_ADDRESS_BINDING";
  PropertyIdentifier2[PropertyIdentifier2["SLAVE_PROXY_ENABLE"] = 172] = "SLAVE_PROXY_ENABLE";
  PropertyIdentifier2[PropertyIdentifier2["START_TIME"] = 142] = "START_TIME";
  PropertyIdentifier2[PropertyIdentifier2["STATE_CHANGE_VALUES"] = 396] = "STATE_CHANGE_VALUES";
  PropertyIdentifier2[PropertyIdentifier2["STATE_DESCRIPTION"] = 222] = "STATE_DESCRIPTION";
  PropertyIdentifier2[PropertyIdentifier2["STATE_TEXT"] = 110] = "STATE_TEXT";
  PropertyIdentifier2[PropertyIdentifier2["STATUS_FLAGS"] = 111] = "STATUS_FLAGS";
  PropertyIdentifier2[PropertyIdentifier2["STOP_TIME"] = 143] = "STOP_TIME";
  PropertyIdentifier2[PropertyIdentifier2["STOP_WHEN_FULL"] = 144] = "STOP_WHEN_FULL";
  PropertyIdentifier2[PropertyIdentifier2["STRIKE_COUNT"] = 391] = "STRIKE_COUNT";
  PropertyIdentifier2[PropertyIdentifier2["STRUCTURED_OBJECT_LIST"] = 209] = "STRUCTURED_OBJECT_LIST";
  PropertyIdentifier2[PropertyIdentifier2["SUBORDINATE_ANNOTATIONS"] = 210] = "SUBORDINATE_ANNOTATIONS";
  PropertyIdentifier2[PropertyIdentifier2["SUBORDINATE_LIST"] = 211] = "SUBORDINATE_LIST";
  PropertyIdentifier2[PropertyIdentifier2["SUBORDINATE_NODE_TYPES"] = 487] = "SUBORDINATE_NODE_TYPES";
  PropertyIdentifier2[PropertyIdentifier2["SUBORDINATE_RELATIONSHIPS"] = 489] = "SUBORDINATE_RELATIONSHIPS";
  PropertyIdentifier2[PropertyIdentifier2["SUBORDINATE_TAGS"] = 488] = "SUBORDINATE_TAGS";
  PropertyIdentifier2[PropertyIdentifier2["SUBSCRIBED_RECIPIENTS"] = 362] = "SUBSCRIBED_RECIPIENTS";
  PropertyIdentifier2[PropertyIdentifier2["SUPPORTED_FORMAT_CLASSES"] = 305] = "SUPPORTED_FORMAT_CLASSES";
  PropertyIdentifier2[PropertyIdentifier2["SUPPORTED_FORMATS"] = 304] = "SUPPORTED_FORMATS";
  PropertyIdentifier2[PropertyIdentifier2["SUPPORTED_SECURITY_ALGORITHMS"] = 336] = "SUPPORTED_SECURITY_ALGORITHMS";
  PropertyIdentifier2[PropertyIdentifier2["SYSTEM_STATUS"] = 112] = "SYSTEM_STATUS";
  PropertyIdentifier2[PropertyIdentifier2["TAGS"] = 486] = "TAGS";
  PropertyIdentifier2[PropertyIdentifier2["THREAT_AUTHORITY"] = 306] = "THREAT_AUTHORITY";
  PropertyIdentifier2[PropertyIdentifier2["THREAT_LEVEL"] = 307] = "THREAT_LEVEL";
  PropertyIdentifier2[PropertyIdentifier2["TIME_DELAY"] = 113] = "TIME_DELAY";
  PropertyIdentifier2[PropertyIdentifier2["TIME_DELAY_NORMAL"] = 356] = "TIME_DELAY_NORMAL";
  PropertyIdentifier2[PropertyIdentifier2["TIME_OF_ACTIVE_TIME_RESET"] = 114] = "TIME_OF_ACTIVE_TIME_RESET";
  PropertyIdentifier2[PropertyIdentifier2["TIME_OF_DEVICE_RESTART"] = 203] = "TIME_OF_DEVICE_RESTART";
  PropertyIdentifier2[PropertyIdentifier2["TIME_OF_STATE_COUNT_RESET"] = 115] = "TIME_OF_STATE_COUNT_RESET";
  PropertyIdentifier2[PropertyIdentifier2["TIME_OF_STRIKE_COUNT_RESET"] = 392] = "TIME_OF_STRIKE_COUNT_RESET";
  PropertyIdentifier2[PropertyIdentifier2["TIME_SYNCHRONIZATION_INTERVAL"] = 204] = "TIME_SYNCHRONIZATION_INTERVAL";
  PropertyIdentifier2[PropertyIdentifier2["TIME_SYNCHRONIZATION_RECIPIENTS"] = 116] = "TIME_SYNCHRONIZATION_RECIPIENTS";
  PropertyIdentifier2[PropertyIdentifier2["TIMER_RUNNING"] = 397] = "TIMER_RUNNING";
  PropertyIdentifier2[PropertyIdentifier2["TIMER_STATE"] = 398] = "TIMER_STATE";
  PropertyIdentifier2[PropertyIdentifier2["TOTAL_RECORD_COUNT"] = 145] = "TOTAL_RECORD_COUNT";
  PropertyIdentifier2[PropertyIdentifier2["TRACE_FLAG"] = 308] = "TRACE_FLAG";
  PropertyIdentifier2[PropertyIdentifier2["TRACKING_VALUE"] = 164] = "TRACKING_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["TRANSACTION_NOTIFICATION_CLASS"] = 309] = "TRANSACTION_NOTIFICATION_CLASS";
  PropertyIdentifier2[PropertyIdentifier2["TRANSITION"] = 385] = "TRANSITION";
  PropertyIdentifier2[PropertyIdentifier2["TRIGGER"] = 205] = "TRIGGER";
  PropertyIdentifier2[PropertyIdentifier2["UNITS"] = 117] = "UNITS";
  PropertyIdentifier2[PropertyIdentifier2["UPDATE_INTERVAL"] = 118] = "UPDATE_INTERVAL";
  PropertyIdentifier2[PropertyIdentifier2["UPDATE_KEY_SET_TIMEOUT"] = 337] = "UPDATE_KEY_SET_TIMEOUT";
  PropertyIdentifier2[PropertyIdentifier2["UPDATE_TIME"] = 189] = "UPDATE_TIME";
  PropertyIdentifier2[PropertyIdentifier2["USER_EXTERNAL_IDENTIFIER"] = 310] = "USER_EXTERNAL_IDENTIFIER";
  PropertyIdentifier2[PropertyIdentifier2["USER_INFORMATION_REFERENCE"] = 311] = "USER_INFORMATION_REFERENCE";
  PropertyIdentifier2[PropertyIdentifier2["USER_NAME"] = 317] = "USER_NAME";
  PropertyIdentifier2[PropertyIdentifier2["USER_TYPE"] = 318] = "USER_TYPE";
  PropertyIdentifier2[PropertyIdentifier2["USES_REMAINING"] = 319] = "USES_REMAINING";
  PropertyIdentifier2[PropertyIdentifier2["UTC_OFFSET"] = 119] = "UTC_OFFSET";
  PropertyIdentifier2[PropertyIdentifier2["UTC_TIME_SYNCHRONIZATION_RECIPIENTS"] = 206] = "UTC_TIME_SYNCHRONIZATION_RECIPIENTS";
  PropertyIdentifier2[PropertyIdentifier2["VALID_SAMPLES"] = 146] = "VALID_SAMPLES";
  PropertyIdentifier2[PropertyIdentifier2["VALUE_BEFORE_CHANGE"] = 190] = "VALUE_BEFORE_CHANGE";
  PropertyIdentifier2[PropertyIdentifier2["VALUE_CHANGE_TIME"] = 192] = "VALUE_CHANGE_TIME";
  PropertyIdentifier2[PropertyIdentifier2["VALUE_SET"] = 191] = "VALUE_SET";
  PropertyIdentifier2[PropertyIdentifier2["VALUE_SOURCE"] = 433] = "VALUE_SOURCE";
  PropertyIdentifier2[PropertyIdentifier2["VALUE_SOURCE_ARRAY"] = 434] = "VALUE_SOURCE_ARRAY";
  PropertyIdentifier2[PropertyIdentifier2["VARIANCE_VALUE"] = 151] = "VARIANCE_VALUE";
  PropertyIdentifier2[PropertyIdentifier2["VENDOR_IDENTIFIER"] = 120] = "VENDOR_IDENTIFIER";
  PropertyIdentifier2[PropertyIdentifier2["VENDOR_NAME"] = 121] = "VENDOR_NAME";
  PropertyIdentifier2[PropertyIdentifier2["VERIFICATION_TIME"] = 326] = "VERIFICATION_TIME";
  PropertyIdentifier2[PropertyIdentifier2["VIRTUAL_MAC_ADDRESS_TABLE"] = 429] = "VIRTUAL_MAC_ADDRESS_TABLE";
  PropertyIdentifier2[PropertyIdentifier2["VT_CLASSES_SUPPORTED"] = 122] = "VT_CLASSES_SUPPORTED";
  PropertyIdentifier2[PropertyIdentifier2["WEEKLY_SCHEDULE"] = 123] = "WEEKLY_SCHEDULE";
  PropertyIdentifier2[PropertyIdentifier2["WINDOW_INTERVAL"] = 147] = "WINDOW_INTERVAL";
  PropertyIdentifier2[PropertyIdentifier2["WINDOW_SAMPLES"] = 148] = "WINDOW_SAMPLES";
  PropertyIdentifier2[PropertyIdentifier2["WRITE_STATUS"] = 370] = "WRITE_STATUS";
  PropertyIdentifier2[PropertyIdentifier2["ZONE_FROM"] = 320] = "ZONE_FROM";
  PropertyIdentifier2[PropertyIdentifier2["ZONE_MEMBERS"] = 165] = "ZONE_MEMBERS";
  PropertyIdentifier2[PropertyIdentifier2["ZONE_TO"] = 321] = "ZONE_TO";
  return PropertyIdentifier2;
})(PropertyIdentifier || {});
var ProtocolLevel = /* @__PURE__ */ ((ProtocolLevel2) => {
  ProtocolLevel2[ProtocolLevel2["PHYSICAL"] = 0] = "PHYSICAL";
  ProtocolLevel2[ProtocolLevel2["PROTOCOL"] = 1] = "PROTOCOL";
  ProtocolLevel2[ProtocolLevel2["BACNET_APPLICATION"] = 2] = "BACNET_APPLICATION";
  ProtocolLevel2[ProtocolLevel2["NON_BACNET_APPLICATION"] = 3] = "NON_BACNET_APPLICATION";
  return ProtocolLevel2;
})(ProtocolLevel || {});
var Relationship = /* @__PURE__ */ ((Relationship2) => {
  Relationship2[Relationship2["UNKNOWN"] = 0] = "UNKNOWN";
  Relationship2[Relationship2["DEFAULT"] = 1] = "DEFAULT";
  Relationship2[Relationship2["CONTAINS"] = 2] = "CONTAINS";
  Relationship2[Relationship2["CONTAINED_BY"] = 3] = "CONTAINED_BY";
  Relationship2[Relationship2["USES"] = 4] = "USES";
  Relationship2[Relationship2["USED_BY"] = 5] = "USED_BY";
  Relationship2[Relationship2["COMMANDS"] = 6] = "COMMANDS";
  Relationship2[Relationship2["COMMANDED_BY"] = 7] = "COMMANDED_BY";
  Relationship2[Relationship2["ADJUSTS"] = 8] = "ADJUSTS";
  Relationship2[Relationship2["ADJUSTED_BY"] = 9] = "ADJUSTED_BY";
  Relationship2[Relationship2["INGRESS"] = 10] = "INGRESS";
  Relationship2[Relationship2["EGRESS"] = 11] = "EGRESS";
  Relationship2[Relationship2["SUPPLIES_AIR"] = 12] = "SUPPLIES_AIR";
  Relationship2[Relationship2["RECEIVES_AIR"] = 13] = "RECEIVES_AIR";
  Relationship2[Relationship2["SUPPLIES_HOT_AIR"] = 14] = "SUPPLIES_HOT_AIR";
  Relationship2[Relationship2["RECEIVES_HOT_AIR"] = 15] = "RECEIVES_HOT_AIR";
  Relationship2[Relationship2["SUPPLIES_COOL_AIR"] = 16] = "SUPPLIES_COOL_AIR";
  Relationship2[Relationship2["RECEIVES_COOL_AIR"] = 17] = "RECEIVES_COOL_AIR";
  Relationship2[Relationship2["SUPPLIES_POWER"] = 18] = "SUPPLIES_POWER";
  Relationship2[Relationship2["RECEIVES_POWER"] = 19] = "RECEIVES_POWER";
  Relationship2[Relationship2["SUPPLIES_GAS"] = 20] = "SUPPLIES_GAS";
  Relationship2[Relationship2["RECEIVES_GAS"] = 21] = "RECEIVES_GAS";
  Relationship2[Relationship2["SUPPLIES_WATER"] = 22] = "SUPPLIES_WATER";
  Relationship2[Relationship2["RECEIVES_WATER"] = 23] = "RECEIVES_WATER";
  Relationship2[Relationship2["SUPPLIES_HOT_WATER"] = 24] = "SUPPLIES_HOT_WATER";
  Relationship2[Relationship2["RECEIVES_HOT_WATER"] = 25] = "RECEIVES_HOT_WATER";
  Relationship2[Relationship2["SUPPLIES_COOL_WATER"] = 26] = "SUPPLIES_COOL_WATER";
  Relationship2[Relationship2["RECEIVES_COOL_WATER"] = 27] = "RECEIVES_COOL_WATER";
  Relationship2[Relationship2["SUPPLIES_STEAM"] = 28] = "SUPPLIES_STEAM";
  Relationship2[Relationship2["RECEIVES_STEAM"] = 29] = "RECEIVES_STEAM";
  return Relationship2;
})(Relationship || {});
var Reliability = /* @__PURE__ */ ((Reliability2) => {
  Reliability2[Reliability2["NO_FAULT_DETECTED"] = 0] = "NO_FAULT_DETECTED";
  Reliability2[Reliability2["NO_SENSOR"] = 1] = "NO_SENSOR";
  Reliability2[Reliability2["OVER_RANGE"] = 2] = "OVER_RANGE";
  Reliability2[Reliability2["UNDER_RANGE"] = 3] = "UNDER_RANGE";
  Reliability2[Reliability2["OPEN_LOOP"] = 4] = "OPEN_LOOP";
  Reliability2[Reliability2["SHORTED_LOOP"] = 5] = "SHORTED_LOOP";
  Reliability2[Reliability2["NO_OUTPUT"] = 6] = "NO_OUTPUT";
  Reliability2[Reliability2["UNRELIABLE_OTHER"] = 7] = "UNRELIABLE_OTHER";
  Reliability2[Reliability2["PROCESS_ERROR"] = 8] = "PROCESS_ERROR";
  Reliability2[Reliability2["MULTI_STATE_FAULT"] = 9] = "MULTI_STATE_FAULT";
  Reliability2[Reliability2["CONFIGURATION_ERROR"] = 10] = "CONFIGURATION_ERROR";
  Reliability2[Reliability2["COMMUNICATION_FAILURE"] = 12] = "COMMUNICATION_FAILURE";
  Reliability2[Reliability2["MEMBER_FAULT"] = 13] = "MEMBER_FAULT";
  Reliability2[Reliability2["MONITORED_OBJECT_FAULT"] = 14] = "MONITORED_OBJECT_FAULT";
  Reliability2[Reliability2["TRIPPED"] = 15] = "TRIPPED";
  Reliability2[Reliability2["LAMP_FAILURE"] = 16] = "LAMP_FAILURE";
  Reliability2[Reliability2["ACTIVATION_FAILURE"] = 17] = "ACTIVATION_FAILURE";
  Reliability2[Reliability2["RENEW_DHCP_FAILURE"] = 18] = "RENEW_DHCP_FAILURE";
  Reliability2[Reliability2["RENEW_FD_REGISTRATION_FAILURE"] = 19] = "RENEW_FD_REGISTRATION_FAILURE";
  Reliability2[Reliability2["RESTART_AUTO_NEGOTIATION_FAILURE"] = 20] = "RESTART_AUTO_NEGOTIATION_FAILURE";
  Reliability2[Reliability2["RESTART_FAILURE"] = 21] = "RESTART_FAILURE";
  Reliability2[Reliability2["PROPRIETARY_COMMAND_FAILURE"] = 22] = "PROPRIETARY_COMMAND_FAILURE";
  Reliability2[Reliability2["FAULTS_LISTED"] = 23] = "FAULTS_LISTED";
  Reliability2[Reliability2["REFERENCED_OBJECT_FAULT"] = 24] = "REFERENCED_OBJECT_FAULT";
  return Reliability2;
})(Reliability || {});
var RestartReason = /* @__PURE__ */ ((RestartReason2) => {
  RestartReason2[RestartReason2["UNKNOWN"] = 0] = "UNKNOWN";
  RestartReason2[RestartReason2["COLDSTART"] = 1] = "COLDSTART";
  RestartReason2[RestartReason2["WARMSTART"] = 2] = "WARMSTART";
  RestartReason2[RestartReason2["DETECTED_POWER_LOST"] = 3] = "DETECTED_POWER_LOST";
  RestartReason2[RestartReason2["DETECTED_POWERED_OFF"] = 4] = "DETECTED_POWERED_OFF";
  RestartReason2[RestartReason2["HARDWARE_WATCHDOG"] = 5] = "HARDWARE_WATCHDOG";
  RestartReason2[RestartReason2["SOFTWARE_WATCHDOG"] = 6] = "SOFTWARE_WATCHDOG";
  RestartReason2[RestartReason2["SUSPENDED"] = 7] = "SUSPENDED";
  RestartReason2[RestartReason2["ACTIVATE_CHANGES"] = 8] = "ACTIVATE_CHANGES";
  return RestartReason2;
})(RestartReason || {});
var SecurityLevel = /* @__PURE__ */ ((SecurityLevel2) => {
  SecurityLevel2[SecurityLevel2["INCAPABLE"] = 0] = "INCAPABLE";
  SecurityLevel2[SecurityLevel2["PLAIN"] = 1] = "PLAIN";
  SecurityLevel2[SecurityLevel2["SIGNED"] = 2] = "SIGNED";
  SecurityLevel2[SecurityLevel2["ENCRYPTED"] = 3] = "ENCRYPTED";
  SecurityLevel2[SecurityLevel2["SIGNED_END_TO_END"] = 4] = "SIGNED_END_TO_END";
  SecurityLevel2[SecurityLevel2["ENCRYPTED_END_TO_END"] = 5] = "ENCRYPTED_END_TO_END";
  return SecurityLevel2;
})(SecurityLevel || {});
var SecurityPolicy = /* @__PURE__ */ ((SecurityPolicy2) => {
  SecurityPolicy2[SecurityPolicy2["PLAIN_NON_TRUSTED"] = 0] = "PLAIN_NON_TRUSTED";
  SecurityPolicy2[SecurityPolicy2["PLAIN_TRUSTED"] = 1] = "PLAIN_TRUSTED";
  SecurityPolicy2[SecurityPolicy2["SIGNED_TRUSTED"] = 2] = "SIGNED_TRUSTED";
  SecurityPolicy2[SecurityPolicy2["ENCRYPTED_TRUSTED"] = 3] = "ENCRYPTED_TRUSTED";
  return SecurityPolicy2;
})(SecurityPolicy || {});
var Segmentation = /* @__PURE__ */ ((Segmentation2) => {
  Segmentation2[Segmentation2["SEGMENTED_BOTH"] = 0] = "SEGMENTED_BOTH";
  Segmentation2[Segmentation2["SEGMENTED_TRANSMIT"] = 1] = "SEGMENTED_TRANSMIT";
  Segmentation2[Segmentation2["SEGMENTED_RECEIVE"] = 2] = "SEGMENTED_RECEIVE";
  Segmentation2[Segmentation2["NO_SEGMENTATION"] = 3] = "NO_SEGMENTATION";
  return Segmentation2;
})(Segmentation || {});
var ShedState = /* @__PURE__ */ ((ShedState2) => {
  ShedState2[ShedState2["SHED_INACTIVE"] = 0] = "SHED_INACTIVE";
  ShedState2[ShedState2["SHED_REQUEST_PENDING"] = 1] = "SHED_REQUEST_PENDING";
  ShedState2[ShedState2["SHED_COMPLIANT"] = 2] = "SHED_COMPLIANT";
  ShedState2[ShedState2["SHED_NON_COMPLIANT"] = 3] = "SHED_NON_COMPLIANT";
  return ShedState2;
})(ShedState || {});
var SilencedState = /* @__PURE__ */ ((SilencedState2) => {
  SilencedState2[SilencedState2["UNSILENCED"] = 0] = "UNSILENCED";
  SilencedState2[SilencedState2["AUDIBLE_SILENCED"] = 1] = "AUDIBLE_SILENCED";
  SilencedState2[SilencedState2["VISIBLE_SILENCED"] = 2] = "VISIBLE_SILENCED";
  SilencedState2[SilencedState2["ALL_SILENCED"] = 3] = "ALL_SILENCED";
  return SilencedState2;
})(SilencedState || {});
var TimerState = /* @__PURE__ */ ((TimerState2) => {
  TimerState2[TimerState2["IDLE"] = 0] = "IDLE";
  TimerState2[TimerState2["RUNNING"] = 1] = "RUNNING";
  TimerState2[TimerState2["EXPIRED"] = 2] = "EXPIRED";
  return TimerState2;
})(TimerState || {});
var TimerTransition = /* @__PURE__ */ ((TimerTransition2) => {
  TimerTransition2[TimerTransition2["NONE"] = 0] = "NONE";
  TimerTransition2[TimerTransition2["IDLE_TO_RUNNING"] = 1] = "IDLE_TO_RUNNING";
  TimerTransition2[TimerTransition2["RUNNING_TO_IDLE"] = 2] = "RUNNING_TO_IDLE";
  TimerTransition2[TimerTransition2["RUNNING_TO_RUNNING"] = 3] = "RUNNING_TO_RUNNING";
  TimerTransition2[TimerTransition2["RUNNING_TO_EXPIRED"] = 4] = "RUNNING_TO_EXPIRED";
  TimerTransition2[TimerTransition2["FORCED_TO_EXPIRED"] = 5] = "FORCED_TO_EXPIRED";
  TimerTransition2[TimerTransition2["EXPIRED_TO_IDLE"] = 6] = "EXPIRED_TO_IDLE";
  TimerTransition2[TimerTransition2["EXPIRED_TO_RUNNING"] = 7] = "EXPIRED_TO_RUNNING";
  return TimerTransition2;
})(TimerTransition || {});
var VTClass = /* @__PURE__ */ ((VTClass2) => {
  VTClass2[VTClass2["DEFAULT_TERMINAL"] = 0] = "DEFAULT_TERMINAL";
  VTClass2[VTClass2["ANSI_X3_64"] = 1] = "ANSI_X3_64";
  VTClass2[VTClass2["DEC_VT52"] = 2] = "DEC_VT52";
  VTClass2[VTClass2["DEC_VT100"] = 3] = "DEC_VT100";
  VTClass2[VTClass2["DEC_VT220"] = 4] = "DEC_VT220";
  VTClass2[VTClass2["HP_700_94"] = 5] = "HP_700_94";
  VTClass2[VTClass2["IBM_3130"] = 6] = "IBM_3130";
  return VTClass2;
})(VTClass || {});
var WriteStatus = /* @__PURE__ */ ((WriteStatus2) => {
  WriteStatus2[WriteStatus2["IDLE"] = 0] = "IDLE";
  WriteStatus2[WriteStatus2["IN_PROGRESS"] = 1] = "IN_PROGRESS";
  WriteStatus2[WriteStatus2["SUCCESSFUL"] = 2] = "SUCCESSFUL";
  WriteStatus2[WriteStatus2["FAILED"] = 3] = "FAILED";
  return WriteStatus2;
})(WriteStatus || {});
var DaysOfWeek = /* @__PURE__ */ ((DaysOfWeek2) => {
  DaysOfWeek2[DaysOfWeek2["MONDAY"] = 0] = "MONDAY";
  DaysOfWeek2[DaysOfWeek2["TUESDAY"] = 1] = "TUESDAY";
  DaysOfWeek2[DaysOfWeek2["WEDNESDAY"] = 2] = "WEDNESDAY";
  DaysOfWeek2[DaysOfWeek2["THURSDAY"] = 3] = "THURSDAY";
  DaysOfWeek2[DaysOfWeek2["FRIDAY"] = 4] = "FRIDAY";
  DaysOfWeek2[DaysOfWeek2["SATURDAY"] = 5] = "SATURDAY";
  DaysOfWeek2[DaysOfWeek2["SUNDAY"] = 6] = "SUNDAY";
  return DaysOfWeek2;
})(DaysOfWeek || {});
var EventTransitionBits = /* @__PURE__ */ ((EventTransitionBits2) => {
  EventTransitionBits2[EventTransitionBits2["TO_OFFNORMAL"] = 0] = "TO_OFFNORMAL";
  EventTransitionBits2[EventTransitionBits2["TO_FAULT"] = 1] = "TO_FAULT";
  EventTransitionBits2[EventTransitionBits2["TO_NORMAL"] = 2] = "TO_NORMAL";
  return EventTransitionBits2;
})(EventTransitionBits || {});
var LimitEnable = /* @__PURE__ */ ((LimitEnable2) => {
  LimitEnable2[LimitEnable2["LOW_LIMIT_ENABLE"] = 0] = "LOW_LIMIT_ENABLE";
  LimitEnable2[LimitEnable2["HIGH_LIMIT_ENABLE"] = 1] = "HIGH_LIMIT_ENABLE";
  return LimitEnable2;
})(LimitEnable || {});
var LogStatus = /* @__PURE__ */ ((LogStatus2) => {
  LogStatus2[LogStatus2["LOG_DISABLED"] = 0] = "LOG_DISABLED";
  LogStatus2[LogStatus2["BUFFER_PURGED"] = 1] = "BUFFER_PURGED";
  LogStatus2[LogStatus2["LOG_INTERRUPTED"] = 2] = "LOG_INTERRUPTED";
  return LogStatus2;
})(LogStatus || {});
var ObjectTypesSupported = /* @__PURE__ */ ((ObjectTypesSupported2) => {
  ObjectTypesSupported2[ObjectTypesSupported2["ANALOG_INPUT"] = 0] = "ANALOG_INPUT";
  ObjectTypesSupported2[ObjectTypesSupported2["ANALOG_OUTPUT"] = 1] = "ANALOG_OUTPUT";
  ObjectTypesSupported2[ObjectTypesSupported2["ANALOG_VALUE"] = 2] = "ANALOG_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["BINARY_INPUT"] = 3] = "BINARY_INPUT";
  ObjectTypesSupported2[ObjectTypesSupported2["BINARY_OUTPUT"] = 4] = "BINARY_OUTPUT";
  ObjectTypesSupported2[ObjectTypesSupported2["BINARY_VALUE"] = 5] = "BINARY_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["CALENDAR"] = 6] = "CALENDAR";
  ObjectTypesSupported2[ObjectTypesSupported2["COMMAND"] = 7] = "COMMAND";
  ObjectTypesSupported2[ObjectTypesSupported2["DEVICE"] = 8] = "DEVICE";
  ObjectTypesSupported2[ObjectTypesSupported2["EVENT_ENROLLMENT"] = 9] = "EVENT_ENROLLMENT";
  ObjectTypesSupported2[ObjectTypesSupported2["FILE"] = 10] = "FILE";
  ObjectTypesSupported2[ObjectTypesSupported2["GROUP"] = 11] = "GROUP";
  ObjectTypesSupported2[ObjectTypesSupported2["LOOP"] = 12] = "LOOP";
  ObjectTypesSupported2[ObjectTypesSupported2["MULTI_STATE_INPUT"] = 13] = "MULTI_STATE_INPUT";
  ObjectTypesSupported2[ObjectTypesSupported2["MULTI_STATE_OUTPUT"] = 14] = "MULTI_STATE_OUTPUT";
  ObjectTypesSupported2[ObjectTypesSupported2["NOTIFICATION_CLASS"] = 15] = "NOTIFICATION_CLASS";
  ObjectTypesSupported2[ObjectTypesSupported2["PROGRAM"] = 16] = "PROGRAM";
  ObjectTypesSupported2[ObjectTypesSupported2["SCHEDULE"] = 17] = "SCHEDULE";
  ObjectTypesSupported2[ObjectTypesSupported2["AVERAGING"] = 18] = "AVERAGING";
  ObjectTypesSupported2[ObjectTypesSupported2["MULTI_STATE_VALUE"] = 19] = "MULTI_STATE_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["TREND_LOG"] = 20] = "TREND_LOG";
  ObjectTypesSupported2[ObjectTypesSupported2["LIFE_SAFETY_POINT"] = 21] = "LIFE_SAFETY_POINT";
  ObjectTypesSupported2[ObjectTypesSupported2["LIFE_SAFETY_ZONE"] = 22] = "LIFE_SAFETY_ZONE";
  ObjectTypesSupported2[ObjectTypesSupported2["ACCUMULATOR"] = 23] = "ACCUMULATOR";
  ObjectTypesSupported2[ObjectTypesSupported2["PULSE_CONVERTER"] = 24] = "PULSE_CONVERTER";
  ObjectTypesSupported2[ObjectTypesSupported2["EVENT_LOG"] = 25] = "EVENT_LOG";
  ObjectTypesSupported2[ObjectTypesSupported2["GLOBAL_GROUP"] = 26] = "GLOBAL_GROUP";
  ObjectTypesSupported2[ObjectTypesSupported2["TREND_LOG_MULTIPLE"] = 27] = "TREND_LOG_MULTIPLE";
  ObjectTypesSupported2[ObjectTypesSupported2["LOAD_CONTROL"] = 28] = "LOAD_CONTROL";
  ObjectTypesSupported2[ObjectTypesSupported2["STRUCTURED_VIEW"] = 29] = "STRUCTURED_VIEW";
  ObjectTypesSupported2[ObjectTypesSupported2["ACCESS_DOOR"] = 30] = "ACCESS_DOOR";
  ObjectTypesSupported2[ObjectTypesSupported2["TIMER"] = 31] = "TIMER";
  ObjectTypesSupported2[ObjectTypesSupported2["ACCESS_CREDENTIAL"] = 32] = "ACCESS_CREDENTIAL";
  ObjectTypesSupported2[ObjectTypesSupported2["ACCESS_POINT"] = 33] = "ACCESS_POINT";
  ObjectTypesSupported2[ObjectTypesSupported2["ACCESS_RIGHTS"] = 34] = "ACCESS_RIGHTS";
  ObjectTypesSupported2[ObjectTypesSupported2["ACCESS_USER"] = 35] = "ACCESS_USER";
  ObjectTypesSupported2[ObjectTypesSupported2["ACCESS_ZONE"] = 36] = "ACCESS_ZONE";
  ObjectTypesSupported2[ObjectTypesSupported2["CREDENTIAL_DATA_INPUT"] = 37] = "CREDENTIAL_DATA_INPUT";
  ObjectTypesSupported2[ObjectTypesSupported2["NETWORK_SECURITY"] = 38] = "NETWORK_SECURITY";
  ObjectTypesSupported2[ObjectTypesSupported2["BITSTRING_VALUE"] = 39] = "BITSTRING_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["CHARACTERSTRING_VALUE"] = 40] = "CHARACTERSTRING_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["DATEPATTERN_VALUE"] = 41] = "DATEPATTERN_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["DATE_VALUE"] = 42] = "DATE_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["DATETIMEPATTERN_VALUE"] = 43] = "DATETIMEPATTERN_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["DATETIME_VALUE"] = 44] = "DATETIME_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["INTEGER_VALUE"] = 45] = "INTEGER_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["LARGE_ANALOG_VALUE"] = 46] = "LARGE_ANALOG_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["OCTETSTRING_VALUE"] = 47] = "OCTETSTRING_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["POSITIVE_INTEGER_VALUE"] = 48] = "POSITIVE_INTEGER_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["TIMEPATTERN_VALUE"] = 49] = "TIMEPATTERN_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["TIME_VALUE"] = 50] = "TIME_VALUE";
  ObjectTypesSupported2[ObjectTypesSupported2["NOTIFICATION_FORWARDER"] = 51] = "NOTIFICATION_FORWARDER";
  ObjectTypesSupported2[ObjectTypesSupported2["ALERT_ENROLLMENT"] = 52] = "ALERT_ENROLLMENT";
  ObjectTypesSupported2[ObjectTypesSupported2["CHANNEL"] = 53] = "CHANNEL";
  ObjectTypesSupported2[ObjectTypesSupported2["LIGHTING_OUTPUT"] = 54] = "LIGHTING_OUTPUT";
  ObjectTypesSupported2[ObjectTypesSupported2["BINARY_LIGHTING_OUTPUT"] = 55] = "BINARY_LIGHTING_OUTPUT";
  ObjectTypesSupported2[ObjectTypesSupported2["NETWORK_PORT"] = 56] = "NETWORK_PORT";
  ObjectTypesSupported2[ObjectTypesSupported2["ELEVATOR_GROUP"] = 57] = "ELEVATOR_GROUP";
  ObjectTypesSupported2[ObjectTypesSupported2["ESCALATOR"] = 58] = "ESCALATOR";
  ObjectTypesSupported2[ObjectTypesSupported2["LIFT"] = 59] = "LIFT";
  return ObjectTypesSupported2;
})(ObjectTypesSupported || {});
var ResultFlags = /* @__PURE__ */ ((ResultFlags2) => {
  ResultFlags2[ResultFlags2["FIRST_ITEM"] = 0] = "FIRST_ITEM";
  ResultFlags2[ResultFlags2["LAST_ITEM"] = 1] = "LAST_ITEM";
  ResultFlags2[ResultFlags2["MORE_ITEMS"] = 2] = "MORE_ITEMS";
  return ResultFlags2;
})(ResultFlags || {});
var ServicesSupported = /* @__PURE__ */ ((ServicesSupported2) => {
  ServicesSupported2[ServicesSupported2["ACKNOWLEDGE_ALARM"] = 0] = "ACKNOWLEDGE_ALARM";
  ServicesSupported2[ServicesSupported2["CONFIRMED_COV_NOTIFICATION"] = 1] = "CONFIRMED_COV_NOTIFICATION";
  ServicesSupported2[ServicesSupported2["CONFIRMED_EVENT_NOTIFICATION"] = 2] = "CONFIRMED_EVENT_NOTIFICATION";
  ServicesSupported2[ServicesSupported2["GET_ALARM_SUMMARY"] = 3] = "GET_ALARM_SUMMARY";
  ServicesSupported2[ServicesSupported2["GET_ENROLLMENT_SUMMARY"] = 4] = "GET_ENROLLMENT_SUMMARY";
  ServicesSupported2[ServicesSupported2["SUBSCRIBE_COV"] = 5] = "SUBSCRIBE_COV";
  ServicesSupported2[ServicesSupported2["ATOMIC_READ_FILE"] = 6] = "ATOMIC_READ_FILE";
  ServicesSupported2[ServicesSupported2["ATOMIC_WRITE_FILE"] = 7] = "ATOMIC_WRITE_FILE";
  ServicesSupported2[ServicesSupported2["ADD_LIST_ELEMENT"] = 8] = "ADD_LIST_ELEMENT";
  ServicesSupported2[ServicesSupported2["REMOVE_LIST_ELEMENT"] = 9] = "REMOVE_LIST_ELEMENT";
  ServicesSupported2[ServicesSupported2["CREATE_OBJECT"] = 10] = "CREATE_OBJECT";
  ServicesSupported2[ServicesSupported2["DELETE_OBJECT"] = 11] = "DELETE_OBJECT";
  ServicesSupported2[ServicesSupported2["READ_PROPERTY"] = 12] = "READ_PROPERTY";
  ServicesSupported2[ServicesSupported2["READ_PROPERTY_MULTIPLE"] = 14] = "READ_PROPERTY_MULTIPLE";
  ServicesSupported2[ServicesSupported2["WRITE_PROPERTY"] = 15] = "WRITE_PROPERTY";
  ServicesSupported2[ServicesSupported2["WRITE_PROPERTY_MULTIPLE"] = 16] = "WRITE_PROPERTY_MULTIPLE";
  ServicesSupported2[ServicesSupported2["DEVICE_COMMUNICATION_CONTROL"] = 17] = "DEVICE_COMMUNICATION_CONTROL";
  ServicesSupported2[ServicesSupported2["CONFIRMED_PRIVATE_TRANSFER"] = 18] = "CONFIRMED_PRIVATE_TRANSFER";
  ServicesSupported2[ServicesSupported2["CONFIRMED_TEXT_MESSAGE"] = 19] = "CONFIRMED_TEXT_MESSAGE";
  ServicesSupported2[ServicesSupported2["REINITIALIZE_DEVICE"] = 20] = "REINITIALIZE_DEVICE";
  ServicesSupported2[ServicesSupported2["VT_OPEN"] = 21] = "VT_OPEN";
  ServicesSupported2[ServicesSupported2["VT_CLOSE"] = 22] = "VT_CLOSE";
  ServicesSupported2[ServicesSupported2["VT_DATA"] = 23] = "VT_DATA";
  ServicesSupported2[ServicesSupported2["READ_PROPERTY_CONDITIONAL"] = 13] = "READ_PROPERTY_CONDITIONAL";
  ServicesSupported2[ServicesSupported2["AUTHENTICATE"] = 24] = "AUTHENTICATE";
  ServicesSupported2[ServicesSupported2["REQUEST_KEY"] = 25] = "REQUEST_KEY";
  ServicesSupported2[ServicesSupported2["I_AM"] = 26] = "I_AM";
  ServicesSupported2[ServicesSupported2["I_HAVE"] = 27] = "I_HAVE";
  ServicesSupported2[ServicesSupported2["UNCONFIRMED_COV_NOTIFICATION"] = 28] = "UNCONFIRMED_COV_NOTIFICATION";
  ServicesSupported2[ServicesSupported2["UNCONFIRMED_EVENT_NOTIFICATION"] = 29] = "UNCONFIRMED_EVENT_NOTIFICATION";
  ServicesSupported2[ServicesSupported2["UNCONFIRMED_PRIVATE_TRANSFER"] = 30] = "UNCONFIRMED_PRIVATE_TRANSFER";
  ServicesSupported2[ServicesSupported2["UNCONFIRMED_TEXT_MESSAGE"] = 31] = "UNCONFIRMED_TEXT_MESSAGE";
  ServicesSupported2[ServicesSupported2["TIME_SYNCHRONIZATION"] = 32] = "TIME_SYNCHRONIZATION";
  ServicesSupported2[ServicesSupported2["WHO_HAS"] = 33] = "WHO_HAS";
  ServicesSupported2[ServicesSupported2["WHO_IS"] = 34] = "WHO_IS";
  ServicesSupported2[ServicesSupported2["READ_RANGE"] = 35] = "READ_RANGE";
  ServicesSupported2[ServicesSupported2["UTC_TIME_SYNCHRONIZATION"] = 36] = "UTC_TIME_SYNCHRONIZATION";
  ServicesSupported2[ServicesSupported2["LIFE_SAFETY_OPERATION"] = 37] = "LIFE_SAFETY_OPERATION";
  ServicesSupported2[ServicesSupported2["SUBSCRIBE_COV_PROPERTY"] = 38] = "SUBSCRIBE_COV_PROPERTY";
  ServicesSupported2[ServicesSupported2["GET_EVENT_INFORMATION"] = 39] = "GET_EVENT_INFORMATION";
  ServicesSupported2[ServicesSupported2["WRITE_GROUP"] = 40] = "WRITE_GROUP";
  ServicesSupported2[ServicesSupported2["SUBSCRIBE_COV_PROPERTY_MULTIPLE"] = 41] = "SUBSCRIBE_COV_PROPERTY_MULTIPLE";
  ServicesSupported2[ServicesSupported2["CONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 42] = "CONFIRMED_COV_NOTIFICATION_MULTIPLE";
  ServicesSupported2[ServicesSupported2["UNCONFIRMED_COV_NOTIFICATION_MULTIPLE"] = 43] = "UNCONFIRMED_COV_NOTIFICATION_MULTIPLE";
  return ServicesSupported2;
})(ServicesSupported || {});
var StatusFlags = /* @__PURE__ */ ((StatusFlags2) => {
  StatusFlags2[StatusFlags2["IN_ALARM"] = 0] = "IN_ALARM";
  StatusFlags2[StatusFlags2["FAULT"] = 1] = "FAULT";
  StatusFlags2[StatusFlags2["OVERRIDDEN"] = 2] = "OVERRIDDEN";
  StatusFlags2[StatusFlags2["OUT_OF_SERVICE"] = 3] = "OUT_OF_SERVICE";
  return StatusFlags2;
})(StatusFlags || {});
var ApplicationTag = /* @__PURE__ */ ((ApplicationTag2) => {
  ApplicationTag2[ApplicationTag2["NULL"] = 0] = "NULL";
  ApplicationTag2[ApplicationTag2["BOOLEAN"] = 1] = "BOOLEAN";
  ApplicationTag2[ApplicationTag2["UNSIGNED_INTEGER"] = 2] = "UNSIGNED_INTEGER";
  ApplicationTag2[ApplicationTag2["SIGNED_INTEGER"] = 3] = "SIGNED_INTEGER";
  ApplicationTag2[ApplicationTag2["REAL"] = 4] = "REAL";
  ApplicationTag2[ApplicationTag2["DOUBLE"] = 5] = "DOUBLE";
  ApplicationTag2[ApplicationTag2["OCTET_STRING"] = 6] = "OCTET_STRING";
  ApplicationTag2[ApplicationTag2["CHARACTER_STRING"] = 7] = "CHARACTER_STRING";
  ApplicationTag2[ApplicationTag2["BIT_STRING"] = 8] = "BIT_STRING";
  ApplicationTag2[ApplicationTag2["ENUMERATED"] = 9] = "ENUMERATED";
  ApplicationTag2[ApplicationTag2["DATE"] = 10] = "DATE";
  ApplicationTag2[ApplicationTag2["TIME"] = 11] = "TIME";
  ApplicationTag2[ApplicationTag2["OBJECTIDENTIFIER"] = 12] = "OBJECTIDENTIFIER";
  ApplicationTag2[ApplicationTag2["EMPTYLIST"] = 100] = "EMPTYLIST";
  ApplicationTag2[ApplicationTag2["WEEKNDAY"] = 101] = "WEEKNDAY";
  ApplicationTag2[ApplicationTag2["DATERANGE"] = 102] = "DATERANGE";
  ApplicationTag2[ApplicationTag2["DATETIME"] = 103] = "DATETIME";
  ApplicationTag2[ApplicationTag2["TIMESTAMP"] = 104] = "TIMESTAMP";
  ApplicationTag2[ApplicationTag2["ERROR"] = 105] = "ERROR";
  ApplicationTag2[ApplicationTag2["DEVICE_OBJECT_PROPERTY_REFERENCE"] = 106] = "DEVICE_OBJECT_PROPERTY_REFERENCE";
  ApplicationTag2[ApplicationTag2["DEVICE_OBJECT_REFERENCE"] = 107] = "DEVICE_OBJECT_REFERENCE";
  ApplicationTag2[ApplicationTag2["OBJECT_PROPERTY_REFERENCE"] = 108] = "OBJECT_PROPERTY_REFERENCE";
  ApplicationTag2[ApplicationTag2["DESTINATION"] = 109] = "DESTINATION";
  ApplicationTag2[ApplicationTag2["RECIPIENT"] = 110] = "RECIPIENT";
  ApplicationTag2[ApplicationTag2["COV_SUBSCRIPTION"] = 111] = "COV_SUBSCRIPTION";
  ApplicationTag2[ApplicationTag2["CALENDAR_ENTRY"] = 112] = "CALENDAR_ENTRY";
  ApplicationTag2[ApplicationTag2["WEEKLY_SCHEDULE"] = 113] = "WEEKLY_SCHEDULE";
  ApplicationTag2[ApplicationTag2["SPECIAL_EVENT"] = 114] = "SPECIAL_EVENT";
  ApplicationTag2[ApplicationTag2["READ_ACCESS_SPECIFICATION"] = 115] = "READ_ACCESS_SPECIFICATION";
  ApplicationTag2[ApplicationTag2["READ_ACCESS_RESULT"] = 116] = "READ_ACCESS_RESULT";
  ApplicationTag2[ApplicationTag2["LIGHTING_COMMAND"] = 117] = "LIGHTING_COMMAND";
  ApplicationTag2[ApplicationTag2["CONTEXT_SPECIFIC_DECODED"] = 118] = "CONTEXT_SPECIFIC_DECODED";
  ApplicationTag2[ApplicationTag2["CONTEXT_SPECIFIC_ENCODED"] = 119] = "CONTEXT_SPECIFIC_ENCODED";
  ApplicationTag2[ApplicationTag2["LOG_RECORD"] = 120] = "LOG_RECORD";
  return ApplicationTag2;
})(ApplicationTag || {});
var ApplicationTagName = invertEnum(
  ApplicationTag
);
var BvlcResultFormat = /* @__PURE__ */ ((BvlcResultFormat2) => {
  BvlcResultFormat2[BvlcResultFormat2["SUCCESSFUL_COMPLETION"] = 0] = "SUCCESSFUL_COMPLETION";
  BvlcResultFormat2[BvlcResultFormat2["WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 16] = "WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK";
  BvlcResultFormat2[BvlcResultFormat2["READ_BROADCAST_DISTRIBUTION_TABLE_NAK"] = 32] = "READ_BROADCAST_DISTRIBUTION_TABLE_NAK";
  BvlcResultFormat2[BvlcResultFormat2["REGISTER_FOREIGN_DEVICE_NAK"] = 48] = "REGISTER_FOREIGN_DEVICE_NAK";
  BvlcResultFormat2[BvlcResultFormat2["READ_FOREIGN_DEVICE_TABLE_NAK"] = 64] = "READ_FOREIGN_DEVICE_TABLE_NAK";
  BvlcResultFormat2[BvlcResultFormat2["DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK"] = 80] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK";
  BvlcResultFormat2[BvlcResultFormat2["DISTRIBUTE_BROADCAST_TO_NETWORK_NAK"] = 96] = "DISTRIBUTE_BROADCAST_TO_NETWORK_NAK";
  return BvlcResultFormat2;
})(BvlcResultFormat || {});
var BvlcResultPurpose = /* @__PURE__ */ ((BvlcResultPurpose2) => {
  BvlcResultPurpose2[BvlcResultPurpose2["BVLC_RESULT"] = 0] = "BVLC_RESULT";
  BvlcResultPurpose2[BvlcResultPurpose2["WRITE_BROADCAST_DISTRIBUTION_TABLE"] = 1] = "WRITE_BROADCAST_DISTRIBUTION_TABLE";
  BvlcResultPurpose2[BvlcResultPurpose2["READ_BROADCAST_DISTRIBUTION_TABLE"] = 2] = "READ_BROADCAST_DISTRIBUTION_TABLE";
  BvlcResultPurpose2[BvlcResultPurpose2["READ_BROADCAST_DISTRIBUTION_TABLE_ACK"] = 3] = "READ_BROADCAST_DISTRIBUTION_TABLE_ACK";
  BvlcResultPurpose2[BvlcResultPurpose2["FORWARDED_NPDU"] = 4] = "FORWARDED_NPDU";
  BvlcResultPurpose2[BvlcResultPurpose2["REGISTER_FOREIGN_DEVICE"] = 5] = "REGISTER_FOREIGN_DEVICE";
  BvlcResultPurpose2[BvlcResultPurpose2["READ_FOREIGN_DEVICE_TABLE"] = 6] = "READ_FOREIGN_DEVICE_TABLE";
  BvlcResultPurpose2[BvlcResultPurpose2["READ_FOREIGN_DEVICE_TABLE_ACK"] = 7] = "READ_FOREIGN_DEVICE_TABLE_ACK";
  BvlcResultPurpose2[BvlcResultPurpose2["DELETE_FOREIGN_DEVICE_TABLE_ENTRY"] = 8] = "DELETE_FOREIGN_DEVICE_TABLE_ENTRY";
  BvlcResultPurpose2[BvlcResultPurpose2["DISTRIBUTE_BROADCAST_TO_NETWORK"] = 9] = "DISTRIBUTE_BROADCAST_TO_NETWORK";
  BvlcResultPurpose2[BvlcResultPurpose2["ORIGINAL_UNICAST_NPDU"] = 10] = "ORIGINAL_UNICAST_NPDU";
  BvlcResultPurpose2[BvlcResultPurpose2["ORIGINAL_BROADCAST_NPDU"] = 11] = "ORIGINAL_BROADCAST_NPDU";
  BvlcResultPurpose2[BvlcResultPurpose2["SECURE_BVLL"] = 12] = "SECURE_BVLL";
  return BvlcResultPurpose2;
})(BvlcResultPurpose || {});
var CharacterStringEncoding = /* @__PURE__ */ ((CharacterStringEncoding2) => {
  CharacterStringEncoding2[CharacterStringEncoding2["UTF_8"] = 0] = "UTF_8";
  CharacterStringEncoding2[CharacterStringEncoding2["MICROSOFT_DBCS"] = 1] = "MICROSOFT_DBCS";
  CharacterStringEncoding2[CharacterStringEncoding2["JIS_X_0208"] = 2] = "JIS_X_0208";
  CharacterStringEncoding2[CharacterStringEncoding2["UCS_4"] = 3] = "UCS_4";
  CharacterStringEncoding2[CharacterStringEncoding2["UCS_2"] = 4] = "UCS_2";
  CharacterStringEncoding2[CharacterStringEncoding2["ISO_8859_1"] = 5] = "ISO_8859_1";
  return CharacterStringEncoding2;
})(CharacterStringEncoding || {});
var CovType = /* @__PURE__ */ ((CovType2) => {
  CovType2[CovType2["REAL"] = 0] = "REAL";
  CovType2[CovType2["BIT_STRING"] = 1] = "BIT_STRING";
  return CovType2;
})(CovType || {});
var EnableDisable = /* @__PURE__ */ ((EnableDisable2) => {
  EnableDisable2[EnableDisable2["ENABLE"] = 0] = "ENABLE";
  EnableDisable2[EnableDisable2["DISABLE"] = 1] = "DISABLE";
  EnableDisable2[EnableDisable2["DISABLE_INITIATION"] = 2] = "DISABLE_INITIATION";
  return EnableDisable2;
})(EnableDisable || {});
var MaxApduLengthAccepted = /* @__PURE__ */ ((MaxApduLengthAccepted2) => {
  MaxApduLengthAccepted2[MaxApduLengthAccepted2["OCTETS_50"] = 0] = "OCTETS_50";
  MaxApduLengthAccepted2[MaxApduLengthAccepted2["OCTETS_128"] = 1] = "OCTETS_128";
  MaxApduLengthAccepted2[MaxApduLengthAccepted2["OCTETS_206"] = 2] = "OCTETS_206";
  MaxApduLengthAccepted2[MaxApduLengthAccepted2["OCTETS_480"] = 3] = "OCTETS_480";
  MaxApduLengthAccepted2[MaxApduLengthAccepted2["OCTETS_1024"] = 4] = "OCTETS_1024";
  MaxApduLengthAccepted2[MaxApduLengthAccepted2["OCTETS_1476"] = 5] = "OCTETS_1476";
  return MaxApduLengthAccepted2;
})(MaxApduLengthAccepted || {});
var MaxSegmentsAccepted = /* @__PURE__ */ ((MaxSegmentsAccepted2) => {
  MaxSegmentsAccepted2[MaxSegmentsAccepted2["SEGMENTS_0"] = 0] = "SEGMENTS_0";
  MaxSegmentsAccepted2[MaxSegmentsAccepted2["SEGMENTS_2"] = 16] = "SEGMENTS_2";
  MaxSegmentsAccepted2[MaxSegmentsAccepted2["SEGMENTS_4"] = 32] = "SEGMENTS_4";
  MaxSegmentsAccepted2[MaxSegmentsAccepted2["SEGMENTS_8"] = 48] = "SEGMENTS_8";
  MaxSegmentsAccepted2[MaxSegmentsAccepted2["SEGMENTS_16"] = 64] = "SEGMENTS_16";
  MaxSegmentsAccepted2[MaxSegmentsAccepted2["SEGMENTS_32"] = 80] = "SEGMENTS_32";
  MaxSegmentsAccepted2[MaxSegmentsAccepted2["SEGMENTS_64"] = 96] = "SEGMENTS_64";
  MaxSegmentsAccepted2[MaxSegmentsAccepted2["SEGMENTS_65"] = 112] = "SEGMENTS_65";
  return MaxSegmentsAccepted2;
})(MaxSegmentsAccepted || {});
var NetworkLayerMessageType = /* @__PURE__ */ ((NetworkLayerMessageType2) => {
  NetworkLayerMessageType2[NetworkLayerMessageType2["WHO_IS_ROUTER_TO_NETWORK"] = 0] = "WHO_IS_ROUTER_TO_NETWORK";
  NetworkLayerMessageType2[NetworkLayerMessageType2["I_AM_ROUTER_TO_NETWORK"] = 1] = "I_AM_ROUTER_TO_NETWORK";
  NetworkLayerMessageType2[NetworkLayerMessageType2["I_COULD_BE_ROUTER_TO_NETWORK"] = 2] = "I_COULD_BE_ROUTER_TO_NETWORK";
  NetworkLayerMessageType2[NetworkLayerMessageType2["REJECT_MESSAGE_TO_NETWORK"] = 3] = "REJECT_MESSAGE_TO_NETWORK";
  NetworkLayerMessageType2[NetworkLayerMessageType2["ROUTER_BUSY_TO_NETWORK"] = 4] = "ROUTER_BUSY_TO_NETWORK";
  NetworkLayerMessageType2[NetworkLayerMessageType2["ROUTER_AVAILABLE_TO_NETWORK"] = 5] = "ROUTER_AVAILABLE_TO_NETWORK";
  NetworkLayerMessageType2[NetworkLayerMessageType2["INITIALIZE_ROUTING_TABLE"] = 6] = "INITIALIZE_ROUTING_TABLE";
  NetworkLayerMessageType2[NetworkLayerMessageType2["INITIALIZE_ROUTING_TABLE_ACK"] = 7] = "INITIALIZE_ROUTING_TABLE_ACK";
  NetworkLayerMessageType2[NetworkLayerMessageType2["ESTABLISH_CONNECTION_TO_NETWORK"] = 8] = "ESTABLISH_CONNECTION_TO_NETWORK";
  NetworkLayerMessageType2[NetworkLayerMessageType2["DISCONNECT_CONNECTION_TO_NETWORK"] = 9] = "DISCONNECT_CONNECTION_TO_NETWORK";
  NetworkLayerMessageType2[NetworkLayerMessageType2["CHALLENGE_REQUEST"] = 10] = "CHALLENGE_REQUEST";
  NetworkLayerMessageType2[NetworkLayerMessageType2["SECURITY_PAYLOAD"] = 11] = "SECURITY_PAYLOAD";
  NetworkLayerMessageType2[NetworkLayerMessageType2["SECURITY_RESPONSE"] = 12] = "SECURITY_RESPONSE";
  NetworkLayerMessageType2[NetworkLayerMessageType2["REQUEST_KEY_UPDATE"] = 13] = "REQUEST_KEY_UPDATE";
  NetworkLayerMessageType2[NetworkLayerMessageType2["UPDATE_KEY_SET"] = 14] = "UPDATE_KEY_SET";
  NetworkLayerMessageType2[NetworkLayerMessageType2["UPDATE_DISTRIBUTION_KEY"] = 15] = "UPDATE_DISTRIBUTION_KEY";
  NetworkLayerMessageType2[NetworkLayerMessageType2["REQUEST_MASTER_KEY"] = 16] = "REQUEST_MASTER_KEY";
  NetworkLayerMessageType2[NetworkLayerMessageType2["SET_MASTER_KEY"] = 17] = "SET_MASTER_KEY";
  NetworkLayerMessageType2[NetworkLayerMessageType2["WHAT_IS_NETWORK_NUMBER"] = 18] = "WHAT_IS_NETWORK_NUMBER";
  NetworkLayerMessageType2[NetworkLayerMessageType2["NETWORK_NUMBER_IS"] = 19] = "NETWORK_NUMBER_IS";
  return NetworkLayerMessageType2;
})(NetworkLayerMessageType || {});
var NpduControlBit = /* @__PURE__ */ ((NpduControlBit2) => {
  NpduControlBit2[NpduControlBit2["EXPECTING_REPLY"] = 4] = "EXPECTING_REPLY";
  NpduControlBit2[NpduControlBit2["SOURCE_SPECIFIED"] = 8] = "SOURCE_SPECIFIED";
  NpduControlBit2[NpduControlBit2["DESTINATION_SPECIFIED"] = 32] = "DESTINATION_SPECIFIED";
  NpduControlBit2[NpduControlBit2["NETWORK_LAYER_MESSAGE"] = 128] = "NETWORK_LAYER_MESSAGE";
  return NpduControlBit2;
})(NpduControlBit || {});
var NpduControlPriority = /* @__PURE__ */ ((NpduControlPriority2) => {
  NpduControlPriority2[NpduControlPriority2["NORMAL_MESSAGE"] = 0] = "NORMAL_MESSAGE";
  NpduControlPriority2[NpduControlPriority2["URGENT_MESSAGE"] = 1] = "URGENT_MESSAGE";
  NpduControlPriority2[NpduControlPriority2["CRITICAL_EQUIPMENT_MESSAGE"] = 2] = "CRITICAL_EQUIPMENT_MESSAGE";
  NpduControlPriority2[NpduControlPriority2["LIFE_SAFETY_MESSAGE"] = 3] = "LIFE_SAFETY_MESSAGE";
  return NpduControlPriority2;
})(NpduControlPriority || {});
var PduConReqBit = /* @__PURE__ */ ((PduConReqBit2) => {
  PduConReqBit2[PduConReqBit2["SEGMENTED_RESPONSE_ACCEPTED"] = 2] = "SEGMENTED_RESPONSE_ACCEPTED";
  PduConReqBit2[PduConReqBit2["MORE_FOLLOWS"] = 4] = "MORE_FOLLOWS";
  PduConReqBit2[PduConReqBit2["SEGMENTED_MESSAGE"] = 8] = "SEGMENTED_MESSAGE";
  return PduConReqBit2;
})(PduConReqBit || {});
var PduSegAckBit = /* @__PURE__ */ ((PduSegAckBit2) => {
  PduSegAckBit2[PduSegAckBit2["SERVER"] = 1] = "SERVER";
  PduSegAckBit2[PduSegAckBit2["NEGATIVE_ACK"] = 2] = "NEGATIVE_ACK";
  return PduSegAckBit2;
})(PduSegAckBit || {});
var PduType = /* @__PURE__ */ ((PduType2) => {
  PduType2[PduType2["CONFIRMED_REQUEST"] = 0] = "CONFIRMED_REQUEST";
  PduType2[PduType2["UNCONFIRMED_REQUEST"] = 16] = "UNCONFIRMED_REQUEST";
  PduType2[PduType2["SIMPLE_ACK"] = 32] = "SIMPLE_ACK";
  PduType2[PduType2["COMPLEX_ACK"] = 48] = "COMPLEX_ACK";
  PduType2[PduType2["SEGMENT_ACK"] = 64] = "SEGMENT_ACK";
  PduType2[PduType2["ERROR"] = 80] = "ERROR";
  PduType2[PduType2["REJECT"] = 96] = "REJECT";
  PduType2[PduType2["ABORT"] = 112] = "ABORT";
  return PduType2;
})(PduType || {});
var PropertyStates = /* @__PURE__ */ ((PropertyStates2) => {
  PropertyStates2[PropertyStates2["BOOLEAN_VALUE"] = 0] = "BOOLEAN_VALUE";
  PropertyStates2[PropertyStates2["BINARY_VALUE"] = 1] = "BINARY_VALUE";
  PropertyStates2[PropertyStates2["EVENT_TYPE"] = 2] = "EVENT_TYPE";
  PropertyStates2[PropertyStates2["POLARITY"] = 3] = "POLARITY";
  PropertyStates2[PropertyStates2["PROGRAM_CHANGE"] = 4] = "PROGRAM_CHANGE";
  PropertyStates2[PropertyStates2["PROGRAM_STATE"] = 5] = "PROGRAM_STATE";
  PropertyStates2[PropertyStates2["REASON_FOR_HALT"] = 6] = "REASON_FOR_HALT";
  PropertyStates2[PropertyStates2["RELIABILITY"] = 7] = "RELIABILITY";
  PropertyStates2[PropertyStates2["STATE"] = 8] = "STATE";
  PropertyStates2[PropertyStates2["SYSTEM_STATUS"] = 9] = "SYSTEM_STATUS";
  PropertyStates2[PropertyStates2["UNITS"] = 10] = "UNITS";
  PropertyStates2[PropertyStates2["UNSIGNED_VALUE"] = 11] = "UNSIGNED_VALUE";
  PropertyStates2[PropertyStates2["LIFE_SAFETY_MODE"] = 12] = "LIFE_SAFETY_MODE";
  PropertyStates2[PropertyStates2["LIFE_SAFETY_STATE"] = 13] = "LIFE_SAFETY_STATE";
  PropertyStates2[PropertyStates2["RESTART_REASON"] = 14] = "RESTART_REASON";
  PropertyStates2[PropertyStates2["DOOR_ALARM_STATE"] = 15] = "DOOR_ALARM_STATE";
  PropertyStates2[PropertyStates2["ACTION"] = 16] = "ACTION";
  PropertyStates2[PropertyStates2["DOOR_SECURED_STATUS"] = 17] = "DOOR_SECURED_STATUS";
  PropertyStates2[PropertyStates2["DOOR_STATUS"] = 18] = "DOOR_STATUS";
  PropertyStates2[PropertyStates2["DOOR_VALUE"] = 19] = "DOOR_VALUE";
  PropertyStates2[PropertyStates2["FILE_ACCESS_METHOD"] = 20] = "FILE_ACCESS_METHOD";
  PropertyStates2[PropertyStates2["LOCK_STATUS"] = 21] = "LOCK_STATUS";
  PropertyStates2[PropertyStates2["LIFE_SAFETY_OPERATION"] = 22] = "LIFE_SAFETY_OPERATION";
  PropertyStates2[PropertyStates2["MAINTENANCE"] = 23] = "MAINTENANCE";
  PropertyStates2[PropertyStates2["NODE_TYPE"] = 24] = "NODE_TYPE";
  PropertyStates2[PropertyStates2["NOTIFY_TYPE"] = 25] = "NOTIFY_TYPE";
  PropertyStates2[PropertyStates2["SECURITY_LEVEL"] = 26] = "SECURITY_LEVEL";
  PropertyStates2[PropertyStates2["SHED_STATE"] = 27] = "SHED_STATE";
  PropertyStates2[PropertyStates2["SILENCED_STATE"] = 28] = "SILENCED_STATE";
  PropertyStates2[PropertyStates2["ACCESS_EVENT"] = 30] = "ACCESS_EVENT";
  PropertyStates2[PropertyStates2["ZONE_OCCUPANCY_STATE"] = 31] = "ZONE_OCCUPANCY_STATE";
  PropertyStates2[PropertyStates2["ACCESS_CREDENTIAL_DISABLE_REASON"] = 32] = "ACCESS_CREDENTIAL_DISABLE_REASON";
  PropertyStates2[PropertyStates2["ACCESS_CREDENTIAL_DISABLE"] = 33] = "ACCESS_CREDENTIAL_DISABLE";
  PropertyStates2[PropertyStates2["AUTHENTICATION_STATUS"] = 34] = "AUTHENTICATION_STATUS";
  PropertyStates2[PropertyStates2["BACKUP_STATE"] = 36] = "BACKUP_STATE";
  PropertyStates2[PropertyStates2["WRITE_STATUS"] = 37] = "WRITE_STATUS";
  PropertyStates2[PropertyStates2["LIGHTING_IN_PROGRESS"] = 38] = "LIGHTING_IN_PROGRESS";
  PropertyStates2[PropertyStates2["LIGHTING_OPERATION"] = 39] = "LIGHTING_OPERATION";
  PropertyStates2[PropertyStates2["LIGHTING_TRANSITION"] = 40] = "LIGHTING_TRANSITION";
  PropertyStates2[PropertyStates2["INTEGER_VALUE"] = 41] = "INTEGER_VALUE";
  PropertyStates2[PropertyStates2["BINARY_LIGHTING_VALUE"] = 42] = "BINARY_LIGHTING_VALUE";
  PropertyStates2[PropertyStates2["TIMER_STATE"] = 43] = "TIMER_STATE";
  PropertyStates2[PropertyStates2["TIMER_TRANSITION"] = 44] = "TIMER_TRANSITION";
  PropertyStates2[PropertyStates2["BACNET_IP_MODE"] = 45] = "BACNET_IP_MODE";
  PropertyStates2[PropertyStates2["NETWORK_PORT_COMMAND"] = 46] = "NETWORK_PORT_COMMAND";
  PropertyStates2[PropertyStates2["NETWORK_TYPE"] = 47] = "NETWORK_TYPE";
  PropertyStates2[PropertyStates2["NETWORK_NUMBER_QUALITY"] = 48] = "NETWORK_NUMBER_QUALITY";
  PropertyStates2[PropertyStates2["ESCALATOR_OPERATION_DIRECTION"] = 49] = "ESCALATOR_OPERATION_DIRECTION";
  PropertyStates2[PropertyStates2["ESCALATOR_FAULT"] = 50] = "ESCALATOR_FAULT";
  PropertyStates2[PropertyStates2["ESCALATOR_MODE"] = 51] = "ESCALATOR_MODE";
  PropertyStates2[PropertyStates2["LIFT_CAR_DIRECTION"] = 52] = "LIFT_CAR_DIRECTION";
  PropertyStates2[PropertyStates2["LIFT_CAR_DOOR_COMMAND"] = 53] = "LIFT_CAR_DOOR_COMMAND";
  PropertyStates2[PropertyStates2["LIFT_CAR_DRIVE_STATUS"] = 54] = "LIFT_CAR_DRIVE_STATUS";
  PropertyStates2[PropertyStates2["LIFT_CAR_MODE"] = 55] = "LIFT_CAR_MODE";
  PropertyStates2[PropertyStates2["LIFT_GROUP_MODE"] = 56] = "LIFT_GROUP_MODE";
  PropertyStates2[PropertyStates2["LIFT_FAULT"] = 57] = "LIFT_FAULT";
  PropertyStates2[PropertyStates2["PROTOCOL_LEVEL"] = 58] = "PROTOCOL_LEVEL";
  PropertyStates2[PropertyStates2["EXTENDED_VALUE"] = 63] = "EXTENDED_VALUE";
  return PropertyStates2;
})(PropertyStates || {});
var ReadRangeType = /* @__PURE__ */ ((ReadRangeType2) => {
  ReadRangeType2[ReadRangeType2["BY_POSITION"] = 0] = "BY_POSITION";
  ReadRangeType2[ReadRangeType2["BY_SEQUENCE_NUMBER"] = 1] = "BY_SEQUENCE_NUMBER";
  ReadRangeType2[ReadRangeType2["BY_TIME_REFERENCE_TIME_COUNT"] = 2] = "BY_TIME_REFERENCE_TIME_COUNT";
  return ReadRangeType2;
})(ReadRangeType || {});
var ReinitializedState = /* @__PURE__ */ ((ReinitializedState2) => {
  ReinitializedState2[ReinitializedState2["COLDSTART"] = 0] = "COLDSTART";
  ReinitializedState2[ReinitializedState2["WARMSTART"] = 1] = "WARMSTART";
  ReinitializedState2[ReinitializedState2["STARTBACKUP"] = 2] = "STARTBACKUP";
  ReinitializedState2[ReinitializedState2["ENDBACKUP"] = 3] = "ENDBACKUP";
  ReinitializedState2[ReinitializedState2["STARTRESTORE"] = 4] = "STARTRESTORE";
  ReinitializedState2[ReinitializedState2["ENDRESTORE"] = 5] = "ENDRESTORE";
  ReinitializedState2[ReinitializedState2["ABORTRESTORE"] = 6] = "ABORTRESTORE";
  ReinitializedState2[ReinitializedState2["ACTIVATE_CHANGES"] = 7] = "ACTIVATE_CHANGES";
  return ReinitializedState2;
})(ReinitializedState || {});
var TimeStamp = /* @__PURE__ */ ((TimeStamp2) => {
  TimeStamp2[TimeStamp2["TIME"] = 0] = "TIME";
  TimeStamp2[TimeStamp2["SEQUENCE_NUMBER"] = 1] = "SEQUENCE_NUMBER";
  TimeStamp2[TimeStamp2["DATETIME"] = 2] = "DATETIME";
  return TimeStamp2;
})(TimeStamp || {});

// src/client.ts
var import_events2 = __toESM(require("events"));
var import_debug3 = __toESM(require("debug"));

// src/transport.ts
var import_dgram = require("dgram");
var import_events = __toESM(require("events"));
var import_debug2 = __toESM(require("debug"));
var EventEmitter = import_events.default.EventEmitter;
var debug2 = (0, import_debug2.default)("bacnet:client:debug");
var DEFAULT_BACNET_PORT = 47808;
var Transport = class extends EventEmitter {
  constructor(settings) {
    super();
    this._lastSendMessages = {};
    this._settings = settings;
    this._server = (0, import_dgram.createSocket)({
      type: "udp4",
      reuseAddr: settings.reuseAddr
    });
    this._server.on("message", (msg, rinfo) => {
      if (this.ownAddress.port === rinfo.port) {
        for (let [messageKey, earlierSentBuffer] of Object.entries(
          this._lastSendMessages
        )) {
          if (msg.equals(earlierSentBuffer)) {
            debug2(
              `server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString("hex")}`
            );
            return;
          }
        }
      }
      debug2(
        `server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString(
          "hex"
        )}`
      );
      this.emit(
        "message",
        msg,
        rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT ? "" : ":" + rinfo.port)
      );
    });
    this._server.on("listening", () => {
      this.ownAddress = this._server.address();
      debug2(
        `server listening on ${this.ownAddress.address}:${this.ownAddress.port}`
      );
      this.emit("listening", this.ownAddress);
    });
    this._server.on("error", (err) => {
      debug2("transport error", err.message);
      this.emit("error", err);
    });
    this._server.on("close", () => {
      debug2("transport closed");
      this.emit("close");
    });
  }
  getBroadcastAddress() {
    return this._settings.broadcastAddress;
  }
  getMaxPayload() {
    return 1482;
  }
  send(buffer, offset, receiver) {
    if (!receiver) {
      receiver = this.getBroadcastAddress();
      const dataToSend = Buffer.alloc(offset);
      const hrTime = process.hrtime();
      const messageKey = hrTime[0] * 1e9 + hrTime[1];
      buffer.copy(dataToSend, 0, 0, offset);
      this._lastSendMessages[messageKey] = dataToSend;
      setTimeout(() => {
        delete this._lastSendMessages[messageKey];
      }, 1e4);
    }
    const receiverAddress = typeof receiver === "string" ? receiver : receiver.address;
    const [address, port] = receiverAddress.split(":");
    debug2(
      "Send packet to " + receiver + ": " + buffer.toString("hex").substr(0, offset * 2)
    );
    this._server.send(buffer, 0, offset, +port || DEFAULT_BACNET_PORT, address);
  }
  open() {
    this._server.bind(this._settings.port, this._settings.interface, () => {
      this._server.setBroadcast(true);
    });
  }
  close() {
    this._server.close();
  }
};

// src/services/index.ts
var services_exports = {};
__export(services_exports, {
  addListElement: () => add_list_element_exports,
  alarmAcknowledge: () => alarm_acknowledge_exports,
  alarmSummary: () => alarm_summary_exports,
  atomicReadFile: () => atomic_read_file_exports,
  atomicWriteFile: () => atomic_write_file_exports,
  covNotify: () => cov_notify_exports,
  covNotifyUnconfirmed: () => cov_notify_exports,
  createObject: () => create_object_exports,
  deleteObject: () => delete_object_exports,
  deviceCommunicationControl: () => device_communication_control_exports,
  error: () => error_exports,
  eventInformation: () => event_information_exports,
  eventNotifyData: () => event_notify_data_exports,
  getEnrollmentSummary: () => get_enrollment_summary_exports,
  getEventInformation: () => get_event_information_exports,
  iAm: () => i_am_exports,
  iHave: () => i_have_exports,
  lifeSafetyOperation: () => life_safety_operation_exports,
  privateTransfer: () => private_transfer_exports,
  readProperty: () => read_property_exports,
  readPropertyMultiple: () => read_property_multiple_exports,
  readRange: () => read_range_exports,
  registerForeignDevice: () => register_foreign_device_exports,
  reinitializeDevice: () => reinitialize_device_exports,
  subscribeCov: () => subscribe_cov_exports,
  subscribeProperty: () => subscribe_property_exports,
  timeSync: () => time_sync_exports,
  timeSyncUTC: () => time_sync_exports,
  whoHas: () => who_has_exports,
  whoIs: () => who_is_exports,
  writeProperty: () => write_property_exports,
  writePropertyMultiple: () => write_property_multiple_exports
});

// src/services/add-list-element.ts
var add_list_element_exports = {};
__export(add_list_element_exports, {
  decode: () => decode,
  encode: () => encode
});

// src/asn1.ts
var import_iconv_lite = __toESM(require("iconv-lite"));

// src/enums.ts
var enums_default = enum_exports;

// src/asn1.ts
var START_YEAR = 1900;
var MAX_YEARS = 256;
var getBuffer = () => {
  return {
    buffer: Buffer.alloc(1472),
    offset: 0
  };
};
var getSignedLength = (value) => {
  if (value >= -128 && value < 128)
    return 1;
  else if (value >= -32768 && value < 32768)
    return 2;
  else if (value > -8388608 && value < 8388608)
    return 3;
  else
    return 4;
};
var getUnsignedLength = (value) => {
  if (value < 256)
    return 1;
  else if (value < 65536)
    return 2;
  else if (value < 16777216)
    return 3;
  else
    return 4;
};
var getEncodingType = (encoding, decodingBuffer, decodingOffset) => {
  switch (encoding) {
    case enums_default.CharacterStringEncoding.UCS_2:
      if (decodingBuffer && decodingBuffer[decodingOffset] === 255 && decodingBuffer[decodingOffset + 1] === 254) {
        return "ucs2";
      }
      return "UTF-16BE";
    case enums_default.CharacterStringEncoding.ISO_8859_1:
      return "latin1";
    case enums_default.CharacterStringEncoding.MICROSOFT_DBCS:
      return "cp850";
    case enums_default.CharacterStringEncoding.JIS_X_0208:
      return "Shift_JIS";
    default:
      return "utf8";
  }
};
var encodeUnsigned = (buffer, value, length) => {
  buffer.buffer.writeUIntBE(value, buffer.offset, length, true);
  buffer.offset += length;
};
var encodeBacnetUnsigned = (buffer, value) => {
  encodeUnsigned(buffer, value, getUnsignedLength(value));
};
var encodeSigned = (buffer, value, length) => {
  buffer.buffer.writeIntBE(value, buffer.offset, length, true);
  buffer.offset += length;
};
var encodeBacnetSigned = (buffer, value) => {
  encodeSigned(buffer, value, getSignedLength(value));
};
var encodeBacnetReal = (buffer, value) => {
  buffer.buffer.writeFloatBE(value, buffer.offset, true);
  buffer.offset += 4;
};
var encodeBacnetDouble = (buffer, value) => {
  buffer.buffer.writeDoubleBE(value, buffer.offset, true);
  buffer.offset += 8;
};
var decodeUnsigned = (buffer, offset, length) => {
  if (length === 0) {
    return {
      len: 0,
      value: 0
    };
  }
  return {
    len: length,
    //@ts-ignore
    value: buffer.readUIntBE(offset, length)
  };
};
var decodeEnumerated = (buffer, offset, length) => {
  return decodeUnsigned(buffer, offset, length);
};
var encodeBacnetObjectId = (buffer, objectType, instance) => {
  const value = ((objectType & enums_default.ASN1_MAX_OBJECT) << enums_default.ASN1_INSTANCE_BITS | instance & enums_default.ASN1_MAX_INSTANCE) >>> 0;
  encodeUnsigned(buffer, value, 4);
};
var encodeTag = (buffer, tagNumber, contextSpecific, lenValueType) => {
  let len = 1;
  const tmp = new Array(3);
  tmp[0] = 0;
  if (contextSpecific) {
    tmp[0] |= 8;
  }
  if (tagNumber <= 14) {
    tmp[0] |= tagNumber << 4;
  } else {
    tmp[0] |= 240;
    tmp[1] = tagNumber;
    len++;
  }
  if (lenValueType <= 4) {
    tmp[0] |= lenValueType;
    Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
    buffer.offset += len;
  } else {
    tmp[0] |= 5;
    if (lenValueType <= 253) {
      tmp[len++] = lenValueType;
      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
      buffer.offset += len;
    } else if (lenValueType <= 65535) {
      tmp[len++] = 254;
      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
      buffer.offset += len;
      encodeUnsigned(buffer, lenValueType, 2);
    } else {
      tmp[len++] = 255;
      Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
      buffer.offset += len;
      encodeUnsigned(buffer, lenValueType, 4);
    }
  }
};
var encodeBacnetEnumerated = (buffer, value) => {
  encodeBacnetUnsigned(buffer, value);
};
var isExtendedTagNumber = (x) => {
  return (x & 240) === 240;
};
var isExtendedValue = (x) => {
  return (x & 7) === 5;
};
var isContextSpecific = (x) => {
  return (x & 8) === 8;
};
var isOpeningTag = (x) => {
  return (x & 7) === 6;
};
var isClosingTag = (x) => {
  return (x & 7) === 7;
};
var encodeContextReal = (buffer, tagNumber, value) => {
  encodeTag(buffer, tagNumber, true, 4);
  encodeBacnetReal(buffer, value);
};
var encodeContextUnsigned = (buffer, tagNumber, value) => {
  encodeTag(buffer, tagNumber, true, getUnsignedLength(value));
  encodeBacnetUnsigned(buffer, value);
};
var encodeContextEnumerated = (buffer, tagNumber, value) => {
  encodeContextUnsigned(buffer, tagNumber, value);
};
var encodeOctetString = (buffer, octetString, octetOffset, octetCount) => {
  if (octetString) {
    for (let i = octetOffset; i < octetOffset + octetCount; i++) {
      buffer.buffer[buffer.offset++] = octetString[i];
    }
  }
};
var encodeApplicationOctetString = (buffer, octetString, octetOffset, octetCount) => {
  encodeTag(buffer, enums_default.ApplicationTag.OCTET_STRING, false, octetCount);
  encodeOctetString(buffer, octetString, octetOffset, octetCount);
};
var encodeApplicationNull = (buffer) => {
  buffer.buffer[buffer.offset++] = enums_default.ApplicationTag.NULL;
};
var encodeApplicationBoolean = (buffer, booleanValue) => {
  encodeTag(buffer, enums_default.ApplicationTag.BOOLEAN, false, booleanValue ? 1 : 0);
};
var encodeApplicationReal = (buffer, value) => {
  encodeTag(buffer, enums_default.ApplicationTag.REAL, false, 4);
  encodeBacnetReal(buffer, value);
};
var encodeApplicationDouble = (buffer, value) => {
  encodeTag(buffer, enums_default.ApplicationTag.DOUBLE, false, 8);
  encodeBacnetDouble(buffer, value);
};
var bitstringBytesUsed = (bitString) => {
  let len = 0;
  if (bitString.bitsUsed > 0) {
    const lastBit = bitString.bitsUsed - 1;
    const usedBytes = lastBit / 8 + 1;
    len = Math.floor(usedBytes);
  }
  return len;
};
var encodeApplicationObjectId = (buffer, objectType, instance) => {
  const tmp = getBuffer();
  encodeBacnetObjectId(tmp, objectType, instance);
  encodeTag(buffer, enums_default.ApplicationTag.OBJECTIDENTIFIER, false, tmp.offset);
  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
  buffer.offset += tmp.offset;
};
var encodeApplicationUnsigned = (buffer, value) => {
  const tmp = getBuffer();
  encodeBacnetUnsigned(tmp, value);
  encodeTag(buffer, enums_default.ApplicationTag.UNSIGNED_INTEGER, false, tmp.offset);
  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
  buffer.offset += tmp.offset;
};
var encodeApplicationEnumerated = (buffer, value) => {
  const tmp = getBuffer();
  encodeBacnetEnumerated(tmp, value);
  encodeTag(buffer, enums_default.ApplicationTag.ENUMERATED, false, tmp.offset);
  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
  buffer.offset += tmp.offset;
};
var encodeApplicationSigned = (buffer, value) => {
  const tmp = getBuffer();
  encodeBacnetSigned(tmp, value);
  encodeTag(buffer, enums_default.ApplicationTag.SIGNED_INTEGER, false, tmp.offset);
  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
  buffer.offset += tmp.offset;
};
var byteReverseBits = (inByte) => {
  let outByte = 0;
  if ((inByte & 1) > 0) {
    outByte |= 128;
  }
  if ((inByte & 2) > 0) {
    outByte |= 64;
  }
  if ((inByte & 4) > 0) {
    outByte |= 32;
  }
  if ((inByte & 8) > 0) {
    outByte |= 16;
  }
  if ((inByte & 16) > 0) {
    outByte |= 8;
  }
  if ((inByte & 32) > 0) {
    outByte |= 4;
  }
  if ((inByte & 64) > 0) {
    outByte |= 2;
  }
  if ((inByte & 128) > 0) {
    outByte |= 1;
  }
  return outByte;
};
var bitstringOctet = (bitString, octetIndex) => {
  let octet = 0;
  if (bitString.value && octetIndex < enums_default.ASN1_MAX_BITSTRING_BYTES) {
    octet = bitString.value[octetIndex];
  }
  return octet;
};
var encodeBitstring = (buffer, bitString) => {
  if (bitString.bitsUsed === 0) {
    buffer.buffer[buffer.offset++] = 0;
  } else {
    const usedBytes = bitstringBytesUsed(bitString);
    const remainingUsedBits = bitString.bitsUsed - (usedBytes - 1) * 8;
    buffer.buffer[buffer.offset++] = 8 - remainingUsedBits;
    for (let i = 0; i < usedBytes; i++) {
      buffer.buffer[buffer.offset++] = byteReverseBits(
        bitstringOctet(bitString, i)
      );
    }
  }
};
var encodeApplicationBitstring = (buffer, bitString) => {
  let bitStringEncodedLength = 1;
  bitStringEncodedLength += bitstringBytesUsed(bitString);
  encodeTag(
    buffer,
    enums_default.ApplicationTag.BIT_STRING,
    false,
    bitStringEncodedLength
  );
  encodeBitstring(buffer, bitString);
};
var encodeBacnetDate = (buffer, value) => {
  if (value === new Date(1, 1, 1)) {
    buffer.buffer[buffer.offset++] = 255;
    buffer.buffer[buffer.offset++] = 255;
    buffer.buffer[buffer.offset++] = 255;
    buffer.buffer[buffer.offset++] = 255;
    return;
  }
  if (value.getFullYear() >= START_YEAR) {
    buffer.buffer[buffer.offset++] = value.getFullYear() - START_YEAR;
  } else if (value.getFullYear() < MAX_YEARS) {
    buffer.buffer[buffer.offset++] = value.getFullYear();
  } else {
    throw new Error("invaide year: " + value.getFullYear());
  }
  buffer.buffer[buffer.offset++] = value.getMonth();
  buffer.buffer[buffer.offset++] = value.getDate();
  buffer.buffer[buffer.offset++] = value.getDay() === 0 ? 7 : value.getDay();
};
var encodeApplicationDate = (buffer, value) => {
  encodeTag(buffer, enums_default.ApplicationTag.DATE, false, 4);
  encodeBacnetDate(buffer, value);
};
var encodeBacnetTime = (buffer, value) => {
  buffer.buffer[buffer.offset++] = value.getHours();
  buffer.buffer[buffer.offset++] = value.getMinutes();
  buffer.buffer[buffer.offset++] = value.getSeconds();
  buffer.buffer[buffer.offset++] = value.getMilliseconds() / 10;
};
var encodeApplicationTime = (buffer, value) => {
  encodeTag(buffer, enums_default.ApplicationTag.TIME, false, 4);
  encodeBacnetTime(buffer, value);
};
var bacappEncodeDatetime = (buffer, value) => {
  if (value !== new Date(1, 1, 1)) {
    encodeApplicationDate(buffer, value);
    encodeApplicationTime(buffer, value);
  }
};
var encodeContextObjectId = (buffer, tagNumber, objectType, instance) => {
  encodeTag(buffer, tagNumber, true, 4);
  encodeBacnetObjectId(buffer, objectType, instance);
};
var encodeOpeningTag = (buffer, tagNumber) => {
  let len = 1;
  const tmp = new Array(2);
  tmp[0] = 8;
  if (tagNumber <= 14) {
    tmp[0] |= tagNumber << 4;
  } else {
    tmp[0] |= 240;
    tmp[1] = tagNumber;
    len++;
  }
  tmp[0] |= 6;
  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
  buffer.offset += len;
};
var encodeClosingTag = (buffer, tagNumber) => {
  let len = 1;
  const tmp = new Array(2);
  tmp[0] = 8;
  if (tagNumber <= 14) {
    tmp[0] |= tagNumber << 4;
  } else {
    tmp[0] |= 240;
    tmp[1] = tagNumber;
    len++;
  }
  tmp[0] |= 7;
  Buffer.from(tmp).copy(buffer.buffer, buffer.offset, 0, len);
  buffer.offset += len;
};
var encodeReadAccessSpecification = (buffer, value) => {
  encodeContextObjectId(
    buffer,
    0,
    value.objectId.type,
    value.objectId.instance
  );
  encodeOpeningTag(buffer, 1);
  value.properties.forEach((p) => {
    encodeContextEnumerated(buffer, 0, p.id);
    if (p.index && p.index !== enums_default.ASN1_ARRAY_ALL) {
      encodeContextUnsigned(buffer, 1, p.index);
    }
  });
  encodeClosingTag(buffer, 1);
};
var encodeContextBoolean = (buffer, tagNumber, booleanValue) => {
  encodeTag(buffer, tagNumber, true, 1);
  buffer.buffer.writeUInt8(booleanValue ? 1 : 0, buffer.offset, true);
  buffer.offset += 1;
};
var encodeCovSubscription = (buffer, value) => {
  encodeOpeningTag(buffer, 0);
  encodeOpeningTag(buffer, 0);
  encodeOpeningTag(buffer, 1);
  encodeApplicationUnsigned(buffer, value.recipient.network);
  if (value.recipient.network === 65535) {
    encodeApplicationOctetString(buffer, 0, 0, 0);
  } else {
    encodeApplicationOctetString(
      buffer,
      value.recipient.address,
      0,
      value.recipient.address.length
    );
  }
  encodeClosingTag(buffer, 1);
  encodeClosingTag(buffer, 0);
  encodeContextUnsigned(buffer, 1, value.subscriptionProcessId);
  encodeClosingTag(buffer, 0);
  encodeOpeningTag(buffer, 1);
  encodeContextObjectId(
    buffer,
    0,
    value.monitoredObjectId.type,
    value.monitoredObjectId.instance
  );
  encodeContextEnumerated(buffer, 1, value.monitoredProperty.id);
  if (value.monitoredProperty.index !== enums_default.ASN1_ARRAY_ALL) {
    encodeContextUnsigned(buffer, 2, value.monitoredProperty.index);
  }
  encodeClosingTag(buffer, 1);
  encodeContextBoolean(buffer, 2, value.issueConfirmedNotifications);
  encodeContextUnsigned(buffer, 3, value.timeRemaining);
  if (value.covIncrement > 0) {
    encodeContextReal(buffer, 4, value.covIncrement);
  }
};
var bacappEncodeApplicationData = (buffer, value) => {
  if (value.value === null) {
    value.type = enums_default.ApplicationTag.NULL;
  }
  switch (value.type) {
    case enums_default.ApplicationTag.NULL:
      encodeApplicationNull(buffer);
      break;
    case enums_default.ApplicationTag.BOOLEAN:
      encodeApplicationBoolean(buffer, value.value);
      break;
    case enums_default.ApplicationTag.UNSIGNED_INTEGER:
      encodeApplicationUnsigned(buffer, value.value);
      break;
    case enums_default.ApplicationTag.SIGNED_INTEGER:
      encodeApplicationSigned(buffer, value.value);
      break;
    case enums_default.ApplicationTag.REAL:
      encodeApplicationReal(buffer, value.value);
      break;
    case enums_default.ApplicationTag.DOUBLE:
      encodeApplicationDouble(buffer, value.value);
      break;
    case enums_default.ApplicationTag.OCTET_STRING:
      encodeApplicationOctetString(buffer, value.value, 0, value.value.length);
      break;
    case enums_default.ApplicationTag.CHARACTER_STRING:
      encodeApplicationCharacterString(buffer, value.value, value.encoding);
      break;
    case enums_default.ApplicationTag.BIT_STRING:
      encodeApplicationBitstring(buffer, value.value);
      break;
    case enums_default.ApplicationTag.ENUMERATED:
      encodeApplicationEnumerated(buffer, value.value);
      break;
    case enums_default.ApplicationTag.DATE:
      encodeApplicationDate(buffer, value.value);
      break;
    case enums_default.ApplicationTag.TIME:
      encodeApplicationTime(buffer, value.value);
      break;
    case enums_default.ApplicationTag.TIMESTAMP:
      bacappEncodeTimestamp(buffer, value.value);
      break;
    case enums_default.ApplicationTag.DATETIME:
      bacappEncodeDatetime(buffer, value.value);
      break;
    case enums_default.ApplicationTag.OBJECTIDENTIFIER:
      encodeApplicationObjectId(buffer, value.value.type, value.value.instance);
      break;
    case enums_default.ApplicationTag.COV_SUBSCRIPTION:
      encodeCovSubscription(buffer, value.value);
      break;
    case enums_default.ApplicationTag.READ_ACCESS_RESULT:
      encodeReadAccessResult(buffer, value.value);
      break;
    case enums_default.ApplicationTag.READ_ACCESS_SPECIFICATION:
      encodeReadAccessSpecification(buffer, value.value);
      break;
    case void 0:
      throw new Error(
        "Cannot encode a value if the type has not been specified"
      );
    default:
      throw "No encode for ApplicationTag type: " + enums_default.getEnumName(
        enums_default.ApplicationTag,
        value.type
      );
  }
};
var bacappEncodeDeviceObjPropertyRef = (buffer, value) => {
  encodeContextObjectId(
    buffer,
    0,
    value.objectId.type,
    value.objectId.instance
  );
  encodeContextEnumerated(buffer, 1, value.id);
  if (value.arrayIndex !== enums_default.ASN1_ARRAY_ALL) {
    encodeContextUnsigned(buffer, 2, value.arrayIndex);
  }
  if (value.deviceIndentifier.type === enums_default.ObjectType.DEVICE) {
    encodeContextObjectId(
      buffer,
      3,
      value.deviceIndentifier.type,
      value.deviceIndentifier.instance
    );
  }
};
var bacappEncodeContextDeviceObjPropertyRef = (buffer, tagNumber, value) => {
  encodeOpeningTag(buffer, tagNumber);
  bacappEncodeDeviceObjPropertyRef(buffer, value);
  encodeClosingTag(buffer, tagNumber);
};
var bacappEncodePropertyState = (buffer, value) => {
  switch (value.type) {
    case enums_default.PropertyStates.BOOLEAN_VALUE:
      encodeContextBoolean(buffer, 0, value.state === 1);
      break;
    case enums_default.PropertyStates.BINARY_VALUE:
      encodeContextEnumerated(buffer, 1, value.state);
      break;
    case enums_default.PropertyStates.EVENT_TYPE:
      encodeContextEnumerated(buffer, 2, value.state);
      break;
    case enums_default.PropertyStates.POLARITY:
      encodeContextEnumerated(buffer, 3, value.state);
      break;
    case enums_default.PropertyStates.PROGRAM_CHANGE:
      encodeContextEnumerated(buffer, 4, value.state);
      break;
    case enums_default.PropertyStates.PROGRAM_STATE:
      encodeContextEnumerated(buffer, 5, value.state);
      break;
    case enums_default.PropertyStates.REASON_FOR_HALT:
      encodeContextEnumerated(buffer, 6, value.state);
      break;
    case enums_default.PropertyStates.RELIABILITY:
      encodeContextEnumerated(buffer, 7, value.state);
      break;
    case enums_default.PropertyStates.STATE:
      encodeContextEnumerated(buffer, 8, value.state);
      break;
    case enums_default.PropertyStates.SYSTEM_STATUS:
      encodeContextEnumerated(buffer, 9, value.state);
      break;
    case enums_default.PropertyStates.UNITS:
      encodeContextEnumerated(buffer, 10, value.state);
      break;
    case enums_default.PropertyStates.UNSIGNED_VALUE:
      encodeContextUnsigned(buffer, 11, value.state);
      break;
    case enums_default.PropertyStates.LIFE_SAFETY_MODE:
      encodeContextEnumerated(buffer, 12, value.state);
      break;
    case enums_default.PropertyStates.LIFE_SAFETY_STATE:
      encodeContextEnumerated(buffer, 13, value.state);
      break;
    default:
      break;
  }
};
var encodeContextBitstring = (buffer, tagNumber, bitString) => {
  let bitStringEncodedLength = 1;
  bitStringEncodedLength += bitstringBytesUsed(bitString);
  encodeTag(buffer, tagNumber, true, bitStringEncodedLength);
  encodeBitstring(buffer, bitString);
};
var encodeContextSigned = (buffer, tagNumber, value) => {
  encodeTag(buffer, tagNumber, true, getSignedLength(value));
  encodeBacnetSigned(buffer, value);
};
var encodeContextTime = (buffer, tagNumber, value) => {
  encodeTag(buffer, tagNumber, true, 4);
  encodeBacnetTime(buffer, value);
};
var bacappEncodeContextDatetime = (buffer, tagNumber, value) => {
  if (value !== new Date(1, 1, 1)) {
    encodeOpeningTag(buffer, tagNumber);
    bacappEncodeDatetime(buffer, value);
    encodeClosingTag(buffer, tagNumber);
  } else {
    throw new Error("wrong Datetime while bacapp encoding context");
  }
};
var decodeTagNumber = (buffer, offset) => {
  let len = 1;
  let tagNumber;
  if (isExtendedTagNumber(buffer[offset])) {
    tagNumber = buffer[offset + 1];
    len++;
  } else {
    tagNumber = buffer[offset] >> 4;
  }
  return {
    len,
    tagNumber
  };
};
var decodeIsContextTag = (buffer, offset, tagNumber) => {
  const result = decodeTagNumber(buffer, offset);
  return isContextSpecific(buffer[offset]) && result.tagNumber === tagNumber;
};
var decodeIsOpeningTagNumber = (buffer, offset, tagNumber) => {
  const result = decodeTagNumber(buffer, offset);
  return isOpeningTag(buffer[offset]) && result.tagNumber === tagNumber;
};
var decodeIsClosingTagNumber = (buffer, offset, tagNumber) => {
  const result = decodeTagNumber(buffer, offset);
  return isClosingTag(buffer[offset]) && result.tagNumber === tagNumber;
};
var decodeIsClosingTag = (buffer, offset) => {
  return (buffer[offset] & 7) === 7;
};
var decodeIsOpeningTag = (buffer, offset) => {
  return (buffer[offset] & 7) === 6;
};
var decodeObjectId = (buffer, offset, NOT_USED_NUMBER = 0) => {
  const result = decodeUnsigned(buffer, offset, 4);
  const objectType = result.value >> enums_default.ASN1_INSTANCE_BITS & enums_default.ASN1_MAX_OBJECT;
  const instance = result.value & enums_default.ASN1_MAX_INSTANCE;
  return {
    len: result.len,
    objectType,
    instance
  };
};
var decodeObjectIdSafe = (buffer, offset, lenValue) => {
  if (lenValue !== 4) {
    return {
      len: 0,
      objectType: 0,
      instance: 0
    };
  } else {
    return decodeObjectId(buffer, offset);
  }
};
var decodeTagNumberAndValue = (buffer, offset) => {
  let value;
  let result = decodeTagNumber(buffer, offset);
  let len = result.len;
  if (isExtendedValue(buffer[offset])) {
    if (buffer[offset + len] === 255) {
      len++;
      result = decodeUnsigned(buffer, offset + len, 4);
      len += result.len;
      value = result.value;
    } else if (buffer[offset + len] === 254) {
      len++;
      result = decodeUnsigned(buffer, offset + len, 2);
      len += result.len;
      value = result.value;
    } else {
      value = buffer[offset + len];
      len++;
    }
  } else if (isOpeningTag(buffer[offset])) {
    value = 0;
  } else if (isClosingTag(buffer[offset])) {
    value = 0;
  } else {
    value = buffer[offset] & 7;
  }
  return {
    len,
    tagNumber: result.tagNumber,
    value
  };
};
var bacappDecodeApplicationData = (buffer, offset, maxOffset, objectType, propertyId) => {
  if (!isContextSpecific(buffer[offset])) {
    let result = decodeTagNumberAndValue(buffer, offset);
    if (result) {
      let len = result.len;
      result = bacappDecodeData(
        buffer,
        offset + len,
        maxOffset,
        result.tagNumber,
        result.value
      );
      if (!result) {
        return void 0;
      }
      let resObj = {
        len: len + result.len,
        type: result.type,
        value: result.value
      };
      if (result.encoding !== void 0)
        resObj.encoding = result.encoding;
      return resObj;
    }
  } else {
    return bacappDecodeContextApplicationData(
      buffer,
      offset,
      maxOffset,
      objectType,
      propertyId
    );
  }
};
var encodeReadAccessResult = (buffer, value) => {
  encodeContextObjectId(
    buffer,
    0,
    value.objectId.type,
    value.objectId.instance
  );
  encodeOpeningTag(buffer, 1);
  value.values.forEach((item) => {
    encodeContextEnumerated(buffer, 2, item.property.id);
    if (item.property.index !== enums_default.ASN1_ARRAY_ALL) {
      encodeContextUnsigned(buffer, 3, item.property.index);
    }
    if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === "BacnetError") {
      encodeOpeningTag(buffer, 5);
      encodeApplicationEnumerated(buffer, item.value[0].value.errorClass);
      encodeApplicationEnumerated(buffer, item.value[0].value.errorCode);
      encodeClosingTag(buffer, 5);
    } else {
      if (!item.value)
        throw new Error("No value in item");
      encodeOpeningTag(buffer, 4);
      item.value.forEach((subItem) => {
        bacappEncodeApplicationData(buffer, subItem);
      });
      encodeClosingTag(buffer, 4);
    }
  });
  encodeClosingTag(buffer, 1);
};
var decodeReadAccessResult = (buffer, offset, apduLen) => {
  let len = 0;
  let value = {};
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  let result = decodeObjectId(buffer, offset + len);
  value.objectId = {
    type: result.objectType,
    instance: result.instance
  };
  len += result.len;
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 1)) {
    return -1;
  }
  len++;
  const values = [];
  while (apduLen - len > 0) {
    let newEntry = {};
    if (decodeIsClosingTagNumber(buffer, offset + len, 1)) {
      len++;
      break;
    }
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 2) {
      return void 0;
    }
    result = decodeEnumerated(buffer, offset + len, result.value);
    newEntry.id = result.value;
    len += result.len;
    result = decodeTagNumberAndValue(buffer, offset + len);
    if (result.tagNumber === 3) {
      len += result.len;
      result = decodeUnsigned(buffer, offset + len, result.value);
      newEntry.index = result.value;
      len += result.len;
    } else {
      newEntry.index = enums_default.ASN1_ARRAY_ALL;
    }
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber === 4) {
      const localValues = [];
      while (len + offset <= buffer.length && !decodeIsClosingTagNumber(buffer, offset + len, 4)) {
        let localResult = bacappDecodeApplicationData(
          buffer,
          offset + len,
          apduLen + offset - 1,
          value.objectId.type,
          newEntry.id
        );
        if (!localResult) {
          return void 0;
        }
        len += localResult.len;
        let resObj = {
          value: localResult.value,
          type: localResult.type
        };
        if (localResult.encoding !== void 0)
          resObj.encoding = localResult.encoding;
        localValues.push(resObj);
      }
      if (!decodeIsClosingTagNumber(buffer, offset + len, 4)) {
        return void 0;
      }
      if (localValues.count === 2 && localValues[0].type === enums_default.ApplicationTag.DATE && localValues[1].type === enums_default.ApplicationTag.TIME) {
        const date = localValues[0].value;
        const time = localValues[1].value;
        const bdatetime = new Date(
          date.year,
          date.month,
          date.day,
          time.hour,
          time.minute,
          time.second,
          time.millisecond
        );
        newEntry.value = [
          { type: enums_default.ApplicationTag.DATETIME, value: bdatetime }
        ];
      } else {
        newEntry.value = localValues;
      }
      len++;
    } else if (result.tagNumber === 5) {
      let err = {};
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
      result = decodeEnumerated(buffer, offset + len, result.value);
      len += result.len;
      err.errorClass = result.value;
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
      result = decodeEnumerated(buffer, offset + len, result.value);
      len += result.len;
      err.errorCode = result.value;
      if (!decodeIsClosingTagNumber(buffer, offset + len, 5)) {
        return void 0;
      }
      len++;
      newEntry.value = [
        {
          type: enums_default.ApplicationTag.ERROR,
          value: err
        }
      ];
    }
    values.push(newEntry);
  }
  value.values = values;
  return {
    len,
    value
  };
};
var decodeSigned = (buffer, offset, length) => {
  return {
    len: length,
    value: buffer.readIntBE(offset, length, true)
  };
};
var decodeReal = (buffer, offset) => {
  return {
    len: 4,
    value: buffer.readFloatBE(offset, true)
  };
};
var decodeRealSafe = (buffer, offset, lenValue) => {
  if (lenValue !== 4) {
    return {
      len: lenValue,
      value: 0
    };
  } else {
    return decodeReal(buffer, offset);
  }
};
var decodeDouble = (buffer, offset) => {
  return {
    len: 8,
    value: buffer.readDoubleBE(offset, true)
  };
};
var decodeDoubleSafe = (buffer, offset, lenValue) => {
  if (lenValue !== 8) {
    return {
      len: lenValue,
      value: 0
    };
  } else {
    return decodeDouble(buffer, offset);
  }
};
var decodeOctetString = (buffer, offset, maxLength, octetStringOffset, octetStringLength) => {
  const octetString = [];
  for (let i = octetStringOffset; i < octetStringOffset + octetStringLength; i++) {
    octetString.push(buffer[offset + i]);
  }
  return {
    len: octetStringLength,
    value: octetString
  };
};
var multiCharsetCharacterstringDecode = (buffer, offset, maxLength, encoding, length) => {
  const stringBuf = Buffer.alloc(length);
  buffer.copy(stringBuf, 0, offset, offset + length);
  return {
    value: import_iconv_lite.default.decode(stringBuf, getEncodingType(encoding, buffer, offset)),
    len: length + 1,
    encoding
  };
};
var decodeCharacterString = (buffer, offset, maxLength, lenValue) => {
  return multiCharsetCharacterstringDecode(
    buffer,
    offset + 1,
    maxLength,
    buffer[offset],
    lenValue - 1
  );
};
var bitstringSetBitsUsed = (bitString, bytesUsed, unusedBits) => {
  bitString.bitsUsed = bytesUsed * 8;
  bitString.bitsUsed -= unusedBits;
};
var decodeBitstring = (buffer, offset, lenValue) => {
  let len = 0;
  let bitString = {};
  bitString.value = [];
  if (lenValue > 0) {
    const bytesUsed = lenValue - 1;
    if (bytesUsed <= enums_default.ASN1_MAX_BITSTRING_BYTES) {
      len = 1;
      for (let i = 0; i < bytesUsed; i++) {
        bitString.value.push(byteReverseBits(buffer[offset + len++]));
      }
      const unusedBits = buffer[offset] & 7;
      bitstringSetBitsUsed(bitString, bytesUsed, unusedBits);
    }
  }
  return {
    len,
    value: bitString
  };
};
var decodeDate = (buffer, offset) => {
  let date;
  const year = buffer[offset] + 1900;
  const month = buffer[offset + 1];
  const day = buffer[offset + 2];
  const wday = buffer[offset + 3];
  if (month === 255 && day === 255 && wday === 255 && year - 1900 === 255) {
    date = new Date(1, 1, 1);
  } else {
    date = new Date(year, month, day);
  }
  return {
    len: 4,
    value: date
  };
};
var decodeDateSafe = (buffer, offset, lenValue) => {
  if (lenValue !== 4) {
    return {
      len: lenValue,
      value: new Date(1, 1, 1)
    };
  } else {
    return decodeDate(buffer, offset);
  }
};
var decodeApplicationDate = (buffer, offset) => {
  const result = decodeTagNumber(buffer, offset);
  if (result.tagNumber === enums_default.ApplicationTag.DATE) {
    const value = decodeDate(buffer, offset + 1);
    return {
      len: value.len + 1,
      value
    };
  }
  return void 0;
};
var decodeBacnetTime = (buffer, offset, value = new Date(1, 1, 1)) => {
  const hour = buffer[offset + 0];
  const min = buffer[offset + 1];
  const sec = buffer[offset + 2];
  let hundredths = buffer[offset + 3];
  if (hour === 255 && min === 255 && sec === 255 && hundredths === 255) {
    value = new Date(1, 1, 1);
  } else {
    if (hundredths > 100)
      hundredths = 0;
    value = new Date(1, 1, 1, hour, min, sec, hundredths * 10);
  }
  return {
    len: 4,
    value
  };
};
var decodeBacnetTimeSafe = (buffer, offset, lenValue) => {
  if (lenValue !== 4) {
    return {
      len: lenValue,
      value: new Date(1, 1, 1)
    };
  } else {
    return decodeBacnetTime(buffer, offset);
  }
};
var decodeApplicationTime = (buffer, offset) => {
  const result = decodeTagNumber(buffer, offset);
  if (result.tagNumber === enums_default.ApplicationTag.TIME) {
    const value = decodeBacnetTime(buffer, offset + 1);
    return {
      len: value.len + 1,
      value
    };
  }
  return void 0;
};
var decodeBacnetDatetime = (buffer, offset) => {
  let len = 0;
  const date = decodeApplicationDate(buffer, offset + len);
  len += date.len;
  const time = decodeApplicationTime(buffer, offset + len);
  len += time.len;
  return {
    len,
    value: new Date(
      date.year,
      date.month,
      date.day,
      time.hour,
      time.minute,
      time.second,
      time.millisecond
    )
  };
};
var bacappDecodeData = (buffer, offset, maxLength, tagDataType, lenValueType) => {
  let result;
  let value = {
    len: 0,
    type: tagDataType
  };
  switch (tagDataType) {
    case enums_default.ApplicationTag.NULL:
      value.value = null;
      break;
    case enums_default.ApplicationTag.BOOLEAN:
      value.value = lenValueType > 0;
      break;
    case enums_default.ApplicationTag.UNSIGNED_INTEGER:
      result = decodeUnsigned(buffer, offset, lenValueType);
      value.len += result.len;
      value.value = result.value;
      break;
    case enums_default.ApplicationTag.SIGNED_INTEGER:
      result = decodeSigned(buffer, offset, lenValueType);
      value.len += result.len;
      value.value = result.value;
      break;
    case enums_default.ApplicationTag.REAL:
      result = decodeRealSafe(buffer, offset, lenValueType);
      value.len += result.len;
      value.value = result.value;
      break;
    case enums_default.ApplicationTag.DOUBLE:
      result = decodeDoubleSafe(buffer, offset, lenValueType);
      value.len += result.len;
      value.value = result.value;
      break;
    case enums_default.ApplicationTag.OCTET_STRING:
      result = decodeOctetString(buffer, offset, maxLength, 0, lenValueType);
      value.len += result.len;
      value.value = result.value;
      break;
    case enums_default.ApplicationTag.CHARACTER_STRING:
      result = decodeCharacterString(buffer, offset, maxLength, lenValueType);
      value.len += result.len;
      value.value = result.value;
      value.encoding = result.encoding;
      break;
    case enums_default.ApplicationTag.BIT_STRING:
      result = decodeBitstring(buffer, offset, lenValueType);
      value.len += result.len;
      value.value = result.value;
      break;
    case enums_default.ApplicationTag.ENUMERATED:
      result = decodeEnumerated(buffer, offset, lenValueType);
      value.len += result.len;
      value.value = result.value;
      break;
    case enums_default.ApplicationTag.DATE:
      result = decodeDateSafe(buffer, offset, lenValueType);
      value.len += result.len;
      value.value = result.value;
      break;
    case enums_default.ApplicationTag.TIME:
      result = decodeBacnetTimeSafe(buffer, offset, lenValueType);
      value.len += result.len;
      value.value = result.value;
      break;
    case enums_default.ApplicationTag.OBJECTIDENTIFIER:
      result = decodeObjectIdSafe(buffer, offset, lenValueType);
      value.len += result.len;
      value.value = { type: result.objectType, instance: result.instance };
      break;
    default:
      break;
  }
  return value;
};
var bacappContextTagType = (property, tagNumber) => {
  let tag = 0;
  switch (property) {
    case enums_default.PropertyIdentifier.ACTUAL_SHED_LEVEL:
    case enums_default.PropertyIdentifier.REQUESTED_SHED_LEVEL:
    case enums_default.PropertyIdentifier.EXPECTED_SHED_LEVEL:
      switch (tagNumber) {
        case 0:
        case 1:
          tag = enums_default.ApplicationTag.UNSIGNED_INTEGER;
          break;
        case 2:
          tag = enums_default.ApplicationTag.REAL;
          break;
        default:
          break;
      }
      break;
    case enums_default.PropertyIdentifier.ACTION:
      switch (tagNumber) {
        case 0:
        case 1:
          tag = enums_default.ApplicationTag.OBJECTIDENTIFIER;
          break;
        case 2:
          tag = enums_default.ApplicationTag.ENUMERATED;
          break;
        case 3:
        case 5:
        case 6:
          tag = enums_default.ApplicationTag.UNSIGNED_INTEGER;
          break;
        case 7:
        case 8:
          tag = enums_default.ApplicationTag.BOOLEAN;
          break;
        default:
          break;
      }
      break;
    case enums_default.PropertyIdentifier.LIST_OF_GROUP_MEMBERS:
      switch (tagNumber) {
        case 0:
          tag = enums_default.ApplicationTag.OBJECTIDENTIFIER;
          break;
        default:
          break;
      }
      break;
    case enums_default.PropertyIdentifier.EXCEPTION_SCHEDULE:
      switch (tagNumber) {
        case 1:
          tag = enums_default.ApplicationTag.OBJECTIDENTIFIER;
          break;
        case 3:
          tag = enums_default.ApplicationTag.UNSIGNED_INTEGER;
          break;
        default:
          break;
      }
      break;
    case enums_default.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY:
      switch (tagNumber) {
        case 0:
        case 3:
          tag = enums_default.ApplicationTag.OBJECTIDENTIFIER;
          break;
        case 1:
          tag = enums_default.ApplicationTag.ENUMERATED;
          break;
        case 2:
          tag = enums_default.ApplicationTag.UNSIGNED_INTEGER;
          break;
        default:
          break;
      }
      break;
    case enums_default.PropertyIdentifier.SUBORDINATE_LIST:
      switch (tagNumber) {
        case 0:
        case 1:
          tag = enums_default.ApplicationTag.OBJECTIDENTIFIER;
          break;
        default:
          break;
      }
      break;
    case enums_default.PropertyIdentifier.RECIPIENT_LIST:
      switch (tagNumber) {
        case 0:
          tag = enums_default.ApplicationTag.OBJECTIDENTIFIER;
          break;
        default:
          break;
      }
      break;
    case enums_default.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS:
      switch (tagNumber) {
        case 0:
        case 1:
          break;
        case 2:
          tag = enums_default.ApplicationTag.BOOLEAN;
          break;
        case 3:
          tag = enums_default.ApplicationTag.UNSIGNED_INTEGER;
          break;
        case 4:
          tag = enums_default.ApplicationTag.REAL;
          break;
        default:
          break;
      }
      break;
    default:
      break;
  }
  return tag;
};
var decodeDeviceObjPropertyRef = (buffer, offset, NOTUSEDARG = 0) => {
  let len = 0;
  let arrayIndex = enums_default.ASN1_ARRAY_ALL;
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  let objectId = decodeObjectId(buffer, offset + len);
  len += objectId.len;
  let result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 1) {
    return void 0;
  }
  let id = decodeEnumerated(buffer, offset + len, result.value);
  len += id.len;
  result = decodeTagNumberAndValue(buffer, offset + len);
  if (result.tagNumber === 2) {
    len += result.len;
    arrayIndex = decodeUnsigned(buffer, offset + len, result.value);
    len += arrayIndex.len;
  }
  if (decodeIsContextTag(buffer, offset + len, 3)) {
    if (!isClosingTag(buffer[offset + len])) {
      len++;
      objectId = decodeObjectId(buffer, offset + len);
      len += objectId.len;
    }
  }
  return {
    len,
    value: {
      objectId,
      id
    }
  };
};
var decodeReadAccessSpecification = (buffer, offset, apduLen) => {
  let len = 0;
  let value = {};
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  let decodedValue = decodeObjectId(buffer, offset + len);
  value.objectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  len += decodedValue.len;
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 1)) {
    return void 0;
  }
  len++;
  const propertyIdAndArrayIndex = [];
  while (apduLen - len > 1 && !decodeIsClosingTagNumber(buffer, offset + len, 1)) {
    let propertyRef = {};
    if (!isContextSpecific(buffer[offset + len])) {
      return void 0;
    }
    let result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 0) {
      return void 0;
    }
    if (len + result.value >= apduLen) {
      return void 0;
    }
    decodedValue = decodeEnumerated(buffer, offset + len, result.value);
    propertyRef.id = decodedValue.value;
    len += decodedValue.len;
    propertyRef.index = enums_default.ASN1_ARRAY_ALL;
    if (isContextSpecific(buffer[offset + len]) && !isClosingTag(buffer[offset + len])) {
      const tmp = decodeTagNumberAndValue(buffer, offset + len);
      if (tmp.tagNumber === 1) {
        len += tmp.len;
        if (len + tmp.value >= apduLen) {
          return void 0;
        }
        decodedValue = decodeUnsigned(buffer, offset + len, tmp.value);
        propertyRef.index = decodedValue.value;
        len += decodedValue.len;
      }
    }
    propertyIdAndArrayIndex.push(propertyRef);
  }
  if (!decodeIsClosingTagNumber(buffer, offset + len, 1)) {
    return void 0;
  }
  len++;
  value.properties = propertyIdAndArrayIndex;
  return {
    len,
    value
  };
};
var decodeCovSubscription = (buffer, offset, apduLen) => {
  let len = 0;
  let value = {};
  let result;
  let decodedValue;
  value.recipient = {};
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 1)) {
    return void 0;
  }
  len++;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== enums_default.ApplicationTag.UNSIGNED_INTEGER) {
    return void 0;
  }
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.recipient.net = decodedValue.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== enums_default.ApplicationTag.OCTET_STRING) {
    return void 0;
  }
  decodedValue = decodeOctetString(
    buffer,
    offset + len,
    apduLen,
    0,
    result.value
  );
  len += decodedValue.len;
  value.recipient.adr = decodedValue.value;
  if (!decodeIsClosingTagNumber(buffer, offset + len, 1)) {
    return void 0;
  }
  len++;
  if (!decodeIsClosingTagNumber(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 1) {
    return void 0;
  }
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.subscriptionProcessId = decodedValue.value;
  if (!decodeIsClosingTagNumber(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 1)) {
    return void 0;
  }
  len++;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 0) {
    return void 0;
  }
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  value.monitoredObjectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 1) {
    return void 0;
  }
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.monitoredProperty = {};
  value.monitoredProperty.id = decodedValue.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  if (result.tagNumber === 2) {
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.monitoredProperty.index = decodedValue.value;
  } else {
    value.monitoredProperty.index = enums_default.ASN1_ARRAY_ALL;
  }
  if (!decodeIsClosingTagNumber(buffer, offset + len, 1)) {
    return void 0;
  }
  len++;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 2) {
    return void 0;
  }
  value.issueConfirmedNotifications = buffer[offset + len] > 0;
  len++;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 3) {
    return void 0;
  }
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.timeRemaining = decodedValue.value;
  if (len < apduLen && !isClosingTag(buffer[offset + len])) {
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 4) {
      return void 0;
    }
    decodedValue = decodeReal(buffer, offset + len);
    len += decodedValue.len;
    value.covIncrement = decodedValue.value;
  }
  return {
    len,
    value
  };
};
var decodeCalendarDate = (buffer, offset) => {
  return {
    len: 4,
    year: buffer[offset],
    month: buffer[offset + 1],
    day: buffer[offset + 2],
    wday: buffer[offset + 3]
  };
};
var decodeCalendarDateRange = (buffer, offset) => {
  let len = 1;
  const startDate = decodeDate(buffer, offset + len);
  len += startDate.len + 1;
  const endDate = decodeDate(buffer, offset + len);
  len += endDate.len + 1;
  return {
    len,
    startDate,
    endDate
  };
};
var decodeCalendarWeekDay = (buffer, offset) => {
  return {
    len: 3,
    month: buffer[offset],
    week: buffer[offset + 1],
    wday: buffer[offset + 2]
  };
};
var decodeCalendar = (buffer, offset, apduLen) => {
  let len = 0;
  const entries = [];
  let decodedValue;
  while (len < apduLen) {
    const result = decodeTagNumber(buffer, offset + len);
    len += result.len;
    switch (result.tagNumber) {
      case 0:
        decodedValue = decodeCalendarDate(buffer, offset + len);
        len += decodedValue.len;
        entries.push(decodedValue);
        break;
      case 1:
        decodedValue = decodeCalendarDateRange(buffer, offset + len);
        len += decodedValue.len;
        entries.push(decodedValue);
        break;
      case 2:
        decodedValue = decodeCalendarWeekDay(buffer, offset + len);
        len += decodedValue.len;
        entries.push(decodedValue);
        break;
      default:
        return {
          len: len - 1,
          value: entries
        };
    }
  }
};
var bacappDecodeContextApplicationData = (buffer, offset, maxOffset, objectType, propertyId) => {
  let len = 0;
  let result;
  if (isContextSpecific(buffer[offset])) {
    if (propertyId === enums_default.PropertyIdentifier.LIST_OF_GROUP_MEMBERS) {
      result = decodeReadAccessSpecification(buffer, offset, maxOffset);
      if (!result) {
        return void 0;
      }
      return {
        type: enums_default.ApplicationTag.READ_ACCESS_SPECIFICATION,
        value: result.value,
        len: result.len
      };
    } else if (propertyId === enums_default.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS) {
      result = decodeCovSubscription(buffer, offset, maxOffset);
      if (!result) {
        return void 0;
      }
      return {
        type: enums_default.ApplicationTag.COV_SUBSCRIPTION,
        value: result.value,
        len: result.len
      };
    } else if (objectType === enums_default.ObjectType.GROUP && propertyId === enums_default.PropertyIdentifier.PRESENT_VALUE) {
      result = decodeReadAccessResult(buffer, offset, maxOffset);
      if (!result) {
        return void 0;
      }
      return {
        type: enums_default.ApplicationTag.READ_ACCESS_RESULT,
        value: result.value,
        len: result.len
      };
    } else if (propertyId === enums_default.PropertyIdentifier.LIST_OF_OBJECT_PROPERTY_REFERENCES || propertyId === enums_default.PropertyIdentifier.LOG_DEVICE_OBJECT_PROPERTY || propertyId === enums_default.PropertyIdentifier.OBJECT_PROPERTY_REFERENCE) {
      result = decodeDeviceObjPropertyRef(buffer, offset, maxOffset);
      if (!result) {
        return void 0;
      }
      return {
        type: enums_default.ApplicationTag.OBJECT_PROPERTY_REFERENCE,
        value: result.value,
        len: result.len
      };
    } else if (propertyId === enums_default.PropertyIdentifier.DATE_LIST) {
      result = decodeCalendar(buffer, offset, maxOffset);
      if (!result) {
        return void 0;
      }
      return {
        type: enums_default.ApplicationTag.CONTEXT_SPECIFIC_DECODED,
        value: result.value,
        len: result.len
      };
    } else if (propertyId === enums_default.PropertyIdentifier.EVENT_TIME_STAMPS) {
      let subEvtResult;
      let evtResult = decodeTagNumberAndValue(buffer, offset + len);
      len += 1;
      if (evtResult.tagNumber === 0) {
        subEvtResult = decodeBacnetTime(buffer, offset + 1);
        return {
          type: enums_default.ApplicationTag.TIMESTAMP,
          value: subEvtResult.value,
          len: subEvtResult.len + 1
        };
      } else if (evtResult.tagNumber === 1) {
        subEvtResult = decodeUnsigned(buffer, offset + len, evtResult.value);
        return {
          type: enums_default.ApplicationTag.UNSIGNED_INTEGER,
          value: subEvtResult.value,
          len: subEvtResult.len + 1
        };
      } else if (evtResult.tagNumber === 2) {
        subEvtResult = decodeBacnetDatetime(buffer, offset + len);
        return {
          type: enums_default.ApplicationTag.TIMESTAMP,
          value: subEvtResult.value,
          len: subEvtResult.len + 2
        };
      } else {
        return void 0;
      }
    }
    const list = [];
    let tagResult = decodeTagNumberAndValue(buffer, offset + len);
    let multipleValues = isOpeningTag(buffer[offset + len]);
    while (len + offset <= maxOffset && !isClosingTag(buffer[offset + len])) {
      let subResult = decodeTagNumberAndValue(buffer, offset + len);
      if (!subResult) {
        return void 0;
      }
      if (subResult.value === 0) {
        len += subResult.len;
        result = bacappDecodeApplicationData(
          buffer,
          offset + len,
          maxOffset,
          enums_default.ASN1_MAX_OBJECT_TYPE,
          enums_default.ASN1_MAX_PROPERTY_ID
        );
        if (!result) {
          return void 0;
        }
        list.push(result);
        len += result.len;
      } else {
        const overrideTagNumber = bacappContextTagType(
          propertyId,
          subResult.tagNumber
        );
        if (overrideTagNumber !== enums_default.ASN1_MAX_APPLICATION_TAG) {
          subResult.tagNumber = overrideTagNumber;
        }
        let bacappResult = bacappDecodeData(
          buffer,
          offset + len + subResult.len,
          maxOffset,
          subResult.tagNumber,
          subResult.value
        );
        if (!bacappResult) {
          return void 0;
        }
        if (bacappResult.len === subResult.value) {
          let resObj = {
            value: bacappResult.value,
            type: bacappResult.type
          };
          if (bacappResult.encoding !== void 0)
            resObj.encoding = bacappResult.encoding;
          list.push(resObj);
          len += subResult.len + subResult.value;
        } else {
          list.push({
            value: buffer.slice(
              offset + len + subResult.len,
              offset + len + subResult.len + subResult.value
            ),
            type: enums_default.ApplicationTag.CONTEXT_SPECIFIC_ENCODED
          });
          len += subResult.len + subResult.value;
        }
      }
      if (multipleValues === false) {
        return {
          len,
          value: list[0],
          type: enums_default.ApplicationTag.CONTEXT_SPECIFIC_DECODED
        };
      }
    }
    if (len + offset > maxOffset) {
      return void 0;
    }
    if (decodeIsClosingTagNumber(buffer, offset + len, tagResult.tagNumber)) {
      len++;
    }
    return {
      len,
      value: list,
      type: enums_default.ApplicationTag.CONTEXT_SPECIFIC_DECODED
    };
  }
  return void 0;
};
var bacappEncodeTimestamp = (buffer, value) => {
  switch (value.type) {
    case enums_default.TimeStamp.TIME:
      encodeContextTime(buffer, 0, value.value);
      break;
    case enums_default.TimeStamp.SEQUENCE_NUMBER:
      encodeContextUnsigned(buffer, 1, value.value);
      break;
    case enums_default.TimeStamp.DATETIME:
      bacappEncodeContextDatetime(buffer, 2, value.value);
      break;
    default:
      throw new Error("NOT_IMPLEMENTED");
  }
};
var bacappEncodeContextTimestamp = (buffer, tagNumber, value) => {
  encodeOpeningTag(buffer, tagNumber);
  bacappEncodeTimestamp(buffer, value);
  encodeClosingTag(buffer, tagNumber);
};
var decodeContextCharacterString = (buffer, offset, maxLength, tagNumber) => {
  let len = 0;
  if (!decodeIsContextTag(buffer, offset + len, tagNumber)) {
    return void 0;
  }
  const result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  const decodedValue = multiCharsetCharacterstringDecode(
    buffer,
    offset + 1 + len,
    maxLength,
    buffer[offset + len],
    result.value - 1
  );
  if (!decodedValue) {
    return void 0;
  }
  len += result.value;
  return {
    len,
    value: decodedValue.value,
    encoding: decodedValue.encoding
  };
};
var decodeIsContextTagWithLength = (buffer, offset, tagNumber) => {
  const result = decodeTagNumber(buffer, offset);
  return {
    len: result.len,
    value: isContextSpecific(buffer[offset]) && result.tagNumber === tagNumber
  };
};
var decodeContextObjectId = (buffer, offset, tagNumber) => {
  const result = decodeIsContextTagWithLength(buffer, offset, tagNumber);
  if (!result.value) {
    return void 0;
  }
  const decodedValue = decodeObjectId(buffer, offset + result.len);
  decodedValue.len = decodedValue.len + result.len;
  return decodedValue;
};
var encodeBacnetCharacterString = (buffer, value, encoding) => {
  encoding = encoding || enums_default.CharacterStringEncoding.UTF_8;
  buffer.buffer[buffer.offset++] = encoding;
  const bufEncoded = import_iconv_lite.default.encode(value, getEncodingType(encoding));
  buffer.offset += bufEncoded.copy(buffer.buffer, buffer.offset);
};
var encodeApplicationCharacterString = (buffer, value, encoding) => {
  const tmp = getBuffer();
  encodeBacnetCharacterString(tmp, value, encoding);
  encodeTag(buffer, enums_default.ApplicationTag.CHARACTER_STRING, false, tmp.offset);
  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
  buffer.offset += tmp.offset;
};
var encodeContextCharacterString = (buffer, tagNumber, value, encoding) => {
  const tmp = getBuffer();
  encodeBacnetCharacterString(tmp, value, encoding);
  encodeTag(buffer, tagNumber, true, tmp.offset);
  tmp.buffer.copy(buffer.buffer, buffer.offset, 0, tmp.offset);
  buffer.offset += tmp.offset;
};

// src/services/add-list-element.ts
var encode = (buffer, objectId, propertyId, arrayIndex, values) => {
  encodeContextObjectId(buffer, 0, objectId.type, objectId.instance);
  encodeContextEnumerated(buffer, 1, propertyId);
  if (arrayIndex !== ASN1_ARRAY_ALL) {
    encodeContextUnsigned(buffer, 2, arrayIndex);
  }
  encodeOpeningTag(buffer, 3);
  values.forEach((value) => {
    bacappEncodeApplicationData(buffer, value);
  });
  encodeClosingTag(buffer, 3);
};
var decode = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  let value = {};
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  value.objectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.property = { id: decodedValue.value };
  if (len < apduLen && decodeIsContextTag(buffer, offset + len, 2)) {
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.property.index = decodedValue.value;
  } else {
    value.property.index = ASN1_ARRAY_ALL;
  }
  const values = [];
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 3)) {
    return void 0;
  }
  len++;
  while (apduLen - len > 1) {
    result = bacappDecodeApplicationData(
      buffer,
      offset + len,
      apduLen + offset,
      value.objectId.type,
      value.property.id
    );
    if (!result) {
      return void 0;
    }
    len += result.len;
    delete result.len;
    values.push(result);
  }
  value.values = values;
  if (!decodeIsClosingTagNumber(buffer, offset + len, 3)) {
    return void 0;
  }
  len++;
  value.len = len;
  return value;
};

// src/services/alarm-acknowledge.ts
var alarm_acknowledge_exports = {};
__export(alarm_acknowledge_exports, {
  decode: () => decode2,
  encode: () => encode2
});
var encode2 = (buffer, ackProcessId, eventObjectId, eventStateAcknowledged, ackSource, eventTimeStamp, ackTimeStamp) => {
  encodeContextUnsigned(buffer, 0, ackProcessId);
  encodeContextObjectId(
    buffer,
    1,
    eventObjectId.type,
    eventObjectId.instance
  );
  encodeContextEnumerated(buffer, 2, eventStateAcknowledged);
  bacappEncodeContextTimestamp(buffer, 3, eventTimeStamp);
  encodeContextCharacterString(buffer, 4, ackSource);
  bacappEncodeContextTimestamp(buffer, 5, ackTimeStamp);
};
var decode2 = (buffer, offset, apduLen) => {
  let len = 0;
  let value = {};
  let result;
  let decodedValue;
  let date;
  let time;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.acknowledgedProcessId = decodedValue.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  value.eventObjectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.eventStateAcknowledged = decodedValue.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber === 0 /* TIME */) {
    decodedValue = decodeBacnetTime(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.eventTimeStamp = decodedValue.value;
  } else if (result.tagNumber === 1 /* SEQUENCE_NUMBER */) {
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.eventTimeStamp = decodedValue.value;
  } else if (result.tagNumber === 2 /* DATETIME */) {
    date = decodeApplicationDate(buffer, offset + len);
    len += date.len;
    date = date.value.value;
    time = decodeApplicationTime(buffer, offset + len);
    len += time.len;
    time = time.value.value;
    value.eventTimeStamp = new Date(
      date.getFullYear(),
      date.getMonth(),
      date.getDate(),
      time.getHours(),
      time.getMinutes(),
      time.getSeconds(),
      time.getMilliseconds()
    );
    len++;
  }
  len++;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeCharacterString(
    buffer,
    offset + len,
    apduLen - (offset + len),
    result.value
  );
  value.acknowledgeSource = decodedValue.value;
  len += decodedValue.len;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber === 0 /* TIME */) {
    decodedValue = decodeBacnetTime(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.acknowledgeTimeStamp = decodedValue.value;
  } else if (result.tagNumber === 1 /* SEQUENCE_NUMBER */) {
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.acknowledgeTimeStamp = decodedValue.value;
  } else if (result.tagNumber === 2 /* DATETIME */) {
    date = decodeApplicationDate(buffer, offset + len);
    len += date.len;
    date = date.value.value;
    time = decodeApplicationTime(buffer, offset + len);
    len += time.len;
    time = time.value.value;
    value.acknowledgeTimeStamp = new Date(
      date.getFullYear(),
      date.getMonth(),
      date.getDate(),
      time.getHours(),
      time.getMinutes(),
      time.getSeconds(),
      time.getMilliseconds()
    );
    len++;
  }
  len++;
  value.len = len;
  return value;
};

// src/services/alarm-summary.ts
var alarm_summary_exports = {};
__export(alarm_summary_exports, {
  decode: () => decode3,
  encode: () => encode3
});
var encode3 = (buffer, alarms) => {
  alarms.forEach((alarm) => {
    encodeContextObjectId(
      buffer,
      12,
      alarm.objectId.type,
      alarm.objectId.instance
    );
    encodeContextEnumerated(buffer, 9, alarm.alarmState);
    encodeContextBitstring(buffer, 8, alarm.acknowledgedTransitions);
  });
};
var decode3 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  const alarms = [];
  while (apduLen - 3 - len > 0) {
    let value = {};
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeObjectId(buffer, offset + len);
    len += decodedValue.len;
    value.objectId = {
      type: decodedValue.objectType,
      instance: decodedValue.instance
    };
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeEnumerated(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.alarmState = decodedValue.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeBitstring(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.acknowledgedTransitions = decodedValue.value;
    alarms.push(value);
  }
  return {
    len,
    alarms
  };
};

// src/services/atomic-read-file.ts
var atomic_read_file_exports = {};
__export(atomic_read_file_exports, {
  decode: () => decode4,
  decodeAcknowledge: () => decodeAcknowledge,
  encode: () => encode4,
  encodeAcknowledge: () => encodeAcknowledge
});
var encode4 = (buffer, isStream, objectId, position, count) => {
  encodeApplicationObjectId(buffer, objectId.type, objectId.instance);
  if (isStream) {
    encodeOpeningTag(buffer, 0);
    encodeApplicationSigned(buffer, position);
    encodeApplicationUnsigned(buffer, count);
    encodeClosingTag(buffer, 0);
  } else {
    encodeOpeningTag(buffer, 1);
    encodeApplicationSigned(buffer, position);
    encodeApplicationUnsigned(buffer, count);
    encodeClosingTag(buffer, 1);
  }
};
var decode4 = (buffer, offset) => {
  let len = 0;
  let result;
  let decodedValue;
  let isStream = true;
  let objectId = {};
  let position = -1;
  let count = 0;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 12 /* OBJECTIDENTIFIER */) {
    return void 0;
  }
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  objectId = { type: decodedValue.objectType, instance: decodedValue.instance };
  if (decodeIsOpeningTagNumber(buffer, offset + len, 0)) {
    isStream = true;
    len++;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 3 /* SIGNED_INTEGER */) {
      return void 0;
    }
    decodedValue = decodeSigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    position = decodedValue.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 2 /* UNSIGNED_INTEGER */) {
      return void 0;
    }
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    count = decodedValue.value;
    if (!decodeIsClosingTagNumber(buffer, offset + len, 0)) {
      return void 0;
    }
    len++;
  } else if (decodeIsOpeningTagNumber(buffer, offset + len, 1)) {
    isStream = false;
    len++;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 3 /* SIGNED_INTEGER */) {
      return void 0;
    }
    decodedValue = decodeSigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    position = decodedValue.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 2 /* UNSIGNED_INTEGER */) {
      return void 0;
    }
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    count = decodedValue.value;
    if (!decodeIsClosingTagNumber(buffer, offset + len, 1)) {
      return void 0;
    }
    len++;
  } else {
    return void 0;
  }
  return {
    len,
    isStream,
    objectId,
    position,
    count
  };
};
var encodeAcknowledge = (buffer, isStream, endOfFile, position, blockCount, blocks, counts) => {
  encodeApplicationBoolean(buffer, endOfFile);
  if (isStream) {
    encodeOpeningTag(buffer, 0);
    encodeApplicationSigned(buffer, position);
    encodeApplicationOctetString(buffer, blocks[0], 0, counts[0]);
    encodeClosingTag(buffer, 0);
  } else {
    encodeOpeningTag(buffer, 1);
    encodeApplicationSigned(buffer, position);
    encodeApplicationUnsigned(buffer, blockCount);
    for (let i = 0; i < blockCount; i++) {
      encodeApplicationOctetString(buffer, blocks[i], 0, counts[i]);
    }
    encodeClosingTag(buffer, 1);
  }
};
var decodeAcknowledge = (buffer, offset, length = 0) => {
  let len = length;
  let result;
  let decodedValue;
  let endOfFile;
  let isStream;
  let position;
  let targetBuffer;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 1 /* BOOLEAN */) {
    return void 0;
  }
  endOfFile = result.value > 0;
  if (decodeIsOpeningTagNumber(buffer, offset + len, 0)) {
    isStream = true;
    len++;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 3 /* SIGNED_INTEGER */) {
      return void 0;
    }
    decodedValue = decodeSigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    position = decodedValue.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 6 /* OCTET_STRING */) {
      return void 0;
    }
    targetBuffer = buffer.slice(offset + len, offset + len + result.value);
    len += result.value;
    if (!decodeIsClosingTagNumber(buffer, offset + len, 0)) {
      return void 0;
    }
    len++;
  } else if (decodeIsOpeningTagNumber(buffer, offset + len, 1)) {
    isStream = false;
    throw new Error("NotImplemented");
  } else {
    return void 0;
  }
  return {
    len,
    endOfFile,
    isStream,
    position,
    buffer: targetBuffer
  };
};

// src/services/atomic-write-file.ts
var atomic_write_file_exports = {};
__export(atomic_write_file_exports, {
  decode: () => decode5,
  decodeAcknowledge: () => decodeAcknowledge2,
  encode: () => encode5,
  encodeAcknowledge: () => encodeAcknowledge2
});
var encode5 = (buffer, isStream, objectId, position, blocks) => {
  encodeApplicationObjectId(buffer, objectId.type, objectId.instance);
  if (isStream) {
    encodeOpeningTag(buffer, 0);
    encodeApplicationSigned(buffer, position);
    encodeApplicationOctetString(buffer, blocks[0], 0, blocks[0].length);
    encodeClosingTag(buffer, 0);
  } else {
    encodeOpeningTag(buffer, 1);
    encodeApplicationSigned(buffer, position);
    encodeApplicationUnsigned(buffer, blocks.length);
    for (let i = 0; i < blocks.length; i++) {
      encodeApplicationOctetString(
        buffer,
        blocks[i],
        0,
        blocks[i].length
      );
    }
    encodeClosingTag(buffer, 1);
  }
};
var decode5 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  let isStream;
  let position;
  let blocks = [];
  let blockCount;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 12 /* OBJECTIDENTIFIER */) {
    return void 0;
  }
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  let objectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  if (decodeIsOpeningTagNumber(buffer, offset + len, 0)) {
    isStream = true;
    len++;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 3 /* SIGNED_INTEGER */) {
      return void 0;
    }
    decodedValue = decodeSigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    position = decodedValue.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 6 /* OCTET_STRING */) {
      return void 0;
    }
    decodedValue = decodeOctetString(
      buffer,
      offset + len,
      apduLen,
      0,
      result.value
    );
    len += decodedValue.len;
    blocks.push(decodedValue.value);
    if (!decodeIsClosingTagNumber(buffer, offset + len, 0)) {
      return void 0;
    }
    len++;
  } else if (decodeIsOpeningTagNumber(buffer, offset + len, 1)) {
    isStream = false;
    len++;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 3 /* SIGNED_INTEGER */) {
      return void 0;
    }
    decodedValue = decodeSigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    position = decodedValue.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 2 /* UNSIGNED_INTEGER */) {
      return void 0;
    }
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    blockCount = decodedValue.value;
    for (let i = 0; i < blockCount; i++) {
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
      if (result.tagNumber !== 6 /* OCTET_STRING */) {
        return void 0;
      }
      decodedValue = decodeOctetString(
        buffer,
        offset + len,
        apduLen,
        0,
        result.value
      );
      len += decodedValue.len;
      blocks.push(decodedValue.value);
    }
    if (!decodeIsClosingTagNumber(buffer, offset + len, 1)) {
      return void 0;
    }
    len++;
  } else {
    return void 0;
  }
  return {
    len,
    isStream,
    objectId,
    position,
    blocks
  };
};
var encodeAcknowledge2 = (buffer, isStream, position) => {
  if (isStream) {
    encodeContextSigned(buffer, 0, position);
  } else {
    encodeContextSigned(buffer, 1, position);
  }
};
var decodeAcknowledge2 = (buffer, offset, length = 0) => {
  let len = length;
  let isStream = false;
  let position = 0;
  let decodedValue;
  const result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber === 0) {
    isStream = true;
  } else if (result.tagNumber === 1) {
    isStream = false;
  } else {
    return void 0;
  }
  decodedValue = decodeSigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  position = decodedValue.value;
  return {
    len,
    isStream,
    position
  };
};

// src/services/cov-notify.ts
var cov_notify_exports = {};
__export(cov_notify_exports, {
  decode: () => decode6,
  encode: () => encode6
});
var encode6 = (buffer, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) => {
  encodeContextUnsigned(buffer, 0, subscriberProcessId);
  encodeContextObjectId(
    buffer,
    1,
    8 /* DEVICE */,
    initiatingDeviceId
  );
  encodeContextObjectId(
    buffer,
    2,
    monitoredObjectId.type,
    monitoredObjectId.instance
  );
  encodeContextUnsigned(buffer, 3, timeRemaining);
  encodeOpeningTag(buffer, 4);
  values.forEach((value) => {
    encodeContextEnumerated(buffer, 0, value.property.id);
    if (value.property.index === ASN1_ARRAY_ALL) {
      encodeContextUnsigned(buffer, 1, value.property.index);
    }
    encodeOpeningTag(buffer, 2);
    value.value.forEach((v) => {
      bacappEncodeApplicationData(buffer, v);
    });
    encodeClosingTag(buffer, 2);
    if (value.priority === ASN1_NO_PRIORITY) {
      encodeContextUnsigned(buffer, 3, value.priority);
    }
  });
  encodeClosingTag(buffer, 4);
};
var decode6 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  const subscriberProcessId = decodedValue.value;
  if (!decodeIsContextTag(buffer, offset + len, 1)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  const initiatingDeviceId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  if (!decodeIsContextTag(buffer, offset + len, 2)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  const monitoredObjectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  if (!decodeIsContextTag(buffer, offset + len, 3)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  const timeRemaining = decodedValue.value;
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 4)) {
    return void 0;
  }
  len++;
  const values = [];
  while (apduLen - len > 1 && !decodeIsClosingTagNumber(buffer, offset + len, 4)) {
    let newEntry = {};
    newEntry.property = {};
    if (!decodeIsContextTag(buffer, offset + len, 0)) {
      return void 0;
    }
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeEnumerated(buffer, offset + len, result.value);
    len += decodedValue.len;
    newEntry.property.id = decodedValue.value;
    if (decodeIsContextTag(buffer, offset + len, 1)) {
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned(buffer, offset + len, result.value);
      len += decodedValue.len;
      newEntry.property.index = decodedValue.value;
    } else {
      newEntry.property.index = ASN1_ARRAY_ALL;
    }
    if (!decodeIsOpeningTagNumber(buffer, offset + len, 2)) {
      return void 0;
    }
    len++;
    const properties = [];
    while (apduLen - len > 1 && !decodeIsClosingTagNumber(buffer, offset + len, 2)) {
      decodedValue = bacappDecodeApplicationData(
        buffer,
        offset + len,
        apduLen + offset,
        monitoredObjectId.type,
        newEntry.property.id
      );
      if (!decodedValue) {
        return void 0;
      }
      len += decodedValue.len;
      delete decodedValue.len;
      properties.push(decodedValue);
    }
    newEntry.value = properties;
    len++;
    if (decodeIsContextTag(buffer, offset + len, 3)) {
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned(buffer, offset + len, result.value);
      len += decodedValue.len;
      newEntry.priority = decodedValue.value;
    } else {
      newEntry.priority = ASN1_NO_PRIORITY;
    }
    values.push(newEntry);
  }
  return {
    len,
    subscriberProcessId,
    initiatingDeviceId,
    monitoredObjectId,
    timeRemaining,
    values
  };
};

// src/services/create-object.ts
var create_object_exports = {};
__export(create_object_exports, {
  decode: () => decode7,
  encode: () => encode7,
  encodeAcknowledge: () => encodeAcknowledge3
});
var encode7 = (buffer, objectId, values) => {
  encodeOpeningTag(buffer, 0);
  encodeContextObjectId(buffer, 1, objectId.type, objectId.instance);
  encodeClosingTag(buffer, 0);
  encodeOpeningTag(buffer, 1);
  values.forEach((propertyValue) => {
    encodeContextEnumerated(buffer, 0, propertyValue.property.id);
    if (propertyValue.property.index !== ASN1_ARRAY_ALL) {
      encodeContextUnsigned(buffer, 1, propertyValue.property.index);
    }
    encodeOpeningTag(buffer, 2);
    propertyValue.value.forEach((value) => {
      bacappEncodeApplicationData(buffer, value);
    });
    encodeClosingTag(buffer, 2);
    if (propertyValue.priority !== ASN1_NO_PRIORITY) {
      encodeContextUnsigned(buffer, 3, propertyValue.priority);
    }
  });
  encodeClosingTag(buffer, 1);
};
var decode7 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  let objectId;
  const valueList = [];
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber === 0 && apduLen > len) {
    apduLen -= len;
    if (apduLen < 4) {
      return void 0;
    }
    decodedValue = decodeContextObjectId(buffer, offset + len, 1);
    len += decodedValue.len;
    objectId = {
      type: decodedValue.objectType,
      instance: decodedValue.instance
    };
  } else {
    return void 0;
  }
  if (decodeIsClosingTag(buffer, offset + len)) {
    len++;
  }
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 1)) {
    return void 0;
  }
  len++;
  while (apduLen - len > 1) {
    let newEntry = {};
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 0) {
      return void 0;
    }
    decodedValue = decodeEnumerated(buffer, offset + len, result.value);
    len += decodedValue.len;
    let propertyId = decodedValue.value;
    let arraIndex = ASN1_ARRAY_ALL;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber === 1) {
      decodedValue = decodeUnsigned(buffer, offset + len, result.value);
      len += decodedValue.len;
      arraIndex += decodedValue.value;
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
    }
    newEntry.property = { id: propertyId, index: arraIndex };
    if (result.tagNumber === 2 && decodeIsOpeningTag(buffer, offset + len - 1)) {
      const values = [];
      while (!decodeIsClosingTag(buffer, offset + len)) {
        decodedValue = bacappDecodeApplicationData(
          buffer,
          offset + len,
          apduLen + offset,
          objectId.type,
          propertyId
        );
        if (!decodedValue) {
          return void 0;
        }
        len += decodedValue.len;
        delete decodedValue.len;
        values.push(decodedValue);
      }
      len++;
      newEntry.value = values;
    } else {
      return void 0;
    }
    valueList.push(newEntry);
  }
  if (!decodeIsClosingTagNumber(buffer, offset + len, 1)) {
    return void 0;
  }
  len++;
  return {
    len,
    objectId,
    values: valueList
  };
};
var encodeAcknowledge3 = (buffer, objectId) => {
  encodeApplicationObjectId(buffer, objectId.type, objectId.instance);
};

// src/services/delete-object.ts
var delete_object_exports = {};
__export(delete_object_exports, {
  decode: () => decode8,
  encode: () => encode8
});
var decode8 = (buffer, offset, apduLen) => {
  const result = decodeTagNumberAndValue(buffer, offset);
  if (result.tagNumber !== 12) {
    return void 0;
  }
  let len = 1;
  const value = decodeObjectId(buffer, offset + len);
  len += value.len;
  if (len !== apduLen) {
    return void 0;
  }
  value.len = len;
  return value;
};
var encode8 = (buffer, objectId) => {
  encodeApplicationObjectId(buffer, objectId.type, objectId.instance);
};

// src/services/device-communication-control.ts
var device_communication_control_exports = {};
__export(device_communication_control_exports, {
  decode: () => decode9,
  encode: () => encode9
});
var encode9 = (buffer, timeDuration, enableDisable, password) => {
  if (timeDuration > 0) {
    encodeContextUnsigned(buffer, 0, timeDuration);
  }
  encodeContextEnumerated(buffer, 1, enableDisable);
  if (password && password !== "") {
    encodeContextCharacterString(buffer, 2, password);
  }
};
var decode9 = (buffer, offset, apduLen) => {
  let len = 0;
  let value = {};
  let decodedValue;
  let result;
  if (decodeIsContextTag(buffer, offset + len, 0)) {
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    value.timeDuration = decodedValue.value;
    len += decodedValue.len;
  }
  if (!decodeIsContextTag(buffer, offset + len, 1)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  value.enableDisable = decodedValue.value;
  len += decodedValue.len;
  if (len < apduLen) {
    if (!decodeIsContextTag(buffer, offset + len, 2)) {
      return void 0;
    }
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeCharacterString(
      buffer,
      offset + len,
      apduLen - (offset + len),
      result.value
    );
    value.password = decodedValue.value;
    len += decodedValue.len;
  }
  value.len = len;
  return value;
};

// src/services/error.ts
var error_exports = {};
__export(error_exports, {
  buildMessage: () => buildMessage,
  decode: () => decode10,
  encode: () => encode10
});
var encode10 = (buffer, errorClass, errorCode) => {
  encodeApplicationEnumerated(buffer, errorClass);
  encodeApplicationEnumerated(buffer, errorCode);
};
var decode10 = (buffer, offset) => {
  const orgOffset = offset;
  let result;
  result = decodeTagNumberAndValue(buffer, offset);
  offset += result.len;
  const errorClass = decodeEnumerated(buffer, offset, result.value);
  offset += errorClass.len;
  result = decodeTagNumberAndValue(buffer, offset);
  offset += result.len;
  const errorCode = decodeEnumerated(buffer, offset, result.value);
  offset += errorClass.len;
  return {
    len: offset - orgOffset,
    class: errorClass.value,
    code: errorCode.value
  };
};
var buildMessage = function(result) {
  return "BacnetError Class: " + ErrorClassName[result.class] + " (" + result.class + ") Code: " + ErrorCodeName[result.code] + " (" + result.code + ")";
};

// src/services/event-information.ts
var event_information_exports = {};
__export(event_information_exports, {
  decode: () => decode11,
  encode: () => encode11
});
var encode11 = (buffer, events, moreEvents) => {
  encodeOpeningTag(buffer, 0);
  events.forEach((event) => {
    encodeContextObjectId(
      buffer,
      0,
      event.objectId.type,
      event.objectId.instance
    );
    encodeContextEnumerated(buffer, 1, event.eventState);
    encodeContextBitstring(buffer, 2, event.acknowledgedTransitions);
    encodeOpeningTag(buffer, 3);
    for (let i = 0; i < 3; i++) {
      encodeApplicationDate(buffer, event.eventTimeStamps[i]);
      encodeApplicationTime(buffer, event.eventTimeStamps[i]);
    }
    encodeClosingTag(buffer, 3);
    encodeContextEnumerated(buffer, 4, event.notifyType);
    encodeContextBitstring(buffer, 5, event.eventEnable);
    encodeOpeningTag(buffer, 6);
    for (let i = 0; i < 3; i++) {
      encodeApplicationUnsigned(buffer, event.eventPriorities[i]);
    }
    encodeClosingTag(buffer, 6);
  });
  encodeClosingTag(buffer, 0);
  encodeContextBoolean(buffer, 1, moreEvents);
};
var decode11 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  len++;
  const alarms = [];
  let moreEvents;
  while (apduLen - 3 - len > 0) {
    let value = {};
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeObjectId(buffer, offset + len);
    len += decodedValue.len;
    value.objectId = {
      type: decodedValue.objectType,
      instance: decodedValue.instance
    };
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeEnumerated(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.eventState = decodedValue.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeBitstring(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.acknowledgedTransitions = decodedValue.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    value.eventTimeStamps = [];
    for (let i = 0; i < 3; i++) {
      if (result.tagNumber !== 0 /* NULL */) {
        decodedValue = decodeApplicationDate(buffer, offset + len);
        len += decodedValue.len;
        const date = decodedValue.value.value;
        decodedValue = decodeApplicationTime(buffer, offset + len);
        len += decodedValue.len;
        const time = decodedValue.value.value;
        value.eventTimeStamps[i] = new Date(
          date.getFullYear(),
          date.getMonth(),
          date.getDate(),
          time.getHours(),
          time.getMinutes(),
          time.getSeconds(),
          time.getMilliseconds()
        );
      } else {
        len += result.value;
      }
    }
    len++;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeEnumerated(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.notifyType = decodedValue.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeBitstring(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.eventEnable = decodedValue.value;
    len++;
    value.eventPriorities = [];
    for (let i = 0; i < 3; i++) {
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.eventPriorities[i] = decodedValue.value;
    }
    len++;
    alarms.push(value);
  }
  moreEvents = buffer[apduLen - 1] === 1;
  return {
    len,
    alarms,
    moreEvents
  };
};

// src/services/event-notify-data.ts
var event_notify_data_exports = {};
__export(event_notify_data_exports, {
  decode: () => decode12,
  encode: () => encode12
});
var encode12 = (buffer, data) => {
  encodeContextUnsigned(buffer, 0, data.processId);
  encodeContextObjectId(
    buffer,
    1,
    data.initiatingObjectId.type,
    data.initiatingObjectId.instance
  );
  encodeContextObjectId(
    buffer,
    2,
    data.eventObjectId.type,
    data.eventObjectId.instance
  );
  bacappEncodeContextTimestamp(buffer, 3, data.timeStamp);
  encodeContextUnsigned(buffer, 4, data.notificationClass);
  encodeContextUnsigned(buffer, 5, data.priority);
  encodeContextEnumerated(buffer, 6, data.eventType);
  if (data.messageText && data.messageText !== "") {
    encodeContextCharacterString(buffer, 7, data.messageText);
  }
  encodeContextEnumerated(buffer, 8, data.notifyType);
  switch (data.notifyType) {
    case 0 /* ALARM */:
    case 1 /* EVENT */:
      encodeContextBoolean(buffer, 9, data.ackRequired);
      encodeContextEnumerated(buffer, 10, data.fromState);
      break;
    default:
      break;
  }
  encodeContextEnumerated(buffer, 11, data.toState);
  switch (data.notifyType) {
    case 0 /* ALARM */:
    case 1 /* EVENT */:
      encodeOpeningTag(buffer, 12);
      switch (data.eventType) {
        case 0 /* CHANGE_OF_BITSTRING */:
          encodeOpeningTag(buffer, 0);
          encodeContextBitstring(
            buffer,
            0,
            data.changeOfBitstringReferencedBitString
          );
          encodeContextBitstring(
            buffer,
            1,
            data.changeOfBitstringStatusFlags
          );
          encodeClosingTag(buffer, 0);
          break;
        case 1 /* CHANGE_OF_STATE */:
          encodeOpeningTag(buffer, 1);
          encodeOpeningTag(buffer, 0);
          bacappEncodePropertyState(buffer, data.changeOfStateNewState);
          encodeClosingTag(buffer, 0);
          encodeContextBitstring(
            buffer,
            1,
            data.changeOfStateStatusFlags
          );
          encodeClosingTag(buffer, 1);
          break;
        case 2 /* CHANGE_OF_VALUE */:
          encodeOpeningTag(buffer, 2);
          encodeOpeningTag(buffer, 0);
          switch (data.changeOfValueTag) {
            case 0 /* REAL */:
              encodeContextReal(
                buffer,
                1,
                data.changeOfValueChangeValue
              );
              break;
            case 1 /* BIT_STRING */:
              encodeContextBitstring(
                buffer,
                0,
                data.changeOfValueChangedBits
              );
              break;
            default:
              throw new Error("NotImplemented");
          }
          encodeClosingTag(buffer, 0);
          encodeContextBitstring(
            buffer,
            1,
            data.changeOfValueStatusFlags
          );
          encodeClosingTag(buffer, 2);
          break;
        case 4 /* FLOATING_LIMIT */:
          encodeOpeningTag(buffer, 4);
          encodeContextReal(buffer, 0, data.floatingLimitReferenceValue);
          encodeContextBitstring(
            buffer,
            1,
            data.floatingLimitStatusFlags
          );
          encodeContextReal(buffer, 2, data.floatingLimitSetPointValue);
          encodeContextReal(buffer, 3, data.floatingLimitErrorLimit);
          encodeClosingTag(buffer, 4);
          break;
        case 5 /* OUT_OF_RANGE */:
          encodeOpeningTag(buffer, 5);
          encodeContextReal(buffer, 0, data.outOfRangeExceedingValue);
          encodeContextBitstring(buffer, 1, data.outOfRangeStatusFlags);
          encodeContextReal(buffer, 2, data.outOfRangeDeadband);
          encodeContextReal(buffer, 3, data.outOfRangeExceededLimit);
          encodeClosingTag(buffer, 5);
          break;
        case 8 /* CHANGE_OF_LIFE_SAFETY */:
          encodeOpeningTag(buffer, 8);
          encodeContextEnumerated(
            buffer,
            0,
            data.changeOfLifeSafetyNewState
          );
          encodeContextEnumerated(
            buffer,
            1,
            data.changeOfLifeSafetyNewMode
          );
          encodeContextBitstring(
            buffer,
            2,
            data.changeOfLifeSafetyStatusFlags
          );
          encodeContextEnumerated(
            buffer,
            3,
            data.changeOfLifeSafetyOperationExpected
          );
          encodeClosingTag(buffer, 8);
          break;
        case 10 /* BUFFER_READY */:
          encodeOpeningTag(buffer, 10);
          bacappEncodeContextDeviceObjPropertyRef(
            buffer,
            0,
            data.bufferReadyBufferProperty
          );
          encodeContextUnsigned(
            buffer,
            1,
            data.bufferReadyPreviousNotification
          );
          encodeContextUnsigned(
            buffer,
            2,
            data.bufferReadyCurrentNotification
          );
          encodeClosingTag(buffer, 10);
          break;
        case 11 /* UNSIGNED_RANGE */:
          encodeOpeningTag(buffer, 11);
          encodeContextUnsigned(
            buffer,
            0,
            data.unsignedRangeExceedingValue
          );
          encodeContextBitstring(
            buffer,
            1,
            data.unsignedRangeStatusFlags
          );
          encodeContextUnsigned(
            buffer,
            2,
            data.unsignedRangeExceededLimit
          );
          encodeClosingTag(buffer, 11);
          break;
        case 9 /* EXTENDED */:
        case 3 /* COMMAND_FAILURE */:
          throw new Error("NotImplemented");
        default:
          throw new Error("NotImplemented");
      }
      encodeClosingTag(buffer, 12);
      break;
    case 2 /* ACK_NOTIFICATION */:
      throw new Error("NotImplemented");
    default:
      break;
  }
};
var decode12 = (buffer, offset) => {
  let len = 0;
  let result;
  let decodedValue;
  let eventData = {};
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  eventData.processId = decodedValue.value;
  if (!decodeIsContextTag(buffer, offset + len, 1)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  eventData.initiatingObjectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  if (!decodeIsContextTag(buffer, offset + len, 2)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  eventData.eventObjectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  if (!decodeIsContextTag(buffer, offset + len, 3)) {
    return void 0;
  }
  len += 2;
  decodedValue = decodeApplicationDate(buffer, offset + len);
  len += decodedValue.len;
  const date = decodedValue.value.value;
  decodedValue = decodeApplicationTime(buffer, offset + len);
  len += decodedValue.len;
  const time = decodedValue.value.value;
  eventData.timeStamp = new Date(
    date.getFullYear(),
    date.getMonth(),
    date.getDate(),
    time.getHours(),
    time.getMinutes(),
    time.getSeconds(),
    time.getMilliseconds()
  );
  len += 2;
  if (!decodeIsContextTag(buffer, offset + len, 4)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  eventData.notificationClass = decodedValue.value;
  if (!decodeIsContextTag(buffer, offset + len, 5)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  eventData.priority = decodedValue.value;
  if (eventData.priority > 255) {
    return void 0;
  }
  if (!decodeIsContextTag(buffer, offset + len, 6)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  eventData.eventType = decodedValue.value;
  if (decodeIsContextTag(buffer, offset + len, 7)) {
    decodedValue = decodeContextCharacterString(
      buffer,
      offset + len,
      2e4,
      7
    );
    len += decodedValue.len;
    eventData.messageText = decodedValue.value;
  }
  if (!decodeIsContextTag(buffer, offset + len, 8)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  eventData.notifyType = decodedValue.value;
  switch (eventData.notifyType) {
    case 0 /* ALARM */:
    case 1 /* EVENT */:
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned(buffer, offset + len, 1);
      len += decodedValue.len;
      eventData.ackRequired = decodedValue.value > 0;
      if (!decodeIsContextTag(buffer, offset + len, 10)) {
        return void 0;
      }
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
      decodedValue = decodeEnumerated(
        buffer,
        offset + len,
        result.value
      );
      len += decodedValue.len;
      eventData.fromState = decodedValue.value;
      break;
    default:
      break;
  }
  if (!decodeIsContextTag(buffer, offset + len, 11)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  eventData.toState = decodedValue.value;
  eventData.len = len;
  return eventData;
};

// src/services/get-enrollment-summary.ts
var get_enrollment_summary_exports = {};
__export(get_enrollment_summary_exports, {
  decode: () => decode13,
  decodeAcknowledge: () => decodeAcknowledge3,
  encode: () => encode13,
  encodeAcknowledge: () => encodeAcknowledge4
});
var encode13 = (buffer, acknowledgmentFilter, enrollmentFilter, eventStateFilter, eventTypeFilter, priorityFilter, notificationClassFilter) => {
  encodeContextEnumerated(buffer, 0, acknowledgmentFilter);
  if (enrollmentFilter) {
    encodeOpeningTag(buffer, 1);
    encodeOpeningTag(buffer, 0);
    encodeContextObjectId(
      buffer,
      0,
      enrollmentFilter.objectId.type,
      enrollmentFilter.objectId.instance
    );
    encodeClosingTag(buffer, 0);
    encodeContextUnsigned(buffer, 1, enrollmentFilter.processId);
    encodeClosingTag(buffer, 1);
  }
  if (eventStateFilter) {
    encodeOpeningTag(buffer, 2);
    encodeContextEnumerated(buffer, 0, eventStateFilter);
    encodeClosingTag(buffer, 2);
  }
  if (eventTypeFilter) {
    encodeOpeningTag(buffer, 3);
    encodeContextEnumerated(buffer, 0, eventTypeFilter);
    encodeClosingTag(buffer, 3);
  }
  if (priorityFilter) {
    encodeOpeningTag(buffer, 4);
    encodeContextUnsigned(buffer, 0, priorityFilter.min);
    encodeContextUnsigned(buffer, 1, priorityFilter.max);
    encodeClosingTag(buffer, 4);
  }
  if (notificationClassFilter) {
    encodeOpeningTag(buffer, 5);
    encodeContextUnsigned(buffer, 0, notificationClassFilter);
    encodeClosingTag(buffer, 5);
  }
};
var decode13 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  let value = {};
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.acknowledgmentFilter = decodedValue.value;
  if (decodeIsContextTag(buffer, offset + len, 1)) {
    len++;
    value.enrollmentFilter = {};
    if (!decodeIsContextTag(buffer, offset + len, 0)) {
      return void 0;
    }
    len++;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeObjectId(buffer, offset + len);
    len += decodedValue.len;
    value.enrollmentFilter.objectId = {
      type: decodedValue.objectType,
      instance: decodedValue.instance
    };
    len++;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.enrollmentFilter.processId = decodedValue.value;
    len++;
  }
  if (decodeIsContextTag(buffer, offset + len, 2)) {
    len++;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeEnumerated(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.eventStateFilter = decodedValue.value;
    len++;
  }
  if (decodeIsContextTag(buffer, offset + len, 3)) {
    len++;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeEnumerated(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.eventTypeFilter = decodedValue.value;
    len++;
  }
  if (decodeIsContextTag(buffer, offset + len, 4)) {
    len++;
    value.priorityFilter = {};
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.priorityFilter.min = decodedValue.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.priorityFilter.max = decodedValue.value;
    len++;
  }
  if (decodeIsContextTag(buffer, offset + len, 5)) {
    len++;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.notificationClassFilter = decodedValue.value;
    len++;
  }
  value.len = len;
  return value;
};
var encodeAcknowledge4 = (buffer, enrollmentSummaries) => {
  enrollmentSummaries.forEach((enrollmentSummary) => {
    encodeApplicationObjectId(
      buffer,
      enrollmentSummary.objectId.type,
      enrollmentSummary.objectId.instance
    );
    encodeApplicationEnumerated(buffer, enrollmentSummary.eventType);
    encodeApplicationEnumerated(buffer, enrollmentSummary.eventState);
    encodeApplicationUnsigned(buffer, enrollmentSummary.priority);
    encodeApplicationUnsigned(
      buffer,
      enrollmentSummary.notificationClass
    );
  });
};
var decodeAcknowledge3 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  const enrollmentSummaries = [];
  while (apduLen - len > 0) {
    const enrollmentSummary = {};
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 12 /* OBJECTIDENTIFIER */) {
      return void 0;
    }
    result = decodeObjectId(buffer, offset + len);
    len += result.len;
    enrollmentSummary.objectId = {
      type: result.objectType,
      instance: result.instance
    };
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 9 /* ENUMERATED */) {
      return void 0;
    }
    result = decodeEnumerated(buffer, offset + len, result.value);
    len += result.len;
    enrollmentSummary.eventType = result.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 9 /* ENUMERATED */) {
      return void 0;
    }
    result = decodeEnumerated(buffer, offset + len, result.value);
    len += result.len;
    enrollmentSummary.eventState = result.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 2 /* UNSIGNED_INTEGER */) {
      return void 0;
    }
    result = decodeUnsigned(buffer, offset + len, result.value);
    len += result.len;
    enrollmentSummary.priority = result.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 2 /* UNSIGNED_INTEGER */) {
      return void 0;
    }
    result = decodeUnsigned(buffer, offset + len, result.value);
    len += result.len;
    enrollmentSummary.notificationClass = result.value;
    enrollmentSummaries.push(enrollmentSummary);
  }
  return {
    enrollmentSummaries,
    len
  };
};

// src/services/get-event-information.ts
var get_event_information_exports = {};
__export(get_event_information_exports, {
  decode: () => decode14,
  decodeAcknowledge: () => decodeAcknowledge4,
  encode: () => encode14,
  encodeAcknowledge: () => encodeAcknowledge5
});
var encode14 = (buffer, lastReceivedObjectId) => {
  encodeContextObjectId(
    buffer,
    0,
    lastReceivedObjectId.type,
    lastReceivedObjectId.instance
  );
};
var decode14 = (buffer, offset) => {
  let len = 0;
  let result;
  let decodedValue;
  let value = {};
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  value.lastReceivedObjectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  value.len = len;
  return value;
};
var encodeAcknowledge5 = (buffer, events, moreEvents) => {
  encodeOpeningTag(buffer, 0);
  events.forEach((eventData) => {
    encodeContextObjectId(
      buffer,
      0,
      eventData.objectId.type,
      eventData.objectId.instance
    );
    encodeContextEnumerated(buffer, 1, eventData.eventState);
    encodeContextBitstring(buffer, 2, eventData.acknowledgedTransitions);
    encodeOpeningTag(buffer, 3);
    for (let i = 0; i < 3; i++) {
      bacappEncodeTimestamp(buffer, eventData.eventTimeStamps[i]);
    }
    encodeClosingTag(buffer, 3);
    encodeContextEnumerated(buffer, 4, eventData.notifyType);
    encodeContextBitstring(buffer, 5, eventData.eventEnable);
    encodeOpeningTag(buffer, 6);
    for (let i = 0; i < 3; i++) {
      encodeApplicationUnsigned(buffer, eventData.eventPriorities[i]);
    }
    encodeClosingTag(buffer, 6);
  });
  encodeClosingTag(buffer, 0);
  encodeContextBoolean(buffer, 1, moreEvents);
};
var decodeAcknowledge4 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  let value = {};
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  value.events = [];
  while (apduLen - len > 3) {
    let event = {};
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeObjectId(buffer, offset + len);
    len += decodedValue.len;
    event.objectId = {
      type: decodedValue.objectType,
      instance: decodedValue.instance
    };
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeEnumerated(buffer, offset + len, result.value);
    len += decodedValue.len;
    event.eventState = decodedValue.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeBitstring(buffer, offset + len, result.value);
    len += decodedValue.len;
    event.acknowledgedTransitions = decodedValue.value;
    if (!decodeIsOpeningTagNumber(buffer, offset + len, 3)) {
      return void 0;
    }
    len++;
    event.eventTimeStamps = [];
    for (let i = 0; i < 3; i++) {
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
      if (result.tagNumber === 0 /* TIME */) {
        decodedValue = decodeBacnetTime(
          buffer,
          offset + len,
          result.value
        );
        len += decodedValue.len;
        event.eventTimeStamps[i] = {
          value: decodedValue.value,
          type: 0 /* TIME */
        };
      } else if (result.tagNumber === 1 /* SEQUENCE_NUMBER */) {
        decodedValue = decodeUnsigned(
          buffer,
          offset + len,
          result.value
        );
        len += decodedValue.len;
        event.eventTimeStamps[i] = {
          value: decodedValue.value,
          type: 1 /* SEQUENCE_NUMBER */
        };
      } else if (result.tagNumber === 2 /* DATETIME */) {
        let date = decodeApplicationDate(
          buffer,
          offset + len
        );
        len += date.len;
        date = date.value.value;
        let time = decodeApplicationTime(
          buffer,
          offset + len
        );
        len += time.len;
        time = time.value.value;
        event.eventTimeStamps[i] = {
          value: new Date(
            date.getFullYear(),
            date.getMonth(),
            date.getDate(),
            time.getHours(),
            time.getMinutes(),
            time.getSeconds(),
            time.getMilliseconds()
          ),
          type: 2 /* DATETIME */
        };
        len++;
      }
    }
    if (!decodeIsClosingTagNumber(buffer, offset + len, 3)) {
      return void 0;
    }
    len++;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeEnumerated(buffer, offset + len, result.value);
    len += decodedValue.len;
    event.notifyType = decodedValue.value;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeBitstring(buffer, offset + len, result.value);
    len += decodedValue.len;
    event.eventEnable = decodedValue.value;
    if (!decodeIsOpeningTagNumber(buffer, offset + len, 6)) {
      return void 0;
    }
    len++;
    event.eventPriorities = [];
    for (let i = 0; i < 3; i++) {
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned(buffer, offset + len, result.value);
      len += decodedValue.len;
      event.eventPriorities[i] = decodedValue.value;
    }
    if (!decodeIsClosingTagNumber(buffer, offset + len, 6)) {
      return void 0;
    }
    len++;
    value.events.push(event);
  }
  if (!decodeIsClosingTagNumber(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  value.moreEvents = buffer[offset + len] > 0;
  len++;
  value.len = len;
  return value;
};

// src/services/i-am.ts
var i_am_exports = {};
__export(i_am_exports, {
  decode: () => decode15,
  encode: () => encode15
});
var encode15 = (buffer, deviceId, maxApdu, segmentation, vendorId) => {
  encodeApplicationObjectId(buffer, 8 /* DEVICE */, deviceId);
  encodeApplicationUnsigned(buffer, maxApdu);
  encodeApplicationEnumerated(buffer, segmentation);
  encodeApplicationUnsigned(buffer, vendorId);
};
var decode15 = (buffer, offset) => {
  let result;
  let apduLen = 0;
  const orgOffset = offset;
  result = decodeTagNumberAndValue(buffer, offset + apduLen);
  apduLen += result.len;
  if (result.tagNumber !== 12 /* OBJECTIDENTIFIER */) {
    return void 0;
  }
  result = decodeObjectId(buffer, offset + apduLen);
  apduLen += result.len;
  if (result.objectType !== 8 /* DEVICE */) {
    return void 0;
  }
  const deviceId = result.instance;
  result = decodeTagNumberAndValue(buffer, offset + apduLen);
  apduLen += result.len;
  if (result.tagNumber !== 2 /* UNSIGNED_INTEGER */) {
    return void 0;
  }
  result = decodeUnsigned(buffer, offset + apduLen, result.value);
  apduLen += result.len;
  const maxApdu = result.value;
  result = decodeTagNumberAndValue(buffer, offset + apduLen);
  apduLen += result.len;
  if (result.tagNumber !== 9 /* ENUMERATED */) {
    return void 0;
  }
  result = decodeEnumerated(buffer, offset + apduLen, result.value);
  apduLen += result.len;
  if (result.value > 3 /* NO_SEGMENTATION */) {
    return void 0;
  }
  const segmentation = result.value;
  result = decodeTagNumberAndValue(buffer, offset + apduLen);
  apduLen += result.len;
  if (result.tagNumber !== 2 /* UNSIGNED_INTEGER */) {
    return void 0;
  }
  result = decodeUnsigned(buffer, offset + apduLen, result.value);
  apduLen += result.len;
  if (result.value > 65535) {
    return void 0;
  }
  const vendorId = result.value;
  return {
    len: offset - orgOffset,
    deviceId,
    maxApdu,
    segmentation,
    vendorId
  };
};

// src/services/i-have.ts
var i_have_exports = {};
__export(i_have_exports, {
  decode: () => decode16,
  encode: () => encode16
});
var encode16 = (buffer, deviceId, objectId, objectName) => {
  encodeApplicationObjectId(buffer, deviceId.type, deviceId.instance);
  encodeApplicationObjectId(buffer, objectId.type, objectId.instance);
  encodeApplicationCharacterString(buffer, objectName);
};
var decode16 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  let value = {};
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  value.deviceId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  value.objectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeCharacterString(
    buffer,
    offset + len,
    apduLen - (offset + len),
    result.value
  );
  len += decodedValue.len;
  value.objectName = decodedValue.value;
  value.len = len;
  return value;
};

// src/services/life-safety-operation.ts
var life_safety_operation_exports = {};
__export(life_safety_operation_exports, {
  decode: () => decode17,
  encode: () => encode17
});
var encode17 = (buffer, processId, requestingSource, operation, targetObjectId) => {
  encodeContextUnsigned(buffer, 0, processId);
  encodeContextCharacterString(buffer, 1, requestingSource);
  encodeContextEnumerated(buffer, 2, operation);
  encodeContextObjectId(
    buffer,
    3,
    targetObjectId.type,
    targetObjectId.instance
  );
};
var decode17 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  let value = {};
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.processId = decodedValue.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeCharacterString(
    buffer,
    offset + len,
    apduLen - (offset + len),
    result.value
  );
  len += decodedValue.len;
  value.requestingSource = decodedValue.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.operation = decodedValue.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  value.targetObjectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  value.len = len;
  return value;
};

// src/services/private-transfer.ts
var private_transfer_exports = {};
__export(private_transfer_exports, {
  decode: () => decode18,
  encode: () => encode18
});
var encode18 = (buffer, vendorId, serviceNumber, data) => {
  encodeContextUnsigned(buffer, 0, vendorId);
  encodeContextUnsigned(buffer, 1, serviceNumber);
  encodeOpeningTag(buffer, 2);
  for (let i = 0; i < data.length; i++) {
    buffer.buffer[buffer.offset++] = data[i];
  }
  encodeClosingTag(buffer, 2);
};
var decode18 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  let value = {};
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.vendorId = decodedValue.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.serviceNumber = decodedValue.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  const size = apduLen - (offset + len + 1);
  const data = [];
  for (let i = 0; i < size; i++) {
    data.push(buffer[offset + len++]);
  }
  value.data = data;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  value.len = len;
  return value;
};

// src/services/read-property.ts
var read_property_exports = {};
__export(read_property_exports, {
  decode: () => decode19,
  decodeAcknowledge: () => decodeAcknowledge5,
  encode: () => encode19,
  encodeAcknowledge: () => encodeAcknowledge6
});
var encode19 = (buffer, objectType, objectInstance, propertyId, arrayIndex) => {
  if (objectType <= ASN1_MAX_OBJECT) {
    encodeContextObjectId(buffer, 0, objectType, objectInstance);
  }
  if (propertyId <= ASN1_MAX_PROPERTY_ID) {
    encodeContextEnumerated(buffer, 1, propertyId);
  }
  if (arrayIndex !== ASN1_ARRAY_ALL) {
    encodeContextUnsigned(
      buffer,
      2,
      arrayIndex || arrayIndex === 0 ? arrayIndex : ASN1_ARRAY_ALL
    );
  }
};
var decode19 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  if (apduLen < 7) {
    return void 0;
  }
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  let objectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  let property = {};
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 1) {
    return void 0;
  }
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  property.id = decodedValue.value;
  property.index = ASN1_ARRAY_ALL;
  if (len < apduLen) {
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber === 2 && len < apduLen) {
      decodedValue = decodeUnsigned(buffer, offset + len, result.value);
      len += decodedValue.len;
      property.index = decodedValue.value;
    } else {
      return void 0;
    }
  }
  if (len < apduLen) {
    return void 0;
  }
  return {
    len,
    objectId,
    property
  };
};
var encodeAcknowledge6 = (buffer, objectId, propertyId, arrayIndex, values) => {
  encodeContextObjectId(buffer, 0, objectId.type, objectId.instance);
  encodeContextEnumerated(buffer, 1, propertyId);
  if (arrayIndex !== ASN1_ARRAY_ALL) {
    encodeContextUnsigned(buffer, 2, arrayIndex);
  }
  encodeOpeningTag(buffer, 3);
  values.forEach((value) => {
    bacappEncodeApplicationData(buffer, value);
  });
  encodeClosingTag(buffer, 3);
};
var decodeAcknowledge5 = (buffer, offset, apduLen) => {
  let result;
  let decodedValue;
  let objectId = {};
  let property = {};
  if (!decodeIsContextTag(buffer, offset, 0)) {
    return void 0;
  }
  let len = 1;
  result = decodeObjectId(buffer, offset + len);
  len += result.len;
  objectId.type = result.objectType;
  objectId.instance = result.instance;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 1) {
    return void 0;
  }
  result = decodeEnumerated(buffer, offset + len, result.value);
  len += result.len;
  property.id = result.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  if (result.tagNumber === 2) {
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    property.index = decodedValue.value;
  } else {
    property.index = ASN1_ARRAY_ALL;
  }
  const values = [];
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 3)) {
    return void 0;
  }
  len++;
  while (apduLen - len > 1) {
    result = bacappDecodeApplicationData(
      buffer,
      offset + len,
      apduLen + offset,
      objectId.type,
      property.id
    );
    if (!result) {
      return void 0;
    }
    len += result.len;
    delete result.len;
    values.push(result);
  }
  if (!decodeIsClosingTagNumber(buffer, offset + len, 3)) {
    return void 0;
  }
  len++;
  return {
    len,
    objectId,
    property,
    values
  };
};

// src/services/read-property-multiple.ts
var read_property_multiple_exports = {};
__export(read_property_multiple_exports, {
  decode: () => decode20,
  decodeAcknowledge: () => decodeAcknowledge6,
  encode: () => encode20,
  encodeAcknowledge: () => encodeAcknowledge7
});
var encode20 = (buffer, properties) => {
  properties.forEach((value) => {
    encodeReadAccessSpecification(buffer, value);
  });
};
var decode20 = (buffer, offset, apduLen) => {
  let len = 0;
  const values = [];
  while (apduLen - len > 0) {
    const decodedValue = decodeReadAccessSpecification(
      buffer,
      offset + len,
      apduLen - len
    );
    if (!decodedValue) {
      return void 0;
    }
    len += decodedValue.len;
    values.push(decodedValue.value);
  }
  return {
    len,
    properties: values
  };
};
var encodeAcknowledge7 = (buffer, values) => {
  values.forEach((value) => {
    encodeReadAccessResult(buffer, value);
  });
};
var decodeAcknowledge6 = (buffer, offset, apduLen) => {
  let len = 0;
  const values = [];
  while (apduLen - len > 0) {
    const result = decodeReadAccessResult(
      buffer,
      offset + len,
      apduLen - len
    );
    if (!result || result === -1) {
      return void 0;
    }
    len += result.len;
    values.push(result.value);
  }
  return {
    len,
    values
  };
};

// src/services/read-range.ts
var read_range_exports = {};
__export(read_range_exports, {
  decode: () => decode21,
  decodeAcknowledge: () => decodeAcknowledge7,
  encode: () => encode21,
  encodeAcknowledge: () => encodeAcknowledge8
});
var encode21 = (buffer, objectId, propertyId, arrayIndex, requestType, position, time, count) => {
  encodeContextObjectId(buffer, 0, objectId.type, objectId.instance);
  encodeContextEnumerated(buffer, 1, propertyId);
  if (arrayIndex !== ASN1_ARRAY_ALL) {
    encodeContextUnsigned(buffer, 2, arrayIndex);
  }
  switch (requestType) {
    case 0 /* BY_POSITION */:
      encodeOpeningTag(buffer, 3);
      encodeApplicationUnsigned(buffer, position);
      encodeApplicationSigned(buffer, count);
      encodeClosingTag(buffer, 3);
      break;
    case 1 /* BY_SEQUENCE_NUMBER */:
      encodeOpeningTag(buffer, 6);
      encodeApplicationUnsigned(buffer, position);
      encodeApplicationSigned(buffer, count);
      encodeClosingTag(buffer, 6);
      break;
    case 2 /* BY_TIME_REFERENCE_TIME_COUNT */:
      encodeOpeningTag(buffer, 7);
      encodeApplicationDate(buffer, time);
      encodeApplicationTime(buffer, time);
      encodeApplicationSigned(buffer, count);
      encodeClosingTag(buffer, 7);
      break;
    default:
      break;
  }
};
var decode21 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  let requestType;
  let position;
  let time;
  let count;
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  decodedValue = decodeObjectId(buffer, offset + len, 0);
  len += decodedValue.len;
  let objectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  let property = {};
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 1) {
    return void 0;
  }
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  property.id = decodedValue.value;
  if (len < apduLen && decodeIsContextTag(buffer, offset + len, 2)) {
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    property.index = decodedValue.value;
  } else {
    property.index = ASN1_ARRAY_ALL;
  }
  if (len < apduLen) {
    result = decodeTagNumber(buffer, offset + len);
    len += result.len;
    switch (result.tagNumber) {
      case 3:
        requestType = 0 /* BY_POSITION */;
        result = decodeTagNumberAndValue(buffer, offset + len);
        len += result.len;
        decodedValue = decodeUnsigned(
          buffer,
          offset + len,
          result.value
        );
        len += decodedValue.len;
        position = decodedValue.value;
        result = decodeTagNumberAndValue(buffer, offset + len);
        len += result.len;
        decodedValue = decodeSigned(buffer, offset + len, result.value);
        len += decodedValue.len;
        count = decodedValue.value;
        break;
      case 6:
        requestType = 1 /* BY_SEQUENCE_NUMBER */;
        result = decodeTagNumberAndValue(buffer, offset + len);
        len += result.len;
        decodedValue = decodeUnsigned(
          buffer,
          offset + len,
          result.value
        );
        len += decodedValue.len;
        position = decodedValue.value;
        result = decodeTagNumberAndValue(buffer, offset + len);
        len += result.len;
        decodedValue = decodeSigned(buffer, offset + len, result.value);
        len += decodedValue.len;
        count = decodedValue.value;
        break;
      case 7:
        requestType = 2 /* BY_TIME_REFERENCE_TIME_COUNT */;
        decodedValue = decodeApplicationDate(buffer, offset + len);
        len += decodedValue.len;
        const tmpDate = decodedValue.value.value;
        decodedValue = decodeApplicationTime(buffer, offset + len);
        len += decodedValue.len;
        const tmpTime = decodedValue.value.value;
        time = new Date(
          tmpDate.getYear(),
          tmpDate.getMonth(),
          tmpDate.getDate(),
          tmpTime.getHours(),
          tmpTime.getMinutes(),
          tmpTime.getSeconds(),
          tmpTime.getMilliseconds()
        );
        result = decodeTagNumberAndValue(buffer, offset + len);
        len += result.len;
        decodedValue = decodeSigned(buffer, offset + len, result.value);
        len += decodedValue.len;
        count = decodedValue.value;
        break;
      default:
        return void 0;
    }
    result = decodeTagNumber(buffer, offset + len);
    len += result.len;
  }
  return {
    len,
    objectId,
    property,
    requestType,
    position,
    time,
    count
  };
};
var encodeAcknowledge8 = (buffer, objectId, propertyId, arrayIndex, resultFlags, itemCount, applicationData, requestType, firstSequence) => {
  encodeContextObjectId(buffer, 0, objectId.type, objectId.instance);
  encodeContextEnumerated(buffer, 1, propertyId);
  if (arrayIndex !== ASN1_ARRAY_ALL) {
    encodeContextUnsigned(buffer, 2, arrayIndex);
  }
  encodeContextBitstring(buffer, 3, resultFlags);
  encodeContextUnsigned(buffer, 4, itemCount);
  encodeOpeningTag(buffer, 5);
  if (itemCount !== 0) {
    applicationData.copy(
      buffer.buffer,
      buffer.offset,
      0,
      applicationData.length
    );
    buffer.offset += applicationData.length;
  }
  encodeClosingTag(buffer, 5);
  if (itemCount !== 0 && requestType && requestType !== 0 /* BY_POSITION */) {
    encodeContextUnsigned(buffer, 6, firstSequence);
  }
};
var decodeAcknowledge7 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  const objectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  const property = { index: ASN1_ARRAY_ALL };
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 1) {
    return void 0;
  }
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  property.id = decodedValue.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  if (result.tagNumber === 2 && len < apduLen) {
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    property.index = decodedValue.value;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeBitstring(buffer, offset + len, result.value);
  len += decodedValue.len;
  const resultFlag = decodedValue.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  const itemCount = decodedValue.value;
  if (!decodeIsOpeningTag(buffer, offset + len)) {
    return void 0;
  }
  len++;
  const rangeBuffer = buffer.slice(offset + len, apduLen - 3);
  return {
    objectId,
    property,
    resultFlag,
    itemCount,
    rangeBuffer,
    len
  };
};

// src/services/register-foreign-device.ts
var register_foreign_device_exports = {};
__export(register_foreign_device_exports, {
  decode: () => decode22,
  encode: () => encode22
});
var encode22 = (buffer, ttl, length = 2) => {
  encodeUnsigned(buffer, ttl, length);
};
var decode22 = (buffer, offset, length = 2) => {
  let len = 0;
  let result = decodeUnsigned(buffer, offset + len, length);
  len += result.len;
  return {
    len,
    ttl: result.value
  };
};

// src/services/reinitialize-device.ts
var reinitialize_device_exports = {};
__export(reinitialize_device_exports, {
  decode: () => decode23,
  encode: () => encode23
});
var encode23 = (buffer, state, password) => {
  encodeContextEnumerated(buffer, 0, state);
  if (password && password !== "") {
    encodeContextCharacterString(buffer, 1, password);
  }
};
var decode23 = (buffer, offset, apduLen) => {
  let len = 0;
  let value = {};
  let result;
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  let decodedValue = decodeEnumerated(
    buffer,
    offset + len,
    result.value
  );
  value.state = decodedValue.value;
  len += decodedValue.len;
  if (len < apduLen) {
    if (!decodeIsContextTag(buffer, offset + len, 1)) {
      return void 0;
    }
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeCharacterString(
      buffer,
      offset + len,
      apduLen - (offset + len),
      result.value
    );
    value.password = decodedValue.value;
    len += decodedValue.len;
  }
  value.len = len;
  return value;
};

// src/services/subscribe-cov.ts
var subscribe_cov_exports = {};
__export(subscribe_cov_exports, {
  decode: () => decode24,
  encode: () => encode24
});
var encode24 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime) => {
  encodeContextUnsigned(buffer, 0, subscriberProcessId);
  encodeContextObjectId(
    buffer,
    1,
    monitoredObjectId.type,
    monitoredObjectId.instance
  );
  if (!cancellationRequest) {
    encodeContextBoolean(buffer, 2, issueConfirmedNotifications);
    encodeContextUnsigned(buffer, 3, lifetime);
  }
};
var decode24 = (buffer, offset, apduLen) => {
  let len = 0;
  let value = {};
  let result;
  let decodedValue;
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.subscriberProcessId = decodedValue.value;
  if (!decodeIsContextTag(buffer, offset + len, 1)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  value.monitoredObjectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  value.cancellationRequest = true;
  if (len < apduLen) {
    value.issueConfirmedNotifications = false;
    if (decodeIsContextTag(buffer, offset + len, 2)) {
      value.cancellationRequest = false;
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
      value.issueConfirmedNotifications = buffer[offset + len] > 0;
      len++;
    }
    value.lifetime = 0;
    if (decodeIsContextTag(buffer, offset + len, 3)) {
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
      decodedValue = decodeUnsigned(buffer, offset + len, result.value);
      len += decodedValue.len;
      value.lifetime = decodedValue.value;
    }
  }
  value.len = len;
  return value;
};

// src/services/subscribe-property.ts
var subscribe_property_exports = {};
__export(subscribe_property_exports, {
  decode: () => decode25,
  encode: () => encode25
});
var encode25 = (buffer, subscriberProcessId, monitoredObjectId, cancellationRequest, issueConfirmedNotifications, lifetime, monitoredProperty, covIncrementPresent, covIncrement) => {
  encodeContextUnsigned(buffer, 0, subscriberProcessId);
  encodeContextObjectId(
    buffer,
    1,
    monitoredObjectId.type,
    monitoredObjectId.instance
  );
  if (!cancellationRequest) {
    encodeContextBoolean(buffer, 2, issueConfirmedNotifications);
    encodeContextUnsigned(buffer, 3, lifetime);
  }
  encodeOpeningTag(buffer, 4);
  encodeContextEnumerated(buffer, 0, monitoredProperty.id);
  if (monitoredProperty.index !== ASN1_ARRAY_ALL) {
    encodeContextUnsigned(buffer, 1, monitoredProperty.index);
  }
  encodeClosingTag(buffer, 4);
  if (covIncrementPresent) {
    encodeContextReal(buffer, 5, covIncrement);
  }
};
var decode25 = (buffer, offset) => {
  let len = 0;
  let value = {};
  let result;
  let decodedValue;
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.subscriberProcessId = decodedValue.value;
  if (!decodeIsContextTag(buffer, offset + len, 1)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  value.monitoredObjectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  value.cancellationRequest = true;
  value.issueConfirmedNotifications = false;
  if (decodeIsContextTag(buffer, offset + len, 2)) {
    value.cancellationRequest = false;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    value.issueConfirmedNotifications = buffer[offset + len] > 0;
    len++;
  }
  value.lifetime = 0;
  if (decodeIsContextTag(buffer, offset + len, 3)) {
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.lifetime = decodedValue.value;
  }
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 4)) {
    return void 0;
  }
  len++;
  value.monitoredProperty = {};
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.monitoredProperty.id = decodedValue.value;
  value.monitoredProperty.index = ASN1_ARRAY_ALL;
  if (decodeIsContextTag(buffer, offset + len, 1)) {
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.monitoredProperty.index = decodedValue.value;
  }
  if (!decodeIsClosingTagNumber(buffer, offset + len, 4)) {
    return void 0;
  }
  len++;
  value.covIncrement = 0;
  if (decodeIsContextTag(buffer, offset + len, 5)) {
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    decodedValue = decodeReal(buffer, offset + len);
    len += decodedValue.len;
    value.covIncrement = decodedValue.value;
  }
  value.len = len;
  return value;
};

// src/services/time-sync.ts
var time_sync_exports = {};
__export(time_sync_exports, {
  decode: () => decode26,
  encode: () => encode26
});
var encode26 = (buffer, time) => {
  encodeApplicationDate(buffer, time);
  encodeApplicationTime(buffer, time);
};
var decode26 = (buffer, offset, length) => {
  let len = 0;
  let result;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 10 /* DATE */) {
    return void 0;
  }
  const date = decodeDate(buffer, offset + len);
  len += date.len;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 11 /* TIME */) {
    return void 0;
  }
  const time = decodeBacnetTime(buffer, offset + len);
  len += time.len;
  return {
    len,
    value: new Date(
      date.value.getFullYear(),
      date.value.getMonth(),
      date.value.getDate(),
      time.value.getHours(),
      time.value.getMinutes(),
      time.value.getSeconds(),
      time.value.getMilliseconds()
    )
  };
};

// src/services/who-has.ts
var who_has_exports = {};
__export(who_has_exports, {
  decode: () => decode27,
  encode: () => encode27
});
var encode27 = (buffer, lowLimit, highLimit, objectId, objectName) => {
  if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE) {
    encodeContextUnsigned(buffer, 0, lowLimit);
    encodeContextUnsigned(buffer, 1, highLimit);
  }
  if (objectName && objectName !== "") {
    encodeContextCharacterString(buffer, 3, objectName);
  } else {
    encodeContextObjectId(buffer, 2, objectId.type, objectId.instance);
  }
};
var decode27 = (buffer, offset, apduLen) => {
  let len = 0;
  let value = {};
  let decodedValue;
  let result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber === 0) {
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    if (decodedValue.value <= ASN1_MAX_INSTANCE) {
      value.lowLimit = decodedValue.value;
    }
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
  }
  if (result.tagNumber === 1) {
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    if (decodedValue.value <= ASN1_MAX_INSTANCE) {
      value.highLimit = decodedValue.value;
    }
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
  }
  if (result.tagNumber === 2) {
    decodedValue = decodeObjectId(buffer, offset + len);
    len += decodedValue.len;
    value.objectId = {
      type: decodedValue.objectType,
      instance: decodedValue.instance
    };
  }
  if (result.tagNumber === 3) {
    decodedValue = decodeCharacterString(
      buffer,
      offset + len,
      apduLen - (offset + len),
      result.value
    );
    len += decodedValue.len;
    value.objectName = decodedValue.value;
  }
  value.len = len;
  return value;
};

// src/services/who-is.ts
var who_is_exports = {};
__export(who_is_exports, {
  decode: () => decode28,
  encode: () => encode28
});
var encode28 = (buffer, lowLimit, highLimit) => {
  if (lowLimit >= 0 && lowLimit <= ASN1_MAX_INSTANCE && highLimit >= 0 && highLimit <= ASN1_MAX_INSTANCE) {
    encodeContextUnsigned(buffer, 0, lowLimit);
    encodeContextUnsigned(buffer, 1, highLimit);
  }
};
var decode28 = (buffer, offset, apduLen) => {
  let len = 0;
  let value = {};
  if (apduLen <= 0) {
    return {};
  }
  let result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 0) {
    return void 0;
  }
  if (apduLen <= len) {
    return void 0;
  }
  let decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  if (decodedValue.value <= ASN1_MAX_INSTANCE) {
    value.lowLimit = decodedValue.value;
  }
  if (apduLen <= len) {
    return void 0;
  }
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 1) {
    return void 0;
  }
  if (apduLen <= len) {
    return void 0;
  }
  decodedValue = decodeUnsigned(buffer, offset + len, result.value);
  len += decodedValue.len;
  if (decodedValue.value <= ASN1_MAX_INSTANCE) {
    value.highLimit = decodedValue.value;
  }
  value.len = len;
  return value;
};

// src/services/write-property.ts
var write_property_exports = {};
__export(write_property_exports, {
  decode: () => decode29,
  encode: () => encode29
});
var encode29 = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
  encodeContextObjectId(buffer, 0, objectType, objectInstance);
  encodeContextEnumerated(buffer, 1, propertyId);
  if (arrayIndex !== ASN1_ARRAY_ALL) {
    encodeContextUnsigned(buffer, 2, arrayIndex);
  }
  encodeOpeningTag(buffer, 3);
  values.forEach((value) => {
    bacappEncodeApplicationData(buffer, value);
  });
  encodeClosingTag(buffer, 3);
  if (priority !== ASN1_NO_PRIORITY) {
    encodeContextUnsigned(buffer, 4, priority);
  }
};
var decode29 = (buffer, offset, apduLen) => {
  let len = 0;
  let value = {
    property: {}
  };
  let decodedValue;
  let result;
  if (!decodeIsContextTag(buffer, offset + len, 0)) {
    return void 0;
  }
  len++;
  decodedValue = decodeObjectId(buffer, offset + len);
  let objectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  len += decodedValue.len;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 1) {
    return void 0;
  }
  decodedValue = decodeEnumerated(buffer, offset + len, result.value);
  len += decodedValue.len;
  value.property.id = decodedValue.value;
  result = decodeTagNumberAndValue(buffer, offset + len);
  if (result.tagNumber === 2) {
    len += result.len;
    decodedValue = decodeUnsigned(buffer, offset + len, result.value);
    len += decodedValue.len;
    value.property.index = decodedValue.value;
  } else {
    value.property.index = ASN1_ARRAY_ALL;
  }
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 3)) {
    return void 0;
  }
  len++;
  const values = [];
  while (apduLen - len > 1 && !decodeIsClosingTagNumber(buffer, offset + len, 3)) {
    decodedValue = bacappDecodeApplicationData(
      buffer,
      offset + len,
      apduLen + offset,
      objectId.type,
      value.property.id
    );
    if (!decodedValue) {
      return void 0;
    }
    len += decodedValue.len;
    delete decodedValue.len;
    values.push(decodedValue);
  }
  value.value = values;
  if (!decodeIsClosingTagNumber(buffer, offset + len, 3)) {
    return void 0;
  }
  len++;
  value.priority = ASN1_MAX_PRIORITY;
  if (len < apduLen) {
    result = decodeTagNumberAndValue(buffer, offset + len);
    if (result.tagNumber === 4) {
      len += result.len;
      decodedValue = decodeUnsigned(buffer, offset + len, result.value);
      len += decodedValue;
      if (decodedValue.value >= ASN1_MIN_PRIORITY && decodedValue.value <= ASN1_MAX_PRIORITY) {
        value.priority = decodedValue.value;
      } else {
        return void 0;
      }
    }
  }
  return {
    len,
    objectId,
    value
  };
};

// src/services/write-property-multiple.ts
var write_property_multiple_exports = {};
__export(write_property_multiple_exports, {
  decode: () => decode30,
  encode: () => encode30,
  encodeObject: () => encodeObject
});
var encode30 = (buffer, objectId, values) => {
  encodeContextObjectId(buffer, 0, objectId.type, objectId.instance);
  encodeOpeningTag(buffer, 1);
  values.forEach((pValue) => {
    encodeContextEnumerated(buffer, 0, pValue.property.id);
    if (pValue.property.index !== ASN1_ARRAY_ALL) {
      encodeContextUnsigned(buffer, 1, pValue.property.index);
    }
    encodeOpeningTag(buffer, 2);
    pValue.value.forEach((value) => {
      bacappEncodeApplicationData(buffer, value);
    });
    encodeClosingTag(buffer, 2);
    if (pValue.priority !== ASN1_NO_PRIORITY) {
      encodeContextUnsigned(buffer, 3, pValue.priority);
    }
  });
  encodeClosingTag(buffer, 1);
};
var decode30 = (buffer, offset, apduLen) => {
  let len = 0;
  let result;
  let decodedValue;
  let objectId;
  result = decodeTagNumberAndValue(buffer, offset + len);
  len += result.len;
  if (result.tagNumber !== 0 || apduLen <= len) {
    return void 0;
  }
  apduLen -= len;
  if (apduLen < 4) {
    return void 0;
  }
  decodedValue = decodeObjectId(buffer, offset + len);
  len += decodedValue.len;
  objectId = {
    type: decodedValue.objectType,
    instance: decodedValue.instance
  };
  if (!decodeIsOpeningTagNumber(buffer, offset + len, 1)) {
    return void 0;
  }
  len++;
  const _values = [];
  while (apduLen - len > 1) {
    let newEntry = {};
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber !== 0) {
      return void 0;
    }
    decodedValue = decodeEnumerated(buffer, offset + len, result.value);
    len += decodedValue.len;
    let propertyId = decodedValue.value;
    let arrayIndex = ASN1_ARRAY_ALL;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber === 1) {
      decodedValue = decodeUnsigned(buffer, offset + len, result.value);
      len += decodedValue.len;
      arrayIndex = decodedValue.value;
      result = decodeTagNumberAndValue(buffer, offset + len);
      len += result.len;
    }
    newEntry.property = { id: propertyId, index: arrayIndex };
    if (result.tagNumber !== 2 || !decodeIsOpeningTag(buffer, offset + len - 1)) {
      return void 0;
    }
    const values = [];
    while (len + offset <= buffer.length && !decodeIsClosingTag(buffer, offset + len)) {
      let value = bacappDecodeApplicationData(
        buffer,
        offset + len,
        apduLen + offset,
        objectId.type,
        propertyId
      );
      if (!value) {
        return void 0;
      }
      len += value.len;
      delete value.len;
      values.push(value);
    }
    len++;
    newEntry.value = values;
    let priority = ASN1_NO_PRIORITY;
    result = decodeTagNumberAndValue(buffer, offset + len);
    len += result.len;
    if (result.tagNumber === 3) {
      decodedValue = decodeUnsigned(buffer, offset + len, result.value);
      len += decodedValue.len;
      priority = decodedValue.value;
    } else {
      len--;
    }
    newEntry.priority = priority;
    _values.push(newEntry);
    if (decodeIsClosingTagNumber(buffer, offset + len, 1)) {
      len++;
    }
  }
  if (decodeIsClosingTagNumber(buffer, offset + len, 1)) {
    len++;
  }
  return {
    len,
    objectId,
    values: _values
  };
};
var encodeObject = (buffer, values) => {
  values.forEach((object) => {
    encode30(buffer, object.objectId, object.values);
  });
};

// src/apdu.ts
var getDecodedType = (buffer, offset) => {
  return buffer[offset];
};
var encodeConfirmedServiceRequest = (buffer, type, service, maxSegments, maxApdu, invokeId, sequencenumber, proposedWindowSize) => {
  buffer.buffer[buffer.offset++] = type;
  buffer.buffer[buffer.offset++] = maxSegments | maxApdu;
  buffer.buffer[buffer.offset++] = invokeId;
  if ((type & 8 /* SEGMENTED_MESSAGE */) > 0) {
    buffer.buffer[buffer.offset++] = sequencenumber;
    buffer.buffer[buffer.offset++] = proposedWindowSize;
  }
  buffer.buffer[buffer.offset++] = service;
};
var decodeConfirmedServiceRequest = (buffer, offset) => {
  const orgOffset = offset;
  const type = buffer[offset++];
  const maxSegments = buffer[offset] & 240;
  const maxApdu = buffer[offset++] & 15;
  const invokeId = buffer[offset++];
  let sequencenumber = 0;
  let proposedWindowNumber = 0;
  if ((type & 8 /* SEGMENTED_MESSAGE */) > 0) {
    sequencenumber = buffer[offset++];
    proposedWindowNumber = buffer[offset++];
  }
  const service = buffer[offset++];
  return {
    len: offset - orgOffset,
    type,
    service,
    maxSegments,
    maxApdu,
    invokeId,
    sequencenumber,
    proposedWindowNumber
  };
};
var encodeUnconfirmedServiceRequest = (buffer, type, service) => {
  buffer.buffer[buffer.offset++] = type;
  buffer.buffer[buffer.offset++] = service;
};
var decodeUnconfirmedServiceRequest = (buffer, offset) => {
  const orgOffset = offset;
  const type = buffer[offset++];
  const service = buffer[offset++];
  return {
    len: offset - orgOffset,
    type,
    service
  };
};
var encodeSimpleAck = (buffer, type, service, invokeId) => {
  buffer.buffer[buffer.offset++] = type;
  buffer.buffer[buffer.offset++] = invokeId;
  buffer.buffer[buffer.offset++] = service;
};
var decodeSimpleAck = (buffer, offset) => {
  const orgOffset = offset;
  const type = buffer[offset++];
  const invokeId = buffer[offset++];
  const service = buffer[offset++];
  return {
    len: offset - orgOffset,
    type,
    service,
    invokeId
  };
};
var encodeComplexAck = (buffer, type, service, invokeId, sequencenumber, proposedWindowNumber) => {
  let len = 3;
  buffer.buffer[buffer.offset++] = type;
  buffer.buffer[buffer.offset++] = invokeId;
  if ((type & 8 /* SEGMENTED_MESSAGE */) > 0) {
    buffer.buffer[buffer.offset++] = sequencenumber;
    buffer.buffer[buffer.offset++] = proposedWindowNumber;
    len += 2;
  }
  buffer.buffer[buffer.offset++] = service;
  return len;
};
var decodeComplexAck = (buffer, offset) => {
  const orgOffset = offset;
  const type = buffer[offset++];
  const invokeId = buffer[offset++];
  let sequencenumber = 0;
  let proposedWindowNumber = 0;
  if ((type & 8 /* SEGMENTED_MESSAGE */) > 0) {
    sequencenumber = buffer[offset++];
    proposedWindowNumber = buffer[offset++];
  }
  const service = buffer[offset++];
  return {
    len: offset - orgOffset,
    type,
    service,
    invokeId,
    sequencenumber,
    proposedWindowNumber
  };
};
var encodeSegmentAck = (buffer, type, originalInvokeId, sequencenumber, actualWindowSize) => {
  buffer.buffer[buffer.offset++] = type;
  buffer.buffer[buffer.offset++] = originalInvokeId;
  buffer.buffer[buffer.offset++] = sequencenumber;
  buffer.buffer[buffer.offset++] = actualWindowSize;
};
var decodeSegmentAck = (buffer, offset) => {
  const orgOffset = offset;
  const type = buffer[offset++];
  const originalInvokeId = buffer[offset++];
  const sequencenumber = buffer[offset++];
  const actualWindowSize = buffer[offset++];
  return {
    len: offset - orgOffset,
    type,
    originalInvokeId,
    sequencenumber,
    actualWindowSize
  };
};
var encodeResult = (buffer, resultCode) => {
  encodeUnsigned(buffer, resultCode, 2);
};
var encodeError = (buffer, type, service, invokeId) => {
  buffer.buffer[buffer.offset++] = type;
  buffer.buffer[buffer.offset++] = invokeId;
  buffer.buffer[buffer.offset++] = service;
};
var decodeError = (buffer, offset) => {
  const orgOffset = offset;
  const type = buffer[offset++];
  const invokeId = buffer[offset++];
  const service = buffer[offset++];
  return {
    len: offset - orgOffset,
    type,
    service,
    invokeId
  };
};
var decodeAbort = (buffer, offset) => {
  const orgOffset = offset;
  const type = buffer[offset++];
  const invokeId = buffer[offset++];
  const reason = buffer[offset++];
  return {
    len: offset - orgOffset,
    type,
    invokeId,
    reason
  };
};

// src/npdu.ts
var DEFAULT_HOP_COUNT = 255;
var BACNET_PROTOCOL_VERSION = 1;
var BACNET_ADDRESS_TYPES = {
  NONE: 0,
  IP: 1
};
var decodeTarget = (buffer, offset) => {
  let len = 0;
  const target = {
    type: BACNET_ADDRESS_TYPES.NONE,
    net: buffer[offset + len++] << 8 | buffer[offset + len++] << 0
  };
  const adrLen = buffer[offset + len++];
  if (adrLen > 0) {
    target.adr = [];
    for (let i = 0; i < adrLen; i++) {
      target.adr.push(buffer[offset + len++]);
    }
  }
  return {
    target,
    len
  };
};
var encodeTarget = (buffer, target) => {
  buffer.buffer[buffer.offset++] = (target.net & 65280) >> 8;
  buffer.buffer[buffer.offset++] = (target.net & 255) >> 0;
  if (target.net === 65535 || !target.adr) {
    buffer.buffer[buffer.offset++] = 0;
  } else {
    buffer.buffer[buffer.offset++] = target.adr.length;
    if (target.adr.length > 0) {
      for (let i = 0; i < target.adr.length; i++) {
        buffer.buffer[buffer.offset++] = target.adr[i];
      }
    }
  }
};
var decode31 = (buffer, offset) => {
  let adrLen;
  const orgOffset = offset;
  offset++;
  const funct = buffer[offset++];
  let destination;
  if (funct & 32 /* DESTINATION_SPECIFIED */) {
    const tmpDestination = decodeTarget(buffer, offset);
    offset += tmpDestination.len;
    destination = tmpDestination.target;
  }
  let source;
  if (funct & 8 /* SOURCE_SPECIFIED */) {
    const tmpSource = decodeTarget(buffer, offset);
    offset += tmpSource.len;
    source = tmpSource.target;
  }
  let hopCount = 0;
  if (funct & 32 /* DESTINATION_SPECIFIED */) {
    hopCount = buffer[offset++];
  }
  let networkMsgType = 0 /* WHO_IS_ROUTER_TO_NETWORK */;
  let vendorId = 0;
  if (funct & 128 /* NETWORK_LAYER_MESSAGE */) {
    networkMsgType = buffer[offset++];
    if (networkMsgType >= 128) {
      vendorId = buffer[offset++] << 8 | buffer[offset++] << 0;
    } else if (networkMsgType === 0 /* WHO_IS_ROUTER_TO_NETWORK */) {
      offset += 2;
    }
  }
  if (buffer[orgOffset + 0] !== BACNET_PROTOCOL_VERSION) {
    return void 0;
  }
  return {
    len: offset - orgOffset,
    funct,
    destination,
    source,
    hopCount,
    networkMsgType,
    vendorId
  };
};
var encode31 = (buffer, funct, destination, source, hopCount, networkMsgType, vendorId) => {
  const hasDestination = destination && destination.net > 0;
  const hasSource = source && source.net > 0 && source.net !== 65535;
  buffer.buffer[buffer.offset++] = BACNET_PROTOCOL_VERSION;
  buffer.buffer[buffer.offset++] = funct | (hasDestination ? 32 /* DESTINATION_SPECIFIED */ : 0) | (hasSource ? 8 /* SOURCE_SPECIFIED */ : 0);
  if (hasDestination) {
    encodeTarget(buffer, destination);
  }
  if (hasSource) {
    encodeTarget(buffer, source);
  }
  if (hasDestination) {
    buffer.buffer[buffer.offset++] = hopCount || DEFAULT_HOP_COUNT;
  }
  if ((funct & 128 /* NETWORK_LAYER_MESSAGE */) > 0) {
    buffer.buffer[buffer.offset++] = networkMsgType;
    if (networkMsgType >= 128) {
      buffer.buffer[buffer.offset++] = (vendorId & 65280) >> 8;
      buffer.buffer[buffer.offset++] = (vendorId & 255) >> 0;
    }
  }
};

// src/bvlc.ts
var DEFAULT_BACNET_PORT2 = 47808;
var encode32 = (buffer, func, msgLength, originatingIP) => {
  buffer[0] = BVLL_TYPE_BACNET_IP;
  buffer[1] = func;
  buffer[2] = (msgLength & 65280) >> 8;
  buffer[3] = (msgLength & 255) >> 0;
  if (originatingIP) {
    if (func !== 4 /* FORWARDED_NPDU */) {
      throw new Error(
        "Cannot specify originatingIP unless BvlcResultPurpose.FORWARDED_NPDU is used."
      );
    }
    const [ipstr, portstr] = originatingIP.split(":");
    const port = parseInt(portstr, 10) || DEFAULT_BACNET_PORT2;
    const ip = ipstr.split(".");
    buffer[4] = parseInt(ip[0], 10);
    buffer[5] = parseInt(ip[1], 10);
    buffer[6] = parseInt(ip[2], 10);
    buffer[7] = parseInt(ip[3], 10);
    buffer[8] = (port & 65280) >> 8;
    buffer[9] = (port & 255) >> 0;
    return 6 + BVLC_HEADER_LENGTH;
  } else {
    if (func === 4 /* FORWARDED_NPDU */) {
      throw new Error(
        "Must specify originatingIP if BvlcResultPurpose.FORWARDED_NPDU is used."
      );
    }
  }
  return BVLC_HEADER_LENGTH;
};
var decode32 = (buffer, _offset) => {
  let len;
  const func = buffer[1];
  const msgLength = buffer[2] << 8 | buffer[3] << 0;
  if (buffer[0] !== BVLL_TYPE_BACNET_IP || buffer.length !== msgLength) {
    return void 0;
  }
  let originatingIP = null;
  switch (func) {
    case 0 /* BVLC_RESULT */:
    case 10 /* ORIGINAL_UNICAST_NPDU */:
    case 11 /* ORIGINAL_BROADCAST_NPDU */:
    case 9 /* DISTRIBUTE_BROADCAST_TO_NETWORK */:
    case 5 /* REGISTER_FOREIGN_DEVICE */:
    case 6 /* READ_FOREIGN_DEVICE_TABLE */:
    case 8 /* DELETE_FOREIGN_DEVICE_TABLE_ENTRY */:
    case 2 /* READ_BROADCAST_DISTRIBUTION_TABLE */:
    case 1 /* WRITE_BROADCAST_DISTRIBUTION_TABLE */:
    case 3 /* READ_BROADCAST_DISTRIBUTION_TABLE_ACK */:
    case 7 /* READ_FOREIGN_DEVICE_TABLE_ACK */:
      len = 4;
      break;
    case 4 /* FORWARDED_NPDU */:
      const port = buffer[8] << 8 | buffer[9];
      originatingIP = buffer.slice(4, 8).join(".");
      if (port !== DEFAULT_BACNET_PORT2) {
        originatingIP += ":" + port;
      }
      len = 10;
      break;
    case 12 /* SECURE_BVLL */:
      return void 0;
    default:
      return void 0;
  }
  return {
    len,
    func,
    msgLength,
    // Originating IP is set to the IP address of the node that originally
    // sent the packet, when it has been forwarded to us by a BBMD (since the
    // BBMD's IP address will be in the sender field.
    originatingIP
  };
};

// src/client.ts
var EventEmitter2 = import_events2.default.EventEmitter;
var debug3 = (0, import_debug3.default)("bacnet:client:debug");
var trace2 = (0, import_debug3.default)("bacnet:client:trace");
var ALL_INTERFACES = "0.0.0.0";
var LOCALHOST_INTERFACES_IPV4 = "127.0.0.1";
var BROADCAST_ADDRESS = "255.255.255.255";
var DEFAULT_HOP_COUNT2 = 255;
var BVLC_HEADER_LENGTH2 = 4;
var BVLC_FWD_HEADER_LENGTH = 10;
var beU = UnconfirmedServiceChoice;
var unconfirmedServiceMap = {
  [beU.I_AM]: "iAm",
  [beU.WHO_IS]: "whoIs",
  [beU.WHO_HAS]: "whoHas",
  [beU.UNCONFIRMED_COV_NOTIFICATION]: "covNotifyUnconfirmed",
  [beU.TIME_SYNCHRONIZATION]: "timeSync",
  [beU.UTC_TIME_SYNCHRONIZATION]: "timeSyncUTC",
  [beU.UNCONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
  [beU.I_HAVE]: "iHave",
  [beU.UNCONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
};
var beC = ConfirmedServiceChoice;
var confirmedServiceMap = {
  [beC.READ_PROPERTY]: "readProperty",
  [beC.WRITE_PROPERTY]: "writeProperty",
  [beC.READ_PROPERTY_MULTIPLE]: "readPropertyMultiple",
  [beC.WRITE_PROPERTY_MULTIPLE]: "writePropertyMultiple",
  [beC.CONFIRMED_COV_NOTIFICATION]: "covNotify",
  [beC.ATOMIC_WRITE_FILE]: "atomicWriteFile",
  [beC.ATOMIC_READ_FILE]: "atomicReadFile",
  [beC.SUBSCRIBE_COV]: "subscribeCov",
  [beC.SUBSCRIBE_COV_PROPERTY]: "subscribeProperty",
  [beC.DEVICE_COMMUNICATION_CONTROL]: "deviceCommunicationControl",
  [beC.REINITIALIZE_DEVICE]: "reinitializeDevice",
  [beC.CONFIRMED_EVENT_NOTIFICATION]: "eventNotify",
  [beC.READ_RANGE]: "readRange",
  [beC.CREATE_OBJECT]: "createObject",
  [beC.DELETE_OBJECT]: "deleteObject",
  [beC.ACKNOWLEDGE_ALARM]: "alarmAcknowledge",
  [beC.GET_ALARM_SUMMARY]: "getAlarmSummary",
  [beC.GET_ENROLLMENT_SUMMARY]: "getEnrollmentSummary",
  [beC.GET_EVENT_INFORMATION]: "getEventInformation",
  [beC.LIFE_SAFETY_OPERATION]: "lifeSafetyOperation",
  [beC.ADD_LIST_ELEMENT]: "addListElement",
  [beC.REMOVE_LIST_ELEMENT]: "removeListElement",
  [beC.CONFIRMED_PRIVATE_TRANSFER]: "privateTransfer"
};
var errorReasonEnums = {
  BacnetAbort: RejectReason,
  another: AbortReason
};
var BacnetError = class extends Error {
  constructor(message, bacnetErrorClass, bacnetErrorCode) {
    super(message);
    this.bacnetErrorClass = bacnetErrorClass;
    this.bacnetErrorCode = bacnetErrorCode;
  }
};
function bacnetErrorToString(err) {
  var _a;
  const isError = err instanceof Error || err instanceof BacnetError;
  if (!isError)
    return;
  const message = err.message;
  const reasonClass = message == null ? void 0 : message.split(" - ")[0];
  const reason = +((_a = message == null ? void 0 : message.split("Reason:")[1]) == null ? void 0 : _a.split(" ")[0]);
  if (!errorReasonEnums[reasonClass])
    return;
  const reasonString = errorReasonEnums[reasonClass][reason];
  const alternativeReasonString = errorReasonEnums["another"][reason];
  return reasonClass + ": " + reasonString + "or alternatively it could be " + alternativeReasonString;
}
var Client = class extends EventEmitter2 {
  /**
   *
   * @param options
   */
  constructor(options) {
    super();
    options = options || {};
    this._invokeCounter = 1;
    this._invokeStore = {};
    this._lastSequenceNumber = 0;
    this._segmentStore = [];
    this._settings = {
      port: options.port || 47808,
      interface: options.interface || ALL_INTERFACES,
      transport: options.transport,
      broadcastAddress: options.broadcastAddress || BROADCAST_ADDRESS,
      apduTimeout: options.apduTimeout || 3e3
    };
    options.reuseAddr = options.reuseAddr === void 0 ? true : !!options.reuseAddr;
    this._transport = this._settings.transport || new Transport({
      port: this._settings.port,
      interface: this._settings.interface,
      broadcastAddress: this._settings.broadcastAddress,
      reuseAddr: options.reuseAddr
    });
    this._transport.on("message", this._receiveData.bind(this));
    this._transport.on("error", this._receiveError.bind(this));
    this._transport.on("listening", () => this.emit("listening"));
    this._transport.open();
  }
  /**
   *
   * @returns {number}
   * @private
   */
  _getInvokeId() {
    const id = this._invokeCounter++;
    if (id >= 256)
      this._invokeCounter = 1;
    return id - 1;
  }
  /**
   *
   * @param id
   * @param err
   * @param result
   * @returns {*}
   * @private
   */
  _invokeCallback(id, err, result) {
    const callback = this._invokeStore[id];
    if (callback) {
      return void callback(err, result);
    }
    debug3("InvokeId", id, "not found -> drop package");
  }
  /**
   *
   * @param id
   * @param callback
   * @private
   */
  _addCallback(id, callback) {
    const timeout = setTimeout(() => {
      delete this._invokeStore[id];
      callback(new Error("ERR_TIMEOUT"));
    }, this._settings.apduTimeout);
    this._invokeStore[id] = (err, data) => {
      clearTimeout(timeout);
      delete this._invokeStore[id];
      callback(err, data);
    };
  }
  /**
   *
   * @param isForwarded
   * @returns {{offset: (number), buffer: *}}
   * @private
   */
  _getBuffer(isForwarded) {
    return Object.assign(
      {},
      {
        buffer: Buffer.alloc(this._transport.getMaxPayload()),
        offset: isForwarded ? BVLC_FWD_HEADER_LENGTH : BVLC_HEADER_LENGTH2
      }
    );
  }
  /**
   *
   * @param invokeId
   * @param buffer
   * @param offset
   * @param length
   * @returns {*}
   * @private
   */
  _processError(invokeId, buffer, offset, length) {
    const result = error_exports.decode(buffer, offset);
    trace2("Received error:", result);
    if (!result) {
      return debug3("Couldn`t decode Error");
    }
    const err = new BacnetError(error_exports.buildMessage(result));
    err.bacnetErrorClass = result.class;
    err.bacnetErrorCode = result.code;
    this._invokeCallback(invokeId, err);
  }
  /**
   *
   * @param invokeId
   * @param reason
   * @private
   */
  _processAbort(invokeId, reason) {
    const err = new BacnetError("BacnetAbort - Reason:" + reason);
    err.bacnetAbortReason = reason;
    err.bacnetErrorClass = AbortReason;
    this._invokeCallback(invokeId, err);
  }
  /**
   *
   * @param receiver
   * @param negative
   * @param server
   * @param originalInvokeId
   * @param sequencenumber
   * @param actualWindowSize
   * @private
   */
  _segmentAckResponse(receiver, negative, server, originalInvokeId, sequencenumber, actualWindowSize) {
    const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */,
      receiver,
      null,
      DEFAULT_HOP_COUNT2,
      0 /* WHO_IS_ROUTER_TO_NETWORK */,
      0
    );
    encodeSegmentAck(
      buffer,
      64 /* SEGMENT_ACK */ | (negative ? 2 /* NEGATIVE_ACK */ : 0) | (server ? 1 /* SERVER */ : 0),
      originalInvokeId,
      sequencenumber,
      actualWindowSize
    );
    this.sendBvlc(receiver, buffer);
  }
  /**
   *
   * @param msg
   * @param first
   * @param moreFollows
   * @param buffer
   * @param offset
   * @param length
   * @private
   */
  _performDefaultSegmentHandling(msg, first, moreFollows, buffer, offset, length) {
    if (first) {
      this._segmentStore = [];
      msg.type &= ~8 /* SEGMENTED_MESSAGE */;
      let apduHeaderLen = 3;
      if ((msg.type & PDU_TYPE_MASK) === 0 /* CONFIRMED_REQUEST */) {
        apduHeaderLen = 4;
      }
      const apdubuffer = this._getBuffer();
      apdubuffer.offset = 0;
      buffer.copy(apdubuffer.buffer, apduHeaderLen, offset, offset + length);
      if ((msg.type & PDU_TYPE_MASK) === 0 /* CONFIRMED_REQUEST */) {
        encodeConfirmedServiceRequest(
          apdubuffer,
          msg.type,
          msg.service,
          msg.maxSegments,
          msg.maxApdu,
          msg.invokeId,
          0,
          0
        );
      } else {
        encodeComplexAck(
          apdubuffer,
          msg.type,
          msg.service,
          msg.invokeId,
          0,
          0
        );
      }
      this._segmentStore.push(
        //@ts-ignore
        apdubuffer.buffer.slice(0, length + apduHeaderLen)
      );
    } else {
      this._segmentStore.push(buffer.slice(offset, offset + length));
    }
    if (!moreFollows) {
      const apduBuffer = Buffer.concat(this._segmentStore);
      this._segmentStore = [];
      msg.type &= ~8 /* SEGMENTED_MESSAGE */;
      this._handlePdu(apduBuffer, 0, apduBuffer.length, msg.header);
    }
  }
  /**
   *
   * @param msg
   * @param server
   * @param buffer
   * @param offset
   * @param length
   * @private
   */
  _processSegment(msg, server, buffer, offset, length) {
    let first = false;
    if (msg.sequencenumber === 0 && this._lastSequenceNumber === 0) {
      first = true;
    } else {
      if (msg.sequencenumber !== this._lastSequenceNumber + 1) {
        return this._segmentAckResponse(
          msg.header.address,
          true,
          server,
          msg.invokeId,
          this._lastSequenceNumber,
          msg.proposedWindowNumber
        );
      }
    }
    this._lastSequenceNumber = msg.sequencenumber;
    const moreFollows = msg.type & 4 /* MORE_FOLLOWS */;
    if (!moreFollows) {
      this._lastSequenceNumber = 0;
    }
    if (msg.sequencenumber % msg.proposedWindowNumber === 0 || !moreFollows) {
      this._segmentAckResponse(
        msg.header.address,
        false,
        server,
        msg.invokeId,
        msg.sequencenumber,
        msg.proposedWindowNumber
      );
    }
    this._performDefaultSegmentHandling(
      msg,
      first,
      moreFollows,
      buffer,
      offset,
      length
    );
  }
  /**
   *
   * @param serviceMap
   * @param content
   * @param buffer
   * @param offset
   * @param length
   * @returns {*}
   * @private
   */
  _processServiceRequest(serviceMap, content, buffer, offset, length) {
    let result;
    const sender = content.header.sender;
    if (sender.address === LOCALHOST_INTERFACES_IPV4) {
      debug3("Received and skipped localhost service request:", content.service);
      return;
    }
    const name = serviceMap[content.service];
    if (!name) {
      debug3("Received unsupported service request:", content.service);
      return;
    }
    const id = content.invokeId ? "@" + content.invokeId : "";
    trace2(`Received service request${id}:`, name);
    const serviceHandler = services_exports[name];
    if (serviceHandler) {
      try {
        content.payload = serviceHandler.decode(buffer, offset, length);
        trace2(`Handled service request${id}:`, name, JSON.stringify(content));
      } catch (e) {
        debug3("Exception thrown when processing message:", e);
        debug3("Original message was", name + ":", content);
        return;
      }
      if (!content.payload) {
        return debug3("Received invalid", name, "message");
      }
    } else {
      debug3("No serviceHandler defined for:", name);
    }
    if (this.listenerCount(name)) {
      trace2("listener count by name emits " + name + " with content");
      this.emit(name, content);
    } else {
      if (this.listenerCount("unhandledEvent")) {
        trace2("unhandled event emiting with content");
        this.emit("unhandledEvent", content);
      } else {
        trace2(
          "no unhandled event handler with header: " + JSON.stringify(content.header)
        );
        if (content.header.expectingReply) {
          debug3("Replying with error for unhandled service:", name);
          content.header.sender.forwardedFrom = null;
          this.errorResponse(
            content.header.sender,
            content.service,
            content.invokeId,
            5 /* SERVICES */,
            67 /* REJECT_UNRECOGNIZED_SERVICE */
          );
        }
      }
    }
  }
  /**
   *
   * @param buffer
   * @param offset
   * @param length
   * @param header
   * @private
   */
  _handlePdu(buffer, offset, length, header) {
    let msg;
    trace2("handlePdu Header: ", header);
    switch (header.apduType & PDU_TYPE_MASK) {
      case 16 /* UNCONFIRMED_REQUEST */:
        msg = decodeUnconfirmedServiceRequest(buffer, offset);
        msg.header = header;
        msg.header.confirmedService = false;
        this._processServiceRequest(
          unconfirmedServiceMap,
          msg,
          buffer,
          offset + msg.len,
          length - msg.len
        );
        break;
      case 32 /* SIMPLE_ACK */:
        msg = decodeSimpleAck(buffer, offset);
        offset += msg.len;
        length -= msg.len;
        this._invokeCallback(msg.invokeId, null, {
          msg,
          buffer,
          offset: offset + msg.len,
          length: length - msg.len
        });
        break;
      case 48 /* COMPLEX_ACK */:
        msg = decodeComplexAck(buffer, offset);
        msg.header = header;
        if ((header.apduType & 8 /* SEGMENTED_MESSAGE */) === 0) {
          this._invokeCallback(msg.invokeId, null, {
            msg,
            buffer,
            offset: offset + msg.len,
            length: length - msg.len
          });
        } else {
          this._processSegment(
            msg,
            true,
            buffer,
            offset + msg.len,
            length - msg.len
          );
        }
        break;
      case 64 /* SEGMENT_ACK */:
        msg = decodeSegmentAck(buffer, offset);
        msg.header = header;
        this._processSegment(
          msg,
          true,
          buffer,
          offset + msg.len,
          length - msg.len
        );
        break;
      case 80 /* ERROR */:
        msg = decodeError(buffer, offset);
        this._processError(
          msg.invokeId,
          buffer,
          offset + msg.len,
          length - msg.len
        );
        break;
      case 96 /* REJECT */:
      case 112 /* ABORT */:
        msg = decodeAbort(buffer, offset);
        this._processAbort(msg.invokeId, msg.reason);
        break;
      case 0 /* CONFIRMED_REQUEST */:
        msg = decodeConfirmedServiceRequest(buffer, offset);
        msg.header = header;
        msg.header.confirmedService = true;
        if ((header.apduType & 8 /* SEGMENTED_MESSAGE */) === 0) {
          this._processServiceRequest(
            confirmedServiceMap,
            msg,
            buffer,
            offset + msg.len,
            length - msg.len
          );
        } else {
          this._processSegment(
            msg,
            true,
            buffer,
            offset + msg.len,
            length - msg.len
          );
        }
        break;
      default:
        debug3(`Received unknown PDU type ${header.apduType} -> Drop packet`);
        break;
    }
  }
  /**
   *
   * @param buffer
   * @param offset
   * @param msgLength
   * @param header
   * @returns {*}
   * @private
   */
  _handleNpdu(buffer, offset, msgLength, header) {
    if (msgLength <= 0) {
      return trace2("No NPDU data -> Drop package");
    }
    const result = decode31(buffer, offset);
    if (!result) {
      return trace2("Received invalid NPDU header -> Drop package");
    }
    if (result.funct & 128 /* NETWORK_LAYER_MESSAGE */) {
      return trace2("Received network layer message -> Drop package");
    }
    offset += result.len;
    msgLength -= result.len;
    if (msgLength <= 0) {
      return trace2("No APDU data -> Drop package");
    }
    header.apduType = getDecodedType(buffer, offset);
    header.expectingReply = !!(result.funct & 4 /* EXPECTING_REPLY */);
    this._handlePdu(buffer, offset, msgLength, header);
  }
  /**
   *
   * @param buffer
   * @param remoteAddress
   * @returns {*}
   * @private
   */
  _receiveData(buffer, remoteAddress) {
    if (buffer.length < BVLC_HEADER_LENGTH) {
      return trace2("Received invalid data -> Drop package");
    }
    const result = decode32(buffer, 0);
    if (!result) {
      return trace2("Received invalid BVLC header -> Drop package");
    }
    let header = {
      // Which function the packet came in on, so later code can distinguish
      // between ORIGINAL_BROADCAST_NPDU and DISTRIBUTE_BROADCAST_TO_NETWORK.
      func: result.func,
      sender: {
        // Address of the host we are directly connected to. String, IP:port.
        address: remoteAddress,
        // If the host is a BBMD passing messages along to another node, this
        // is the address of the distant BACnet node.  String, IP:port.
        // Typically we won't have network connectivity to this address, but
        // we have to include it in replies so the host we are connect to knows
        // where to forward the messages.
        forwardedFrom: null
      }
    };
    switch (result.func) {
      case 10 /* ORIGINAL_UNICAST_NPDU */:
      case 11 /* ORIGINAL_BROADCAST_NPDU */:
        this._handleNpdu(
          buffer,
          result.len,
          buffer.length - result.len,
          header
        );
        break;
      case 4 /* FORWARDED_NPDU */:
        header.sender.forwardedFrom = result.originatingIP;
        this._handleNpdu(
          buffer,
          result.len,
          buffer.length - result.len,
          header
        );
        break;
      case 5 /* REGISTER_FOREIGN_DEVICE */:
        let decodeResult = register_foreign_device_exports.decode(
          buffer,
          result.len,
          buffer.length - result.len
        );
        if (!decodeResult) {
          return trace2("Received invalid registerForeignDevice message");
        }
        this.emit("registerForeignDevice", {
          header,
          payload: decodeResult
        });
        break;
      case 9 /* DISTRIBUTE_BROADCAST_TO_NETWORK */:
        this._handleNpdu(
          buffer,
          result.len,
          buffer.length - result.len,
          header
        );
        break;
      default:
        debug3(
          "Received unknown BVLC function " + result.func + " -> Drop package"
        );
        break;
    }
  }
  /**
   * @event bacnet.error
   * @param {error} err - The error object thrown by the underlying transport layer.
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * client.on('error', (err) => {
   *   console.log('Error occurred: ', err);
   *   client.close();
   * });
   */
  _receiveError(err) {
    this.emit("error", err);
  }
  /**
   * The whoIs command discovers all BACNET devices in a network.
   * @function bacnet.whoIs
   * @param {string} receiver - IP address of the target device.
   * @param {object=} options
   * @param {number=} options.lowLimit - Minimal device instance number to search for.
   * @param {number=} options.highLimit - Maximal device instance number to search for.
   * @fires bacnet.iAm
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * client.whoIs();
   */
  whoIs(receiver, options) {
    if (!options) {
      if (receiver && typeof receiver === "object" && receiver.address === void 0 && receiver.forwardedFrom === void 0 && (receiver.lowLimit !== void 0 || receiver.highLimit !== void 0)) {
        options = receiver;
        receiver = void 0;
      }
    }
    options = options || {};
    const settings = {
      lowLimit: options.lowLimit,
      highLimit: options.highLimit
    };
    const buffer = this._getBuffer(receiver && receiver.forwardedFrom);
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */,
      //@ts-ignore
      receiver,
      null,
      DEFAULT_HOP_COUNT2,
      0 /* WHO_IS_ROUTER_TO_NETWORK */,
      0
    );
    encodeUnconfirmedServiceRequest(
      buffer,
      16 /* UNCONFIRMED_REQUEST */,
      8 /* WHO_IS */
    );
    who_is_exports.encode(buffer, settings.lowLimit, settings.highLimit);
    this.sendBvlc(receiver, buffer);
  }
  /**
   * The timeSync command sets the time of a target device.
   * @function bacnet.timeSync
   * @param {string} receiver - IP address of the target device.
   * @param {date} dateTime - The date and time to set on the target device.
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * client.timeSync('192.168.1.43', new Date());
   */
  timeSync(receiver, dateTime) {
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(buffer, 0 /* NORMAL_MESSAGE */, receiver);
    encodeUnconfirmedServiceRequest(
      buffer,
      16 /* UNCONFIRMED_REQUEST */,
      6 /* TIME_SYNCHRONIZATION */
    );
    time_sync_exports.encode(buffer, dateTime);
    this.sendBvlc(receiver, buffer);
  }
  /**
   * The timeSyncUTC command sets the UTC time of a target device.
   * @function bacnet.timeSyncUTC
   * @param {string} receiver - IP address of the target device.
   * @param {date} dateTime - The date and time to set on the target device.
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * client.timeSyncUTC('192.168.1.43', new Date());
   */
  timeSyncUTC(receiver, dateTime) {
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(buffer, 0 /* NORMAL_MESSAGE */, receiver);
    encodeUnconfirmedServiceRequest(
      buffer,
      16 /* UNCONFIRMED_REQUEST */,
      9 /* UTC_TIME_SYNCHRONIZATION */
    );
    time_sync_exports.encode(buffer, dateTime);
    this.sendBvlc(receiver, buffer);
  }
  /**
   * The readProperty command reads a single property of an object from a device.
   * @function bacnet.readProperty
   * @param {string} receiver - IP address of the target device.
   * @param {object} objectId - The BACNET object ID to read.
   * @param {number} objectId.type - The BACNET object type to read.
   * @param {number} objectId.instance - The BACNET object instance to read.
   * @param {number} propertyId - The BACNET property id in the specified object to read.
   * @param {object=} options
   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
   * @param {number=} options.arrayIndex - The array index of the property to be read.
   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * client.readProperty('192.168.1.43', {type: 8, instance: 44301}, 28, (err, value) => {
   *   console.log('value: ', value);
   * });
   */
  readProperty(receiver, objectId, propertyId, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId(),
      arrayIndex: options.arrayIndex || options.arrayIndex === 0 ? options.arrayIndex : ASN1_ARRAY_ALL
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      //@ts-ignore
      receiver,
      null,
      DEFAULT_HOP_COUNT2,
      0 /* WHO_IS_ROUTER_TO_NETWORK */,
      0
    );
    const type = 0 /* CONFIRMED_REQUEST */ | //@ts-ignore
    (settings.maxSegments !== 0 /* SEGMENTS_0 */ ? 2 /* SEGMENTED_RESPONSE_ACCEPTED */ : 0);
    encodeConfirmedServiceRequest(
      buffer,
      type,
      12 /* READ_PROPERTY */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    read_property_exports.encode(
      buffer,
      objectId.type,
      objectId.instance,
      propertyId,
      settings.arrayIndex
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      const result = read_property_exports.decodeAcknowledge(
        data.buffer,
        data.offset,
        data.length
      );
      if (!result) {
        return void next(new Error("INVALID_DECODING"));
      }
      next(null, result);
    });
  }
  /**
   * The writeProperty command writes a single property of an object to a device.
   * @function bacnet.writeProperty
   * @param {string} receiver - IP address of the target device.
   * @param {object} objectId - The BACNET object ID to write.
   * @param {number} objectId.type - The BACNET object type to write.
   * @param {number} objectId.instance - The BACNET object instance to write.
   * @param {number} propertyId - The BACNET property id in the specified object to write.
   * @param {object[]} values - A list of values to be written to the specified property.
   * @param {ApplicationTag} values.type - The data-type of the value to be written.
   * @param {number} values.value - The actual value to be written.
   * @param {object=} options
   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
   * @param {number=} options.arrayIndex - The array index of the property to be read.
   * @param {number=} options.priority - The priority of the value to be written.
   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * client.writeProperty('192.168.1.43', {type: 8, instance: 44301}, 28, [
   *   {type: bacnet.enum.ApplicationTag.REAL, value: 100}
   * ], (err, value) => {
   *   console.log('value: ', value);
   * });
   */
  writeProperty(receiver, objectId, propertyId, values, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId(),
      arrayIndex: options.arrayIndex || ASN1_ARRAY_ALL,
      priority: options.priority || ASN1_NO_PRIORITY
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      //@ts-ignore Todo somehow types do not match at all
      receiver,
      null,
      DEFAULT_HOP_COUNT2,
      0 /* WHO_IS_ROUTER_TO_NETWORK */,
      0
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      15 /* WRITE_PROPERTY */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    write_property_exports.encode(
      buffer,
      objectId.type,
      objectId.instance,
      propertyId,
      settings.arrayIndex,
      settings.priority,
      values
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      next(err);
    });
  }
  /**
   * The readPropertyMultiple command reads multiple properties in multiple objects from a device.
   * @function bacnet.readPropertyMultiple
   * @param {string} receiver - IP address of the target device.
   * @param {object[]} propertiesArray - List of object and property specifications to be read.
   * @param {object} propertiesArray.objectId - Specifies which object to read.
   * @param {number} propertiesArray.objectId.type - The BACNET object type to read.
   * @param {number} propertiesArray.objectId.instance - The BACNET object instance to read.
   * @param {object[]} propertiesArray.properties - List of properties to be read.
   * @param {number} propertiesArray.properties.id - The BACNET property id in the specified object to read. Also supports 8 for all properties.
   * @param {object=} options
   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * const requestArray = [
   *   {objectId: {type: 8, instance: 4194303}, properties: [{id: 8}]}
   * ];
   * client.readPropertyMultiple('192.168.1.43', requestArray, (err, value) => {
   *   console.log('value: ', value);
   * });
   */
  readPropertyMultiple(receiver, propertiesArray, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const isForwarded = typeof receiver !== "string" && receiver.forwardedFrom;
    const buffer = this._getBuffer(!!isForwarded);
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      //@ts-ignore Todo somehow types do not match at all
      receiver,
      null,
      DEFAULT_HOP_COUNT2,
      0 /* WHO_IS_ROUTER_TO_NETWORK */,
      0
    );
    const type = 0 /* CONFIRMED_REQUEST */ | //@ts-ignore
    (settings.maxSegments !== 0 /* SEGMENTS_0 */ ? 2 /* SEGMENTED_RESPONSE_ACCEPTED */ : 0);
    encodeConfirmedServiceRequest(
      buffer,
      type,
      14 /* READ_PROPERTY_MULTIPLE */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    read_property_multiple_exports.encode(buffer, propertiesArray);
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return next(err);
      }
      const result = read_property_multiple_exports.decodeAcknowledge(
        data.buffer,
        data.offset,
        data.length
      );
      if (!result) {
        return next(new Error("INVALID_DECODING"));
      }
      next(null, result);
    });
  }
  /**
   * The writePropertyMultiple command writes multiple properties in multiple objects to a device.
   * @function bacnet.writePropertyMultiple
   * @param {string} receiver - IP address of the target device.
   * @param {object[]} values - List of object and property specifications to be written.
   * @param {object} values.objectId - Specifies which object to read.
   * @param {number} values.objectId.type - The BACNET object type to read.
   * @param {number} values.objectId.instance - The BACNET object instance to read.
   * @param {object[]} values.values - List of properties to be written.
   * @param {object} values.values.property - Property specifications to be written.
   * @param {number} values.values.property.id - The BACNET property id in the specified object to write.
   * @param {number} values.values.property.index - The array index of the property to be written.
   * @param {object[]} values.values.value - A list of values to be written to the specified property.
   * @param {ApplicationTag} values.values.value.type - The data-type of the value to be written.
   * @param {object} values.values.value.value - The actual value to be written.
   * @param {number} values.values.priority - The priority to be used for writing to the property.
   * @param {object=} options
   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * const values = [
   *   {objectId: {type: 8, instance: 44301}, values: [
   *     {property: {id: 28, index: 12}, value: [{type: bacnet.enum.ApplicationTag.BOOLEAN, value: true}], priority: 8}
   *   ]}
   * ];
   * client.writePropertyMultiple('192.168.1.43', values, (err, value) => {
   *   console.log('value: ', value);
   * });
   */
  writePropertyMultiple(receiver, values, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      //@ts-ignore
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      16 /* WRITE_PROPERTY_MULTIPLE */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId
    );
    write_property_multiple_exports.encodeObject(buffer, values);
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      next(err);
    });
  }
  /**
   * The confirmedCOVNotification command is used to push notifications to other
   * systems that have registered with us via a subscribeCOV message.
   * @function bacnet.confirmedCOVNotification
   * @param {string} receiver - IP address of the target device.
   * @param {object} monitoredObject - The object being monitored, from subscribeCOV.
   * @param {number} monitoredObject.type - Object type.
   * @param {number} monitoredObject.instance - Object instance.
   * @param {number} subscribeId - Subscriber ID from subscribeCOV,
   * @param {number} initiatingDeviceId - Our BACnet device ID.
   * @param {number} lifetime - Number of seconds left until the subscription expires.
   * @param {array} values - values for the monitored object.  See example.
   * @param {object=} options
   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * const settings = {deviceId: 123}; // our BACnet device
   *
   * // Items saved from subscribeCOV message
   * const monitoredObject = {type: 1, instance: 1};
   * const subscriberProcessId = 123;
   *
   * client.confirmedCOVNotification(
   *   '192.168.1.43',
   *   monitoredObject,
   *   subscriberProcessId,
   *   settings.deviceId,
   *   30, // should be lifetime of subscription really
   *   [
   *     {
   *       property: { id: bacnet.enum.PropertyIdentifier.PRESENT_VALUE },
   *       value: [
   *         {value: 123, type: bacnet.enum.ApplicationTag.REAL},
   *       ],
   *     },
   *   ],
   *   (err) => {
   *     console.log('error: ', err);
   *   }
   * );
   */
  confirmedCOVNotification(receiver, monitoredObject, subscribeId, initiatingDeviceId, lifetime, values, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer();
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      1 /* CONFIRMED_COV_NOTIFICATION */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    cov_notify_exports.encode(
      buffer,
      subscribeId,
      initiatingDeviceId,
      monitoredObject,
      lifetime,
      values
    );
    encode32(
      buffer.buffer,
      10 /* ORIGINAL_UNICAST_NPDU */,
      buffer.offset
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      next();
    });
  }
  /**
   * The deviceCommunicationControl command enables or disables network communication of the target device.
   * @function bacnet.deviceCommunicationControl
   * @param {string} receiver - IP address of the target device.
   * @param {number} timeDuration - The time to hold the network communication state in seconds. 0 for infinite.
   * @param {EnableDisable} enableDisable - The network communication state to set.
   * @param {object=} options
   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
   * @param {string=} options.password - The optional password used to set the network communication state.
   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * client.deviceCommunicationControl('192.168.1.43', 0, bacnet.enum.EnableDisable.DISABLE, (err) => {
   *   console.log('error: ', err);
   * });
   */
  deviceCommunicationControl(receiver, timeDuration, enableDisable, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId(),
      password: options.password
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      17 /* DEVICE_COMMUNICATION_CONTROL */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    device_communication_control_exports.encode(
      buffer,
      timeDuration,
      enableDisable,
      settings.password
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      next(err);
    });
  }
  /**
   * The reinitializeDevice command initiates a restart of the target device.
   * @function bacnet.reinitializeDevice
   * @param {string} receiver - IP address of the target device.
   * @param {ReinitializedState} state - The type of restart to be initiated.
   * @param {object=} options
   * @param {MaxSegmentsAccepted=} options.maxSegments - The maximimal allowed number of segments.
   * @param {MaxApduLengthAccepted=} options.maxApdu - The maximal allowed APDU size.
   * @param {number=} options.invokeId - The invoke ID of the confirmed service telegram.
   * @param {string=} options.password - The optional password used to restart the device.
   * @param {function} next - The callback containing an error, in case of a failure and value object in case of success.
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * client.reinitializeDevice('192.168.1.43', bacnet.enum.ReinitializedState.COLDSTART, (err, value) => {
   *   console.log('value: ', value);
   * });
   */
  reinitializeDevice(receiver, state, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId(),
      password: options.password
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      20 /* REINITIALIZE_DEVICE */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    reinitialize_device_exports.encode(buffer, state, settings.password);
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      next(err);
    });
  }
  /**
   *
   * @param receiver
   * @param objectId
   * @param position
   * @param fileBuffer
   * @param options
   * @param next
   */
  writeFile(receiver, objectId, position, fileBuffer, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      7 /* ATOMIC_WRITE_FILE */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    atomic_write_file_exports.encode(
      buffer,
      false,
      objectId,
      position,
      fileBuffer
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      const result = atomic_write_file_exports.decodeAcknowledge(
        data.buffer,
        data.offset,
        data.length
      );
      if (!result) {
        return void next(new Error("INVALID_DECODING"));
      }
      next(null, result);
    });
  }
  /**
   *
   * @param receiver
   * @param objectId
   * @param position
   * @param count
   * @param options
   * @param next
   */
  readFile(receiver, objectId, position, count, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      6 /* ATOMIC_READ_FILE */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    atomic_read_file_exports.encode(buffer, true, objectId, position, count);
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      const result = atomic_read_file_exports.decodeAcknowledge(
        data.buffer,
        data.offset,
        data.length
      );
      if (!result) {
        return void next(new Error("INVALID_DECODING"));
      }
      next(null, result);
    });
  }
  /**
   *
   * @param receiver
   * @param objectId
   * @param idxBegin
   * @param quantity
   * @param options
   * @param next
   */
  readRange(receiver, objectId, idxBegin, quantity, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      26 /* READ_RANGE */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    read_range_exports.encode(
      buffer,
      objectId,
      131 /* LOG_BUFFER */,
      ASN1_ARRAY_ALL,
      0 /* BY_POSITION */,
      idxBegin,
      /* @__PURE__ */ new Date(),
      quantity
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      const result = read_range_exports.decodeAcknowledge(
        data.buffer,
        data.offset,
        data.length
      );
      if (!result) {
        return void next(new Error("INVALID_DECODING"));
      }
      next(null, result);
    });
  }
  /**
   *
   * @param receiver
   * @param objectId
   * @param subscribeId
   * @param cancel
   * @param issueConfirmedNotifications
   * @param lifetime
   * @param options
   * @param next
   */
  subscribeCov(receiver, objectId, subscribeId, cancel, issueConfirmedNotifications, lifetime, options, nextFunc) {
    const next = nextFunc || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      // @ts-ignore TODO types not matching with documentation and code
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      5 /* SUBSCRIBE_COV */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    subscribe_cov_exports.encode(
      buffer,
      subscribeId,
      objectId,
      cancel,
      issueConfirmedNotifications,
      lifetime
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      next();
    });
  }
  /**
   *
   * @param receiver
   * @param objectId
   * @param monitoredProperty
   * @param subscribeId
   * @param cancel
   * @param issueConfirmedNotifications
   * @param options
   * @param next
   */
  subscribeProperty(receiver, objectId, monitoredProperty, subscribeId, cancel, issueConfirmedNotifications, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      28 /* SUBSCRIBE_COV_PROPERTY */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    subscribe_property_exports.encode(
      buffer,
      subscribeId,
      objectId,
      cancel,
      issueConfirmedNotifications,
      0,
      monitoredProperty,
      false,
      15
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      next();
    });
  }
  /**
   * The unconfirmedCOVNotification command sends an unconfirmed COV notification to a device
   * @function bacnet.unconfirmedCOVNotification
   * @param {string} receiver - IP address of the target device.
   * @param {number} subscriberProcessId - The process id which was used by a target device in the subscription.
   * @param {number} initiatingDeviceId - The id of this device.
   * @param {object} monitoredObjectId - Specifies about which object the notification is.
   * @param {number} monitoredObjectId.type - The BACNET object type of the notification.
   * @param {number} monitoredObjectId.instance - The BACNET object instance of the notification.
   * @param {number} timeRemaining - How long the subscription is still active in seconds.
   * @param {object[]} values - List of properties with updated values.
   * @param {object} values.property - Property specifications.
   * @param {number} values.property.id - The updated BACNET property id.
   * @param {number} values.property.index - The array index of the updated property.
   * @param {object[]} values.value - A list of updated values.
   * @param {ApplicationTag} values.value.type - The data-type of the updated value.
   * @param {object} values.value.value - The actual updated value.
   * @param {number} values.priority - The priority of the updated property.
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * client.unconfirmedCOVNotification(
   *            '127.0.0.1',
   *            3,
   *            433,
   *            {type: 2, instance: 122},
   *            120,
   *            [
   *              {
   *                property: {id: 85},
   *                value: [{type: baEnum.ApplicationTag.REAL, value: 12.3}]
   *              },
   *              {
   *                property: {id: 111},
   *                value: [{type: baEnum.ApplicationTag.BIT_STRING, value: 0xFFFF}]
   *              }
   *            ]);
   */
  unconfirmedCOVNotification(receiver, subscriberProcessId, initiatingDeviceId, monitoredObjectId, timeRemaining, values) {
    const buffer = this._getBuffer();
    encode31(buffer, 0 /* NORMAL_MESSAGE */, receiver);
    encodeUnconfirmedServiceRequest(
      buffer,
      16 /* UNCONFIRMED_REQUEST */,
      2 /* UNCONFIRMED_COV_NOTIFICATION */
    );
    cov_notify_exports.encode(
      buffer,
      subscriberProcessId,
      initiatingDeviceId,
      monitoredObjectId,
      timeRemaining,
      values
    );
    encode32(
      buffer.buffer,
      10 /* ORIGINAL_UNICAST_NPDU */,
      buffer.offset
    );
    this._transport.send(buffer.buffer, buffer.offset, receiver);
  }
  /**
   *
   * @param receiver
   * @param objectId
   * @param values
   * @param options
   * @param next
   */
  createObject(receiver, objectId, values, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      10 /* CREATE_OBJECT */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    create_object_exports.encode(buffer, objectId, values);
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      next();
    });
  }
  /**
   *
   * @param receiver
   * @param objectId
   * @param options
   * @param next
   */
  deleteObject(receiver, objectId, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      11 /* DELETE_OBJECT */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    delete_object_exports.encode(buffer, objectId);
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      next();
    });
  }
  /**
   *
   * @param receiver
   * @param objectId
   * @param reference
   * @param values
   * @param options
   * @param next
   */
  removeListElement(receiver, objectId, reference, values, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      9 /* REMOVE_LIST_ELEMENT */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    add_list_element_exports.encode(
      buffer,
      objectId,
      reference.id,
      reference.index,
      values
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      next();
    });
  }
  /**
   *
   * @param receiver
   * @param objectId
   * @param reference
   * @param values
   * @param options
   * @param next
   */
  addListElement(receiver, objectId, reference, values, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      8 /* ADD_LIST_ELEMENT */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    add_list_element_exports.encode(
      buffer,
      objectId,
      reference.id,
      reference.index,
      values
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      next();
    });
  }
  /**
   *
   * @param receiver
   * @param options
   * @param next
   */
  getAlarmSummary(receiver, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      3 /* GET_ALARM_SUMMARY */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      const result = alarm_summary_exports.decode(
        data.buffer,
        data.offset,
        data.length
      );
      if (!result) {
        return void next(new Error("INVALID_DECODING"));
      }
      next(null, result);
    });
  }
  /**
   *
   * @param receiver
   * @param objectId
   * @param options
   * @param next
   */
  getEventInformation(receiver, objectId, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      29 /* GET_EVENT_INFORMATION */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    encodeContextObjectId(buffer, 0, objectId.type, objectId.instance);
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      const result = event_information_exports.decode(
        data.buffer,
        data.offset,
        data.length
      );
      if (!result) {
        return void next(new Error("INVALID_DECODING"));
      }
      next(null, result);
    });
  }
  /**
   *
   * @param receiver
   * @param objectId
   * @param eventState
   * @param ackText
   * @param evTimeStamp
   * @param ackTimeStamp
   * @param options
   * @param next
   */
  acknowledgeAlarm(receiver, objectId, eventState, ackText, evTimeStamp, ackTimeStamp, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      0 /* ACKNOWLEDGE_ALARM */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    alarm_acknowledge_exports.encode(
      buffer,
      57,
      objectId,
      eventState,
      ackText,
      evTimeStamp,
      ackTimeStamp
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      next();
    });
  }
  /**
   *
   * @param receiver
   * @param vendorId
   * @param serviceNumber
   * @param data
   * @param options
   * @param next
   */
  confirmedPrivateTransfer(receiver, vendorId, serviceNumber, data, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      18 /* CONFIRMED_PRIVATE_TRANSFER */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    private_transfer_exports.encode(buffer, vendorId, serviceNumber, data);
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data2) => {
      if (err) {
        return void next(err);
      }
      next();
    });
  }
  /**
   *
   * @param receiver
   * @param vendorId
   * @param serviceNumber
   * @param data
   */
  unconfirmedPrivateTransfer(receiver, vendorId, serviceNumber, data) {
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(buffer, 0 /* NORMAL_MESSAGE */, receiver);
    encodeUnconfirmedServiceRequest(
      buffer,
      16 /* UNCONFIRMED_REQUEST */,
      4 /* UNCONFIRMED_PRIVATE_TRANSFER */
    );
    private_transfer_exports.encode(buffer, vendorId, serviceNumber, data);
    this.sendBvlc(receiver, buffer);
  }
  /**
   *
   * @param receiver
   * @param acknowledgmentFilter
   * @param options
   * @param next
   */
  getEnrollmentSummary(receiver, acknowledgmentFilter, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      4 /* GET_ENROLLMENT_SUMMARY */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    get_enrollment_summary_exports.encode(
      buffer,
      acknowledgmentFilter,
      options.enrollmentFilter,
      options.eventStateFilter,
      options.eventTypeFilter,
      options.priorityFilter,
      options.notificationClassFilter
    );
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      const result = get_enrollment_summary_exports.decodeAcknowledge(
        data.buffer,
        data.offset,
        data.length
      );
      if (!result) {
        return void next(new Error("INVALID_DECODING"));
      }
      next(null, result);
    });
  }
  /**
   *
   * @param receiver
   * @param eventNotification
   */
  unconfirmedEventNotification(receiver, eventNotification) {
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(buffer, 0 /* NORMAL_MESSAGE */, receiver);
    encodeUnconfirmedServiceRequest(
      buffer,
      16 /* UNCONFIRMED_REQUEST */,
      3 /* UNCONFIRMED_EVENT_NOTIFICATION */
    );
    event_notify_data_exports.encode(buffer, eventNotification);
    this.sendBvlc(receiver, buffer);
  }
  /**
   *
   * @param receiver
   * @param eventNotification
   * @param options
   * @param next
   */
  confirmedEventNotification(receiver, eventNotification, options, next) {
    next = next || options;
    const settings = {
      maxSegments: options.maxSegments || 112 /* SEGMENTS_65 */,
      maxApdu: options.maxApdu || 5 /* OCTETS_1476 */,
      invokeId: options.invokeId || this._getInvokeId()
    };
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(
      buffer,
      0 /* NORMAL_MESSAGE */ | 4 /* EXPECTING_REPLY */,
      receiver
    );
    encodeConfirmedServiceRequest(
      buffer,
      0 /* CONFIRMED_REQUEST */,
      2 /* CONFIRMED_EVENT_NOTIFICATION */,
      settings.maxSegments,
      settings.maxApdu,
      settings.invokeId,
      0,
      0
    );
    event_notify_data_exports.encode(buffer, eventNotification);
    this.sendBvlc(receiver, buffer);
    this._addCallback(settings.invokeId, (err, data) => {
      if (err) {
        return void next(err);
      }
      next();
    });
  }
  /**
   * The readPropertyResponse call sends a response with information about one of our properties.
   * @function bacnet.readPropertyResponse
   * @param {string} receiver - IP address of the target device.
   * @param {number} invokeId - ID of the original readProperty request.
   * @param {object} objectId - objectId from the original request,
   * @param {object} property - property being read, taken from the original request.
   * @param {object=} options varying behaviour for special circumstances
   * @param {string=} options.forwardedFrom - If functioning as a BBMD, the IP address this message originally came from.
   */
  readPropertyResponse(receiver, invokeId, objectId, property, value, options = {}) {
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(buffer, 0 /* NORMAL_MESSAGE */, receiver);
    encodeComplexAck(
      buffer,
      48 /* COMPLEX_ACK */,
      12 /* READ_PROPERTY */,
      invokeId
    );
    read_property_exports.encodeAcknowledge(
      buffer,
      objectId,
      property.id,
      property.index,
      value
    );
    this.sendBvlc(receiver, buffer);
  }
  readPropertyMultipleResponse(receiver, invokeId, values) {
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(buffer, 0 /* NORMAL_MESSAGE */, receiver);
    encodeComplexAck(
      buffer,
      48 /* COMPLEX_ACK */,
      14 /* READ_PROPERTY_MULTIPLE */,
      invokeId
    );
    read_property_multiple_exports.encodeAcknowledge(buffer, values);
    this.sendBvlc(receiver, buffer);
  }
  /**
   * The iAmResponse command is sent as a reply to a whoIs request.
   * @function bacnet.iAmResponse
   * @param {object} receiver - address to send packet to, null for local broadcast.
   * @param {number} deviceId - Our device ID.
   * @param {number} segmentation - an enum.Segmentation value.
   * @param {number} vendorId - The numeric ID assigned to the organisation providing this application.
   */
  iAmResponse(receiver, deviceId, segmentation, vendorId) {
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(buffer, 0 /* NORMAL_MESSAGE */, receiver);
    encodeUnconfirmedServiceRequest(
      buffer,
      16 /* UNCONFIRMED_REQUEST */,
      0 /* I_AM */
    );
    i_am_exports.encode(
      buffer,
      deviceId,
      this._transport.getMaxPayload(),
      segmentation,
      vendorId
    );
    this.sendBvlc(receiver, buffer);
  }
  /**
   *
   * @param receiver
   * @param deviceId
   * @param objectId
   * @param objectName
   */
  iHaveResponse(receiver, deviceId, objectId, objectName) {
    const buffer = this._getBuffer(
      !!(typeof receiver !== "string" && receiver.forwardedFrom)
    );
    encode31(buffer, 0 /* NORMAL_MESSAGE */, receiver);
    encodeUnconfirmedServiceRequest(
      buffer,
      16 /* UNCONFIRMED_REQUEST */,
      1 /* I_HAVE */
    );
    i_have_exports.encode(buffer, deviceId, objectId, objectName);
    this.sendBvlc(receiver, buffer);
  }
  /**
   *
   * @param receiver
   * @param service
   * @param invokeId
   */
  simpleAckResponse(receiver, service, invokeId) {
    if (typeof receiver === "string")
      return;
    const buffer = this._getBuffer(!!receiver.forwardedFrom);
    encode31(buffer, 0 /* NORMAL_MESSAGE */, receiver);
    encodeSimpleAck(
      buffer,
      32 /* SIMPLE_ACK */,
      service,
      invokeId
    );
    this.sendBvlc(receiver, buffer);
  }
  /**
   *
   * @param receiver
   * @param service
   * @param invokeId
   * @param errorClass
   * @param errorCode
   */
  errorResponse(receiver, service, invokeId, errorClass, errorCode) {
    trace2(
      `error response on ${JSON.stringify(receiver)} service: ${JSON.stringify(
        service
      )} invokeId: ${invokeId} errorClass: ${errorClass} errorCode: ${errorCode}`
    );
    trace2(
      `error message ${error_exports.buildMessage({
        class: errorClass,
        code: errorCode
      })}`
    );
    const hasSource = !!(typeof receiver !== "string" && receiver.forwardedFrom);
    if (typeof receiver === "string")
      throw new Error("receiver must be object");
    const buffer = this._getBuffer(hasSource);
    encode31(buffer, 0 /* NORMAL_MESSAGE */, receiver);
    encodeError(buffer, 80 /* ERROR */, service, invokeId);
    error_exports.encode(buffer, errorClass, errorCode);
    this.sendBvlc(receiver, buffer);
  }
  /**
   *
   * @param receiver
   * @param buffer
   */
  sendBvlc(receiver, buffer) {
    if (typeof receiver === "string") {
      receiver = {
        address: receiver
      };
    }
    if (receiver && receiver.forwardedFrom) {
      encode32(
        buffer.buffer,
        4 /* FORWARDED_NPDU */,
        buffer.offset,
        receiver.forwardedFrom
      );
    } else if (receiver && receiver.address) {
      encode32(
        buffer.buffer,
        10 /* ORIGINAL_UNICAST_NPDU */,
        buffer.offset
      );
    } else {
      encode32(
        buffer.buffer,
        11 /* ORIGINAL_BROADCAST_NPDU */,
        buffer.offset
      );
    }
    this._transport.send(
      buffer.buffer,
      buffer.offset,
      receiver && receiver.address || null
    );
  }
  /**
   * The resultResponse is a BVLC-Result message used to respond to certain events, such as BBMD registration.
   * This message cannot be wrapped for passing through a BBMD, as it is used as a BBMD control message.
   * @function bacnet.resultResponse
   * @param {string} receiver - IP address of the target device.
   * @param {number} resultCode - Single value from BvlcResultFormat enum.
   */
  resultResponse(receiver, resultCode) {
    const buffer = this._getBuffer();
    encodeResult(buffer, resultCode);
    encode32(
      buffer.buffer,
      0 /* BVLC_RESULT */,
      buffer.offset
    );
    this._transport.send(buffer.buffer, buffer.offset, receiver.address);
  }
  /**
   * Unloads the current bacnet instance and closes the underlying UDP socket.
   * @function bacnet.close
   * @example
   * const bacnet = require('ts-bacnet');
   * const client = new bacnet();
   *
   * client.close();
   */
  close() {
    this._transport.close();
  }
  /**
   * Helper function to take an array of enums and produce a bitstring suitable
   * for inclusion as a property.
   *
   * @example
   * [bacnet.enum.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED]: [
   *   {value: bacnet.createBitstring([
   *     bacnet.enum.ObjectTypesSupported.ANALOG_INPUT,
   *     bacnet.enum.ObjectTypesSupported.ANALOG_OUTPUT,
   *   ]),
   *   type: bacnet.enum.ApplicationTag.BIT_STRING},
   * ],
   */
  static createBitstring(items) {
    let offset = 0;
    let bytes = [];
    let bitsUsed = 0;
    while (items.length) {
      let value = 0;
      items = items.filter((i) => {
        if (i >= offset + 8) {
          return true;
        }
        value |= 1 << i - offset;
        bitsUsed = Math.max(bitsUsed, i);
        return false;
      });
      bytes.push(value);
      offset += 8;
    }
    bitsUsed++;
    return {
      value: bytes,
      bitsUsed
    };
  }
};

// index.ts
var import_underscore = __toESM(require("underscore"));

// src/read-device.ts
var import_process = __toESM(require("process"));
var import__ = __toESM(require_dist());
var PropertyIdentifierToEnumMap = {};
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.OBJECT_TYPE] = import__.enums.ObjectType;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED] = import__.enums.Segmentation;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.EVENT_STATE] = import__.enums.EventState;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.UNITS] = import__.enums.EngineeringUnits;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.RELIABILITY] = import__.enums.Reliability;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.NOTIFY_TYPE] = import__.enums.NotifyType;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.POLARITY] = import__.enums.Polarity;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED] = import__.enums.ServicesSupported;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED] = import__.enums.ObjectTypesSupported;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.STATUS_FLAGS] = import__.enums.StatusFlags;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.LIMIT_ENABLE] = import__.enums.LimitEnable;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.EVENT_ENABLE] = import__.enums.EventTransitionBits;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.ACKED_TRANSITIONS] = import__.enums.EventTransitionBits;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.SYSTEM_STATUS] = import__.enums.DeviceStatus;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.SYSTEM_STATUS] = import__.enums.DeviceStatus;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.ACK_REQUIRED] = import__.enums.EventTransitionBits;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.LOGGING_TYPE] = import__.enums.LoggingType;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.FILE_ACCESS_METHOD] = import__.enums.FileAccessMethod;
PropertyIdentifierToEnumMap[import__.enums.PropertyIdentifier.NODE_TYPE] = import__.enums.NodeType;
var ObjectTypeSpecificPropertyIdentifierToEnumMap = {};
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BINARY_INPUT] = {};
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BINARY_INPUT][import__.enums.PropertyIdentifier.PRESENT_VALUE] = import__.enums.BinaryPV;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BINARY_INPUT][import__.enums.PropertyIdentifier.MODE] = import__.enums.BinaryPV;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.ANALOG_INPUT] = {};
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.ANALOG_INPUT][import__.enums.PropertyIdentifier.PRESENT_VALUE] = import__.enums.BinaryPV;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.ANALOG_OUTPUT] = {};
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.ANALOG_OUTPUT][import__.enums.PropertyIdentifier.PRESENT_VALUE] = import__.enums.BinaryPV;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BINARY_OUTPUT] = {};
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BINARY_OUTPUT][import__.enums.PropertyIdentifier.PRESENT_VALUE] = import__.enums.BinaryPV;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BINARY_OUTPUT][import__.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__.enums.BinaryPV;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BINARY_VALUE] = {};
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BINARY_VALUE][import__.enums.PropertyIdentifier.PRESENT_VALUE] = import__.enums.BinaryPV;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BINARY_VALUE][import__.enums.PropertyIdentifier.RELINQUISH_DEFAULT] = import__.enums.BinaryPV;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BINARY_LIGHTING_OUTPUT] = {};
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BINARY_LIGHTING_OUTPUT][import__.enums.PropertyIdentifier.PRESENT_VALUE] = import__.enums.BinaryLightingPV;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BITSTRING_VALUE] = {};
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.BINARY_VALUE][import__.enums.PropertyIdentifier.PRESENT_VALUE] = import__.enums.BinaryPV;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.LIFE_SAFETY_POINT] = {};
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.LIFE_SAFETY_POINT][import__.enums.PropertyIdentifier.PRESENT_VALUE] = import__.enums.LifeSafetyState;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.LIFE_SAFETY_POINT][import__.enums.PropertyIdentifier.TRACKING_VALUE] = import__.enums.LifeSafetyState;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.LIFE_SAFETY_POINT][import__.enums.PropertyIdentifier.MODE] = import__.enums.LifeSafetyMode;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.LIFE_SAFETY_POINT][import__.enums.PropertyIdentifier.ACCEPTED_MODES] = import__.enums.LifeSafetyMode;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.LIFE_SAFETY_POINT][import__.enums.PropertyIdentifier.SILENCED] = import__.enums.LifeSafetyState;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.LIFE_SAFETY_POINT][import__.enums.PropertyIdentifier.OPERATION_EXPECTED] = import__.enums.LifeSafetyOperation;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.LIFE_SAFETY_ZONE] = {};
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.LIFE_SAFETY_ZONE][import__.enums.PropertyIdentifier.PRESENT_VALUE] = import__.enums.LifeSafetyState;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.LIFE_SAFETY_ZONE][import__.enums.PropertyIdentifier.MODE] = import__.enums.LifeSafetyMode;
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.LOAD_CONTROL] = {};
ObjectTypeSpecificPropertyIdentifierToEnumMap[import__.enums.ObjectType.LOAD_CONTROL][import__.enums.PropertyIdentifier.PRESENT_VALUE] = import__.enums.ShedState;
var propSubSet = import_process.default.argv.includes("--all") ? Object.values(import__.enums.PropertyIdentifier) : [
  /* normally supported from all devices */
  import__.enums.PropertyIdentifier.OBJECT_IDENTIFIER,
  import__.enums.PropertyIdentifier.OBJECT_NAME,
  import__.enums.PropertyIdentifier.OBJECT_TYPE,
  import__.enums.PropertyIdentifier.PRESENT_VALUE,
  import__.enums.PropertyIdentifier.STATUS_FLAGS,
  import__.enums.PropertyIdentifier.EVENT_STATE,
  import__.enums.PropertyIdentifier.RELIABILITY,
  import__.enums.PropertyIdentifier.OUT_OF_SERVICE,
  import__.enums.PropertyIdentifier.UNITS,
  /* other properties */
  import__.enums.PropertyIdentifier.DESCRIPTION,
  import__.enums.PropertyIdentifier.SYSTEM_STATUS,
  import__.enums.PropertyIdentifier.VENDOR_NAME,
  import__.enums.PropertyIdentifier.VENDOR_IDENTIFIER,
  import__.enums.PropertyIdentifier.MODEL_NAME,
  import__.enums.PropertyIdentifier.FIRMWARE_REVISION,
  import__.enums.PropertyIdentifier.APPLICATION_SOFTWARE_VERSION,
  import__.enums.PropertyIdentifier.LOCATION,
  import__.enums.PropertyIdentifier.LOCAL_DATE,
  import__.enums.PropertyIdentifier.LOCAL_TIME,
  import__.enums.PropertyIdentifier.UTC_OFFSET,
  import__.enums.PropertyIdentifier.DAYLIGHT_SAVINGS_STATUS,
  import__.enums.PropertyIdentifier.PROTOCOL_VERSION,
  import__.enums.PropertyIdentifier.PROTOCOL_REVISION,
  import__.enums.PropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED,
  import__.enums.PropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED,
  import__.enums.PropertyIdentifier.OBJECT_LIST,
  import__.enums.PropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED,
  import__.enums.PropertyIdentifier.SEGMENTATION_SUPPORTED,
  import__.enums.PropertyIdentifier.APDU_TIMEOUT,
  import__.enums.PropertyIdentifier.NUMBER_OF_APDU_RETRIES,
  import__.enums.PropertyIdentifier.DEVICE_ADDRESS_BINDING,
  import__.enums.PropertyIdentifier.DATABASE_REVISION,
  import__.enums.PropertyIdentifier.MAX_INFO_FRAMES,
  import__.enums.PropertyIdentifier.MAX_MASTER,
  import__.enums.PropertyIdentifier.ACTIVE_COV_SUBSCRIPTIONS,
  import__.enums.PropertyIdentifier.ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS
];
var debug4 = import_process.default.argv.includes("--debug");
function getAllPropertiesManually(address, objectId, callback, propList, result) {
  if (!propList) {
    propList = propSubSet.map((x) => x);
  }
  if (!result) {
    result = [];
  }
  if (!propList.length) {
    return callback({
      values: [
        {
          objectId,
          values: result
        }
      ]
    });
  }
  const prop = propList.shift();
  bacnetClient.readProperty(address, objectId, prop, {}, (err, value) => {
    if (!err) {
      if (debug4) {
        console.log("Handle value " + prop + ": ", JSON.stringify(value));
      }
      const objRes = value.property;
      objRes.value = value.values;
      result.push(objRes);
    } else {
    }
    getAllPropertiesManually(address, objectId, callback, propList, result);
  });
}
function readBit(buffer, i, bit) {
  return (buffer[i] >> bit) % 2;
}
function handleBitString(buffer, bitsUsed, usedEnum) {
  const res = [];
  for (let i = 0; i < bitsUsed; i++) {
    const bufferIndex = Math.floor(i / 8);
    if (readBit(buffer, bufferIndex, i % 8)) {
      res.push(import__.enums.getEnumName(usedEnum, i));
    }
  }
  return res;
}
function parseValue(address, objId2, parentType, value, supportsMultiple = false, callback) {
  let resValue = null;
  if (value && value.type && value.value !== null && value.value !== void 0) {
    switch (value.type) {
      case import__.enums.ApplicationTag.NULL:
        resValue = null;
        break;
      case import__.enums.ApplicationTag.BOOLEAN:
        resValue = !!value.value;
        break;
      case import__.enums.ApplicationTag.UNSIGNED_INTEGER:
      case import__.enums.ApplicationTag.SIGNED_INTEGER:
      case import__.enums.ApplicationTag.REAL:
      case import__.enums.ApplicationTag.DOUBLE:
      case import__.enums.ApplicationTag.CHARACTER_STRING:
        resValue = value.value;
        break;
      case import__.enums.ApplicationTag.DATE:
      case import__.enums.ApplicationTag.TIME:
      case import__.enums.ApplicationTag.TIMESTAMP:
        resValue = value.value;
        break;
      case import__.enums.ApplicationTag.BIT_STRING:
        if (ObjectTypeSpecificPropertyIdentifierToEnumMap[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap[parentType][objId2]) {
          resValue = handleBitString(
            value.value.value,
            value.value.bitsUsed,
            ObjectTypeSpecificPropertyIdentifierToEnumMap[parentType][objId2]
          );
        } else if (PropertyIdentifierToEnumMap[objId2]) {
          resValue = handleBitString(
            value.value.value,
            value.value.bitsUsed,
            PropertyIdentifierToEnumMap[objId2]
          );
        } else {
          if (parentType !== import__.enums.ObjectType.BITSTRING_VALUE) {
            console.log(
              "Unknown value for BIT_STRING type for objId " + import__.enums.getEnumName(import__.enums.PropertyIdentifier, objId2) + " and parent type " + import__.enums.getEnumName(import__.enums.ObjectType, parentType)
            );
          }
          resValue = value.value;
        }
        break;
      case import__.enums.ApplicationTag.ENUMERATED:
        if (ObjectTypeSpecificPropertyIdentifierToEnumMap[parentType] && ObjectTypeSpecificPropertyIdentifierToEnumMap[parentType][objId2]) {
          resValue = import__.enums.getEnumName(
            ObjectTypeSpecificPropertyIdentifierToEnumMap[parentType][objId2],
            value.value
          );
        } else if (PropertyIdentifierToEnumMap[objId2]) {
          resValue = import__.enums.getEnumName(
            PropertyIdentifierToEnumMap[objId2],
            value.value
          );
        } else {
          console.log(
            "Unknown value for ENUMERATED type for objId " + import__.enums.getEnumName(import__.enums.PropertyIdentifier, objId2) + " and parent type " + import__.enums.getEnumName(import__.enums.ObjectType, parentType)
          );
          resValue = value.value;
        }
        break;
      case import__.enums.ApplicationTag.OBJECTIDENTIFIER:
        if (objId2 === import__.enums.PropertyIdentifier.OBJECT_IDENTIFIER || objId2 === import__.enums.PropertyIdentifier.STRUCTURED_OBJECT_LIST || objId2 === import__.enums.PropertyIdentifier.SUBORDINATE_LIST) {
          resValue = value.value;
        } else if (supportsMultiple) {
          const requestArray = [
            {
              objectId: value.value,
              // meaning read all properties
              properties: [{ id: 8 }]
            }
          ];
          bacnetClient.readPropertyMultiple(
            address,
            requestArray,
            (err, resValue2) => {
              parseDeviceObject(address, resValue2, value.value, true, callback);
            }
          );
          return;
        } else {
          getAllPropertiesManually(address, value.value, (result) => {
            parseDeviceObject(address, result, value.value, false, callback);
          });
          return;
        }
        break;
      case import__.enums.ApplicationTag.OCTET_STRING:
        resValue = value.value;
        break;
      case import__.enums.ApplicationTag.ERROR:
        resValue = {
          errorClass: import__.enums.getEnumName(
            import__.enums.ErrorClass,
            value.value.errorClass
          ),
          errorCode: import__.enums.getEnumName(import__.enums.ErrorCode, value.value.errorCode)
        };
        break;
      case import__.enums.ApplicationTag.OBJECT_PROPERTY_REFERENCE:
      case import__.enums.ApplicationTag.DEVICE_OBJECT_PROPERTY_REFERENCE:
      case import__.enums.ApplicationTag.DEVICE_OBJECT_REFERENCE:
      case import__.enums.ApplicationTag.READ_ACCESS_SPECIFICATION:
        resValue = value.value;
        break;
      case import__.enums.ApplicationTag.CONTEXT_SPECIFIC_DECODED:
        parseValue(
          address,
          parentType,
          value.value,
          supportsMultiple,
          callback
        );
        return;
      case import__.enums.ApplicationTag.READ_ACCESS_RESULT:
        resValue = value.value;
        break;
      default:
        console.log(
          "unknown type " + value.type + ": " + JSON.stringify(value)
        );
        resValue = value;
    }
  }
  setImmediate(() => callback(resValue));
}
function parseDeviceObject(address, obj, parent, supportsMultiple, callback) {
  if (debug4) {
    console.log(
      "START parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(obj)
    );
  }
  if (!obj) {
    console.log("object not valid on parse device object");
    return;
  }
  if (!obj.values || !Array.isArray(obj.values)) {
    console.log("No device or invalid response");
    callback({ ERROR: "No device or invalid response" });
    return;
  }
  let cbCount = 0;
  let objDef = {};
  const finalize = () => {
    Object.keys(objDef).forEach((devId) => {
      Object.keys(objDef[devId]).forEach((objId2) => {
        if (objDef[devId][objId2].length === 1) {
          objDef[devId][objId2] = objDef[devId][objId2][0];
        }
      });
    });
    if (obj.values.length === 1) {
      objDef = objDef[obj.values[0].objectId.instance];
    }
    if (debug4) {
      console.log(
        "END parseDeviceObject: " + JSON.stringify(parent) + " : " + JSON.stringify(objDef)
      );
    }
    callback(objDef);
  };
  obj.values.forEach((devBaseObj) => {
    if (!devBaseObj.objectId) {
      console.log("No device Id found in object data");
      return;
    }
    if (devBaseObj.objectId.type === void 0 || devBaseObj.objectId.instance === void 0) {
      console.log("No device type or instance found in object data");
      return;
    }
    if (!devBaseObj.values || !Array.isArray(devBaseObj.values)) {
      console.log("No device values response");
      return;
    }
    const deviceId = devBaseObj.objectId.instance;
    objDef[deviceId] = {};
    devBaseObj.values.forEach((devObj) => {
      let objId2 = import__.enums.getEnumName(import__.enums.PropertyIdentifier, devObj.id);
      if (devObj.index !== 4294967295) {
        objId2 += "-" + devObj.index;
      }
      if (debug4) {
        console.log("Handle Object property:", deviceId, objId2, devObj.value);
      }
      devObj.value.forEach((val) => {
        if (JSON.stringify(val.value) === JSON.stringify(parent)) {
          objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
          objDef[deviceId][objId2].push(val.value);
          return;
        }
        cbCount++;
        parseValue(
          address,
          parent.type,
          val,
          supportsMultiple,
          (parsedValue) => {
            if (debug4) {
              console.log(
                "RETURN parsedValue",
                deviceId,
                objId2,
                devObj.value,
                parsedValue
              );
            }
            objDef[deviceId][objId2] = objDef[deviceId][objId2] || [];
            objDef[deviceId][objId2].push(parsedValue);
            if (!--cbCount) {
              finalize();
            }
          }
        );
      });
    });
  });
  if (cbCount === 0) {
    finalize();
  }
}
var limitToDevice = null;
if (import_process.default.argv.length === 3) {
  limitToDevice = parseInt(import_process.default.argv[2]);
  if (isNaN(limitToDevice)) {
    limitToDevice = null;
  }
}

// index.ts
var node_bacnet_default = Client;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
  _,
  bacnetErrorToString,
  enums,
  parseValue
});